*DECK NLM                    NLM - NAD DIAGNOSTIC MONITOR AND LOADER
***       NLM - NAD LOADER AND MONITOR
***       REVISION HISTORY
**        NLM - NAD LOADER AND MONITOR
*         NLM - NAD LOADER AND MONITOR
* 
*         AUTHOR - M. B. ANDERSON     SEPTEMBER 18, 1979
* 
*         COPYRIGHT CONTROL DATA CORPORATION  1979
* 
*** 1.0  INTRODUCTION 
**  1.0  INTRODUCTION 
*   1.0  INTRODUCTION 
*        ------------ 
* 
*        NLM  IS  THE  NAD  TEST LOADER AND MONITOR FOR THE LCN.  IT IS 
*        DESIGNED TO LOAD A NAD TEST INTO THE NAD, START THE TEST,  AND 
*        MONITOR  THE  TEST  WHILE  IT  IS EXECUTING.  THE USER WILL BE 
*        INFORMED OF THE TESTS PROGRESS THROUGH MESSAGES  SENT  TO  THE 
*        DAYFILE, K DISPLAY AND THE OUTPUT FILE.
* 
* 
* 
*** 1.1  RESTRICTIONS 
**  1.1  RESTRICTIONS 
*   1.1  RESTRICTIONS 
*        ------------ 
* 
* 
*        1.  REFER TO NAD TEST ERS-S FOR TEST RESTRICTIONS. 
* 
*        2.  THE  NAD  TEST  MUST  BE  CONTAINED  ON THE FILE *SCRATCH* 
*            BEFORE NLM WILL EXECUTE CORRECTLY. 
* 
*        3.  STANDARD CONTROLWARE MUST BE EXECUTING IN  THE  LOCAL  NAD 
*            BEFORE  A  NAD  DIAGNOSTIC CAN BE DOWNLOADED INTO A REMOTE 
*            NAD. 
* 
*        4.  NLM WILL ONLY LOAD NAD TESTS INTO A NAD.  A NAD TEST IS  A 
*            TEST  WRITTEN  IN  LCN  CODE,  COMPILED  BY  THE COMPASS 2 
*            ASSEMBLER, CONTAINS A 77 HEADER TABLE  AND  THE  NAD  TEST 
*            INTERFACE, NDI.
* 
*        5.  THE USER  WILL BE  REQUIRED TO ENTER PARAMETERS  IN THE
*            ASSIGN STATEMENT TO SPECIFY THE NAD  IN  THE  LCN  NETWORK 
*            THAT IS TO BE TESTED.
* 
*        6.  THE  USER MUST MAKE PARAMETER REGISTER ENTRIES PRIOR TO
*            LOADING THE TEST OR ELSE THE TEST WILL RUN UNDER DEFAULT 
*            PARAMETERS.  IF  USER WISHES TO CHANGE PARAMETERS AFTER
*            THE TEST  BEGINS EXECUTION,THE TEST  MUST BE RE-LOADED 
*            AGAIN FOLLOWING THE PARAMETER REGISTER ENTRIES.
* 
*        7.  THE MODULE DESCRIPTION MESSAGE THAT IS TO APPEAR 
*            ON LINE 2 OF THE MONITOR DISPLAY IS ABSENT BECAUSE 
*            THE MODSET IS NOT PRESENT IN THIS LCNPL RELEASE. 
* 
* 
* 
* 
* 
* 
* 
* 
*** 1.2  CHARACTERISTICS
**  1.2  CHARACTERISTICS
*   1.2  CHARACTERISTICS
*        ---------------
* 
*         1. PROGRAM NAME  .  .  .  .  .  .  .  .  .  NLM 
*         2. TEST/DIAG/UTILITY/SYSTEM  .  .  .  .  .  UTILITY 
*         3. VIRTUAL CODE/MICROCODE/PP CODE/OTHER  .  MALET 
*         4. RUN TIME (DEFAULT)  .  .  .  .  .  .  .  N/A 
*         5. RUN TIME/QUICK LOOK (DEFAULT).  .  .  .  N/A 
*         6. RUN TIME (ALL OPTIONS/MODULES)  .  .  .  N/A 
*         7. LEVEL OF ISOLATION  .  .  .  .  .  .  .  N/A 
*         8. ON-LINE/OFF-LINE/BOTH  .  .  .  .  .  .  BOTH
*         9. ON-LINE SYSTEM.  .  .  .  .  .  .  .  .  NOS,NOS/BE
*        10. OFF-LINE SYSTEM  .  .  .  .  .  .  .  .  CMSE
*        11. RESIDENT DURING EXECUTION .  .  .  .  .  PP MEMORY 
*        12. ASSEMBLY LANGUAGE.  .  .  .  .  .  .  .  MALET 
*        13. SOURCE CODE MAINTENANCE.  .  .  .  .  .  UPDATE V2.0 
*        14. USERS MAINTENANCE CHANNEL .  .  .  .  .  NONE
* 
* 
*** 2.0  APPLICABLE DOCUMENTS 
**  2.0  APPLICABLE DOCUMENTS 
*   2.0  APPLICABLE DOCUMENTS 
*        ---------------------
* 
*        HOST CYBER 170 NAD SPECIFICATION    (FW101-A)     52681472 
*        NAD HARDWARE SPECIFICATION                        52681478 
*        NAD COMMON CONTROLWARE SPECIFICATION              52653818 
*        MALET REFERENCE MANUAL                            60456020 
*        CML REFERENCE MANUAL                              60455980 
*        MALET CODING DOCUMENT               DCS NO.       ARH3297
*        LOOSELY COUPLED NETWORK PROTOCOL SPECIFICATION    52653814 
*        LCN MAINTENANCE SOFTWARE DEVELOPMENT PLAN         ARH3663
* 
* 
* 
*** 3.0  FEATURE DESCRIPTION
**  3.0  FEATURE DESCRIPTION
*   3.0  FEATURE DESCRIPTION
*        -------------------
* 
* 
*** 3.1  NAD LOADER AND MONITOR 
**  3.1  NAD LOADER AND MONITOR 
*   3.1  NAD LOADER AND MONITOR 
*        ---------------------- 
* 
*** 3.1.1  ABSTRACT 
**  3.1.1  ABSTRACT 
*   3.1.1  ABSTRACT 
*          -------- 
* 
*        NLM  IS  A  NAD  RESIDENT  TEST LOADER AND MONITOR.  THE NLM01 
*        MODULE SERIES COMPRISES THE NAD LOADER AND  THE  NLM02  MODULE 
*        SERIES  COMPRISES  THE  NAD  TEST  MONITOR.   THE NLM01 SERIES 
*        CONTAINS 2 LOADERS: A  LOCAL  NAD  LOADER  AND  A  REMOTE  NAD 
*        LOADER.   THE  NLM02  SERIES  CONTAINS 2 MONITORS: A LOCAL NAD 
*        TEST MONITOR AND A REMOTE NAD TEST  MONITOR.   THE  PARTICULAR 
*        LOADER  AND  MONITOR  CHOSEN  WILL DEPEND UPON THE DEVICE CODE 
*        SELECTED IN THE ASSIGN STATEMENT.
* 
*          MODULE 
*          NUMBER       BRIEF DESCRIPTION 
*          -------      ----------------- 
* 
*          NLM00        CHECKS COMMON LCN TEST PARAMETER ENTRIES
*                       BEFORE TEST EXECUTION.
* 
*          NLM01        SELECTS THE LOCAL OR REMOTE LOADER FROM 
*                       THE DEVICE CODE ENTRY MADE IN THE ASSIGN
*                       STATEMENT.
* 
*          NLM01A       LOADS A NAD TEST INTO THE LOCAL NAD MEMORY. 
* 
*          NLM01B       LOADS A NAD TEST INTO THE REMOTE NAD MEMORY.
* 
*          NLM02        SELECTS THE LOCAL OR REMOTE MONITOR BY THE
*                       DEVICE CODE ENTRY MADE IN THE ASSIGN STATEMENT. 
* 
*          NLM02A       MONITORS A NAD TEST EXECUTING IN THE LOCAL NAD. 
* 
*          NLM02B       MONITORS A NAD TEST EXECUTING IN THE REMOTE 
*                       NAD.
* 
*          NLM98A       REPORTS ANY ERROR THAT OCCURS WHILE LOADING A 
*                       A NAD TEST. 
* 
*          NLM97B/98B   FORMS A TEST PARAMETER  BUFFER FROM THE DS
*                       REGISTER, PARAMETER REGISTER AND ASSIGN 
*                       STATEMENT ENTRIES.
* 
*          NLM97C/98C   DISPLAYS ALL MESSAGES DESCRIBING ALL TEST STOPS.
* 
*          NLM97D/98D   INITIALIZES THE MONITOR DISPLAY.
* 
*          NLM97E/98E   REPORTS ANY ERRORS THAT OCCUR WHILE 
*                       MONITORING A NAD TEST.
* 
*          NLM97F/98F   CONTINUATION OF NLM97E/98E. 
* 
*          NLM97G/98G   REPORTS AND INTERPRETS THE MAINTENANCE
*                       FUNCTION RESPONSE TABLE.
* 
*          NLM97H/98H   CONTINUATION OF NLM97G/98G. 
* 
*          NLM97I/98I   CONTINUATION OF NLM97G/98G. 
* 
*          NLM97J/98J   REPORTS AND INTERPRETS  THE PATH
*                       STATUS TABLE. 
* 
*          NLM97K/98K   CONTINUATION OF NLM97J/98J. 
* 
*          NLM97L/98L   CONTINUATION OF NLM97J/98J. 
* 
*          NLM97M/98M   CONTINUATION OF NLM97J/98J. 
* 
*          NLM97N/98N   CONTINUATION OF NLM97J/98J. 
* 
*          NLM97O/98O   CONTINUATION OF NLM97J/98J. 
* 
*          NLM97P/98P   CONTINUATION OF NLM97J/98J. 
* 
*          NLM97Q/98Q   REPORTS  AND INTERPRETS GENERAL/
*                       DETAILED NAD STATUS.
* 
*          NLM97R/98R   DISPLAYS CONTENTS OF NAD MEMORY - 
*                       4-F, DI AND TCI CONTROL PACKAGES. 
* 
*          NLM97S/98S   RESTARTS THE NAD PROCESSOR AFTER
*                       AN UNEXPECTED PROCESSOR HALT. 
* 
*          NLM97T/98T   REPORTS IB/OB  AND REGISTER CONTENTS. 
* 
*          NLM97U/98U   CONTINUATION OF NLM97T/98T. 
* 
*          NLM97V/98V   CONTINUATION OF NLM97T/98T. 
* 
*          NLM97W/98W   CONTINUATION OF NLM97T/98T. 
* 
*          NLM97X/98X   DISPLAYS TEST MODULE DESCRIPTIONS.
* 
*          NLM99        DISPLAYS PARAMETER REGISTER USAGE.
*                       DISPLAYS  NLM MODULE DESCRIPTIONS.
* 
*          NDM99        DISPLAYS PARAMETER REGISTER USAGE FOR NDM.
* 
*          NDP99        DISPLAYS PARAMETER REGISTER USAGE FOR NDP.
* 
*          NDT99        DISPLAYS PARAMETER REGISTER USAGE FOR NDT.
* 
* 
* 
*** 3.1.2  DESCRIPTION (DETAILED) 
**  3.1.2  DESCRIPTION (DETAILED) 
*   3.1.2  DESCRIPTION (DETAILED) 
*          ---------------------- 
* 
* 
* 
*** 3.1.2.1  OPERATIONAL PROCEDURES 
**  3.1.2.1  OPERATIONAL PROCEDURES 
*   3.1.2.1  OPERATIONAL PROCEDURES 
*            ---------------------- 
* 
*            1. REFER  TO THE   MALET REFERENCE  MANUAL (PUB.  NO.
*               60456020)  FOR  A  DETAILED  DESCRIPTION  OF  THE DEMOT 
*               LANGUAGE. 
* 
*IF -DEF,CMSE17X
* 
*            1. REFER TO THE CML REFERENCE MANUAL(PUB.  NO.   60455980) 
*               TO   RUN  MALET  UNDER  THE  NOS  OR  NOS/BE  OPERATING 
*               SYSTEMS.
* 
*ENDIF
* 
*IF DEF,CMSE17X 
* 
*             2. REFER  TO  THE  DEMOT  REFERENCE  MANUAL  (PUB.    NO. 
*               60456210)   TO  RUN  DEMOT  UNDER  THE  CMSE  OPERATING 
*               SYSTEM. 
* 
*            3. REFER TO THE MSL100 OFF-LINE MAINTENANCE SYSTEM LIBRARY 
*               VOLUME 1, REFERENCE MANUAL (PUB.  NO.  60455770) TO RUN 
*               THE CMSE OFF-LINE MAINTENANCE SYSTEM. 
* 
*ENDIF
* 
* 
*** 3.1.2.1.1  LOADING PROCEDURES 
**  3.1.2.1.1  LOADING PROCEDURES 
*   3.1.2.1.1  LOADING PROCEDURES 
*              ------------------ 
* 
*              SEE RUNNING PROCEDURES.
* 
* 
* 
*** 3.1.2.1.2  RUNNING PROCEDURES 
**  3.1.2.1.2  RUNNING PROCEDURES 
*   3.1.2.1.2  RUNNING PROCEDURES 
*              ------------------ 
* 
* 
*IF -DEF,CMSE17X
*              THE FOLLOWING EXAMPLES DESCRIBE HOW TO RUN NAD 
*              RESIDENT TESTS ON THE TERMINAL USING NLM.
*              THESE EXAMPLES INCLUDE MANY OF THE POSSIBLE
*              PARAMETERS USED DURING TESTING, HOWEVER THE USER 
*              IS ADVISED TO HAVE A COPY OF EACH TEST ERS 
*              FOR A MORE COMPLETE PARAMETER DESCRIPTION. 
*              SINCE THE NAD IS A HEXADECIMAL MACHINE, THE USER 
*              SHOULD REMEMBER TO ENTER ACCESS CODE(AC) AND 
*              LOGICAL TRUNK ADDRESS(LTA) IN HEXADECIMAL USING
*              THE LETTER *H* FOLLOWING THE PARAMETER ENTRY.
* 
*              TO RUN NDM IN A LOCAL NAD: 
*              GET,NDM.            *MAKE NDM A LOCAL FILE 
*              GET,RFILE=NLM.      *MAKE LOCAL RFILE CONTAINING NLM 
*              A,DC=300,EST=40,AL=5   *REQUEST TO TEST A LOCAL NAD
*              SCRATCH=NDM         *PLACE NDM TEST IN SCRATCH FILE
*              P,P1=3,TL=777       *TEST 32K LOCAL NAD MEMORY 
*                            *SET PP DRIVER TIME LIMIT TO 777 SECONDS 
*              R NLM               *BEGIN EXECUTION OF NDM TEST 
* 
* 
*              TO RUN NDM IN A REMOTE NAD:  
*              GET,NDM.             *MAKE NDM A LOCAL FILE
*              GET,RFILE=NLM        *MAKE LOCAL RFILE CONTAINING NLM
*              X.LOADBC(C=6)        *LOAD CONTROLWARE INTO LOCAL NAD
*                                    ONLY IF CONTROLWARE IS NOT 
*                                    PRESENTLY EXECUTING. 
*              A,DC=301,EST=40,AL=5,TCU=4,LTA=7H,AC=F0F0H 
*                                   *REQUEST TO TEST A REMOTE NAD 
*              SCRATCH=NDM          *PLACE NDM TEST IN SCRATCH FILE 
*              P,P1=1,TL=777        *TEST 16K REMOTE NAD MEMORY 
*              SETDS,S1             *REQUEST REPORTING OF CONTROL PKG,
*                                    AND EXTENDED STATUS ON AN ERROR
*              R NLM                *BEGIN EXECUTION OF NDM TEST
* 
* 
*              TO RUN NDP IN A LOCAL NAD: 
*              GET,NDP.            *MAKE NDP A LOCAL FILE 
*              GET,RFILE=NLM.      *MAKE LOCAL RFILE CONTAINING NLM 
*              A,DC=300,EST=40,AL=5   *REQUEST TO TEST A LOCAL NAD
*              SCRATCH=NDP         *PLACE NDP TEST IN SCRATCH FILE
*              P,TL=777            *SET PP DRIVER TIME LIMIT TO 
*                                   777 SECONDS 
*              R NLM               *BEGIN EXECUTION OF NDP TEST 
* 
* 
*              TO RUN NDP IN A REMOTE NAD:  
*              GET,NDP.             *MAKE NDP A LOCAL FILE
*              GET,RFILE=NLM        *MAKE LOCAL RFILE CONTAINING NLM
*              X.LOADBC(C=6)        *LOAD CONTROLWARE INTO LOCAL NAD
*                                    ONLY IF CONTROLWARE IS NOT 
*                                    PRESENTLY EXECUTING. 
*              A,DC=301,EST=40,AL=5,TCU=4,LTA=7H,AC=F0F0H 
*                                   *REQUEST TO TEST A REMOTE NAD 
*              SCRATCH=NDP          *PLACE NDP TEST IN SCRATCH FILE 
*              P,P5=1,P6=1,TL=200   *EXECUTE MODULE NDP01 
*                         *SET PP DRIVER TIME LIMIT TO 777 SECONDS. 
*              SETDS,S1,S2          *REQUEST REPORTING OF CONTROL PKG,
*                                    AND EXTENDED STATUS ON AN ERROR
*                                    AND STATUS INTERPRETATION
*              SETDS,RM              *REPEAT MODULE NLM01 FOR 200 SEC.
*              R NLM                *BEGIN EXECUTION OF NDP TEST
* 
* 
*              TO RUN NDT IN A LOCAL NAD: 
*              GET,NDT.            *MAKE NDT A LOCAL FILE 
*              GET,RFILE=NLM.      *MAKE LOCAL RFILE CONTAINING NLM 
*              X.LOADBC(C=7)       *LOAD CONTROLWARE INTO SLAVE NAD 
*              A,DC=300,EST=40,AL=5,TCU=4,LTA=6H,AC=F0F0H 
*                                  *REQUEST TO TEST A LOCAL NAD AND 
*                                   SHARE A SLAVE NAD WITH NETWORK
*              SCRATCH=NDT         *PLACE NDT TEST IN SCRATCH FILE
*              P,P8=2074H,TL=777       *SELECT MASTER NAD TCU-S,SLAVE 
*                                       NAD AND TRUNK USED BY TEST
*                              *SET PP DRIVER TIME LIMIT TO 777 SEC.
*              R NLM               *BEGIN EXECUTION OF NDT TEST 
* 
* 
*              TO RUN NDT IN A REMOTE NAD:  
*              GET,NDT.             *MAKE NDT A LOCAL FILE
*              GET,RFILE=NLM        *MAKE LOCAL RFILE CONTAINING NLM
*              X.LOADBC(C=6)       *LOAD CONTROLWARE INTO LOCAL NAD 
*                                   ONLY IF CONTROLWARE IS NOT
*                                   PRESENTLY EXECUTING.
*              A,DC=301,EST=40,AL=5,TCU=4,LTA=7H,AC=F0F0H 
*                                  *REQUEST TO TEST A LOCAL NAD AND 
*                                   SHARE A SLAVE NAD WITH NETWORK
*              SCRATCH=NDT         *PLACE NDT TEST IN SCRATCH FILE
*              P,P8=2064H,TL=777       *SELECT MASTER NAD TCU-S,SLAVE 
*                                       NAD AND TRUNK USED BY TEST
*                              *SET PP DRIVER TIME LIMIT TO 777 SEC.
*              R NLM               *BEGIN EXECUTION OF NDT TEST 
* 
* 
*ENDIF
*IF DEF,CMSE17X 
* 
*             SINCE MSL LIBRARY DOES NOT CONTAIN A CONTROLWARE
*             LOADER, THE USER MUST BE CERTAIN THAT CONTROLWARE 
*             IS RUNNING IN THE NECESSARY NADS USING THE ON-LINE
*             OPERATING SYSTEM BEFORE THE OFF-LINE OPERATING
*             SYSTEM IS BROUGHT UP. 
* 
*             USE THE FOLLOWING COMMAND BUFFER TO BRING UP DEMOT: 
* 
*             DEMOT                  *NAME OF COMMAND BUFFER
*             DP*4                   *DEADSTART PP 4
*             DP*5                   *DEADSTART PP 5
*             UL,CH,5                *UNLOCK CHANNEL 5
*             CP*4,MCX,0,5           *CALL MCX PROGRAM INTO PP 4
*                                     BEGINNING AT ADDRESS 0
*             CP*5,MLD,0,5           *CALL MLD PROGRAM INTO PP 5
*                                     BEGINNING AT ADDRESS 0
*             RU*4,100               *EXECUTE MCX PROGRAM BEGINNING 
*                                     AT ADDRESS 100
*             SQ*77,1,4              *HALT PP4 AFTER 1 PASS 
*             PP*4                   *ASSIGN DISPLAY TO PP 4
*             DEMOT S=NDT            *PLACE NDT IN SCRATCH FILE AND 
*                                     DISPLAY DEMOT EXECUTIVE DIRECTIVES
*             RU*5,100               *EXECUTE MLD PROGRAM BEGINNING 
*                                     AT ADDRESS 100
*             HC                     *HALT CPU 0
*             KC,10000,24000         *CLEAR CENTRAL MEMORY LOCATIONS
*                                     FROM 10000 TO 24000 
*             CC,MLC                 *CALL CPU PROGRAM,MLC, INTO CM 
*             DC,10000               *DEADSTART CPU 0, 10000=EXCH.PKG.
*             CN,10020               *HONOR CPU REQUESTS FROM CPU 0 
*                                     AND RECORD PARITY ERRORS
*             DEMOT C=A              *SET DEMOT COMPILER ACTIVE 
*             UL,CH,XX               *UNLOCK ALL CHANNELS TO BE USED
*                                     DURING NAD TESTING. 
*             A,DC=XXX,CH=XX,UN=XX,EQ=XX,AL=XX,...
*             P,.....                         *ENTER TEST PARAMETERS
*             SETDS,....                      *SET DIAGNOSTIC SWITCHES
*             R NLM                           *EXECUTE TEST 
* 
* 
* 
* 
*ENDIF
* 
* 
**  3.1.2.2  PARAMETERS 
*   3.1.2.2  PARAMETERS 
*            ---------- 
* 
* 
*            AN LCN DIAGNOSTIC USER MUST BE ACQUAINTED WITH ALL OF
*            THE FOLLOWING PARAMETERS IN ORDER TO RUN AN LCN TEST.
*            A BRIEF DESCRIPTION OF EACH PARAMETER IS GIVEN BELOW 
*            BUT THE USER IS ADVISED TO REFER TO THE REFERENCE
*            MANUAL FOR A MORE THOROUGH DESCRIPTION OF EACH 
*            PARAMETER TYPE AND ITS USE.
* 
*            1. ASSIGN CARD PARAMETERS
* 
*               THE ASSIGN CARD (IE:A,DC=XXX,EST=XX,AL=X.....)
*               WILL REQUEST A DEDICATED NAD FROM THE OPERATING 
*               SYSTEM.  THE PARAMETERS NEEDED IN THIS STATEMENT
*               DIFFER WITH THE TEST BEING RUN AND WHETHER THE TEST 
*               RUNS LOCALLY OR REMOTELY.  CHECK EACH TEST ERS
*               FOR REQUIRED PARAMETERS.
* 
* 
*            2. DIAGNOSTIC SWITCH REGISTER SETTINGS 
* 
*               THE DIAGNOSTIC SWITCH SETTING (IE:SETDS,XX,XX....)
*               WILL USUALLY ONLY CONTROL THE TEST ALTHOUGH THERE ARE 
*               2 EXCEPTIONS.  THESE EXCEPTIONS INVOLVE S1 AND S2:  
*               THE PROGRAMMABLE SWITCHES.  DURING TEST LOADING,
*               IF S1 IS ON, A DISPLAY OF NAD MEMORY 4-F PLUS 
*               APPROPRIATE CONTROL PACKAGE CONTENTS WILL BE
*               DISPLAYED FOR THE USERS INFORMATION WHEN AN ERROR 
*               OCCURS; IF S2 IS ON, A DISPLAY OF REGISTER CONTENTS 
*               AND AN IB/OB DISPLAY WILL APPEAR ON A LOAD ERROR. 
*               DURING TEST MONITORING, IF S1 IS ON, A DISPLAY OF 
*               ALL STATUS TABLES IN HEXADECIMAL FORMAT WILL APPEAR 
*               ON AN ERROR; IF S2 IS ON, AN INTERPRETATION OF THE
*               CONTENTS OF THE STATUS TABLES WILL BE DISPLAYED ON
*               AN ERROR.  IF S1 AND S2 ARE BOTH SET AN A LOAD ERROR
*               OCCURS, THE DISPLAY WILL BE CONTROLLED BY S1.  DURING 
*               TEST MONITORING, BOTH SWITCHES MAY BE SET TO GET BOTH 
*               STATUS TABLES AND STATUS INTERPRETATION.
* 
* 
*           3. MALET CARD PARAMETERS
* 
*              THE MALET CARD (IE: MALET,I=XXXX,LO=XX,R=XXX,S=XXX...) 
*              CONTAINS PARAMETERS TO CONTROL LIST OPTIONS, MODULE
*              PROGRAM DISPLAYS AND A NUMBER OF MALET FILES.  REFER 
*              TO THE REFERENCE MANUAL FOR A COMPLETE DESCRIPTION OF
*              EACH OF THESE PARAMETERS AND ITS USE.
* 
* 
*           4. EXECUTIVE SWITCH REGISTER SETTINGS 
* 
*              THE ES REGISTER (IE: SETSW,XX,XX.....) 
*              WILL CONTROL THE LOADER AND MONITOR OPERATION DIRECTLY 
*              AND THE TEST OPERATION INDIRECTLY.  THAT IS, IF REPEAT 
*              MODULE IS SET DURING A LOAD OPERATION, THE NLM LOADER
*              WILL REPEATEDLY LOAD THE TEST.  FOR MORE INFORMATION 
*              ABOUT THESE SWITCHES, REFER TO THE PARAMETER DISPLAY 
*              OR THE REFERENCE MANUAL. 
* 
*           5. PARAMETER REGISTER SETTINGS
*              SETTING PARAMETER REGISTERS USE THE FORMAT (IE: P,PX..)
*              ALL OF THE PARAMETER REGISTERS DEFINE TEST OPERATION 
*              WITH THE EXCEPTION OF THE P4 REGISTER.  THE P4 REGISTER
*              CONTAINS AN NDI ERROR REPORTING DISABLE.  THAT IS, NDI 
*              WILL NOT REPORT TEST ERRORS IF THIS DISABLE IS SET TO
*              ALLOW THE USER TO DETERMINE WHETHER NDI CODE OR NDI
*              RESIDENT MEMORY IS CAUSING THE TEST TO FAIL. 
*              REFER TO NLM99 MODULES SERIES FOR ACTUAL PARAMETER 
*              SETTINGS.
* 
* 
*           6. MISCELLANEOUS SWITCH SETTINGS
* 
*              THE TIME LIMIT SWITCH (IE:P,TL=XX) 
*              WILL DETERMINE THE TEST RUN TIME WHEN THE USER IS
*              RUNNING FROM A TERMINAL.  THE SWITCH SETTING IS VERY 
*              IMPORTANT WHEN THE USER SETS REPEAT TEST, MODULE OR
*              CONDITION BECAUSE IF AN ERROR DOES NOT OCCUR THE 
*              TEST, MODULE OR CONDITION WILL REPEAT UNTIL THE TIME 
*              LIMIT SET IN THE TL REGISTER IS SATISFIED. 
* 
* 
* 
* 
*** 3.1.2.3  MESSAGES 
**  3.1.2.3  MESSAGES 
*   3.1.2.3  MESSAGES 
*            -------- 
* 
*** 3.1.2.3.1  NORMAL MESSAGES
**  3.1.2.3.1  NORMAL MESSAGES
*   3.1.2.3.1  NORMAL MESSAGES
*              ---------------
* 
* 
*** 3.1.2.3.1.1  NORMAL LOADER MESSAGES 
**  3.1.2.3.1.1  NORMAL LOADER MESSAGES 
*   3.1.2.3.1.1  NORMAL LOADER MESSAGES 
*                ---------------------- 
* 
*                THE FOLLOWING MESSAGES APPEAR IF THE LCN 
*                TEST HAS LOADED SUCCESSFULLY AND HAS 
*                VERIFIED.
* 
*                LOCAL LOADER MESSAGES: 
* 
*                NAD LOADER AND MONITOR(NLM)
*                NLM01A - LOCAL NAD LOADER
*                MNE   LOADING
*                MNE   LOADED 
*                MNE   LOAD VERIFIED
* 
*                REMOTE LOADER MESSAGES:  
* 
*                NAD LOADER AND MONITOR(NLM)
*                NLM01B - REMOTE NAD LOADER 
*                MNE   LOADING
*                MNE   LOADED 
*                MNE   LOAD VERIFIED
* 
*                 *** MNE = TEST NAME 
* 
* 
* 
* 
*** 3.1.3.4.1.2  NORMAL MONITOR DISPLAY 
**  3.1.2.3.1.2  NORMAL MONITOR DISPLAY 
*   3.1.2.3.1.2  NORMAL MONITOR DISPLAY 
*                ---------------------- 
* 
*                THE FOLLOWING DISPLAY WILL APPEAR ON THE KL
*                DISPLAY IF THE TEST AND MONITOR ARE RUNNING
*                WITHOUT ERROR. 
* 
*                MNE - (TEST DES..........) 
*                MNEMM -
*                COND=CCD  ICNT=IIH  LC=LLD  ECNT=EED 
*                MNEMM (TEST STATE........) 
*                PROGRAM ADDRESS=AAAAH
* 
* 
*                   *** MNE = TEST NAME 
*                       TEST DES. = DESCRIPTION OF THE TEST 
*                       MM = TEST MODULE NUMBER 
*                       CC = CONDITION NUMBER 
*                       II = ITERATION COUNT
*                       LL = LOOP COUNT 
*                       EE = ERROR COUNT
*                       TEST STATE......= CURRENT STATE OF THE TEST 
*                       AAAA = NAD RESIDENT TEST PROGRAM ADDRESS
* 
* 
*                THE FOLLOWING PRINT-OUT WILL APPEAR ON A TERMINAL
*                IF THE TEST AND MONITOR ARE EXECUTING WITHOUT
*                ERROR: 
* 
*                MNEMM EXECUTING
* 
*                   MNE = TEST NAME.
*                   MM  = MODULE NUMBER EXECUTING.
* 
* 
* 
* 
*** 3.1.2.3.1.3  NORMAL DAYFILE MESSAGES
**  3.1.2.3.1.3  NORMAL DAYFILE MESSAGES
*   3.1.2.3.1.3  NORMAL DAYFILE MESSAGES
*                -----------------------
* 
* 
*** 3.1.2.3.2  ERROR MESSAGES 
**  3.1.2.3.2  ERROR MESSAGES 
*   3.1.2.3.2  ERROR MESSAGES 
*              -------------- 
* 
* 
*** 3.1.2.3.2.1  LOADER ERROR DISPLAY 
**  3.1.2.3.2.1  LOADER ERROR DISPLAY 
*   3.1.2.3.2.1  LOADER ERROR DISPLAY 
*                ---------------------
* 
*                THE FOLLOWING MESSAGES OCCUR IF A LOAD ERROR HAS BEEN
*                DETECTED.  THIS APPLIES TO A TEST OR LOADER ERROR. 
* 
*                NAD LOADER AND MONITOR(NLM)
*                NLM01X - LOCAL NAD LOADER
* 
*                ERROR - (ERROR MSG.........)   LF=FFFFB
*  POSSIBLE MSG  NLM01X L=LLLB  ADDR=ADDRH  EXP=EEEEH  ACT=AAAAH
*   (LINE 4)     NLM01X L=LLLB  ADDR=ADDRH
*                NLM01X  E=XXXX  L=XXX  (ERROR MSG..........) 
*  POSSIBLE MSG  LOCAL NAD H/S=HSSSB
*   (LINE 5)     LOCAL NAD H/S=HSSSB  C/S=CSSSB 
* 
* 
*                  *** (ERROR MSG.....) = ERROR MESSAGE 
*                      01X  = WHEN X=A, LOCAL LOADER EXECUTING
*                             WHEN X=B, REMOTE LOADER EXECUTING 
*                      FFFFB = LAST FUNCTION EXECUTED (OCTAL) 
*                      LLLB  = NLM01A LINE NUMBER OF ERROR  (OCTAL) 
*                      ADDRH = VERIFY ERROR ADDRESS (HEXADECIMAL) 
*                      EEEEH = EXPECTED CONTENTS OF ADDRESS (HEX) 
*                      AAAAH = ACTUAL CONTENTS OF ADDRESS (HEX) 
*                      HSSSB = LOCAL NAD HARDWARE STATUS (OCTAL)
*                      CSSSB = LOCAL NAD CONTROLWARE STATUS (OCTAL) 
* 
* 
* 
* 
*                IF DIAGNOSTIC SWITCH (S1) IS SET, THE FOLLOWING
*                DISPLAY WILL APPEAR AFTER THE USER ENTERS A *GO*:  
* 
*                           4-F(REGISTER DISPLAY) (HEXADECIMAL) 
*                WORD  4   XXXX  XXXX  XXXX  XXXX 
*                WORD  8   XXXX  XXXX  XXXX  XXXX 
*                WORD  C   XXXX  XXXX  XXXX  XXXX 
* 
*                 20-2F(TCI CONTROL PACKAGE) WILL BE DISPLAYED
*                       IF A REMOTE NAD IS BEING TESTED.
*                 30-3F(DI CONTROL PACKAGE) WILL BE DISPLAYED 
*                       IF A LOCAL NAD IS BEING TESTED. 
* 
* 
* 
* 
* 
*                IF DIAGNOSTIC SWITCH (S2) IS ON, THE FOLLOWING 
*                DISPLAY WILL APPEAR AFTER THE USER ENTERS A *GO*:  
* 
*                LAST BLOCK TRANSFERRED= IIIIB WORDS
*                FIRST NAD ADDR. OF LAST BLOCK=JJJJH
*                CM WORD COUNT OF TEST=KKKKKKKKKB 
*                ERROR ADDRESS=ADDRH  EXP=EEEEH  ACT=AAAAH
*                MALET REGISTERS (OCTAL)
*                 B0=XXXX  B1=XXXX  B2=XXXX  B3=XXXX
*                 B4=XXXX  B5=XXXX  B6=XXXX  B7=XXXX
*                 B8=XXXX  B9=XXXX B10=XXXX B11=XXXX
*                B12=XXXX B13=XXXX B14=XXXX B15=XXXX
*                 BA=XXXX  EC=XXXX  EA=XXXX  LF=XXXX
*                 WC=XXXX  WT=XXXX
* 
* 
*                              (INPUT BUFFER)   (OCTAL) 
*                 WORD 0    XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
* 
* 
*                              (OUTPUT BUFFER)  (OCTAL) 
*                 WORD 0    XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
*                           XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
* 
*                              IIIIB=NUMBER OF PP WORDS SENT TO 
*                                    NAD IN LAST TRANSFER (OCTAL) 
*                              JJJJH=FIRST NAD ADDRESS WRITTEN
*                                    BY LAST BLOCK TRANSFER (HEX) 
*                              KKKKKKKKKB=NUMBER OF CENTRAL MEMORY
*                                         WORDS IN NAD TEST (OCTAL) 
* 
* 
*** 3.1.2.3.2.2  MONITOR ERROR DISPLAY
**  3.1.2.3.2.2  MONITOR ERROR DISPLAY
*   3.1.2.3.2.2  MONITOR ERROR DISPLAY
*                ---------------------- 
* 
*                THE FOLLOWING DISPLAY WILL OCCUR IF THE MONITOR OR 
*                THE TEST HAS DETECTED AN ERROR.
* 
*                MNE - (TEST DES.........)
*                MNEMM -
*                COND=CCD  ICNT=IIH  LC=LLD  ECNT=EED 
*                MNEMM - (TEST STATE DES............) 
*                PROGRAM ADDRESS=AAAAH  EC=CCCCB
*                (ERROR MSG...........) 
*                (ERROR MSG...........) 
*                ADDR=ADDRH   EXP=EXPXH   ACT=ACTXH 
*                LOCAL NAD (STATUS...........)
* 
*                   *** MNE = TEST NAME 
*                       (TEST DES......) = DESCRIPTION OF THE TEST
*                       MM = TEST MODULE NUMBER 
*                       CC = CONDITION NUMBER 
*                       II = ITERATION COUNT
*                       LL = LOOP COUNT 
*                       EE = ERROR COUNT
*                       (TEST STATE......)= CURRENT STATE OF THE TEST 
*                       AAAAH = NAD RESIDENT TEST PROGRAM ADDRESS 
*                       CCCCB=TEST ERROR CODE 
*                       ADDRH=NAD MEMORY ADDRESS OF ERROR (HEX) 
*                       EXPXH=EXPECTED CONTENTS OF ADDRESS (HEX)
*                       ACTXH=ACTUAL CONTENTS OF ADDRESS (HEX)
*                       HSSSB=LOCAL NAD HARDWARE STATUS (OCTAL) 
*                       CSSSB = LOCAL NAD CONTROLWARE STATUS
* 
* 
* 
*                IF DIAGNOSTIC SWITCH S1 IS SET, THE FOLLOWING
*                DISPLAY WILL APPEAR AFTER THE USER ENTERS A
*                *GO*.
* 
* 
* 
*                           4-F(REGISTER DISPLAY) (HEXADECIMAL) 
*                WORD  4   XXXX  XXXX  XXXX  XXXX 
*                WORD  8   XXXX  XXXX  XXXX  XXXX 
*                WORD  C   XXXX  XXXX  XXXX  XXXX 
* 
*                20-2F(TCI CONTROL PACKAGE) WILL BE DISPLAYED 
*                      IF TESTING A REMOTE NAD. 
*                30-3F(DI CONTROL PACKAGE) WILL BE DISPLAYED
*                      IF TESTING A LOCAL NAD.
* 
* 
* 
*                 **NOTE: THE FOLLOWING DISPLAY WILL ONLY APPEAR
*                         WHILE TESTING A REMOTE NAD. 
* 
*                MAINTENANCE FUNCTION RESPONSE TABLE (HEXADECIMAL)
*                    WORD   0D  *H*H *H*H *H*H *H*H 
*                           4D  *H*H *H*H *H*H *H*H 
*                           8D  *H*H *H*H *H*H *H*H 
*                          12D  *H*H *H*H *H*H *H*H 
* 
*                  PATH STATUS TABLE (HEXADECIMAL)
*                    WORD   0D  *H*H *H*H *H*H *H*H 
*                           4D  *H*H *H*H *H*H *H*H 
*                           8D  *H*H *H*H *H*H *H*H 
*                          12D  *H*H *H*H *H*H *H*H 
*                          16D  *H*H *H*H *H*H *H*H 
*                          20D  *H*H *H*H *H*H *H*H 
* 
*                  GENERAL DETAILED STATUS TABLE  (HEXADECIMAL) 
*                    WORD   0D  *H*H *H*H *H*H *H*H 
*                           4D  *H*H *H*H *H*H *H*H 
*                           8D  *H*H *H*H *H*H *H*H 
* 
* 
*                 IF THE S2 DIAGNOSTIC SWITCH IS SET, AN
*                 INTERPRETATION OF THE MAINTENANCE FUNCTION
*                 RESPONSE TABLE, PATH STATUS TABLE AND THE 
*                 GENERAL DETAILED STATUS TABLE.
* 
* 
* 
* 
* 
* 
*** 3.1.2.3.2.3  DAYFILE ERROR MESSAGES 
**  3.1.2.3.2.3  DAYFILE ERROR MESSAGES 
*   3.1.2.3.2.3  DAYFILE ERROR MESSAGES 
*                ---------------------- 
* 
*                THE FOLLOWING MESSAGE WILL APPEAR IN THE DAYFILE IF
*                A LOAD ERROR OCCURS.  THE MESSAGE WILL BE POSTED 
*                AFTER THE LOADER MODULE ENDS OR EXITS TO THE 
*                MONITOR. 
* 
*                NLM01X - XXXXD ERRORS
* 
*                THE FOLLOWING MESSAGE WILL APPEAR IN THE DAYFILE IF
*                A MONITOR ERROR OCCURS.  THE MESSAGE WILL BE POSTED
*                AFTER THE TEST TERMINATES. 
* 
*                NLM02X - XXXXD ERRORS
* 
* 
*                  X=A IF RUNNING A TEST LOCALLY
*                    B IF RUNNING A TEST REMOTELY 
* 
* 
* 
* 
* 
*** 3.1.2.3.2.4  ERROR CODES
**  3.1.2.3.2.4  ERROR CODES
*   3.1.2.3.2.4  ERROR CODES
*              -----------------------------------
* 
*              ERROR CODE    ERROR MESSAGE
*              ---------     ------------ 
* 
*              3000,3001     //NLM NOT EXECUTED, NEEDS AL=5 OR 6, AL=XX// 
* 
*                             NLM REQUIRES AN ACCESS LEVEL OF 5 OR 6
*                             IN ORDER TO EXECUTE.  AN ACCESS LEVEL OF
*                             5 WILL DEDICATE ONE NAD WHILE AN ACCESS 
*                             LEVEL OF 6 WILL DEDICATE 2 NADS FOR TEST
*                             PURPOSES. 
* 
* 
*              3002           //RM SELECTED// 
* 
*                             THE REPEAT MODULE SWITCH IN THE EXECUTIVE 
*                             REGISTER HAS BEEN SET DURING EXECUTION OF 
*                             PARAMETER VALIDATOR (NLM00).  THIS IS 
*                             A VIOLATION OF RUNNING PROCEDURES.
* 
* 
*              3003           PROCESSOR MASTER CLEAR ERROR IN WORD E
* 
*                             WORD E OF THE NAD MEMORY
*                             CONTAINS A BIT INDICATING WHETHER THE 
*                             MASTER CLEAR OPERATION COMPLETED WITHOUT
*                             ERROR.  IF AN ERROR OCCURRED DURING THE 
*                             MASTER CLEAR SEQUENCE, THIS ERROR MESSAGE 
*                             WILL BE POSTED. 
* 
* 
*              3004           NO TEST RESPONSE
* 
*                             ONE OF THE FUNCTIONS OF THE MONITOR IS TO 
*                             SEND TEST PARAMETERS TO THE TEST
*                             REPEATEDLY.  THE NAD TEST IS REQUIRED 
*                             TO RESPOND THAT PARAMETERS WERE RECEIVED. 
*                             IF A RESPONSE IS NOT SENT TO THE
*                             THE MONITOR, THIS ERROR MESSAGE WILL
*                             BE POSTED.
* 
* 
*              3005           TEST STATE=0
* 
*                             THE STATE OF THE NAD TEST IS CONTAINED
*                             IN MEMORY WORD 50 OF THE NAD TESTED.
*                             THE LEGAL STATES OF THE TEST RANGE FROM 
*                             1-17B.  A STATE OF ZERO IS ILLEGAL AND
*                             USUALLY INDICATES THAT THE TEST HAS NOT 
*                             BEGUN EXECUTION DUE TO AN ERROR.
* 
* 
*              3006           MONITOR TIME-OUT
* 
*                             ALL NAD TEST CONDITIONS MUST RUN WITHIN 
*                             A CERTAIN TIME FRAME.  IF THE TEST
*                             HAS NOT RESPONDED TO THE MONITOR WITHIN 
*                             THIS TIME FRAME, THE MONITOR WILL THEN
*                             REPORT THE LATEST TEST STATUS AND INDICATE
*                             THAT A TEST ERROR HAS OCCURRED BUT CANNOT 
*                             BE REPORTED BY THE TEST.  A POSSIBLE
*                             PROBLEM MAY BE THAT THE NAD PROCESSOR HAS 
*                             STOPPED AND THEREFORE THE TEST HAS
*                             STOPPED.
* 
* 
*              3007           MAINTENANCE RESPONSE ERROR
* 
*                             WHEN COMMUNICATING TO A REMOTE NAD
*                             ACROSS THE TRUNK, THE TRUNK HARDWARE
*                             RETURNS STATUS OF THE TRUNK IN AN MESSAGE 
*                             WITH EACH TRANSACTION.  THE MONITOR 
*                             USES THE INFORMATION TO REPORT ANY
*                             ERRORS THAT MIGHT HAVE OCCURRED DURING
*                             TRANSFER OF THE TEST STATUS AND PARA- 
*                             METERS BETWEEN THE MONITOR AND THE TEST.
* 
* 
*              3010           REMOTE NAD PROCESSOR HAS STOPPED
* 
*                             AFTER A TEST ERROR OR MONITOR DETECTED
*                             ERROR HAS OCCURRED, THE MONITOR WILL
*                             ALWAYS CHECK TO SEE IF THE NAD PROCESSOR
*                             IS STILL RUNNING.  IF THE PROCESSOR HAS 
*                             STOPPED, THIS ERROR MESSAGE WILL BE 
*                             REPORTED. 
* 
* 
*              3011           LOCAL NAD PROCESSOR HAS STOPPED 
* 
*                             AFTER A TEST ERROR OR MONITOR DETECTED
*                             ERROR HAS OCCURRED, THE MONITOR WILL
*                             ALWAYS CHECK TO SEE IF THE NAD PROCESSOR
*                             IS STILL RUNNING.  IF THE PROCESSOR HAS 
*                             STOPPED, THIS ERROR MESSAGE WILL BE 
*                             REPORTED. 
* 
* 
* 
* 
* 
*** 3.1.2.4  MODULE DESCRIPTIONS
**  3.1.2.4  MODULE DESCRIPTIONS
*   3.1.2.4  MODULE DESCRIPTIONS
*            -------------------
* 
* 
   MODULE NLM00,LCN,(300,301),LOCK
***       NLM00 - VALIDATION OF USER ENTRIES
**        NLM00 - VALIDATION OF USER ENTRIES
*         NLM00 - VALIDATION OF USER ENTRIES
* 
*         PURPOSE - 
*         NLM00  VERIFIES  USER  ENTERED PARAMETERS COMMON TO 
*         LCN  TESTS  PRIOR  TO  TEST  EXECUTION.   THE  ONLY 
*         PARAMETERS  CHECKED  ARE THOSE PARAMETERS COMMON TO 
*         ALL LCN TESTS.  ANY OTHER PARAMETERS  ARE  VERIFIED 
*         BY THE TEST.
* 
*         METHOD -
*         1. VERIFY THAT AN ACCESS LEVEL OF 5 OR  6  HAS  BEEN
*            ENTERED IN THE ASSIGN CARD.
*         2. VERIFY THAT REPEAT MODULE IS NOT SELECTED IN THE 
*            EXECUTIVE REGISTER WHILE NLM00 IS EXECUTING. 
* 
/ 
*         ENTRY - 
*         NLM00  IS  ENTERED WHEN THE USER ENTERS THE *R NLM* 
*         COMMAND.
* 
*         EXIT -
*         NLM00 EXITS TO NLM01(LCN LOADER BRANCH).
* 
*         REGISTERS USED -
*         B7 - CONTAINS THE ERROR COUNT.
*         AL - CONTAINS  THE  ACCESS  LEVEL  ENTERED  IN  THE 
*              ASSIGN CARD. 
*         ES - CONTAINS THE EXECUTIVE SWITCHES. 
*         EM - CONTAINS THE ERROR MESSAGE INDEX.
*         EC - CONTAINS THE MONITOR ERROR CODE. 
*         EA - CONTAINS THE MODULE LINE NUMBER ON WHICH 
*              THE ERROR OCCURRED.
* 
1  FORMAT NAD LOADER AND MONITOR (NLM)
2  FORMAT NLM00 - VALIDATION OF USER ENTRIES
3  FORMAT //NLM NOT EXECUTED,NEEDS AL=5 OR 6,AL=*OCTB// 
4  FORMAT //RM SELECTED// 
5  FORMAT NLM00  EC=*OCTB  L=*OCB 
26 FORMAT 
27 FORMAT --------------------------------------------------- 
* 
30 MSG 2 TO PRINT,DISPLAY 
* 
/-----------CHECK ACCESS LEVEL ENTERED IN ASSIGN CARD.
* 
32 IF(AL.LT.5) ERROR 03/3000, GOTO 70  *IF AL NOT 5 
   IF(AL.EQ.7) ERROR 03/3001, GOTO 70   *IF AL=7
* 
/-----------CHECK REPEAT MODULE SELECTED IN ES REGISTER.
* 
34 IF(ES.AND.RM.NE.0) ERROR 04/3002, GOTO 70
   EXIT 
* 
/-----------ERROR PROCESSING ROUTINE. 
* 
70 B7=B7+1                      *INCREMENT ERROR COUNT
   MSG 1 TO LINE 1
   MSG 2 TO LINE 2
   MSG EM (AL) TO LINE 3        *DISPLAY ERROR MESSAGE
   MSG 5(EC,EA) TO LINE 4 
   PICTURE
   PAUSE
   MSG 27 TO PRINT
   BLANK
   GOTO 32
   END 30 
COMPILE            *NLM00 - VALIDATION OF USER ENTRIES
   MODULE NLM01,LCN,(300,301),LOCK
***       NLM01 - LOCAL/REMOTE LOADER BRANCH. 
**        NLM01 - LOCAL/REMOTE LOADER BRANCH. 
*         NLM01 - LOCAL/REMOTE LOADER BRANCH. 
* 
* 
*         PURPOSE - 
*         NLM01 ACTS AS A BRANCH MECHANISM.  NLM01 WILL EXIT TO EITHER
*         THE LOCAL OR REMOTE LOADER DEPENDING ON THE CONTENTS OF THE 
*         DEVICE CODE(DC) REGISTER. 
* 
* 
*         METHOD -
*         1. IF A DEVICE CODE OF 300 IS ENTERED IN THE ASSIGN CARD, 
*            NLM01 WILL EXIT TO THE LOCAL LOADER (NLM01A).
* 
*         2. IF A DEVICE CODE OF 301 IS ENTERED IN THE ASSIGN CARD, 
*            NLM01 WILL EXIT TO THE REMOTE LOADER (NLM01B). 
* 
* 
* 
/ 
*         ENTRY - 
*         NLM01 IS ENTERED FROM NLM00 (PARAMETER VALIDATOR).
* 
*         EXIT -
*         EXIT 1 - NLM01 EXITS TO NLM01A WHEN THE DEVICE CODE REGISTER
*                  CONTAINS 300.
*         EXIT 2 - NLM01 EXITS TO NLM01B WHEN THE DEVICE CODE REGISTER
*                  CONTAINS 301.
* 
*         REGISTERS USED -
*         AL = ACCESS LEVEL REGISTER. 
*         DC = DEVICE CODE REGISTER.
* 
*         REMARKS - 
*         THE DEVICE CODE ENTERED IN THE ASSIGN STATEMENT IS ALSO 
*         CONTAINED IN THE DEVICE CODE REGISTER.
* 
* 
* 
20 IF(DC.EQ.300) EXIT TO 01A   *IF LOCAL NAD SELECTED 
   IF(DC.EQ.301) EXIT TO 01B   *IF REMOTE NAD SELECTED
   END 20 
COMPILE            *NLM01 - LOCAL/REMOTE LOADER BRANCH. 
   MODULE NLM01A,LCN,(300),LOCK 
***       NLM01A - LOCAL NAD LOADER.
**        NLM01A - LOCAL NAD LOADER.
*         NLM01A - LOCAL NAD LOADER.
* 
*         PURPOSE - 
*         NLM01A DOWNLOADS THE NAD TEST FROM THE SCRATCH FILE 
*         INTO THE LOCAL NAD MEMORY.   NLM01A THEN VERIFIES THAT
*         THE TEST DOWNLOADED CORRECTLY.
* 
* 
*         METHOD -
*         1. MASTER CLEAR THE DEVICE INTERFACE. 
*         2. MASTER CLEAR THE LOCAL NAD PROCESSOR TO HALT 
*            PROCESSOR ACTIVITY.
*         3. DISPLAY *MNE LOADING* MESSAGE. (MNE=TEST NAME) 
*         4. DOWNLOAD THE NAD TEST INTO THE LOCAL NAD MEMORY. 
*         5. DISPLAY *MNE LOADED* MESSAGE. (MNE=TEST NAME)
*         7. VERIFY THAT THE LAST BLOCK OF THE TEST LOADED
*            INTO THE NAD MEMORY CORRECTLY. 
*         8. VERIFY THAT THE FIRST BLOCK OF THE TEST LOADED 
*            INTO THE NAD MEMORY CORRECTLY. 
*         9. DISPLAY *MNE LOAD VERIFIED* MESSAGE. (MNE=TEST NAME) 
* 
/ 
*         ENTRY - 
*         NLM01A IS ENTERED FROM NLM01 WHEN THE USER ENTERS A 
*         DEVICE CODE OF 300 IN THE ASSIGN CARD.
* 
* 
*         SUBMODULES REFERENCED - 
*         NLM98A - REPORTS ANY ERROR THAT OCCURS WHILE
*                  NLM01A IS EXECUTING. 
* 
* 
*         EXIT -
*         NLM01A EXITS TO NLM02 (THE MONITOR BRANCH). 
* 
* 
* 
*         REGISTERS USED -
*         B0 = UPPER 8 BITS OF NAD ADDRESS NEEDED FOR LAST
*              BLOCK VERIFY.
*         B1 = LOWER 8 BITS OF NAD ADDRESS NEEDED FOR LAST
*              BLOCK VERIFY.
*         B2 = SYSRD STATUS.
*         B5 = COMMAND INDEX. 
*         B6 = LAST FUNCTION EXECUTED.
*         B7 = ERROR COUNT. 
*         B8 = LOOP COUNT.
*         B12= WORKING REGISTER.
*         B13= NUMBER OF CM WORDS IN LAST BLOCK VERIFY. 
*         B14= NUMBER OF PP WORDS IN LAST BLOCK VERIFY. 
*         DS = DIAGNOSTIC SWITCH REGISTER.
*         WT = CONTAINS THE NUMBER OF PP WORDS TRANSFERRED
*              DURING LOADING AND VERIFYING.
*         WC = NUMBER OF PP WORDS TO VERIFY.
*         ES = EXECUTIVE SWITCH REGISTER
*              SL SWITCH = SCOPE LOOPING
*         DS = DIAGNOSTIC SWITCH REGISTER 
*              S1 SWITCH = 4-3F REPORTING 
*              S2 SWITCH = REGISTER, IB/OB REPORTING
* 
* 
*         BUFFERS USED -
*         SB(44) = UPPER 4 BITS OF THE PP WORD COUNT OF THE NAD 
*                  TEST AFTER IT HAS BEEN LOADED. 
*         IB(0-477) = DATA WRITTEN INTO NAD MEMORY. 
*         IB(25) = WORD E OF LOCAL NAD MEMORY.
*         IB(0)  = FIRST WORD OF 77 HEADER TABLE PRECEEDING 
*                  TEST.
*         IB(501-504) = TEST NAME.
*         OB(0-477) = DATA TO READ FROM NAD MEMORY FOR VERIFY.
*         OB(501-502) = CM WORD COUNT OF TEST.
*         OB(503) = LOWER 12 BITS OF PP WORD COUNT OF TEST. 
* 
*         REMARKS - 
*         A NAD TEST MUST RESIDE IN THE SCRATCH FILE BEFORE 
*         EXECUTION OF NLM01A.
* 
* 
1  FORMAT NAD LOADER AND MONITOR(NLM) 
2  FORMAT NLM01A - LOCAL NAD LOADER 
3  FORMAT *A*A LOADING
4  FORMAT *A*A LOADED 
5  FORMAT *A*A LOAD VERIFIED
6  FORMAT  NLM01A E*OCT L*OC  ERROR IN NAD ADDRESS E
24 FORMAT NLM01A ERRORS = *DECD 
25 FORMAT NLM01A EC=*DECD  LC=*DECD 
* 
/-----------EQUATES.
* 
   EQUATE RESX=0,PMCX=1,LDXX=2,RDXX=3 
   EQUATE IMCX=4,CMPX=5,ACTX=6,MRDX=7 
   EQUATE VFLX=12,VFFX=13,PMCE=23,WRXX=14 
* 
/----------LOAD THE TEST INTO LOCAL NAD MEMORY. 
* 
* 
30 MSG 1 TO PRINT 
   MSG 2 TO PRINT,DISPLAY 
32 B14=0                     *CLEAR B REGISTER
   B12=0                     *CLEAR B REGISTER
   GOSUB 50 
   B5=IMCX                   *DI MC COMMAND INDEX 
   IMC, ABT 70
* 
/-----------WRITE NAD MEMORY 4-3F TO AVOID PARITY ERRORS ON READ. 
* 
   B5=WRXX                   *WRITE MEM. TO CLEAR P.E.
   MEMORY WRITE 12/8 200B WORDS TO 4H FROM OB, ABT 70 
   B5=PMCX                   *PMC COMMAND INDEX 
   PMC, ABT 70               *MASTER CLEAR NAD PROCESSOR
   B5=RDXX                   *MEMORY READ COMMAND INDEX 
   MEMORY READ 8/12 30B WORDS FROM 4H TO IB(0), ABT 70
   B5=PMCE                   *CHECK NAD WORD E INDEX
   IF(IB(25).AND.100.EQ.0) ERROR 06/3003, GOTO 70 
   GOSUB 60                  *OBTAIN TEST NAME, TEST LENGTH 
   GOSUB 50 
   IF(IB(0).NE.7700) GOTO 34   *TEST NOT IN SCRATCH FILE
   MSG 3 4 WORDS FROM IB(501) TO PRINT,DISPLAY
   REL, ABT 70
   SYSREW 
   GOSUB 50 
34 B5=LDXX                   *LOAD COMMAND INDEX
   LOAD, ABT 70              *LOAD TEST INTO LOCAL NAD
   OB(503)=WT                *SAVE NO. TEST(PP) WORDS 
   MSG 4 4 WORDS FROM IB(501) TO PRINT,DISPLAY
   GOSUB 50 
* 
/-----------VERIFY THE LOAD OPERATION.
* 
   GOSUB 64                 *CALC. LAST BLOCK STARTING ADDR.
*         VERIFY THE LAST 500B TEST WORDS TRANSFERRED.
   COPY IB(0) TO OB(0) FOR 500B 
   B5=RDXX                   *MEMORY READ COMMAND INDEX 
   MEMORY READ 8/12 B14 WORDS FROM B0/B1 TO IB(0), ABT 70 
   WC=B14                    *NUMBER OF WORDS TO VERIFY 
   B5=VFLX                   *VERIFY LAST BLOCK INDEX 
   COMPARE IB(0) TO OB(0) FOR WC, ABT 70
*         VERIFY THE FIRST 360B TEST WORDS TRANSFERRED (EX. 30-3F). 
   B5=RESX                         *RESERVE/REL CHANNEL 
   REL, ABT 70
   SYSREW 
   SYSRD,STATUS TO B2 
   GOSUB 50 
   COPY IB(120) TO OB(0) FOR 360  *INPUT FIRST 360B WORDS 
   B5=RDXX                   *MEMORY READ COMMAND INDEX 
   MEMORY READ 8/12 500B WORDS FROM 0 TO IB(0), ABT 70
   B5=VFFX                   *VERIFY FIRST BLOCK INDEX
   WC=156B
   COMPARE IB(202) TO OB(202) FOR WC,ABT 70 
   MSG 5 4 WORDS FROM IB(501) TO PRINT,DISPLAY
   IF(B7.NE.0) MSG 24(B7) TO DAYFILE,PRINT,DISPLAY
   EXIT                    *EXIT TO NLM02 
* 
/-----------SUBROUTINE TO RESERVE THE CHANNEL.
* 
50 B5=RESX                   *RESERVE CHANNEL COMMAND INDEX 
   RES, ABT 70
   RETURN 
* 
/-----------SUBROUTINE TO SAVE THE TEST NAME/TEST LENGTH. 
* 
60 B5=RESX                         *RESERVE/REL CHANNEL 
   REL, ABT 70
   SYSREW 
   SYSRD, STATUS TO B2  *READ SCRATCH FILE - 500B WORDS 
*         SAVE THE TEST NAME
   IB(501)=IB(5)             *TEST NAME - 2 CHARACTERS
   IB(502)=IB(6)             *TEST NAME - 2 CHARACTERS
   OB(501)=IB(116)           *CM WORD COUNT - UPPER BITS
   OB(502)=IB(117)           *CM WORD COUNT - LOWER BITS
   RETURN 
* 
/-----------CALCULATE ADDRESS OF LAST BLOCK TRANSFER. 
* 
64 B13=OB(502)-61.AND.77     *CM WORD COUNT OF LAST BLOCK 
66 B14=B13+B14
   B12=B12+1
   IF(B12.NE.5) GOTO 66 
   IF(B13.EQ.0) B14=500B     *PP WORD COUNT OF LAST BLOCK 
*          CALCULATE NAD ADDRESS IN HEX.
   B1=WT-B14             *LOWER 12 BITS OF TEST WORD TOTAL
   B0=SB(44)
   IF(WT.LT.B14) B0=B0-1B  *SUBTRACT CARRY BIT
   IF(WT.LT.B14) B1=B1+1     *COMPENSATE FOR ADDER
   B1=B1.RS.1 
   IF(B0.AND.1.EQ.1) B1=B1+4000B
   B0=B0.RS.1 
*         12/8 BIT CONVERIONS FOR 2 PP WORD NAD ADDRESS 
   B0=B0.LS.4 
   B0=B1.RS.8D+B0   *UPPER 8 BITS OF NAD ADDRESS
   B1=B1.AND.377B   *LOWER 8 BITS OF NAD ADDRESS
   B14=B14-2        *AVOID READING LAST ADDRESS+1 
   RETURN 
* 
/-----------MODULE ERROR PROCESSOR. 
* 
70 B8=B8+1                   *INCREMENT LOOP COUNT
   B7=B7+1                   *INCREMENT ERROR COUNT 
   IF(ES.AND.SL.NE.0) GOTO 77 
   MSG EM(EC,EA) TO LINE 4
   B6=LF                   *SAVE LAST FUNCTION EXECUTED 
   IF(DS.AND.S1.EQ.0) GOTO 76 
   IF(SB(0).EQ.0) STATUS HARDWARE, ABT 72 
72 B3=SB(0)                *SAVE HARDWARE STATUS
   B4=SB(1)                *SAVE CONTROLWARE STATUS 
74 IB(300)=7777            *VALID NAD MEMORY BUFFER INDEX 
   MEMORY READ 8/12 170B WORDS FROM 4H TO IB(300), ABT 76 
76 CALL 98A                  *REPORT ERROR
77 MSG 25(B7,B8) TO DISPLAY 
   GOTO 32                   *REPEAT LOAD PROCESS 
   END 30 
COMPILE            *NLM01A - LOCAL NAD LOADER.
   MODULE NLM01B,LCN,(301),LOCK 
***       NLM01B - REMOTE NAD LOADER. 
**        NLM01B - REMOTE NAD LOADER. 
*         NLM01B - REMOTE NAD LOADER. 
* 
* 
*         PURPOSE - 
*         NLM01B DOWNLOADS THE NAD TEST FROM THE SCRATCH FILE INTO
*         THE REMOTE NAD MEMORY.  NLM01B THEN VERIFIES THAT THE TEST
*         DOWNLOADED CORRECTLY. 
* 
* 
*         METHOD -
*         1. A REMOTE MAINTENANCE PATH IS CONNECTED AND ACTIVATED.
*         2. THE *MNE LOADING* MESSAGE IS DISPLAYED. (MNE=TEST NAME)
*         3. THE REMOTE NAD PROCESSOR IS STOPPED AND THE TEST RESIDING
*            IN THE SCRATCH  FILE  IS  DOWNLOADED  INTO THE REMOTE NAD
*            USING THE LOAD COMMAND.
*         4. THE *MNE LOADED* MESSAGE IS DISPLAYED. (MNE=TEST NAME) 
*         5. VERIFY THAT THE LAST BLOCK OF THE TEST WAS CORRECTLY 
*            STORED IN THE REMOTE NAD MEMORY. 
*         6. VERIFY THAT THE FIRST BLOCK  OF  THE TEST WAS CORRECTLY
*            STORED IN THE REMOTE NAD MEMORY. 
*         7. THE *MNE LOAD VERIFIED* MESSAGE IS DISPLAYED.(MNE=TEST 
*            NAME)
* 
/ 
*         ENTRY - 
*         NLM01B IS ENTERED FROM NLM01  WHEN  THE  DEVICE  CODE 
*         EQUALS 301. 
* 
*         EXIT -
*         NLM01B EXITS TO NLM02 (NAD MONITOR BRANCH). 
* 
*         REGISTERS USED -
*         B0 = UPPER 8 BITS OF FIRST NAD ADDRESS OF THE LAST TEST 
*              BLOCK DOWNLOADED INTO NAD MEMORY.
*         B1 = LOWER 8 BITS  OF FIRST NAD ADDRESS OF THE LAST BLOCK 
*              THE TEST DOWNLOADED INTO NAD MEMORY. 
*         B2 = STATUS OF THE SCRATCH FILE AFTER  A SYSRD COMMAND
*              HAS BEEN EXECUTED. 
*         B5 = COMMAND INDEX. 
*         B6 = LAST FUNCTION EXECUTED.
*         B7 = ERROR COUNT. 
*         B8 = LOOP COUNT.
*         B12 = A WORKING REGISTER. 
*         B13 = CM WORD COUNT OF LAST BLOCK OF THE TEST TRANSFERRED 
*               TO THE REMOTE NAD.
*         B14 = PP WORD COUNT OF LAST BLOCK OF THE TEST TRANSFERRED 
*               TO THE REMOTE NAD.
*         WC = NUMBER OF PP WORDS VERIFIED IN THE VERIFY PROCESS. 
*         WT = NUMBER OF PP WORDS TRANSFERRED DURING THE
*              LOADING OR VERIFYING OF THE NAD TEST.
* 
*         BUFFERS USED -
*         IB(0-477) CONTAINS  EACH  CONSECUTIVE  500B WORD BLOCK
*                   OF THE NAD TEST DOWNLOADED INTO NAD MEMORY. 
*         IB(501-504) CONTAINS THE NAME OF THE TEST BEING DOWNLOADED. 
*         OB(0-477) CONTAINS THE NAD TEST WORDS OF THE FIRST OR LAST
*                   BLOCK DURING THE VERIFY PROCESS.
*         OB(501-502) CONTAINS THE CM WORD COUNT OF THE NAD TEST. 
*         OB(503) CONTAINS THE NUMBER OF PP TEST WORDS TRANSFERRED
*                 TO THE REMOTE NAD.
*         SB(44)=UPPER 4 BITS OF THE TOTAL PP WORDS TRANSFERRED 
*                INTO THE REMOTE NAD MEMORY.
* 
*         REMARKS - 
*         A NAD TEST MUST RESIDE IN THE SCRATCH FILE BEFORE 
*         EXECUTION OF NLM01B.
* 
1  FORMAT NAD LOADER AND MONITOR(NLM) 
2  FORMAT NLM01B - REMOTE NAD LOADER
3  FORMAT *A*A LOADING
4  FORMAT *A*A LOADED 
5  FORMAT *A*A LOAD VERIFIED
6  FORMAT  NLM01B E*OCT L*OC  ERROR IN NAD ADDRESS E
24 FORMAT NLM01B ERRORS = *DECD 
25 FORMAT NLM01B EC=*DECD   LC=*DECD
* 
/-----------MODULE EQUATES. 
* 
   EQUATE RESX=0,PMCX=1,LDXX=2,RDXX=3 
   EQUATE IMCX=4,CMPX=5,ACTX=6,MRDX=7,WRXX=14 
   EQUATE VFLX=12, VFFX=13, RESM=22, PMCE=23
* 
/----------LOAD THE TEST INTO REMOTE NAD MEMORY.
* 
30 MSG 1 TO PRINT 
   MSG 2 TO PRINT,DISPLAY 
* 
/-----------SAVE THE TEST NAME/TEST LENGTH. 
* 
32 GOSUB 60 
   IB(501)=IB(5)             *TEST NAME - 2 CHARACTERS
   IB(502)=IB(6)             *TEST NAME - 2 CHARACTERS
   OB(501)=IB(116)           *CM WORD COUNT - UPPER BITS
   OB(502)=IB(117)           *CM WORD COUNT - LOWER BITS
   IF(IB(0).NE.7700) GOTO 34
   MSG 3 4 WORDS FROM IB(501) TO PRINT,DISPLAY
* 
/-----------WRITE NAD MEMORY TO AVOID P.E. ON POWER UP. 
* 
34 GOSUB 62                  *RESERVE CHANNEL/SELECT PATH 
   GOSUB 50             *MASTER CLEAR THE NAD PROCESSOR 
   B5=WRXX                   *WRITE MEMORY TO CLEAR P.E.
   WRITE DATA 200B WORDS FROM OB, ABT 70
   TRANS, ABT 70             *TRANSMIT DATA 
   GOSUB 50              *MASTER CLEAR THE NAD PROCESSOR
   B1=4                      *SET ADDRESS OF AUTODUMP 
   WC=30B                    *SET WORD COUNT OF AUTODUMP
   GOSUB 40                  *AUTODUMP NAD MEMORY 4-FH
   B5=PMCE                   *CHECK NAD WORD E INDEX
   IF(IB(25).AND.100.EQ.0) ERROR 06/3003, GOTO 70 
* 
/-----------LOAD TEST INTO NAD MEMORY.
* 
   B5=LDXX                   *LOAD COMMAND INDEX
   LOAD, ABT 70              *LOAD TEST INTO REMOTE MEMORY
   OB(503)=WT                *SAVE NO. TEST(PP) WORDS 
   MSG 4 4 WORDS FROM IB(501) TO PRINT,DISPLAY
* 
/-----------CALCULATE LAST BLOCK ADDRESS OF TEST LOAD.
* 
    CALL 01C                      *GO CALCULATE BLOCK ADDRESS 
* 
/-----------VERIFY THE LAST 500B TEST WORDS TRANSFERRED.
* 
   COPY IB(0) TO OB(0) FOR 500B 
   GOSUB 62                  *RESERVE CHANNEL/SELECT PATH 
   IF(B14.LT.34) GOTO 36     *IF LAST BLOCK .LT. 34B WORDS
   WC=B14                    *SET WORD COUNT OF AUTODUMP
   GOSUB 40 
   B5=VFLX                   *VERIFY LAST BLOCK INDEX 
   WC=B14-32
   COMPARE IB(32) TO OB(32) FOR WC, ABT 70
* 
/-----------VERIFY THE FIRST 500B TEST WORDS TRANSFERRED. 
* 
36 GOSUB 60 
   GOSUB 62             *RESERVE CHANNEL/SELECT PATH
   COPY IB(0) TO OB(0) FOR 500B  *WRITE FIRST 500B WORDS
   B0=0                      *SET ADDRESS FOR AUTODUMP
   B1=0 
   WC=360B                   *SET WORD COUNT FOR AUTODUMP 
   GOSUB 40 
   B5=VFFX                   *VERIFY FIRST BLOCK VERIFY 
   WC=116B
   COMPARE IB(202) TO OB(322) FOR WC, ABT 70
   MSG 5 4 WORDS FROM IB(501) TO PRINT,DISPLAY
   IF(B7.NE.0) MSG 24(B7) TO DAYFILE,PRINT,DISPLAY
   EXIT 
* 
/-----------SUBROUTINE TO AUTODUMP NAD MEMORY.
* 
40 B5=MRDX                   *MAINTENANCE READ COMMAND INDEX
   AUTODMP WC WORDS FROM B0/B1 TO IB(0), ABT 70 
* 
/-----------SUBROUTINE TO CHECK REMOTE NAD STATUS.
* 
   IF(OB(3).AND.160.NE.120), GOTO 42  *IF NOT INTERR. 5 
   IF(OB(24).AND.177.NE.0), GOTO 42   *P1 ERR.
   IF(OB(25).OR.OB(26).NE.040), GOTO 42  *P2 ERR. 
   RETURN 
* 
/-----------SUBROUTINE TO MASTER CLEAR NAD PROCESSOR. 
* 
50 B5=PMCX                   *MASTER CLEAR NAD PROCESSOR
   PMC, ABT 70
   RETURN 
* 
60 REL, ABT 70
   SYSREW 
   SYSRD,STATUS TO B2 
   SYSREW 
   RETURN 
/-----------SUBROUTINE TO RESERVE CHANNEL/SELECT PATH.
* 
62 B5=RESM                   *RESERVE CHANNEL/SELECT PATH 
   RES MAINT PATH DA BUFFER 1, ABT 70 
   RETURN 
* 
/-----------MODULE ERROR PROCESSOR. 
* 
42 ERROR 11/3007                   *IF BAD REMOTE NAD RESPONSE
70 B8=B8+1                   *INCREMENT LOOP COUNT
   B7=B7+1                   *INCREMENT ERROR COUNT 
   IF(ES.AND.SL.NE.0) GOTO 77 
   MSG EM(EC,EA) TO LINE 4
   B6=LF                        *SAVE LAST FUNCTION EXECUTED
   IF(DS.AND.S1.EQ.0) GOTO 76 
   IF(SB(0).EQ.0) STATUS HARDWARE, ABT 72 
72 B3=SB(0)     *SAVE HARDWARE STATUS 
   B4=SB(1)     *SAVE CONTROLWARE STATUS
74 IB(300)=7777                 *VALID NAD MEMORY BUFFER INDEX
   AUTODMP 170B WORDS FROM 4H TO IB(300), ABT 76
76 CALL 98A                  *REPORT ERROR
77 MSG 25(B7,B8) TO DISPLAY 
   ENDSUB, GOTO 32           *REPEAT LOAD PROCESS 
   END 30 
COMPILE            *NLM01B - REMOTE NAD LOADER. 
   MODULE NLM01C,LCN,(301),LOCK 
***       NLM01C - CALCULATE LAST BLOCK ADDRESS.
**        NLM01C - CALCULATE LAST BLOCK ADDRESS.
*         NLM01C - CALCULATE LAST BLOCK ADDRESS.
* 
* 
*         PURPOSE - 
*         NLM01C CALCULATES THE LAST BLOCK ADDRESS OF TEST LOAD FOR 
*         MODULE NLM01B.
* 
* 
*         METHOD -
*         1. CALCULATE THE LAST BLOCK OF THE TEST FOR NLM01B BECAUSE
*            OF LIMITED SPACE IN THAT MODULE. 
*         2. RETURN TO MODULE NLM01B. 
* 
/ 
*         ENTRY - 
*         NLM01C IS ENTERED FROM NLM01B WHEN  CALCULATION OF THE
*         LAST BLOCK IS NECESSARY.
* 
*         EXIT -
*         NLM01C EXITS TO NLM02 (NAD MONITOR BRANCH). 
* 
*         REGISTERS USED -
*         B0 = UPPER 8 BITS OF FIRST NAD ADDRESS OF THE LAST TEST 
*              BLOCK DOWNLOADED INTO NAD MEMORY.
*         B1 = LOWER 8 BITS  OF FIRST NAD ADDRESS OF THE LAST BLOCK 
*              THE TEST DOWNLOADED INTO NAD MEMORY. 
*         B12 = A WORKING REGISTER. 
*         B13 = CM WORD COUNT OF LAST BLOCK OF THE TEST TRANSFERRED 
*               TO THE REMOTE NAD.
*         B14 = PP WORD COUNT OF LAST BLOCK OF THE TEST TRANSFERRED 
*               TO THE REMOTE NAD.
*         WT = NUMBER OF PP WORDS TRANSFERRED DURING THE
*              LOADING OR VERIFYING OF THE NAD TEST.
* 
*         BUFFERS USED -
*                   BLOCK DURING THE VERIFY PROCESS.
*         OB(501-502) CONTAINS THE CM WORD COUNT OF THE NAD TEST. 
*         SB(44)=UPPER 4 BITS OF THE TOTAL PP WORDS TRANSFERRED 
*                INTO THE REMOTE NAD MEMORY.
* 
/-----------CALCULATE LAST BLOCK ADDRESS OF TEST LOAD.
* 
10 B12=0
   B14=0
   B13=OB(502)-61.AND.77  *CM WORD COUNT OF LAST BLOCK
20 B14=B13+B14
   B12=B12+1
   IF(B12.NE.5) GOTO 20 
   IF(B13.EQ.0) B14=500B     *PP WORD COUNT OF LAST BLOCK 
   IF(B14.AND.1.EQ.1) B14=B14+1     *CREATE EVEN PP COUNT 
*          CALCULATE NAD ADDRESS IN HEX.
   B1=WT-B14             *LOWER 12 BITS OF TEST WORD TOTAL
   B0=SB(44)
   IF(WT.LT.B14) B0=B0-1B  *SUBTRACT CARRY BIT
   IF(WT.LT.B14) B1=B1+1     *COMPENSATE FOR ADDER
   B1=B1.RS.1 
   IF(B0.AND.1.EQ.1) B1=B1+4000B
   B0=B0.RS.1 
*         12/8 BIT CONVERIONS FOR 2 PP WORD NAD ADDRESS 
   B0=B0.LS.4 
   B0=B1.RS.8D+B0   *UPPER 8 BITS OF NAD ADDRESS
   B1=B1.AND.377B   *LOWER 8 BITS OF NAD ADDRESS
   B14=B14-2        *AVOID READING LAST ADDRESS+1 
   EXIT             *BACK TO NLM01B 
   END 10 
COMPILE             *NLM01B - CALCULATE LAST BLOCK
   MODULE NLM02,LCN,(300,301),LOCK
***       NLM02 - LOCAL/REMOTE MONITOR BRANCH.
**        NLM02 - LOCAL/REMOTE MONITOR BRANCH.
*         NLM02 - LOCAL/REMOTE MONITOR BRANCH.
* 
* 
*         PURPOSE - 
*         NLM02 ACTS AS A BRANCH MECHANISM.  NLM02 WILL EXIT TO EITHER
*         THE LOCAL OR REMOTE LOADER DEPENDING ON THE CONTENTS OF THE 
*         DEVICE CODE(DC) REGISTER. 
* 
* 
*         METHOD -
*         1. IF A DEVICE CODE OF 300 IS ENTERED IN THE ASSIGN CARD, 
*            NLM02 WILL EXIT TO THE LOCAL LOADER (NLM02A).
* 
*         2. IF A DEVICE CODE OF 301 IS ENTERED IN THE ASSIGN CARD, 
*            NLM02 WILL EXIT TO THE REMOTE LOADER (NLM02B). 
* 
* 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM02 IS ENTERED FROM NLM01A WHEN DEVICE CODE 
*                   REGISTER CONTAINS 300.
*         ENTRY 2 - NLM02 IS ENTERED FROM NLM01B WHEN DEVICE CODE 
*                  REGISTER CONTAINS 301. 
* 
*         EXIT -
*         EXIT 1 - NLM02 EXITS TO NLM02A WHEN THE DEVICE CODE REGISTER
*                  CONTAINS 300.
*         EXIT 2 - NLM02 EXITS TO NLM02B WHEN THE DEVICE CODE REGISTER
*                  CONTAINS 301.
* 
*         REGISTERS USED -
*         AL = ACCESS LEVEL REGISTER. 
*         DC = DEVICE CODE REGISTER.
*         B6 = MONITOR INDICATOR(DIFFERENTIATE BETWEEN LOADER 
*              AND MONITOR EXECUTION).
* 
*         REMARKS - 
*         THE DEVICE CODE ENTERED IN THE ASSIGN STATEMENT IS ALSO 
*         CONTAINED IN THE DEVICE CODE REGISTER.
* 
* 
* 
20 OB(504)=1                 *SET MONITOR INDICATOR 
   IF(DC.EQ.300) EXIT TO 02A  *IF LOCAL NAD SELECTED
   IF(DC.EQ.301) EXIT TO 02B  *IF REMOTE NAD SELECTED 
   END 20 
COMPILE            *NLM02 - LOCAL/REMOTE MONITOR BRANCH.
   MODULE NLM02A,LCN,(300),LOCK 
***       NLM02A - LOCAL NAD MONITOR. 
**        NLM02A - LOCAL NAD MONITOR. 
*         NLM02A - LOCAL NAD MONITOR. 
* 
* 
*         PURPOSE - 
*         NLM02A WILL MONITOR A NAD TEST THAT IS EXECUTING IN THE 
*         LOCAL NAD.
* 
*         METHOD -
*         1. START THE LOCAL NAD PROCESSOR. 
*         2. BRING UP THE INITIAL TEST DISPLAY. 
*         3. PREPARE TEST PARAMETERS TO BE DOWNLOADED INTO
*            NAD MEMORY.
*         4. MASTER CLEAR THE DEVICE INTERFACE. 
*         5. DOWNLOAD THE TEST PARAMETERS INTO NAD MEMORY.
*         6. INPUT THE NAD TEST STATUS. 
*         7. UPDATE THE TEST DISPLAY. 
*         9. REPEAT FROM STEP 5 UNTIL THE TEST HAS TERMINATED.
* 
/ 
*         ENTRY - 
*         NLM02A IS ENTERED BY NLM02 TO CALL THE MONITOR INTO 
*         EXECUTION.
* 
*         EXIT -
*         THERE IS NO EXIT FROM THE PRIMARY MODULE, NLM02A.  IT IS
*         LITERALLY A CONTINUOUS MONITOR LOOP.  HOWEVER, WHEN THE 
*         TEST HAS COMPLETED EXECUTING, MODULE NLM02C WILL DISPLAY
*         *TEST TERMINATED* AND WAIT FOR USER INTERVENTION.  THIS 
*         IS THE ONLY TIME THAT THE MONITOR CEASES TEST MONITORING
*         ACTIVITY. 
* 
* 
*         SUBMODULES REFERENCED - 
*         NLM98B - FORMS A TEST PARAMETER BUFFER. 
*         NLM98C - DISPLAYS THE TEST STOP MESSAGES. 
*         NLM98D - INITIALIZES THE MONITOR DISPLAY. 
*         NLM98E - REPORTS ERRORS.
* 
* 
*         REGISTERS USED -
*         B0 = NAD TEST STATE 
*         B1 = LOOP COUNTER FOR ACKNOWLEDGE.
*         B3 = NAD TEST FUNCTION. 
*         B4 = TEST NAME. 
*         B5 = COMMAND INDEX. 
*         B6 = LAST FUNCTION EXECUTED.
*         B7 = ERROR COUNT. 
*         B8 = DISPLAY INITIALIZATION FLAG. 
*         B10 = TEST NAME.
*         B11 - WORKING REGISTER. 
*         B12 - WORKING REGISTER. 
*         B14 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              SE SWITCH = STOP ON ERROR. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*         EC = ERROR CODE REGISTER. 
* 
* 
*         BUFFERS USED -
* 
* 
*         OB(56,57) CONTAINS THE DIAGNOSTIC SWITCH REGISTER.
*         OB(61) CONTAINS THE NAD TEST FUNCTION.
*         OB(200) CONTAINS THE INITIAL RT CLOCK COUNT.
*         OB(201) CONTAINS THE CURRENT RT CLOCK COUNT.
*         OB(0-35) CONTAINS THE PARAMETERS TO BE DOWNLOADED TO THE
*                 NAD TEST. 
*         OB(400-417) CONTAINS A TABLE OF USER SELECTED TEST STOPS. 
*         IB(100-270) CONTAINS THE TEST STATUS. 
* 
* 
*           INPUT BUFFER: 
*             IB(100-270) - TEST STATUS 
*             IB(234-267) - UNFORMATTED TEST ERROR MESSAGE. 
*             IB(234-251) - FORMATTED TEST ERROR MESSAGE. 
*             IB(234-251) - UNFORMATTED MODULE DESCRIPTION. 
*             IB(271-277) - FORMATTED MODULE DESCRIPTION. 
* 
*           OUTPUT BUFFER:  
*             OB(40-113)  - TEST PARAMETER BUFFER 
*             OB(200-201) - INITIAL REAL TIME CLOCK COUNT.
*             OB(201)     - CURRENT REAL TIME CLOCK COUNT.
*             OB(400-417) - TEST-SELECTED-STOPS TABLE . 
* 
* 
* 
* 
* 
2  FORMAT  COND=*DD  ICNT=*HH  LC=*DD  ECNT=*DD 
3  FORMAT  PROGRAM ADDRESS=*H*HH
4  FORMAT *A*A*D EXECUTING
6  FORMAT  NLM02A E*OCT L*OC  NO TEST RESPONSE
7  FORMAT  NLM02A E*OCT L*OC  TEST STATE=0
10 FORMAT  NLM02A E*OCT L*OC  MONITOR TIME-OUT
* 
/-----------EQUATES.
* 
   EQUATE STRX=7, RDXX=3, IMCX=6, ACK=6, TERM=15
   EQUATE PSN=6, CONT=2, RESX=0, WRXX=10, DIAG=202
   EQUATE STER=1, STBM=3, STATE=135B, RUN=17B 
* 
/---------ISSUE PROCESSOR GO AND BRING UP DISPLAY.
* 
30 CALL 98R 
   GOSUB 60                  *RESERVE CHANNEL COMMAND INDEX 
   B5=IMCX                   *DI MASTER CLEAR COMMAND INDEX 
   IMC, ABT 70
   B5=RDXX                   *MEMORY READ COMMAND INDEX 
   MEMORY READ 8/12 170B WORDS FROM 42H TO IB(100), ABT 70
   CALL 98D                  *BUILD DISPLAY/PARAMETER BUFFER
   OB(61)=PSN                *SET UP TEST FUNCTION
* 
/-----------OBTAIN THE CURRENT TEST STATUS. 
* 
32 GOSUB 60 
   OB(DIAG)=DS               *SAVE DIAGNOSTIC SWITCH REGISTER 
   B12=0                     *CLEAR CLOCK COUNTER 
   B13=0                     *CLEAR CLOCK COUNTER 
   B5=WRXX                   *MEMORY WRITE COMMAND INDEX
   MEMORY WRITE 12/8 40B WORDS TO 40H FROM OB(54), ABT 70 
   OB(200)=RT 
34 B1=0                      *CLEAR TEST RESPONSE LOOP COUNT
   B5=RDXX                   *MEMORY READ COMMAND INDEX 
36 MEMORY READ 8/12 170B WORDS FROM 42H TO IB(100), ABT 70
   IF(IB(101).EQ.ACK) GOTO 40   *IF TEST ACCEPTS PARAMETERS 
   GOTO 36 WHILE(B1+1.NE.10D)   *IF TEST HAS NOT RESPONDED
   ERROR 06/3004, GOTO 70       *NO TEST RESPONSE 
* 
/-----------UPDATE THE TEST DISPLAY.
* 
40 B0=IB(STATE)                         *SAVE TEST STATE
   IF(B0.EQ.0) ERROR 07/3005, GOTO 70    *REPORT STATE=0
   MSG 4(B4,B10,IB(152)) TO LINE 3
   B14=IB(156).LS.8+IB(157)               *B14=ERROR COUNT
   B15=IB(160).LS.8+IB(161)               *B15=PASS COUNT 
*                   CONDITION,ITERATION,LOOP COUNT,ERROR COUNT
   MSG 2(IB(153)IB(175)B15,B14) TO LINE 2 
   MSG 3(IB(162)IB(163)) TO LINE 4    *PROGRAM ADDR. OF TEST
* 
/---------PROCESS THE CURRENT STATE OF THE NAD TEST.
* 
   IF(B0.NE.RUN) GOTO 42     *IF THE TEST HAS STOPPED 
*                    TEST IS RUNNING
   OB(61)=PSN                *PREPARE TO SEND PASS FUNCTION 
   OB(201)=RT                *STORE NEW RT CLOCK
   B11=OB(201)-OB(200)       *CALCULATE DIFFERENCE
   OB(200)=OB(201)           *SAVE NEW RT CLOCK 
   IF(B11+B12.GT.7777) B13=B13+1  *B13=UPPER BITS 
   B12=B11+B12               *B12=LOWER BITS OF TIME
   IF(B13.LT.2000) GOTO 34   *CONTINUE
   ERROR 10/3006, GOTO 70    *MONITOR TIME-OUT
*               TEST HAS STOPPED
42 IF(OB(B0+400).EQ.0) GOTO 46    *IF NO OPER. STOPS SET
   IF(B0.NE.STER) GOTO 44    *IF NOT ERROR STOP 
   IF(DS.AND.SE.EQ.0) GOTO 46  *IF SCOPE LOOPING SET
   GOSUB 50                  *OBTAIN CURRENT INFORMATION
44 CALL 98C                  *DISPLAY THE TEST STOP MESSAGE 
46 OB(56)=DS.AND.7400.RS.8D        *UPPER DS REG. BITS
   OB(57)=DS.AND.377               *LOWER DS REG. BITS
   IF(DS.XOR.OB(DIAG).NE.0) CALL 98B  *IF DS REGISTER CHANGES 
   IF(B0.EQ.STBM) CALL 98X         *IF STOP BEG. OF MODULE
   OB(61)=CONT               *SET UP CONTINUE FUNCTION
   MSG 4(B4,B10,IB(152)) TO DISPLAY 
   GOTO 32                   *CONTINUE
* 
/-----------READ CURRENT CONTENTS OF MEMORY/TEST STATUS.
* 
50 IF(SB(0).EQ.0) STATUS HARDWARE, ABT 52 
52 IB(500)=SB(0)     *SAVE HARDWARE STATUS
   IB(501)=SB(1)     *SAVE CONTROLWARE STATUS 
   STEP, ABT 54 
*                  READ CURRENT CONTENTS OF 4-3F. 
54 IB(300)=7777              *VALID NAD MEMORY BUFFER INDEX 
   MEMORY READ 8/12 170B WORDS FROM 4H TO IB(300), ABT 56 
*                  READ CURRENT TEST STATUS.
56 MEMORY READ 8/12 170B WORDS FROM 42H TO IB(100), ABT 57
57 RETURN 
* 
/-----------SUBROUTINE TO RESERVE CHANNEL.
* 
60 B5=RESX                   *RESERVE CHANNEL INDEX 
   RES, ABT 70
   RETURN 
* 
*ENDIF
/---------PROCESS COMMAND ERRORS AND GENERAL TEST ABORTS
* 
70 B7=B7+1                   *INCREMENT ERROR COUNT 
   IF(ES.AND.SL.NE.0) GOTO 77 
   MSG EM(EC,EA) TO LINE 6
   B6=LF                     *SAVE LAST FUNCTION EXECUTED 
   GOSUB 50                 *OBTAIN CURRENT INFORMATION 
76 CALL 98E                  *PROCESS ERROR 
77 IF(B8.EQ.0) ENDSUB, GOTO 30    *RE-START MONITOR LOOP
   ENDSUB, GOTO 32           *CONTINUE MONITORING LOOP
   END 30 
COMPILE            *NLM02A - LOCAL NAD MONITOR. 
   MODULE NLM02B,LCN2,(301),LOCK
***       NLM02B - REMOTE NAD MONITOR.
**        NLM02B - REMOTE NAD MONITOR.
*         NLM02B - REMOTE NAD MONITOR.
* 
* 
* 
*         PURPOSE - 
*         NLM02B WILL MONITOR A NAD TEST THAT IS EXECUTING IN THE 
*         REMOTE NAD. 
* 
*         METHOD -
*         1. START THE REMOTE NAD PROCESSOR.
*         2. BRING UP THE INITIAL TEST DISPLAY. 
*         3. PREPARE TEST PARAMETERS TO BE DOWNLOADED INTO
*            NAD MEMORY.
*         4. MASTER CLEAR THE DEVICE INTERFACE. 
*            GO TO STEP 6.
*         5. DOWNLOAD THE TEST PARAMETERS INTO NAD MEMORY.
*         6. INPUT THE NAD TEST STATUS. 
*         7. UPDATE THE TEST DISPLAY. 
*         8. REPEAT FROM STEP 5 UNTIL THE TEST HAS TERMINATED.
* 
* 
/ 
*         ENTRY - 
*         NLM02B IS ENTERED BY NLM02 TO CALL THE MONITOR INTO 
*         EXECUTION.
* 
*         EXIT -
*         THERE IS NO EXIT FROM THE PRIMARY MODULE, NLM02B.  IT IS
*         LITERALLY A CONTINUOUS MONITOR LOOP.  HOWEVER, WHEN THE 
*         TEST HAS COMPLETED EXECUTING, MODULE NLM98C WILL DISPLAY
*         *TEST TERMINATED* AND WAIT FOR USER INTERVENTION.  THIS 
*         IS THE ONLY TIME THAT THE MONITOR CEASES TEST MONITORING
*         ACTIVITY. 
* 
*         SUBMODULES REFERENCED - 
*         NLM97B - FORM A TEST PARAMETER BUFFER.
*         NLM97C - DISPLAY THE TEST STOP MESSAGES.
*         NLM97D - INITIALIZE THE MONITOR DISPLAY.
*         NLM97E - DISPLAY ALL ERRORS.
* 
* 
* 
*         REGISTERS USED -
*         B0 = NAD TEST STATE 
*         B1 = LOOP COUNTER FOR ACKNOWLEDGE.
*         B2 = DELAY COUNT WAITING FOR TEST ACKNOWLEDGE 
*         B3 = NAD TEST FUNCTION. 
*         B4 = TEST NAME. 
*         B5 = COMMAND INDEX. 
*         B6 = LAST FUNCTION EXECUTED.
*         B7 = ERROR COUNT. 
*         B8 = DISPLAY INITIALIZATION FLAG. 
*         B10 = TEST NAME.
*         B11 = WORKING REGISTER. 
*         B12 = WORKING REGISTER. 
*         B14 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              SE SWITCH = STOP ON ERROR. 
*         ES = EXECUTIVE SWITCH REGISTER. 
* 
* 
*         BUFFERS USED -
* 
* 
* 
* 
*         OB(56,57) CONTAINS THE DIAGNOSTIC SWITCH REGISTER.
*         OB(3) CONTAINS THE NAD TEST FUNCTION. 
*         OB(200) = CONTAINS THE INITIAL RT CLOCK COUNT.
*         OB(201) = CONTAINS THE CURRENT RT CLOCK COUNT.
*         OB(40-114) CONTAINS THE PARAMETERS TO BE DOWNLOADED TO THE
*                 NAD TEST. 
*         OB(400-417) CONTAINS A TABLE OF USER SELECTED TEST STOPS. 
*         IB(100-270) CONTAINS THE TEST STATUS. 
* 
* 
*           INPUT BUFFER: 
*             IB(100-270) - TEST STATUS 
*             IB(234-267) - UNFORMATTED TEST ERROR MESSAGE. 
*             IB(234-251) - FORMATTED TEST ERROR MESSAGE. 
*             IB(234-251) - UNFORMATTED MODULE DESCRIPTION. 
*             IB(271-277) - FORMATTED MODULE DESCRIPTION. 
* 
*           OUTPUT BUFFER:  
*             OB(0-31)    - MAINTENANCE RESPONSE MESSAGE. 
*             OB(32-33)   - REMOTE TEST RESPONSE. 
*             OB(40-113)  - TEST PARAMETER BUFFER 
*             OB(200-201) - INITIAL REAL TIME CLOCK COUNT.
*             OB(201)     - CURRENT REAL TIME CLOCK COUNT.
*             OB(400-417) - TEST-SELECTED-STOPS TABLE . 
* 
* 
* 
1  FORMAT *A*A*D - *A*A*A*A*A 
2  FORMAT  COND=*DD  ICNT=*HH  LC=*DD  ECNT=*DD 
3  FORMAT  PROGRAM ADDRESS=*H*HH
4  FORMAT *A*A*D EXECUTING
6  FORMAT  NLM02B E*OCT L*OC  NO TEST RESPONSE
7  FORMAT  NLM02B E*OCT L*OC  TEST STATE=0
10 FORMAT  NLM02B E*OCT L*OC  MONITOR TIME-OUT
11 FORMAT  NLM02B E*OCT L*OC  MAINTENANCE RESPONSE ERROR
* 
* 
   EQUATE STRX=7, MRDX=14, MWRX=15, ACTX=12, TERM=15
   EQUATE STER=1, STATE=135, RUN=17B, RESX=0, DIAG=202
   EQUATE STAT2L=3, STET=5, CONT=2, STBM=3
   EQUATE PSN=6,RESM=22 
* 
* ----------ISSUE PROCESSOR GO AND BRING UP DISPLAY.
* 
30 CALL 97R 
   GOSUB 60                  *SELECT AND ACTIVATE PATH
   GOSUB 62 
   CALL 97D                  *BUILD DISPLAY/PARAMETER BUFFER
* 
* ----------OBTAIN THE CURRENT TEST STATUS. 
* 
32 GOSUB 60                  *RESERVE CHANNEL,SELECT PATH 
   OB(DIAG)=DS               *SAVE DIAGNOSTIC SWITCH REGISTER 
   B5=MWRX                   *MAINTENANCE WRITE INDEX 
   MAINT FUNCTION OB(43) WITH 54B WORDS FROM OB(40), ABT 70 
   GOSUB 63                  *CHECK MAINT. PATH RESPONSE
   IF(B10.AND.4.NE.0) DELAY 1000 MSEC   *IF NDT,NDM 
   B12=0                     *CLEAR CLOCK COUNTER 
   B13=0                     *CLEAR CLOCK COUNTER 
   OB(200)=RT                *SET INITIAL RT CLOCK
34 GOSUB 62 
   B0=IB(STATE)              *SAVE TEST STATE 
   IF(B0.EQ.0) ERROR 07/3005, GOTO 70   *REPORT STATE=0 
   MSG 4(B4,B10,IB(152)) TO LINE 3
* 
* ----------UPDATE THE TEST DISPLAY.
* 
40 B14=IB(156).LS.8+IB(157)               *B14=ERROR COUNT
   B15=IB(160).LS.8+IB(161)               *B15=PASS COUNT 
*                   CONDITION,ITERATION,LOOP COUNT,ERROR COUNT
   MSG 2(IB(153)IB(175)B15,B14) TO LINE 2 
   MSG 3(IB(162)IB(163)) TO LINE 4    *PROGRAM ADDR. OF TEST
* 
* ----------PROCESS THE CURRENT STATE OF THE NAD TEST.
* 
*          TEST IS EXECUTING
   IF(B0.NE.RUN) GOTO 42     *IF THE TEST HAS STOPPED 
   OB(201)=RT                *STORE NEW RT CLOCK
   B11=OB(201)-OB(200)       *CALCULATE DIFFERENCE
   OB(200)=OB(201)           *SAVE NEW RT CLOCK 
   IF(B11+B12.GT.7777) B13=B13+1  *B13=UPPER BITS 
   B12=B11+B12               *B12=LOWER BITS OF TIME
   IF(B13.LT.600) GOTO 34   *CONTINUE 
   ERROR 10/3006, GOTO 70    *MONITOR TIME-OUT
*         TEST HAS STOPPED
42 IF(OB(B0+400).EQ.0) GOTO 46    *IF NO OPER. STOPS SET
   IF(B0.NE.STER) GOTO 44    *IF NOT ERROR STOP 
   IF(DS.AND.SE.EQ.0) GOTO 46    *IF SCOPE LOOPING SET
   GOSUB 50                  *OBTAIN CURRENT INFORMATION
44 CALL 97C                  *DISPLAY THE TEST STOP MESSAGE 
46 OB(56)=DS.RS.8D           *UPPER DS REG. BITS
   OB(57)=DS.AND.377         *LOWER DS REG. BITS
   IF(DS.XOR.OB(DIAG).NE.0) CALL 97B  *IF DS REGISTER CHANGED 
   IF(B0.EQ.STBM) CALL 97X   *IF STOP BEG. OF MODULE
   OB(61)=CONT               *SET UP CONTINUE FUNCTION
   MSG 4(B4,B10,IB(152)) TO DISPLAY 
   GOTO 32                   *REPEAT MONITOR LOOP 
* 
* ----------OBTAIN CURRENT CONTESTS OF MEMORY/TEST STATUS.
* 
*                  OBTAIN CURRENT CONTENTS OF 4-3F. 
50 IF(SB(0).EQ.0) STATUS HARDWARE,ABT 51
51 IB(500)=SB(0)           *SAVE HARDWARE STATUS
   IB(501)=SB(1)           *SAVE CONTROLWARE STATUS 
   STEP, ABT 52 
52 IB(300)=7777               *VALID NAD MEMORY BUFFER INDEX
   AUTODMP 170B WORDS FROM 4H TO IB(300),ABT 53 
*                  READ CURRENT TEST STATUS.
53 STATUS PATH, ABT 54     *GET CURRENT PATH STATUS 
54 AUTODMP 170B WORDS FROM 42H TO IB(100), ABT 56 
56 STATUS NAD, ABT 57       *GET CURRENT DETAILED NAD STATUS
57 RETURN 
* 
* ----------RESERVE CHANNEL AND SELECT PATH.
* 
60 B5=RESM                   *RESERVE CHANNEL/PATH INDEX
   RES MAINT PATH DA BUFFER 1, ABT 70 
   RETURN 
* 
* ----------DUMP TEST STATUS TO PP. 
* 
62 B5=MRDX                  *MEMORY READ COMMAND INDEX
   AUTODMP 170B WORDS FROM 42H TO IB(100), ABT 70 
* 
* ----------SUBROUTINE TO CHECK REMOTE NAD RESPONSE.
* 
63 IF(OB(STAT2L).AND.160.NE.120), GOTO 66  *IF NOT INTERR. 5
   IF(OB(24).AND.177.NE.0), GOTO 66   *P1 ERR.
   IF(B0.EQ.STET) GOTO 64    *IF STOPPED AT END OF TEST 
   IF(OB(25).AND.0337.NE.0), GOTO 66  *P2 ERR.
64 IF(B5.EQ.14) RETURN       *IF AUTODUMP FUNCTION
   IF(IB(1).EQ.1) RETURN
   ERROR 06/3004, GOTO 70        *IF NO REMOTE NAD RESPONSE 
66 ERROR 11/3007                 *IF BAD REMOTE NAD RESPONSE
* 
* ----------PROCESS COMMAND ERRORS AND GENERAL TEST ABORTS. 
* 
70 B7=B7+1                   *INCREMENT ERROR COUNT 
   IF(ES.AND.SL.NE.0) GOTO 77 
   MSG EM(EC,EA) TO LINE 6
   B6=LF                     *SAVE LAST FUNCTION EXECUTED 
   IF(EC.EQ.6034B) GOTO 75   *GO PROC ERR IF TCI NOT CONNECTED
   GOSUB 50              *OBTAIN CURRENT INFORMATION. 
   ENDSUB 
75 CALL 97E                  *PROCESS ERROR 
77 IF(B8.EQ.0) ENDSUB, GOTO 30    *RE-START MONITOR LOOP
   ENDSUB, GOTO 32          *CONTINUE MONITORING TEST 
   END 30 
COMPILE            *NLM02B - REMOTE NAD MONITOR.
   MODULE NLM97B,LCN2,(301),LOCK
***       NLM97B - FORMATION OF TEST PARAMETER BUFFER.
**        NLM97B - FORMATION OF TEST PARAMETER BUFFER.
*         NLM97B - FORMATION OF TEST PARAMETER BUFFER.
* 
* 
* 
*         PURPOSE - 
*         NLM97B CREATES A PARAMETER BLOCK IN THE OUTPUT BUFFER.
*         THIS PARAMETER BLOCK CONTAINS ALL THE PARAMETERS NEEDED 
*         BY THE TEST OR CONTROLWARE TO EXECUTE A TEST IN THE LOCAL 
*         OR REMOTE NAD.
* 
* 
*         METHOD -
*         1. STORE THE CONTENTS OF THE DIAGNOSTIC SWITCH (DS) 
*            REGISTER INTO THE PARAMETER BUFFER CREATED IN THE OUTPUT 
*            BUFFER IN 8 BIT FORMAT.
*         2. STORE THE CONTENTS OF THE PARAMETER REGISTERS INTO THE 
*            PARAMETER BUFFER IN 8 BIT FORMAT.
*         3. FORM A TABLE CONTAINING INFORMATION CONCERNING EACH TEST 
*            STOP SELECTED BY THE USER IN THE DS REGISTER. THIS TABLE 
*            WILL BE REFERENCED EACH TIME THE TEST HAS STOPPED UNDER
*            NORMAL CONDITIONS TO DETERMINE IF THE USER HAS SELECTED
*            THE TEST STOP. 
* 
/ 
*         ENTRY - 
*         NLM97B IS ENTERED FROM EITHER NLM02A OR NLM02B DEPENDING
*         UPON THE DEVICE CODE REGISTER CONTENTS. 
* 
*         EXIT -
*         NLM97B EXITS TO EITHER NLM02A OR NLM02B DEPENDING UPON
*         THE DEVICE CODE REGISTER CONTENTS.
* 
* 
*         REGISTERS USED -
*         B14= WORKING REGISTER.
*         AL = ACCESS LEVEL REGISTER. 
*         P0-P9 = PARAMETER REGISTERS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
* 
*         BUFFERS USED -
*         OB(0-35) CONTAINS THE TEST PARAMETERS.
*         OB(400-417) CONTAINS THE TEST STOP TABLE. 
*         SB(30-41) UPPER BITS OF HEX PARAMETER REGISTERS 
*                   P0-P9.
*         SB(42-43) CONTAINS THE ACCESS CODE. 
*         SB(45) CONTAINS THE BUFFER SIZE.
*         SB(50) CONTAINS THE LOGICAL TCU ADDRESS.
*         SB(51) CONTAINS THE TCU ENABLE
* 
*         REMARKS - 
*         THIS MODULE IS CALLED ONLY ONCE BY THE MONITOR. 
* 
* 
* 
* 
   EQUATE STBC=10B, STBM=20B, STBT=40B, STEC=200B, STEM=400B
   EQUATE STET=100B, ACK=6, CONT=2, STER=1, PSN=6 
* 
/-----------CREATE A PARAMETER BUFFER OF NAD TEST PARAMETERS. 
30 OB(40)=SB(51)             *TCU SELECT
   OB(41)=0000               *NOT USED
   OB(42)=SB(50)             *LOGICAL TCU ADDRESS 
   OB(43)=2                  *NAD DATA FUNCTION 
   OB(44)=SB(42)             *ACCESS CODE 
   OB(45)=SB(43)             *ACCESS CODE 
   OB(46)=0000               *LENGTH
   OB(47)=0000               *LENGTH
   OB(50)=0000               *NUMBER OF DATA WORDS TO WRITE 
   OB(51)=21B                *NUMBER OF DATA WORDS TO WRITE 
   OB(52)=22B                *NDI CHECK WORD
   OB(53)=64B                *NDI CHECK WORD
   OB(54) = 0                *REAL TIME CLOCK (40)
   OB(55) = 0 
   OB(56) = DS.AND.7400.RS.8D 
   OB(57) = DS.AND.377       *DIAGNOSTIC SWITCHES (41)
   OB(60) = 0 
   OB(61) = PSN             *NAD TEST FUNCTION(42)
   OB(62) = 0 
   OB(63) = AL               *ACCESS LEVEL (43) 
   OB(64) = 0               *DEVICE TYPE = LCN (44) 
   OB(65) = 2 
   OB(66) = 0 
   OB(67) = 0 
   B14=P0.RS.8D              *P0, RESYNC PARAMETER
   OB(70)=SB(30).LS.4+B14 
   OB(71)=P0.AND.377
   B14=P1.RS.8D              *P1, NAD MEMORY SIZE 
   OB(72)=SB(31).LS.4+B14 
   OB(73)=P1.AND.377
   B14=P2.RS.8D              *P2, NOT USED
   OB(74)=SB(32).LS.4+B14 
   OB(75)=P2.AND.377
   B14=P3.RS.8D              *P3, NAD TEST ENABLES
   OB(76)=SB(33).LS.4+B14 
   OB(77)=P3.AND.377
   B14=P4.RS.8D              *P4, NAD TEST DISABLES 
   OB(100)=SB(34).LS.4+B14
   OB(101)=P4.AND.377 
   B14=P5.RS.8D              *P5, FIRST TEST MODULE TO RUN
   OB(102)=SB(35).LS.4+B14
   OB(103)=P5.AND.377 
   B14=P6.RS.8D              *P6, NUMBER OF MODULES TO RUN
   OB(104)=SB(36).LS.4+B14
   OB(105)=P6.AND.377 
   B14=SB(50).LS.4.+SB(51)   *P7, NAD TCU, LTA
   OB(106)=B14.RS.8D
   OB(107)=B14.AND.377
   B14=P8.RS.8D              *P8, NDT - TCU ENABLES 
   OB(110)=SB(40).LS.4+B14
   OB(111)=P8.AND.377 
   OB(112)=SB(42)            *P9, NAD ACCESS CODE 
   OB(113)=SB(43) 
/-----------CREATE A TABLE CONTAINING OPER. SELECTED STOPS. 
   OB(400)=0
   OB(401)=DS.AND.STER       *STOP ON ERROR 
   OB(402)=DS.AND.STBT       *STOP AT BEGINNING OF TEST 
   OB(403)=DS.AND.STBM       *STOP AT BEGINNING OF MODULE 
   OB(404)=DS.AND.STBC       *STOP AT BEGINNING OF CONDITION
   OB(405)=DS.AND.STET       *STOP AT END OF TEST 
   OB(406)=DS.AND.STEM       *STOP AT END OF MODULE 
   OB(407)=DS.AND.STEC       *STOP AT END OF CONDITION
   OB(411)=0                 *STOP AT NO OP.
   OB(413)=1                 *STOP AT REQUEST OF OPERATOR 
   OB(414)=0                 *STOP WAITING FOR CONTINUE 
   OB(415)=1                 *TEST TERMINATED 
   OB(416)=0                 *NOT USED
   OB(417)=0                 *TEST RUNNING
   EXIT 
   END 30 
COMPILE            *NLM97B - FORMATION OF TEST PARAMETER BUFFER.
   MODULE NLM97C,LCN2,(301),LOCK
***       NLM97C - TEST STOP MESSAGE DISPLAY. 
**        NLM97C - TEST STOP MESSAGE DISPLAY. 
*         NLM97C - TEST STOP MESSAGE DISPLAY. 
* 
* 
*         PURPOSE - 
*         DISPLAY A MESSAGE EXPLAINING THE REASON WHY THE TEST HAS
*         STOPPED.  THESE TESTS STOP MESSAGES ONLY OCCUR FOR USER 
*         SELECTED TEST STOPS.
* 
*         METHOD -
*         1. POST THE MESSAGE DESCRIBING THE TEST STOP ON LINE 6D OF
*            THE DISPLAY. 
*         2. POST THE SAME MESSAGE ON THE B DISPLAY.
*         3. IF THE TEST HAS TERMINATED, THE MONITOR WILL HALT
*            ACTIVITY.
* 
/ 
*         ENTRY - 
*         NLM97C IS ENTERED FROM EITHER NLM02A OR NLM02B WHEN THE 
*         TEST STOPS ON A USER SELECTED TEST STOP.
* 
*         EXIT -
*         EXIT 1 - NLM97C EXITS TO NLM02A IF DC=300.
*         EXIT 2 - NLM97C EXITS TO NLM02B IF DC=301.
* 
* 
*         REGISTERS USED -
*         B0 = NAD TEST STATE.
*         B1 = MESSAGE INDEX FOR USER SELECTED TEST STOP. 
*         B4 = TEST NAME. 
*         B7 = ERROR COUNT. 
*         B10 = TEST NAME.
* 
*         BUFFERS USED -
*         IB(35) = STATE OF TEST. 
* 
* 
* 
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   STOPPED BEG. TEST
7  FORMAT *A*A   STOPPED END TEST 
10 FORMAT *A*A   STOPPED ON NO-OP 
11 FORMAT *A*A   TERMINATED 
24 FORMAT NLM02A ERRORS = *DECD 
25 FORMAT NLM02B ERRORS = *DECD 
27 FORMAT ------------------------------------
* 
   EQUATE STER=1, STBT=2, STBM=3, STBC=4, STET=5, STEM=6
   EQUATE STEC=7, STBP=10, STATE=135, STNO=11, TERM=15
/---------DETERMINE THE REASON WHY THE TEST HAS STOPPED.
30 B0=IB(STATE)              *NDI STATUS WORD 
   B1=1                      *MESSAGE NUMBER
   IF(B0.EQ.STER) GOTO 60    *IF STOPPED ON ERROR 
   B1=2                      *MESSAGE NUMBER
   IF(B0.EQ.STBM) GOTO 60    *IF BEGINNING OF MODULE STOP 
   B1=3                      *MESSAGE NUMBER
   IF(B0.EQ.STBC) GOTO 60    *IF BEGINNING OF CONDITION STOP
   B1=4                      *MESSAGE NUMBER
   IF(B0.EQ.STEM) GOTO 60    *IF END OF MODULE STOP 
   B1=5                      *MESSAGE NUMBER
   IF(B0.EQ.STEC) GOTO 60    *IF END OF CONDITION STOP
   B1=6                     *MESSAGE NUMBER 
   IF(B0.EQ.STBT) GOTO 60    *IF BEGINNING OF TEST STOP 
   B1=7                     *MESSAGE NUMBER 
   IF(B0.EQ.STET) GOTO 60    *IF END OF TEST STOP 
   B1=10                     *TERMINATED MESSAGE NUMBER 
   IF(B0.EQ.STNO) GOTO 60    *IF STOPPED ON NO-OP 
   B1=11                     *MESSAGE NUMBER
* 
/---------PROCESS ALL STOPS.
* 
60 MSG B1(B4,B10,IB(152)) TO LINE 3   *DISPLAY STOP MESSAGE 
   MSG B1(B4,B10,IB(152)) TO PRINT,DISPLAY
   IF(B0.EQ.TERM) GOTO 66    *IF TEST TERMINATED
   IF(B0.EQ.STER) EXIT TO 97E   *IF TEST STOPPED ON ERROR 
64 PICTURE
   PAUSE                     *WAIT FOR OPERATOR GO
   EXIT 
66 IF(B7.EQ.0) GOTO 70     *IF NO MONITOR ERRORS
   IF(DC.EQ.300) MSG 24(B7) TO DAYFILE,PRINT,DISPLAY
   IF(DC.EQ.301) MSG 25(B7) TO DAYFILE,PRINT,DISPLAY
70 END 30 
COMPILE            *NLM97C - DISPLAY TEST STOP MESSAGE
   MODULE NLM97D,LCN2,(301),LOCK
***       NLM97D - INITIAL MONITOR DISPLAY. 
**        NLM97D - INITIAL MONITOR DISPLAY. 
*         NLM97D - INITIAL MONITOR DISPLAY. 
* 
* 
*         PURPOSE - 
*         NLM97D INITIATES THE NORMAL MONITOR DISPLAY.  IT WILL 
*         DISPLAY ONLY THE TEST NAME, TEST DESCRIPTION AND THE TEST 
*         REVISION NUMBER OF THE TEST PRESENTLY EXECUTING.
* 
* 
*         METHOD -
*         1. DISPLAY THE TEST NAME, TEST DESCRIPTION AND TEST REVISION
*            ON LINE 0 OF THE DISPLAY BUFFER. 
* 
* 
* 
/ 
*         ENTRY - 
*         NLM97D IS ENTERED FROM EITHER NLM02A OR NLM02B
*         DEPENDING UPON THE CONTENTS OF THE DEVICE CODE
*         REGISTER. 
* 
*         EXIT -
*         EXIT 1 - NLM97D WILL EXIT TO NLM02A IF DC=300.
*         EXIT 2 - NLM97D WILL EXIT TO NLM02B IF DC=301.
* 
* 
*         REGISTERS USED -
*         B4 = FIRST 2 CHARACTERS OF THE TEST NAME. 
*         B8 = DISPLAY INITIALIZATION FLAG. 
*         B10 = LAST 2 CHARACTERS OF THE TEST NAME. 
*         B12 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
* 
*         BUFFERS USED -
*         IB(100-270) CONTAINS TEST STATUS INFORMATION. 
*         IB(143) CONTAINS THE LAST 2 CHARACTERS OF 
*                 THE TEST NAME.
* 
* 
*         REMARKS - 
*         NLM97D IS ONLY CALLED ONCE BY THE MONITOR.
* 
* 
1  FORMAT *A*A - NAD MEMORY TEST       REVISION *A*A
2  FORMAT *A*A - NAD PROCESSOR TEST    REVISION *A*A
3  FORMAT *A*A - NAD TRUNK TEST        REVISION *A*A
4  FORMAT *A*A - TRANSMIC NAD TEST     REVISION *A*A
* 
/-----------INITIATE MONITOR DISPLAY. 
* 
30 B4=IB(141)           *SAVE UPPER BITS OF TEST NAME 
   B10=IB(142).LS.6.+IB(143)   *SAVE LOWER BITS OF TEST NAME
   B12=IB(144).LS.6.+IB(145)   *REVISION NUMBER 
   IF(IB(143).AND.77.EQ.15) MSG 1(B4,B10,B12) TO LINE 0 
   IF(IB(143).AND.77.EQ.20) MSG 2(B4,B10,B12) TO LINE 0 
   IF(IB(143).AND.77.EQ.24) MSG 3(B4,B10,B12) TO LINE 0 
   IF(IB(142).AND.77.EQ.16) MSG 4(B4,B10,B12) TO LINE 0 
   B8=1                      *SET MONITOR PROGRESS INDEX
   EXIT TO 97B               *EXIT TO NLM97B
   END 30 
COMPILE            *NLM97D - INITIATE MONITOR DISPLAY 
   MODULE NLM97E,LCN2,(301),LOCK
***       NLM97E - MONITOR/TEST ERROR REPORTER. 
**        NLM97E - MONITOR/TEST ERROR REPORTER. 
*         NLM97E - MONITOR/TEST ERROR REPORTER. 
* 
* 
*         PURPOSE - 
*         NLM97E WILL DISPLAY THE CURRENT ERROR INFORMATION.  THIS
*         INCLUDES UPDATING THE MONITOR DISPLAY WITH THE LATEST TEST
*         STATUS AND REPORTING THE ERROR MESSAGE. 
* 
* 
*         METHOD -
*         1. UPDATE THE CONDITION NUMBER, ITERATION COUNT, LOOP COUNT 
*            ERROR COUNT, PROGRAM ADDRESS AND ERROR CODE ON THE DISPLAY 
*            AND ALSO THE ACTUAL AND EXPECTED DATA. 
* 
*         2. DISPLAY A TEST ERROR MESSAGE IF A TEST ERROR HAS OCCURRED. 
* 
*         3. DISPLAY A MONITOR ERROR MESSAGE IF THE MONITOR HAS DETECTED
*            A TEST ERROR.
* 
*         4. DISPLAY A COMMAND ABORT MESSAGE IF THE MONITOR HAS ABORTED 
*            ON A COMMAND INVOLVING I/O.
* 
*         5. DISPLAY A COMMAND ABORT MESSAGE IF THE MONITOR HAS ABORTED 
*            DUE TO A CONTROLWARE COMMAND FAILURE.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM97E IS ENTERED FROM EITHER NLM02A OR NLM02B. 
* 
*         EXIT -
*         NLM97E WILL EXIT TO NLM97F. 
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         B7 = ERROR COUNT. 
*         B12= WORKING REGISTER.
*         B13= WORKING REGISTER.
*         B14 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
*         EC = ERROR CODE.
*         EM = REGISTER CONTAINING THE ERROR MESSAGE INDEX. 
*         LF = REGISTER CONTAINING THE LAST FUNCTION EXECUTED.
*         EA = REGISTER CONTAINING THE LAST LINE OF CODE
*              EXECUTED IN THE MONITOR. 
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE NAD HARDWARE STATUS. 
*         IB(100-270) CONTAIN THE PRESENT TEST STATUS.
*         IB(235-267) CONTAINS THE TEST ERROR MESSAGE.
*         OB(0-33) CONTAINS THE TRUNK MESSAGE.
* 
* 
* 
0  FORMAT NAD LOADER AND MONITOR(NLM) 
1  FORMAT  COND=*DD  ICNT=*HH  LC=*DD  ECNT=*DD 
2  FORMAT  PROGRAM ADDRESS=*H*HH   EC=*OCTB 
3  FORMAT  ADDR=*H*HH    EXP=*H*HH    ACT=*H*HH 
4  FORMAT  TEST ERROR  *A*A*A*A*A*A*A*A 
5  FORMAT              *A*A*A*A*A*A*A*A 
* 
/-----------EQUATES.
* 
   EQUATE STER=1
* 
/-----------UPDATE TEST DISPLAY.
* 
30 B14=IB(156).LS.8+IB(157)     *ERROR COUNT
   B15=IB(160).LS.8+IB(161)     *LOOP COUNT 
   MSG 1(IB(153)IB(175)B15,B14) TO LINE 2  *COND,ITER,LC,ECNT 
   B13=IB(154).LS.8.+.IB(155) 
   MSG 2(IB(162)IB(163),B13) TO LINE 4  *PROG. ADDR, EC 
   MSG 3 6 WORDS FROM IB(166) TO LINE 7 
   IF(B8.EQ.0) MSG 0 TO LINE 0    *DISPLAY ALTERNATE TITLE LINE 
* 
/-----------IF TEST ERROR OCCURRED. 
* 
32 IF(B0.NE.STER) GOTO 60     *IF NOT A TEST ERROR
*      FORMAT AND DISPLAY TEST ERROR MESSAGE. 
   IB(234)=IB(234).LS.6+IB(235)     *WORD 70H 
   IB(235)=IB(236).LS.6+IB(237)     *WORD 71H 
   IB(236)=IB(240).LS.6+IB(241)     *WORD 72H 
   IB(237)=IB(242).LS.6+IB(243)     *WORD 73H 
   IB(240)=IB(244).LS.6+IB(245)     *WORD 74H 
   IB(241)=IB(246).LS.6+IB(247)     *WORD 75H 
   IB(242)=IB(250).LS.6+IB(251)     *WORD 76H 
   IB(243)=IB(252).LS.6+IB(253)     *WORD 77H 
   IB(244)=IB(254).LS.6+IB(255)     *WORD 78H 
   IB(245)=IB(256).LS.6+IB(257)     *WORD 79H 
   IB(246)=IB(260).LS.6+IB(261)     *WORD 7AH 
   IB(247)=IB(262).LS.6+IB(263)     *WORD 7BH 
   IB(250)=IB(264).LS.6+IB(265)     *WORD 7CH 
   IB(251)=IB(266).LS.6+IB(267)     *WORD 7DH 
* 
/-----------ATTEMPT TO BALANCE ERROR MESSAGE ON DISPLAY.
* 
   IF(IB(244).AND.7700.NE.55B) GOTO 34
   MSG 4 10B WORDS FROM IB(234) TO LINE 5 
   MSG 5 6B WORDS FROM IB(244) TO LINE 6
   GOTO 60
34 IF(IB(243).AND.0077.NE.55B) GOTO 36
   MSG 4 10B WORDS FROM IB(234) TO LINE 5 
   MSG 5 6B WORDS FROM IB(244) TO LINE 6
   GOTO 60
36 IF(IB(243).AND.7700.NE.55B) GOTO 40
   MSG 4 7B WORDS FROM IB(234) TO LINE 5
   MSG 5 7B WORDS FROM IB(243) TO LINE 6
   GOTO 60
40 IF(IB(242).AND.0077.NE.55B) GOTO 42
   MSG 4 7B WORDS FROM IB(234) TO LINE 5
   MSG 5 7B WORDS FROM IB(243) TO LINE 6
   GOTO 60
42 IF(IB(242).AND.7700.NE.55B) GOTO 44
44 MSG 4 6B WORDS FROM IB(234) TO LINE 5
   MSG 5 10B WORDS FROM IB(242) TO LINE 6 
60 EXIT TO 97F
   END 30 
COMPILE            *NLM97E - UPDATE DISPLAY AND ERROR MESSAGE.
   MODULE NLM97F,LCN2,(301),LOCK
***       NLM97F - CONTINUATION OF 97E. 
**        NLM97F - CONTINUATION OF 97E. 
*         NLM97F - CONTINUATION OF 97E. 
* 
* 
*         PURPOSE - 
*         NLM97F WILL DISPLAY AN ERROR MESSAGE DESCRIBING A MONITOR 
*         COMMAND ABORT AND DISPLAY THE CURRENT HARDWARE AND CONTROL- 
*         WARE STATUS OF THE LOCAL NAD. 
* 
* 
* 
*         METHOD -
*         1. DISPLAY A MONITOR COMMAND ABORT ERROR MESSAGE IF THIS
*            TYPE OF ERROR HAS OCCURRED.
* 
*         2. DISPLAY THE LOCAL NAD HARDWARE STATUS. 
* 
*         3. DISPLAY THE LOCAL NAD CONTROLWARE STATUS IF THE LCN
*            CONTROLWARE RESIDES IN THE LOCAL NAD.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM97F IS ENTERED FROM NLM97E.
* 
*         EXIT -
*         EXIT 1 - NLM97F WILL EXIT TO NLM97R FOR LOCAL 
*                  NAD ERROR. 
*         EXIT 2 - NLM97F WILL EXIT TO NLM97G IF S1 OR
*                  S2 SWITCHES OF DS ARE SET. 
*         EXIT 3 - NLM97F WILL EXIT TO NLM97R FOR REMOTE
*                  NAD ERROR IF S1 AND S2 SWITCHES OF DS
*                  REGISTER ARE CLEAR.
* 
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         B7 = MONITOR ERROR COUNT. 
*         B14= TEST ERROR COUNT AND CONDITION NUMBER. 
*         LF = CONTAINS THE LAST FUNCTION EXECUTED. 
*         DC = DEVICE CODE REGISTER.
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE LOCAL NAD HARDWARE STATUS. 
*         SB(1) CONTAINS THE LOCAL NAD CONTROLWARE STATUS.
* 
* 
* 
0  FORMAT  NLM0*A MONITOR ERROR -.RESERVE CHAN./PATH. ABORT LF=*OCB 
1  FORMAT  LOCAL NAD H/S=*OCTB
2  FORMAT  LOCAL NAD H/S=*OCTB   C/S=*OCTB
3  FORMAT  NLM0*A MONITOR ERROR -.RESERVE CHANNEL. ABORT LF=*OCB
4  FORMAT  NLM0*A MONITOR ERROR -.PROCESSOR MC . ABORT LF=*OCB
5  FORMAT  NLM0*A MONITOR ERROR -.LOAD. ABORT LF=*OCB 
6  FORMAT  NLM0*A MONITOR ERROR -.MEMORY READ. ABORT LF=*OCB
7  FORMAT  NLM0*A MONITOR ERROR -.FIRST VERIFY. ABORT LF=*OCB 
10 FORMAT  NLM0*A MONITOR ERROR -.LAST VERIFY. ABORT LF=*OCB
11 FORMAT  NLM0*A MONITOR ERROR -.DI MASTER CLEAR. ABORT LF=*OCB
12 FORMAT  NLM0*A MONITOR ERROR -.START NAD. ABORT LF=*OCB
13 FORMAT  NLM0*A MONITOR ERROR -.MEMORY WRITE. ABORT LF=*OCB 
14 FORMAT  NLM0*A MONITOR ERROR -.STATUS HARDWARE. ABORT LF=*OCB
15 FORMAT  NLM0*A MONITOR ERROR -.ACTIVATE PATH. ABORT LF=*OCB
16 FORMAT  NLM0*A MONITOR ERROR -.SELECT PATH. ABORT LF=*OCB
17 FORMAT  NLM0*A MONITOR ERROR -.AUTODUMP. ABORT LF=*OCB 
20 FORMAT  NLM0*A MONITOR ERROR -.MAINT. WRITE. ABORT LF=*OCB 
21 FORMAT  NLM0*A MONITOR ERROR -.STATUS CONTROLWARE. ABORT LF=*OCB 
22 FORMAT  NLM0*A MONITOR ERROR -.STATUS PATH. ABORT LF=*OCB
23 FORMAT  NLM0*A MONITOR ERROR -.STATUS NAD. ABORT LF=*OCB 
24 FORMAT  NLM0*A MONITOR ERROR -.PURGE PATH. ABORT LF=*OCB 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------- 
* 
* 
/-----------EQUATES.
* 
   EQUATE RESX=0, PMCX=1,LDXX=2, RDXX=3 
   EQUATE VFFX=4, VFLX=5, IMCX=6, STRX=7
   EQUATE WRXX=10, STHX=11, ACTX=12 SELX=13 
   EQUATE MRDX=14, MWRX=15, STCX=16, STPX=17
   EQUATE STNX=20, PRGX=21, RESM=22, STER=1 
* 
/-----------DISPLAY COMMAND ABORT ERROR.
* 
*        B6 CONTAINS THE LAST FUNCTION EXECUTED IN PRIMARY MODULE.
30 IF(DC.EQ.300) B14=3501    *IF LOCAL NAD
   IF(DC.EQ.301) B14=3502    *IF REMOTE NAD 
   IF(B0.EQ.STER) GOTO 32    *IF TEST ERROR OCCURRED
   IF(B5.EQ.RESX) MSG 3(B14,B6) TO LINE 5 
   IF(B5.EQ.PMCX) MSG 4(B14,B6) TO LINE 5 
   IF(B5.EQ.LDXX) MSG 5(B14,B6) TO LINE 5 
   IF(B5.EQ.RDXX) MSG 6(B14,B6) TO LINE 5 
   IF(B5.EQ.VFFX) MSG 7(B14,B6) TO LINE 5 
   IF(B5.EQ.VFLX) MSG 10(B14,B6) TO LINE 5
   IF(B5.EQ.IMCX) MSG 11(B14,B6) TO LINE 5
   IF(B5.EQ.STRX) MSG 12(B14,B6) TO LINE 5
   IF(B5.EQ.WRXX) MSG 13(B14,B6) TO LINE 5
   IF(B5.EQ.STHX) MSG 14(B14,B6) TO LINE 5
   IF(B5.EQ.ACTX) MSG 15(B14,B6) TO LINE 5
   IF(B5.EQ.SELX) MSG 16(B14,B6) TO LINE 5
   IF(B5.EQ.MRDX) MSG 17(B14,B6) TO LINE 5
   IF(B5.EQ.MWRX) MSG 20(B14,B6) TO LINE 5
   IF(B5.EQ.STCX) MSG 21(B14,B6) TO LINE 5
   IF(B5.EQ.STPX) MSG 22(B14,B6) TO LINE 5
   IF(B5.EQ.STNX) MSG 23(B14,B6) TO LINE 5
   IF(B5.EQ.PRGX) MSG 24(B14,B6) TO LINE 5
   IF(ES.AND.SE.NE.0) GOTO 32 
32 IF(DC.EQ.300) MSG 1(IB(500)) TO LINE 8D  *IF LOCAL NAD 
   IF(DC.EQ.301) MSG 2(IB(500)IB(501)) TO LINE 8D   *IF REMOTE
   B14=IB(156).LS.8+IB(157)    *ERROR COUNT 
   IF(B14+B7.EQ.1) MSG 27 TO PRINT  *IF FIRST ERROR DETECTED
   PICTURE
   IF(ES.AND.SE.EQ.0) GOTO 34   *IF STOP ON ERROR DISABLED
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
34 IF(DC.EQ.300) EXIT TO 97R   *IF LOCAL NAD
   IF(DS.AND.S1.NE.0) EXIT TO 97G   *IF EXTENDED REPORT REQ.
   IF(DS.AND.S2.NE.0) EXIT TO 97G   *IF EXTENDED REPORT REQ.
   EXIT TO 97R
   END 30 
COMPILE            *NLM97F - HARDWARE AND CONTROLWARE STATUS REPORTER.
   MODULE NLM97G,LCN2(301),LOCK 
***       NLM97G - MAINTENANCE FUNCTION RESPONSE TABLE REPORTER.
**        NLM97G - MAINTENANCE FUNCTION RESPONSE TABLE REPORTER.
*         NLM97G - MAINTENANCE FUNCTION RESPONSE TABLE REPORTER.
* 
* 
*         PURPOSE - 
*         NLM97G WILL DISPLAY THE MAINTENANCE FUNCTION RESPONSE TABLE 
*         IF AN ERROR HAS OCCURRED WHILE TESTING A REMOTE NAD AND THE 
*         USER HAS SET THE S1 SWITCH IN THE DS REGISTER.  NLM97G WILL 
*         ALSO INTERPRET THE CONTENTS OF THIS TABLE IF THE USER HAS 
*         SET THE S2 SWITCH IN THE DS REGISTER. 
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE MAINTENANCE FUNCTION RESPONSE TABLE IN 
*            HEXADECIMAL WORDS IF THE USER HAS SET THE S1 SWITCH
*            IN THE DIAGNOSTIC SWITCH (DS) REGISTER.
* 
*         2. DISPLAY AN INTERPRETATION OF THE MAINTENANCE FUNCTION
*            RESPONSE TABLE CONTENTS IF THE USER HAS SET THE S2 
*            SWITCH IN THE DIAGNOSTIC SWITCH (DS) REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM97G IS ENTERED FROM NLM97F.
* 
*         EXIT -
*         NLM97G EXITS TO NLM97H. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         OB(0-33) CONTAINS THE MAINTENANCE FUNCTION RESPONSE 
*                  TABLE. 
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT MAINTENANCE FUNCTION RESPONSE TABLE (HEXADECIMAL) 
1  FORMAT  WORD   0D  *H*H *H*H *H*H *H*H 
2  FORMAT         4D  *H*H *H*H *H*H *H*H 
3  FORMAT         8D  *H*H *H*H *H*H *H*H 
4  FORMAT        12D  *H*H
5  FORMAT *A*A*A*A*A  TCU/TCI TRUNK DIAG. ENABLED 
6  FORMAT *A*A*A*A*A  TCU INPUT BUS PARITY ERROR
7  FORMAT *A*A*A*A*A  TCU/TCI BUS PARITY ERROR
10 FORMAT *A*A*A*A*A  TCU OUTPUT BUS PARITY ERROR 
11 FORMAT *A*A*A*A*A  TCU BUFFER UNDERFLOW
12 FORMAT *A*A*A*A*A  TCU BUFFER OVERFLOW 
13 FORMAT *A*A*A*A*A  FCS ERROR 
14 FORMAT STATUS I    TCU ERROR ADDRESS = *HE HEX.
15 FORMAT             TCU ERROR ADDRESS = *HE HEX.
16 FORMAT *A*A*A*A*A  TRUNK STREAM MODE ERROR 
17 FORMAT *A*A*A*A*A  NO RESPONSE FROM PROCESSOR
20 FORMAT *A*A*A*A*A  PROCESSOR STREAM MODE ERROR 
21 FORMAT *A*A*A*A*A  NO RESPONSE FROM TCU
22 FORMAT *A*A*A*A*A  TCU OFF-LINE
23 FORMAT *A*A*A*A*A  TCI DETECTED ERROR
24 FORMAT *A*A*A*A*A  ILLEGAL TCI TX REQUEST
25 FORMAT *A*A*A*A*A  MEMORY/TCI BUS PARITY ERROR 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------IF S1 SET, DISPLAY THE MAINTENANCE FUNCTION 
/---------RESPONSE TABLE. 
* 
30 B3=10D                    *SET UP LINE NUMBER
   B2=B3                     *INIT. THE LINE NUMBER 
   MSG 0 TO LINE B2          *DIS. STATUS TITLE LINE
   MSG 0 TO PRINT            *PRINT STATUS TITLE LINE 
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(DS.AND.S1.EQ.0) GOTO 42  *IF NO STATUS DISPLAY
   B0=0                        *OUTPUT BUFFER ADDRESS 
   B1=1                        *MESSAGE NUMBER
32 MSG B1 8 WORDS FROM OB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 8 WORDS FROM OB(B0) TO PRINT  *PRINT LINE 
   B0=B0+10                  *UPDATE BUFFER ADDRESS 
   B2=B2+1                   *UPDATE DISPLAY LINE NO. 
   GOTO 32 WHILE (B1+1.NE.4)  *DO THREE MESSAGES
   MSG 4 2 WORDS FROM OB(30) TO LINE B2  *DISPLAY LINE
   MSG 4 2 WORDS FROM OB(30) TO PRINT  *PRINT LINE
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.KL.EQ.0) GOTO 40  *IF NO KL DISPLAY
   IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS INFO TURNED ON
40 IF(ES.AND.SE.EQ.0) GOTO 42  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT     *STOP MESSAGE
   PAUSE                       *WAIT FOR GO COMMAND 
42 IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS DESCRIPTION ON
   B1=B3                       *INIT. BEGINNING LINE NO.
44 MSG 26 TO LINE B1           *BLANK THE STATUS DISPLAY
   GOTO 44 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                       *INIT. BEGINNING LINE NO.
   EXIT TO 97J                 *EXIT THE MODULE 
* 
/---------PROCESS STATUS I IN THE MAINT. FUNCTION RESPONSE. 
* 
50 IB(500)=2324              *STATUS I IN DISPLAY CODE
   IB(501)=124
   IB(502)=2523 
   IB(503)=5511 
   IB(504)=5555 
   B0=OB.AND.376             *STATUS I WORD 
   B1=5 
52 IF(B0.AND 200.NE.0) GOSUB 70  *DISPLAY/PRINT MESSAGE 
   B0=B0.LS.1.AND.377           *UPDATE STATUS WORD 
   GOTO 52 WHILE (B1+1.NE.14)  *IF NOT ALL BITS DONE
   B0=OB.AND.1.RS.8          *BUILD TCU ERROR ADDRESS 
   B0=B0.XOR.OB(1)
   B1=14
   IF(IB(500).EQ.5555) B1=15  *IF NOT FIRST MESSAGE 
   IF(B0.EQ.0) GOTO 60       *IF NO TCU ERROR ADDRESS 
   MSG B1 (B0) TO LINE B2    *DISPLAY LINE
   MSG B1 (B0) TO PRINT      *PRINT LINE
   B2=B2+1                   *UPDATE THE LINE NUMBER
* 
/---------PROCESS STATUS II IN THE MAINT. FUNCTION RESPONSE.
* 
60 IB(500)=2324              *STATUS II IN DIS. CODE
   IB(501)=124
   IB(502)=2523 
   IB(503)=5511 
   IB(504)=1155 
   B0=OB(2).RS.5             *TCU STATUS CONDITIONS 
   B1=B0+16 
   IF(B0.NE.0) GOSUB 70      *TCU STATUS CONDITIONS 
   B1=22
   IF(OB(2).AND.10.NE.0) GOSUB 70  *TCU OFF-LINE
   B1=23
   IF(OB(2).AND.2.NE.0) GOSUB 70  *TCI DETECTED ERROR 
   B1=24
   IF(OB(2).AND.1.NE.0) GOSUB 70  *ILLEGAL TCI TX REQ.
   B1=25
   IF(OB(3).AND.200.NE.0) GOSUB 70  *MEMORY/TCU BUS P.E.
   EXIT TO 97H                      *EXIT THE MODULE
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97G - REPORT MAINT. RESPONSE MESSAGE 
   MODULE NLM97H,LCN2(301),LOCK 
***       NLM97H - CONTINUATION OF NLM97G.
**        NLM97H - CONTINUATION OF NLM97G.
*         NLM97H - CONTINUATION OF NLM97G.
* 
* 
*         PURPOSE - 
*         NLM97H IS A CONTINUATION OF NLM97G.  NLM97H WILL
*         CONTINUE TO DISPLAY AN INTERPRETATION OF THE
*         MAINTENANCE FUNCTION RESPONSE TABLE.
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE CONTENTS
*            OF THE MAINTENANCE FUNCTION RESPONSE TABLE IF THE USER 
*            HAS SET S2 IN THE DIAGNOSTIC REGISTER (DS).
* 
/ 
*         ENTRY - 
*         NLM97H IS ENTERED FROM NLM97G.
* 
*         EXIT -
*         NLM97H EXITS TO NLM97I. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
* 
* 
*         BUFFERS USED -
*         OB(0-33) CONTAINS THE MAINTENANCE FUNCTION RESPONSE 
*                  TABLE. 
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT *A*A*A*A*A  ABNORMAL END RX COMMAND 
1  FORMAT *A*A*A*A*A  ABNORMAL END RX SEQUENCE
2  FORMAT *A*A*A*A*A  ABNORMAL END TX SEQUENCE
3  FORMAT *A*A*A*A*A  END OF RX COMMAND 
4  FORMAT *A*A*A*A*A  END OF RX SEQUENCE
5  FORMAT *A*A*A*A*A  END OF TX SEQUENCE
6  FORMAT *A*A*A*A*A  STREAM MODE TIMEOUT WARNING 
7  FORMAT *A*A*A*A*A  MASTER CLEAR INTERRUPT TO TCI 
10 FORMAT *A*A*A*A*A  STATUS FROM TX
11 FORMAT *A*A*A*A*A  STATUS FROM RX
12 FORMAT *A*A*A*A*A  TCU NOT CONNECTED 
13 FORMAT *A*A*A*A*A  TCU 3 CONNECTED 
14 FORMAT *A*A*A*A*A  TCU 2 CONNECTED 
15 FORMAT *A*A*A*A*A  TCU 1 CONNECTED 
16 FORMAT *A*A*A*A*A  TCU 0 CONNECTED 
17 FORMAT *A*A*A*A*A  RESYNC COMMAND
20 FORMAT *A*A*A*A*A  MASTER CLEAR COMMAND
21 FORMAT *A*A*A*A*A  DATA COMMAND
22 FORMAT *A*A*A*A*A  ENABLE TCI TRUNK DIAG. COMMAND
23 FORMAT *A*A*A*A*A  AUTOLOAD COMMAND
24 FORMAT *A*A*A*A*A  AUTODUMP COMMAND
25 FORMAT *A*A*A*A*A  GO COMMAND
26 FORMAT *A*A*A*A*A  STEP COMMAND
* 
/---------PROCESS STATUS II IN THE MAINT. FUNCTION RESPONSE.
* 
30 B0=OB(3).RS.4.AND.7      *TCU INTERRUPT BITS 
   B1=B0
   GOSUB 70                  *TCU INTERRUPT BITS
   B1=10                      *TX STATUS
   IF(OB(3).AND.10.NE.0) B1=11  *RX STATUS
   GOSUB 70                     *TX/RX STATUS 
   B1=12
   IF(OB(3).AND.4.EQ.0) GOTO 34  *IF TCU NOT CONNECTED
   B1=OB(3).AND.3+13
34 GOSUB 70                  *TCU CONNECTED STATUS
* 
/---------PROCESS FUN. CODE IN THE MAINT. FUNCTION RESPONSE.
* 
   IB(500)=616               *FNC. CODE IN DIS. CODE
   IB(501)=357
   IB(502)=5503 
   IB(503)=1704 
   IB(504)=555
   B1=OB(7).AND.7+17         *FUNCTION CODE 
   GOSUB 70 
   EXIT TO 97I               *EXIT THE MODULE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97H - INTERPRET MAINT. RESPONSE MESSAGE
   MODULE NLM97I,LCN2(301),LOCK 
***       NLM97I - CONTINUATION OF NLM97G.
**        NLM97I - CONTINUATION OF NLM97G.
*         NLM97I - CONTINUATION OF NLM97G.
* 
* 
*         PURPOSE - 
*         NLM97I IS A CONTINUATION OF NLM97H.  NLM97I WILL COMPLETE 
*         THE DISPLAY OF THE MAINTENANCE FUNCTION RESPONSE TABLE
*         INTERPRETATION. 
* 
* 
* 
*         METHOD -
*         1. NLM97I WILL COMPLETE THE DISPLAY WHICH INTERPRETS
*            THE CONTENTS OF THE MAINTENANCE FUNCTION RESPONSE TABLE
*            IF THE S2 SWITCH IN THE DIAGNOSTIC SWITCH REG.(DS) IS
*            SET. 
* 
* 
/ 
*         ENTRY - 
*         NLM97I IS ENTERED FROM NLM97H.
* 
*         EXIT -
*         NLM97I EXITS TO NLM97J. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         OB(0-33) CONTAINS THE MAINTENANCE FUNCTION RESPONSE 
*                  TABLE. 
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT             REMOTE MEMORY ADDRESS =*H*H HEX.
1  FORMAT             LENGTH = *H*H HEX.
2  FORMAT *A*A*A*A*A  TCU/TCI TRUNK DIAG. ENABLED 
3  FORMAT *A*A*A*A*A  TCU INPUT BUS PARITY ERROR
4  FORMAT *A*A*A*A*A  TCU/TCI BUS PARITY ERROR
5  FORMAT *A*A*A*A*A  TCU OUTPUT BUS PARITY ERROR 
6  FORMAT *A*A*A*A*A  TCU BUFFER UNDERFLOW
7  FORMAT *A*A*A*A*A  TCU BUFFER OVERFLOW 
10 FORMAT *A*A*A*A*A  FCS ERROR 
11 FORMAT *A*A*A*A*A  TCI NOT CONNECTED 
12 FORMAT *A*A*A*A*A  TCI DETECTED ERROR
13 FORMAT *A*A*A*A*A  PROCESSOR NOT RUNNING 
14 FORMAT *A*A*A*A*A  PROCESSOR ABNORMAL
15 FORMAT *A*A*A*A*A  ILLEGAL FUNCTION
16 FORMAT *A*A*A*A*A  TCU LENGTH/RX W.C. NONZERO
17 FORMAT *A*A*A*A*A  MEMORY/TCI BUS PARITY ERROR 
20 FORMAT *A*A*A*A*A  NO PROCESSOR RESPONSE 
21 FORMAT PARAM. 3    TCU ERROR ADDRESS = *HE HEX.
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------PROCESS REMOTE MEMORY ADD. AND LENGTH.
* 
30 IF(B1.EQ.22) GOTO 32      *IF AUTOLOAD COMMAND 
   IF(B1.NE.23) GOTO 40      *IF NOT AUTODUMP COMMAND 
32 MSG 0 2 WORDS FROM OB(20) TO LINE B2  *DISPLAY LINE
   MSG 0 2 WORDS FROM OB(20) TO PRINT  *PRINT LINE
   B2=B2+1                   *UPDATE LINE NUMBER
   B0=14                     *AUTOLOAD WORD COUNT ADD.
   IF(B1.EQ.23) B0=16        *AUTODUMP WORD COUNT ADD.
   MSG 1 2 WORDS FROM OB(B0) TO LINE B2  *DISPLAY LINE
   MSG 1 2 WORDS FROM OB(B0) TO PRINT  *PRINT LINE
   B2=B2+1                             *UPDATE LINE NUMBER
* 
/---------PROCESS PARAM. 1 IN THE MAINT. FUNCTION RESPONSE. 
* 
40 IB(503)=5534              *1 IN DISPLAY CODE 
   B0=OB(24).AND.376         *PARAM 1 STATUS WORD 
   B1=2                      *BEGINNING FORMAT STATEMENT NO.
   GOSUB 60                  *DISPLAY/PRINT STATUS LINES
* 
/---------PROCESS PARAM. 2 IN THE MAINT. FUNCTION RESPONSE. 
* 
   IB(503)=5535              *2 IN DISPLAY CODE 
   B0=OB(25).AND.377         *PARAM 2 STATUS WORD 
   B1=11                     *BEGINNING FORMAT STATEMENT NO.
   GOSUB 60                  *DISPLAY/PRINT STATUS LINES
* 
/---------PROCESS PARAM. 3 IN THE MAINT. FUNCTION RESPONSE. 
* 
   B0=OB(24).AND.1.RS.8      *BUILD TCU ERROR ADDRESS 
   B0=B0.XOR.OB(26) 
   IF(B0.EQ.0) GOTO 50       *IF NO TCU ERROR ADDRESS 
   MSG 21 (B0) TO LINE B2    *DISPLAY LINE
   MSG 21 (B0) TO PRINT      *PRINT LINE
   B2=B2+1                   *UPDATE THE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
50 IF(ES.AND.SE.EQ.0) GOTO 54  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT   *STOP MESSAGE
   PAUSE                     *WAIT FOR GO COMMAND 
54 B1=B3                     *INIT. BEGINNING LINE NO.
56 MSG 26 TO LINE B1         *CLEAR STATUS DISPLAY
   GOTO 56 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                     *INIT. BEGINNING LINE NO.
   EXIT TO 97J               *EXIT THE MODULE 
* 
/---------DISPLAY/PRINT MESSAGES FOR STATUS BITS SET IN B0. 
* 
60 IB(500)=2001              *PARAM. IN DISPLAY CODE
   IB(501)=2201 
   IB(502)=1557 
   IB(504)=5555 
62 IF(B0.AND.200.NE.0) GOSUB 70  *DISPLAY/PRINT MESSAGE 
   B1=B1+1                   *UPDATE MESSAGE STATEMENT NO.
   B0=B0.LS.1.AND.377        *UPDATE STATUS WORD
   IF(B0.NE.0) GOTO 62       *IF NOT ALL BITS DONE
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97I - INTERPRET MAINT. RESPONSE MESSAGE
   MODULE NLM97J,LCN2(301),LOCK 
***       NLM97J - PATH STATUS TABLE REPORTER.
**        NLM97J - PATH STATUS TABLE REPORTER.
*         NLM97J - PATH STATUS TABLE REPORTER.
* 
* 
*         PURPOSE - 
*         NLM97J WILL DISPLAY THE PATH STATUS TABLE IN HEXADECIMAL WORD 
*         FORMAT IF AN ERROR HAS OCCURRED WHILE TESTING A REMOTE NAD AND
*         THE S1 SWITCH IN THE DIAGNOSTIC SWITCH REGISTER.
*         NLM97J WILL ALSO BEGIN TO INTERPRET THE CONTENTS OF THE PATH
*         STATUS TABLE FOR THE USER IF THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE PATH STATUS TABLE IN HEXADECIMAL FORMAT IF 
*            THE USER HAS SET THE S1 SWITCH IN THE DIAGNOSTIC SWITCH
*            REGISTER.
* 
*         2. BEGIN DISPLAYING AN INTERPRETATION OF THE CONTENTS OF THE
*            PATH STATUS TABLE IF THE USER HAS SET THE S2 SWITCH IN 
*            THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
/ 
*         ENTRY - 
*         NLM97J IS ENTERED FROM NLM97I.
* 
*         EXIT -
*         NLM97J EXITS TO NLM97K. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT PATH STATUS TABLE (HEXADECIMAL) 
1  FORMAT  WORD   0D  *H*H *H*H *H*H *H*H 
2  FORMAT         4D  *H*H *H*H *H*H *H*H 
3  FORMAT         8D  *H*H *H*H *H*H *H*H 
4  FORMAT        12D  *H*H *H*H *H*H *H*H 
5  FORMAT        16D  *H*H *H*H *H*H *H*H 
6  FORMAT        20D  *H*H *H*H *H*H
7  FORMAT STATE/CLAR. PATH AVAILABLE
10 FORMAT STATE/CLAR. CONNECT INITIATED BY LOCAL DEVICE 
11 FORMAT STATE/CLAR. CONNECT MESSAGE BEING SENT TO REMOTE
12 FORMAT             NAD 
13 FORMAT STATE/CLAR. CONNECT MESSAGE SENT AND ACCEPTED BY
14 FORMAT             REMOTE NAD
15 FORMAT STATE/CLAR. CONNECTED BY REMOTE NAD WHILE TRYING
16 FORMAT             TO CONNECT REMOTE NAD 
17 FORMAT STATE/CLAR. BEING CONNECTED BY REMOTE NAD 
20 FORMAT STATE/CLAR. CONNECT REJECTED BY REMOTE HOST 
21 FORMAT STATE/CLAR. CONNECT REJECTED BY LOCAL HOST
22 FORMAT STATE/CLAR. UNABLE TO INITIALIZE OTHER NAD - PATH 
23 FORMAT             ABORTED 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------IF S1 SET, DISPLAY THE PATH STATUS TABLE. 
* 
30 B2=B3                     *INIT. THE LINE NUMBER 
   MSG 0 TO LINE B2          *DIS. STATUS TITLE LINE
   MSG 0 TO PRINT            *PRINT STATUS TITLE LINE 
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(DS.AND.S1.EQ.0) GOTO 42  *IF NO STATUS DISPLAY
   B0=0                        *INPUT BUFFER ADDRESS
   B1=1                        *MESSAGE NUMBER
32 MSG B1 8 WORDS FROM IB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 8 WORDS FROM IB(B0) TO PRINT  *PRINT LINE 
   B0=B0+10                   *UPDATE BUFFER ADDRESS
   B2=B2+1                    *UPDATE DISPLAY LINE NO.
   GOTO 32 WHILE (B1+1.NE.6)  *DO FIVE MESSAGES 
   MSG 6 6 WORDS FROM IB(50) TO LINE B2  *DISPLAY LINE
   MSG 6 6 WORDS FROM IB(50) TO PRINT  *PRINT LINE
   B2=B2+1                             *UPDATE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.KL.EQ.0) GOTO 40  *IF NO KL DISPLAY
   IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS INFO TURNED ON
40 IF(ES.AND.SE.EQ.0) GOTO 42  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT     *STOP MESSAGE
   PAUSE                       *WAIT FOR GO COMMAND 
42 IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS DESCRIPTION ON
   B1=B3                       *INIT. BEGINNING LINE NO.
44 MSG 26 TO LINE B1           *BLANK THE STATUS DISPLAY
   GOTO 44 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                       *INIT. BEGINNING LINE NO.
   EXIT TO 97P                 *EXIT THE MODULE 
* 
/---------PROCESS STATE/CLARIFIER IN THE PATH STATUS TABLE. 
* 
50 B0=IB.AND.7               *STATE FROM PATH STATUS
   IF(B0.GE.2) EXIT TO 97K   *IF STATE NOT 0 OR 1 
   B1=B0+7                   *FORMAT BASE NUMBER
   B0=IB(1).AND.17           *CLARIFIER STATUS
   IF(B0.EQ.2) B1=B1+1       *IF CLARIFIER EQUALS TWO 
   IF(B0.EQ.3) B1=B1+2       *IF CLARIFIER EQUALS THREE 
   IF(B0.GE.4) B1=B1+3       *IF CLARIFIER .GE. FOUR
   B1=B1+B0                  *FORMAT STATEMENT NUMBER 
   MSG B1 TO LINE B2         *DISPLAY THE LINE
   MSG B1 TO PRINT           *PRINT THE LINE
   B2=B2+1                   *UPDATE DISPLAY LINE NO. 
   B1=B1+1                   *UPDATE FORMAT STATEMENT NO. 
   IF(B1.EQ.12) GOTO 54      *IF TWO LINE MESSAGE 
   IF(B1.EQ.14) GOTO 54      *IF TWO LINE MESSAGE 
   IF(B1.EQ.16) GOTO 54      *IF TWO LINE MESSAGE 
   IF(B1.NE.23) GOTO 56      *IF NOT TWO LINE MESSAGE 
54 MSG B1 TO LINE B2         *DISPLAY NEXT LINE OF MESSAGE
   MSG B1 TO PRINT           *PRINT NEXT LINE OF MESSAGE
   B2=B2+1                   *UPDATE DISPLAY LINE NO. 
56 B0=IB.AND.7               *STATE FROM PATH STATUS
   EXIT TO 97K               *EXIT THE MODULE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97J - REPORT PATH STATUS 
   MODULE NLM97K,LCN2(301),LOCK 
***       NLM97K - CONTINUATION OF NLM97J.
**        NLM97K - CONTINUATION OF NLM97J.
*         NLM97K - CONTINUATION OF NLM97J.
* 
* 
*         PURPOSE - 
*         NLM97K WILL CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH 
*         STATUS TABLE IF THE USER HAS SET THE S2 SWITCH IN THE 
*         DIAGNOSTIC SWITCH REGISTER. 
* 
* 
* 
*         METHOD -
*         1. CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM97K IS ENTERED FROM NLM97J.
* 
*         EXIT -
*         NLM97K EXITS TO NLM97L. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT *A*A*A*A*A. CONNECTED PATH - LOCAL HOST NOT 
1  FORMAT             INFORMED
2  FORMAT *A*A*A*A*A. CONNECTED PATH - LOCAL HOST INFORMED
3  FORMAT *A*A*A*A*A. DISCONNECTING - INITIATED BY LOCAL
4  FORMAT             HOST
5  FORMAT *A*A*A*A*A. DISCONNECTING - INITIATED BY LOCAL
6  FORMAT             HOST
7  FORMAT *A*A*A*A*A. RECEIVING IN STREAM MODE
10 FORMAT *A*A*A*A*A. SENDING IN STREAM MODE
11 FORMAT *A*A*A*A*A. SENDING IN STREAM MODE
12 FORMAT *A*A*A*A*A. DISCONNECT RECEIVED FOR REMOTE NAD
13 FORMAT *A*A*A*A*A. DOUBLE PURGE IN PROGRESS
14 FORMAT *A*A*A*A*A. PURGE IN PROCESS
15 FORMAT *A*A*A*A*A. FLUSH IN PROGRESS 
16 FORMAT *A*A*A*A*A. FLUSH COMPLETED 
17 FORMAT *A*A*A*A*A. PATH REMOTELY ABORTED WHILE FLUSHING
20 FORMAT *A*A*A*A*A. PATH ABORTED - FATAL TRUNK ERROR
21 FORMAT *A*A*A*A*A. PATH ABORTED - UNDEFINED AT REMOTE NAD
22 FORMAT *A*A*A*A*A. PATH ABORTED - REMOTE NAD AUTOLOADED
23 FORMAT *A*A*A*A*A. PATH ABORTED - NO REMOTE NAD RESOURCES
24 FORMAT *A*A*A*A*A. PATH ABORTED - ILLEGAL REMOTE TCUS
25 FORMAT             SPECIFIED IN ROUTING PARAMETERS 
* 
/---------PROCESS STATE/CLARIFIER IN THE PATH STATUS TABLE. 
* 
30 B1=77                     *INITIALIZE FLAG IN B1 
   IB(500)=2324              *STATE/CLAR IN DISPLAY CODE
   IB(501)=124
   IB(502)=550
   IB(503)=314
   IB(504)=122
   IF(B0.EQ.2) B1=0          *IF STATE STATUS EQUALS 2
   IF(B0.EQ.3) B1=14         *IF STATE STATUS EQUALS 3
   IF(B0.EQ.4) B1=20         *IF STATE STATUS EQUALS 4
   IF(B1.EQ.77) GOTO 44      *IF STATE/CLARIFIER PROCESSED
   B0=IB(1).AND.17           *CLARIFIER STATUS
   IF(B1.NE.0) GOTO 34       *IF STATE STATUS NOT TWO 
   IF(B0.NE.0) B1=B1+1       *IF CLARIFIER EQUALS ZERO
   IF(B0.GT.2) B1=B1+1       *IF CLARIFIER EQUALS TWO 
   IF(B0.GT.3) B1=B1+1       *IF CLARIFIER .GT. THREE 
34 B1=B1+B0                  *FORMAT STATEMENT NUMBER 
   GOSUB 70                  *DISPLAY/PRINT THE LINE
   B1=B1+1                   *UPDATE FORMAT STATEMENT NO. 
   IF(B1.EQ.1) GOTO 40       *IF TWO LINE MESSAGE 
   IF(B1.EQ.4) GOTO 40       *IF TWO LINE MESSAGE 
   IF(B1.EQ.6) GOTO 40       *IF TWO LINE MESSAGE 
   IF(B1.NE.24) GOTO 44      *IF NOT TWO LINE MESSAGE 
40 GOSUB 70                  *DISPLAY/PRINT THE LINE
44 EXIT TO 97L               *EXIT THE MODULE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97K - INTERPRET PATH STATUS
   MODULE NLM97L,LCN2(301),LOCK 
***       NLM97L - CONTINUATION OF NLM97J.
**        NLM97L - CONTINUATION OF NLM97J.
*         NLM97L - CONTINUATION OF NLM97J.
* 
* 
*         PURPOSE - 
*         NLM97L WILL CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH 
*         STATUS TABLE IF THE USER HAS SET THE S2 SWITCH IN THE 
*         DIAGNOSTIC SWITCH REGISTER. 
* 
* 
* 
*         METHOD -
*         1. CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM97L IS ENTERED FROM NLM97K.
* 
*         EXIT -
*         NLM97L EXITS TO NLM97M. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT *A*A*A*A*A  MAINTENANCE PATH
1  FORMAT *A*A*A*A*A  FIRST READ FLAG (FOR AUTODUMP)
2  FORMAT *A*A*A*A*A  FIRST WRITE FLAG (FOR AUTOLOAD) 
3  FORMAT *A*A*A*A*A  REMOTE INITIATED FLUSH
4  FORMAT *A*A*A*A*A  CODE FLAG (FCP CODE WORDS)
5  FORMAT *A*A*A*A*A  MARK FLAG 
6  FORMAT *A*A*A*A*A  LOCAL FLAG (LOCAL TRANSFER) 
7  FORMAT *A*A*A*A*A  CONNECT ACCEPTED NOT PROCESSED
10 FORMAT FLAG WORD   LOCAL DEVICE ADDRESS = *H HEX.
11 FORMAT             LOCAL DEVICE ADDRESS = *H HEX.
* 
/---------PROCESS THE FLAG WORD IN THE PATH STATUS TABLE. 
* 
30 IB(500)=614               *FLAG WORD IN DISPLAY CODE 
   IB(501)=107
   IB(502)=5527 
   IB(503)=1722 
   IB(504)=455
   B1=0 
   IF(IB(6).AND.200.NE.0) GOSUB 70  *MAINTENANCE PATH FLAG
   B1=1 
   IF(IB(6).AND.100.NE.0) GOSUB 70  *FIRST WRITE FLAG 
   B1=2 
   IF(IB(6).AND.40.NE.0) GOSUB 70  *FIRST READ FLAG 
   B1=3 
   IF(IB(6).AND.20.NE.0) GOSUB 70  *REMOTE FLUSH FLAG 
   B1=4 
   IF(IB(6).AND.10.NE.0) GOSUB 70  *CODE FLAG 
   B1=5 
   IF(IB(6).AND.4.NE.0) GOSUB 70  *MARK FLAG
   B1=6 
   IF(IB(6).AND.2.NE.0) GOSUB 70  *LOCAL FLAG 
   B1=7 
   IF(IB(6).AND.1.NE.0)GOSUB 70  *CONNECT NOT PROCESSED FLAG
   B0=IB(6).AND.17               *DEVICE ADDRESS
   B1=10
   IF(IB(500).EQ.5555) B1=11     *IF NOT FIRST MESSAGE
   MSG B1 (B0) TO LINE B2        *DISPLAY MESSAGE 
   MSG B1 (B0) TO PRINT          *PRINT MESSAGE 
   B2=B2+1                       *UPDATE LINE NUMBER
   EXIT TO 97M                   *EXIT THE MODULE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97L - INTERPRET PATH STATUS
   MODULE NLM97M,LCN2(301),LOCK 
***       NLM97M - CONTINUATION OF NLM97J.
**        NLM97M - CONTINUATION OF NLM97J.
*         NLM97M - CONTINUATION OF NLM97J.
* 
* 
*         PURPOSE - 
*         NLM97M WILL CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH REGISTER IN THE
*            DIAGNOSTIC SWITCH REGISTER.
* 
* 
/ 
*         ENTRY - 
*         NLM97M IS ENTERED FROM NLM97K.
* 
*         EXIT -
*         NLM97M EXITS TO NLM97N. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT RESOURCES   BUFFER SIZE = *D
1  FORMAT LAST CMD.   PAP (PURGE ALL PATHS) 
2  FORMAT LAST CMD.   STAT (NAD STATUS) 
3  FORMAT LAST CMD.       (UNDEFINED COMMAND) 
4  FORMAT LAST CMD.   ABT (ABORT) 
5  FORMAT LAST CMD.   SCON (SEND CONTROL MESSAGE) 
6  FORMAT LAST CMD.   COP (CONNECT PATH)
7  FORMAT LAST CMD.   APA (ACTIVE PATH) 
10 FORMAT LAST CMD.   SIP (SELECT INPUT PATH) 
11 FORMAT LAST CMD.   RDY (READY) 
12 FORMAT LAST CMD.   ACPT (ACCEPT) 
13 FORMAT LAST CMD.   REJT (REJECT) 
14 FORMAT LAST CMD.   ICM (INQUIRE CONTROL MESSAGE) 
15 FORMAT LAST CMD.   ISCM (INQUIRE SELECTED CONTROL MSG) 
16 FORMAT LAST CMD.   IQP (INQUIRE PATH)
17 FORMAT LAST CMD.   IQSP (INQUIRE SELECTED PATH)
20 FORMAT LAST CMD.   IRCM (INQUIRE REJECTED CONTROL MSG) 
21 FORMAT LAST CMD.   PST (PATH STATUS) 
22 FORMAT LAST CMD.   DCP (DISCONNECT PATH) 
23 FORMAT LAST CMD.   PUPA (PURGE PATH) 
24 FORMAT LAST CMD.   XMIT (TRANSMIT DATA)
25 FORMAT LAST CMD.   WD (WRITE DATA) 
* 
/---------PROCESS RESOURCES IN THE PATH STATUS TABLE. 
* 
30 B0=IB(17).AND.3           *BUFFER SIZE 
   MSG 0 (B0) TO LINE B2     *DISPLAY THE LINE
   MSG 0 (B0) TO PRINT       *PRINT THE LINE
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PROCESS LAST COMMAND IN PATH STATUS TABLE.
* 
   B0=IB(33)                 *LAST COMMAND
   IF(B0.GT.24) EXIT TO 97N  *IF NOT COMMANDS 00-24B
   B1=B0+1                   *FORMAT STATEMENT NUMBER 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
   EXIT TO 97N               *EXIT TO MODULE NLM97N 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97M - INTERPRET PATH STATUS
   MODULE NLM97N,LCN2(301),LOCK 
***       NLM97N - CONTINUATION OF NLM97J.
**        NLM97N - CONTINUATION OF NLM97J.
*         NLM97N - CONTINUATION OF NLM97J.
* 
* 
*         PURPOSE - 
*         NLM97N WILL CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM97N IS ENTERED FROM NLM97M.
* 
*         EXIT -
*         NLM97N EXITS TO NLM97O. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT LAST CMD.   WC (WRITE CODE) 
1  FORMAT LAST CMD.   RC (READ CODE)
2  FORMAT LAST CMD.   RD (READ DATA)
3  FORMAT LAST CMD.   ENST (ENABLE STREAM)
4  FORMAT LAST CMD.   DIST (DISABLE STREAM) 
5  FORMAT LAST CMD.   SFCM (SEND FLUSH CONTROL MESSAGE) 
6  FORMAT LAST CMD.   XMITM (TRANSMIT DATA WITH MARK) 
7  FORMAT LAST CMD.   SPN (SELECT PATH BY NAME) 
10 FORMAT LAST CMD.   RPST (READ PATH STATUS TABLE) 
11 FORMAT LAST CMD.   ISRCM (INQUIRE SELECTED REJECTED
12 FORMAT                   CONTROL MESSAGE)
13 FORMAT LAST CMD.   SRCM (SEND RESET CONTROL MESSAGE) 
14 FORMAT LAST CMD.   CMP (CONNECT MAINTENANCE PATH)
15 FORMAT LAST CMD.   MPF (MAINTENANCE FUNCTION)
16 FORMAT LAST CMD.   MPI (MAINTENANCE INPUT) 
17 FORMAT LAST CMD.   RSC (READ SHORT CODE) 
20 FORMAT LAST CMD.   DFP (DISCONNECT AND FLUSH PATH) 
21 FORMAT LAST CMD.   DNP (DISCONNECT NAMED PATHS)
22 FORMAT LAST CMD.   RSR (REMOTE STATUS REQUEST) 
23 FORMAT LAST CMD.       (UNDEFINED COMMAND) 
24 FORMAT LAST CMD.   RESET (RESET) 
25 FORMAT LAST CMD.   SBIN (SELECT BINARY MODE) 
26 FORMAT LAST CMD.   SCODE (SELECT CODE CONVERSION MODE) 
* 
/---------PROCESS LAST COMMAND IN PATH STATUS TABLE.
* 
30 IF(B0.LT.25) EXIT TO 97O  *IF COMMAND PROCESSED
   IF(B0.GT.52) EXIT TO 97O  *IF NOT COMMANDS 25B-52B 
   B1=B0-25                  *FORMAT STATEMENT NUMBER 
   IF(B1.GE.37) B1=B1+1      *IF TWO LINE MESSAGE 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
   B1=B1+1                   *UPDATE FORMAT STATEMENT NO. 
   IF(B1.EQ.12) EXIT TO 97O  *IF NOT TWO LINE MESSAGE 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   EXIT TO 97O               *EXIT TO MODULE NLM97O 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97N - INTERPRET PATH STATUS
   MODULE NLM97O,LCN2(301),LOCK 
***       NLM97O - CONTINUATION OF NLM97J.
**        NLM97O - CONTINUATION OF NLM97J.
*         NLM97O - CONTINUATION OF NLM97J.
* 
* 
*         PURPOSE - 
*         NLM97O WILL CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IS THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM97O IS ENTERED FROM NLM97N.
* 
*         EXIT -
*         NLM97O EXITS TO NLM97P. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
10 FORMAT LAST CMD.       (UNDEFINED COMMAND) 
11 FORMAT LAST CMD.   WSC (WRITE SHORT CODE)
12 FORMAT LAST CMD.       (UNDEFINED COMMAND) 
13 FORMAT LAST CMD.   SEL (SELECT PATHS 1-3FH)
14 FORMAT LAST RESP.  NULL (NOT USED) 
15 FORMAT LAST RESP.  ACK (ACKNOWLEDGMENT)
16 FORMAT LAST RESP.  NAK (NEGATIVE ACKNOWLEDGMENT) 
17 FORMAT LAST RESP.  DMK (PATH STATUS, INPUT DATA  PRESENT)
20 FORMAT LAST RESP.  PRS (PATH STATUS, ENABLING STREAM)
21 FORMAT LAST RESP.  RSA (REMOTE STATUS ACKNOWLEDGMENT)
22 FORMAT LAST RESP.      (UNDEFINED RESPONSE)
23 FORMAT LAST RESP.      (UNDEFINED RESPONSE)
24 FORMAT LAST RESP.  LOST (LOST DATA)
25 FORMAT LAST RESP.  IER (INPUT DATA ERROR)
* 
/---------PROCESS LAST COMMAND IN PATH STATUS TABLE.
* 
30 IF(B0.LT.53) GOTO 40      *IF LAST COMMAND PROCESSED 
   B1=10
   IF(B0.LT.140) GOTO 34     *IF UNDEFINED COMMAND
   B1=11
   IF(B0.LT.177) GOTO 34     *IF COMMAND WSC
   B1=12
   IF(B0.EQ.200) GOTO 34     *IF UNDEFINED COMMAND
   B0=13                     *SEL COMMAND 
34 MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PROCESS LAST RESPONSE IN THE PATH STATUS TABLE. 
* 
40 B0=IB(35).AND.17          *LAST RESPONSE 
   IF(B0.GT.11) EXIT TO 97P  *IF NOT RESPONSES 0-11B
   B1=B0+14                  *FORMAT STATEMENT NUMBER 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
   EXIT TO 97P               *EXIT TO MODULE NLM97P 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97O - INTERPRET PATH STATUS
   MODULE NLM97P,LCN2(301),LOCK 
***       NLM97P - CONTINUATION OF NLM97J.
**        NLM97P - CONTINUATION OF NLM97J.
*         NLM97P - CONTINUATION OF NLM97J.
* 
* 
*         PURPOSE - 
*         NLM97P WILL CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH IN
*         THE DIAGNOSTIC SWITCH REGISTER. 
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM97P IS ENTERED FROM NLM97O.
* 
*         EXIT -
*         NLM97P EXITS TO NLM97Q. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT LAST RESP.  OER (OUTPUT CHANNEL PARITY ERROR) 
1  FORMAT LAST RESP.  INS (INSUFFICIENT PARAMETER OUTPUT) 
2  FORMAT LAST RESP.  SALT (STREAM ALERT) 
3  FORMAT LAST RESP.  ROE (ROUTING ERROR DETECTED)
4  FORMAT LAST RESP.  INT (INIT. WITH SELECTED REMOTE NAD)
5  FORMAT LAST RESP.  TNR (DATA TRANSFER NOT READY) 
6  FORMAT LAST RESP.  SMD (REMOTE NAD DISABLED STREAM MODE) 
7  FORMAT LAST RESP.  CNT (LOCAL CONNECT REQ. IN PROGRESS)
10 FORMAT LAST RESP.  DCNT (LOCAL DISCON. REQ. IN PROGRESS) 
11 FORMAT LAST RESP.  ABORT (PATH TERMINATED BY REMOTE NAD) 
12 FORMAT LAST RESP.  UDC (UNDEFINED COMMAND) 
13 FORMAT LAST RESP.  ILC (ILLEGAL COMMAND) 
14 FORMAT LAST RESP.  BUT (BUFFER TERMINATED) 
24 FORMAT LAST RESP.      (UNDEFINED RESPONSE)
25 FORMAT CONNECTION NUMBER = *H*H HEX. 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------PROCESS LAST RESPONSE IN THE PATH STATUS TABLE. 
* 
30 IF(B0.LT.12) GOTO 40      *IF NOT RESPONSES 0-11B
   B0=24
   IF(B0.GT.26) GOTO 34      *IF UNDEFINED RESPONSE 
   B1=B0-12                  *FORMAT STATEMENT NUMBER 
34 MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
40 MSG 25 (IB(54),IB(55)) TO LINE B2  *DISPLAY THE MESSAGE
   MSG 25 (IB(54),IB(55)) TO PRINT  *PRINT THE MESSAGE
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.SE.EQ.0) GOTO 44  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT   *STOP MESSAGE
   PAUSE                     *WAIT FOR GO COMMAND 
44 B1=B3                     *INIT. BEGINNING LINE NO.
46 MSG 26 TO LINE B1         *CLEAR STATUS DISPLAY
   GOTO 46 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                     *INIT. BEGINNING LINE NO.
   EXIT TO 97Q               *EXIT THE MODULE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97P - INTERPRET PATH STATUS
   MODULE NLM97Q,LCN2(301),LOCK 
***       NLM97Q - GENERAL/DETAILED NAD STATUS REPORTER.
**        NLM97Q - GENERAL/DETAILED NAD STATUS REPORTER.
*         NLM97Q - GENERAL/DETAILED NAD STATUS REPORTER.
* 
* 
*         PURPOSE - 
*         NLM97Q DISPLAYS THE GENERAL/DETAILED STATUS TABLE IN HEX
*         FORMAT PROVIDED THAT THE USER HAS SET THE S1 SWITCH IN THE
*         DIAGNOSTIC SWITCH REGISTER.  NLM97Q WILL ALSO PROVIDE AN
*         INTERPRETATION OF THE GENERAL/DETAILED STATUS TABLE IF USER 
*         ALSO SETS THE S2 SWITCH IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE GENERAL/DETAILED STATUS TABLE IN HEXADECIMAL 
*            WORD FORMAT IF THE USER HAS SET THE S1 SWITCH IN THE 
*            DIAGNOSTIC SWITCH REGISTER.
* 
*         2. DISPLAY AN INTERPRETATION OF THIS STATUS TABLE IF THE
*            USER HAS ALSO SET THE S2 SWITCH IN THE DIAGNOSTIC
*            REGISTER.
* 
/ 
*         ENTRY - 
*         NLM97Q IS ENTERED FROM NLM97P.
* 
*         EXIT -
*         NLM97Q EXITS TO NLM97R. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         SB(2-27) CONTAINS THE GENERAL DETAILED STATUS TABLE.
* 
* 
* 
0  FORMAT GENERAL DETAILED STATUS TABLE (HEXADECIMAL) 
1  FORMAT  WORD   0D  *H*H *H*H *H*H *H*H 
2  FORMAT         4D  *H*H *H*H *H*H *H*H 
3  FORMAT         8D  *H*H *H*H *H*H
4  FORMAT WORD 0      NAD HARDWARE ADDRESS = *H HEX.
5  FORMAT             NO. OF ERROR QUEUE ENTRIES = *H HEX.
6  FORMAT WORDS 3,4   TOTAL MESSAGES SENT = *H*H*H*H HEX
7  FORMAT WORDS 5,6   TOTAL MSGS. RECEIVED = *H*H*H*H HEX.
10 FORMAT WORD 9      WNAK RESPONSES SENT = *H*H HEX. 
11 FORMAT WORD 10     WNAK RESPONSES RECEIVED = *H*H HEX. 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------IF S1 SET, DISPLAY THE GENERAL DETAILED STATUS
/---------TABLE.
* 
30 B2=B3                     *INIT. THE LINE NUMBER 
   MSG 0 TO LINE B2          *DIS. STATUS TITLE LINE
   MSG 0 TO PRINT            *PRINT STATUS TITLE LINE 
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(DS.AND.S1.EQ.0) GOTO 42  *IF NO STATUS DISPLAY
   B0=2                        *STATUS BUFFER ADDRESS 
   B1=1                        *MESSAGE NUMBER
32 MSG B1 8 WORDS FROM SB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 8 WORDS FROM SB(B0) TO PRINT  *PRINT LINE 
   B0=B0+10                    *UPDATE BUFFER ADDRESS 
   B2=B2+1                     *UPDATE DISPLAY LINE NO. 
   GOTO 32 WHILE (B1+1.NE.3)  *DO TWO MESSAGES
   MSG B1 6 WORDS FROM SB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 6 WORDS FROM SB(B0) TO PRINT  *PRINT LINE 
   B2=B2+1                     *UPDATE DISPLAY LINE NO. 
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.KL.EQ.0) GOTO 40  *IF NO KL DISPLAY
   IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS INFO TURNED ON
40 IF(ES.AND.SE.EQ.0) GOTO 42  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT     *STOP MESSAGE
   PAUSE                       *WAIT FOR GO COMMAND 
42 IF(DS.AND.S2.EQ.0) GOTO 60  *IF STATUS DESCRIPTION OFF 
* 
/---------PROCESS GENERAL DETAILED STATUS TABLE.
* 
50 MSG 4 1 WORDS FROM SB(2) TO LINE B2  *DISPLAY LINE 
   MSG 4 1 WORDS FROM SB(2) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 5 1 WORDS FROM SB(3) TO LINE B2  *DISPLAY LINE 
   MSG 5 1 WORDS FROM SB(3) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 6 4 WORDS FROM SB(10) TO LINE B2  *DISPLAY LINE
   MSG 6 4 WORDS FROM SB(10) TO PRINT  *PRINT LINE
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 7 4 WORDS FROM SB(14) TO LINE B2  *DISPLAY LINE
   MSG 7 4 WORDS FROM SB(14) TO PRINT  *PRINT LINE
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 10 2 WORDS FROM SB(24) TO LINE B2  *DISPLAY LINE 
   MSG 10 2 WORDS FROM SB(24) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 11 2 WORDS FROM SB(26) TO LINE B2  *DISPLAY LINE 
   MSG 11 2 WORDS FROM SB(26) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.SE.EQ.0) GOTO 60  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT   *STOP MESSAGE
   PAUSE                     *WAIT FOR GO COMMAND 
60 B1=B3                     *INIT. BEGINNING LINE NO.
62 MSG 26 TO LINE B1         *BLANK THE STATUS DISPLAY
   GOTO 62 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                     *INIT. BEGINNING LINE NO.
   EXIT TO 97R               *EXIT THE MODULE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM97Q - REPORT DETAILED STATUS 
   MODULE NLM97R,LCN2,(301),LOCK
***       NLM97R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
**        NLM97R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
*         NLM97R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
* 
* 
*         PURPOSE - 
*         NLM97R WILL DISPLAY THE CONTENTS OF THE NAD MEMORY
*         WHEN AN ERROR OCCURS PROVIDED THAT THE
*         USER HAS SET THE S1 SWITCH OF THE DIAGNOSTIC SWITCH 
*         REGISTER. 
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF NAD MEMORY 4-F IF A LOAD ERROR 
*            HAS OCCURRED WHILE LOADING THE NAD TEST INTO MEMORY. 
*            THE S1 SWITCH OF THE DIAGNOSTIC SWITCH REGISTER MUST 
*            BE SET TO ENABLE THIS DISPLAY. 
* 
*         2. DISPLAY THE CONTENTS OF NAD MEMORY 4-F,AND 30-3F IF
*            AN ERROR HAS OCCURRED WHILE MONITORING A TEST EXECUTING
*            IN THE LOCAL NAD.  THE S1 SWITCH OF THE DIAGNOSTIC 
*            SWITCH REGISTER MUST BE SET TO ENABLE THIS DISPLAY.
* 
*         3. DISPLAY THE CONTENTS OF NAD MEMORY 4-F, 20-2F AND 30-3F
*            IF AN ERROR HAS OCCURRED WHILE MONITORING A TEST EXECUTING 
*            IN THE REMOTE NAD.  THE S1 SWITCH OF THE DIAGNOSTIC SWITCH 
*            REGISTER MUST BE SET TO ENABLE THIS DISPLAY OF REMOTE NAD
*            MEMORY.
* 
*         4. DISPLAY THE CONTENTS OF REMOTE NAD MEMORY 4-F,20-2F  AND 
*            THE CONTENTS OF LOCAL NAD MEMORY 30-3F IF AN ERROR HAS 
*            OCCURRED WHILE MONITORING A TEST EXECUTING IN THE REMOTE 
*            NAD.  THE S1 SWITCH OF THE DIAGNOSTIC SWITCH REGISTER MUST 
*            BE SET TO ENABLE THIS DISPLAY AND THE ACCESS LEVEL (AL)
*            ENTERED IN THE ASSIGN CARD MUST BE 6.
* 
* 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM97P
*         ENTRY 2 - NLM97F
* 
*         EXIT -
*         EXIT 1 - NLM97S IF S1,S1 ARE OFF OR MONITOR 
*                  IS EXECUTING 
*         EXIT 2 - NLM97T IF S1,S2 ARE ON AND LOADER
*                  IS EXECUTING.
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         B7 = ERROR COUNT. 
*         EC = ERROR CODE REGISTER. 
*         EA = CONTAINS LAST LINE EXECUTED IN NLM02A. 
*         LF = CONTAINS THE LAST FUNCTION EXECUTED. 
*         EM = ERROR MESSAGE INDEX REGISTER.
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE NAD HARDWARE STATUS. 
*         OB(0-33) CONTAINS THE TRUNK MESSAGE RESPONSE. 
*         IB(300-460) CONTAINS CONTENTS OF MEMORY LOCATIONS 
*                     4-3F. 
* 
* 
* 
* 
1  FORMAT            4-F(REGISTER DISPLAY) (HEXADECIMAL)
2  FORMAT WORD   4   *H*H  *H*H  *H*H  *H*H 
3  FORMAT WORD   8   *H*H  *H*H  *H*H  *H*H 
4  FORMAT WORD   C   *H*H  *H*H  *H*H  *H*H 
5  FORMAT          20-2F(TCI CONTROL PACKAGE) (HEXADECIMAL) 
6  FORMAT WORD   20  *H*H  *H*H  *H*H  *H*H 
7  FORMAT WORD   24  *H*H  *H*H  *H*H  *H*H 
10 FORMAT WORD   28  *H*H  *H*H  *H*H  *H*H 
11 FORMAT WORD   2C  *H*H  *H*H  *H*H  *H*H 
12 FORMAT          30-3F(DI CONTROL PACKAGE)  (HEXADECIMAL) 
13 FORMAT WORD   30  *H*H  *H*H  *H*H  *H*H 
14 FORMAT WORD   34  *H*H  *H*H  *H*H  *H*H 
15 FORMAT WORD   38  *H*H  *H*H  *H*H  *H*H 
16 FORMAT WORD   3C  *H*H  *H*H  *H*H  *H*H 
17 FORMAT               (LOCAL NAD) 
20 FORMAT               (REMOTE NAD)
21 FORMAT  UNABLE TO REPORT NAD MEMORY 4-3F 
22 FORMAT UNABLE TO REPORT NAD MEMORY 20-2F FOR NDT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ----------------------------------------- 
* 
30 IF(DS.AND.S1.EQ.0) GOTO 37  *IF 4-3F DISPLAY REQUESTED 
   IF(IB(300).EQ.7777) GOTO 34  *IF 4-3F INVALID
   GOSUB 40                     *DISPLAY 4-F
   GOSUB 42                     *DISPLAY 20-2F
32 IF(DC.EQ.300) GOSUB 46        *DISPLAY 30-3F 
   GOTO 36
34 B2=10D                       *SET LINE NUMBER
   MSG 21 TO LINE B2            *4-F INVALID MESSAGE
   MSG 21 TO PRINT
36 IF(ES.AND.SE.EQ.0) GOTO 37   *IF STOP ON ERROR DISABLED
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
37 GOSUB 60                        *CLEAR LOWER DISPLAY 
   ENDSUB 
   EXIT TO 97S
* 
/-----------REPORT CONTENTS OF NAD MEMORY 4-F.
* 
40 B2=10D 
   B14=1                           *SET MESSAGE INDEX 
   GOSUB 56 
   MSG 2 10 WORDS FROM IB(300) TO LINE B2 
   MSG 2 10 WORDS FROM IB(300) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(310) TO LINE B2 
   MSG 3 10 WORDS FROM IB(310) TO PRINT 
   B2=B2+1
   MSG 4 10 WORDS FROM IB(320) TO LINE B2 
   MSG 4 10 WORDS FROM IB(320) TO PRINT 
   B2=B2+1
   RETURN 
* 
/-----------REPORT CONTENTS OF NAD MEMORY 20-2F.
* 
42 B14=5                            *SET MESSAGE INDEX
   GOSUB 56 
   IF(B10.AND.77.NE.24) GOTO 44   *IF NOT NDT 
   GOSUB 50 
44 MSG 6 10 WORDS FROM IB(370) TO LINE B2 
   MSG 6 10 WORDS FROM IB(370) TO PRINT 
   B2=B2+1
   MSG 7 10 WORDS FROM IB(400) TO LINE B2 
   MSG 7 10 WORDS FROM IB(400) TO PRINT 
   B2=B2+1
   MSG 10 10 WORDS FROM IB(410) TO LINE B2
   MSG 10 10 WORDS FROM IB(410) TO PRINT
   B2=B2+1
   MSG 11 10 WORDS FROM IB(420) TO LINE B2
   MSG 11 10 WORDS FROM IB(420) TO PRINT
   B2=B2+1
   RETURN 
* 
/-----------REPORT CONTENTS OF NAD MEMORY 30-3F.
* 
46 B14=12                                   *SET MESSAGE INDEX
   GOSUB 56 
   MSG 13 10 WORDS FROM IB(430) TO LINE B2
   MSG 13 10 WORDS FROM IB(430) TO PRINT
   B2=B2+1
   MSG 14 10 WORDS FROM IB(440) TO LINE B2
   MSG 14 10 WORDS FROM IB(440) TO PRINT
   B2=B2+1
   MSG 15 10 WORDS FROM IB(450) TO LINE B2
   MSG 15 10 WORDS FROM IB(450) TO PRINT
   B2=B2+1
   MSG 16 10 WORDS FROM IB(460) TO LINE B2
   MSG 16 10 WORDS FROM IB(460) TO PRINT
   B2=B2+1
   RETURN 
* 
/-----------OBTAIN 20-2F CONTROL PKG. FROM ADDR. 1020H
* 
50 IF(DC.EQ.301) GOTO 52
   RES, ABT 51
51 MEMORY READ 8/12 40B WORDS FROM 1020H TO IB(370), ABT 54 
   RETURN 
52 RES MAINT PATH DA BUFFER 1, ABT 53 
53 AUTODMP 40B WORDS FROM 1020H TO IB(370), ABT 54
   RETURN 
54 MSG 22 TO LINE B2
   MSG 22 TO PRINT
   B2=B2+1
   GOTO 32
* 
/-----------DISPLAY LOCAL/REMOTE MESSAGE. 
* 
56 MSG B14 TO LINE B2 
   MSG B14 TO PRINT 
   B2=B2+1
   IF(DC.EQ.300) MSG 17 TO LINE B2
   IF(DC.EQ.301) MSG 20 TO LINE B2
   B2=B2+1
   RETURN 
* 
/-----------BLANK ERROR DISPLAY.
* 
60 B2=5 
61 MSG 26 TO LINE B2
   B2=B2+1
   IF(B2.LT.47) GOTO 61    *BLANK LINES 5-46B 
   RETURN 
   END 30 
COMPILE            *NLM97R - REPORT 4-F,20-2F AND 30-3F 
   MODULE NLM97S,LCN2,(301),LOCK
***       NLM97S - NAD PROCESSOR RE-START.
**        NLM97S - NAD PROCESSOR RE-START.
*         NLM97S - NAD PROCESSOR RE-START.
* 
* 
*         PURPOSE - 
*         NLM97S RESTARTS THE NAD PROCESSOR OF THE NAD CONTAINING 
*         THE TEST IF THE PROCESSOR HAS STOPPED BEFORE THE TEST HAS 
*         TERMINATED. 
* 
* 
* 
*         METHOD -
*         1. RE-START THE LOCAL NAD PROCESSOR IF THE TEST IS RESIDENT 
*            IN THE LOCAL NAD AND THE PROCESSOR HAS STOPPED BEFORE THE
*            TEST HAS RUN TO TERMINATION. 
* 
*         2. RE-START THE REMOTE NAD PROCESSOR IF THE TEST IS RESIDENT
*            IN THE REMOTE NAD AND THE PROCESSOR HAS STOPPED BEFORE THE 
*            TEST HAS TERMINATED. 
* 
*         3. IF THE PROCESSOR CANNOT BE RE-STARTED, DISPLAY A MESSAGE 
*            TO THE USER EXPLAINING THAT THE PROCESSOR HAS STOPPED
*            AND HALT TEST ACTIVITY.  THE USER MUST NOW RELOAD THE
*            TEST BEFORE RE-RUNNING IT. 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM97F
*         ENTRY 2 - NLM97R
* 
* 
*         EXIT -
*         EXIT 1 - NLM02A (LOCAL MONITOR) 
*         EXIT 2 - NLM02B (REMOTE MONITOR)
* 
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         DC = DEVICE CODE REGISTER.
* 
*         BUFFERS USED -
*         SB(0) - CONTAINS LOCAL NAD HARDWARE STATUS. 
*         OB(25) - CONTAINS REMOTE NAD HARDWARE STATUS (PART
*                  OF THE MAINTENANCE FUNCTION RESPONSE TABLE.) 
* 
* 
* 
* 
1  FORMAT LOCAL NAD PROCESSOR HAS STOPPED 
2  FORMAT REMOTE NAD PROCESSOR HAS STOPPED
3  FORMAT UNABLE TO RE-START PROCESSOR
4  FORMAT PROCESSOR STATE UNCERTAIN 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT --------------------------------------- 
* 
/-----------EQUATES.
* 
   EQUATE STHX=11, RESX=0, STRX=77, RESM=22 
* 
30 IF(B8.EQ.0) GOSUB 60     *IF BEGINNING OF MONITOR
   IF(B8.EQ.0) EXIT 
   IF(OB(504).EQ.0) EXIT TO 97T  *IF LOADER EXECUTING 
   GOSUB 60 
   B5=STHX                          *STATUS H/S INDEX 
   STATUS HARDWARE, ABT 32
32 IF(SB(0).AND.2.EQ.0) GOTO 34     *LOCAL NAD RUNNING
   ERROR 01/3011, GOTO 70 
34 IF(DC.EQ.300) GOTO 50     *IF NO REMOTE NAD USED 
   IF(OB(25).AND.40.EQ.0) GOTO 50   *REMOTE NAD RUNNING 
   ERROR 02/3010, GOTO 70           *UNABLE TO RE-START 
50 EXIT 
* 
/-----------SUBROUTINE TO START/RE-START PROCESSOR. 
* 
60 IF(DC.EQ.301) GOTO 62     *IF REMOTE NAD TESTED
   B5=RESX                   *RESERVE CHANNEL INDEX 
   RES, ABT 70
   B5=STRX                          *START PROCESSOR INDEX
   START, ABT 70
   RETURN 
62 B5=RESM                   *RESERVE CHANNEL/PATH INDEX
   RES MAINT PATH DA BUFFER 1, ABT 70 
   B5=STRX                   *START PROCESSOR INDEX 
   START, ABT 70
   RETURN 
* 
/-----------PROCESS ERROR.
* 
70 B7=B7+1                       *INCREMENT ERROR COUNT 
   IF(EC.NE.3011) GOTO 72 
   MSG 1 TO LINE 5
   MSG 1 TO PRINT 
   MSG 3 TO LINE 6
   MSG 3 TO PRINT 
   GOTO 77
72 IF(EC.NE.3010) GOTO 74 
   MSG 2 TO LINE 5
   MSG 2 TO PRINT 
   MSG 3 TO LINE 6
   MSG 3 TO PRINT 
   GOTO 77
74 IF(DC.EQ.300) MSG 1 TO LINE 5
   IF(DC.EQ.300) MSG 1 TO PRINT 
   IF(DC.EQ.301) MSG 2 TO LINE 5
   IF(DC.EQ.301) MSG 2 TO PRINT 
77 END 30 
COMPILE            *NLM97S - START NAD PROCESSOR
   MODULE NLM97T,LCN2,(301),LOCK
***       NLM97T - IB/OB AND REGISTER DISPLAY.
**        NLM97T - IB/OB AND REGISTER DISPLAY.
*         NLM97T - IB/OB AND REGISTER DISPLAY.
* 
* 
*         PURPOSE - 
*         NLM97T DISPLAYS THE CURRENT CONTENTS OF ALL REGISTERS.
*         THE USER MUST SET THE S2 SWITCH OF THE DIAGNOSTIC SWITCH
*         REGISTER TO ENABLE THIS DISPLAY.  THIS DISPLAY WILL BE
*         PRESENTED FOLLOWING THE DETECTION OF A TEST LOAD ERROR
*         PROVIDED THAT THE S1 SWITCH IS CLEAR AND THE S2 SWITCH
*         IS SET IN THE DIAGNOSTIC SWITCH REGISTER.  THIS MODULE
*         MAY ALSO BE USED BY THE CE AT ANY TIME PROVIDED THAT AN 
*         EXIT TO THIS MODULE IS PROVIDED.
* 
* 
*         METHOD -
*         1. DISPLAY THE CURRENT CONTENTS OF ALL REGISTERS. 
*            (B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15 
*             BA,EC,EA,LF,WC, AND WT REGISTERS.)
* 
* 
/ 
*         ENTRY - 
*         NLM97T IS ENTERED BY A CALL FROM  THE  MODULE  LAST 
*         EXECUTED.   ANY  TIME  THE  USER  WISHES TO SEE THE 
*         CONTENTS OF BUFFERS AND REGISTERS A *CALL  97T*  IS 
*         PLACED  IN  THE  CODE  OF THE MODULE EXECUTING.  AN 
*         EXIT WILL BE TAKEN TO NLM97T WHICH WILL DISPLAY THE 
*         CONTENTS OF BUFFERS AND REGISTERS.
* 
*         EXIT -
*         NLM97T WILL EXIT  TO  NLM97U  WHICH  WILL  CONTINUE 
*         DISPLAYING  THE  CONTENTS  OF  THE INPUT AND OUTPUT 
*         BUFFERS.
* 
*         REGISTERS USED -
*         ALL REGISTERS - READ ONLY 
*         B0,B1 = FIRST NAD ADDRESS OF LAST BLOCK VERIFY. 
*         B2 = LINE COUNT.
*         B5 = COMMAND INDEX. 
*         WC = WORD COUNT OF LAST BLOCK OF TEST.
* 
*         BUFFERS USED -
* 
*         REMARKS - 
*         NLM97T  MUST  BE  CALLED  FROM  THE   MODULE   LAST 
*         EXECUTED.    MODULE   NLM97T   CANNOT  BE  EXECUTED 
*         INDEPENDENTLY OF THE CALLING MODULE.
* 
* 
* 
* 
1  FORMAT MALET REGISTERS (OCTAL) 
2  FORMAT        B0=*OCT  B1=*OCT  B2=*OCT  B3=*OCT 
3  FORMAT        B4=*OCT  B5=*OCT  B6=*OCT  B7=*OCT 
4  FORMAT        B8=*OCT  B9=*OCT B10=*OCT B11=*OCT 
5  FORMAT       B12=*OCT B13=*OCT B14=*OCT B15=*OCT 
6  FORMAT        BA=*OCT  EC=*OCT  EA=*OCT  LF=*OCT 
7  FORMAT        WC=*OCT  WT=*OCT 
15 FORMAT CM WORD COUNT OF TEST=*OCT*OCTB 
16 FORMAT LAST BLOCK TRANSFERRED=*OCTB WORDS
17 FORMAT FIRST NAD ADDR. OF LAST BLOCK=*H*HH 
20 FORMAT ERROR ADDRESS=*H*HH  EXP=*H*HH ACT=*H*HH
21 FORMAT ERROR ADDRESS=*H*HH 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------
* 
/-----------EQUATES.
* 
   EQUATE VFLX=12, VFFX=13
* 
* 
/-----------DISPLAY MALET REGISTERS.
* 
30 IF(DS.AND.S2.EQ.0) BLANK 
   IF(DS.AND.S2.EQ.0) EXIT
   B2=7D
   MSG 15(OB(501)OB(502)) TO LINE B2
   MSG 15(OB(501)OB(502)) TO PRINT
   B2=B2+1
   IF(B5.EQ.VFLX) GOSUB 32
   IF(B5.EQ.VFFX) GOSUB 34
/-----------REPORT CONTENTS OF MALET REGISTERS. 
* 
   B2=B2+1
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   B2=B2+1
   MSG 2(B0,B1,B2,B3) TO LINE B2
   MSG 2(B0,B1,B2,B3) TO PRINT
   B2=B2+1
   MSG 3(B4,B5,B6,B7) TO LINE B2
   MSG 3(B4,B5,B6,B7) TO PRINT
   B2=B2+1
   MSG 4(B8,B9,B10,B11) TO LINE B2
   MSG 4(B8,B9,B10,B11) TO PRINT
   B2=B2+1
   MSG 5(B12,B13,B14,B15) TO LINE B2
   MSG 5(B12,B13,B14,B15) TO PRINT
   B2=B2+1
   MSG 6(BA,EC,EA,LF) TO LINE B2
   MSG 6(BA,EC,EA,LF) TO PRINT
   B2=B2+1
   MSG 7(WC,WT) TO LINE B2
   MSG 7(WC,WT) TO PRINT
50 MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
60 B2=7D
61 MSG 26 TO LINE B2      *CLEAR REGISTER DISPLAY 
   B2=B2+1
   IF(B2.LT.47) GOTO 61 
   EXIT TO 97U
* 
/-----------REPORT LAST BLOCK VERIFY ERROR
* 
32 MSG 16(WC) TO LINE B2
   MSG 16(WC) TO PRINT
   B2=B2+1
   MSG 17(B0,B1) TO LINE B2 
   MSG 17(B0,B1) TO PRINT 
   B2=B2+1
   IF(DC.EQ.301) WC=WC+32B      *IF REMOTE LOAD, ADD 32B
*                   CALCULATE NAD ADDRESS IN ERROR. 
   B4=WC.RS.1   *CHANGE PP WORD COUNT TO NAD WORD COUNT 
   IF(B1+B4.GT.377) B0=B0+1   *UPPER 8 BITS OF ERROR ADDR.
   B4=B1+B4.AND.377   *LOWER 8 BITS OF ERROR ADDRESS
*                   CALCULATE IB/OB CONTAINING ERROR DATA.
   IF(WC.AND.1.NE.0) B13=WC-1    *CALC. ADDR. OF IB/OB
   IF(WC.AND.1.NE.0) B14=WC 
   IF(WC.AND.1.EQ.0) B14=WC+1 
   IF(WC.AND.1.EQ.0) B13=WC 
   GOSUB 36 
   RETURN 
* 
/-----------REPORT FIRST BLOCK VERIFY ERROR.
* 
34 B4=WC.RS.1   *CHANGE PP WORD COUNT TO NAD WORD COUNT 
   B0=0                   *UPPER 8 BITS OF ERROR ADDR.
   B1=100B  *SET TO FIRST ADDRESS COMPARED IN BUFFER
   B4=B4+B1            *LOWER 8 BITS OF ERROR ADDR. 
*                  CALCULATE IB/OB CONTAINING ERROR DATA. 
   IF(WC.AND.1.NE.0) B13=WC+200B-1   *CALC. ADDR. OF IB/OB
   IF(WC.AND.1.NE.0) B14=WC+200B
   IF(WC.AND.1.EQ.0) B14=WC+200B+1
   IF(WC.AND.1.EQ.0) B13=WC+200B
   GOSUB 36 
   RETURN 
36 IF(DS.AND.S1.NE.0) GOTO 42 
   MSG 20(B0,B4,OB(B13)OB(B14)IB(B13)IB(B14)) TO LINE B2
   MSG 20(B0,B4,OB(B13)OB(B14)IB(B13)IB(B14)) TO PRINT
   RETURN 
42 MSG 21(B0,B4) TO LINE B2 
   MSG 21(B0,B4) TO PRINT 
   RETURN 
   END 30 
COMPILE            *NLM97T - DISPLAY OF BUFFERS,REGISTERS 
   MODULE NLM97U,LCN2,(301),LOCK
***       NLM97U - IB/OB DISPLAYS.
**        NLM97U - IB/OB DISPLAYS.
*         NLM97U - IB/OB DISPLAYS.
* 
* 
*         PURPOSE - 
*         NLM97U DISPLAYS THE CONTENTS OF IB/OB (0-177B) IF 
*         A LOAD ERROR OCCURS.  THE S1 SWITCH MUST BE CLEAR AND 
*         THE S2 SWITCH MUST BE SET TO ENABLE THIS DISPLAY. 
*         THIS MODULE MAY ALSO BE USED IN OTHER CIRCUMSTANCES 
*         IF THE CE PROVIDES AN EXIT TO THIS MODULE.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF IB/OB (0-177B).
*            THE S1 SWITCH MUST BE CLEAR WHILE THE S2 SWITCH IS 
*            SET TO ENABLE THIS DISPLAY.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM97U IS ENTERED FROM NLM97T.
* 
*         EXIT -
*         NLM97U  WILL  EXIT  TO  NLM97V  WHICH WILL CONTINUE 
*         DISPLAYING THE REMAINDER OF THE  INPUT  AND  OUTPUT 
*         BUFFERS.
* 
*         BUFFERS USED -
*         IB(0-177B) - READ ONLY
*         OB(0-177B) - READ ONLY
* 
* 
* 
* 
1  FORMAT INPUT BUFFER (OCTAL)
2  FORMAT OUTPUT BUFFER (OCTAL) 
3  FORMAT           *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT WORD 0    *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT WORD 100  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ----------------------------------- 
* 
/-----------DISPLAY IB,OB (0-177B). 
* 
30 B2=7D
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   GOSUB 40             *DISPLAY IB 
   MSG 2 TO LINE B2 
   MSG 2 TO PRINT 
   COPY OB(0) TO IB(0) FOR 200B 
   GOSUB 40             *DISPLAY OB 
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
   GOSUB 60 
   EXIT TO 97V
* 
/-----------DISPLAY CONTENTS OF IB/OB/
* 
40 B2=B2+1
   MSG 4 10 WORDS FROM IB(0) TO LINE B2 
   MSG 4 10 WORDS FROM IB(0) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(10) TO LINE B2
   MSG 3 10 WORDS FROM IB(10) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(20) TO LINE B2
   MSG 3 10 WORDS FROM IB(20) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(30) TO LINE B2
   MSG 3 10 WORDS FROM IB(30) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(40) TO LINE B2
   MSG 3 10 WORDS FROM IB(40) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(50) TO LINE B2
   MSG 3 10 WORDS FROM IB(50) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(60) TO LINE B2
   MSG 3 10 WORDS FROM IB(60) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(70) TO LINE B2
   MSG 3 10 WORDS FROM IB(70) TO PRINT
   B2=B2+1
   MSG 5 10 WORDS FROM IB(100) TO LINE B2 
   MSG 5 10 WORDS FROM IB(100) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(110) TO LINE B2 
   MSG 3 10 WORDS FROM IB(110) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(120) TO LINE B2 
   MSG 3 10 WORDS FROM IB(120) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(130) TO LINE B2 
   MSG 3 10 WORDS FROM IB(130) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(140) TO LINE B2 
   MSG 3 10 WORDS FROM IB(140) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(150) TO LINE B2 
   MSG 3 10 WORDS FROM IB(150) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(160) TO LINE B2 
   MSG 3 10 WORDS FROM IB(160) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(170) TO LINE B2 
   MSG 3 10 WORDS FROM IB(170) TO PRINT 
   RETURN 
60 B2=7D
61 MSG 26 TO LINE B2      *CLEAR REGISTER DISPLAY 
   B2=B2+1
   IF(B2.LE.47) GOTO 61 
   RETURN 
   END 30 
COMPILE            *NLM97U - DISPLAY BUFFERS. 
   MODULE NLM97V,LCN2,(301),LOCK
***       NLM97V - CONTINUATION OF NLM97T.
***       NLM97V - IB/OB DISPLAYS.
**        NLM97V - IB/OB DISPLAYS.
*         NLM97V - IB/OB DISPLAYS.
* 
* 
*         PURPOSE - 
*         NLM97V DISPLAYS THE CONTENTS OF IB/OB (200-377B) IF 
*         A LOAD ERROR OCCURS.  THE S1 SWITCH MUST BE CLEAR AND 
*         THE S2 SWITCH MUST BE SET TO ENABLE THIS DISPLAY. 
*         THIS MODULE MAY ALSO BE USED IN OTHER CIRCUMSTANCES 
*         IF THE CE PROVIDES AN EXIT TO THIS MODULE.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF IB/OB (200-377B).
*            THE S1 SWITCH MUST BE CLEAR WHILE THE S2 SWITCH IS 
*            SET TO ENABLE THIS DISPLAY.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM97V IS ENTERED FROM NLM97U.
* 
*         EXIT -
*         NLM97V  WILL  EXIT  TO NLM97Y.
* 
*         BUFFERS USED -
*         IB(200-377B) - READ ONLY
*         OB(200-377B) - READ ONLY
* 
* 
* 
* 
1  FORMAT INPUT BUFFER (OCTAL)
2  FORMAT OUTPUT BUFFER (OCTAL) 
3  FORMAT           *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT WORD 200  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT WORD 300  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------
* 
/-----------DISPLAY IB,OB (200-377B). 
* 
30 B2=7D
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   GOSUB 40             *DISPLAY IB 
   MSG 2 TO LINE B2 
   MSG 2 TO PRINT 
   COPY OB(200) TO IB(200) FOR 200B 
   GOSUB 40            *DISPLAY OB
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
   GOSUB 60 
   EXIT TO 97W
* 
/-----------DISPLAY CONTENTS OF IB/OB 
* 
40 B2=B2+1
   MSG 4 10 WORDS FROM IB(200) TO LINE B2 
   MSG 4 10 WORDS FROM IB(200) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(210) TO LINE B2 
   MSG 3 10 WORDS FROM IB(210) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(220) TO LINE B2 
   MSG 3 10 WORDS FROM IB(220) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(230) TO LINE B2 
   MSG 3 10 WORDS FROM IB(230) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(240) TO LINE B2 
   MSG 3 10 WORDS FROM IB(240) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(250) TO LINE B2 
   MSG 3 10 WORDS FROM IB(250) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(260) TO LINE B2 
   MSG 3 10 WORDS FROM IB(260) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(270) TO LINE B2 
   MSG 3 10 WORDS FROM IB(270) TO PRINT 
   B2=B2+1
   MSG 5 10 WORDS FROM IB(300) TO LINE B2 
   MSG 5 10 WORDS FROM IB(300) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(310) TO LINE B2 
   MSG 3 10 WORDS FROM IB(310) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(320) TO LINE B2 
   MSG 3 10 WORDS FROM IB(320) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(330) TO LINE B2 
   MSG 3 10 WORDS FROM IB(330) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(340) TO LINE B2 
   MSG 3 10 WORDS FROM IB(340) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(350) TO LINE B2 
   MSG 3 10 WORDS FROM IB(350) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(360) TO LINE B2 
   MSG 3 10 WORDS FROM IB(360) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(370) TO LINE B2 
   MSG 3 10 WORDS FROM IB(370) TO PRINT 
   RETURN 
60 B2=7D
61 MSG 26 TO LINE B2      *CLEAR REGISTER DISPLAY 
   B2=B2+1
   IF(B2.LE.47) GOTO 61 
   RETURN 
   END 30 
COMPILE            *NLM97V - DISPLAY BUFFERS. 
   MODULE NLM97W,LCN2,(301),LOCK
***       NLM97W - IB/OB DISPLAYS.
**        NLM97W - IB/OB DISPLAYS.
*         NLM97W - IB/OB DISPLAYS.
* 
* 
*         PURPOSE - 
*         NLM97W DISPLAYS THE CONTENTS OF IB/OB (400-504B) IF 
*         A LOAD ERROR OCCURS.  THE S1 SWITCH MUST BE CLEAR AND 
*         THE S2 SWITCH MUST BE SET TO ENABLE THIS DISPLAY. 
*         THIS MODULE MAY ALSO BE USED IN OTHER CIRCUMSTANCES 
*         IF THE CE PROVIDES AN EXIT TO THIS MODULE.
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF IB/OB (400-504B).
*            THE S1 SWITCH MUST BE CLEAR WHILE THE S2 SWITCH IS 
*            SET TO ENABLE THIS DISPLAY.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM97W IS ENTERED FROM NLM97V.
* 
*         EXIT -
*         NLM97W WILL EXIT TO THE CALLING MODULE. 
* 
*         BUFFERS USED -
*         IB(400-504B) - READ ONLY
*         OB(400-504B) - READ ONLY
* 
* 
* 
* 
1  FORMAT INPUT BUFFER (OCTAL)
2  FORMAT OUTPUT BUFFER (OCTAL) 
3  FORMAT           *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT WORD 400  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT WORD 500  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------
* 
/-----------DISPLAY IB,OB (400-504B). 
* 
30 B2=7D
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   GOSUB 40             *DISPLAY IB 
   MSG 2 TO LINE B2 
   MSG 2 TO PRINT 
   COPY OB(400) TO IB(400) FOR 104B 
   GOSUB 40             *DISPLAY OB 
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
   BLANK
   EXIT 
* 
/-----------DISPLAY CONTENTS OF IB/OB 
* 
40 B2=B2+1
   MSG 4 10 WORDS FROM IB(400) TO LINE B2 
   MSG 4 10 WORDS FROM IB(400) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(410) TO LINE B2 
   MSG 3 10 WORDS FROM IB(410) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(420) TO LINE B2 
   MSG 3 10 WORDS FROM IB(420) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(430) TO LINE B2 
   MSG 3 10 WORDS FROM IB(430) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(440) TO LINE B2 
   MSG 3 10 WORDS FROM IB(440) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(450) TO LINE B2 
   MSG 3 10 WORDS FROM IB(450) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(460) TO LINE B2 
   MSG 3 10 WORDS FROM IB(460) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(470) TO LINE B2 
   MSG 3 10 WORDS FROM IB(470) TO PRINT 
   B2=B2+1
   MSG 5 5 WORDS FROM IB(500) TO LINE B2
   MSG 5 5 WORDS FROM IB(500) TO PRINT
   RETURN 
   END 30 
COMPILE            *NLM97W - DISPLAY BUFFERS. 
   MODULE NLM97X,LCN2,(301),LOCK
***       NLM97X - TEST MODULE DESCRIPTION REPORTER.
**        NLM97X - TEST MODULE DESCRIPTION REPORTER.
*         NLM97X - TEST MODULE DESCRIPTION REPORTER.
* 
* 
*         PURPOSE - 
*         NLM97X DISPLAYS A MESSAGE DESCRIBING EACH TEST MODULE RUN.
* 
*         METHOD -
*         1. DISPLAY A MODULE DESCRIPTION MESSAGE DESCRIBING THE MODULE 
*            PRESENTLY EXECUTING.  THIS MESSAGE WILL BE DISPLAYED ON
*            LINE 1 OF THE DISPLAY. 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM02A
*         ENTRY 2 - NLM02B
* 
* 
*         EXIT -
*         EXIT 1 - NLM02A 
*         EXIT 2 - NLM02B 
* 
* 
*         REGISTERS USED -
*         B10 = LAST 2 CHARACTERS OF THE TEST NAME. 
* 
*         BUFFERS USED -
*         IB(270-277) CONTAINS MODULE DESCRIPTION.
* 
* 
1  FORMAT  NDM*D - *A*A*A*A*A*A*A 
2  FORMAT  NDP*D - *A*A*A*A*A*A*A 
3  FORMAT  NDT*D - *A*A*A*A*A*A*A 
4  FORMAT *A*A*D EXECUTING
* 
/-----------REPORT MODULE DESCRIPTION MESSAGE.
* 
* 
30 MSG 4(B4,B10,IB(152)) TO PRINT,DISPLAY 
   IB(270)=IB(152)            *CONDITION NUMBER 
   IB(271)=IB(234).LS.6.+IB(235)  *MODULE DESCRIPTION 
   IB(272)=IB(236).LS.6.+IB(237)
   IB(273)=IB(240).LS.6.+IB(241)
   IB(274)=IB(242).LS.6.+IB(243)
   IB(275)=IB(244).LS.6.+IB(245)
   IB(276)=IB(246).LS.6.+IB(247)
   IB(277)=IB(250).LS.6.+IB(251)
   IF(B10.EQ.0415) MSG 1 8D WORDS FROM IB(270) TO LINE 1
   IF(B10.EQ.0420) MSG 2 8D WORDS FROM IB(270) TO LINE 1
   IF(B10.EQ.0424) MSG 3 8D WORDS FROM IB(270) TO LINE 1
   EXIT 
   END 30 
COMPILE            *NLM97X - DISPLAY MODULE DESCRIPTION 
   MODULE NLM98A,LCN,(300,301),LOCK 
***       NLM98A - LOAD ERROR REPORTER. 
**        NLM98A - LOAD ERROR REPORTER. 
*         NLM98A - LOAD ERROR REPORTER. 
* 
* 
*         PURPOSE - 
*         NLM98A REPORTS ERRORS THAT OCCURRED IN THE LOCAL OR 
*         REMOTE LOADER (NLM01A, NLM01B). 
* 
*         METHOD -
*         1. DISPLAY THE ERROR MESSAGE INDICATED BY THE COMMAND 
*            INDEX IN THE B5 REGISTER.
*         2. DISPLAY THE ERROR MESSAGE INDICATED BY THE CONTENTS
*            OF THE EM REGISTER.
*         3. DISPLAY THE LOCAL NAD HARDWARE STATUS. 
* 
/ 
*         ENTRY - 
*         NLM98A IS ENTERED FROM NLM01A OR NLM01B WHEN A
*         TEST LOAD ERROR HAS OCCURRED. 
* 
*         EXIT -
*         EXIT 1 - NLM98A WILL EXIT TO NLM01A IF THE LOCAL LOADER 
*                  WAS EXECUTING. 
*         EXIT 2 - NLM98A WILL EXIT TO NLM01B THE REMOTE LOADER 
*                  WAS EXECUTING. 
* 
*         REGISTERS USED -
*         B0 = UPPER 8 BITS OF THE NAD ADDRESS MISCOMPARE.
*         B1 = WORKING REGISTER.
*         B4 = LOWER 8 BITS OF THE NAD ADDRESS MISCOMPARE.
*         B5 = COMMAND INDEX. 
*         B7 = ERROR COUNT. 
*         B9 = CONTAINS LAST 2 CHARACTERS OF THE TEST NAME
*              IN DISPLAY CODE. 
*         B13 = IB/OB INDEX POINTING TO UPPER 8 BITS OF MISCOMPARE. 
*         B14 = IB/OB INDEX POINTING TO LOWER 8 BITS OF MISCOMPARE. 
*         B11 = ACTUAL LOWER 8 BITS OF MISCOMPARE.
*         DC = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH ENABLES 4-3F NAD MEMORY REPORTING. 
* 
*         EM = REGISTER CONTAINING THE ERROR MESSAGE INDEX. 
*         LF = REGISTER CONTAINING THE LAST FUNCTION EXECUTED.
*         EA = REGISTER CONTAINING THE LAST LINE OF THE MONITOR 
*               EXECUTED. 
*         EC = REGISTER CONTAINING THE ERROR CODE FOR A MONITOR 
*               COMMAND ABORT ERROR.
*         WC = TEMPORARILY HOLDS LOWER 12 BITS OF THE NAD ADDRESS 
*               IN WHICH A VERIFY ERROR OCCURRED. 
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE NAD HARDWARE STATUS. 
*         OB(0-477) CONTAINS EXPECTED TEST WORDS(FROM SCRATCH 
*                   FILE).
*         IB(0-477) CONTAINS ACTUAL TEST WORDS (FROM NAD MEMORY). 
* 
* 
* 
0  FORMAT ERROR -  WRITE MEMORY ABORT          LF=*OCTB 
1  FORMAT NAD LOADER AND MONITOR(NLM) 
2  FORMAT NLM01A - LOCAL NAD LOADER 
3  FORMAT NLM01B - REMOTE NAD LOADER. 
4  FORMAT ERROR -  RESERVE CHANNEL ABORT       LF=*OCTB 
5  FORMAT ERROR -  PROCESSOR MC ABORT          LF=*OCTB 
6  FORMAT ERROR -  LOAD ABORT                  LF=*OCTB 
7  FORMAT ERROR -  VERIFY LAST BLOCK ABORT     LF=*OCTB 
10 FORMAT ERROR -  VERIFY FIRST BLOCK ABORT    LF=*OCTB 
11 FORMAT ERROR -  MEMORY READ ABORT           LF=*OCTB 
12 FORMAT ERROR -  DEVICE INTERFACE MC ABORT   LF=*OCTB 
13 FORMAT ERROR -  CONNECT MAINT. PATH ABORT   LF=*OCTB 
14 FORMAT ERROR -  SELECT MAINT. PATH ABORT    LF=*OCTB 
15 FORMAT ERROR -  AUTODUMP ABORT              LF=*OCTB 
16 FORMAT ERROR -  PMC WORD E ERROR            LF=*OCTB 
17 FORMAT ERROR -  RESERVE CHANNEL/PATH ABORT  LF=*OCTB 
20 FORMAT LOCAL NAD H/S = *OCTB 
21 FORMAT LOCAL NAD H/S = *OCTB   C/S = *OCTB 
22 FORMAT UNABLE TO REPORT LOCAL NAD H/S
23 FORMAT *A*A LOAD ERROR 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ----------------------------------------
* 
/-----------EQUATES.
* 
   EQUATE RESX=0,PMCX=1,LDXX=2,RDXX=3 
   EQUATE IMCX=4,CMPX=5,ACTX=6,MRDX=7,WRXX=14 
   EQUATE VFLX=12, VFFX=13, HSXX=14, RESM=22, PMCE=23 
* 
30 MSG 1 TO LINE 0
   MSG 23 4 WORDS FROM IB(501) TO LINE 2  *DISPLAY TEST LOADED
   IF(DC.EQ.300) MSG 2 TO LINE 1     *IF LOCAL NAD TEST 
   IF(DC.EQ.301) MSG 3 TO LINE 1     *IF REMOTE NAD TEST
* 
/-----------IF COMMAND ABORT ERROR. 
* 
*         B6 CONTAINS THE LAST FUNCTION EXECUTED. 
   IF(B5.EQ.WRXX) MSG 0(LF) TO LINE 3 
   IF(B5.EQ.RESM) MSG 17(LF) TO LINE 3
   IF(B5.EQ.RESX) MSG 4(B6) TO LINE 3 
   IF(B5.EQ.PMCX) MSG 5(B6) TO LINE 3 
   IF(B5.EQ.LDXX) MSG 6(B6) TO LINE 3 
   IF(B5.EQ.RDXX) MSG 11(B6) TO LINE 3
   IF(B5.EQ.IMCX) MSG 12(B6) TO LINE 3
   IF(B5.EQ.CMPX) MSG 13(B6) TO LINE 3
   IF(B5.EQ.ACTX) MSG 14(B6) TO LINE 3
   IF(B5.EQ.MRDX) MSG 15(B6) TO LINE 3
   IF(B5.EQ.PMCE) MSG 16(B6) TO LINE 3
   IF(B5.EQ.VFLX) MSG 7(B6) TO LINE 3 
   IF(B5.EQ.VFFX) MSG 10(B6) TO LINE 3
52 IF(DC.EQ.300) MSG 20(B3) TO LINE 5 
   IF(DC.EQ.301) MSG 21(B3,B4) TO LINE 5
   GOTO 56
54 MSG 22 TO LINE 5          *UNABLE TO REPORT STATUS 
56 IF(B7.EQ.1) MSG 27 TO PRINT  *IF FIRST ERROR DETECTED
   PICTURE
   IF(ES.AND.SE.EQ.0) GOTO 57   *IF STOP ON ERROR DISABLED
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
57 IF(DC.EQ.301) EXIT TO 98G
   EXIT TO 98R
   END 30 
COMPILE            *NLM98A - LOADER ERROR REPORTER. 
   MODULE NLM98B,LCN,(300,301),LOCK 
***       NLM98B - FORMATION OF TEST PARAMETER BUFFER.
**        NLM98B - FORMATION OF TEST PARAMETER BUFFER.
*         NLM98B - FORMATION OF TEST PARAMETER BUFFER.
* 
* 
* 
*         PURPOSE - 
*         NLM98B CREATES A PARAMETER BLOCK IN THE OUTPUT BUFFER.
*         THIS PARAMETER BLOCK CONTAINS ALL THE PARAMETERS NEEDED 
*         BY THE TEST OR CONTROLWARE TO EXECUTE A TEST IN THE LOCAL 
*         OR REMOTE NAD.
* 
* 
*         METHOD -
*         1. STORE THE CONTENTS OF THE DIAGNOSTIC SWITCH (DS) 
*            REGISTER INTO THE PARAMETER BUFFER CREATED IN THE OUTPUT 
*            BUFFER IN 8 BIT FORMAT.
*         2. STORE THE CONTENTS OF THE PARAMETER REGISTERS INTO THE 
*            PARAMETER BUFFER IN 8 BIT FORMAT.
*         3. FORM A TABLE CONTAINING INFORMATION CONCERNING EACH TEST 
*            STOP SELECTED BY THE USER IN THE DS REGISTER. THIS TABLE 
*            WILL BE REFERENCED EACH TIME THE TEST HAS STOPPED UNDER
*            NORMAL CONDITIONS TO DETERMINE IF THE USER HAS SELECTED
*            THE TEST STOP. 
* 
/ 
*         ENTRY - 
*         NLM98B IS ENTERED FROM EITHER NLM02A OR NLM02B DEPENDING
*         UPON THE DEVICE CODE REGISTER CONTENTS. 
* 
*         EXIT -
*         NLM98B EXITS TO EITHER NLM02A OR NLM02B DEPENDING UPON
*         THE DEVICE CODE REGISTER CONTENTS.
* 
* 
*         REGISTERS USED -
*         B14= WORKING REGISTER.
*         AL = ACCESS LEVEL REGISTER. 
*         P0-P9 = PARAMETER REGISTERS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
* 
*         BUFFERS USED -
*         OB(0-35) CONTAINS THE TEST PARAMETERS.
*         OB(400-417) CONTAINS THE TEST STOP TABLE. 
*         SB(30-41) UPPER BITS OF HEX PARAMETER REGISTERS 
*                   P0-P9.
*         SB(42-43) CONTAINS THE ACCESS CODE. 
*         SB(45) CONTAINS THE BUFFER SIZE.
*         SB(50) CONTAINS THE LOGICAL TCU ADDRESS.
*         SB(51) CONTAINS THE TCU ENABLE
* 
*         REMARKS - 
*         THIS MODULE IS CALLED ONLY ONCE BY THE MONITOR. 
* 
* 
* 
* 
   EQUATE STBC=10B, STBM=20B, STBT=40B, STEC=200B, STEM=400B
   EQUATE STET=100B, ACK=6, CONT=2, STER=1, PSN=6 
* 
/-----------CREATE A PARAMETER BUFFER OF NAD TEST PARAMETERS. 
30 OB(40)=SB(51)             *TCU SELECT
   OB(41)=0000               *NOT USED
   OB(42)=SB(50)             *LOGICAL TCU ADDRESS 
   OB(43)=2                  *NAD DATA FUNCTION 
   OB(44)=SB(42)             *ACCESS CODE 
   OB(45)=SB(43)             *ACCESS CODE 
   OB(46)=0000               *LENGTH
   OB(47)=0000               *LENGTH
   OB(50)=0000               *NUMBER OF DATA WORDS TO WRITE 
   OB(51)=21B                *NUMBER OF DATA WORDS TO WRITE 
   OB(52)=22B                *NDI CHECK WORD
   OB(53)=64B                *NDI CHECK WORD
   OB(54) = 0                *REAL TIME CLOCK (40)
   OB(55) = 0 
   OB(56) = DS.AND.7400.RS.8D 
   OB(57) = DS.AND.377       *DIAGNOSTIC SWITCHES (41)
   OB(60) = 0 
   OB(61) = PSN             *NAD TEST FUNCTION(42)
   OB(62) = 0 
   OB(63) = AL               *ACCESS LEVEL (43) 
   OB(64) = 0               *DEVICE TYPE = LCN (44) 
   OB(65) = 2 
   OB(66) = 0 
   OB(67) = 0 
   B14=P0.RS.8D              *P0, RESYNC PARAMETER
   OB(70)=SB(30).LS.4+B14 
   OB(71)=P0.AND.377
   B14=P1.RS.8D              *P1, NAD MEMORY SIZE 
   OB(72)=SB(31).LS.4+B14 
   OB(73)=P1.AND.377
   B14=P2.RS.8D              *P2, NOT USED
   OB(74)=SB(32).LS.4+B14 
   OB(75)=P2.AND.377
   B14=P3.RS.8D              *P3, NAD TEST ENABLES
   OB(76)=SB(33).LS.4+B14 
   OB(77)=P3.AND.377
   B14=P4.RS.8D              *P4, NAD TEST DISABLES 
   OB(100)=SB(34).LS.4+B14
   OB(101)=P4.AND.377 
   B14=P5.RS.8D              *P5, FIRST TEST MODULE TO RUN
   OB(102)=SB(35).LS.4+B14
   OB(103)=P5.AND.377 
   B14=P6.RS.8D              *P6, NUMBER OF MODULES TO RUN
   OB(104)=SB(36).LS.4+B14
   OB(105)=P6.AND.377 
   B14=SB(50).LS.4.+SB(51)   *P7, NAD TCU, LTA
   OB(106)=B14.RS.8D
   OB(107)=B14.AND.377
   B14=P8.RS.8D              *P8, NDT - TCU ENABLES 
   OB(110)=SB(40).LS.4+B14
   OB(111)=P8.AND.377 
   OB(112)=SB(42)            *P9, NAD ACCESS CODE 
   OB(113)=SB(43) 
/-----------CREATE A TABLE CONTAINING OPER. SELECTED STOPS. 
   OB(400)=0
   OB(401)=DS.AND.STER       *STOP ON ERROR 
   OB(402)=DS.AND.STBT       *STOP AT BEGINNING OF TEST 
   OB(403)=DS.AND.STBM       *STOP AT BEGINNING OF MODULE 
   OB(404)=DS.AND.STBC       *STOP AT BEGINNING OF CONDITION
   OB(405)=DS.AND.STET       *STOP AT END OF TEST 
   OB(406)=DS.AND.STEM       *STOP AT END OF MODULE 
   OB(407)=DS.AND.STEC       *STOP AT END OF CONDITION
   OB(411)=0                 *STOP AT NO OP.
   OB(413)=1                 *STOP AT REQUEST OF OPERATOR 
   OB(414)=0                 *STOP WAITING FOR CONTINUE 
   OB(415)=1                 *TEST TERMINATED 
   OB(416)=0                 *NOT USED
   OB(417)=0                 *TEST RUNNING
   EXIT 
   END 30 
COMPILE            *NLM98B - FORMATION OF TEST PARAMETER BUFFER.
   MODULE NLM98C,LCN,(300,301),LOCK 
***       NLM98C - TEST STOP MESSAGE DISPLAY. 
**        NLM98C - TEST STOP MESSAGE DISPLAY. 
*         NLM98C - TEST STOP MESSAGE DISPLAY. 
* 
* 
*         PURPOSE - 
*         DISPLAY A MESSAGE EXPLAINING THE REASON WHY THE TEST HAS
*         STOPPED.  THESE TESTS STOP MESSAGES ONLY OCCUR FOR USER 
*         SELECTED TEST STOPS.
* 
*         METHOD -
*         1. POST THE MESSAGE DESCRIBING THE TEST STOP ON LINE 6D OF
*            THE DISPLAY. 
*         2. POST THE SAME MESSAGE ON THE B DISPLAY.
*         3. IF THE TEST HAS TERMINATED, THE MONITOR WILL HALT
*            ACTIVITY.
* 
/ 
*         ENTRY - 
*         NLM98C IS ENTERED FROM EITHER NLM02A OR NLM02B WHEN THE 
*         TEST STOPS ON A USER SELECTED TEST STOP.
* 
*         EXIT -
*         EXIT 1 - NLM98C EXITS TO NLM02A IF DC=300.
*         EXIT 2 - NLM98C EXITS TO NLM02B IF DC=301.
* 
* 
*         REGISTERS USED -
*         B0 = NAD TEST STATE.
*         B1 = MESSAGE INDEX FOR USER SELECTED TEST STOP. 
*         B4 = TEST NAME. 
*         B7 = ERROR COUNT. 
*         B10 = TEST NAME.
* 
*         BUFFERS USED -
*         IB(35) = STATE OF TEST. 
* 
* 
* 
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   STOPPED BEG. TEST
7  FORMAT *A*A   STOPPED END TEST 
10 FORMAT *A*A   STOPPED ON NO-OP 
11 FORMAT *A*A   TERMINATED 
24 FORMAT NLM02A ERRORS = *DECD 
25 FORMAT NLM02B ERRORS = *DECD 
27 FORMAT ------------------------------------
* 
   EQUATE STER=1, STBT=2, STBM=3, STBC=4, STET=5, STEM=6
   EQUATE STEC=7, STBP=10, STATE=135, STNO=11, TERM=15
/---------DETERMINE THE REASON WHY THE TEST HAS STOPPED.
30 B0=IB(STATE)              *NDI STATUS WORD 
   B1=1                      *MESSAGE NUMBER
   IF(B0.EQ.STER) GOTO 60    *IF STOPPED ON ERROR 
   B1=2                      *MESSAGE NUMBER
   IF(B0.EQ.STBM) GOTO 60    *IF BEGINNING OF MODULE STOP 
   B1=3                      *MESSAGE NUMBER
   IF(B0.EQ.STBC) GOTO 60    *IF BEGINNING OF CONDITION STOP
   B1=4                      *MESSAGE NUMBER
   IF(B0.EQ.STEM) GOTO 60    *IF END OF MODULE STOP 
   B1=5                      *MESSAGE NUMBER
   IF(B0.EQ.STEC) GOTO 60    *IF END OF CONDITION STOP
   B1=6                     *MESSAGE NUMBER 
   IF(B0.EQ.STBT) GOTO 60    *IF BEGINNING OF TEST STOP 
   B1=7                     *MESSAGE NUMBER 
   IF(B0.EQ.STET) GOTO 60    *IF END OF TEST STOP 
   B1=10                     *TERMINATED MESSAGE NUMBER 
   IF(B0.EQ.STNO) GOTO 60    *IF STOPPED ON NO-OP 
   B1=11                     *MESSAGE NUMBER
* 
/---------PROCESS ALL STOPS.
* 
60 MSG B1(B4,B10,IB(152)) TO LINE 3   *DISPLAY STOP MESSAGE 
   MSG B1(B4,B10,IB(152)) TO PRINT,DISPLAY
   IF(B0.EQ.TERM) GOTO 66    *IF TEST TERMINATED
   IF(B0.EQ.STER) EXIT TO 98E   *IF TEST STOPPED ON ERROR 
64 PICTURE
   PAUSE                     *WAIT FOR OPERATOR GO
   EXIT 
66 IF(B7.EQ.0) GOTO 70     *IF NO MONITOR ERRORS
   IF(DC.EQ.300) MSG 24(B7) TO DAYFILE,PRINT,DISPLAY
   IF(DC.EQ.301) MSG 25(B7) TO DAYFILE,PRINT,DISPLAY
70 END 30 
COMPILE            *NLM98C - DISPLAY TEST STOP MESSAGE
   MODULE NLM98D,LCN,(300,301),LOCK 
***       NLM98D - INITIAL MONITOR DISPLAY. 
**        NLM98D - INITIAL MONITOR DISPLAY. 
*         NLM98D - INITIAL MONITOR DISPLAY. 
* 
* 
*         PURPOSE - 
*         NLM98D INITIATES THE NORMAL MONITOR DISPLAY.  IT WILL 
*         DISPLAY ONLY THE TEST NAME, TEST DESCRIPTION AND THE TEST 
*         REVISION NUMBER OF THE TEST PRESENTLY EXECUTING.
* 
* 
*         METHOD -
*         1. DISPLAY THE TEST NAME, TEST DESCRIPTION AND TEST REVISION
*            ON LINE 0 OF THE DISPLAY BUFFER. 
* 
* 
* 
/ 
*         ENTRY - 
*         NLM98D IS ENTERED FROM EITHER NLM02A OR NLM02B
*         DEPENDING UPON THE CONTENTS OF THE DEVICE CODE
*         REGISTER. 
* 
*         EXIT -
*         EXIT 1 - NLM98D WILL EXIT TO NLM02A IF DC=300.
*         EXIT 2 - NLM98D WILL EXIT TO NLM02B IF DC=301.
* 
* 
*         REGISTERS USED -
*         B4 = FIRST 2 CHARACTERS OF THE TEST NAME. 
*         B8 = DISPLAY INITIALIZATION FLAG. 
*         B10 = LAST 2 CHARACTERS OF THE TEST NAME. 
*         B12 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
* 
*         BUFFERS USED -
*         IB(100-270) CONTAINS TEST STATUS INFORMATION. 
*         IB(143) CONTAINS THE LAST 2 CHARACTERS OF 
*                 THE TEST NAME.
* 
* 
*         REMARKS - 
*         NLM98D IS ONLY CALLED ONCE BY THE MONITOR.
* 
* 
1  FORMAT *A*A - NAD MEMORY TEST       REVISION *A*A
2  FORMAT *A*A - NAD PROCESSOR TEST    REVISION *A*A
3  FORMAT *A*A - NAD TRUNK TEST        REVISION *A*A
4  FORMAT *A*A - TRANSMIC NAD TEST     REVISION *A*A
* 
/-----------INITIATE MONITOR DISPLAY. 
* 
30 B4=IB(141)           *SAVE UPPER BITS OF TEST NAME 
   B10=IB(142).LS.6.+IB(143)   *SAVE LOWER BITS OF TEST NAME
   B12=IB(144).LS.6.+IB(145)   *REVISION NUMBER 
   IF(IB(143).AND.77.EQ.15) MSG 1(B4,B10,B12) TO LINE 0 
   IF(IB(143).AND.77.EQ.20) MSG 2(B4,B10,B12) TO LINE 0 
   IF(IB(143).AND.77.EQ.24) MSG 3(B4,B10,B12) TO LINE 0 
   IF(IB(142).AND.77.EQ.16) MSG 4(B4,B10,B12) TO LINE 0 
   B8=1                      *SET MONITOR PROGRESS INDEX
   EXIT TO 98B               *EXIT TO NLM98B
   END 30 
COMPILE            *NLM98D - INITIATE MONITOR DISPLAY 
   MODULE NLM98E,LCN,(300,301),LOCK 
***       NLM98E - MONITOR/TEST ERROR REPORTER. 
**        NLM98E - MONITOR/TEST ERROR REPORTER. 
*         NLM98E - MONITOR/TEST ERROR REPORTER. 
* 
* 
*         PURPOSE - 
*         NLM98E WILL DISPLAY THE CURRENT ERROR INFORMATION.  THIS
*         INCLUDES UPDATING THE MONITOR DISPLAY WITH THE LATEST TEST
*         STATUS AND REPORTING THE ERROR MESSAGE. 
* 
* 
*         METHOD -
*         1. UPDATE THE CONDITION NUMBER, ITERATION COUNT, LOOP COUNT 
*            ERROR COUNT, PROGRAM ADDRESS AND ERROR CODE ON THE DISPLAY 
*            AND ALSO THE ACTUAL AND EXPECTED DATA. 
* 
*         2. DISPLAY A TEST ERROR MESSAGE IF A TEST ERROR HAS OCCURRED. 
* 
*         3. DISPLAY A MONITOR ERROR MESSAGE IF THE MONITOR HAS DETECTED
*            A TEST ERROR.
* 
*         4. DISPLAY A COMMAND ABORT MESSAGE IF THE MONITOR HAS ABORTED 
*            ON A COMMAND INVOLVING I/O.
* 
*         5. DISPLAY A COMMAND ABORT MESSAGE IF THE MONITOR HAS ABORTED 
*            DUE TO A CONTROLWARE COMMAND FAILURE.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM98E IS ENTERED FROM EITHER NLM02A OR NLM02B. 
* 
*         EXIT -
*         NLM98E WILL EXIT TO NLM98F. 
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         B7 = ERROR COUNT. 
*         B12= WORKING REGISTER.
*         B13= WORKING REGISTER.
*         B14 = WORKING REGISTER. 
*         B15 = WORKING REGISTER. 
*         EC = ERROR CODE.
*         EM = REGISTER CONTAINING THE ERROR MESSAGE INDEX. 
*         LF = REGISTER CONTAINING THE LAST FUNCTION EXECUTED.
*         EA = REGISTER CONTAINING THE LAST LINE OF CODE
*              EXECUTED IN THE MONITOR. 
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE NAD HARDWARE STATUS. 
*         IB(100-270) CONTAIN THE PRESENT TEST STATUS.
*         IB(235-267) CONTAINS THE TEST ERROR MESSAGE.
*         OB(0-33) CONTAINS THE TRUNK MESSAGE.
* 
* 
* 
0  FORMAT NAD LOADER AND MONITOR(NLM) 
1  FORMAT  COND=*DD  ICNT=*HH  LC=*DD  ECNT=*DD 
2  FORMAT  PROGRAM ADDRESS=*H*HH   EC=*OCTB 
3  FORMAT  ADDR=*H*HH    EXP=*H*HH    ACT=*H*HH 
4  FORMAT  TEST ERROR  *A*A*A*A*A*A*A*A 
5  FORMAT              *A*A*A*A*A*A*A*A 
* 
/-----------EQUATES.
* 
   EQUATE STER=1
* 
/-----------UPDATE TEST DISPLAY.
* 
30 B14=IB(156).LS.8+IB(157)     *ERROR COUNT
   B15=IB(160).LS.8+IB(161)     *LOOP COUNT 
   MSG 1(IB(153)IB(175)B15,B14) TO LINE 2  *COND,ITER,LC,ECNT 
   B13=IB(154).LS.8.+.IB(155) 
   MSG 2(IB(162)IB(163),B13) TO LINE 4  *PROG. ADDR, EC 
   MSG 3 6 WORDS FROM IB(166) TO LINE 7 
   IF(B8.EQ.0) MSG 0 TO LINE 0    *DISPLAY ALTERNATE TITLE LINE 
* 
/-----------IF TEST ERROR OCCURRED. 
* 
32 IF(B0.NE.STER) GOTO 60     *IF NOT A TEST ERROR
*      FORMAT AND DISPLAY TEST ERROR MESSAGE. 
   IB(234)=IB(234).LS.6+IB(235)     *WORD 70H 
   IB(235)=IB(236).LS.6+IB(237)     *WORD 71H 
   IB(236)=IB(240).LS.6+IB(241)     *WORD 72H 
   IB(237)=IB(242).LS.6+IB(243)     *WORD 73H 
   IB(240)=IB(244).LS.6+IB(245)     *WORD 74H 
   IB(241)=IB(246).LS.6+IB(247)     *WORD 75H 
   IB(242)=IB(250).LS.6+IB(251)     *WORD 76H 
   IB(243)=IB(252).LS.6+IB(253)     *WORD 77H 
   IB(244)=IB(254).LS.6+IB(255)     *WORD 78H 
   IB(245)=IB(256).LS.6+IB(257)     *WORD 79H 
   IB(246)=IB(260).LS.6+IB(261)     *WORD 7AH 
   IB(247)=IB(262).LS.6+IB(263)     *WORD 7BH 
   IB(250)=IB(264).LS.6+IB(265)     *WORD 7CH 
   IB(251)=IB(266).LS.6+IB(267)     *WORD 7DH 
* 
/-----------ATTEMPT TO BALANCE ERROR MESSAGE ON DISPLAY.
* 
   IF(IB(244).AND.7700.NE.55B) GOTO 34
   MSG 4 10B WORDS FROM IB(234) TO LINE 5 
   MSG 5 6B WORDS FROM IB(244) TO LINE 6
   GOTO 60
34 IF(IB(243).AND.0077.NE.55B) GOTO 36
   MSG 4 10B WORDS FROM IB(234) TO LINE 5 
   MSG 5 6B WORDS FROM IB(244) TO LINE 6
   GOTO 60
36 IF(IB(243).AND.7700.NE.55B) GOTO 40
   MSG 4 7B WORDS FROM IB(234) TO LINE 5
   MSG 5 7B WORDS FROM IB(243) TO LINE 6
   GOTO 60
40 IF(IB(242).AND.0077.NE.55B) GOTO 42
   MSG 4 7B WORDS FROM IB(234) TO LINE 5
   MSG 5 7B WORDS FROM IB(243) TO LINE 6
   GOTO 60
42 IF(IB(242).AND.7700.NE.55B) GOTO 44
44 MSG 4 6B WORDS FROM IB(234) TO LINE 5
   MSG 5 10B WORDS FROM IB(242) TO LINE 6 
60 EXIT TO 98F
   END 30 
COMPILE            *NLM98E - UPDATE DISPLAY AND ERROR MESSAGE.
   MODULE NLM98F,LCN,(300,301),LOCK 
***       NLM98F - CONTINUATION OF 98E. 
**        NLM98F - CONTINUATION OF 98E. 
*         NLM98F - CONTINUATION OF 98E. 
* 
* 
*         PURPOSE - 
*         NLM98F WILL DISPLAY AN ERROR MESSAGE DESCRIBING A MONITOR 
*         COMMAND ABORT AND DISPLAY THE CURRENT HARDWARE AND CONTROL- 
*         WARE STATUS OF THE LOCAL NAD. 
* 
* 
* 
*         METHOD -
*         1. DISPLAY A MONITOR COMMAND ABORT ERROR MESSAGE IF THIS
*            TYPE OF ERROR HAS OCCURRED.
* 
*         2. DISPLAY THE LOCAL NAD HARDWARE STATUS. 
* 
*         3. DISPLAY THE LOCAL NAD CONTROLWARE STATUS IF THE LCN
*            CONTROLWARE RESIDES IN THE LOCAL NAD.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM98F IS ENTERED FROM NLM98E.
* 
*         EXIT -
*         EXIT 1 - NLM98F WILL EXIT TO NLM98R FOR LOCAL 
*                  NAD ERROR. 
*         EXIT 2 - NLM98F WILL EXIT TO NLM98G IF S1 OR
*                  S2 SWITCHES OF DS ARE SET. 
*         EXIT 3 - NLM98F WILL EXIT TO NLM98R FOR REMOTE
*                  NAD ERROR IF S1 AND S2 SWITCHES OF DS
*                  REGISTER ARE CLEAR.
* 
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         B7 = MONITOR ERROR COUNT. 
*         B14= TEST ERROR COUNT AND CONDITION NUMBER. 
*         LF = CONTAINS THE LAST FUNCTION EXECUTED. 
*         DC = DEVICE CODE REGISTER.
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE LOCAL NAD HARDWARE STATUS. 
*         SB(1) CONTAINS THE LOCAL NAD CONTROLWARE STATUS.
* 
* 
* 
0  FORMAT  NLM0*A MONITOR ERROR -.RESERVE CHAN./PATH. ABORT LF=*OCB 
1  FORMAT  LOCAL NAD H/S=*OCTB
2  FORMAT  LOCAL NAD H/S=*OCTB   C/S=*OCTB
3  FORMAT  NLM0*A MONITOR ERROR -.RESERVE CHANNEL. ABORT LF=*OCB
4  FORMAT  NLM0*A MONITOR ERROR -.PROCESSOR MC . ABORT LF=*OCB
5  FORMAT  NLM0*A MONITOR ERROR -.LOAD. ABORT LF=*OCB 
6  FORMAT  NLM0*A MONITOR ERROR -.MEMORY READ. ABORT LF=*OCB
7  FORMAT  NLM0*A MONITOR ERROR -.FIRST VERIFY. ABORT LF=*OCB 
10 FORMAT  NLM0*A MONITOR ERROR -.LAST VERIFY. ABORT LF=*OCB
11 FORMAT  NLM0*A MONITOR ERROR -.DI MASTER CLEAR. ABORT LF=*OCB
12 FORMAT  NLM0*A MONITOR ERROR -.START NAD. ABORT LF=*OCB
13 FORMAT  NLM0*A MONITOR ERROR -.MEMORY WRITE. ABORT LF=*OCB 
14 FORMAT  NLM0*A MONITOR ERROR -.STATUS HARDWARE. ABORT LF=*OCB
15 FORMAT  NLM0*A MONITOR ERROR -.ACTIVATE PATH. ABORT LF=*OCB
16 FORMAT  NLM0*A MONITOR ERROR -.SELECT PATH. ABORT LF=*OCB
17 FORMAT  NLM0*A MONITOR ERROR -.AUTODUMP. ABORT LF=*OCB 
20 FORMAT  NLM0*A MONITOR ERROR -.MAINT. WRITE. ABORT LF=*OCB 
21 FORMAT  NLM0*A MONITOR ERROR -.STATUS CONTROLWARE. ABORT LF=*OCB 
22 FORMAT  NLM0*A MONITOR ERROR -.STATUS PATH. ABORT LF=*OCB
23 FORMAT  NLM0*A MONITOR ERROR -.STATUS NAD. ABORT LF=*OCB 
24 FORMAT  NLM0*A MONITOR ERROR -.PURGE PATH. ABORT LF=*OCB 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------- 
* 
* 
/-----------EQUATES.
* 
   EQUATE RESX=0, PMCX=1,LDXX=2, RDXX=3 
   EQUATE VFFX=4, VFLX=5, IMCX=6, STRX=7
   EQUATE WRXX=10, STHX=11, ACTX=12 SELX=13 
   EQUATE MRDX=14, MWRX=15, STCX=16, STPX=17
   EQUATE STNX=20, PRGX=21, RESM=22, STER=1 
* 
/-----------DISPLAY COMMAND ABORT ERROR.
* 
*        B6 CONTAINS THE LAST FUNCTION EXECUTED IN PRIMARY MODULE.
30 IF(DC.EQ.300) B14=3501    *IF LOCAL NAD
   IF(DC.EQ.301) B14=3502    *IF REMOTE NAD 
   IF(B0.EQ.STER) GOTO 32    *IF TEST ERROR OCCURRED
   IF(B5.EQ.RESX) MSG 3(B14,B6) TO LINE 5 
   IF(B5.EQ.PMCX) MSG 4(B14,B6) TO LINE 5 
   IF(B5.EQ.LDXX) MSG 5(B14,B6) TO LINE 5 
   IF(B5.EQ.RDXX) MSG 6(B14,B6) TO LINE 5 
   IF(B5.EQ.VFFX) MSG 7(B14,B6) TO LINE 5 
   IF(B5.EQ.VFLX) MSG 10(B14,B6) TO LINE 5
   IF(B5.EQ.IMCX) MSG 11(B14,B6) TO LINE 5
   IF(B5.EQ.STRX) MSG 12(B14,B6) TO LINE 5
   IF(B5.EQ.WRXX) MSG 13(B14,B6) TO LINE 5
   IF(B5.EQ.STHX) MSG 14(B14,B6) TO LINE 5
   IF(B5.EQ.ACTX) MSG 15(B14,B6) TO LINE 5
   IF(B5.EQ.SELX) MSG 16(B14,B6) TO LINE 5
   IF(B5.EQ.MRDX) MSG 17(B14,B6) TO LINE 5
   IF(B5.EQ.MWRX) MSG 20(B14,B6) TO LINE 5
   IF(B5.EQ.STCX) MSG 21(B14,B6) TO LINE 5
   IF(B5.EQ.STPX) MSG 22(B14,B6) TO LINE 5
   IF(B5.EQ.STNX) MSG 23(B14,B6) TO LINE 5
   IF(B5.EQ.PRGX) MSG 24(B14,B6) TO LINE 5
   IF(ES.AND.SE.NE.0) GOTO 32 
32 IF(DC.EQ.300) MSG 1(IB(500)) TO LINE 8D  *IF LOCAL NAD 
   IF(DC.EQ.301) MSG 2(IB(500)IB(501)) TO LINE 8D   *IF REMOTE
   B14=IB(156).LS.8+IB(157)    *ERROR COUNT 
   IF(B14+B7.EQ.1) MSG 27 TO PRINT  *IF FIRST ERROR DETECTED
   PICTURE
   IF(ES.AND.SE.EQ.0) GOTO 34   *IF STOP ON ERROR DISABLED
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
34 IF(DC.EQ.300) EXIT TO 98R   *IF LOCAL NAD
   IF(DS.AND.S1.NE.0) EXIT TO 98G   *IF EXTENDED REPORT REQ.
   IF(DS.AND.S2.NE.0) EXIT TO 98G   *IF EXTENDED REPORT REQ.
   EXIT TO 98R
   END 30 
COMPILE            *NLM98F - HARDWARE AND CONTROLWARE STATUS REPORTER.
   MODULE NLM98G,LCN(300,301),LOCK
***       NLM98G - MAINTENANCE FUNCTION RESPONSE TABLE REPORTER.
**        NLM98G - MAINTENANCE FUNCTION RESPONSE TABLE REPORTER.
*         NLM98G - MAINTENANCE FUNCTION RESPONSE TABLE REPORTER.
* 
* 
*         PURPOSE - 
*         NLM98G WILL DISPLAY THE MAINTENANCE FUNCTION RESPONSE TABLE 
*         IF AN ERROR HAS OCCURRED WHILE TESTING A REMOTE NAD AND THE 
*         USER HAS SET THE S1 SWITCH IN THE DS REGISTER.  NLM98G WILL 
*         ALSO INTERPRET THE CONTENTS OF THIS TABLE IF THE USER HAS 
*         SET THE S2 SWITCH IN THE DS REGISTER. 
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE MAINTENANCE FUNCTION RESPONSE TABLE IN 
*            HEXADECIMAL WORDS IF THE USER HAS SET THE S1 SWITCH
*            IN THE DIAGNOSTIC SWITCH (DS) REGISTER.
* 
*         2. DISPLAY AN INTERPRETATION OF THE MAINTENANCE FUNCTION
*            RESPONSE TABLE CONTENTS IF THE USER HAS SET THE S2 
*            SWITCH IN THE DIAGNOSTIC SWITCH (DS) REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM98G IS ENTERED FROM NLM98F.
* 
*         EXIT -
*         NLM98G EXITS TO NLM98H. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         OB(0-33) CONTAINS THE MAINTENANCE FUNCTION RESPONSE 
*                  TABLE. 
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT MAINTENANCE FUNCTION RESPONSE TABLE (HEXADECIMAL) 
1  FORMAT  WORD   0D  *H*H *H*H *H*H *H*H 
2  FORMAT         4D  *H*H *H*H *H*H *H*H 
3  FORMAT         8D  *H*H *H*H *H*H *H*H 
4  FORMAT        12D  *H*H
5  FORMAT *A*A*A*A*A  TCU/TCI TRUNK DIAG. ENABLED 
6  FORMAT *A*A*A*A*A  TCU INPUT BUS PARITY ERROR
7  FORMAT *A*A*A*A*A  TCU/TCI BUS PARITY ERROR
10 FORMAT *A*A*A*A*A  TCU OUTPUT BUS PARITY ERROR 
11 FORMAT *A*A*A*A*A  TCU BUFFER UNDERFLOW
12 FORMAT *A*A*A*A*A  TCU BUFFER OVERFLOW 
13 FORMAT *A*A*A*A*A  FCS ERROR 
14 FORMAT STATUS I    TCU ERROR ADDRESS = *HE HEX.
15 FORMAT             TCU ERROR ADDRESS = *HE HEX.
16 FORMAT *A*A*A*A*A  TRUNK STREAM MODE ERROR 
17 FORMAT *A*A*A*A*A  NO RESPONSE FROM PROCESSOR
20 FORMAT *A*A*A*A*A  PROCESSOR STREAM MODE ERROR 
21 FORMAT *A*A*A*A*A  NO RESPONSE FROM TCU
22 FORMAT *A*A*A*A*A  TCU OFF-LINE
23 FORMAT *A*A*A*A*A  TCI DETECTED ERROR
24 FORMAT *A*A*A*A*A  ILLEGAL TCI TX REQUEST
25 FORMAT *A*A*A*A*A  MEMORY/TCI BUS PARITY ERROR 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------IF S1 SET, DISPLAY THE MAINTENANCE FUNCTION 
/---------RESPONSE TABLE. 
* 
30 B3=10D                    *SET UP LINE NUMBER
   B2=B3                     *INIT. THE LINE NUMBER 
   MSG 0 TO LINE B2          *DIS. STATUS TITLE LINE
   MSG 0 TO PRINT            *PRINT STATUS TITLE LINE 
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(DS.AND.S1.EQ.0) GOTO 42  *IF NO STATUS DISPLAY
   B0=0                        *OUTPUT BUFFER ADDRESS 
   B1=1                        *MESSAGE NUMBER
32 MSG B1 8 WORDS FROM OB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 8 WORDS FROM OB(B0) TO PRINT  *PRINT LINE 
   B0=B0+10                  *UPDATE BUFFER ADDRESS 
   B2=B2+1                   *UPDATE DISPLAY LINE NO. 
   GOTO 32 WHILE (B1+1.NE.4)  *DO THREE MESSAGES
   MSG 4 2 WORDS FROM OB(30) TO LINE B2  *DISPLAY LINE
   MSG 4 2 WORDS FROM OB(30) TO PRINT  *PRINT LINE
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.KL.EQ.0) GOTO 40  *IF NO KL DISPLAY
   IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS INFO TURNED ON
40 IF(ES.AND.SE.EQ.0) GOTO 42  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT     *STOP MESSAGE
   PAUSE                       *WAIT FOR GO COMMAND 
42 IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS DESCRIPTION ON
   B1=B3                       *INIT. BEGINNING LINE NO.
44 MSG 26 TO LINE B1           *BLANK THE STATUS DISPLAY
   GOTO 44 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                       *INIT. BEGINNING LINE NO.
   EXIT TO 98J                 *EXIT THE MODULE 
* 
/---------PROCESS STATUS I IN THE MAINT. FUNCTION RESPONSE. 
* 
50 IB(500)=2324              *STATUS I IN DISPLAY CODE
   IB(501)=124
   IB(502)=2523 
   IB(503)=5511 
   IB(504)=5555 
   B0=OB.AND.376             *STATUS I WORD 
   B1=5 
52 IF(B0.AND 200.NE.0) GOSUB 70  *DISPLAY/PRINT MESSAGE 
   B0=B0.LS.1.AND.377           *UPDATE STATUS WORD 
   GOTO 52 WHILE (B1+1.NE.14)  *IF NOT ALL BITS DONE
   B0=OB.AND.1.RS.8          *BUILD TCU ERROR ADDRESS 
   B0=B0.XOR.OB(1)
   B1=14
   IF(IB(500).EQ.5555) B1=15  *IF NOT FIRST MESSAGE 
   IF(B0.EQ.0) GOTO 60       *IF NO TCU ERROR ADDRESS 
   MSG B1 (B0) TO LINE B2    *DISPLAY LINE
   MSG B1 (B0) TO PRINT      *PRINT LINE
   B2=B2+1                   *UPDATE THE LINE NUMBER
* 
/---------PROCESS STATUS II IN THE MAINT. FUNCTION RESPONSE.
* 
60 IB(500)=2324              *STATUS II IN DIS. CODE
   IB(501)=124
   IB(502)=2523 
   IB(503)=5511 
   IB(504)=1155 
   B0=OB(2).RS.5             *TCU STATUS CONDITIONS 
   B1=B0+16 
   IF(B0.NE.0) GOSUB 70      *TCU STATUS CONDITIONS 
   B1=22
   IF(OB(2).AND.10.NE.0) GOSUB 70  *TCU OFF-LINE
   B1=23
   IF(OB(2).AND.2.NE.0) GOSUB 70  *TCI DETECTED ERROR 
   B1=24
   IF(OB(2).AND.1.NE.0) GOSUB 70  *ILLEGAL TCI TX REQ.
   B1=25
   IF(OB(3).AND.200.NE.0) GOSUB 70  *MEMORY/TCU BUS P.E.
   EXIT TO 98H                      *EXIT THE MODULE
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98G - REPORT MAINT. RESPONSE MESSAGE 
   MODULE NLM98H,LCN(300,301),LOCK
***       NLM98H - CONTINUATION OF NLM98G.
**        NLM98H - CONTINUATION OF NLM98G.
*         NLM98H - CONTINUATION OF NLM98G.
* 
* 
*         PURPOSE - 
*         NLM98H IS A CONTINUATION OF NLM98G.  NLM98H WILL
*         CONTINUE TO DISPLAY AN INTERPRETATION OF THE
*         MAINTENANCE FUNCTION RESPONSE TABLE.
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE CONTENTS
*            OF THE MAINTENANCE FUNCTION RESPONSE TABLE IF THE USER 
*            HAS SET S2 IN THE DIAGNOSTIC REGISTER (DS).
* 
/ 
*         ENTRY - 
*         NLM98H IS ENTERED FROM NLM98G.
* 
*         EXIT -
*         NLM98H EXITS TO NLM98I. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
* 
* 
*         BUFFERS USED -
*         OB(0-33) CONTAINS THE MAINTENANCE FUNCTION RESPONSE 
*                  TABLE. 
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT *A*A*A*A*A  ABNORMAL END RX COMMAND 
1  FORMAT *A*A*A*A*A  ABNORMAL END RX SEQUENCE
2  FORMAT *A*A*A*A*A  ABNORMAL END TX SEQUENCE
3  FORMAT *A*A*A*A*A  END OF RX COMMAND 
4  FORMAT *A*A*A*A*A  END OF RX SEQUENCE
5  FORMAT *A*A*A*A*A  END OF TX SEQUENCE
6  FORMAT *A*A*A*A*A  STREAM MODE TIMEOUT WARNING 
7  FORMAT *A*A*A*A*A  MASTER CLEAR INTERRUPT TO TCI 
10 FORMAT *A*A*A*A*A  STATUS FROM TX
11 FORMAT *A*A*A*A*A  STATUS FROM RX
12 FORMAT *A*A*A*A*A  TCU NOT CONNECTED 
13 FORMAT *A*A*A*A*A  TCU 3 CONNECTED 
14 FORMAT *A*A*A*A*A  TCU 2 CONNECTED 
15 FORMAT *A*A*A*A*A  TCU 1 CONNECTED 
16 FORMAT *A*A*A*A*A  TCU 0 CONNECTED 
17 FORMAT *A*A*A*A*A  RESYNC COMMAND
20 FORMAT *A*A*A*A*A  MASTER CLEAR COMMAND
21 FORMAT *A*A*A*A*A  DATA COMMAND
22 FORMAT *A*A*A*A*A  ENABLE TCI TRUNK DIAG. COMMAND
23 FORMAT *A*A*A*A*A  AUTOLOAD COMMAND
24 FORMAT *A*A*A*A*A  AUTODUMP COMMAND
25 FORMAT *A*A*A*A*A  GO COMMAND
26 FORMAT *A*A*A*A*A  STEP COMMAND
* 
/---------PROCESS STATUS II IN THE MAINT. FUNCTION RESPONSE.
* 
30 B0=OB(3).RS.4.AND.7      *TCU INTERRUPT BITS 
   B1=B0
   GOSUB 70                  *TCU INTERRUPT BITS
   B1=10                      *TX STATUS
   IF(OB(3).AND.10.NE.0) B1=11  *RX STATUS
   GOSUB 70                     *TX/RX STATUS 
   B1=12
   IF(OB(3).AND.4.EQ.0) GOTO 34  *IF TCU NOT CONNECTED
   B1=OB(3).AND.3+13
34 GOSUB 70                  *TCU CONNECTED STATUS
* 
/---------PROCESS FUN. CODE IN THE MAINT. FUNCTION RESPONSE.
* 
   IB(500)=616               *FNC. CODE IN DIS. CODE
   IB(501)=357
   IB(502)=5503 
   IB(503)=1704 
   IB(504)=555
   B1=OB(7).AND.7+17         *FUNCTION CODE 
   GOSUB 70 
   EXIT TO 98I               *EXIT THE MODULE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98H - INTERPRET MAINT. RESPONSE MESSAGE
   MODULE NLM98I,LCN(300,301),LOCK
***       NLM98I - CONTINUATION OF NLM98G.
**        NLM98I - CONTINUATION OF NLM98G.
*         NLM98I - CONTINUATION OF NLM98G.
* 
* 
*         PURPOSE - 
*         NLM98I IS A CONTINUATION OF NLM98H.  NLM98I WILL COMPLETE 
*         THE DISPLAY OF THE MAINTENANCE FUNCTION RESPONSE TABLE
*         INTERPRETATION. 
* 
* 
* 
*         METHOD -
*         1. NLM98I WILL COMPLETE THE DISPLAY WHICH INTERPRETS
*            THE CONTENTS OF THE MAINTENANCE FUNCTION RESPONSE TABLE
*            IF THE S2 SWITCH IN THE DIAGNOSTIC SWITCH REG.(DS) IS
*            SET. 
* 
* 
/ 
*         ENTRY - 
*         NLM98I IS ENTERED FROM NLM98H.
* 
*         EXIT -
*         NLM98I EXITS TO NLM98J. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         OB(0-33) CONTAINS THE MAINTENANCE FUNCTION RESPONSE 
*                  TABLE. 
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT             REMOTE MEMORY ADDRESS =*H*H HEX.
1  FORMAT             LENGTH = *H*H HEX.
2  FORMAT *A*A*A*A*A  TCU/TCI TRUNK DIAG. ENABLED 
3  FORMAT *A*A*A*A*A  TCU INPUT BUS PARITY ERROR
4  FORMAT *A*A*A*A*A  TCU/TCI BUS PARITY ERROR
5  FORMAT *A*A*A*A*A  TCU OUTPUT BUS PARITY ERROR 
6  FORMAT *A*A*A*A*A  TCU BUFFER UNDERFLOW
7  FORMAT *A*A*A*A*A  TCU BUFFER OVERFLOW 
10 FORMAT *A*A*A*A*A  FCS ERROR 
11 FORMAT *A*A*A*A*A  TCI NOT CONNECTED 
12 FORMAT *A*A*A*A*A  TCI DETECTED ERROR
13 FORMAT *A*A*A*A*A  PROCESSOR NOT RUNNING 
14 FORMAT *A*A*A*A*A  PROCESSOR ABNORMAL
15 FORMAT *A*A*A*A*A  ILLEGAL FUNCTION
16 FORMAT *A*A*A*A*A  TCU LENGTH/RX W.C. NONZERO
17 FORMAT *A*A*A*A*A  MEMORY/TCI BUS PARITY ERROR 
20 FORMAT *A*A*A*A*A  NO PROCESSOR RESPONSE 
21 FORMAT PARAM. 3    TCU ERROR ADDRESS = *HE HEX.
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------PROCESS REMOTE MEMORY ADD. AND LENGTH.
* 
30 IF(B1.EQ.22) GOTO 32      *IF AUTOLOAD COMMAND 
   IF(B1.NE.23) GOTO 40      *IF NOT AUTODUMP COMMAND 
32 MSG 0 2 WORDS FROM OB(20) TO LINE B2  *DISPLAY LINE
   MSG 0 2 WORDS FROM OB(20) TO PRINT  *PRINT LINE
   B2=B2+1                   *UPDATE LINE NUMBER
   B0=14                     *AUTOLOAD WORD COUNT ADD.
   IF(B1.EQ.23) B0=16        *AUTODUMP WORD COUNT ADD.
   MSG 1 2 WORDS FROM OB(B0) TO LINE B2  *DISPLAY LINE
   MSG 1 2 WORDS FROM OB(B0) TO PRINT  *PRINT LINE
   B2=B2+1                             *UPDATE LINE NUMBER
* 
/---------PROCESS PARAM. 1 IN THE MAINT. FUNCTION RESPONSE. 
* 
40 IB(503)=5534              *1 IN DISPLAY CODE 
   B0=OB(24).AND.376         *PARAM 1 STATUS WORD 
   B1=2                      *BEGINNING FORMAT STATEMENT NO.
   GOSUB 60                  *DISPLAY/PRINT STATUS LINES
* 
/---------PROCESS PARAM. 2 IN THE MAINT. FUNCTION RESPONSE. 
* 
   IB(503)=5535              *2 IN DISPLAY CODE 
   B0=OB(25).AND.377         *PARAM 2 STATUS WORD 
   B1=11                     *BEGINNING FORMAT STATEMENT NO.
   GOSUB 60                  *DISPLAY/PRINT STATUS LINES
* 
/---------PROCESS PARAM. 3 IN THE MAINT. FUNCTION RESPONSE. 
* 
   B0=OB(24).AND.1.RS.8      *BUILD TCU ERROR ADDRESS 
   B0=B0.XOR.OB(26) 
   IF(B0.EQ.0) GOTO 50       *IF NO TCU ERROR ADDRESS 
   MSG 21 (B0) TO LINE B2    *DISPLAY LINE
   MSG 21 (B0) TO PRINT      *PRINT LINE
   B2=B2+1                   *UPDATE THE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
50 IF(ES.AND.SE.EQ.0) GOTO 54  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT   *STOP MESSAGE
   PAUSE                     *WAIT FOR GO COMMAND 
54 B1=B3                     *INIT. BEGINNING LINE NO.
56 MSG 26 TO LINE B1         *CLEAR STATUS DISPLAY
   GOTO 56 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                     *INIT. BEGINNING LINE NO.
   EXIT TO 98J               *EXIT THE MODULE 
* 
/---------DISPLAY/PRINT MESSAGES FOR STATUS BITS SET IN B0. 
* 
60 IB(500)=2001              *PARAM. IN DISPLAY CODE
   IB(501)=2201 
   IB(502)=1557 
   IB(504)=5555 
62 IF(B0.AND.200.NE.0) GOSUB 70  *DISPLAY/PRINT MESSAGE 
   B1=B1+1                   *UPDATE MESSAGE STATEMENT NO.
   B0=B0.LS.1.AND.377        *UPDATE STATUS WORD
   IF(B0.NE.0) GOTO 62       *IF NOT ALL BITS DONE
   RETURN                    *EXIT THE SUBROUTINE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98I - INTERPRET MAINT. RESPONSE MESSAGE
   MODULE NLM98J,LCN(300,301),LOCK
***       NLM98J - PATH STATUS TABLE REPORTER.
**        NLM98J - PATH STATUS TABLE REPORTER.
*         NLM98J - PATH STATUS TABLE REPORTER.
* 
* 
*         PURPOSE - 
*         NLM98J WILL DISPLAY THE PATH STATUS TABLE IN HEXADECIMAL WORD 
*         FORMAT IF AN ERROR HAS OCCURRED WHILE TESTING A REMOTE NAD AND
*         THE S1 SWITCH IN THE DIAGNOSTIC SWITCH REGISTER.
*         NLM98J WILL ALSO BEGIN TO INTERPRET THE CONTENTS OF THE PATH
*         STATUS TABLE FOR THE USER IF THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE PATH STATUS TABLE IN HEXADECIMAL FORMAT IF 
*            THE USER HAS SET THE S1 SWITCH IN THE DIAGNOSTIC SWITCH
*            REGISTER.
* 
*         2. BEGIN DISPLAYING AN INTERPRETATION OF THE CONTENTS OF THE
*            PATH STATUS TABLE IF THE USER HAS SET THE S2 SWITCH IN 
*            THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
/ 
*         ENTRY - 
*         NLM98J IS ENTERED FROM NLM98I.
* 
*         EXIT -
*         NLM98J EXITS TO NLM98K. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT PATH STATUS TABLE (HEXADECIMAL) 
1  FORMAT  WORD   0D  *H*H *H*H *H*H *H*H 
2  FORMAT         4D  *H*H *H*H *H*H *H*H 
3  FORMAT         8D  *H*H *H*H *H*H *H*H 
4  FORMAT        12D  *H*H *H*H *H*H *H*H 
5  FORMAT        16D  *H*H *H*H *H*H *H*H 
6  FORMAT        20D  *H*H *H*H *H*H
7  FORMAT STATE/CLAR. PATH AVAILABLE
10 FORMAT STATE/CLAR. CONNECT INITIATED BY LOCAL DEVICE 
11 FORMAT STATE/CLAR. CONNECT MESSAGE BEING SENT TO REMOTE
12 FORMAT             NAD 
13 FORMAT STATE/CLAR. CONNECT MESSAGE SENT AND ACCEPTED BY
14 FORMAT             REMOTE NAD
15 FORMAT STATE/CLAR. CONNECTED BY REMOTE NAD WHILE TRYING
16 FORMAT             TO CONNECT REMOTE NAD 
17 FORMAT STATE/CLAR. BEING CONNECTED BY REMOTE NAD 
20 FORMAT STATE/CLAR. CONNECT REJECTED BY REMOTE HOST 
21 FORMAT STATE/CLAR. CONNECT REJECTED BY LOCAL HOST
22 FORMAT STATE/CLAR. UNABLE TO INITIALIZE OTHER NAD - PATH 
23 FORMAT             ABORTED 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------IF S1 SET, DISPLAY THE PATH STATUS TABLE. 
* 
30 B2=B3                     *INIT. THE LINE NUMBER 
   MSG 0 TO LINE B2          *DIS. STATUS TITLE LINE
   MSG 0 TO PRINT            *PRINT STATUS TITLE LINE 
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(DS.AND.S1.EQ.0) GOTO 42  *IF NO STATUS DISPLAY
   B0=0                        *INPUT BUFFER ADDRESS
   B1=1                        *MESSAGE NUMBER
32 MSG B1 8 WORDS FROM IB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 8 WORDS FROM IB(B0) TO PRINT  *PRINT LINE 
   B0=B0+10                   *UPDATE BUFFER ADDRESS
   B2=B2+1                    *UPDATE DISPLAY LINE NO.
   GOTO 32 WHILE (B1+1.NE.6)  *DO FIVE MESSAGES 
   MSG 6 6 WORDS FROM IB(50) TO LINE B2  *DISPLAY LINE
   MSG 6 6 WORDS FROM IB(50) TO PRINT  *PRINT LINE
   B2=B2+1                             *UPDATE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.KL.EQ.0) GOTO 40  *IF NO KL DISPLAY
   IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS INFO TURNED ON
40 IF(ES.AND.SE.EQ.0) GOTO 42  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT     *STOP MESSAGE
   PAUSE                       *WAIT FOR GO COMMAND 
42 IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS DESCRIPTION ON
   B1=B3                       *INIT. BEGINNING LINE NO.
44 MSG 26 TO LINE B1           *BLANK THE STATUS DISPLAY
   GOTO 44 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                       *INIT. BEGINNING LINE NO.
   EXIT TO 98P                 *EXIT THE MODULE 
* 
/---------PROCESS STATE/CLARIFIER IN THE PATH STATUS TABLE. 
* 
50 B0=IB.AND.7               *STATE FROM PATH STATUS
   IF(B0.GE.2) EXIT TO 98K   *IF STATE NOT 0 OR 1 
   B1=B0+7                   *FORMAT BASE NUMBER
   B0=IB(1).AND.17           *CLARIFIER STATUS
   IF(B0.EQ.2) B1=B1+1       *IF CLARIFIER EQUALS TWO 
   IF(B0.EQ.3) B1=B1+2       *IF CLARIFIER EQUALS THREE 
   IF(B0.GE.4) B1=B1+3       *IF CLARIFIER .GE. FOUR
   B1=B1+B0                  *FORMAT STATEMENT NUMBER 
   MSG B1 TO LINE B2         *DISPLAY THE LINE
   MSG B1 TO PRINT           *PRINT THE LINE
   B2=B2+1                   *UPDATE DISPLAY LINE NO. 
   B1=B1+1                   *UPDATE FORMAT STATEMENT NO. 
   IF(B1.EQ.12) GOTO 54      *IF TWO LINE MESSAGE 
   IF(B1.EQ.14) GOTO 54      *IF TWO LINE MESSAGE 
   IF(B1.EQ.16) GOTO 54      *IF TWO LINE MESSAGE 
   IF(B1.NE.23) GOTO 56      *IF NOT TWO LINE MESSAGE 
54 MSG B1 TO LINE B2         *DISPLAY NEXT LINE OF MESSAGE
   MSG B1 TO PRINT           *PRINT NEXT LINE OF MESSAGE
   B2=B2+1                   *UPDATE DISPLAY LINE NO. 
56 B0=IB.AND.7               *STATE FROM PATH STATUS
   EXIT TO 98K               *EXIT THE MODULE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98J - REPORT PATH STATUS 
   MODULE NLM98K,LCN(300,301),LOCK
***       NLM98K - CONTINUATION OF NLM98J.
**        NLM98K - CONTINUATION OF NLM98J.
*         NLM98K - CONTINUATION OF NLM98J.
* 
* 
*         PURPOSE - 
*         NLM98K WILL CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH 
*         STATUS TABLE IF THE USER HAS SET THE S2 SWITCH IN THE 
*         DIAGNOSTIC SWITCH REGISTER. 
* 
* 
* 
*         METHOD -
*         1. CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM98K IS ENTERED FROM NLM98J.
* 
*         EXIT -
*         NLM98K EXITS TO NLM98L. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT *A*A*A*A*A. CONNECTED PATH - LOCAL HOST NOT 
1  FORMAT             INFORMED
2  FORMAT *A*A*A*A*A. CONNECTED PATH - LOCAL HOST INFORMED
3  FORMAT *A*A*A*A*A. DISCONNECTING - INITIATED BY LOCAL
4  FORMAT             HOST
5  FORMAT *A*A*A*A*A. DISCONNECTING - INITIATED BY LOCAL
6  FORMAT             HOST
7  FORMAT *A*A*A*A*A. RECEIVING IN STREAM MODE
10 FORMAT *A*A*A*A*A. SENDING IN STREAM MODE
11 FORMAT *A*A*A*A*A. SENDING IN STREAM MODE
12 FORMAT *A*A*A*A*A. DISCONNECT RECEIVED FOR REMOTE NAD
13 FORMAT *A*A*A*A*A. DOUBLE PURGE IN PROGRESS
14 FORMAT *A*A*A*A*A. PURGE IN PROCESS
15 FORMAT *A*A*A*A*A. FLUSH IN PROGRESS 
16 FORMAT *A*A*A*A*A. FLUSH COMPLETED 
17 FORMAT *A*A*A*A*A. PATH REMOTELY ABORTED WHILE FLUSHING
20 FORMAT *A*A*A*A*A. PATH ABORTED - FATAL TRUNK ERROR
21 FORMAT *A*A*A*A*A. PATH ABORTED - UNDEFINED AT REMOTE NAD
22 FORMAT *A*A*A*A*A. PATH ABORTED - REMOTE NAD AUTOLOADED
23 FORMAT *A*A*A*A*A. PATH ABORTED - NO REMOTE NAD RESOURCES
24 FORMAT *A*A*A*A*A. PATH ABORTED - ILLEGAL REMOTE TCUS
25 FORMAT             SPECIFIED IN ROUTING PARAMETERS 
* 
/---------PROCESS STATE/CLARIFIER IN THE PATH STATUS TABLE. 
* 
30 B1=77                     *INITIALIZE FLAG IN B1 
   IB(500)=2324              *STATE/CLAR IN DISPLAY CODE
   IB(501)=124
   IB(502)=550
   IB(503)=314
   IB(504)=122
   IF(B0.EQ.2) B1=0          *IF STATE STATUS EQUALS 2
   IF(B0.EQ.3) B1=14         *IF STATE STATUS EQUALS 3
   IF(B0.EQ.4) B1=20         *IF STATE STATUS EQUALS 4
   IF(B1.EQ.77) GOTO 44      *IF STATE/CLARIFIER PROCESSED
   B0=IB(1).AND.17           *CLARIFIER STATUS
   IF(B1.NE.0) GOTO 34       *IF STATE STATUS NOT TWO 
   IF(B0.NE.0) B1=B1+1       *IF CLARIFIER EQUALS ZERO
   IF(B0.GT.2) B1=B1+1       *IF CLARIFIER EQUALS TWO 
   IF(B0.GT.3) B1=B1+1       *IF CLARIFIER .GT. THREE 
34 B1=B1+B0                  *FORMAT STATEMENT NUMBER 
   GOSUB 70                  *DISPLAY/PRINT THE LINE
   B1=B1+1                   *UPDATE FORMAT STATEMENT NO. 
   IF(B1.EQ.1) GOTO 40       *IF TWO LINE MESSAGE 
   IF(B1.EQ.4) GOTO 40       *IF TWO LINE MESSAGE 
   IF(B1.EQ.6) GOTO 40       *IF TWO LINE MESSAGE 
   IF(B1.NE.24) GOTO 44      *IF NOT TWO LINE MESSAGE 
40 GOSUB 70                  *DISPLAY/PRINT THE LINE
44 EXIT TO 98L               *EXIT THE MODULE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98K - INTERPRET PATH STATUS
   MODULE NLM98L,LCN(300,301),LOCK
***       NLM98L - CONTINUATION OF NLM98J.
**        NLM98L - CONTINUATION OF NLM98J.
*         NLM98L - CONTINUATION OF NLM98J.
* 
* 
*         PURPOSE - 
*         NLM98L WILL CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH 
*         STATUS TABLE IF THE USER HAS SET THE S2 SWITCH IN THE 
*         DIAGNOSTIC SWITCH REGISTER. 
* 
* 
* 
*         METHOD -
*         1. CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM98L IS ENTERED FROM NLM98K.
* 
*         EXIT -
*         NLM98L EXITS TO NLM98M. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
*         IB(500-504) CONTAINS THE DISPLAY CODES FOR INFORMATION TO BE
*                     DISPLAYED AT THE START OF EACH LINE.
* 
* 
0  FORMAT *A*A*A*A*A  MAINTENANCE PATH
1  FORMAT *A*A*A*A*A  FIRST READ FLAG (FOR AUTODUMP)
2  FORMAT *A*A*A*A*A  FIRST WRITE FLAG (FOR AUTOLOAD) 
3  FORMAT *A*A*A*A*A  REMOTE INITIATED FLUSH
4  FORMAT *A*A*A*A*A  CODE FLAG (FCP CODE WORDS)
5  FORMAT *A*A*A*A*A  MARK FLAG 
6  FORMAT *A*A*A*A*A  LOCAL FLAG (LOCAL TRANSFER) 
7  FORMAT *A*A*A*A*A  CONNECT ACCEPTED NOT PROCESSED
10 FORMAT FLAG WORD   LOCAL DEVICE ADDRESS = *H HEX.
11 FORMAT             LOCAL DEVICE ADDRESS = *H HEX.
* 
/---------PROCESS THE FLAG WORD IN THE PATH STATUS TABLE. 
* 
30 IB(500)=614               *FLAG WORD IN DISPLAY CODE 
   IB(501)=107
   IB(502)=5527 
   IB(503)=1722 
   IB(504)=455
   B1=0 
   IF(IB(6).AND.200.NE.0) GOSUB 70  *MAINTENANCE PATH FLAG
   B1=1 
   IF(IB(6).AND.100.NE.0) GOSUB 70  *FIRST WRITE FLAG 
   B1=2 
   IF(IB(6).AND.40.NE.0) GOSUB 70  *FIRST READ FLAG 
   B1=3 
   IF(IB(6).AND.20.NE.0) GOSUB 70  *REMOTE FLUSH FLAG 
   B1=4 
   IF(IB(6).AND.10.NE.0) GOSUB 70  *CODE FLAG 
   B1=5 
   IF(IB(6).AND.4.NE.0) GOSUB 70  *MARK FLAG
   B1=6 
   IF(IB(6).AND.2.NE.0) GOSUB 70  *LOCAL FLAG 
   B1=7 
   IF(IB(6).AND.1.NE.0)GOSUB 70  *CONNECT NOT PROCESSED FLAG
   B0=IB(6).AND.17               *DEVICE ADDRESS
   B1=10
   IF(IB(500).EQ.5555) B1=11     *IF NOT FIRST MESSAGE
   MSG B1 (B0) TO LINE B2        *DISPLAY MESSAGE 
   MSG B1 (B0) TO PRINT          *PRINT MESSAGE 
   B2=B2+1                       *UPDATE LINE NUMBER
   EXIT TO 98M                   *EXIT THE MODULE 
* 
/---------DISPLAY AND PRINT THE MESSAGE.
* 
70 MSG B1 5 WORDS FROM IB(500) TO LINE B2  *DISPLAY LINE
   MSG B1 5 WORDS FROM IB(500) TO PRINT  *PRINT LINE
   B2=B2+1                       *UPDATE LINE NUMBER
   IF(IB(500).EQ.5555) RETURN  *IF NOT THE FIRST MESSAGE
   IB(500)=5555              *CLEAR DISPLAY BUFFER
   IB(501)=5555 
   IB(502)=5555 
   IB(503)=5555 
   IB(504)=5555 
   RETURN                    *EXIT THE SUBROUTINE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98L - INTERPRET PATH STATUS
   MODULE NLM98M,LCN(300,301),LOCK
***       NLM98M - CONTINUATION OF NLM98J.
**        NLM98M - CONTINUATION OF NLM98J.
*         NLM98M - CONTINUATION OF NLM98J.
* 
* 
*         PURPOSE - 
*         NLM98M WILL CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. CONTINUE DISPLAYING AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH REGISTER IN THE
*            DIAGNOSTIC SWITCH REGISTER.
* 
* 
/ 
*         ENTRY - 
*         NLM98M IS ENTERED FROM NLM98K.
* 
*         EXIT -
*         NLM98M EXITS TO NLM98N. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT RESOURCES   BUFFER SIZE = *D
1  FORMAT LAST CMD.   PAP (PURGE ALL PATHS) 
2  FORMAT LAST CMD.   STAT (NAD STATUS) 
3  FORMAT LAST CMD.       (UNDEFINED COMMAND) 
4  FORMAT LAST CMD.   ABT (ABORT) 
5  FORMAT LAST CMD.   SCON (SEND CONTROL MESSAGE) 
6  FORMAT LAST CMD.   COP (CONNECT PATH)
7  FORMAT LAST CMD.   APA (ACTIVE PATH) 
10 FORMAT LAST CMD.   SIP (SELECT INPUT PATH) 
11 FORMAT LAST CMD.   RDY (READY) 
12 FORMAT LAST CMD.   ACPT (ACCEPT) 
13 FORMAT LAST CMD.   REJT (REJECT) 
14 FORMAT LAST CMD.   ICM (INQUIRE CONTROL MESSAGE) 
15 FORMAT LAST CMD.   ISCM (INQUIRE SELECTED CONTROL MSG) 
16 FORMAT LAST CMD.   IQP (INQUIRE PATH)
17 FORMAT LAST CMD.   IQSP (INQUIRE SELECTED PATH)
20 FORMAT LAST CMD.   IRCM (INQUIRE REJECTED CONTROL MSG) 
21 FORMAT LAST CMD.   PST (PATH STATUS) 
22 FORMAT LAST CMD.   DCP (DISCONNECT PATH) 
23 FORMAT LAST CMD.   PUPA (PURGE PATH) 
24 FORMAT LAST CMD.   XMIT (TRANSMIT DATA)
25 FORMAT LAST CMD.   WD (WRITE DATA) 
* 
/---------PROCESS RESOURCES IN THE PATH STATUS TABLE. 
* 
30 B0=IB(17).AND.3           *BUFFER SIZE 
   MSG 0 (B0) TO LINE B2     *DISPLAY THE LINE
   MSG 0 (B0) TO PRINT       *PRINT THE LINE
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PROCESS LAST COMMAND IN PATH STATUS TABLE.
* 
   B0=IB(33)                 *LAST COMMAND
   IF(B0.GT.24) EXIT TO 98N  *IF NOT COMMANDS 00-24B
   B1=B0+1                   *FORMAT STATEMENT NUMBER 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
   EXIT TO 98N               *EXIT TO MODULE NLM98N 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98M - INTERPRET PATH STATUS
   MODULE NLM98N,LCN(300,301),LOCK
***       NLM98N - CONTINUATION OF NLM98J.
**        NLM98N - CONTINUATION OF NLM98J.
*         NLM98N - CONTINUATION OF NLM98J.
* 
* 
*         PURPOSE - 
*         NLM98N WILL CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM98N IS ENTERED FROM NLM98M.
* 
*         EXIT -
*         NLM98N EXITS TO NLM98O. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT LAST CMD.   WC (WRITE CODE) 
1  FORMAT LAST CMD.   RC (READ CODE)
2  FORMAT LAST CMD.   RD (READ DATA)
3  FORMAT LAST CMD.   ENST (ENABLE STREAM)
4  FORMAT LAST CMD.   DIST (DISABLE STREAM) 
5  FORMAT LAST CMD.   SFCM (SEND FLUSH CONTROL MESSAGE) 
6  FORMAT LAST CMD.   XMITM (TRANSMIT DATA WITH MARK) 
7  FORMAT LAST CMD.   SPN (SELECT PATH BY NAME) 
10 FORMAT LAST CMD.   RPST (READ PATH STATUS TABLE) 
11 FORMAT LAST CMD.   ISRCM (INQUIRE SELECTED REJECTED
12 FORMAT                   CONTROL MESSAGE)
13 FORMAT LAST CMD.   SRCM (SEND RESET CONTROL MESSAGE) 
14 FORMAT LAST CMD.   CMP (CONNECT MAINTENANCE PATH)
15 FORMAT LAST CMD.   MPF (MAINTENANCE FUNCTION)
16 FORMAT LAST CMD.   MPI (MAINTENANCE INPUT) 
17 FORMAT LAST CMD.   RSC (READ SHORT CODE) 
20 FORMAT LAST CMD.   DFP (DISCONNECT AND FLUSH PATH) 
21 FORMAT LAST CMD.   DNP (DISCONNECT NAMED PATHS)
22 FORMAT LAST CMD.   RSR (REMOTE STATUS REQUEST) 
23 FORMAT LAST CMD.       (UNDEFINED COMMAND) 
24 FORMAT LAST CMD.   RESET (RESET) 
25 FORMAT LAST CMD.   SBIN (SELECT BINARY MODE) 
26 FORMAT LAST CMD.   SCODE (SELECT CODE CONVERSION MODE) 
* 
/---------PROCESS LAST COMMAND IN PATH STATUS TABLE.
* 
30 IF(B0.LT.25) EXIT TO 98O  *IF COMMAND PROCESSED
   IF(B0.GT.52) EXIT TO 98O  *IF NOT COMMANDS 25B-52B 
   B1=B0-25                  *FORMAT STATEMENT NUMBER 
   IF(B1.GE.37) B1=B1+1      *IF TWO LINE MESSAGE 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
   B1=B1+1                   *UPDATE FORMAT STATEMENT NO. 
   IF(B1.EQ.12) EXIT TO 98O  *IF NOT TWO LINE MESSAGE 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   EXIT TO 98O               *EXIT TO MODULE NLM98O 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98N - INTERPRET PATH STATUS
   MODULE NLM98O,LCN(300,301),LOCK
***       NLM98O - CONTINUATION OF NLM98J.
**        NLM98O - CONTINUATION OF NLM98J.
*         NLM98O - CONTINUATION OF NLM98J.
* 
* 
*         PURPOSE - 
*         NLM98O WILL CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH 
*         IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IS THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM98O IS ENTERED FROM NLM98N.
* 
*         EXIT -
*         NLM98O EXITS TO NLM98P. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
10 FORMAT LAST CMD.       (UNDEFINED COMMAND) 
11 FORMAT LAST CMD.   WSC (WRITE SHORT CODE)
12 FORMAT LAST CMD.       (UNDEFINED COMMAND) 
13 FORMAT LAST CMD.   SEL (SELECT PATHS 1-3FH)
14 FORMAT LAST RESP.  NULL (NOT USED) 
15 FORMAT LAST RESP.  ACK (ACKNOWLEDGMENT)
16 FORMAT LAST RESP.  NAK (NEGATIVE ACKNOWLEDGMENT) 
17 FORMAT LAST RESP.  DMK (PATH STATUS, INPUT DATA  PRESENT)
20 FORMAT LAST RESP.  PRS (PATH STATUS, ENABLING STREAM)
21 FORMAT LAST RESP.  RSA (REMOTE STATUS ACKNOWLEDGMENT)
22 FORMAT LAST RESP.      (UNDEFINED RESPONSE)
23 FORMAT LAST RESP.      (UNDEFINED RESPONSE)
24 FORMAT LAST RESP.  LOST (LOST DATA)
25 FORMAT LAST RESP.  IER (INPUT DATA ERROR)
* 
/---------PROCESS LAST COMMAND IN PATH STATUS TABLE.
* 
30 IF(B0.LT.53) GOTO 40      *IF LAST COMMAND PROCESSED 
   B1=10
   IF(B0.LT.140) GOTO 34     *IF UNDEFINED COMMAND
   B1=11
   IF(B0.LT.177) GOTO 34     *IF COMMAND WSC
   B1=12
   IF(B0.EQ.200) GOTO 34     *IF UNDEFINED COMMAND
   B0=13                     *SEL COMMAND 
34 MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PROCESS LAST RESPONSE IN THE PATH STATUS TABLE. 
* 
40 B0=IB(35).AND.17          *LAST RESPONSE 
   IF(B0.GT.11) EXIT TO 98P  *IF NOT RESPONSES 0-11B
   B1=B0+14                  *FORMAT STATEMENT NUMBER 
   MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
   EXIT TO 98P               *EXIT TO MODULE NLM98P 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98O - INTERPRET PATH STATUS
   MODULE NLM98P,LCN(300,301),LOCK
***       NLM98P - CONTINUATION OF NLM98J.
**        NLM98P - CONTINUATION OF NLM98J.
*         NLM98P - CONTINUATION OF NLM98J.
* 
* 
*         PURPOSE - 
*         NLM98P WILL CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH 
*         STATUS TABLE PROVIDED THAT THE USER HAS SET THE S2 SWITCH IN
*         THE DIAGNOSTIC SWITCH REGISTER. 
* 
* 
* 
*         METHOD -
*         1. CONTINUE TO DISPLAY AN INTERPRETATION OF THE PATH STATUS 
*            TABLE IF THE USER HAS SET THE S2 SWITCH IN THE DIAGNOSTIC
*            SWITCH REGISTER. 
* 
* 
/ 
*         ENTRY - 
*         NLM98P IS ENTERED FROM NLM98O.
* 
*         EXIT -
*         NLM98P EXITS TO NLM98Q. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         IB(0-55) CONTAINS THE PATH STATUS TABLE.
* 
* 
0  FORMAT LAST RESP.  OER (OUTPUT CHANNEL PARITY ERROR) 
1  FORMAT LAST RESP.  INS (INSUFFICIENT PARAMETER OUTPUT) 
2  FORMAT LAST RESP.  SALT (STREAM ALERT) 
3  FORMAT LAST RESP.  ROE (ROUTING ERROR DETECTED)
4  FORMAT LAST RESP.  INT (INIT. WITH SELECTED REMOTE NAD)
5  FORMAT LAST RESP.  TNR (DATA TRANSFER NOT READY) 
6  FORMAT LAST RESP.  SMD (REMOTE NAD DISABLED STREAM MODE) 
7  FORMAT LAST RESP.  CNT (LOCAL CONNECT REQ. IN PROGRESS)
10 FORMAT LAST RESP.  DCNT (LOCAL DISCON. REQ. IN PROGRESS) 
11 FORMAT LAST RESP.  ABORT (PATH TERMINATED BY REMOTE NAD) 
12 FORMAT LAST RESP.  UDC (UNDEFINED COMMAND) 
13 FORMAT LAST RESP.  ILC (ILLEGAL COMMAND) 
14 FORMAT LAST RESP.  BUT (BUFFER TERMINATED) 
24 FORMAT LAST RESP.      (UNDEFINED RESPONSE)
25 FORMAT CONNECTION NUMBER = *H*H HEX. 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------PROCESS LAST RESPONSE IN THE PATH STATUS TABLE. 
* 
30 IF(B0.LT.12) GOTO 40      *IF NOT RESPONSES 0-11B
   B0=24
   IF(B0.GT.26) GOTO 34      *IF UNDEFINED RESPONSE 
   B1=B0-12                  *FORMAT STATEMENT NUMBER 
34 MSG B1 TO LINE B2         *DISPLAY THE MESSAGE 
   MSG B1 TO PRINT           *PRINT THE MESSAGE 
   B2=B2+1                   *UPDATE LINE NUMBER
40 MSG 25 (IB(54),IB(55)) TO LINE B2  *DISPLAY THE MESSAGE
   MSG 25 (IB(54),IB(55)) TO PRINT  *PRINT THE MESSAGE
   B2=B2+1                   *UPDATE LINE NUMBER
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.SE.EQ.0) GOTO 44  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT   *STOP MESSAGE
   PAUSE                     *WAIT FOR GO COMMAND 
44 B1=B3                     *INIT. BEGINNING LINE NO.
46 MSG 26 TO LINE B1         *CLEAR STATUS DISPLAY
   GOTO 46 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                     *INIT. BEGINNING LINE NO.
   EXIT TO 98Q               *EXIT THE MODULE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98P - INTERPRET PATH STATUS
   MODULE NLM98Q,LCN(300,301),LOCK
***       NLM98Q - GENERAL/DETAILED NAD STATUS REPORTER.
**        NLM98Q - GENERAL/DETAILED NAD STATUS REPORTER.
*         NLM98Q - GENERAL/DETAILED NAD STATUS REPORTER.
* 
* 
*         PURPOSE - 
*         NLM98Q DISPLAYS THE GENERAL/DETAILED STATUS TABLE IN HEX
*         FORMAT PROVIDED THAT THE USER HAS SET THE S1 SWITCH IN THE
*         DIAGNOSTIC SWITCH REGISTER.  NLM98Q WILL ALSO PROVIDE AN
*         INTERPRETATION OF THE GENERAL/DETAILED STATUS TABLE IF USER 
*         ALSO SETS THE S2 SWITCH IN THE DIAGNOSTIC SWITCH REGISTER.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE GENERAL/DETAILED STATUS TABLE IN HEXADECIMAL 
*            WORD FORMAT IF THE USER HAS SET THE S1 SWITCH IN THE 
*            DIAGNOSTIC SWITCH REGISTER.
* 
*         2. DISPLAY AN INTERPRETATION OF THIS STATUS TABLE IF THE
*            USER HAS ALSO SET THE S2 SWITCH IN THE DIAGNOSTIC
*            REGISTER.
* 
/ 
*         ENTRY - 
*         NLM98Q IS ENTERED FROM NLM98P.
* 
*         EXIT -
*         NLM98Q EXITS TO NLM98R. 
* 
*         SUBMODULES REFERENCED - NONE. 
* 
*         REGISTERS USED -
*         B0 = BUFFER ADDRESS.
*         B1 = MESSAGE NUMBER TO BE DISPLAYED/PRINTED.
*         B2 = CURRENT DISPLAY LINE NUMBER. 
*         B3 = FIRST KL LINE USED FOR DISPLAYING STATUS.
*         DS = DIAGNOSTIC SWITCH REGISTER.
*              S1 SWITCH SET = PATH STATUS TABLE DISPLAYED
*                              IN HEXADECIMAL.
*              S2 SWITCH SET = PATH STATUS TABLE INTERPRETED. 
*         ES = EXECUTIVE SWITCH REGISTER. 
*              KL SWITCH = KL DISPLAY ENABLED.
*              SE SWITCH = STOP ON ERROR. 
* 
* 
*         BUFFERS USED -
*         SB(2-27) CONTAINS THE GENERAL DETAILED STATUS TABLE.
* 
* 
* 
0  FORMAT GENERAL DETAILED STATUS TABLE (HEXADECIMAL) 
1  FORMAT  WORD   0D  *H*H *H*H *H*H *H*H 
2  FORMAT         4D  *H*H *H*H *H*H *H*H 
3  FORMAT         8D  *H*H *H*H *H*H
4  FORMAT WORD 0      NAD HARDWARE ADDRESS = *H HEX.
5  FORMAT             NO. OF ERROR QUEUE ENTRIES = *H HEX.
6  FORMAT WORDS 3,4   TOTAL MESSAGES SENT = *H*H*H*H HEX
7  FORMAT WORDS 5,6   TOTAL MSGS. RECEIVED = *H*H*H*H HEX.
10 FORMAT WORD 9      WNAK RESPONSES SENT = *H*H HEX. 
11 FORMAT WORD 10     WNAK RESPONSES RECEIVED = *H*H HEX. 
26 FORMAT 
27 FORMAT ENTER GO TO CONTINUE
* 
/---------IF S1 SET, DISPLAY THE GENERAL DETAILED STATUS
/---------TABLE.
* 
30 B2=B3                     *INIT. THE LINE NUMBER 
   MSG 0 TO LINE B2          *DIS. STATUS TITLE LINE
   MSG 0 TO PRINT            *PRINT STATUS TITLE LINE 
   B2=B2+1                   *UPDATE LINE NUMBER
   IF(DS.AND.S1.EQ.0) GOTO 42  *IF NO STATUS DISPLAY
   B0=2                        *STATUS BUFFER ADDRESS 
   B1=1                        *MESSAGE NUMBER
32 MSG B1 8 WORDS FROM SB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 8 WORDS FROM SB(B0) TO PRINT  *PRINT LINE 
   B0=B0+10                    *UPDATE BUFFER ADDRESS 
   B2=B2+1                     *UPDATE DISPLAY LINE NO. 
   GOTO 32 WHILE (B1+1.NE.3)  *DO TWO MESSAGES
   MSG B1 6 WORDS FROM SB(B0) TO LINE B2  *DISPLAY LINE 
   MSG B1 6 WORDS FROM SB(B0) TO PRINT  *PRINT LINE 
   B2=B2+1                     *UPDATE DISPLAY LINE NO. 
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.KL.EQ.0) GOTO 40  *IF NO KL DISPLAY
   IF(DS.AND.S2.NE.0) GOTO 50  *IF STATUS INFO TURNED ON
40 IF(ES.AND.SE.EQ.0) GOTO 42  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT     *STOP MESSAGE
   PAUSE                       *WAIT FOR GO COMMAND 
42 IF(DS.AND.S2.EQ.0) GOTO 60  *IF STATUS DESCRIPTION OFF 
* 
/---------PROCESS GENERAL DETAILED STATUS TABLE.
* 
50 MSG 4 1 WORDS FROM SB(2) TO LINE B2  *DISPLAY LINE 
   MSG 4 1 WORDS FROM SB(2) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 5 1 WORDS FROM SB(3) TO LINE B2  *DISPLAY LINE 
   MSG 5 1 WORDS FROM SB(3) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 6 4 WORDS FROM SB(10) TO LINE B2  *DISPLAY LINE
   MSG 6 4 WORDS FROM SB(10) TO PRINT  *PRINT LINE
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 7 4 WORDS FROM SB(14) TO LINE B2  *DISPLAY LINE
   MSG 7 4 WORDS FROM SB(14) TO PRINT  *PRINT LINE
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 10 2 WORDS FROM SB(24) TO LINE B2  *DISPLAY LINE 
   MSG 10 2 WORDS FROM SB(24) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
   MSG 11 2 WORDS FROM SB(26) TO LINE B2  *DISPLAY LINE 
   MSG 11 2 WORDS FROM SB(26) TO PRINT  *PRINT LINE 
   B2=B2+1                          *UPDATE LINE NUMBER 
* 
/---------PAUSE IF ERROR STOP IS ENABLED. 
* 
   IF(ES.AND.SE.EQ.0) GOTO 60  *IF ERROR STOP OFF 
   MSG 27 TO DISPLAY,PRINT   *STOP MESSAGE
   PAUSE                     *WAIT FOR GO COMMAND 
60 B1=B3                     *INIT. BEGINNING LINE NO.
62 MSG 26 TO LINE B1         *BLANK THE STATUS DISPLAY
   GOTO 62 WHILE (B1+1.NE.B2)  *CLEAR ALL STATUS LINES
   B2=B3                     *INIT. BEGINNING LINE NO.
   EXIT TO 98R               *EXIT THE MODULE 
   END 30                    *END OF THE MODULE 
COMPILE            *NLM98Q - REPORT DETAILED STATUS 
   MODULE NLM98R,LCN,(300,301),LOCK 
***       NLM98R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
**        NLM98R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
*         NLM98R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
* 
* 
*         PURPOSE - 
*         NLM98R WILL DISPLAY THE CONTENTS OF THE NAD MEMORY
*         WHEN AN ERROR OCCURS PROVIDED THAT THE
*         USER HAS SET THE S1 SWITCH OF THE DIAGNOSTIC SWITCH 
*         REGISTER. 
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF NAD MEMORY 4-F IF A LOAD ERROR 
*            HAS OCCURRED WHILE LOADING THE NAD TEST INTO MEMORY. 
*            THE S1 SWITCH OF THE DIAGNOSTIC SWITCH REGISTER MUST 
*            BE SET TO ENABLE THIS DISPLAY. 
* 
*         2. DISPLAY THE CONTENTS OF NAD MEMORY 4-F,AND 30-3F IF
*            AN ERROR HAS OCCURRED WHILE MONITORING A TEST EXECUTING
*            IN THE LOCAL NAD.  THE S1 SWITCH OF THE DIAGNOSTIC 
*            SWITCH REGISTER MUST BE SET TO ENABLE THIS DISPLAY.
* 
*         3. DISPLAY THE CONTENTS OF NAD MEMORY 4-F, 20-2F AND 30-3F
*            IF AN ERROR HAS OCCURRED WHILE MONITORING A TEST EXECUTING 
*            IN THE REMOTE NAD.  THE S1 SWITCH OF THE DIAGNOSTIC SWITCH 
*            REGISTER MUST BE SET TO ENABLE THIS DISPLAY OF REMOTE NAD
*            MEMORY.
* 
*         4. DISPLAY THE CONTENTS OF REMOTE NAD MEMORY 4-F,20-2F  AND 
*            THE CONTENTS OF LOCAL NAD MEMORY 30-3F IF AN ERROR HAS 
*            OCCURRED WHILE MONITORING A TEST EXECUTING IN THE REMOTE 
*            NAD.  THE S1 SWITCH OF THE DIAGNOSTIC SWITCH REGISTER MUST 
*            BE SET TO ENABLE THIS DISPLAY AND THE ACCESS LEVEL (AL)
*            ENTERED IN THE ASSIGN CARD MUST BE 6.
* 
* 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM98P
*         ENTRY 2 - NLM98F
* 
*         EXIT -
*         EXIT 1 - NLM98S IF S1,S1 ARE OFF OR MONITOR 
*                  IS EXECUTING 
*         EXIT 2 - NLM98T IF S1,S2 ARE ON AND LOADER
*                  IS EXECUTING.
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         B7 = ERROR COUNT. 
*         EC = ERROR CODE REGISTER. 
*         EA = CONTAINS LAST LINE EXECUTED IN NLM02A. 
*         LF = CONTAINS THE LAST FUNCTION EXECUTED. 
*         EM = ERROR MESSAGE INDEX REGISTER.
* 
*         BUFFERS USED -
*         SB(0) CONTAINS THE NAD HARDWARE STATUS. 
*         OB(0-33) CONTAINS THE TRUNK MESSAGE RESPONSE. 
*         IB(300-460) CONTAINS CONTENTS OF MEMORY LOCATIONS 
*                     4-3F. 
* 
* 
* 
* 
1  FORMAT            4-F(REGISTER DISPLAY) (HEXADECIMAL)
2  FORMAT WORD   4   *H*H  *H*H  *H*H  *H*H 
3  FORMAT WORD   8   *H*H  *H*H  *H*H  *H*H 
4  FORMAT WORD   C   *H*H  *H*H  *H*H  *H*H 
5  FORMAT          20-2F(TCI CONTROL PACKAGE) (HEXADECIMAL) 
6  FORMAT WORD   20  *H*H  *H*H  *H*H  *H*H 
7  FORMAT WORD   24  *H*H  *H*H  *H*H  *H*H 
10 FORMAT WORD   28  *H*H  *H*H  *H*H  *H*H 
11 FORMAT WORD   2C  *H*H  *H*H  *H*H  *H*H 
12 FORMAT          30-3F(DI CONTROL PACKAGE)  (HEXADECIMAL) 
13 FORMAT WORD   30  *H*H  *H*H  *H*H  *H*H 
14 FORMAT WORD   34  *H*H  *H*H  *H*H  *H*H 
15 FORMAT WORD   38  *H*H  *H*H  *H*H  *H*H 
16 FORMAT WORD   3C  *H*H  *H*H  *H*H  *H*H 
17 FORMAT               (LOCAL NAD) 
20 FORMAT               (REMOTE NAD)
21 FORMAT  UNABLE TO REPORT NAD MEMORY 4-3F 
22 FORMAT UNABLE TO REPORT NAD MEMORY 20-2F FOR NDT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ----------------------------------------- 
* 
30 IF(DS.AND.S1.EQ.0) GOTO 37  *IF 4-3F DISPLAY REQUESTED 
   IF(IB(300).EQ.7777) GOTO 34  *IF 4-3F INVALID
   GOSUB 40                     *DISPLAY 4-F
   GOSUB 42                     *DISPLAY 20-2F
32 IF(DC.EQ.300) GOSUB 46        *DISPLAY 30-3F 
   GOTO 36
34 B2=10D                       *SET LINE NUMBER
   MSG 21 TO LINE B2            *4-F INVALID MESSAGE
   MSG 21 TO PRINT
36 IF(ES.AND.SE.EQ.0) GOTO 37   *IF STOP ON ERROR DISABLED
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
37 GOSUB 60                        *CLEAR LOWER DISPLAY 
   ENDSUB 
   EXIT TO 98S
* 
/-----------REPORT CONTENTS OF NAD MEMORY 4-F.
* 
40 B2=10D 
   B14=1                           *SET MESSAGE INDEX 
   GOSUB 56 
   MSG 2 10 WORDS FROM IB(300) TO LINE B2 
   MSG 2 10 WORDS FROM IB(300) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(310) TO LINE B2 
   MSG 3 10 WORDS FROM IB(310) TO PRINT 
   B2=B2+1
   MSG 4 10 WORDS FROM IB(320) TO LINE B2 
   MSG 4 10 WORDS FROM IB(320) TO PRINT 
   B2=B2+1
   RETURN 
* 
/-----------REPORT CONTENTS OF NAD MEMORY 20-2F.
* 
42 B14=5                            *SET MESSAGE INDEX
   GOSUB 56 
   IF(B10.AND.77.NE.24) GOTO 44   *IF NOT NDT 
   GOSUB 50 
44 MSG 6 10 WORDS FROM IB(370) TO LINE B2 
   MSG 6 10 WORDS FROM IB(370) TO PRINT 
   B2=B2+1
   MSG 7 10 WORDS FROM IB(400) TO LINE B2 
   MSG 7 10 WORDS FROM IB(400) TO PRINT 
   B2=B2+1
   MSG 10 10 WORDS FROM IB(410) TO LINE B2
   MSG 10 10 WORDS FROM IB(410) TO PRINT
   B2=B2+1
   MSG 11 10 WORDS FROM IB(420) TO LINE B2
   MSG 11 10 WORDS FROM IB(420) TO PRINT
   B2=B2+1
   RETURN 
* 
/-----------REPORT CONTENTS OF NAD MEMORY 30-3F.
* 
46 B14=12                                   *SET MESSAGE INDEX
   GOSUB 56 
   MSG 13 10 WORDS FROM IB(430) TO LINE B2
   MSG 13 10 WORDS FROM IB(430) TO PRINT
   B2=B2+1
   MSG 14 10 WORDS FROM IB(440) TO LINE B2
   MSG 14 10 WORDS FROM IB(440) TO PRINT
   B2=B2+1
   MSG 15 10 WORDS FROM IB(450) TO LINE B2
   MSG 15 10 WORDS FROM IB(450) TO PRINT
   B2=B2+1
   MSG 16 10 WORDS FROM IB(460) TO LINE B2
   MSG 16 10 WORDS FROM IB(460) TO PRINT
   B2=B2+1
   RETURN 
* 
/-----------OBTAIN 20-2F CONTROL PKG. FROM ADDR. 1020H
* 
50 IF(DC.EQ.301) GOTO 52
   RES, ABT 51
51 MEMORY READ 8/12 40B WORDS FROM 1020H TO IB(370), ABT 54 
   RETURN 
52 RES MAINT PATH DA BUFFER 1, ABT 53 
53 AUTODMP 40B WORDS FROM 1020H TO IB(370), ABT 54
   RETURN 
54 MSG 22 TO LINE B2
   MSG 22 TO PRINT
   B2=B2+1
   GOTO 32
* 
/-----------DISPLAY LOCAL/REMOTE MESSAGE. 
* 
56 MSG B14 TO LINE B2 
   MSG B14 TO PRINT 
   B2=B2+1
   IF(DC.EQ.300) MSG 17 TO LINE B2
   IF(DC.EQ.301) MSG 20 TO LINE B2
   B2=B2+1
   RETURN 
* 
/-----------BLANK ERROR DISPLAY.
* 
60 B2=5 
61 MSG 26 TO LINE B2
   B2=B2+1
   IF(B2.LT.47) GOTO 61    *BLANK LINES 5-46B 
   RETURN 
   END 30 
COMPILE            *NLM98R - REPORT 4-F,20-2F AND 30-3F 
   MODULE NLM98S,LCN,(300,301),LOCK 
***       NLM98S - NAD PROCESSOR RE-START.
**        NLM98S - NAD PROCESSOR RE-START.
*         NLM98S - NAD PROCESSOR RE-START.
* 
* 
*         PURPOSE - 
*         NLM98S RESTARTS THE NAD PROCESSOR OF THE NAD CONTAINING 
*         THE TEST IF THE PROCESSOR HAS STOPPED BEFORE THE TEST HAS 
*         TERMINATED. 
* 
* 
* 
*         METHOD -
*         1. RE-START THE LOCAL NAD PROCESSOR IF THE TEST IS RESIDENT 
*            IN THE LOCAL NAD AND THE PROCESSOR HAS STOPPED BEFORE THE
*            TEST HAS RUN TO TERMINATION. 
* 
*         2. RE-START THE REMOTE NAD PROCESSOR IF THE TEST IS RESIDENT
*            IN THE REMOTE NAD AND THE PROCESSOR HAS STOPPED BEFORE THE 
*            TEST HAS TERMINATED. 
* 
*         3. IF THE PROCESSOR CANNOT BE RE-STARTED, DISPLAY A MESSAGE 
*            TO THE USER EXPLAINING THAT THE PROCESSOR HAS STOPPED
*            AND HALT TEST ACTIVITY.  THE USER MUST NOW RELOAD THE
*            TEST BEFORE RE-RUNNING IT. 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM98F
*         ENTRY 2 - NLM98R
* 
* 
*         EXIT -
*         EXIT 1 - NLM02A (LOCAL MONITOR) 
*         EXIT 2 - NLM02B (REMOTE MONITOR)
* 
* 
*         REGISTERS USED -
*         B5 = COMMAND INDEX. 
*         DC = DEVICE CODE REGISTER.
* 
*         BUFFERS USED -
*         SB(0) - CONTAINS LOCAL NAD HARDWARE STATUS. 
*         OB(25) - CONTAINS REMOTE NAD HARDWARE STATUS (PART
*                  OF THE MAINTENANCE FUNCTION RESPONSE TABLE.) 
* 
* 
* 
* 
1  FORMAT LOCAL NAD PROCESSOR HAS STOPPED 
2  FORMAT REMOTE NAD PROCESSOR HAS STOPPED
3  FORMAT UNABLE TO RE-START PROCESSOR
4  FORMAT PROCESSOR STATE UNCERTAIN 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT --------------------------------------- 
* 
/-----------EQUATES.
* 
   EQUATE STHX=11, RESX=0, STRX=77, RESM=22 
* 
30 IF(B8.EQ.0) GOSUB 60     *IF BEGINNING OF MONITOR
   IF(B8.EQ.0) EXIT 
   IF(OB(504).EQ.0) EXIT TO 98T  *IF LOADER EXECUTING 
   GOSUB 60 
   B5=STHX                          *STATUS H/S INDEX 
   STATUS HARDWARE, ABT 32
32 IF(SB(0).AND.2.EQ.0) GOTO 34     *LOCAL NAD RUNNING
   ERROR 01/3011, GOTO 70 
34 IF(DC.EQ.300) GOTO 50     *IF NO REMOTE NAD USED 
   IF(OB(25).AND.40.EQ.0) GOTO 50   *REMOTE NAD RUNNING 
   ERROR 02/3010, GOTO 70           *UNABLE TO RE-START 
50 EXIT 
* 
/-----------SUBROUTINE TO START/RE-START PROCESSOR. 
* 
60 IF(DC.EQ.301) GOTO 62     *IF REMOTE NAD TESTED
   B5=RESX                   *RESERVE CHANNEL INDEX 
   RES, ABT 70
   B5=STRX                          *START PROCESSOR INDEX
   START, ABT 70
   RETURN 
62 B5=RESM                   *RESERVE CHANNEL/PATH INDEX
   RES MAINT PATH DA BUFFER 1, ABT 70 
   B5=STRX                   *START PROCESSOR INDEX 
   START, ABT 70
   RETURN 
* 
/-----------PROCESS ERROR.
* 
70 B7=B7+1                       *INCREMENT ERROR COUNT 
   IF(EC.NE.3011) GOTO 72 
   MSG 1 TO LINE 5
   MSG 1 TO PRINT 
   MSG 3 TO LINE 6
   MSG 3 TO PRINT 
   GOTO 77
72 IF(EC.NE.3010) GOTO 74 
   MSG 2 TO LINE 5
   MSG 2 TO PRINT 
   MSG 3 TO LINE 6
   MSG 3 TO PRINT 
   GOTO 77
74 IF(DC.EQ.300) MSG 1 TO LINE 5
   IF(DC.EQ.300) MSG 1 TO PRINT 
   IF(DC.EQ.301) MSG 2 TO LINE 5
   IF(DC.EQ.301) MSG 2 TO PRINT 
77 END 30 
COMPILE            *NLM98S - START NAD PROCESSOR
   MODULE NLM98T,LCN,(300,301),LOCK 
***       NLM98T - IB/OB AND REGISTER DISPLAY.
**        NLM98T - IB/OB AND REGISTER DISPLAY.
*         NLM98T - IB/OB AND REGISTER DISPLAY.
* 
* 
*         PURPOSE - 
*         NLM98T DISPLAYS THE CURRENT CONTENTS OF ALL REGISTERS.
*         THE USER MUST SET THE S2 SWITCH OF THE DIAGNOSTIC SWITCH
*         REGISTER TO ENABLE THIS DISPLAY.  THIS DISPLAY WILL BE
*         PRESENTED FOLLOWING THE DETECTION OF A TEST LOAD ERROR
*         PROVIDED THAT THE S1 SWITCH IS CLEAR AND THE S2 SWITCH
*         IS SET IN THE DIAGNOSTIC SWITCH REGISTER.  THIS MODULE
*         MAY ALSO BE USED BY THE CE AT ANY TIME PROVIDED THAT AN 
*         EXIT TO THIS MODULE IS PROVIDED.
* 
* 
*         METHOD -
*         1. DISPLAY THE CURRENT CONTENTS OF ALL REGISTERS. 
*            (B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15 
*             BA,EC,EA,LF,WC, AND WT REGISTERS.)
* 
* 
/ 
*         ENTRY - 
*         NLM98T IS ENTERED BY A CALL FROM  THE  MODULE  LAST 
*         EXECUTED.   ANY  TIME  THE  USER  WISHES TO SEE THE 
*         CONTENTS OF BUFFERS AND REGISTERS A *CALL  98T*  IS 
*         PLACED  IN  THE  CODE  OF THE MODULE EXECUTING.  AN 
*         EXIT WILL BE TAKEN TO NLM98T WHICH WILL DISPLAY THE 
*         CONTENTS OF BUFFERS AND REGISTERS.
* 
*         EXIT -
*         NLM98T WILL EXIT  TO  NLM98U  WHICH  WILL  CONTINUE 
*         DISPLAYING  THE  CONTENTS  OF  THE INPUT AND OUTPUT 
*         BUFFERS.
* 
*         REGISTERS USED -
*         ALL REGISTERS - READ ONLY 
*         B0,B1 = FIRST NAD ADDRESS OF LAST BLOCK VERIFY. 
*         B2 = LINE COUNT.
*         B5 = COMMAND INDEX. 
*         WC = WORD COUNT OF LAST BLOCK OF TEST.
* 
*         BUFFERS USED -
* 
*         REMARKS - 
*         NLM98T  MUST  BE  CALLED  FROM  THE   MODULE   LAST 
*         EXECUTED.    MODULE   NLM98T   CANNOT  BE  EXECUTED 
*         INDEPENDENTLY OF THE CALLING MODULE.
* 
* 
* 
* 
1  FORMAT MALET REGISTERS (OCTAL) 
2  FORMAT        B0=*OCT  B1=*OCT  B2=*OCT  B3=*OCT 
3  FORMAT        B4=*OCT  B5=*OCT  B6=*OCT  B7=*OCT 
4  FORMAT        B8=*OCT  B9=*OCT B10=*OCT B11=*OCT 
5  FORMAT       B12=*OCT B13=*OCT B14=*OCT B15=*OCT 
6  FORMAT        BA=*OCT  EC=*OCT  EA=*OCT  LF=*OCT 
7  FORMAT        WC=*OCT  WT=*OCT 
15 FORMAT CM WORD COUNT OF TEST=*OCT*OCTB 
16 FORMAT LAST BLOCK TRANSFERRED=*OCTB WORDS
17 FORMAT FIRST NAD ADDR. OF LAST BLOCK=*H*HH 
20 FORMAT ERROR ADDRESS=*H*HH  EXP=*H*HH ACT=*H*HH
21 FORMAT ERROR ADDRESS=*H*HH 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------
* 
/-----------EQUATES.
* 
   EQUATE VFLX=12, VFFX=13
* 
* 
/-----------DISPLAY MALET REGISTERS.
* 
30 IF(DS.AND.S2.EQ.0) BLANK 
   IF(DS.AND.S2.EQ.0) EXIT
   B2=7D
   MSG 15(OB(501)OB(502)) TO LINE B2
   MSG 15(OB(501)OB(502)) TO PRINT
   B2=B2+1
   IF(B5.EQ.VFLX) GOSUB 32
   IF(B5.EQ.VFFX) GOSUB 34
/-----------REPORT CONTENTS OF MALET REGISTERS. 
* 
   B2=B2+1
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   B2=B2+1
   MSG 2(B0,B1,B2,B3) TO LINE B2
   MSG 2(B0,B1,B2,B3) TO PRINT
   B2=B2+1
   MSG 3(B4,B5,B6,B7) TO LINE B2
   MSG 3(B4,B5,B6,B7) TO PRINT
   B2=B2+1
   MSG 4(B8,B9,B10,B11) TO LINE B2
   MSG 4(B8,B9,B10,B11) TO PRINT
   B2=B2+1
   MSG 5(B12,B13,B14,B15) TO LINE B2
   MSG 5(B12,B13,B14,B15) TO PRINT
   B2=B2+1
   MSG 6(BA,EC,EA,LF) TO LINE B2
   MSG 6(BA,EC,EA,LF) TO PRINT
   B2=B2+1
   MSG 7(WC,WT) TO LINE B2
   MSG 7(WC,WT) TO PRINT
50 MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
60 B2=7D
61 MSG 26 TO LINE B2      *CLEAR REGISTER DISPLAY 
   B2=B2+1
   IF(B2.LT.47) GOTO 61 
   EXIT TO 98U
* 
/-----------REPORT LAST BLOCK VERIFY ERROR
* 
32 MSG 16(WC) TO LINE B2
   MSG 16(WC) TO PRINT
   B2=B2+1
   MSG 17(B0,B1) TO LINE B2 
   MSG 17(B0,B1) TO PRINT 
   B2=B2+1
   IF(DC.EQ.301) WC=WC+32B      *IF REMOTE LOAD, ADD 32B
*                   CALCULATE NAD ADDRESS IN ERROR. 
   B4=WC.RS.1   *CHANGE PP WORD COUNT TO NAD WORD COUNT 
   IF(B1+B4.GT.377) B0=B0+1   *UPPER 8 BITS OF ERROR ADDR.
   B4=B1+B4.AND.377   *LOWER 8 BITS OF ERROR ADDRESS
*                   CALCULATE IB/OB CONTAINING ERROR DATA.
   IF(WC.AND.1.NE.0) B13=WC-1    *CALC. ADDR. OF IB/OB
   IF(WC.AND.1.NE.0) B14=WC 
   IF(WC.AND.1.EQ.0) B14=WC+1 
   IF(WC.AND.1.EQ.0) B13=WC 
   GOSUB 36 
   RETURN 
* 
/-----------REPORT FIRST BLOCK VERIFY ERROR.
* 
34 B4=WC.RS.1   *CHANGE PP WORD COUNT TO NAD WORD COUNT 
   B0=0                   *UPPER 8 BITS OF ERROR ADDR.
   B1=100B  *SET TO FIRST ADDRESS COMPARED IN BUFFER
   B4=B4+B1            *LOWER 8 BITS OF ERROR ADDR. 
*                  CALCULATE IB/OB CONTAINING ERROR DATA. 
   IF(WC.AND.1.NE.0) B13=WC+200B-1   *CALC. ADDR. OF IB/OB
   IF(WC.AND.1.NE.0) B14=WC+200B
   IF(WC.AND.1.EQ.0) B14=WC+200B+1
   IF(WC.AND.1.EQ.0) B13=WC+200B
   GOSUB 36 
   RETURN 
36 IF(DS.AND.S1.NE.0) GOTO 42 
   MSG 20(B0,B4,OB(B13)OB(B14)IB(B13)IB(B14)) TO LINE B2
   MSG 20(B0,B4,OB(B13)OB(B14)IB(B13)IB(B14)) TO PRINT
   RETURN 
42 MSG 21(B0,B4) TO LINE B2 
   MSG 21(B0,B4) TO PRINT 
   RETURN 
   END 30 
COMPILE            *NLM98T - DISPLAY OF BUFFERS,REGISTERS 
   MODULE NLM98U,LCN,(300,301),LOCK 
***       NLM98U - IB/OB DISPLAYS.
**        NLM98U - IB/OB DISPLAYS.
*         NLM98U - IB/OB DISPLAYS.
* 
* 
*         PURPOSE - 
*         NLM98U DISPLAYS THE CONTENTS OF IB/OB (0-177B) IF 
*         A LOAD ERROR OCCURS.  THE S1 SWITCH MUST BE CLEAR AND 
*         THE S2 SWITCH MUST BE SET TO ENABLE THIS DISPLAY. 
*         THIS MODULE MAY ALSO BE USED IN OTHER CIRCUMSTANCES 
*         IF THE CE PROVIDES AN EXIT TO THIS MODULE.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF IB/OB (0-177B).
*            THE S1 SWITCH MUST BE CLEAR WHILE THE S2 SWITCH IS 
*            SET TO ENABLE THIS DISPLAY.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM98U IS ENTERED FROM NLM98T.
* 
*         EXIT -
*         NLM98U  WILL  EXIT  TO  NLM98V  WHICH WILL CONTINUE 
*         DISPLAYING THE REMAINDER OF THE  INPUT  AND  OUTPUT 
*         BUFFERS.
* 
*         BUFFERS USED -
*         IB(0-177B) - READ ONLY
*         OB(0-177B) - READ ONLY
* 
* 
* 
* 
1  FORMAT INPUT BUFFER (OCTAL)
2  FORMAT OUTPUT BUFFER (OCTAL) 
3  FORMAT           *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT WORD 0    *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT WORD 100  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ----------------------------------- 
* 
/-----------DISPLAY IB,OB (0-177B). 
* 
30 B2=7D
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   GOSUB 40             *DISPLAY IB 
   MSG 2 TO LINE B2 
   MSG 2 TO PRINT 
   COPY OB(0) TO IB(0) FOR 200B 
   GOSUB 40             *DISPLAY OB 
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
   GOSUB 60 
   EXIT TO 98V
* 
/-----------DISPLAY CONTENTS OF IB/OB/
* 
40 B2=B2+1
   MSG 4 10 WORDS FROM IB(0) TO LINE B2 
   MSG 4 10 WORDS FROM IB(0) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(10) TO LINE B2
   MSG 3 10 WORDS FROM IB(10) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(20) TO LINE B2
   MSG 3 10 WORDS FROM IB(20) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(30) TO LINE B2
   MSG 3 10 WORDS FROM IB(30) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(40) TO LINE B2
   MSG 3 10 WORDS FROM IB(40) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(50) TO LINE B2
   MSG 3 10 WORDS FROM IB(50) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(60) TO LINE B2
   MSG 3 10 WORDS FROM IB(60) TO PRINT
   B2=B2+1
   MSG 3 10 WORDS FROM IB(70) TO LINE B2
   MSG 3 10 WORDS FROM IB(70) TO PRINT
   B2=B2+1
   MSG 5 10 WORDS FROM IB(100) TO LINE B2 
   MSG 5 10 WORDS FROM IB(100) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(110) TO LINE B2 
   MSG 3 10 WORDS FROM IB(110) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(120) TO LINE B2 
   MSG 3 10 WORDS FROM IB(120) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(130) TO LINE B2 
   MSG 3 10 WORDS FROM IB(130) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(140) TO LINE B2 
   MSG 3 10 WORDS FROM IB(140) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(150) TO LINE B2 
   MSG 3 10 WORDS FROM IB(150) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(160) TO LINE B2 
   MSG 3 10 WORDS FROM IB(160) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(170) TO LINE B2 
   MSG 3 10 WORDS FROM IB(170) TO PRINT 
   RETURN 
60 B2=7D
61 MSG 26 TO LINE B2      *CLEAR REGISTER DISPLAY 
   B2=B2+1
   IF(B2.LE.47) GOTO 61 
   RETURN 
   END 30 
COMPILE            *NLM98U - DISPLAY BUFFERS. 
   MODULE NLM98V,LCN,(300,301),LOCK 
***       NLM98V - CONTINUATION OF NLM98T.
***       NLM98V - IB/OB DISPLAYS.
**        NLM98V - IB/OB DISPLAYS.
*         NLM98V - IB/OB DISPLAYS.
* 
* 
*         PURPOSE - 
*         NLM98V DISPLAYS THE CONTENTS OF IB/OB (200-377B) IF 
*         A LOAD ERROR OCCURS.  THE S1 SWITCH MUST BE CLEAR AND 
*         THE S2 SWITCH MUST BE SET TO ENABLE THIS DISPLAY. 
*         THIS MODULE MAY ALSO BE USED IN OTHER CIRCUMSTANCES 
*         IF THE CE PROVIDES AN EXIT TO THIS MODULE.
* 
* 
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF IB/OB (200-377B).
*            THE S1 SWITCH MUST BE CLEAR WHILE THE S2 SWITCH IS 
*            SET TO ENABLE THIS DISPLAY.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM98V IS ENTERED FROM NLM98U.
* 
*         EXIT -
*         NLM98V  WILL  EXIT  TO NLM98Y.
* 
*         BUFFERS USED -
*         IB(200-377B) - READ ONLY
*         OB(200-377B) - READ ONLY
* 
* 
* 
* 
1  FORMAT INPUT BUFFER (OCTAL)
2  FORMAT OUTPUT BUFFER (OCTAL) 
3  FORMAT           *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT WORD 200  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT WORD 300  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------
* 
/-----------DISPLAY IB,OB (200-377B). 
* 
30 B2=7D
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   GOSUB 40             *DISPLAY IB 
   MSG 2 TO LINE B2 
   MSG 2 TO PRINT 
   COPY OB(200) TO IB(200) FOR 200B 
   GOSUB 40            *DISPLAY OB
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
   GOSUB 60 
   EXIT TO 98W
* 
/-----------DISPLAY CONTENTS OF IB/OB 
* 
40 B2=B2+1
   MSG 4 10 WORDS FROM IB(200) TO LINE B2 
   MSG 4 10 WORDS FROM IB(200) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(210) TO LINE B2 
   MSG 3 10 WORDS FROM IB(210) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(220) TO LINE B2 
   MSG 3 10 WORDS FROM IB(220) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(230) TO LINE B2 
   MSG 3 10 WORDS FROM IB(230) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(240) TO LINE B2 
   MSG 3 10 WORDS FROM IB(240) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(250) TO LINE B2 
   MSG 3 10 WORDS FROM IB(250) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(260) TO LINE B2 
   MSG 3 10 WORDS FROM IB(260) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(270) TO LINE B2 
   MSG 3 10 WORDS FROM IB(270) TO PRINT 
   B2=B2+1
   MSG 5 10 WORDS FROM IB(300) TO LINE B2 
   MSG 5 10 WORDS FROM IB(300) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(310) TO LINE B2 
   MSG 3 10 WORDS FROM IB(310) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(320) TO LINE B2 
   MSG 3 10 WORDS FROM IB(320) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(330) TO LINE B2 
   MSG 3 10 WORDS FROM IB(330) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(340) TO LINE B2 
   MSG 3 10 WORDS FROM IB(340) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(350) TO LINE B2 
   MSG 3 10 WORDS FROM IB(350) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(360) TO LINE B2 
   MSG 3 10 WORDS FROM IB(360) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(370) TO LINE B2 
   MSG 3 10 WORDS FROM IB(370) TO PRINT 
   RETURN 
60 B2=7D
61 MSG 26 TO LINE B2      *CLEAR REGISTER DISPLAY 
   B2=B2+1
   IF(B2.LE.47) GOTO 61 
   RETURN 
   END 30 
COMPILE            *NLM98V - DISPLAY BUFFERS. 
   MODULE NLM98W,LCN,(300,301),LOCK 
***       NLM98W - IB/OB DISPLAYS.
**        NLM98W - IB/OB DISPLAYS.
*         NLM98W - IB/OB DISPLAYS.
* 
* 
*         PURPOSE - 
*         NLM98W DISPLAYS THE CONTENTS OF IB/OB (400-504B) IF 
*         A LOAD ERROR OCCURS.  THE S1 SWITCH MUST BE CLEAR AND 
*         THE S2 SWITCH MUST BE SET TO ENABLE THIS DISPLAY. 
*         THIS MODULE MAY ALSO BE USED IN OTHER CIRCUMSTANCES 
*         IF THE CE PROVIDES AN EXIT TO THIS MODULE.
* 
*         METHOD -
*         1. DISPLAY THE CONTENTS OF IB/OB (400-504B).
*            THE S1 SWITCH MUST BE CLEAR WHILE THE S2 SWITCH IS 
*            SET TO ENABLE THIS DISPLAY.
* 
* 
* 
/ 
*         ENTRY - 
*         NLM98W IS ENTERED FROM NLM98V.
* 
*         EXIT -
*         NLM98W WILL EXIT TO THE CALLING MODULE. 
* 
*         BUFFERS USED -
*         IB(400-504B) - READ ONLY
*         OB(400-504B) - READ ONLY
* 
* 
* 
* 
1  FORMAT INPUT BUFFER (OCTAL)
2  FORMAT OUTPUT BUFFER (OCTAL) 
3  FORMAT           *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
4  FORMAT WORD 400  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
5  FORMAT WORD 500  *OCT *OCT *OCT *OCT *OCT *OCT *OCT *OCT 
25 FORMAT ENTER GO TO CONTINUE
26 FORMAT 
27 FORMAT ------------------------------------
* 
/-----------DISPLAY IB,OB (400-504B). 
* 
30 B2=7D
   MSG 1 TO LINE B2 
   MSG 1 TO PRINT 
   GOSUB 40             *DISPLAY IB 
   MSG 2 TO LINE B2 
   MSG 2 TO PRINT 
   COPY OB(400) TO IB(400) FOR 104B 
   GOSUB 40             *DISPLAY OB 
   MSG 27 TO PRINT
   MSG 25 TO PRINT,DISPLAY
   PAUSE
   BLANK
   EXIT 
* 
/-----------DISPLAY CONTENTS OF IB/OB 
* 
40 B2=B2+1
   MSG 4 10 WORDS FROM IB(400) TO LINE B2 
   MSG 4 10 WORDS FROM IB(400) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(410) TO LINE B2 
   MSG 3 10 WORDS FROM IB(410) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(420) TO LINE B2 
   MSG 3 10 WORDS FROM IB(420) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(430) TO LINE B2 
   MSG 3 10 WORDS FROM IB(430) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(440) TO LINE B2 
   MSG 3 10 WORDS FROM IB(440) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(450) TO LINE B2 
   MSG 3 10 WORDS FROM IB(450) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(460) TO LINE B2 
   MSG 3 10 WORDS FROM IB(460) TO PRINT 
   B2=B2+1
   MSG 3 10 WORDS FROM IB(470) TO LINE B2 
   MSG 3 10 WORDS FROM IB(470) TO PRINT 
   B2=B2+1
   MSG 5 5 WORDS FROM IB(500) TO LINE B2
   MSG 5 5 WORDS FROM IB(500) TO PRINT
   RETURN 
   END 30 
COMPILE            *NLM98W - DISPLAY BUFFERS. 
   MODULE NLM98X,LCN,(300,301),LOCK 
***       NLM98X - TEST MODULE DESCRIPTION REPORTER.
**        NLM98X - TEST MODULE DESCRIPTION REPORTER.
*         NLM98X - TEST MODULE DESCRIPTION REPORTER.
* 
* 
*         PURPOSE - 
*         NLM98X DISPLAYS A MESSAGE DESCRIBING EACH TEST MODULE RUN.
* 
*         METHOD -
*         1. DISPLAY A MODULE DESCRIPTION MESSAGE DESCRIBING THE MODULE 
*            PRESENTLY EXECUTING.  THIS MESSAGE WILL BE DISPLAYED ON
*            LINE 1 OF THE DISPLAY. 
* 
/ 
*         ENTRY - 
*         ENTRY 1 - NLM02A
*         ENTRY 2 - NLM02B
* 
* 
*         EXIT -
*         EXIT 1 - NLM02A 
*         EXIT 2 - NLM02B 
* 
* 
*         REGISTERS USED -
*         B10 = LAST 2 CHARACTERS OF THE TEST NAME. 
* 
*         BUFFERS USED -
*         IB(270-277) CONTAINS MODULE DESCRIPTION.
* 
* 
1  FORMAT  NDM*D - *A*A*A*A*A*A*A 
2  FORMAT  NDP*D - *A*A*A*A*A*A*A 
3  FORMAT  NDT*D - *A*A*A*A*A*A*A 
4  FORMAT *A*A*D EXECUTING
* 
/-----------REPORT MODULE DESCRIPTION MESSAGE.
* 
* 
30 MSG 4(B4,B10,IB(152)) TO PRINT,DISPLAY 
   IB(270)=IB(152)            *CONDITION NUMBER 
   IB(271)=IB(234).LS.6.+IB(235)  *MODULE DESCRIPTION 
   IB(272)=IB(236).LS.6.+IB(237)
   IB(273)=IB(240).LS.6.+IB(241)
   IB(274)=IB(242).LS.6.+IB(243)
   IB(275)=IB(244).LS.6.+IB(245)
   IB(276)=IB(246).LS.6.+IB(247)
   IB(277)=IB(250).LS.6.+IB(251)
   IF(B10.EQ.0415) MSG 1 8D WORDS FROM IB(270) TO LINE 1
   IF(B10.EQ.0420) MSG 2 8D WORDS FROM IB(270) TO LINE 1
   IF(B10.EQ.0424) MSG 3 8D WORDS FROM IB(270) TO LINE 1
   EXIT 
   END 30 
COMPILE            *NLM98X - DISPLAY MODULE DESCRIPTION 
   MODULE NLM99,LCN,(300,301),LOCK
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT 
/ 
/         NLM DESCRIPTION FOR 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 * 
/ 
/                 *THESE BITS FOR SYSTEM USE. 
/ 
/         DIAGNOSTIC SWITCHES 
/ 
/                2XXX - REPEAT TEST(RT) 
/                XXX1 - STOP ON ERROR(SE) 
/                XXX2 - REPEAT MODULE(RM) 
/                XXX4 - REPEAT CONDITION(RC)
/                XX1X - STOP AT BEGINNING OF CONDITION(BC)
/                XX2X - STOP AT BEGINNING OF MODULE(BM) 
/                XX4X - STOP AT BEGINNING OF TEST(BT) 
/                X1XX - STOP AT END OF TEST(TE) 
/                X2XX - STOP AT END OF CONDITION(CE)
/                X4XX - STOP AT END OF MODULE(ME) 
/                1XXX - (S1)
/                   LOADER -  ENABLE NAD MEMORY REPORT. 
/                   MONITOR - ENABLE STATUS TABLE REPORT. 
/                2XXX - REPEAT TEST (RT)
/                4XXX - (S2)
/                   LOADER - ENABLE IB/OB REPORT
/                   MONITOR - ENABLE STATUS INTERPRET.
/ 
/         MODULE
/         NAME     DESCRIPTION
/         ----     -----------
/ 
/ 
/ 
/         NLM00  - COMMON LCN PARAMETER VALIDATOR.
/         NLM01  - LOCAL/REMOTE LOADER BRANCH.
/         NLM01A - LOCAL NAD LOADER.
/         NLM01B - REMOTE NAD LOADER. 
/         NLM02  - LOCAL/REMOTE MONITOR BRANCH. 
/         NLM02A - LOCAL NAD MONITOR. 
/         NLM02B - REMOTE NAD MONITOR.
/         NLM98A - LOAD ERROR REPORTER. 
/         NLM97B/98B - FORMATION OF TEST PARAMETER BUFFER.
/         NLM97C/98C - TEST STOP MESSAGE DISPLAY. 
/         NLM97D/98D - INITIAL MONITOR DISPLAY. 
/         NLM97E/98E - MONITOR/TEST ERROR REPORTER. 
/         NLM97F/98F - CONTINUATION OF NLM97E/98E.
/         NLM97G/98G - MAINTENANCE FUNCTION RESPONSE TABLE
/                      REPORTER.
/         NLM97H/98H - CONTINUATION OF NLM97G/98G.
/         NLM97I/98I - CONTINUATION OF NLM97G/98G.
/         NLM97J/98J - PATH STATUS TABLE REPORTER.
/         NLM97K/98K - CONTINUATION OF NLM97J/98J.
/         NLM97L/98L - CONTINUATION OF NLM97J/98J.
/         NLM97M/98M - CONTINUATION OF NLM97J/98J.
/         NLM97N/98N - CONTINUATION OF NLM97J/98J.
/         NLM97O/98O - CONTINUATION OF NLM97J/98J.
/         NLM97P/98P - CONTINUATION OF NLM97J/98J.
/         NLM97Q/98Q - GENERAL/DETAILED NAD STATUS REPORTER.
/         NLM97R/98R - NAD MEMORY/CONTROL PACKAGE REPORTER. 
/         NLM97S/98S - NAD PROCESSOR START. 
/         NLM97T/98T - REGISTER DISPLAY.
/         NLM97U/98U - IB/OB (0-177B) DISPLAY.
/         NLM97V/98V - IB/OB (200-377B) DISPLAY.
/         NLM97W/98W - IB/OB (400-504B) DISPLAY.
/         NLM97X/98X - TEST MODULE DESCRIPTION REPORTER.
/         NLM99  - PARAMETER REGISTER AND MODULE
/                  DESCRIPTIONS.
/         NLM99A - PARAMETER REGISTER USAGE FOR NDM.
/         NLM99B - PARAMETER REGISTER USAGE FOR NDP.
/         NLM99C - PARAMETER REGISTER USAGE FOR NDT.
/ 
   END 2
COMPILE,SOURCE
   MODULE NLM99A,LCN,(300,301),LOCK 
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT 
*                         *THE NEXT CARD IS CALL CDNDM CARD.
*CALL CDNDM 
   END 2
COMPILE,SOURCE
   MODULE NLM99B,LCN,(300,301),LOCK 
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT 
*                         *THE NEXT CARD IS CALL CDNDP CARD.
*CALL CDNDP 
   END 2
COMPILE,SOURCE
   MODULE NLM99C,LCN,(300,301),LOCK 
1  FORMAT COPYRIGHT CONTROL DATA CORP. 1979 
2  PAUSE
   EXIT 
*                         *THE NEXT CARD IS CALL CDNDT CARD.
*CALL CDNDT 
   END 2
COMPILE,SOURCE
*/MODSET 034631 CONTAINS 248 CARDS INCLUDING THIS STATEMENT.
  
* 
*** 3.1.2.7  APPLICATIONS 
**  3.1.2.7  APPLICATIONS 
*   3.1.2.7  APPLICATIONS 
*            ------------ 
* 
*             1.  NLM CAN BE USED TO LOAD AND MONITOR ANY NAD TEST THAT 
*                 IS RESIDENT IN THE NAD, PROVIDED  THAT  THE  TEST  IS 
*                 WRITTEN  TO  INTERFACE WITH NDI, THAT THE TEST IS 
*                 ASSEMBLED WITH A 77 HEADER TABLE, AND THAT THE TEST 
*                 CONTAINS NDI( NAD TEST INTERFACE).
* 
*              2. NLM CAN LOAD AND MONITOR A NAD RESIDENT TEST IN 
*                 THE LOCAL NAD PROVIDED THAT THE PROPER ASSIGN 
*                 STATEMENT PARAMETERS ARE ENTERED. 
* 
*              3. NLM CAN LOAD AND MONITOR A NAD RESIDENT TEST IN 
*                 A REMOTE NAD PROVIDED THAT THE LOCAL NAD CONTAINS 
*                 CONTROLWARE AND THE PROPER ASSIGN STATEMENT 
*                 PARAMETERS ARE ENTERED. 
* 
* 
* 
* 
* 
*** 3.1.3  INTERFACES 
**  3.1.3  INTERFACES 
*   3.1.3  INTERFACES 
*          ---------- 
* 
*          COVERED  IN  PARAMETERS  AND  MESSAGES 3.1.2.2.4 AND 3.1.2.3 
*          RESPECTIVELY.
* 
*** 3.1.4.1  TEST ABORTS
**  3.1.4.1  TEST ABORTS
*   3.1.4.1  TEST ABORTS
*            -----------
* 
*            REFER TO THE TEST ERS FOR INFORMATION ON TEST ABORTS.
* 
* 
*** 3.1.4.2  SYSTEM ABORTS
**  3.1.4.2  SYSTEM ABORTS
*   3.1.4.2  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.5  ERRORS 
**  3.1.5  ERRORS 
*   3.1.5  ERRORS 
*          ------ 
* 
*          FOR EASE OF REFERENCE, THESE MESSAGES ARE GROUPED  WITH  ALL 
*          TEST MESSAGES IN 3.1.2.3.
* 
* 
*** 3.1.6  PERFORMANCE
**  3.1.6  PERFORMANCE
*   3.1.6  PERFORMANCE
*          -----------
* 
*          REFER TO EACH TEST ERS FOR PERFORMANCE INFORMATION.
* 
* 
*** 3.1.7  INSTALLATION PARAMETERS
**  3.1.7  INSTALLATION PARAMETERS
*   3.1.7  INSTALLATION PARAMETERS
*          -----------------------
* 
* 
* 
*** 4.0  PRODUCT LEVEL DESCRIPTION
**  4.0  PRODUCT LEVEL DESCRIPTION
*   4.0  PRODUCT LEVEL DESCRIPTION
*        -------------------------
* 
*** 4.1  PUBLICATIONS AFFECTED
**  4.1  PUBLICATIONS AFFECTED
*   4.1  PUBLICATIONS AFFECTED
*        ---------------------
* 
* 
* 
*** 4.2  EQUIPMENT CONFIGURATION
**  4.2  EQUIPMENT CONFIGURATION
*   4.2  EQUIPMENT CONFIGURATION
*        -----------------------
* 
*        REFER TO THE TEST ERS FOR EQUIPMENT CONFIGURATION. 
* 
* 
*** 4.3  INTERFACES TO OTHER SOFTWARE PRODUCTS
**  4.3  INTERFACES TO OTHER SOFTWARE PRODUCTS
*   4.3  INTERFACES TO OTHER SOFTWARE PRODUCTS
*        -------------------------------------
* 
*        NLM INTERFACES WITH NOS CVL THROUGH THE MALET EXECUTIVE. 
*        NLM INTERFACES WITH THE TEST THROUGH NDI, THE TEST  INTERFACE. 
* 
* 
*** 4.4  SECURITY 
**  4.4  SECURITY 
*   4.4  SECURITY 
*        -------- 
* 
*IF -DEF,CMSE17X
*        SECURITY IS PROVIDED BY THE OPERATING SYSTEM FOR ON-LINE 
*        MALET THROUGH THE USE OF CVL.
* 
*ENDIF
*IF DEF,CMSE17X 
*        SECURITY FOR THE TEST, WHILE RUNNING UNDER DEMOT, 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
*   5.0  RELIABILITY, AVAILABILITY AND MAINTAINABILITY STANDARDS
* 
*        THIS IS A MONITOR PROGRAM AND THUS IS EXEMPT FROM RAM
*        STANDARDS. 
* 
* 
*** 6.0  GLOSSARY 
**  6.0  GLOSSARY 
*   6.0  GLOSSARY 
* 
*        -------- 
* 
*        NLM     NAD LOADER AND MONITOR 
*        NDI     NAD TEST INTERFACE 
*        LCN     LOOSELY COUPLED NETWORK
*        MALET   MAINTENANCE APPLICATION LANGUAGE FOR EQUIPMENT 
*                TESTING
*        ERS     EXTERNAL REFERENCE SPECIFICATION 
*        LOCAL NAD - A LOCAL NAD REFERS TO THE CYBER COMPUTER NAD.
*        REMOTE NAD  -  A  REMOTE  NAD  REFERS  TO ANY NAD ON THE TRUNK 
*                HAVING ACCESS TO  THE  CYBER  COMPUTER  NAD  WITH  THE 
*                EXCEPTION OF THE CYBER COMPUTER NAD. 
*        H/S     HARDWARE STATUS
*        C/S     CONTROLWARE STATUS 
* 
