Google
 

Trailing-Edge - PDP-10 Archives - 6.1_emacs_manuals_1er - 2-diagnostics/dfnia.seq
There are no other files named dfnia.seq in the archive.
;DFNIA
                                                                                                                           SEQ 0001





                                IDENTIFICATION
                                --------------

        PRODUCT CODE:           AH-E???A-DD

        DIAGNOSTIC CODE:        DFNIA

        PRODUCT NAME:           DFNIAA0 NI Functional Diagnostic

        VERSION:                0.1

        DATE RELEASED:          December 31, 1983

        MAINTAINED BY:          Peripherals/CPS Engineering

        AUTHOR:                 Richard Stockdale



                        COPYRIGHT (C) 1983

                DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

        THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR  USE  ONLY  ON  A
        SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
        OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE,  OR  ANY  OTHER
        COPIES  THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
        TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
        AGREES  TO  THESE  LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE
        SOFTWARE  SHALL  AT  ALL  TIMES  REMAIN  IN  DIGITAL   EQUIPMENT
        CORPORATION.

        THE INFORMATION IN THIS DOCUMENT IS SUBJECT  TO  CHANGE  WITHOUT
        NOTICE  AND  SHOULD  NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
        EQUIPMENT CORPORATION.

        DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY  FOR THE
        USE OR RELIABILITY OF  ITS  SOFTWARE  IN  EQUIPMENT WHICH IS NOT
        SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
MAINDEC-10-DFNIA-A-D                                             Page ii
Table of Contents                                                                                                          SEQ 0002


                           Table of Contents
                                                                    Page
                                                                    ----

        1.0     PROGRAM ABSTRACT . . . . . . . . . . . . . . . . . . 1

        2.0     REQUIREMENTS . . . . . . . . . . . . . . . . . . . . 2
        2.1       Hardware Requirements  . . . . . . . . . . . . . . 2
        2.1.1       KL10 Microcode Requirements  . . . . . . . . . . 2
        2.1.2       Memory Requirements  . . . . . . . . . . . . . . 2
        2.1.3       Load Device  . . . . . . . . . . . . . . . . . . 2
        2.2       Software Requirements  . . . . . . . . . . . . . . 2
        2.3       Diagnostic Prerequisites . . . . . . . . . . . . . 3

        3.0     PROGRAM LOADING PROCEDURE  . . . . . . . . . . . . . 4

        4.0     PROGRAM STARTING PROCEDURE . . . . . . . . . . . . . 5
        4.1       Starting the Diagnostic  . . . . . . . . . . . . . 5
        4.2       Initial Program Switches . . . . . . . . . . . . . 5
        4.3       Startup Procedure  . . . . . . . . . . . . . . . . 5
        4.4       Optional Restart Address . . . . . . . . . . . . . 6

        5.0     PROGRAM STOPPING PROCEDURE . . . . . . . . . . . . . 7

        6.0     PROGRAM OPERATING PROCEDURE  . . . . . . . . . . . . 8
        6.1       Overview . . . . . . . . . . . . . . . . . . . . . 8
        6.2       Hardware Configuration . . . . . . . . . . . . . . 8
        6.2.1       Configuration Modification . . . . . . . . . . . 8
        6.3       NI Configuration . . . . . . . . . . . . . . . . . 8
        6.4       Choosing Run Time Options  . . . . . . . . . . . . 9
        6.5       Modes of Diagnostic Operation  . . . . . . . . . . 9
        6.6       Scope Looping  . . . . . . . . . . . . . . . . . . 9
        6.7       General User Interface Philosophy  . . . . . . .  10
        6.7.1       User Interface . . . . . . . . . . . . . . . .  10
        6.8       Terminal Input . . . . . . . . . . . . . . . . .  10
        6.8.1       General  . . . . . . . . . . . . . . . . . . .  10
        6.8.2       Control-C Capability (Ctrl-C)  . . . . . . . .  10
        6.8.3       Control-O Capability (Ctrl-O)  . . . . . . . .  11
        6.8.4       Control-Q Capability (Ctrl-Q)  . . . . . . . .  11
        6.8.5       Control-S Capability (Ctrl-S)  . . . . . . . .  11
        6.8.6       Control-T Capability (Ctrl-T)  . . . . . . . .  11
        6.8.7       Control-U Capability (Ctrl-U)  . . . . . . . .  11
        6.8.8       Control-Z Capability (Ctrl-Z)  . . . . . . . .  11
        6.8.9       Question Mark (?)  . . . . . . . . . . . . . .  12
        6.8.10      Altmode (ESC)  . . . . . . . . . . . . . . . .  12
        6.9       Terminal Output  . . . . . . . . . . . . . . . .  12
        6.9.1       Statistics Printouts . . . . . . . . . . . . .  12

        7.0     PROGRAM OPTIONS (SWITCHES) . . . . . . . . . . . .  14
        7.1       Left Hand Switches . . . . . . . . . . . . . . .  14
        7.1.1       Left Hand Switches (Brief Description) . . . .  15
        7.1.2       Left Hand Switches (Detailed Description)  . .  16
        7.2       Right Hand Switches  . . . . . . . . . . . . . .  19
        7.2.1       Right Hand Switches (Brief Description)  . . .  19
        7.2.2       Right Hand Switches (Detailed Description) . .  20
MAINDEC-10-DFNIA-A-D                                          Page iii
Table of Contents                                                                                                          SEQ 0003


        8.0     ERRORS . . . . . . . . . . . . . . . . . . . . . .  23
        8.1       User Input Errors at the Terminal  . . . . . . .  23
        8.2       Error Reporting of Hardware Detected Errors  . .  23
        8.2.1       Reporting to SPEAR . . . . . . . . . . . . . .  23
        8.2.2       Error Printouts  . . . . . . . . . . . . . . .  24
        8.3       Unexpected Errors  . . . . . . . . . . . . . . .  25

        9.0     PROGRAM DESCRIPTION  . . . . . . . . . . . . . . .  27
        9.1       Program Overview . . . . . . . . . . . . . . . .  27
        9.1.1       Program Purpose  . . . . . . . . . . . . . . .  27
        9.1.2       Testing Strategy . . . . . . . . . . . . . . .  27
        9.2       Run-Time Dynamics  . . . . . . . . . . . . . . .  27
        9.2.1       Memory Allocation Requirements . . . . . . . .  27
        9.2.2       Operating System Interactions  . . . . . . . .  27
        9.2.2.1       TOPS-10  . . . . . . . . . . . . . . . . . .  27
        9.2.2.2       TOPS-20  . . . . . . . . . . . . . . . . . .  28
        9.2.3       User Mode Restrictions . . . . . . . . . . . .  28
        9.2.3.1       User Mode Privileges . . . . . . . . . . . .  28
        9.2.3.2       User Mode Priority Interrupts  . . . . . . .  28
        9.3       Exec Mode Capability . . . . . . . . . . . . . .  28
        9.4       User Mode Capability . . . . . . . . . . . . . .  28
        9.5       Fault Detection  . . . . . . . . . . . . . . . .  28
        9.5.1       Error Resolution . . . . . . . . . . . . . . .  29
        9.5.2       Fault Detection And Isolation  . . . . . . . .  29
        9.5.3       Fault Detection  . . . . . . . . . . . . . . .  29
        9.6       Performance During Hardware Failures . . . . . .  29
        9.6.1       CPU/Memory Failures  . . . . . . . . . . . . .  29
        9.6.2       Power Fail/Restart . . . . . . . . . . . . . .  29
        9.6.3       Port Failure . . . . . . . . . . . . . . . . .  29
        9.6.4       Unexpected Traps . . . . . . . . . . . . . . .  30
        9.7       Program Applications . . . . . . . . . . . . . .  30
        9.7.1       Users and Uses . . . . . . . . . . . . . . . .  30
        9.7.2       Engineering Usage  . . . . . . . . . . . . . .  30
        9.7.3       Manufacturing Usage  . . . . . . . . . . . . .  30
        9.7.4       Customer Services Usage  . . . . . . . . . . .  30
        9.7.5       Customer Usage . . . . . . . . . . . . . . . .  30
        9.8       Test Design  . . . . . . . . . . . . . . . . . .  31
        9.8.1       Type of Tests  . . . . . . . . . . . . . . . .  31
        9.8.2       Test Flow  . . . . . . . . . . . . . . . . . .  32
        9.8.2.1       Starting the Test  . . . . . . . . . . . . .  32
        9.8.2.2       Stopping the Test  . . . . . . . . . . . . .  32
        9.8.2.3       Obtaining Run Time Status (Control-T)  . . .  33
        9.8.2.4       Obtaining Run Time Status (S or Control-S) .  33

        10.0    TEST DESCRIPTIONS  . . . . . . . . . . . . . . . .  34
        10.1      Test Description Assumptions . . . . . . . . . .  34
        10.2      Test Description Overview  . . . . . . . . . . .  34
        10.3      Program Option Selections  . . . . . . . . . . .  35
        10.3.1      Basic Description  . . . . . . . . . . . . . .  35
        10.3.2      Commands Available . . . . . . . . . . . . . .  35
        10.3.3      Detailed Command Description . . . . . . . . .  36
        10.3.3.1      Hardware Tests . . . . . . . . . . . . . . .  36
        10.3.3.2      General Commands . . . . . . . . . . . . . .  37
        10.3.3.3      Test Control Commands  . . . . . . . . . . .  38
        10.3.3.4      Statistics Commands  . . . . . . . . . . . .  39
        10.3.3.5      NI Configuration Command . . . . . . . . . .  39
MAINDEC-10-DFNIA-A-D                                           Page iv
Table of Contents                                                                                                          SEQ 0004


        10.3.3.6      Switches . . . . . . . . . . . . . . . . . .  40
        10.4      Hardware Tests . . . . . . . . . . . . . . . . .  42
        10.4.1      Hardware Tests - EBUS/MPROC/CBUS modules . . .  42
        10.4.2      Functional Tests . . . . . . . . . . . . . . .  42
        10.4.2.1      Basic Operations . . . . . . . . . . . . . .  42
        10.4.2.2      CRC Tests  . . . . . . . . . . . . . . . . .  42
        10.4.2.3      Datagram Tests . . . . . . . . . . . . . . .  42
        10.4.2.4      Multicast Tests  . . . . . . . . . . . . . .  42
        10.4.2.5      PTT Tests  . . . . . . . . . . . . . . . . .  42
        10.4.2.6      Miscellanous Tests . . . . . . . . . . . . .  43
        10.5      Debug Test . . . . . . . . . . . . . . . . . . .  44
        10.5.1      Basic Description  . . . . . . . . . . . . . .  44
        10.5.2      Commands Available . . . . . . . . . . . . . .  44
        10.5.3      Detailed Command Description . . . . . . . . .  47
        10.5.3.1      General Commands . . . . . . . . . . . . . .  48
        10.5.3.2      Starting, Stopping, Initializing the Port  .  52
        10.5.3.3      Handling port registers  . . . . . . . . . .  54
        10.5.3.4      Handling port CRAM locations . . . . . . . .  55
        10.5.3.5      2901 Commands  . . . . . . . . . . . . . . .  58
        10.5.3.6      Local Storage Commands . . . . . . . . . . .  59
        10.5.3.7      Mark Bit Commands  . . . . . . . . . . . . .  60
        10.5.3.8      Breakpoint Commands  . . . . . . . . . . . .  60
        10.5.3.9      Microcode Commands . . . . . . . . . . . . .  61
        10.5.3.10     Statistics Commands  . . . . . . . . . . . .  63
        10.5.3.11     NI Configuration Command . . . . . . . . . .  63
        10.5.3.12     NI Commands  . . . . . . . . . . . . . . . .  64
        10.5.3.13     PLI Register Commands  . . . . . . . . . . .  67
        10.5.3.14     Miscellaneous Commands . . . . . . . . . . .  68
        10.5.3.15     Data Transfer Commands . . . . . . . . . . .  71
        10.5.3.16     Switches . . . . . . . . . . . . . . . . . .  72

        11.0    PROGRAM RUN TIME . . . . . . . . . . . . . . . . .  74

        12.0    APPENDIX . . . . . . . . . . . . . . . . . . . . .  75
        12.1      Special Configurations . . . . . . . . . . . . .  75
        12.1.1      DMT Configuration  . . . . . . . . . . . . . .  75
        12.1.2      Creating the Modified Diagnostics  . . . . . .  75
        12.1.3      Modifying the System . . . . . . . . . . . . .  76
        12.1.4      Other configurations . . . . . . . . . . . . .  77
MAINDEC-10-DFNIA-A-D                                              Page 1
PROGRAM ABSTRACT                                                                                                           SEQ 0005


1.0  PROGRAM ABSTRACT

       DFNIA  is  a  functional  diagnostic  intended  to   verify   the
    functionality of a NI20 port consisting of an 3 Port modules, an NIA
    module, H4000 Transceiver, and NI cable.   It  attempts  to  isolate
    faults to either of - (1) 3 Port modules, and (2) NIA module + H4000
    Transceiver + cables.

       DFNIA tests the NI port consisting of three port modules residing
    in RH20 slot #5 and an NIA module residing in a separate card cage.

       DFNIA consists of two major program sections:

     o  Test section - Contains all of the hardware tests.  This section
        is  used to functionally verify the port or to isolate an actual
        problem.

     o  Debug section - Allows detailed manipulation  or  inspection  of
        the port.
MAINDEC-10-DFNIA-A-D                                              Page 2
REQUIREMENTS                                                                                                               SEQ 0006


2.0  REQUIREMENTS

    2.1  Hardware Requirements

       Hardware requirements consist of:

     o  A KL10, Model B, with at least 80K of memory.

     o  An NI20 Port in RH slot #5.

     o  Card cage installed, with an  NIA  module  inserted  and  a  PLI
        interface cable connecting the CBUS module with the NIA module.

     o  A load device.




    2.1.1  KL10 Microcode Requirements

       The NI20 requires special functionality of  the  KL10  microcode.
    Therefore, Version 312 or above must be loaded both in user and exec
    mode.



    2.1.2  Memory Requirements

       The diagnostic requires 80K of memory of any type.  Memory may be
    configured  in  any manner, i.e., internal, external, interleaved in
    any rational manner.  The diagnostic's performance is  not  affected
    by  memory  and  cache  options other than in overall diagnostic run
    time.



    2.1.3  Load Device

       The diagnostic loads from  any  standard  load  device.   Program
    loading  is  a  function  of  the  standard  diagnostic  loaders and
    monitors, i.e., DIAMON, D20MON, MAGMON, KLDCP, etc.



    2.2  Software Requirements

       Software requirements consist of:

     o  In exec mode the diagnostic may  be  loaded  by  KLDCP,  DIAMON,
        D20MON,  or MAGMON.  The Subroutine Package must be loaded prior
        to running the diagnostic.

     o  In user mode, TOPS-20, Release 6.1 or above is required.
MAINDEC-10-DFNIA-A-D                                              Page 3
REQUIREMENTS                                                                                                               SEQ 0007


    2.3  Diagnostic Prerequisites

       The diagnostic should only be run after it has been verified that
    the  system  has  no  solid hardware problems of a nature that would
    render the diagnostic unable to run.  This should be  determined  by
    first running the following diagnostic programs:

     o  CPU and Memory Diagnostics

     o  E-Bus Diagnostics

     o  C-Bus Diagnostics

     o  MAINDEC-10-DFRHB - RH20 Fault Isolator Diagnostic.

     o  MAINDEC-10-DFPTA - Port Basic Device Diagnostic.
MAINDEC-10-DFNIA-A-D                                              Page 4
PROGRAM LOADING PROCEDURE                                                                                                  SEQ 0008


3.0  PROGRAM LOADING PROCEDURE

       The diagnostic must be loaded via a  diagnostic  loader  program.
    Refer  to  loader  documentation  for  instructions  on  loading and
    operating the loader program.  The diagnostic may be run as a single
    program or may be chained with other programs using the loader chain
    feature.

       Additionally, in exec mode under KLDCP,  the  diagnostic  may  be
    loaded without using a diagnostic loader program by telling KLDCP to
    load the diagnostic.  This has the advantage of being  simpler,  but
    has  the  disadvantage  of inhibiting file handling operations which
    then prevents use of the TAKE command, and  loading  of  operational
    microcode by the diagnostic.
MAINDEC-10-DFNIA-A-D                                              Page 5
PROGRAM STARTING PROCEDURE                                                                                                 SEQ 0009


4.0  PROGRAM STARTING PROCEDURE

    4.1  Starting the Diagnostic

       The diagnostic is started  in  the  same  manner  as  most  other
    diagnostics.  The diagnostic loader program is run, then the name of
    the diagnostic, DFNIA, is specified.   The  loader  then  loads  and
    starts the diagnostic.

       If the diagnostic is already loaded, it may be restarted by a STD
    or STM in exec mode, or a START or CONTINUE in user mode.



    4.2  Initial Program Switches

       In exec mode, right hand switches may be selected  using  the  SW
    command  as  documented  in  the KL10 Maintanance Guide under KLDCP.
    Left hand switches may be selected on the PDP 11 switch  panel.   If
    the  switches  are  0,  the diagnostic runs 5 passes of all hardware
    tests then exits.  To allow the user to select which test(s) to run,
    the left hand switch 'OPRSEL' should be set.

       In user mode, switches will be queried when the diagnostic starts
    up.   At  this  point,  OPRSEL  switch  can  be  set,  and any other
    switches.

       In both exec and user mode, switch settings may be altered  after
    the diagnostic has been started.



    4.3  Startup Procedure

       When the diagnostic is started, the diagnostic name  and  version
    number will be printed, followed by a memory map of the system.

       If OPRSEL switch is not  set,  the  diagnostic  will  immediately
    begin  testing  the  NI port.  If this switch is set, the diagnostic
    will ask what test to execute.

       For example (OPRSEL switch not set):

    |  D20MON CMD - DFNIA
    |
    |  DFNIA NI Port Functional Diagnostic
    |  VERSION 0.1, SV=0.15, TOPS-20, KL10, CPU#=2263
    |  
    |  SWITCHES = 000000 000000 
    |  
    |  MEMORY MAP =
    |  FROM     TO         SIZE/K
    |  00000000 00215777     71
    |  
    |  End pass 1. at 3m 48s 
    |
MAINDEC-10-DFNIA-A-D                                              Page 6
PROGRAM STARTING PROCEDURE                                                                                                 SEQ 0010


    |  End pass 2. at 7m 32s 
    |
    |  End pass 3. at 11m 20s 
    |
    |  End pass 4. at 15m 8s 
    |
    |  End pass 5. at 18m 56s
    |
    |  D20MON CMD -


       For example (OPRSEL switch set):

    |  D20MON CMD - DFNIA
    |
    |  DFNIA NI Port Functional Diagnostic
    |  VERSION 0.1, SV=0.15, TOPS-20, KL10, CPU#=2263
    |  
    |  SWITCHES = 000010 000000 
    |  
    |  MEMORY MAP =
    |  FROM     TO         SIZE/K
    |  00000000 00215777     71
    |  
    |  Type ? for help
    |  
    |  What test - 


       The diagnostic asks what test to run.  Any test may be  selected,
    or ?  or HELP typed to find out what tests are available.

       At the end of a test the diagnostic  continues  at  the  question
    'What test -'.  The next test is selected and run and so on.



    4.4  Optional Restart Address

       Under TOPS-20 the diagnostic can be restarted via  the  'REENTER'
    command.   The  program switches are queried, then either testing is
    begun immediately (if OPRSEL switch is not set) or 'What Test - ' is
    asked (if OPRSEL switch is set).

       Startup is identical to what occurs if  the  'START'  command  is
    given, except for the DIAMON asking 'DIAMON CMD - '.
MAINDEC-10-DFNIA-A-D                                              Page 7
PROGRAM STOPPING PROCEDURE                                                                                                 SEQ 0011


5.0  PROGRAM STOPPING PROCEDURE

       Several methods may be used to stop the diagnostic:


     o  Altmode.

     o  Control-C.

     o  ABORT switch.

     o  RSTART switch.


       A test can be aborted at any time by typing  an  altmode  on  the
    terminal.   When an altmode is typed, the diagnostic is restarted at
    the test selection routine.  At this point, if OPRSEL switch is set,
    the  diagnostic asks what test to run next.  If OPRSEL switch is not
    set the diagnostic runs all tests over again.

       Control-C may be typed at any time to stop  the  diagnostic.   To
    restart,  a  'START',  'CONTINUE', or 'REENTER' may be typed in user
    mode.  In exec mode a 'STD', 'ST', 'STM', or 'RN' may be used.

       In exec mode, the ABORT switch may  be  set,  so  the  diagnostic
    halts at end of pass.

       In exec mode, the RSTART switch may  be  set.   This  causes  the
    diagnostic  to  be  restarted,  and  if  OPRSEL  switch  is set, the
    diagnostic will have effectively stopped and  will  be  waiting  for
    selection of what test to run.
MAINDEC-10-DFNIA-A-D                                              Page 8
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0012


6.0  PROGRAM OPERATING PROCEDURE

    6.1  Overview

       The diagnostic is designed to perform functional level testing of
    the NI port.

       Essentially, the diagnostic consists of a  series  of  functional
    tests  as well as 3 hardware tests.  The hardware tests constitute a
    basic confidence test of the 3 port modules.  The  functional  tests
    load  operational  microcode  and test functional characteristics of
    the port.



    6.2  Hardware Configuration

       When the diagnostic starts up  it  assumes  that  a  NI  port  is
    located  in  RH20 slot #5.  It will attempt to select the port (this
    always succeeds in exec mode, but may  fail  in  user  mode  if  the
    system does not give the port to the diagnostic when requested).



    6.2.1  Configuration Modification

       The configuration of a NI port in RH20 slot #5 cannot be  changed
    via  program  commands.   However,  a memory location in the program
    which contains the controller number can be changed  to  indicate  a
    different  port  in the unlikely event that the NI port was actually
    in RH20 slot #7.  This location is called 'MBCN' and can be  changed
    as follows:

    What test - DDT

    Type RTN$X to continue
    DDT

    MBCN/ 56400,,0   57400,,0 <CR>
    RTN$X

    What test - 




    6.3  NI Configuration

       The diagnostic can be directed  to  print  the  configuration  of
    nodes  on  the NI bus.  This is done with the 'CONFIG' command which
    is identical to  running  TST26  'Configuration  Test'.   It  merely
    prints whatever configuration data has been accumulated so far.  For
    example:
MAINDEC-10-DFNIA-A-D                                              Page 9
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0013



    |  What test - CONFIG
    |  
    |  ***** NI Configuration *****
    |     Physical Address      Ver  ECO  Usr                    Com    DLL
    |  Bt1 Bt2 Bt3 Bt4 Bt5 Bt6   #    #   ECO    Functionality   Dev   Type
    |  -----------------------  ---  ---  ---  ----------------  ---  --------
    |  252 000 003 003 000 000  (Self)
    |  252 000 003 003 000 006   1    0     0         12000030     0  Ethernet
    |  274 033 000 000 000 001   5  101     1         10004730     0  Ethernet


       Only those nodes which broadcast a  periodic  system  ID  message
    will  be  included.   Nodes  which are turned off or are not running
    will not be seen.



    6.4  Choosing Run Time Options

       Before starting a test, the diagnostic may ask how many times  to
    execute  test  selected.   If  the  OPRSEL  switch  is  not set this
    question is not asked.  No other run  time  options  are  available,
    aside  from  program switch options which are fully described in the
    Section 7.0 'Program Options (Switches)'.



    6.5  Modes of Diagnostic Operation

       The diagnostic runs in  either  user  mode  or  exec  mode.   The
    operation  of the diagnostic is almost identical in either case with
    the exception of the handling of  console  switches,  and  speed  of
    operation.   The  diagnostic  runs  faster  in exec mode for obvious
    reasons.  Also, the PI system  is  not  used  in  user  mode.   This
    affects the ease of using breakpoints when debugging microcode.

       In  addition,  the  diagnostic  runs   with   or   without   user
    interaction.   This  is  determined  by the console switch 'OPRSEL'.
    More  details  may  be  found  in  Section  7.0   'Program   Options
    (Switches)'.



    6.6  Scope Looping

       Scope looping is not supported by the diagnostic.   However,  one
    can loop on a test, using the right hand switch 'LOOPTS'.
MAINDEC-10-DFNIA-A-D                                             Page 10
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0014


    6.7  General User Interface Philosophy

       Decimal numbers are  always  followed  by  a  point.   All  other
    numbers are octal.

       All input is preceded with a prompt.  All input  is  checked  for
    legality  and  incorrect responses are followed by a reprompt and/or
    an additional error message.  All numerical input can  be  specified
    as an octal number.  Some numerical input may be alternatively given
    as a decimal number followed by a  decimal  point.   Where  the  the
    diagnostic   allows  multiple  input  options,  a  help  message  is
    available to explain the options.   The  diagnostic  requests  three
    types of input - numerical, yes or no, and sixbit.

       Additionally, the user may obtain  a  short  description  of  the
    input  expected at any point by typing a question mark followed by a
    carriage return.  The text is printed and the question re-asked.



    6.7.1  User Interface

       The user interface to the  diagnostic  is  dialogue  through  the
    terminal.   In  exec  mode  the  console switches on the KL are used
    directly in  addition  to  software  switches.   In  user  mode  the
    software   switches   are   used   as   standard   procedure.    All
    user/diagnostic dialogue is done through the  diagnostic  subroutine
    package.



    6.8  Terminal Input

    6.8.1  General

       Terminal input is handled by the Subroutine Package.  It does not
    have  COMND  JSYS style input.  However, some control characters are
    supported.  And the diagnostic supports ?  and help  commands  where
    appropriate to facilitate input.



    6.8.2  Control-C Capability (Ctrl-C)

       Control-C is used to halt diagnostic execution.   In  exec  mode,
    control  is returned to KLDCP at the ">." prompt.  In user mode, the
    user is returned to monitor level.

       When ready to continue, the user  may  restart  or  continue  the
    diagnostic  in any manner listed previously in Section 5.0, 'Program
    Stopping Procedure'.  This would be by  saying  'CONTINUE'  in  user
    mode or 'RN' in exec mode.
MAINDEC-10-DFNIA-A-D                                             Page 11
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0015


    6.8.3  Control-O Capability (Ctrl-O)

       Control-O inhibits terminal output.  Terminal output resumes when
    the  diagnostic  prints  some  forced  output or when the user types
    another Control-O.



    6.8.4  Control-Q Capability (Ctrl-Q)

       In exec mode Control-Q is treated as an illegal character by  the
    diagnostic  and  typing  it  in response to a question results in an
    error message.

       In user mode Control-Q allows terminal output which may have been
    inhibited  by a prior Control-S.  This character may be typed at any
    time with no other effect than resuming terminal output.



    6.8.5  Control-S Capability (Ctrl-S)

       In exec mode, Control-S is treated as an illegal character by the
    diagnostic  and  typing  it  in response to a question results in an
    error message.  It may also be typed followed by a  carriage  return
    in order to obtain run-time status of the diagnostic.

       In user mode, it is used as a terminal output  control  character
    along with Control-Q, and has no other function.



    6.8.6  Control-T Capability (Ctrl-T)

       Control-T is treated as an illegal character  by  the  diagnostic
    and  typing it in response to a question results in an error message
    in exec mode.  Under TOPS-20, Control-T gives  the  current  program
    status and does not interfere with program input.



    6.8.7  Control-U Capability (Ctrl-U)

       Control-U is used to delete whatever has been  typed  so  far  in
    response  to  a question.  After typing Control-U, the desired input
    can be entered.



    6.8.8  Control-Z Capability (Ctrl-Z)

       Control-Z is used to exit from DDT, to either KLDCP in exec  mode
    or to monitor level in user mode.
MAINDEC-10-DFNIA-A-D                                             Page 12
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0016


    6.8.9  Question Mark (?)

       Question mark may be typed in  response  to  any  question.   The
    diagnostic  prints  a short help message and reprompts the user.  If
    the diagnostic is asking for a test name  or  a  debug  command,  it
    prints a list of all valid commands that may be typed.

       If a question mark is typed after a legal command,  the  expected
    format of the command is given, showing possible arguments.



    6.8.10  Altmode (ESC)

       Altmode is normally used to abort a test or a sequence  of  test.
    If  it is given in response to a question, the diagnostic aborts the
    task which is under way.  For example, in DEBUG test, if the user is
    altering  a  CRAM  location and types altmode in the middle of that,
    the diagnostic aborts the operation and returns to  'DEBUG>'  prompt
    without writing the location.



    6.9  Terminal Output

       The terminal output generated by the diagnostic consists of:


     o  Program initialization information

     o  Program questions/messages

     o  Test error messages

     o  Statistics printouts


       Much  of  this  output  can  be  affected  by  program  switches,
    specifically, NOPNT, PNTLPT, TXTINH, and INHMSG.



    6.9.1  Statistics Printouts

       Statistics are kept on NI traffic originating from or received at
    this  node.   They are not printed out by the program automatically.
    To obtain a printout, the  'OPRSEL'  switch  must  be  set  and  the
    command 'STATIS' given explicitly.

       Statistics may be useful when running a  debugger  test  such  as
    'WATCH'  over  a  long period of time.  One can obtain data from the
    statistics such as which NI path has the highest  occurrence  of  no
    responses or other failures.
MAINDEC-10-DFNIA-A-D                                             Page 13
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0017


    A sample printout follows:

    |  What test - STATIS
    |  
    |  *** STATISTICS - Packets Sent (0m 16s) ***
    |   (All numbers decimal)
    |                        Packets     Bytes     Transmit
    |     Type                Sent       Sent       Errors
    |     ----                ----       ----       ------
    |  Self-Directed DGMs     4329       470821        44 
    |  Other DGMs                5          240         0 
    |  Other Packets             0            0         0 
    |  
    |  *** STATISTICS - Packets Received (0m 16s) ***
    |   (All numbers decimal)                              Unexpected  Expected
    |                        Packets     Bytes       Rcvd      CRC       CRC
    |     Type                Rcvd       Rcvd       Errors    Errors    Errors
    |     ----                ----       ----       ------    ------    ------
    |  Self-Directed DGMs     4329       470821         3         0         0 
    |  Other DGMs                0            0         0         0         0 
    |  Other Packets             0            0         0         0         0 
MAINDEC-10-DFNIA-A-D                                             Page 14
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0018


7.0  PROGRAM OPTIONS (SWITCHES)

       Program options are controlled by switches.  Left  hand  switches
    are  predefined  but  not  all  are  used.   Most  of the right hand
    switches are defined specific to the diagnostic.



    7.1  Left Hand Switches

       In exec mode, left hand switches  are  modified  either  via  the
    front  end  console switches or by using the KLDCP command ESW.  See
    KLDCP documentation for details on  the  use  of  the  ESW  command.
    Typically,   these  switches  are  modified  by  using  the  console
    switches.

       In user mode, left hand switches are queried when the  diagnostic
    starts.   After  that,  if the OPRSEL switch is set, switches may be
    changed using the SWITCH command.  The diagnostic will ask  for  the
    switches  in the same manner as occurred at start up.  Also the name
    of the switch can be typed as a command.  This turns the  switch  on
    or off depending on its state.

       For example:

    |  What test - TXTINH
    |
    |  [TXTINH On]
    |
    |  What test - TXTINH
    |
    |  [TXTINH On]
    |
    |  What test - SWPRIN
    |
    |  Switches:  000210 000000   TXTINH OPRSEL
    |
    |  What test - TXTINH
    |
    |  [TXTINH Off]
    |
    |  What test - SWITCH
    |
    |  Print the selectable pgm switches? (Y or N) - N
    |
    |  Switches = 000010 000000 
    |
    |  10  LH Switches <# or ?> - 210
    |
    |  0  RH Switches <# or ?> - 0
    |
    |  SWITCHES = 020210 000000 
    |
    |  What test - SWPRIN
    |
    |  Switches:  000210 000000   TXTINH OPRSEL 
MAINDEC-10-DFNIA-A-D                                             Page 15
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0019






    7.1.1  Left Hand Switches (Brief Description)


      Switch       Symbol  State   Function Description
      ------       ------  -----   --------------------

    0 (400000)     ABORT      0    No function.
                              1    Abort at end of pass.

    1 (200000)     RSTART     0    No function.
                              1    Restart diagnostic.
                                   
    2 (100000)     TOTALS     0    No function.
                              1    No function.

    3 (040000)     NOPNT      0    Normal typeout.
                              1    Inhibit all printing except forced.

    4 (020000)     PNTLPT     0    Normal output to TTY.
                              1    Print on LPT (user, logical dev).

    5 (010000)     DING       0    No function.
                              1    Ring bell on error.

    6 (004000)     LOOPER     0    Normal operation.
                              1    Normal operation.

    7 (002000)     ERSTOP     0    Normal operation.
                              1    Halt on error.

    8 (001000)     PALERS     0    Print only first error in loop.
                              1    Print all errors.

    9 (000400)     RELIAB     0    No function.
                              1    Reliability mode switch.

    10 (000200)    TXTINH     0    Print full error messages.
                              1    Short error messages.

    11 (000100)    INHPAG     0    KL - allow 4096K addressing.
                              1    KL - inhibit paging.

    12 (000040)    MODDVC     0    No function.
                              1    Modify device codes.

    13 (000020)    INHCSH     0    Use cache.
                              1    Inhibit using cache on pgm start.

    14 (000010)    OPRSEL     0    Run default operations.
                              1    Operator test selections.

    15 (000004)    CHAIN      0/1  Used by "DIAMON", etc. to control
MAINDEC-10-DFNIA-A-D                                             Page 16
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0020


                                   chain operations.

    16 (000002)    Unused     0    KA10 60 Hertz power
                              1    KA10 50 Hertz power

    17 (000001)    Unused          Reserved



    7.1.2  Left Hand Switches (Detailed Description)

       The following is a detailed  description  of  each  console  data
    switch function:


    Switch 0 (ABORT)

       When this switch is set, the diagnostic returns  control  to  the
    diagnostic loader at end of pass.


    Switch 1 (RSTART)

       When this switch is set while  a  test  is  being  executed,  the
    diagnostic  aborts testing after completion of the current test, and
    restarts the diagnostic.


    Switch 2 (TOTALS)

       Setting this switch has no effect on diagnostic operation.


    Switch 3 (NOPNT)

       This switch inhibits all printout except forced.  Forced printout
    is  used  with  questions  requiring  user response.  This switch is
    useful when it is desired to force a test to  run  without  printing
    error  information.   To  suppress  the remainder of a current error
    report, type a Control-O  on  the  terminal.   This  suppresses  the
    remaining  error  information  for  the  current  error  and  allows
    printing to start again for the next error.


    Switch 4 (PNTLPT)

       When this switch is zero, all printouts from the  diagnostic  are
    printed  on  the terminal.  If set only forced printouts are printed
    on the terminal.  All data, including forced printouts,  is  printed
    on the line printer.


    Switch 5 (DING)
MAINDEC-10-DFNIA-A-D                                             Page 17
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0021


       This switch causes the terminal bell to be  rung  when  an  error
    occurs.


    Switch 6 (LOOPER) - Unused


    Switch 7 (ERSTOP)

       This switch causes the diagnostic to terminate  testing  when  an
    error  occurs.   If  the  OPRSEL  switch  is set the diagnostic will
    continue at the 'What Test -' prompt.  If the OPRSEL switch  is  not
    set  the  diagnostic  will exit and return control to the diagnostic
    loader.


    Switch 8 (PALERS)

       Normally an error message is printed only the first time an error
    occurs  if  that error is being repeated continuously.  To print all
    occurrences of every error, set this switch.


    Switch 9 (RELIAB)

       If this switch is set, each test is run 4 times before control is
    passed  to  the  next  test  selected.   If  only  one test has been
    selected, the test would be run 4 times the repeat count  given  for
    the test.


    Switch 10 (TXTINH)

       If this switch is not set, complete data  is  printed  with  each
    error  message.   If  this  switch is set, less data is printed in a
    shortened form.


    Switch 11 (INHPAG)

       This switch inhibits paging if set and allows it if not set.


    Switch 12 (MODDVC)

       If  this  switch  is  set,  DIAMON  asks  for  any  device   code
    modifications.  This is not used by the diagnostic itself.


    Switch 13 (INHCSH)

       This switch, if set, inhibits the use of cache  during  the  time
    the  diagnostic  is run.  This switch is inspected only in exec mode
    and only at diagnostic start up.  Changes of the switch  setting  do
    not affect the cache after the diagnostic has started up.
MAINDEC-10-DFNIA-A-D                                             Page 18
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0022



    Switch 14 (OPRSEL)

       If set, this switch  enables  increased  user  interaction.   The
    diagnostic  asks explicitly what test or function to do before doing
    anything.  Test selection is made in response to the question:

            What Test? -


       At least enough letters to recognize the test selection  must  be
    typed  although up to six letters are accepted.  '?' may be typed to
    get a list of the test names or commands.  'HELP' may  be  typed  to
    get a short description of each test or command.

       If this switch is not  set,  the  diagnostic  runs  all  hardware
    tests,  prints  fault isolation data (if the inhibit fault isolation
    switch is not set), then exits.


    Switch 15 (CHAIN)

       This switch is used by DIAMON in chaining operations and  is  not
    used by the diagnostic in normal operation.


    Switch 16 (50CYC) - Unused

       This switch is used on KA10's to select 50 hertz  power.   It  is
    not used by this diagnostic.


    Switch 17 - Unused

       This switch is reserved for use  by  the  diagnostic  monitor  or
    subroutine package and is not used by the diagnostic.
MAINDEC-10-DFNIA-A-D                                             Page 19
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0023


    7.2  Right Hand Switches

    7.2.1  Right Hand Switches (Brief Description)


      Switch       Symbol  State   Function Description
      ------       ------  -----   --------------------

    18 (400000)    TRACE      0    Normal operation.
                              1    Trace operation of tests.

    19 (200000)    INHFLT     0    Normal operation.
                              1    Inhibit fault isolation.

    20 (100000)    INHMSG     0    Normal operation.
                              1    Inhibit error message printout.

    21 (040000)    LOOPGM     0    Normal operation.
                              1    Loop on program.

    22 (020000)    LOOPTS     0    Normal operation.
                              1    Loop on selected test.

    23 (010000)    RUNALL     0    Normal operation.
                              1    Run all segments of each test.

    24 (004000)    DSPEAR     0    Normal operation.
                              1    Disable SPEAR error reporting.

    25 (002000)    UDEBUG     0    Normal operation.
                              1    Diagnostic debug mode.

    26 (001000)    MDEBUG     0    Normal operation.
                              1    Error message debug mode.

    27 (000400)    LDEBUG     0    Normal operation.
                              1    Inhibit loading of test microcode.

    28 (000200)    DDEBUG     0    Normal operation.
                              1    Dump port state upon error.

    29 (000100)    EDEBUG     0    Normal operation.
                              1    Print expanded error message upon error.

    30 (000040)    Unused

    31 (000020)    Unused

    32 (000010)    Unused

    33 (000004)    Unused

    34 (000002)    Unused

    35 (000001)    Unused
MAINDEC-10-DFNIA-A-D                                             Page 20
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0024


    7.2.2  Right Hand Switches (Detailed Description)


    Switch 18 (TRACE)

       This switch is used if the user wants to  follow  test  progress.
    As  each test is started, the diagnostic prints the name of the test
    and the current PC.  This is  useful  to  gain  assurance  that  the
    diagnostic  is  running  or to find out what test it died on, if the
    diagnostic fades into oblivion.

       The names of all tests selected are printed.   If  the  test  has
    been  disabled,  the  test  name  is  printed followed by the phrase
    '(Disabled)'.


    Switch 19 (INHFLT)

       If set, this switch inhibits  fault  isolation.   All  tests  are
    still run and in the same order, but the module callout in any error
    messages is ommitted.


    Switch 20 (INHMSG)

       This switch is  used  to  run  the  diagnostic  with  all  normal
    printout  except error messages.  It can be used in place of 'NOPNT'
    switch when looping on a test.


    Switch 21 (LOOPGM)

       If this switch is not set and  OPRSEL  switch  is  not  set,  the
    diagnostic  runs 5 passes of all tests.  Then the diagnostic returns
    to DIAMON or D20MON or KLDCP.

       If this  switch  is  set  and  OPRSEL  switch  is  not  set,  the
    diagnostic runs all tests continuously, pass after pass.

       If OPRSEL switch is set, the diagnostic asks 'What Test  -  '  to
    determine  what  test to run.  When done with a test, the diagnostic
    returns to this question.  The LOOPGM switch is not used.


    Switch 22 (LOOPTS)

       This switch allows a specified test to be looped on forever.   It
    is  equivalent  to  specifying '22 377777777777' to run TST22 a very
    large number of times.  This switch may be overridden by  specifying
    an explicit repeat count.

       This switch is effective only when selecting a single test.  If a
    class of tests is selected, the switch is ineffective.
MAINDEC-10-DFNIA-A-D                                             Page 21
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0025


       If this switch is not set the default repeat count when selecting
    a specific test is 1 repetition.


    Switch 23 (RUNALL)

       This switch forces every segment of a test to be run.   Normally,
    a  test  exits  after  the first error, unless looping on error.  To
    force the diagnostic to run every segment of the test regardless  of
    error, this switch may be set.

       This switch has no  effect  if  LOOPER  switch  is  set  and  the
    diagnostic is looping on an error.


    Switch 24 (DSPEAR)

       This switch enables or disables SPEAR error  reporting.   If  the
    switch  is not set, the diagnostic will make two SPEAR entries - (1)
    an entry when the diagnostic is started and (2) an entry either upon
    first error or at end of pass if no errors have occurred.

       If the switch is set, no SPEAR entries  will  be  made.   If  the
    diagnostic has already started, the second entry will not be made.


    Switch 25 (UDEBUG)

       This switch allows the diagnostic to be run in user mode  without
    a  port  for  the purposes of diagnostic development or debug or for
    the purpose of familiarization with the diagnostic without affecting
    or requiring a port.

       If this  switch  is  set,  the  diagnostic  runs  every  test  as
    demanded.   All  tests and most commands in the DEBUG test appear to
    succeed.


    Switch 26 (MDEBUG)

       This switch forces every test to fail and  prints  out  an  error
    message for each failure.  This may be used to debug error messages,
    or familiarize  a  person  with  typical  error  printouts  of  this
    diagnostic.   It  can also be used when trying to diagnose a failing
    test which passes the first few test segments - this  switch  causes
    error  messages  to  be  printed for passing portions of the test so
    that it can be seen  what  the  port  is  doing  correctly,  without
    looking through the diagnostic listing.


    Switch 27 (LDEBUG)

       The first action of any test is normally to  load  the  microcode
    required  by  the  test.  Setting this switch inhibits the automatic
    loading of microcode.  This allows test  microcode  to  be  modified
    using the DEBUG facility and the test to be rerun.
MAINDEC-10-DFNIA-A-D                                             Page 22
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0026




    Switch 28 (DDEBUG)

       This switch affects the contents of error printouts.  If not  set
    error  printouts  contain  the  usual  amount  of data.  If set, the
    diagnostic prints a complete dump of the port  (about  12  pages  of
    data)  upon  any  error  applicable error.  The types of errors with
    which this would occur are such things as port hung or status  error
    in received packet, etc.

       This switch would be used if complete data regarding the state of
    the port and microcode was desired on any error.

    Switch 29 (EDEBUG)

       This switch affects the contents of error printouts.  If not  set
    error  printouts  contain  the  usual  amount  of data.  If set, the
    diagnostic prints port number and, if user mode, date  and  time  of
    error.

    Switch 30 - Unused

    Switch 31 - Unused

    Switch 32 - Unused

    Switch 33 - Unused

    Switch 34 - Unused

    Switch 35 - Unused
MAINDEC-10-DFNIA-A-D                                             Page 23
ERRORS                                                                                                                     SEQ 0027


8.0  ERRORS

       This section describes  the  operation  of  the  diagnostic  upon
    encountering  various  types  of  errors.  There are basically three
    types:

     o  User input errors

     o  Hardware errors

     o  Unexpected errors




    8.1  User Input Errors at the Terminal

       The diagnostic requests three types of input:  numerical, yes  or
    no, and SIXBIT.  The action taken upon input error is as follows:

       When an error is  detected  on  numerical  input  the  diagnostic
    prints  an  error  message  describing  the  type of error.  Then it
    either asks the question again, or  returns  to  'What  test  -'  or
    'DEBUG>'.

       When an error is detected on a yes  or  no  input,  the  user  is
    merely reprompted, until a Y or N is typed.

       When an error is detected on SIXBIT input  an  error  message  is
    printed and the user is asked the question again.  The user can then
    ask the diagnostic for further information by  asking  for  help  or
    typing '?'.



    8.2  Error Reporting of Hardware Detected Errors

       Upon the occurrence of a hardware error a full error  description
    is  printed, depending on the setting of switches 'NOPNT', 'PNTLPT',
    'TXTINH', and 'INHMSG'.

       If the diagnostic is looping on error only the  first  occurrence
    of an error is printed.  Subsequent errors at the same place are not
    printed.  If the 'DING' switch is set, the terminal bell is  sounded
    to  indicate  that  an  error  was  detected, even though nothing is
    printed.



    8.2.1  Reporting to SPEAR

       The diagnostic makes 2 SPEAR entries.  The first is an entry when
    the  diagnostic  is  started.   This  entry contains the date, time,
    user, diagnostic name and version.  A second entry is made when  the
    first  error  occurs.   This  entry  contains  the date, time, user,
    diagnostic name and version, failing test name and test description.
MAINDEC-10-DFNIA-A-D                                             Page 24
ERRORS                                                                                                                     SEQ 0028


       If the diagnostic completes a successful pass with no errors,  it
    will  make the second entry as above, but there will be no test name
    or test description included.

       If, thereafter, an error occurs and the  diagnostic  has  already
    made  an  entry  indicating  successful  completion  of  a pass, the
    diagnostic will make one more entry, giving the error information.

       Whenever the diagnostic is restarted by an STM  or  reloaded  and
    restarted,  it will make entries into the system error file.  If the
    2 entries have already been made, restarting via a STD or CONT  will
    not result in additional entries.

       SPEAR entries can be disabled using the switch 'DSPEAR'.



    8.2.2  Error Printouts

       Errors are printed as they  occur  in  a  standard  form.   Where
    appropriate,  the  CSR register or LAR register contents is printed.
    A sample printout with TXTINH switch not set follows:

    |  +-+-+-+-+-+-+
    |  Error:  TST6-4 - NSA ROM Address Test
    |  Error PC = 430'  Switches = 000010 000000   Ucode version 0
    |  NSA not read correctly:
    |  Correct (Bytes 0-5):  252 005 252 003 000 005 
    |  Actual (Bytes 0-5):   000 000 000 000 000 000 
    |  FRU:  NIA Module
    |  -------------


       This error printout gives the following data:


     o  Test name - TST4-6 (Test #4 segment #6), name of  test  is  'NSA
        ROM Address Test'.

     o  Error PC - 430' - address which can be found in  the  diagnostic
        listing  of  the call to the scope loop routine.  Note that this
        is a relative address also.

     o  Switches - those in effect at the time of the error printout.

     o  'NSA not read correctly:' - description of the error.

     o  Results, correct and actual.

     o  Module callout - NIA module.
MAINDEC-10-DFNIA-A-D                                             Page 25
ERRORS                                                                                                                     SEQ 0029


    |  +-+-+-+-+-+-+
    |  Error:  TST10-311 - CRC Test 1
    |  Error PC = 1050'  Switches = 000010 000000   Ucode version 55
    |  Errors noted with self-directed datagrams:
    |   What             Expected   Actual
    |  -----------       --------   ------
    |  Packets Sent          200.     200.
    |    Status Errors         0.       0.
    |  Packets Rcvd          200.       0.
    |    Status Errors         0.       0.
    |    CRC Errors            0.       0.
    |    DtCmp Errors (PKTS)   0.       0.
    |    DtCmp Errors (WORDS)  0.       0.
    |  FRU:  NIA Module
    |  -------------


       This error printout gives the following data:


     o  Test name - TST10-311 (Test #10 segment #311), name of  test  is
        'CRC Test 1'.

     o  Microcode version number - 55.

     o  Error PC - 1050' -  address  of  the  call  to  the  scope  loop
        routine.

     o  Switches - those in effect at the time of the error printout.

     o  'Errors noted with self-directed datagrams:'  -  description  of
        the  error  including  packets  sent  and  receive and number of
        errors expected and actual.

     o  Module callout - the NIA Module.




    8.3  Unexpected Errors

       The diagnostic  is  written  to  recover  from  any  usual  error
    condition  and  continue  testing.   However,  there are a few halts
    coded into the diagnostic to catch a completely lost program because
    of some unexpected malfunction:

    ADDRESS        REASON
     1011    Fatal push list pointer error
     1012    Initial push list pointer error
     1013    MUUO with LUUO handler wiped out
     1014    DTE20 interrupt without doorbell
     1015    DTE20 clock interrupt without flag set
     1016    CPU initialization error
     1017    End of program error
     1020    Interrupt with LUUO handler wiped out
MAINDEC-10-DFNIA-A-D                                             Page 26
ERRORS                                                                                                                     SEQ 0030


    The diagnostic is coded with several fatal instructions which cause

                Fatal program error at address  xxxxx

    to be printed and the diagnostic to halt.   These  instructions  are
    placed  where  the  diagnostic  finds itself in a situation where it
    does not know how to proceed.   There  are  no  anticipated  program
    deficiencies that allow a fatal error to be executed.
MAINDEC-10-DFNIA-A-D                                             Page 27
PROGRAM DESCRIPTION                                                                                                        SEQ 0031


9.0  PROGRAM DESCRIPTION

       This section provides a functional overview  of  the  diagnostic,
    giving  information  concerning requirements and restrictions, fault
    detection and isolation, error handling, terminal input  and  output
    characteristics, and diagnostic applications.



    9.1  Program Overview

    9.1.1  Program Purpose

       DFNIA  is  a  functional  diagnostic  intended  to   verify   the
    functionality  of  a  NI20  port  consisting  of 3 Port modules, NIA
    module, H4000 Transceiver, and NI cables.  It  attempts  to  isolate
    faults  to  either  -  (1)  3  Port  modules, (2) NIA module + H4000
    Transceiver + cable.



    9.1.2  Testing Strategy

       The diagnostic attempts to run simpler tests first that  exercise
    a  small amount of logic.  Then more and more testing is done, until
    the tests are exercising much of the logic  of  the  port  at  once.
    First, the three port modules are tested, with basic hardware tests.
    Then basic port operations are verified.  Then datagrams of  varying
    types.



    9.2  Run-Time Dynamics

    9.2.1  Memory Allocation Requirements

       The diagnostic loads and executes in less  than  80K  of  memory.
    This  includes  the memory used by the diagnostic monitor (DIAMON or
    D20MON or MAGMON) and the subroutine package (SUBRTN  or  SUBUSR  or
    SUBKL).



    9.2.2  Operating System Interactions

    9.2.2.1  TOPS-10

       The diagnostic does not run under TOPS-10.
MAINDEC-10-DFNIA-A-D                                             Page 28
PROGRAM DESCRIPTION                                                                                                        SEQ 0032


    9.2.2.2  TOPS-20

       The diagnostic interfaces with TOPS-20 via the  DIAG  JSYS.   The
    diagnostic  requests  the  port using the DIAG JSYS.  When done, the
    diagnostic releases the device also using the DIAG JSYS.

       The diagnostic can only be run if the port is not being  used  by
    the  operating  system.   The DIAG JSYS will succeed only if this is
    so.  Hence, the user must close any NI  connections  before  running
    this diagnostic.  This is accomplished via the OPR program.



    9.2.3  User Mode Restrictions

    9.2.3.1  User Mode Privileges

       Under TOPS-20 a user must have at least MAINTENANCE privileges in
    order  to  run  the  diagnostic.   WHEEL's  and OPERATOR's also have
    sufficient privileges to run the diagnostic in USER Mode.



    9.2.3.2  User Mode Priority Interrupts

       The diagnostic is not  allowed  to  use  the  Priority  Interrupt
    System  in  user  mode.   In user mode, the diagnostic polls the CSR
    Register for interrupt conditions.



    9.3  Exec Mode Capability

       The diagnostic runs in exec mode under  KLDCP  or,  additionally,
    under  DIAMON or MAGMON.  All tests are capable of being run in exec
    mode.



    9.4  User Mode Capability

       The diagnostic runs in user mode under TOPS-20  (Release  6.1  or
    newer).   There are some restrictions imposed upon the diagnostic in
    user mode that are listed in Section 9.2.3 'User Mode Restrictions'.



    9.5  Fault Detection
MAINDEC-10-DFNIA-A-D                                             Page 29
PROGRAM DESCRIPTION                                                                                                        SEQ 0033


    9.5.1  Error Resolution

       The diagnostic isolates faults to  a  logical  functional  group,
    either the three port modules, or the NIA module + H4000 Transceiver
    + cables.



    9.5.2  Fault Detection And Isolation

       The purpose of the diagnostic is to perform a functional test  of
    the  NI20,  not  necessarily  to detect and isolate faults.  However
    this diagnostic should detect 50% of solid  faults  in  the  3  port
    modules,  and  85%  of  faults in the NIA module, and isolate 95% of
    these to the FRU.



    9.5.3  Fault Detection

       Typically, the diagnostic detects a fault, then prints it out and
    continues  testing.   The  failing module is printed with each error
    message.

       Occasionally, particularly  with  EBUS  interface  failures,  the
    diagnostic  may just hang, or the KL10 microcode may hang.  This may
    happen if the port cannot complete an  EBUS  operation  such  as  an
    examine  or  deposit  properly.  If this occurs, no error message or
    module callout is  printed.   The  solution  is  to  run  the  basic
    diagnostic,  DFPTA,  in  order  to  debug  or  verify the three port
    modules, EBUS, MPROC, and CBUS modules.



    9.6  Performance During Hardware Failures

    9.6.1  CPU/Memory Failures

       Most CPU and memory faults are fatal errors to the diagnostic and
    it does not continue after one.



    9.6.2  Power Fail/Restart

       If a power fail occurs, the diagnostic must be reloaded and rerun
    when the system is back in operation.



    9.6.3  Port Failure

       Hardware failure in the port is anticipated  and  results  in  an
    error message.
MAINDEC-10-DFNIA-A-D                                             Page 30
PROGRAM DESCRIPTION                                                                                                        SEQ 0034


    9.6.4  Unexpected Traps

       The  diagnostic  can  fail  due  to  an  unexpected  malfunction.
    Sometimes  an  error  code  is  printed,  if  the subroutine package
    intercepts the error.  Other cases may result in a  hung  diagnostic
    or  CPU  or occasionally a fatal error message.  See the Section 8.3
    'Unexpected Errors' for more details.



    9.7  Program Applications

       The diagnostic can be used for coarse determination of a fault  -
    does the port work and if not what module is broken.

       It can also be used for detailed examination of a port.



    9.7.1  Users and Uses

       The diagnostic is generally used only by Manufacturing to  assist
    module  verification  and  debug,  and  by  Customer  Services  when
    determining the FRU of a failing port.



    9.7.2  Engineering Usage

       Engineering used this diagnostic  for  microcode  debug  and  for
    prototype debug and maintenance.  Engineering may use the diagnostic
    if any ECO's are made in the future.



    9.7.3  Manufacturing Usage

       This  diagnostic  is  used  by  Manufacturing  as  part  of   the
    acceptance procedure for an NI20.



    9.7.4  Customer Services Usage

       Customer Services uses  the  diagnostic  as  part  of  acceptance
    procedure,  when  an  NI20  is  sent  to  a  customer in a drop ship
    environment.  Customer Services also uses this during CM and PM.



    9.7.5  Customer Usage

       With the exception of OEM customers, it is not  likely  that  any
    customers  will use the diagnostic.  If they have a problem with the
    port they notify Customer Services who can then run the  diagnostic.
    OEM customers, running the diagnostic themselves, would interface to
MAINDEC-10-DFNIA-A-D                                             Page 31
PROGRAM DESCRIPTION                                                                                                        SEQ 0035


    their account sales representative  if  any  difficulties  arose  or
    problems discovered.



    9.8  Test Design

       The basic design of most tests is as follows:


     o  Do something to the port.

     o  Inspect the results.

     o  If error, print an error message.

     o  If error and error looping enabled, loop on error.


       This fits into the diagnostic as described by the following steps
    done by the diagnostic:

     o  Do program initialization

     o  Select test category

     o  Run these tests

         o  Select a test

         o  Run it

         o  Select next test, exit if no more


     o  Select next test category to  test  if  OPRSEL  switch  is  set,
        otherwise exit the diagnostic.




    9.8.1  Type of Tests

       There are three types of tests:


     o  Hardware Test

     o  Program Option Selection

     o  Debugger Test


       Whenever the tests are run without manual control of  which  test
    is  selected,  only  hardware  tests  are  run.   This  is the major
    function of the diagnostic and  these  tests  comprise  95%  of  the
MAINDEC-10-DFNIA-A-D                                             Page 32
PROGRAM DESCRIPTION                                                                                                        SEQ 0036


    diagnostic.

       Program option  selection  tests  can  be  selected  when  manual
    control  of what test to run has been selected.  These are not tests
    in that they do not do anything to the hardware.  But since they are
    selected  from  a  list  of  hardware  tests, they are called tests.
    These consist of  switch  selections  or  changes,  help,  and  exit
    commands.

       The debugger test is a special test that allows one to  to  CONI,
    CONO,  DATAI,  and DATAO's to the port and in effect write one's own
    test.  The purpose of this test is for hardware debug of  the  port,
    where  one  is interested in doing things and inspecting the results
    in a less formal fashion than just running tests.  This is only  one
    test but it allows many different things to be done to the port.  It
    is intended to be used primarily in diagnostic and microcode  debug,
    but may be used later by Customer Services or Manufacturing.



    9.8.2  Test Flow

       The diagnostic runs all tests in numerical sequence, printing out
    error message and module callouts as necessary.

       The following sections describe starting and stopping tests.



    9.8.2.1  Starting the Test

       After the program switches have either  been  given  via  console
    switches or by typing them in on the terminal, the diagnostic starts
    the tests as selected by the switches or by user input.

       If test tracing is enabled, the diagnostic prints the test pc and
    test  name  at  the  beginning  of  each  test, and a phrase such as
    '(disabled)' if the test actually is not going to be run.

       A test is disabled if such has been specified  with  the  DISABLE
    test command.



    9.8.2.2  Stopping the Test

       A test sequence may  stop  either  by  terminating  normally,  by
    halting  on error (if the ERSTOP switch is set), by the user setting
    the ABORT or RSTART switches, or by typing an Altmode or C.  In user
    mode, ABORT and RSTART are ignored if set.

       The diagnostic continues at one of several  places  depending  on
    switch  settings  and  whether or not the diagnostic is being run in
    exec or user mode  and  what  loader  has  been  used  to  load  the
    diagnostic:
MAINDEC-10-DFNIA-A-D                                             Page 33
PROGRAM DESCRIPTION                                                                                                        SEQ 0037


     o  D20MON CMD -

     o  DIAMON CMD -

     o  MAGMON CMD -

     o  What Test -

     o  @ (TOPS-20 prompt)

     o  o >.  (KLDCP prompt)




    9.8.2.3  Obtaining Run Time Status (Control-T)

       In user mode the current program status is given when T is typed.
    This is not available in exec mode.



    9.8.2.4  Obtaining Run Time Status (S or Control-S)

       In exec mode, while running tests, the current test name and time
    is printed when an S <CR>, s <CR> or Control-S is typed.

       In user mode, typing an S or s produces the printout.
MAINDEC-10-DFNIA-A-D                                             Page 34
TEST DESCRIPTIONS                                                                                                          SEQ 0038


10.0  TEST DESCRIPTIONS

    10.1  Test Description Assumptions

       All test descriptions assume that no program  switches  are  set.
    The action of a test if a particular switch is set may be determined
    by reviewing the function of the switch, given in prior sections.



    10.2  Test Description Overview

       The description for 'program option selection' test  consists  of
    what each item does and a description of its use.

       The description given for a 'hardware' test consists of a  single
    line  test  description.  The diagnostic listing provides a detailed
    description at the beginning of each test.  Specific  implementation
    details  can  be  obtained from the listing or from the microcode of
    the test.

       The description for the 'debug' test gives a list of commands and
    what each does.
MAINDEC-10-DFNIA-A-D                                             Page 35
TEST DESCRIPTIONS                                                                                                          SEQ 0039


    10.3  Program Option Selections

    10.3.1  Basic Description

       This is a set of commands that can be given to facilitate running
    tests or debugging the port.



    10.3.2  Commands Available

       The commands available in regular mode are as follows, which  are
    typed in response to the prompt 'What test - ':

    NAME         DESCRIPTION
    ----         -----------

    Hardware Tests:
    --------------

    ALL n   Execute ALL tests (n times)
    PORT n  Execute Port modules tests
    NIA n   Execute NIA module tests
    LOOP n  Execute Loopback tests
    FUNCT n Execute tests verifying microcode functionality
    m n     Test m

    General Commands:
    ----------------

    HELP    Print this message
    EXIT    Return to normal test dispatching
    DDT     Enter DDT (Type RTN$X to return)
    TAKE    Take cmds from file 
    NTAKE   Take cmds from file (not echoed)
    DEBUG   Enter port debugger
    DIAMON  Enter DIAMON

    Test Control Commands:
    ---------------------

    ENABLE n  Enable execution of test n
    DISABL n  Disable execution of test n
    DISLIS    List disabled tests

    LIST n    List all tests (or just test n)

    Statistics Commands:
    -------------------

    STATIS  Print statistics
    ZSTATS  Clear statistics

    CI Configuration Command:
    ------------------------
MAINDEC-10-DFNIA-A-D                                             Page 36
TEST DESCRIPTIONS                                                                                                          SEQ 0040


    CONFIG      Print configuration

    Switches:
    --------

    SWITCH  Enter switch information
    SWPRIN  Print current switch settings

    NOPNT   Complement 'no print' switch
    PNTLPT  Complement 'print lpt' switch
    DING    Complement 'bell on error' switch
    ERSTOP  Complement 'halt on error' switch
    PALERS  Complement 'print all errors' switch
    RELIAB  Complement 'reliability mode' switch
    TXTINH  Complement 'text inhibit' switch
    OPRSEL  Complement 'operator select' switch

    TRACE   Complement 'trace test' switch
    INHFLT  Complement 'inhibit fault isolation' switch
    INHMSG  Complement 'inhibit error message' switch
    LOOPGM  Complement 'loop on pgm' switch
    LOOPTS  Complement 'loop on test' switch
    RUNALL  Complement 'run all test segments' switch
    DSPEAR  Complement 'disable SPEAR reporting' switch
    UDEBUG  Complement 'user mode debug' switch
    MDEBUG  Complement 'error message debug' switch
    LDEBUG  Complement 'load microcode debug' switch
    DDEBUG  Complement 'dump on error' switch
    EDEBUG  Complement 'expanded error msg' switch




    10.3.3  Detailed Command Description

       In more detail these commands are as follows:



    10.3.3.1  Hardware Tests

       ALL n

       This command will run all hardware  tests  the  number  of  times
    specified by the repeat count.  If no repeat count is specified, the
    diagnostic asks how many passes to run.

       PORT n

       This command  will  run  all  port  related  (EBUS,  MPROC,  CBUS
    modules)  tests  the  number of times specified by the repeat count.
    If no repeat count is specified, the diagnostic asks how many passes
    to run.
MAINDEC-10-DFNIA-A-D                                             Page 37
TEST DESCRIPTIONS                                                                                                          SEQ 0041


       NIA n

       This command will run all NIA module tests the  number  of  times
    specified by the repeat count.  If no repeat count is specified, the
    diagnostic asks how many passes to run.

       LOOP n

       This command will run all LOOPBACK  tests  the  number  of  times
    specified by the repeat count.  If no repeat count is specified, the
    diagnostic asks how many passes to run.

       FUNCT n

       This command will run all tests which verify the functionality of
    the  microcode.   They  will be run the number of times specified by
    the repeat count.  If no repeat count is specified,  the  diagnostic
    asks how many passes to run.

       m n

       This command is given to run a single test.  The test  number  is
    given  followed  by  an optional repeat count.  If a repeat count is
    not given, the test is executed only once.



    10.3.3.2  General Commands

       HELP

       This command prints a one line description for each command.

       EXIT

       This command returns control to the diagnostic loader or to KLDCP
    if no loader program was used to load the diagnostic in exec mode.

       DDT

       This command invokes DDT.  When RTN$X (POPJ  17,0)  is  executed,
    the  diagnostic  resets  the  PI  system in exec mode and returns to
    'What Test -  '  question.   DDT  can  also  be  entered  by  typing
    Control-D and when done typing RTN$X.  When invoked in this fashion,
    the diagnostic does not reset the PI system.

       TAKE file ext

       This command takes  commands  from  a  file.   The  file  may  be
    specified  as  an  argument  to  the  command.   If  no file name is
    specified, the default file name is used.  The default file name  is
    either 'DFNIA.CMD' or the last file specified.

       Any legal  command  may  be  specified  except  another  TAKE  or
    commands  which cause exit from the diagnostic such as DDT or DIAMON
    or EXIT.  DIAMON or EXIT may be included but processing of the  take
MAINDEC-10-DFNIA-A-D                                             Page 38
TEST DESCRIPTIONS                                                                                                          SEQ 0042


    file  will  terminate  with the command.  The diagnostic prints each
    command and result on the terminal as it executes each command.

       The file specified must be on the load device known to MAGMON  or
    D20MON  or DIAMON.  If not, an error message is printed and the take
    command is aborted.

       If any error occurs while processing  the  take  file,  the  take
    command  is  aborted.   Errors include any unexpected errors such as
    unrecognized command, failures to start the port,  argument  errors,
    etc.

       NTAKE file ext

       This command is identical to the TAKE  command  with  the  single
    exception that the commands executed are not echoed on the terminal.
    All output resulting from execution of the commands is echoed.

       DEBUG

       Enter port debugger.  This test allows specific operations to  be
    done   with  the  port  without  the  restrictions  of  executing  a
    particular test.

       DIAMON

       Enter DIAMON.  This  is  the  same  as  the  EXIT  command  if  a
    diagnostic  loader  is  present.   If  MAGMON  is  loaded instead of
    DIAMON, control returns to MAGMON.



    10.3.3.3  Test Control Commands

       ENABLE n,n,n,...  and DISABL n,n,n,...

       The running of a particular test can be explicitly prevented with
    the  DISABL command.  The ENABLE command allows the execution of the
    specified  tests  to  be  enabled  again.   Disabling  a  test  will
    guarantee that the test will not be run.  Enabling a test will allow
    a test to be run, but whether or not  it  is  run,  depends  on  the
    determination   made  by  the  fault  isolation  algorithm  and  the
    availability of the required port modules.

       Example:

    |  What test - ENABLE 3,4
    |  What test - DISABL 3,4,10,22


       DISLIS

       This command lists what tests have been disabled.  Example:

    |  What test - DISLIS
    |
MAINDEC-10-DFNIA-A-D                                             Page 39
TEST DESCRIPTIONS                                                                                                          SEQ 0043


    |  TST1 TST3 TST4 TST11 TST22


       LIST n

       List all tests (or just test n).  This command  prints  the  test
    description  which  is  also  printed  in each error message.  If no
    argument is given, all test descriptions are printed  (this  can  be
    aborted by typing an altmode).  If a test number such as 2 is typed,
    only the description for that test will be printed.  Example:

    |  What test - LIST 2
    |
    |  TST2 - Port Hardware Test 2
    |
    |  What test - LIST
    |
    |  TST1 - Port Hardware Test 1
    |  TST2 - Port Hardware Test 2
    |  TST3 - Port Hardware Test 3
    |  ...
        



    10.3.3.4  Statistics Commands

       STATIS

       This command prints accumulated statistics.  Statistics are  kept
    only  on  packets  sent and packets received and various information
    connected with each.  See the Section 6.9.1  'Statistics  Printouts'
    for more details.

       ZSTATS

       This   command   clears   statistics.    Statistics   are    also
    automatically cleared whenever the diagnostic is restarted via a STM
    command.



    10.3.3.5  NI Configuration Command

       CONFIG

       This command directs the diagnostic to print the configuration of
    nodes   on   the  NI  bus.   This  is  identical  to  running  TST26
    'Configuration Test'.  It merely prints whatever configuration  data
    has been accumulated so far.  For example:
MAINDEC-10-DFNIA-A-D                                             Page 40
TEST DESCRIPTIONS                                                                                                          SEQ 0044



    |  What test - CONFIG
    |  
    |  ***** NI Configuration *****
    |     Physical Address      Ver  ECO  Usr                    Com    DLL
    |  Bt1 Bt2 Bt3 Bt4 Bt5 Bt6   #    #   ECO    Functionality   Dev   Type
    |  -----------------------  ---  ---  ---  ----------------  ---  --------
    |  252 000 003 003 000 000  (Self)
    |  252 000 003 003 000 006   1    0     0         12000030     0  Ethernet
    |  274 033 000 000 000 001   5  101     1         10004730     0  Ethernet


       Only those nodes which broadcast a  periodic  system  ID  message
    will  be  included.   Nodes  which are turned off or are not running
    will not be seen.



    10.3.3.6  Switches

       SWITCH

       Enter switch information.  Switches can  be  entered  as  in  the
    following  example.   Usually, though, it is easier just to type the
    switch name to turn on or off a switch.

    |  What Test - SWITCH
    |
    |  Print the selectable pgm switches? (Y or N) - Y
    |
    |  ----Left Side Switches--------     ----Right Side Switches--------
    |
    |  SW    KL10     11    Function      SW   Value  Function
    |  --    ----    ----   --------      --   -----  --------
    |   0   400000  100000  Abort         18  400000  Program trace
    |   ...
    |
    |  Switches = 020010 004000 
    |
    |  20010  LH Switches <# or ?> - ?
    |
    |  Type  Y,N,^,CR,^Z
    |
    |  N ABORT - 
    |  N RSTART - 
    |  ...
    |
    |  4000  RH Switches <# or ?> - ?
    |
    |  Type  Y,N,^,CR,^Z
    |
    |  N TRACE - 
    |  N INHFLT - 
    |  ...
MAINDEC-10-DFNIA-A-D                                             Page 41
TEST DESCRIPTIONS                                                                                                          SEQ 0045


       SWPRIN

       Print current switch settings.  Example:
     
    |  What Test - SWPRIN
    |
    |  Switches:  020010 002000   PNTLPT OPRSEL UDEBUG 


    NOPNT    PALERS   TRACE    LOOPTS   MDEBUG
    PNTLPT   RELIAB   INHFLT   RUNALL   LDEBUG
    DING     TXTINH   INHMSG   DSPEAR   DDEBUG
    ERSTOP   OPRSEL   LOOPGM   UDEBUG   EDEBUG
                      

       The name of each of these switches can be typed.  The  result  is
    to  complement  the switch setting.  If left hand switches are typed
    in exec mode an error message is printed.
MAINDEC-10-DFNIA-A-D                                             Page 42
TEST DESCRIPTIONS                                                                                                          SEQ 0046


    10.4  Hardware Tests

       More information on each of the following hardware  tests  listed
    here can be found in the program listing.



    10.4.1  Hardware Tests - EBUS/MPROC/CBUS modules

    TST1 - Port Hardware Test 1
    TST2 - Port Hardware Test 2
    TST3 - Port Hardware Test 3



    10.4.2  Functional Tests

    10.4.2.1  Basic Operations

    TST4 - Idle Loop Test
    TST5 - Queue Handling Test
    TST6 - NSA ROM Address Test
    TST7 - NSA RAM Address Test



    10.4.2.2  CRC Tests

    TST10 - CRC Test 1
    TST11 - CRC Test 2



    10.4.2.3  Datagram Tests

    TST12 - Non-BSD Datagram Loopback Test
    TST13 - BSD Datagram Loopback Test 1
    TST14 - BSD Datagram Loopback Test 2



    10.4.2.4  Multicast Tests

    TST15 - Multicast Table Test 1
    TST16 - Multicast Table Test 2
    TST17 - Multicast Table Test 3
    TST20 - Broadcast Test 3



    10.4.2.5  PTT Tests

    TST21 - PTT Table Test 1
    TST22 - PTT Table Test 2
    TST23 - PTT Table Test 3
MAINDEC-10-DFNIA-A-D                                             Page 43
TEST DESCRIPTIONS                                                                                                          SEQ 0047


    10.4.2.6  Miscellanous Tests

    TST24 - PAD Flag Bit Test 1
    TST25 - PAD Flag Bit Test 2
    TST26 - Configuration Test
    TST27 - Statistics Test
MAINDEC-10-DFNIA-A-D                                             Page 44
TEST DESCRIPTIONS                                                                                                          SEQ 0048


    10.5  Debug Test

    10.5.1  Basic Description

       This test allows the selection of different operations  that  may
    be  done  with  the  port.   In some cases, probably rarely, a field
    engineer may wish to diagnose a port by doing particular operations.
    More  often  this  type  of  testing  may  be  useful when repairing
    individual modules if  the  technician  doing  the  repair  is  very
    familiar  with  the module and how it works.  This test provides the
    ability to perform a basic operation such as writing a  register  or
    doing  something  with  microcode and then inspecting the results to
    see what happened.

       Normally,  the  port  tests  provide  sufficient  detection   and
    isolation  of faults to fix the port.  Occasionally, a person trying
    to fix the port may encounter an unusual problem not detected by the
    diagnostic  or  having  strange  symptoms.  This test may allow some
    understanding of the problem to be gained.

       This  test  can  also  be  used  to  debug  microcode  using  the
    breakpoint  facilities.   And  it can be used to run small microcode
    routines of the user's own devising.



    10.5.2  Commands Available

       The commands available in debug mode are as  follows,  which  are
    typed in response to the prompt 'DEBUG> ':

    NAME         DESCRIPTION
    ----         -----------

    General Commands:
    ----------------

    HELP        Print this message
    EXIT        Exit DEBUG mode
    DDT         Enter DDT (Type RTN$X to return)

    SET opt arg    Set/clear/print options
    TAKE file ext  Take commands from a file
    NTAKE file ext Take commands from file (unechoed)

    Starting, Stopping, Initializing the Port:
    -----------------------------------------

    RESET       Issue EBUS Reset
    CLEAR       Issue a 'Port Clear'

    START adr   Start the port micro-sequencer
    STOP        Stop the port micro-sequencer
    CONT        Continue the port micro-sequencer
    SSTEP cnt   Single step the port micro-sequencer
    STRACE cnt  Single step and trace execution
MAINDEC-10-DFNIA-A-D                                             Page 45
TEST DESCRIPTIONS                                                                                                          SEQ 0049


    SPRINT cnt  Print single step history data
    SCLEAR      Clear single step history data
    SSINIT      Set up single step addr/data/history

    Handling Port Registers:
    -----------------------

    ECSR        Examine CSR Register
    DCSR dat    Deposit CSR Register
    ZCSR        Zero CSR Register  

    EEBUF       Examine EBUF register
    DEBUF dat   Deposit EBUF register
    ZEBUF       Zero EBUF register

    ELAR        Examine LAR register
    DRAR dat    Deposit RAR register
    ZRAR        Zero RAR register

    Handling Port CRAM Locations:
    ----------------------------

       The next few  commands  must  have  at  least  one  argument  and
    possibly  two.   Two  arguments give the range of CRAM address to be
    altered or inspected.  If only one argument is given  the  range  is
    only  one location.  If the deposit command is given, the diagnostic
    will ask what to deposit into each location.

    DCRAM adr,adr  Deposit into CRAM
    BCRAM adr,adr  Deposit into CRAM by fields
    ACRAM adr,adr  Alter CRAM
    ECRAM adr,adr  Examine CRAM
    LCRAM adr,adr  List CRAM
    ZCRAM adr,adr  Zero CRAM  

    2901 Commands:
    -------------

    E2901 reg,reg  Examine 2901 registers
    D2901 reg,dat  Deposit 2901 register
    Z2901 reg,reg  Zero 2901 registers

    Local Storage Commands:
    ----------------------

    ELOCS adr,adr  Examine local storage
    DLOCS adr,dat  Deposit local storage
    ZLOCS adr,adr  Zero local storage

    Mark Bit Commands:
    -----------------

    MARK adr,adr   Set mark bit
    RMARK adr,adr  Remove mark bit
    CMARK adr,adr  Clear all mark bits
    LMARK adr,adr  List mark bits
MAINDEC-10-DFNIA-A-D                                             Page 46
TEST DESCRIPTIONS                                                                                                          SEQ 0050



    Breakpoint Commands:
    -------------------

    BREAK adr,adr   Set breakpoint
    RBREAK adr,adr  Remove breakpoint
    CBREAK adr,adr  Clear all breakpoints
    LBREAK adr,adr  List breakpoints

    Microcode Commands:
    ------------------

    LOAD tst    Load microcode from Test 'tst' into CRAM
    LIST tst    List microcode from Test 'tst'
    FLOAD       Load microcode from file into CRAM
    FVERFY      Verify microcode loaded from file
    FLIST       List microcode in file
    FEXAM       Examine microcode in file 

    Statistics Commands:
    -------------------

    STATIS    Print statistics
    ZSTATS    Clear statistics

    Configuration Commands:
    ----------------------

    CONFIG    Print configuration

    NI Commands:
    -----------

    NI Commands:
    -----------

    PINIT       Initialize PCB and queues
    SIDLE       Start port/wait for IDLE loop
    BPACK       Build packet/put on queue
    IQUEUE      Insert packet on command queue
    PQUEUE n    Print specified queue
    PPCB        Print PCB
    WATCH       Watch port and print events
    DEPPTT adr,data   Deposit into PTT table
    DEPMUL adr,data   Deposit into Multicast table
    DEPPAK adr,data   Deposit into packet

    PLI Register Commands:
    ---------------------

    DPLI lnk,data,rep  Deposit PLI data
    EPLI lnk,rep       Examine PLI data

    Miscellaneous Commands:
    ----------------------
MAINDEC-10-DFNIA-A-D                                             Page 47
TEST DESCRIPTIONS                                                                                                          SEQ 0051


    TRANSL dat  Translate data to CSR bits
    FILLNX dat  Fill CRAM with 'J=.+1,CTL=dat'
    FILLPC dat  Fill CRAM with 'J=.,CTL=dat'
    CCODE       Print condition codes
    ESTACK      Examine 2910 stack contents
    ENEXT       Examine next
    DNEXT arg   Deposit next
    DUMP        Dump entire port status

    IPRINT      Print accumulated interrupt activity
    ICLEAR      Clear accumulated interrupt activity
    IINIT       Init interrupt system 

    Data Transfer Commands:
    ----------------------

    CCWPNT    Print CCW list
    LOGPNT    Print logout data

    Switches:
    --------

    SWITCH  Enter switch information
    SWPRIN  Print current switch settings

    NOPNT   Complement 'no print' switch
    PNTLPT  Complement 'print lpt' switch
    DING    Complement 'bell on error' switch
    ERSTOP  Complement 'halt on error' switch
    PALERS  Complement 'print all errors' switch
    RELIAB  Complement 'reliability mode' switch
    TXTINH  Complement 'text inhibit' switch
    OPRSEL  Complement 'operator select' switch

    TRACE   Complement 'trace test' switch
    INHFLT  Complement 'inhibit fault isolation' switch
    INHMSG  Complement 'inhibit error message' switch
    LOOPGM  Complement 'loop on pgm' switch
    LOOPTS  Complement 'loop on test' switch
    RUNALL  Complement 'run all test segments' switch
    DSPEAR  Complement 'disable SPEAR reporting' switch
    UDEBUG  Complement 'user mode debug' switch
    MDEBUG  Complement 'error message debug' switch
    LDEBUG  Complement 'load microcode debug' switch
    DDEBUG  Complement 'dump on error' switch
    EDEBUG  Complement 'expanded error msg' switch




    10.5.3  Detailed Command Description

       In more detail these commands are as follows:
MAINDEC-10-DFNIA-A-D                                             Page 48
TEST DESCRIPTIONS                                                                                                          SEQ 0052


    10.5.3.1  General Commands

       HELP

       This command prints a one line description similar to  the  above
    for each command.

       EXIT

       This command returns control to normal test  dispatching  at  the
    'What Test -' question.

       DDT

       This command invokes DDT.  When RTN$X (POPJ  17,0)  is  executed,
    the  diagnostic  resets  the  PI  system in exec mode and returns to
    'DEBUG>' question.  DDT can also be entered by typing Control-D  and
    when   done  typing  RTN$X.   When  invoked  in  this  fashion,  the
    diagnostic does not reset the PI system.

       SET

       This command is used to set, clear,  or  print  program  options.
    The option is specified as the first argument and the option setting
    as the second argument.  The options that may be dealt with  are  as
    follows:

     o  SET ADDR adr.

        This command sets  the  start  address  of  the  microsequencer.
        Whenever  a  START  command  or  a  SSINIT command is given, the
        default address given here is used.  A START  command  may  also
        explicitly specify the starting address.  No commands other than
        SET ADDR alter the default starting address.

        The initial default address is location  0.   To  find  out  the
        current default address, type SET ADDR <CR>.

     o  SET CSR data.

        This command sets the initial CSR  register  starting  contents.
        When a subsequent START or SSINIT command is given, this data is
        written to the  CSR  when  starting  the  microsequencer.   This
        allows  the  state  of CSR bits to be set up - such as interrupt
        enable and PI level bits.

        The initial value is 0.  When a START or single step command  is
        given  with  the  default  CSR  data  equal to 0, the diagnostic
        writes 14 to the CSR register (MPRUN, PI Level 4)  or  20014  if
        single stepping (SINCYC bit included).

        To find out the current start data, type SET CSR <CR>.

     o  SET PARITY arg.
MAINDEC-10-DFNIA-A-D                                             Page 49
TEST DESCRIPTIONS                                                                                                          SEQ 0053


        This  command  affects  the  automatic  parity  generation  when
        loading  microcode  into  the  CRAM.   If  the flag is 'YES' the
        diagnostic  computes  correct  parity  before   it   loads   any
        microcode.   If  'NO'  the  diagnostic  assumes  the  parity has
        already computed and does not alter the parity bit specified  in
        the microcode data.

        This flag only affects microcode explicitly loaded in the  DEBUG
        test.   This flag does not affect loading microcode from a file.
        When operational microcode is loaded in this fashion, parity  is
        not affected.

        The initial value of the flag is 'YES'.  To find out the current
        setting, type SET PARITY <CR>.

     o  SET EBUF arg.

        This command affects the automatic preservation of the EBUF when
        single  stepping  or  stopping the microsequencer.  If 'preserve
        EBUF' flag is 'YES' the diagnostic will  read  the  EBUF  before
        reading the LAR and then write back the data afterwards.  If the
        flag is 'NO' the contents of the EBUF will  be  destroyed  every
        time the RAR is written or the LAR read.

        The initial value of the flag is 'YES'.  To find out the current
        setting, type SET EBUF <CR>.

     o  SET LENGTH len.

        This command sets the text length  in  bytes  to  be  used  when
        generating  datagrams.  Any length up to 750 (decimal) bytes may
        be specified.

        The initial length is '100.  bytes'.  To find  out  the  current
        setting, type SET LEN <CR>.

     o  SET PAT n.

        This command specifies the data pattern to be used when building
        a  datagram  containing a text portion.  Any data pattern from 1
        to 126 (octal) may be entered.

        The initial value is '1' (data pattern zeros).  To find out  the
        current setting, type SET PAT <CR>.

     o  SET PATLIS arg,arg.

        This command prints what data patterns are  available.   One  or
        two  arguments may be given to specify a range of data patterns.
        The diagnostic prints a description for each data pattern in the
        range  specified.   If  no  arguments  are  specified,  all data
        patterns will be printed.

     o  SET FNAME name ext
MAINDEC-10-DFNIA-A-D                                             Page 50
TEST DESCRIPTIONS                                                                                                          SEQ 0054


        The diagnostic allows a microcode file to be loaded into CRAM or
        listed  on  the  terminal.   The  commands  used  do not allow a
        microcode file name to be specified.  The name of the file  used
        can be changed by this command.

        The initial file name is 'NI20.ULD'.  To find  out  the  current
        setting, type SET FNAME <CR>.

     o  SET PCB arg

        This command is used for operational microcode debug.  A flag is
        maintained  that  determines  whether  or  not the START command
        should set up a CCW list specifying a portion of the  PCB  (Port
        Control  Block).  If the flag is set, the diagnostic will set up
        the CCW list.  The microcode reads  the  data  in  the  PCB  for
        initialization purposes.

        The initial value of the flag is 'NO'.  To find out the  current
        setting, type SET PCB <CR>.

     o  SET RESPON arg

        This option specifies  whether  or  not  a  response  packet  is
        desired  on  every  command  packet  given  to  the  operational
        microcode.  If the response flag is not set  in  the  packet,  a
        response  packet will be placed on the response queue only if an
        error occurs.  If the response flag is set, a response packet is
        always built.

        The initial setting of the flag  is  'YES'.   To  find  out  the
        current setting, type SET RESPON <CR>.

     o  SET DADDR

        This option specifies  the  destination  address.   All  packets
        built in DEBUG mode will contain this destination address.

        The initial setting of the destination address is '0'.  To  find
        out the current setting, type SET DADDR <CR>.

     o  SET SADDR

        This option sets the source address.  The diagnostic  reads  the
        station  address  ROM  on  the  NIA module and saves this as the
        source address.

        Whenever the microcode is started, the diagnostic reads  the  NI
        station  address  and  replaces  whatever  has been saved as the
        source address.

        To find out the current setting, type SET SADDR <CR>.

     o  SET PTTVAL
MAINDEC-10-DFNIA-A-D                                             Page 51
TEST DESCRIPTIONS                                                                                                          SEQ 0055


        This  option  determines  the  PTT  value  to   be   used   when
        constructing a packet.

        The initial setting is '5'.  To find out  the  current  setting,
        type SET PTTVAL <CR>.

     o  SET PRINT

        This option determines the amount of the text portion  to  print
        when printing a packet.

        The initial setting of the flag is '3 words'.  To find  out  the
        current setting, type SET PRINT <CR>.

     o  SET INTERV

        This parameter determines the interval to insert packets on  the
        command  queue  when running the special debug function 'WATCH'.
        If this is set to zero, packets will be stuffed on  the  command
        queue  until there is no more room, then as packets are received
        get put on the free  queue,  more  packets  are  placed  on  the
        command queue.

        The initial setting of the interval  is  '0  milliseconds'.   To
        find out the current setting, type SET INTERV <CR>.

     o  SET SUMMAR

        This parameter determines the summary interval when running  the
        special  debug  function  'WATCH'.   Short  statistics  will  be
        printed at this interval.

        The initial setting of the interval is '30  seconds'.   To  find
        out the current setting, type SET SUMMAR <CR>.

     o  SET WHAT

        This command prints the current selection of each option.

     o  SET HELP

        This command  prints  a  help  message  describing  each  option
        available to the set command.


       TAKE file ext

       This command takes  commands  from  a  file.   The  file  may  be
    specified  as  an  argument  to  the  command.   If  no file name is
    specified, the default file name is used.  The default file name  is
    either 'DFNIA.CMD' or the last file specified.

       Any  legal  command  may  be  specified  including  another  TAKE
    command.  The presence of a TAKE or DDT or EXIT (from DFNIA) command
    in the take file will  terminate  use  of  the  current  file.   The
    diagnostic  prints  each  command  and  result on the terminal as it
MAINDEC-10-DFNIA-A-D                                             Page 52
TEST DESCRIPTIONS                                                                                                          SEQ 0056


    executes each command.

       The file specified must be on the load device known to MAGMON  or
    D20MON  or DIAMON.  If not, an error message is printed and the TAKE
    command is aborted.

       If any error occurs while processing  the  take  file,  the  TAKE
    command  is  aborted.   Errors include any unexpected errors such as
    unrecognized command, failures to start the port,  argument  errors,
    etc.

       NTAKE file ext

       This command is identical to the TAKE  command  with  the  single
    exception that the commands executed are not echoed on the terminal.
    All output resulting from execution of the commands is echoed.



    10.5.3.2  Starting, Stopping, Initializing the Port

       The START, SSTEP or STRACE commands can  be  given  at  any  time
    without  concern if the port is running or not.  The diagnostic will
    stop the port if it has to and clear any  error  condition.   If  it
    changes  the  state  of the port, the diagnostic prints a message to
    that effect.

       RESET

       Issue EBUS Reset.  This does a CONO APR,200000.  In user  mode  a
    'Port Clear' is done instead.

       CLEAR

       Issue a 'Port Clear'.  A 400000 is written to the CSR register.

       START adr

       The port is started at address specified.  The  procedure  is  as
    follows:

     o  Determine start address.  If no address is specified, the  start
        address  used  is  the  default  address  given  by the SET ADDR
        command.

     o  Determine start CSR data.  This is the data specified by  a  SET
        CSR  command.   Insert  the  necessary  bit  'MPRUN'  and ensure
        'SINCYC' bit is not set.

     o  Read the CSR register, if the port is already running  or  error
        bits are set, stop the port or clear error bits as necessary.

     o  Write the start address to the RAR
MAINDEC-10-DFNIA-A-D                                             Page 53
TEST DESCRIPTIONS                                                                                                          SEQ 0057


     o  Write CSR data to the CSR


       CONT

       This command is identical in function to the START  command  with
    the exception of the start address.  In addition, if the port is not
    already stopped, an error message is printed and the start  sequence
    aborted.  The start address is the last 'next' address obtained from
    a single step command.

       The only purpose of this command is to start up  the  port  after
    single stepping it for a while.

       STOP

       Stop the port micro-sequencer and print out the contents  of  the
    LAR.   If  the CSR is inaccessible, or if error bits CRAM PE or MBUS
    Error are set, an error message is printed.

       SSTEP n and STRACE n

       Single step the port  micro-sequencer  'n'  times.   Before  this
    command  is  done  the first time, the start data and start CSR data
    must be set up using the SSINIT command.   Thereafter,  the  address
    written to the RAR each time the port is single stepped is the 'last
    address' read from the LAR after the prior single step.

       STRACE causes the single step history data to be printed  at  the
    same  time that single steps are being done.  The data is printed in
    the same format as the SPRINT command except for the order in  which
    the single steps are printed.

       The port is stopped or  error  bits  are  cleared  from  the  CSR
    register as necessary before any single steps are done.

       If CRAM PE or MBUS Error bits become set in the CSR  register,  a
    message is printed and the single stepping is aborted.

       To abort the single step procedure at any time, type altmode.

       SPRINT n

       Print single step history data.  Data for the last  'n'  (maximum
    128)  single  steps  are  printed  in  the  following format.  If no
    argument is given, no more than 20 single steps are printed.

    |  DEBUG> SPRINT 4
    |
    |   RAR   LAR   CSR (final)  SS#
    |  0000  0100  000000 020010  12
    |  0100  0230  000000 020010  11
    |  0230  0231  000000 020010  10
    |  0231  0232  000000 020010  7
MAINDEC-10-DFNIA-A-D                                             Page 54
TEST DESCRIPTIONS                                                                                                          SEQ 0058


       SCLEAR

       Clear single step history data.

       SSINIT

       Set up single step data.  This sets the single step address to be
    the  default  address specified by the SET ADDR command.  The single
    step CSR data is set to the default data specified by  the  SET  CSR
    command.  Also, the single step history data is cleared.

       This command MUST be given in order to execute the  first  single
    step.  If not given the port will start at the last address executed
    by a single step.



    10.5.3.3  Handling port registers

       Each of the EBUF commands  can  be  given  at  any  time  without
    concern if the port is running or not.  The diagnostic will stop the
    port if it has to and clear any error condition.  If it changes  the
    state of the port, the diagnostic prints a message to that effect.

       ECSR

       Examine CSR Register.  The contents  are  printed  in  octal  and
    translated into English as well.

       DCSR dat

       Deposit CSR Register.  The data expected is up to 6 octal digits.

       ZCSR

       Zero CSR Register.  This also stops the port if it is running.

       EEBUF

       Examine EBUF register.  The data is printed in halfword format.

       The port is stopped or  error  bits  are  cleared  from  the  CSR
    register as necessary before reading the EBUF.  Then the 'Test EBUF'
    bit is set in the CSR register if it is not already set and the EBUF
    is read.

       DEBUF dat

       Deposit EBUF register.  The data  expected  is  up  to  12  octal
    digits.

       The port is stopped or  error  bits  are  cleared  from  the  CSR
    register as necessary before reading the EBUF.  Then the 'Test EBUF'
    bit is set in the CSR register if it is not already set and the EBUF
    is written.
MAINDEC-10-DFNIA-A-D                                             Page 55
TEST DESCRIPTIONS                                                                                                          SEQ 0059


       ZEBUF

       Zero EBUF register

       The port is stopped or  error  bits  are  cleared  from  the  CSR
    register as necessary before reading the EBUF.  Then the 'Test EBUF'
    bit is set in the CSR register if it is not already set and the EBUF
    is zeroed.

       ELAR

       Examine LAR register and  print  it  as  'LAR/  0000'.   This  is
    actually  a  13 bit register.  The right most bit is the bit written
    to the RAR register to specify which half of  the  CRAM  to  access.
    This bit is not printed.

       DRAR dat

       Deposit RAR register.  The data consists of a 12 bit CRAM address
    followed by one bit specifying left or right half.  Example:

    |  DEBUG> DRAR 0            ; Write location 0 (right half)
    |  DEBUG> DRAR 1            ; Write location 0 (left half)
    |  DEBUG> DRAR 10           ; Write location 4 (right half)
    |  DEBUG> DRAR 11           ; Write location 4 (left half)


       ZRAR

       Zero RAR register.



    10.5.3.4  Handling port CRAM locations

       Each of the following commands can be given at any  time  without
    concern if the port is running or not.  The diagnostic will stop the
    port if it has to and clear any error condition.  If it changes  the
    state  of  the port, the diagnostic prints a message to that effect.
    The diagnostic also ensures that 'Test EBUF' bit is not set and 'Sel
    LAR' bit is not set.

       Commands that read or write CRAM locations  are  given  up  to  2
    arguments.  The action in each case is as follows:


     o  No arguments - The CRAM addresses used are those last used.   So
        if  a zero CRAM command is given to clear locations 1001 through
        1004, a subsequent examine cram command with no arguments  would
        examine locations 1001 through 1004.

     o  One  argument  -  The  range  of  CRAM  locations  is  taken  as
        addr1,addr1.
MAINDEC-10-DFNIA-A-D                                             Page 56
TEST DESCRIPTIONS                                                                                                          SEQ 0060


     o  Two arguments  -  The  range  of  CRAM  locations  is  taken  as
        addr1,addr2.


       DCRAM adr,adr

       Deposit  into  CRAM  locations  specified  either   by   explicit
    arguments  or by default.  The format of the data is the same format
    produced as output of the MICRO2 assembler.  Example:

    |  DEBUG> DCRAM 10
    |
    |  Type xxxx,xxxx,xxxx,xxxx,xxxx
    |  0010 ::   11,22,33,44,55


       BCRAM adr,adr

       Deposit  into  CRAM  locations  specified  either   by   explicit
    arguments  or  by default.  The data is asked for each location, one
    field at a time.  The initial  data  to  be  written  to  each  CRAM
    location is zero.  Example:

    |  DEBUG> BCRAM 10
    |
    |  Type  value,value... or ^,CR,^Z,field name
    |  0010 ::
    |  J - 
    |  PAR -              Type:  value<CR> value<CR> ...
    |  OENA -               or:  value,value,...<CR>
    |  MGC -                or:  ^ to back up to the previous
    |  SORC -                       value
    |  FUNC -               or:  <CR> to leave a value unchanged
    |  DEST -               or:  field name such as MGC or FUN or
    |  CENA -                       A or M (for MGC) .. to skip to
    |  RAM -                        a particular field
    |  A -                  or:  ^Z to terminate input and store
    |  B -                          the CRAM location
    |  SK -                 or:  $ (altmode) to abort the command
    |  BUS -                        and not store anything
    |  CRY - 
    |  CTL - 
    |  TIME -
    |  SPARE - 
    |  MARK - 

        Note:  Everything can be typed on one line, such as this
               example to change A, B, and MGC fields only:

    |         DEBUG> BCRAM 10
    |
    |         Type  value,value... or ^,CR,^Z,field name
    |         0010 ::
    |         J - A,3,4,M,1234,^Z
    |
    |         DEBUG>
MAINDEC-10-DFNIA-A-D                                             Page 57
TEST DESCRIPTIONS                                                                                                          SEQ 0061




       ACRAM adr,adr

       Alter CRAM locations specified either by explicit arguments or by
    default.   The data is asked for each location, one field at a time.
    Example:

    |  DEBUG> ACRAM 10
    |
    |  Type  value,value... or ^,CR,^Z,field name
    |  0010 ::
    |  0 J - 
    |  0 PAR -              Type:  value<CR> value<CR> ...
    |  0 OENA -               or:  value,value,...<CR>
    |  33 MGC -               or:  ^ to back up to the previous
    |  0 SORC -                       value
    |  1 FUNC -               or:  <CR> to leave a value unchanged
    |  0 DEST -               or:  field name such as MGC or FUN or
    |  0 CENA -                       A or M (for MGC) .. to skip to
    |  0 RAM -                        a particular field
    |  0 A -                  or:  ^Z to terminate input and store
    |  0 B -                          the CRAM location
    |  22 SK -                or:  $ (altmode) to abort the command
    |  0 BUS -                        and not store anything
    |  1 CRY - 
    |  0 CTL - 
    |  0 TIME - 
    |  0 SPARE - 
    |  0 MARK - 

        Note:  Everything can be typed on one line, as in the
               example under 'BCRAM' command above.


       ECRAM adr,adr

       Examine CRAM locations specified either by explicit arguments  or
    by  default.   The  data  is  printed  in  MICRO2  assembler format.
    Example:

    |  DEBUG> ECRAM 10,12
    |
    |  0010 / 0000 0001 0400 0000 0400
    |  0011 / 0000 0001 1400 0000 0440
    |  0012 / 0000 0001 2400 0000 0500


       LCRAM adr,adr

       List CRAM locations specified either by explicit arguments or  by
    default.  The data is printed in bit field format.  Example:

    |  DEBUG> LCRAM 0,3
    |
    |  ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK
MAINDEC-10-DFNIA-A-D                                             Page 58
TEST DESCRIPTIONS                                                                                                          SEQ 0062


    |     0/    0  0   0    0  0   1   0   0  0   0  0  0  0   0  JZ    0  0  0 
    |     1/    0  0   0    0  0   3   0   0  0   0  0  0  0   0  JZ    0  1  0 
    |     2/    0  0   0    0  0   5   0   0  0   0  0  0  0   0  JZ    0  2  0 
    |     3/    0  0   0    0  0   7   0   0  0   0  0  0  0   0  JZ    0  3  0 


       ZCRAM adr,adr

       Zero CRAM locations specified either by explicit arguments or  by
    default.



    10.5.3.5  2901 Commands

       Each of the following commands can be given at any  time  without
    concern if the port is running or not.  The diagnostic will stop the
    port if it has to and clear any error condition.  If it changes  the
    state of the port, the diagnostic prints a message to that effect.

       These commands may be given up to 2  arguments.   The  action  in
    each case is as follows:


     o  No arguments - The 2901 registers used are those last used.   So
        if  registers  0  through  4  are examined, a subsequent examine
        command with no arguments would examine registers 0 through 4.

     o  One  argument  -  The  range  of  2901  registers  is  taken  as
        reg1,reg1.

     o  Two arguments  -  The  range  of  2901  registers  is  taken  as
        reg1,reg2


       E2901 reg,reg

       Examine the contents of the range of  2901  registers  specified.
    Microcode  is  loaded  into the port to accomplish this, but no 2901
    registers or local storage locations are affected.  And the original
    contents of the CRAM location used are restored.

       D2901 reg,data

       Deposit the data into the 2901 register specified.  Microcode  is
    loaded  into the port to accomplish this, and only the 2901 register
    specified is affected.  The original contents of the  CRAM  location
    used are restored.

       To deposit data into successive registers, additional data can be
    typed.   For example, to load registers 3,4,5,6 with 333,444,555,666
    respectively, type the following:

    |  DEBUG> D2901 3,333,444,555,666
    |
MAINDEC-10-DFNIA-A-D                                             Page 59
TEST DESCRIPTIONS                                                                                                          SEQ 0063


       Z2901 reg,reg

       Zero the range of 2901 registers specified.  Microcode is  loaded
    into the port to accomplish this.  The original contents of the CRAM
    location used are restored.



    10.5.3.6  Local Storage Commands

       Each of the following commands can be given at any  time  without
    concern if the port is running or not.  The diagnostic will stop the
    port if it has to and clear any error condition.  If it changes  the
    state of the port, the diagnostic prints a message to that effect.

       These commands may be given up to 2  arguments.   The  action  in
    each case is as follows:


     o  No arguments - The local storage addresses used are  those  last
        used.   So  if  a  zero  local storage command is given to clear
        locations 101 through 104, a subsequent  examine  local  storage
        command  with  no arguments would examine locations 1001 through
        1004.

     o  One argument - The range of local storage locations is taken  as
        addr1,addr1.

     o  Two arguments - The range of local storage locations is taken as
        addr1,addr2


       ELOCS adr,adr

       Examine  local  storage  addresses  specified  by  the  range  of
    addresses.  Microcode is loaded into the port to accomplish this and
    several 2901 registers are  destroyed  in  the  process.   No  local
    storage  locations  are  affected.  And the original contents of the
    CRAM locations used are restored.

       DLOCS adr,dat

       Deposit local storage address 'adr' with 36 bit octal data 'dat'.
    Microcode  is  loaded  into  the port to accomplish this and several
    2901 registers are destroyed  in  the  process.   No  local  storage
    locations  are  affected.   And  the  original  contents of the CRAM
    locations used are restored.

       To deposit data into successive locations, additional data can be
    typed.    For   example,  to  load  locations  103,104,105,106  with
    333,444,555,666 respectively, type the following:

    |  DEBUG> DLOCS 103,333,444,555,666
    |
MAINDEC-10-DFNIA-A-D                                             Page 60
TEST DESCRIPTIONS                                                                                                          SEQ 0064


       ZLOCS adr,adr

       Zero local storage addresses specified by the range of addresses.
    Microcode  is  loaded  into the port to accomplish this, but no 2901
    registers or local storage locations are affected.  And the original
    contents of the CRAM locations used are restored.



    10.5.3.7  Mark Bit Commands

       Each CRAM word has a mark bit that can be set or cleared.  It  is
    used  only  to  sync  a scope on.  Parity is not calculated for this
    location.

       The diagnostic does not keep track of which locations  have  mark
    bits  set.   If  it  is requested to list marked CRAM locations, the
    diagnostic just looks for locations with the mark bit set.

       Each of these commands can be given at any time  without  concern
    if the port is running or not.  The diagnostic will stop the port if
    it has to and clear any error condition.  If it changes the state of
    the port, the diagnostic prints a message to that effect.

       MARK adr1,adr2,adr3,...

       Set mark bit at locations adr1,adr2,adr3,...

       RMARK adr1,adr2,adr3,...

       Remove mark bit from locations adr1,adr2,adr3,...

       CMARK adr1,adr2

       Clear all mark bits between adr1 and adr2.  If only one  argument
    is  given  only  that one location is rewritten without the mark bit
    set.  If no arguments  are  supplied,  all  mark  bits  are  cleared
    throughout the CRAM.

       LMARK adr1,adr2

       List all locations with mark bit set between adr1 and  adr2.   If
    only one argument is given only that one location is checked.  If no
    arguments are supplied, all location with the  bit  set  are  listed
    throughout the CRAM.



    10.5.3.8  Breakpoint Commands

       A breakpoint  consists  of  a  location  with  bad  parity.   The
    diagnostic  does not keep track of these locations itself.  If it is
    requested to list breakpoints, it just looks for locations with  bad
    parity.
MAINDEC-10-DFNIA-A-D                                             Page 61
TEST DESCRIPTIONS                                                                                                          SEQ 0065


       Each of these commands can be given at any time  without  concern
    if the port is running or not.  The diagnostic will stop the port if
    it has to and clear any error condition.  If it changes the state of
    the port, the diagnostic prints a message to that effect.

       BREAK adr1,adr2,adr3,...

       Set breakpoints at locations adr1,adr2,adr3,...

       RBREAK adr1,adr2,adr3,...

       Remove breakpoints from locations adr1,adr2,adr3,...

       CBREAK adr1,adr2

       Clear all  breakpoints  between  adr1  and  adr2.   If  only  one
    argument  is  given  only  that  one location is rewritten with good
    parity.  If no arguments are supplied, all breakpoints  are  removed
    throughout the CRAM.

       LBREAK adr1,adr2

       List breakpoints between adr1 and adr2.  If only one argument  is
    given  only  that  one  location  is  checked for bad parity.  If no
    arguments are supplied, all breakpoints are  listed  throughout  the
    CRAM.



    10.5.3.9  Microcode Commands

       Each of these commands can be given at any time  without  concern
    if the port is running or not.  The diagnostic will stop the port if
    it has to and clear any error condition.  If it changes the state of
    the port, the diagnostic prints a message to that effect.

       LOAD tst

       Load microcode from Test 'tst' into CRAM and verify  the  result.
    Example:

    |  DEBUG> LOAD 3
    |
    |  [Done - Number of CRAM locations loaded/verified = 182.]


       LIST tst

       List microcode from Test 'tst'.  All locations are listed in  the
    order  that  they  would be loaded, not necessarily in order by CRAM
    address.  Example:

    |  DEBUG> LIST 3
    |
    |  ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK
    |     0/    2  0   0    0  0   0   0   0  0   0  0  1  0   0  CJPP  0  0  0 
MAINDEC-10-DFNIA-A-D                                             Page 62
TEST DESCRIPTIONS                                                                                                          SEQ 0066


    |     1/   10  1   0    0  0   0   0   0  0   0  0  0  0   0  JMAP  0  0  0 
    |     2/    4  1   0    0  0   0   0   0  0   0  0  3  0   0  CJPP  0  0  0 
    |     3/   11  0   0    0  0   0   0   0  0   0  0  0  0   0  JMAP  0  0  0 
    |     ...


       FLOAD

       Load microcode from file into a buffer and from the  buffer  into
    CRAM.   The  file used is the default file name NI20.ULD or the file
    last specified by the SET FNAME command.  DIAMON or D20MON or MAGMON
    must be loaded in order to load the microcode from the selected load
    device.  The diagnostic prints an error message if it cannot  access
    the microcode file.  This command also verifies the microcode it has
    loaded.  Example:

    |  DEBUG> FLOAD
    |  
    |  [Reading file: NI20.ULD]
    |  
    |  [3040. microwords loaded]
    |  
    |  [Loading NI20.ULD into CRAM]
    |  
    |  [3040. CRAM locations loaded/verified]>
    |  
    |  [Ucode version 55]
    |  
    |  DEBUG>


       FVERFY

       This command causes the microcode  previously  loaded  into  CRAM
    from  a  file  to  be  verified.  Up to 3 verify errors are printed.
    Example:

    |  DEBUG> FVERFY
    |  
    |  3040. CRAM locations loaded - 74. verify errors:
    |   Addr           Correct                  Actual
    |   0000   0002 0000 1631 6702 0060   0000 0000 0100 0000 0000 
    |   0001   0002 0000 7510 0002 0060   0000 0000 0300 0000 0002 
    |   0002   0007 2000 4315 6002 0060   0000 0000 0500 0000 0004 
    |  
    |  DEBUG>


       FLIST

       List microcode in file in field format.  The  file  used  is  the
    default  file  name  NI20.ULD  or the file last specified by the SET
    FNAME command.  DIAMON or D20MON or MAGMON must be loaded  in  order
    to  obtain  the  microcode  from  the  selected  load  device.   The
    diagnostic prints an error message if it cannot access the microcode
    file.  Example:
MAINDEC-10-DFNIA-A-D                                             Page 63
TEST DESCRIPTIONS                                                                                                          SEQ 0067



    |  DEBUG> FLIST
    |
    |  ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK
    |     0/    2  0   0    0  1   6   3   0  0  16 16  2  0   0  CJP   0  0  0 
    |     1/    2  1   0    0  7   5   1   0  0   0  0  2  0   0  CJP   0  0  0 
    |     2/    7  0   1    0  4   3   1   1  0  16  0  2  0   0  CJP   0  0  0 
    |     ...


       FEXAM

       List microcode in file in MICRO2 format.  The file  used  is  the
    default  file  name  NI20.ULD  or the file last specified by the SET
    FNAME command.  DIAMON or D20MON or MAGMON must be loaded  in  order
    to  obtain  the  microcode  from  the  selected  load  device.   The
    diagnostic prints an error message if it cannot access the microcode
    file.  Example:

    | DEBUG> FEXAM
    |
    |  0000 / 0001 0000 1631 6702 0060
    |  0001 / 0025 6000 4315 6542 0060
    |  0007 / 0004 4000 7510 7542 0060
    |  ...




    10.5.3.10  Statistics Commands

       STATIS

       This command prints accumulated statistics.  Statistics are  kept
    only  on  packets  sent and packets received and various information
    connected with each.  See the Section 6.9.1  'Statistics  Printouts'
    for more details.

       ZSTATS

       This   command   clears   statistics.    Statistics   are    also
    automatically cleared whenever the diagnostic is restarted via a STM
    command.



    10.5.3.11  NI Configuration Command


    |  What test - CONFIG
    |  
    |  ***** NI Configuration *****
    |     Physical Address      Ver  ECO  Usr                    Com    DLL
    |  Bt1 Bt2 Bt3 Bt4 Bt5 Bt6   #    #   ECO    Functionality   Dev   Type
    |  -----------------------  ---  ---  ---  ----------------  ---  --------
    |  252 000 003 003 000 000  (Self)
MAINDEC-10-DFNIA-A-D                                             Page 64
TEST DESCRIPTIONS                                                                                                          SEQ 0068


    |  252 000 003 003 000 006   1    0     0         12000030     0  Ethernet
    |  274 033 000 000 000 001   5  101     1         10004730     0  Ethernet


       Only those nodes which broadcast a  periodic  system  ID  message
    will  be  included.   Nodes  which are turned off or are not running
    will not be seen.



    10.5.3.12  NI Commands

       PINIT

       This command initializes the port control block and  all  of  the
    queues specified in it.

       SIDLE

       This command  sets  up  the  3  word  data  transfer  giving  the
    initialization  data  used by the microcode at start up.  It ensures
    that EPT location 34 contains a jump CCW word to the CCW in the PCB.
    Then the diagnostic starts up the port and waits up to 2 seconds for
    the microcode to enter the idle loop.  If it does not, a message  to
    that effect is printed.

       BPACK opcode

       This command builds a packet  which  can  then  be  placed  on  a
    command  queue.   A  packet  is  built  based  on opcode and program
    options.

       It  is  assumed  that  the  PCB  and  queues  have  already  been
    initialized.  The microcode need not have been started however.

       A list of opcodes may be obtained by typing BPACK ?  as follows:

    |  DEBUG> BP ?
    |  BPACK opcode (CR), where opcode:
    |     1-SNDDG     2-LDMCAT    3-LDPTT     4-RCCNT     6-WRPLI     7-RDPLI  
    |    10-RDNSA    11-WRNSA  
    |
    |  DEBUG>


       IQUEUE

       This command places a packet that has already been built  on  the
    command queue.

       PQUEUE queue1,queue2

       This command prints specified queue(s).  If only one queue number
    is  given, only that queue will be printed.  If a range of queues is
    given all of the queues specified will be printed.
MAINDEC-10-DFNIA-A-D                                             Page 65
TEST DESCRIPTIONS                                                                                                          SEQ 0069


       The queues are printed in the following format:

    |  DEBUG> PQUEUE 0,6
    |  
    |  CmdQ  (PCB   ): Flink = PCB+1   Blink = PCB+1 
    |   Queue is empty
    |  
    |  RspQ  (PCB+4 ): Flink = PCB+5   Blink = PCB+5 
    |   Queue is empty
    |  
    |  UnkFQ (PCB+10): Flink = QUNKF0  Blink = QUNKF7
    |   QUNKF0/ Flink = QUNKF1  Blink = PCB+11
    |   QUNKF1/ Flink = QUNKF2  Blink = QUNKF0
    |   QUNKF2/ Flink = QUNKF3  Blink = QUNKF1
    |   QUNKF3/ Flink = QUNKF4  Blink = QUNKF2
    |   QUNKF4/ Flink = QUNKF5  Blink = QUNKF3
    |   QUNKF5/ Flink = QUNKF6  Blink = QUNKF4
    |   QUNKF6/ Flink = QUNKF7  Blink = QUNKF5
    |   QUNKF7/ Flink = PCB+11  Blink = QUNKF6
    |  
    |  PttFQ (PTTFQ ): Flink = PTTF0   Blink = PTTF7 
    |   PTTF0 / Flink = PTTF1   Blink = PTTFQ+1
    |   PTTF1 / Flink = PTTF2   Blink = PTTF0 
    |   PTTF2 / Flink = PTTF3   Blink = PTTF1 
    |   PTTF3 / Flink = PTTF4   Blink = PTTF2 
    |   PTTF4 / Flink = PTTF5   Blink = PTTF3 
    |   PTTF5 / Flink = PTTF6   Blink = PTTF4 
    |   PTTF6 / Flink = PTTF7   Blink = PTTF5 
    |   PTTF7 / Flink = PTTFQ+1  Blink = PTTF6 
    |  
    |  ** Protocol Type Table **
    |    N  Ena   Type   Address
    |    -  ---   ----   -------
    |    0   Y       0   PTTFQ+1
    |    0   Y       1   PTTFQ+1
    |    0   Y       2   PTTFQ+1
    |    0   Y       3   PTTFQ+1
    |    0   Y       4   PTTFQ+1
    |    0   Y       5   PTTFQ+1
    |    0   Y       6   PTTFQ+1
    |    0   Y       7   PTTFQ+1
    |    0   Y      10   PTTFQ+1
    |    0   Y      11   PTTFQ+1
    |    0   Y      12   PTTFQ+1
    |    0   Y      13   PTTFQ+1
    |    0   Y      14   PTTFQ+1
    |    0   Y      15   PTTFQ+1
    |    0   Y      16   PTTFQ+1
    |    0   Y      17   PTTFQ+1
    |  
    |  ** Multi-Cast Table **
    |    N Ena  Bt5 BT4 BT3 BT2 BT1 BT0
    |    - ---  --- --- --- --- --- ---
    |    0  Y   000 000 000 000 000 003 
    |    0  Y   000 000 000 000 000 005 
    |    0  Y   000 000 000 000 000 007 
MAINDEC-10-DFNIA-A-D                                             Page 66
TEST DESCRIPTIONS                                                                                                          SEQ 0070


    |    0  Y   000 000 000 000 000 011 
    |    0  Y   000 000 000 000 000 013 
    |    0  Y   000 000 000 000 000 015 
    |    0  Y   000 000 000 000 000 017 
    |    0  Y   000 000 000 000 000 021 
    |    0  Y   000 000 000 000 000 023 
    |    0  Y   000 000 000 000 000 025 
    |    0  Y   000 000 000 000 000 027 
    |    0  Y   000 000 000 000 000 031 
    |    0  Y   000 000 000 000 000 033 
    |    0  Y   000 000 000 000 000 035 
    |    0  Y   000 000 000 000 000 037 
    |    0  Y   000 000 000 000 000 041 


       PPCB

       This command prints the current state of the PCB, as follows:

    |  DEBUG> PPCB
    |  
    |  PCB:
    |   PCB Base Addr:  71000
    |   PI Level:           0
    |   Int Vector:         0
    |   CCW:    000000 000000 
    |   ---------------
    |   PTT Address:   102350
    |   MCT Address:   105550
    |   ---------------
    |   Logout 0:  000000 000000 
    |   Logout 1:  000000 000000 
    |   Logout 2:  000000 000000 
    |   Logout 3:  000000 000000 
    |   ---------------
    |   # Queue  PCB Addr  Interlock  Flink  Blink
    |   - -----  --------  ---------  -----  -----
    |   0 CmdQ    PCB+ 0       -1     PCB+1   PCB+1 
    |   1 RspQ    PCB+ 4       -1     PCB+5   PCB+5 
    |   2 UnkFQ   PCB+10       -1     QUNKF0  QUNKF7


       WATCH

       This command allows one to watch the port and print  events  that
    occur.   If a command packet has previously been built, one may also
    place the packet again and again on the command queue.

       The diagnostic checks the CSR register periodically and prints it
    out whenever it changes.  It also looks for entries appearing on the
    response queue - if any are found they are removed from the response
    queue,  printed  out,  and  placed  back  on  the  free  queue.  The
    diagnostic also sets 'CmdQ Avail' bit in the CSR register  if  there
    is a command queue entry which has not yet been processed.
MAINDEC-10-DFNIA-A-D                                             Page 67
TEST DESCRIPTIONS                                                                                                          SEQ 0071


       While watching the port, 10 characters may  be  typed  to  obtain
    information or to perform some action:

     o  S - Insert another packet on the command queue (same  packet  as
        the last one built).

     o  O - Insert packets on the command queue (same packet as the last
        one  built).   Insert them at the interval specified by the 'SET
        INTERV' command or 10 seconds  if  the  interval  has  not  been
        explicitly defined.

     o  L - Loopback any packets received by this port.

     o  0 - Turn off echoing of packets sent and received.

     o  1 - Turn on echoing of packets sent and received.

     o  2 - Print CSR register.

     o  3 - Print PCB contents.

     o  4 - Print statistics

     o  $ (altmode) - Exit (back to DEBUG> prompt).

     o  ? - Print commands available


       DEPPAK offset,data

       Data can be initialized in a packet by using the BPACK command or
    by  going  into  DDT  and  physically  inserting the desired data at
    location PACKET.  To make this easier,  the  DEPPAK  command  allows
    data  to  be inserted in PACKET by giving the offset into PACKET and
    the data, without going into DDT.  This is then useful if a  command
    file  is  created  with a string of DEPPAK commands.  Then a TAKE of
    the command file is done to load the packet data.



    10.5.3.13  PLI Register Commands

       DPLI lnk,data,rep

       This command allows one to write 8 bits  of  data  over  the  PLI
    interface.   The  link  control  bits  specifying  the  register  is
    specified, as well as the 8 bit data.  Also, a repeat count  can  be
    given to repeat the deposit more than once.

       This can be used to write data into the transmit  buffer,  as  in
    the following example:

    |  DEBUG> DPLI ?
    |  DPLI cntrl,data,repcount (CR) where cntrl is:
    |  0-RdReg   4-RRecBf  10-ClrRBf  14-RcXmBf
    |  1-EnaLnk  5-WtAdrs  11-DsaLnk  15-RUBLst
MAINDEC-10-DFNIA-A-D                                             Page 68
TEST DESCRIPTIONS                                                                                                          SEQ 0072


    |  2-WFBLst  6-XmtAct  12-WRBfAd  16-RRcAtn
    |  3-WXmtBf  7-RdRSta  13-RdXSta  17-WtReg


       EPLI lnk,rep

       This command reads 8 bit data over the PLI interface.   The  link
    control  bits  are  specified  to indicate what register to read.  A
    repeat count is given to allow reading the register more than  once,
    which is useful when reading one of the transmit or receive buffers.

       An example follows:

    |  DEBUG> EPLI ?
    |  EPLI lnkctrl,repcount (CR) where lnkctrl is:
    |  0-RdReg   4-RRecBf  10-ClrRBf  14-RcXmBf
    |  1-EnaLnk  5-WtAdrs  11-DsaLnk  15-RUBLst
    |  2-WFBLst  6-XmtAct  12-WRBfAd  16-RRcAtn
    |  3-WXmtBf  7-RdRSta  13-RdXSta  17-WtReg
    |  
    |  DEBUG> EPLI 4,10              ; Read first 10 locations of receive buffer
    |  
    |  4-RRecBf:
    |   0/ 000 
    |   1/ 000 
    |   2/ 000 
    |   3/ 000 
    |   4/ 000 
    |   5/ 000 
    |   6/ 000 
    |   7/ 000 




    10.5.3.14  Miscellaneous Commands

       TRANSL dat

       This is used if a description of the CSR register is not at hand.
    The data (36 bits) is translated into English.  Example:

    |  DEBUG> TRANSL 3000
    |
    |  CSR: 000000 003000 FQErr  MVErr  


       FILLNX dat

       This command fills all of CRAM with special data 'J=.+1,CTL=dat'.
    The  argument specified is the control field for the microsequencer.
    This  may  be  useful  when   testing   out   dispatching   of   the
    microsequencer.
MAINDEC-10-DFNIA-A-D                                             Page 69
TEST DESCRIPTIONS                                                                                                          SEQ 0073


       If the port is running or halted with  an  error  condition,  the
    diagnostic  stops  the  port  and clears any error condition.  If it
    changes the state of the port, the diagnostic prints  a  message  to
    that effect.

       Example:  Fill CRAM with JMAP (unconditional jump) instructions:

    |  DEBUG> FILLNX 2
    |
    |  [Number of CRAM locations loaded = 4096.]
    |
    |  Cram now contains:
    |
    |  0000/ JMAP J=1
    |  0001/ JMAP J=2
    |  ...
    |  7776/ JMAP J=7777
    |  7777/ JMAP J=0


       FILLPC dat

       This command fills all of CRAM with special  data  'J=.,CTL=dat'.
    The  argument specified is the control field for the microsequencer.
    This  may  be  useful  when   testing   out   dispatching   of   the
    microsequencer.

       If the port is running or halted with  an  error  condition,  the
    diagnostic  stops  the  port  and clears any error condition.  If it
    changes the state of the port, the diagnostic prints  a  message  to
    that effect.

       Example:  Fill CRAM with JMAP (unconditional jump) instructions:

    |  DEBUG> FILLPC 2
    |
    |  [Number of CRAM locations loaded = 4096.]
    |
    |  Cram now contains:
    |
    |  0000/ JMAP J=0
    |  0001/ JMAP J=1
    |  ...
    |  7776/ JMAP J=7776
    |  7777/ JMAP J=7777


       CCODE

       This command determines the setting of each  condition  code  and
    prints  it  out.  It loads special microcode to do this but restores
    the original contents afterwards.

       Some condition codes cannot be seen in their proper  state  since
    this  command  may change them.  These are 'CSR Changed', 'MB Sign',
    and 'F Eql Zero', but they are printed anyway.  For example:
MAINDEC-10-DFNIA-A-D                                             Page 70
TEST DESCRIPTIONS                                                                                                          SEQ 0074



    |  What test - CCODE
    |
    |  CC On:   CBAV FEQ0 CSRC MVRP PLPE CBLW
    |  CC Off:  GCSR EBPE RATN EOFF XATN ERQS IACT MSGN CBPE CHER


       ESTACK

       This  command  determines  the  contents  of  the  internal  2910
    microsequencer  stack.   It  loads  special microcode to do this but
    restores the original contents afterwards.  For example:

    |  What test - ESTACK
    |
    |  2910 Stack:
    |   Location   Contents (addr)
    |     Top        3042
    |      -1         733
    |      -2         140
    |      -3        5732
    |      -4          10


       ENEXT

       ENEXT does an  'examine  next'  function.   Whatever  examine  or
    deposit operation was previously done, the next location or register
    is examined.  The commands which set up for  an  examine  next  are:
    ECRAM,  DCRAM,  BCRAM,  ACRAM,  ZCRAM,  LCRAM,  E2901, D2901, Z2901,
    ELOCS, DLOCS, ZLOCS, EPLI, and DPLI.

       DNEXT arg

       DNEXT does an  'deposit  next'  function.   Whatever  examine  or
    deposit  operation  was previously done, the data given is deposited
    into the next location or register.  No argument is expected on  the
    BCRAM  or  ACRAM  type  of  deposit,  the data for each field of the
    microword will be queried.  The commands which set up for an examine
    next  are:   ECRAM, DCRAM, BCRAM, ACRAM, ZCRAM, LCRAM, E2901, D2901,
    Z2901, ELOCS, DLOCS, ZLOCS, EPLI, and DPLI.

       DUMP

       This command prints the complete state of the  port.   It  prints
    the following data:

     o  CSR data

     o  EBUF contents

     o  LAR contents

     o  2901 register contents
MAINDEC-10-DFNIA-A-D                                             Page 71
TEST DESCRIPTIONS                                                                                                          SEQ 0075


     o  2910 stack contents

     o  PCB

     o  Queues

     o  Local storage contents

     o  Transmit and receive buffers contents

     o  Channel logout data


       IPRINT

       This command prints accumulated interrupt activity.  The data for
    up  to 20 interrupts are held in an interrupt data table.  This data
    can be printed with this command.

       Printing can be aborted by typing an  altmode  or  suppressed  by
    typing a Control-O.

       ICLEAR

       This  command  clears   the   accumulated   interrupt   activity.
    Subsequent interrupts are numbered 1,2,...

       IINIT

       In the event the PI system  got  shut  off  in  exec  mode,  this
    command  may  be given to initialize the interrupt system and set up
    40+2n addresses.  This may be useful in  the  event  the  diagnostic
    shuts off the PI system because of too many interrupts - this occurs
    after 8192 interrupts.



    10.5.3.15  Data Transfer Commands

       CCWPNT

       This command prints the CCW list last generated which is kept  in
    PCB+27.  Example:

    |  DEBUG> CCWPNT
    |
    |  CCW (PCB+27):  000000 000000   OP=Halt WC=0. Adr=00000000 


       LOGPNT

       This command prints the logout data last stored  by  the  channel
    upon  receipt  of  the 'store' command issued by the microprocessor.
    Example:

    |  DEBUG> LOGPNT
MAINDEC-10-DFNIA-A-D                                             Page 72
TEST DESCRIPTIONS                                                                                                          SEQ 0076


    |
    |  Channel-5 Logout Data
    |  Loc   Contents
    |   1    ICW: 000000 000000 
    |   2    SW1:   CLP points to: 0
    |   3    Last Updated CCW: 000000 000000    WC=0.  ADR=0




    10.5.3.16  Switches

       SWITCH

       Enter switch information.  Switches can  be  entered  as  in  the
    following  example.   Usually, though, it is easier just to type the
    switch name to turn on or off a switch.

    |  DEBUG> SWITCH
    |
    |  Print the selectable pgm switches? (Y or N) - Y
    |
    |  ----Left Side Switches--------   ----Right Side Switches--------
    |
    |  SW    KL10     11    Function     SW   Value  Function
    |  --    ----    ----   --------     --   -----  --------
    |   0   400000  100000  Abort        18  400000  Program trace
    |   ...
    |
    |  Switches = 020010 004000 
    |
    |  20010  LH Switches <# or ?> - ?
    |
    |  Type  Y,N,^,CR,^Z
    |
    |  N ABORT - 
    |  N RSTART - 
    |  ...
    |
    |  4000  RH Switches <# or ?> - ?
    |
    |  Type  Y,N,^,CR,^Z
    |
    |  N TRACE - 
    |  ...


       SWPRIN

       Print current switch settings.  Example:

    |  DEBUG> SWPRIN
    |
    |  Switches:  020010 002000   PNTLPT OPRSEL UDEBUG 
MAINDEC-10-DFNIA-A-D                                             Page 73
TEST DESCRIPTIONS                                                                                                          SEQ 0077


    NOPNT    PALERS   TRACE    LOOPTS   MDEBUG
    PNTLPT   RELIAB   INHFLT   RUNALL   LDEBUG
    DING     TXTINH   INHMSG   DSPEAR   DDEBUG
    ERSTOP   OPRSEL   LOOPGM   UDEBUG   EDEBUG

       The name of each of these switches can be typed.  The  result  is
    to  complement  the switch setting.  If left hand switches are typed
    in exec mode an error message is printed.
MAINDEC-10-DFNIA-A-D                                             Page 74
PROGRAM RUN TIME                                                                                                           SEQ 0078


11.0  PROGRAM RUN TIME

       The run time varies according to the sequence  of  tests  chosen,
    the  test options selected, and the program switch options selected.
    In default mode the run time is approximately 4  minutes,  excluding
    any time taken to print error messages.

       Running all of the tests with 'RELIAB'  switch  set  extends  the
    time by a factor of 4 - to 16 minutes.
MAINDEC-10-DFNIA-A-D                                             Page 75
APPENDIX                                                                                                                   SEQ 0079


12.0  APPENDIX

    12.1  Special Configurations

    12.1.1  DMT Configuration

       There are several features of the diagnostic which enable  it  to
    be used for DMT.  The DMT configuration is as follows:

     o  One KL10

     o  Four ports and NIA module sets, all connected to an 'NI'  via  a
        loopback connector so that all are independent

     o  TOPS-20 Release 5.0 or later (modified so that the  system  does
        not know about RH's 1,3,5,7)

     o  DFNIA being run under PTYCON (4 copies)




    12.1.2  Creating the Modified Diagnostics

       The diagnostic must be modified to create 4 different copies each
    for a different RH20 slot.  The changes are:

     o  DIAG 'Request device' and 'Release device'  are  replaced  by  a
        SKIPA (to noop the action)

     o  Port number (MBC number) is changed to  reflect  the  particular
        port

     o  Switches are set to 10,,140 which are 'OPRSEL',  'DDUMP'  (which
        can  cause  a  complete  dump  of  the port to be printed (where
        appropriate)), and 'EDEBUG' (which prints port number, date, and
        time with each error message)

     o  The  diagnostics  are   renamed   to   DFNIA1.EXE,   DFNIA3.EXE,
        DFNIA5.EXE, and DFNIA7.EXE to reflect the port number


       To create the 4 copies, the following steps are done:  Note  that
    the  diagnostic  is  modified  by  the  EXEN$G (which eliminates the
    DIAG's) and the P7$G ...  (which changes the port number).

            @RUN D20MON
            
            * D20MON [DDQDH] - DECSYSTEM20 DIAGNOSTIC MONITOR - VER 0.3 *
            
            D20MON CMD - DFNIA
            
            DFNIA NI Port Functional Diagnostic
            VERSION 1.1, SV=0.15, TOPS-20, KL10, CPU#=2263
            
            TTY SWITCH CONTROL ? - 0,S, Y OR N <CR> - ^D
MAINDEC-10-DFNIA-A-D                                             Page 76
APPENDIX                                                                                                                   SEQ 0080


            DDT
            EXEN$G
            DDT
            P7$G
            DDT
            ^Z
            @CSAVE DFNIA7.EXE
             DFNIA7.EXE.1 Saved
            @DDT
            DDT
            P5$G
            DDT
            ^Z
            @CSAVE DFNIA5.EXE
             DFNIA5.EXE.1 Saved
            @DDT
            DDT
            P3$G
            DDT
            ^Z
            @CSAVE DFNIA5.EXE
             DFNIA3.EXE.1 Saved
            @DDT
            DDT
            P1$G
            DDT
            ^Z
            @CSAVE DFNIA5.EXE
             DFNIA1.EXE.1 Saved




    12.1.3  Modifying the System

       To run  a  modified  non-DIAG  diagnostic,  the  system  must  be
    modified  so  that it does not know about the channel with which the
    diagnostic is to be run.  This  is  done  by  going  into  MDDT  and
    modifying the channel table (CHNTAB) as follows:

            @ENABLE               ; must have privileges
            $SDDT                 ; DDT from anyplace will do
            DDT

            JSYS 777$X            ; to get into MDDT
            MDDT

            CHNTAB+5/ address 0   ; replace whatever is there by a zero
            MRETN$G<>             ; get out of MDDT
            ^Z
MAINDEC-10-DFNIA-A-D                                             Page 77
APPENDIX                                                                                                                   SEQ 0081


    12.1.4  Other configurations

       This has been described particular to DMT of the NI20, but  there
    may  be  other  applications that may need to do the above, possibly
    only 2 copies.  One configuration which is  possible  is  running  a
    copy  of  DFNIA  which uses DIAG's and one which doesn't.  To create
    the one without DIAG's, the prior steps are done.  To create the one
    with DIAG's, instead of doing an EXEN$G, an EXE$G must be done.
------------------------------------------------------------------------
                                                                                                                           SEQ 0082
VERSION:	MAINDEC-10-DFNIA-A	Version 0.2

AUTHOR:		Richard Stockdale

DATE:		February 1984

REASON:		Updates to reflect microcode changes, particularly
		as regards performance counters.

------------------------------------------------------------------------

VERSION:	MAINDEC-10-DFNIA-A	Version 0.1

AUTHOR:		Richard Stockdale

DATE:		March 1983

REASON:		Original release.

------------------------------------------------------------------------
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 1             
                                                                                                                           SEQ 0083




















				   DOCUMENT
				**************
				  DFNIA  LST
				**************

















		    COPYRIGHT 1984
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 2             
                                                                                                                           SEQ 0084

				 TABLE OF CONTENTS
				*******************


	1	

	757	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979

	792	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979

	998	ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979

	1036	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979

	3	Externs / Entrys

	90	Initialization

	264	Test/Command Selection

	987	Test Dispatching

	1314	Port Debugger

	7187	Program Utility Routines

	7650	Statistics Routines

	7906	Microcode Handling Routines

	8638	NI Initialization Routines

	9218	Packet Handling Routines

	10338	Queue Print Routines

	11500	Port Control Block and Data Areas

	11903	SPEAR Reporting

	12090	Miscellaneous Test Variables

	1	Test Module DFNIA2.MAC

	38	Port Modules

	1806	Miscellaneous Routines
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 3             
                                                                                                                           SEQ 0085

				 TABLE OF CONTENTS
				*******************


	1	Test Module DFNIA3.MAC

	40	Microcode Functional Tests

	385	NSA Tests

	744	CRC Tests

	1277	Datagram Loopback Tests

	2257	Multicast Address Tests

	3298	Protocol Type Tests

	4077	Miscellaneous Tests

	4758	Miscellaneous Routines

	1	Port Controller Utility Package

	59	Port Register Read/Write Routines

	390	Port Specific Utility Routines

	799	PI System Routines

	1203	Channel Handling Routines

	1572	User Mode Support Routines

	2011	Miscellaneous Routines

	1	UTILITY Routines Module

	62	Printout/Typin Routines

	470	Clock Handling Routines

	743	TOPS10/20 Related Routines

	822	File Handling Routines

	965	Data Pattern Generator/Compare Routines
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 4             
                                                                                                                           SEQ 0086

				 TABLE OF CONTENTS
				*******************


	1112	Data Patterns

	1428	Switch Handling Routines

	1950	Miscellaneous Routines

	2672	Scope Looping And Error Reporting Routine
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 5             
                                                                                                                           SEQ 0087
		*****************************************************************
	1	DFNIA TITLE FILE
		*****************************************************************

		20		Copyright (C) 1983
				DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
				
				This software is furnished under a license  for  use  only
				on a single computer system and  may  be  copied only with
				the inclusion of the of the above copyright  notice.  This
				software, or any other copies thereof, may not be provided
				or otherwise made available to any other person except for
				use  on such system and to one who agrees to these license
				terms. Title to and ownership of the software shall at all
				times remain in DEC.
				
				The information in this  document  is  subject  to  change
				without notice and should not be construed as a commitment
				by Digital Equipment Corporation.
				
				DEC assumes no responsibility for the use or reliability
				of its software on equipment which is not supplied by DEC.
			
				Author:		Dick Stockdale
				Maintainer:	36-Bit Diagnostic Engineering

		44	 Program Parameters

		59	 Assembly Parameters

		90	 Channel Logout Status Bits

		106	 Right Hand Switches

		123	 OP Code definitions (for operational microcode)

		150	 Macro Definitions

		154	 Text macros

		181	 ASCII text macro

		187	 RPUT/RGET - Multiple put/get

		225	 Test Dispatch Table Definitions

		237	 Port CONI/CONO CSR Bit Assignments

		273	 OPDEF/UUO Definitions
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 6             
                                                                                                                           SEQ 0088
		301	 Bit Definitions For "SCOPE" UUO Handler - Error Message Printer

		313	 Microword Field Definitions

		713	 Microword Macros (Note: If ADDR not specified, 'ADDR'+1 is used).

		*****************************************************************
	757	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979
		*****************************************************************

		762	DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
			LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
			AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS

		*****************************************************************
	792	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979
		*****************************************************************

		795	SPECIAL SUBPROGRAM LINKAGES

		806	SPECIAL SUBROUTINE FATAL HALTS
			USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE

		*****************************************************************
	998	ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
		*****************************************************************

		*****************************************************************
	1036	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
		*****************************************************************

		*****************************************************************
	3	Externs / Entrys
		*****************************************************************

		*****************************************************************
	90	Initialization
		*****************************************************************
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 7             
                                                                                                                           SEQ 0089
		*****************************************************************
	264	Test/Command Selection
		*****************************************************************

		267	 DISPAT - Routine to dispatch to proper test as typed by the operator
				   in response to the 'WHAT TEST' prompt.

		489	 DISLIS - List of all valid test names that can be typed

		547	 DISGO - Test dispatch addresses

		603	 ALL    Execute all tests
			 PORT   Execute Port modules related tests
			 NIA    Execute NIA module related tests
			 LOOP   Execute Loopback tests
			 FUNCT  Execute Functional tests

		628	 TSTLIS - List test description for either single test or range of tests.

		693	 TSTDIA - Return to DIAMON

		704	 TSTDDT - Enter DDT

		718	 TSTHLT - Program halts - CONTINUE will start it back up.

		733	 TSTZER - Clear statistics

		744	 TSTCON - Print configuration

		754	 TSTHLP - Help for 'WHAT TEST' question.

		826	 TSTDSA - Disable a test.
			 TSTENA - Enable a test.

		869	 TSTDSL - List disabled tests

		896	 TSTPRI - Print statistics

		906	 TSTSWI/TSTSWP - Input switches / Print switch selections

		923	 TSTSSW - Switch complement commands

		935	 TSTTAK - Take commands from a file
			 TSTTAN - Take commands from a file without echoing results
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 8             
                                                                                                                           SEQ 0090
		*****************************************************************
	987	Test Dispatching
		*****************************************************************

		990	 TSTSPC - Run only one test

		1016	 RANGEN - Random number generator

		1071	 TSTDIS - Dispatch to the tests

		*****************************************************************
	1314	Port Debugger
		*****************************************************************

		1317	 TSTDEB - Console command utility for the port.

		1625	 .DBCMD - List of acceptable commands

		1783	 .DBDIS - List of dispatch addresses

		1945	 DHELP - Print DEBUG> help message

		2128	 DSET - Set/clear/print options

		2197	 DSETAD - Set start address for START/SSTEP/CONT commands

		2222	 DSETCS - Set start CSR data for START/CONT commands

		2242	 DSETPR - Set/clear automatic parity generation for load cram command

		2265	 DSETEB - Set/clear preserve EBUF for single stepping

		2289	 DSETPC - Set/clear PCB CCW list made up for START command

		2312	 DSETFN - Set default microcode file name

		2343	 DSETPA - Set data pattern to insert in buffer

		2385	 DSETPL - List data patterns

		2430	 DSETRE - Set/clr forced response

		2456	 DSETFO - Set format (COMPAT or HIDEN)

		2483	 DSETBS - Set BSD stype datagram

		2507	 DSETPD - Set pad flag

		2530	 DSETLN - Set length of text portion of packet
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 9             
                                                                                                                           SEQ 0091
		2554	 DSETDA - Set destination address

		2641	 DSETSA - Set self address

		2668	 DSETPV - Set protocol type value

		2687	 DSETPT - Set length of text portion to print

		2712	 DSETIN - Set interval (milliseconds)

		2731	 DSETSU - Set summary interval (seconds)

		2751	 DSETWH - Print all selected options

		2780	 DSETHE - Set help message

		2819	 Program Flags

		2856	 DECSR - Examine CSR register

		2870	 DDCSR - Deposit CSR register

		2885	 DZCSR - Zero CSR register

		2897	 DRESET - Issue an EBUS Reset

		2907	 DCLEAR - Issue a 'Port Clear'

		2918	 DSINIT - Set up start addr/data/history prior to single step command

		2935	 DSTART - Start the port

		2984	 DSTOP - Stop the port

		3014	 DSSTEP - Single step the port
			 DTRACE - Single step the port and trace progress

		3114	 DSSPNT - Print single step history

		3138	 DSSCLR - Clear single step history data

		3159	 PNTHST - Print a single step history entry

		3182	 SAVHST - Save single step history data

		3207	 DCONT - Continue the port

		3234	 DEEBUF - Examine EBUF register
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 10            
                                                                                                                           SEQ 0092
		3256	 DDEBUF - Deposit EBUF register
			 DZEBUF - Zero EBUF register

		3283	 DELAR - Examine LAR register

		3304	 DDRAR - Deposit RAR register

		3322	 DZRAR - Zero RAR register

		3335	 DECRAM - Examine CRAM locations specified by "PARG1" and "PARG2".

		3343	 DDCRAM - Change CRAM locations.

		3351	 DBCRAM - Change CRAM locations by field

		3359	 DACRAM - Alter CRAM locations.

		3367	 DZCRAM -- Zero CRAM addresses specified.

		3375	 DLCRAM -- List CRAM addresses specified.

		3964	 DEALU - Examine 2901 registers

		4066	 DDALU - Deposit register 

		4143	 DZALU - Zero 2901 registers

		4261	 DELOCS - Examine local storage 

		4364	 DDLOCS - Deposit local storage 

		4436	 DZLOCS - Zero local storage 

		4553	 DMARK - Set mark bit in CRAM locations

		4596	 DRMARK - Remove mark bit in CRAM locations

		4639	 DCMARK - Clear all mark bits

		4712	 DLMARK - List locations with mark bit set

		4798	 DDPLI - Deposit data to PLI

		4896	 DEPLI - Examine PLI registers

		5040	 DETBUF - Read transmit buffer

		5054	 DERBUF - Read receive buffer
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 11            
                                                                                                                           SEQ 0093
		5067	 DDUMP - Dump port state

		5175	 RDBUFT - Read transmit buffer (80 bytes only)

		5206	 RDBUFR - Read transmit buffers

		5248	 PLOG - Obtain EPT logout data

		5406	 DENEXT - Examine next

		5479	 DDNEXT - Deposit next

		5559	 DDPPTT - Deposit into PTT table

		5594	 DDPMUL - Deposit into Multicast table

		5629	 DDPPAK - Deposit into packet

		5664	 DESTAK - examine 2910 stack

		5718	 DBREAK - Set breakpoint

		5769	 DRBRK - Remove breakpoint

		5808	 DCBRK - Clear all breakpoints 

		5876	 DLBRK - List breakpoints

		5965	 DLOAD - Load microcode into CRAM from a test.

		5996	 DLIST - List microcode from test

		6021	 DFLOAD - Load microcode from file into CRAM

		6064	 DFVERF - Verify microcode from file versus CRAM

		6087	 DFLIST - List microcode in file

		6122	 DFEXAM - Examine microcode in file

		6158	 DTRANS - Translate CSR bits to English

		6173	 DCCODE - Print condition codes

		6270	 DFILLN - Fill CRAM with special data (J=PC+1,OPCode)

		6298	 DFILLP - Fill CRAM with special data (J=PC,OPCode)

		6323	 DCWPNT - Print CCW list
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 12            
                                                                                                                           SEQ 0094
		6335	 DLGPNT - Print logout data

		6347	 DSWIT - Switch complement commands

		6361	 IPRINT - Print interrupt history

		6419	 IINIT - Initialize interrupt system

		6431	 DPINIT - Initialize PCB and queues

		6442	 DSIDLE - Start port and wait for IDLE loop

		6457	 DBPACK - Build packet

		6528	 DIQUEU - Insert a packet on a command queue

		6555	 DPPCB - Print PCB

		6566	 DPQUEU - Print specified queue

		6616	 DWATCH - Watch port and print events and loop back packets

		7017	 SANCHK - Sanity check of the free queue

		7048	 CONVRR - Convert physical address to virtual

		7071	 PNTRSP - Print a response queue entry

		7107	 DCONF - Determine and print NI configuration

		7116	 SETENA - Ensure the port is in the enabled state

		7163	 SETDSA - Disable the port

		*****************************************************************
	7187	Program Utility Routines
		*****************************************************************

		7190	 TRACE - Program Trace Routine

		7230	 TSTEND - Do end of test processing

		7238	 TSTPNT - Print test name/number

		7261	 PNTCRM - Print CRAM word

		7346	 PNTWD - Print a CRAM word (xxxx xxxx xxxx xxxx xxxx)

		7372	 CALPAR - Calculate parity for a CRAM location
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 13            
                                                                                                                           SEQ 0095
		7423	 CSRPNT - Print CSR register as 'CSR: xxxxxx,,xxxxxx' followed by
			          English translation.

		7444	 CSRENG - Print CSR data in English

		7478	 CSRENB - CSR bits

		7525	 SAVCRM - Save specified CRAM locations in a buffer

		7545	 RESCRM - Restore CRAM locations

		7571	 CONPNT - Print configuration data

		7613	 SAVCON - Accumulate configuration data

		*****************************************************************
	7650	Statistics Routines
		*****************************************************************

		7653	 SUPDAT - Update statistics for datagrams sent

		7698	 RUPDAT - Update statistics for datagrams received

		7786	 SREPOR - Report statistics

		7866	 SZERO - Clear statistics

		7876	 Statistics data areas

		*****************************************************************
	7906	Microcode Handling Routines
		*****************************************************************

		7929	 TFLOAD - Load operational microcode for a test

		8006	 FLOADB - Load operational microcode into buffer

		8098	 FLOADC - Load microcode buffer contents into the port

		8181	 FVERFC - Verify port microcode against buffer contents

		8273	 FUERR -  Print verify error data

		8314	 ZCOUNT - Zero counters data (local storage locations 1400-1777)

		8366	 MLOADN - Load microcode and verify it (do not print errors)
			 MLOADY - Load microcode and verify it (print errors)

		8514	 MVPNT - Print verify error data
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 14            
                                                                                                                           SEQ 0096
		8565	 MLIST - List microcode of a test

		8603	 TLOAD - Load microcode/verify it for a test

		*****************************************************************
	8638	NI Initialization Routines
		*****************************************************************

		8641	 TPCB - Set up initial PCB

		9162	 TIDLE - Start the port and wait for IDLE bit to set in CSR

		9194	 RDADDR - Read NI physical address register (ROM)

		*****************************************************************
	9218	Packet Handling Routines
		*****************************************************************

		9272	 BPACK - Build a packet

		9334	 BPAK1 - Build packet for DGSNT command

		9391	 BPAK4 - Build packet for RCCNT command

		9407	 BPAK6 - Build packet for WRPLI command

		9447	 BPAK7 - Build packet for RDPLI command

		9473	 BPAK11 - Build packet for WRNSA command

		9534	 ITEXT - get text length + text

		9586	 ICRC - Calculate CRC

		9734	 CRCCAL - Calculate CRC (cumulative) for 8 bits

		9757	 CRCFIX - Adjust properly

		9777	 RWAIT - Wait for a response (by CSR bit 'RspQAvail' bit being set.

		9799	 CHKINT - Check/set up interlock for queue

		9869	 CONVIR - Convert physical address to virtual

		9907	 INSQUE - Insert a packet into a queue

		10010	 GETQUE - Remove a queue entry from the beginning of a queue

		10070	 PUTQUE - Insert an entry onto the specified queue
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 15            
                                                                                                                           SEQ 0097
		10145	 CHKRSP - Check if a response queue entry

		10212	 CHKRQV - Check for response queue available

		10228	 PTCHKP - Check type of packet and for matching PTT value

		10271	 CHKQUE - Determine which queue to insert entry back on

		10325	 SHUTRQ - Turn off response queue available

		*****************************************************************
	10338	Queue Print Routines
		*****************************************************************

		10341	 PQUEUE - Print a set of queue entries

		10464	 PPAKC - Print a command queue entry

		10507	 PPAKR - Print a response queue entry

		10523	 PPAKF - Print a free queue entry

		10545	 PACK1 - Print a packet - SNDDG command / DGSNT response

		10610	 PACK2 - Print a packet - LDMCAT command / MCATLD response

		10618	 PACK3 - Print a packet - LDPTT command / PTTLD response

		10625	 PACK4 - Print a packet - RCCNT command / CNTRC response

		10775	 PACK5 - Print a packet - DGRCV response

		10804	 PACK6 - Print a packet - WRPLI command / PLIWR response

		10818	 PACK7 - Print a packet - RDPLI command / PLIRD response

		10833	 PACK10 - Print a packet - RDNSA command / NSARD response

		10867	 PACK11 - Print a packet - WRNSA command / NSAWR response

		10891	 PACKG - Print a general type packet (unrecognized)

		10911	 OPCPNT - Print opcode of command packet

		10965	 DECOPC - Decode op code

		11006	 PHEAD - Print header info of a packet

		11033	 PADDR - Print 6 byte source/destination address
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 16            
                                                                                                                           SEQ 0098
		11053	 PSTATS - Print status field

		11118	 PFLAGS - Print flags field (AC1 contains status byte (right justified))

		11172	 PTEXT - Print text data in a datagram

		11229	 PBSD - Print BSD segment

		11266	 LINKP - Print FLINK/BLINK data in symbolic format

		11278	 LINKV - Print FLINK/BLINK data in symbolic format

		11423	 PPCB - Print current data in the PCB

		*****************************************************************
	11500	Port Control Block and Data Areas
		*****************************************************************

		11503	 IPCB - PCB initial data

		11538	 IPTAB - PTABLE initial data

		11560	 IMTAB - MTABLE initial data

		11597	 PCB - Port Control Block

		11646	 Command/Unknown protocol queues

		11702	 PTABLE - Protocol type free queues

		11864	 MTABLE - Table of multi-cast addresses

		*****************************************************************
	11903	SPEAR Reporting
		*****************************************************************

		11906	 SPREP1 - Print initial SPEAR report 'diagnostic started'

		11959	 SPREP2 - Print error or successful completion SPEAR report

		12076	 GETPPN - Find out PPN number
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 17            
                                                                                                                           SEQ 0099
		*****************************************************************
	12090	Miscellaneous Test Variables
		*****************************************************************

		12128	 Special code to test SPEAR entries

		12171	 Special code to produce an EXE version

		*****************************************************************
	1	Test Module DFNIA2.MAC
		*****************************************************************

		*****************************************************************
	38	Port Modules
		*****************************************************************

		41	 TEST 1 - Port Hardware Test 1

		443	 TEST 2 - Port Hardware Test 2

		1358	 TEST 3 - Port Hardware Test 3

		*****************************************************************
	1806	Miscellaneous Routines
		*****************************************************************

		1809	 MWAIT - Routine to wait for test completion and determine test results

		1856	 MSTART - Start the port at location 5777

		1871	 MPRINT - Print test completion data for a test

		*****************************************************************
	1	Test Module DFNIA3.MAC
		*****************************************************************

		*****************************************************************
	40	Microcode Functional Tests
		*****************************************************************

		43	 TEST 4 - Idle Loop Test

		175	 TEST 5 - Queue Handling Test
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 18            
                                                                                                                           SEQ 0100
		*****************************************************************
	385	NSA Tests
		*****************************************************************

		388	 TEST 6 - NSA ROM Address Test

		565	 TEST 7 - NSA RAM Address Test

		*****************************************************************
	744	CRC Tests
		*****************************************************************

		747	 TEST 10 - CRC Test 1

		1000	 TEST 11 - CRC Test 2

		*****************************************************************
	1277	Datagram Loopback Tests
		*****************************************************************

		1280	 TEST 12 - Non-BSD Datagram Loopback Test

		1622	 CRCINI - Special routine to clear a CRC table used by TST12...

		1638	 TEST 13 - BSD Datagram Loopback Test 1

		1948	 TEST 14 - BSD Datagram Loopback Test 2

		*****************************************************************
	2257	Multicast Address Tests
		*****************************************************************

		2260	 TEST 15 - Multicast Table Test 1

		2512	 TEST 16 - Multicast Table Test 2

		2778	 TEST 17 - Multicast Table Test 3

		3032	 TEST 20 - Broadcast Test
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 19            
                                                                                                                           SEQ 0101
		*****************************************************************
	3298	Protocol Type Tests
		*****************************************************************

		3301	 TEST 21 - PTT Table Test 1

		3569	 TEST 22 - PTT Table Test 2

		3824	 TEST 23 - PTT Table Test 3

		*****************************************************************
	4077	Miscellaneous Tests
		*****************************************************************

		4079	*******************************************************************
			 TEST 24 - PAD Flag Bit Test 1

		4327	*******************************************************************
			 TEST 25 - PAD Flag Bit Test 2

		4567	 TEST 26 - Configuration Test

		4595	 TEST 27 - Statistics Test

		*****************************************************************
	4758	Miscellaneous Routines
		*****************************************************************

		4761	 MPACK - Build a packet based on parameters in AC1

		4780	 MPACKN - Build a packet based on parameters in AC1

		4799	 MCOMP - Do data compare of a packet received

		4849	 MCOMP2 - Compare RSPONS against contents of PACKET

		4879	 MCHECK - Check results

		4922	 SAVPK1 - Save packet data (status error packet)
			 SAVPK2 - Save packet data (data error packet)

		4970	 PKPNT - Print special saved packet data

		4989	 LODERR - Print ucode load error

		5014	 CHKDEB - Check for debug mode (transfer entry from cmd to rsp queue)

		5053	 PIDLE - Start the port and wait for IDLE bit to set in CSR
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 20            
                                                                                                                           SEQ 0102
		5087	 QCHECK - Check for received type of free queue

		5104	 LOADPM - Load PTT table and MCAT tables and H4000 mode (via port commands)

		*****************************************************************
	1	Port Controller Utility Package
		*****************************************************************

		*****************************************************************
	59	Port Register Read/Write Routines
		*****************************************************************

		62	 Notes On I/O Routine Design

		111	 Port Register Load Routines

		123	 LDEBUF - Load EBUF

		140	 LDCSR - Load CSR (This is simply a CONO).

		154	 LDRAR - Load RAR

		180	 LDCRAM - Load CRAM

		201	 Port Register Read Routines

		218	 RDEBUF - Read EBUF

		234	 RDCSR - Read CSR

		258	 RDLAR - Read LAR

		281	 RDCRAM - Read CRAM

		300	 .CONI - Do a simple CONI (no error checking)

		319	 .CONO - Do a simple CONO

		340	 .DATAI - Do a simple DATAI (no error checking)

		359	 .DATAO - Do a simple DATAO

		379	 ERESET - Issue an EBUS reset
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 21            
                                                                                                                           SEQ 0103
		*****************************************************************
	390	Port Specific Utility Routines
		*****************************************************************

		393	 ISTOP - Stop IPA either by a port clear or by clearing the CSR register

		440	 IPACLR - Issue a port clear

		451	 SETEBU - Check that 'Diag Test EBUF' bit is set in CSR and set if not.

		473	 SETLAR - Check that 'Diag Sel LAR' bit is set in CSR and set if not.

		494	 CLREBU - Check that 'Diag Test EBUF' is not set in CSR and clear if is.

		515	 CHKCSR - Check if error bits are set in the CSR register

		544	 IPASRT - Start the port at the address given in 'SADDR' and with
			          initial parameters given in 'SDATA'.

		626	 IPASTP - Stop the port

		692	 IPASST - Single step the port at the address given in 'SNEXT' and
			          with initial parameters given in 'SDATA'.

		*****************************************************************
	799	PI System Routines
		*****************************************************************

		802	 INITPI - Initialize and Turn On PI System

		843	 .PIOFF - Detach port from PI system 

		859	 .PION - Attach port to PI system (Channel 4)

		877	 PISYOF - Turn PI system off

		886	 PISYON - Turn PI system on

		894	 SETVEC - Set up interrupt vectors for an port under test

		918	 SET2N - Set up 40 + 2N locations with interrupt dispatch instruction

		940	 VIINT - Vectored interrupt (Port)

		1007	 NVIINx - Non-Vectored interrupt (Port)

		1156	 .INPNT - Print special interrupt data
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 22            
                                                                                                                           SEQ 0104
		*****************************************************************
	1203	Channel Handling Routines
		*****************************************************************

		1206	 Routines To Interface With A Channel

		1255	 CHINIT - Channel Initialization Routine

		1407	 GETLOG - Snapshot The Channel Logout Area

		1444	 CCWPNT - Prints CCW word currently in PCB+32.

		1473	 LOGPNT - Channel Logout Printer

		1549	 DIAGER - Report Monitor Call Error In User Mode

		*****************************************************************
	1572	User Mode Support Routines
		*****************************************************************

		1575	 DSETUP - Setup Routine For Diagnostic Function

		1662	 CPUTST - Determine Which Of 2 CPU's To Run On

		1705	 DEVREL - User Mode Release Routine

		1757	 DEVREQ - User Mode Request Routine

		1817	 ENDIAG - Enable the NI/CI port

		1835	 DGEPNT - Decode and print DIAG error

		1916	 LOCPHY - Lock part of the diagnostic

		1948	 USRION/USRIOF - Turn User I/O Privileges On/Off

		1990	 ENABLE - Enable Capabilities of This Process

		*****************************************************************
	2011	Miscellaneous Routines
		*****************************************************************

		2014	 FFF - Routine To Handle Fatals
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 23            
                                                                                                                           SEQ 0105
		*****************************************************************
	1	UTILITY Routines Module
		*****************************************************************

		*****************************************************************
	62	Printout/Typin Routines
		*****************************************************************

		65	 CONVSX - Convert sixbit to octal

		108	 ALTCHH - Handle altmode intercept

		133	 CLRBUF - Clear input buffer

		150	 TTYYES - Answer yes or no question

		180	 PSDN - Prints signed decimal numbers

		205	 .PNTOC - Print n digit octal number with leading zeros suppressed

		252	 .PNTDC - Print n digit decimal number with leading zeros suppressed

		299	 .PNTDL - Print decimal number left justified leading zeros suppressed

		346	 .PNTDP - Print n digit decimal number with leading zeros suppressed

		393	 PPDEC - Print decimal number in a field of size x.

		432	 PPDECF - Force print decimal number in a field of size x.

		*****************************************************************
	470	Clock Handling Routines
		*****************************************************************

		473	 STCLOK - Initialize program runtime clock

		515	 MONTIM - Read program runtime from monitor

		549	 PTIME - Print time of day

		567	 RUNTME - Calculate and print program runtime

		675	 PSTAMP - Check for an 'S' typed.

		711	 .DELAY - Delay a specified amount of time (in milliseconds)
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 24            
                                                                                                                           SEQ 0106
		*****************************************************************
	743	TOPS10/20 Related Routines
		*****************************************************************

		746	 .RESET - Subroutine to issue a RESET JSYS/UUO

		765	 .CLOSE - Subroutine to close opened files

		793	 .EXIT - Subroutine to exit job in user mode

		*****************************************************************
	822	File Handling Routines
		*****************************************************************

		825	 CHRIN - Routine to read an ASCII character from the selected file.

		836	 CHRINS - Routine to read an ASCII character from the selected file.

		862	 FGETW - Get microword entry from file

		910	 FGETA - Obtain microcode load address 'ADDR:' from file

		937	 FGETD - Obtain microcode data entry from file (4 digits).

		*****************************************************************
	965	Data Pattern Generator/Compare Routines
		*****************************************************************

		968	 BUFGEN - Generate the specified data pattern in the data buffer.
			 BUFCOM - Compare the data buffer with expected data

		1070	 DATMES - A data comparison error has been found.  Report the error,
			 printing a maximum of three lines of errors.

		*****************************************************************
	1112	Data Patterns
		*****************************************************************

		1115	 Data Patterns

		1336	 PATPNT - Translate pattern number to description
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 25            
                                                                                                                           SEQ 0107
		*****************************************************************
	1428	Switch Handling Routines
		*****************************************************************

		1431	 .SWCHP - Print switch settings in English

		1499	 SWITT - Get value of switches

		1512	 .ISWT - Complete switch handling

		1609	 .SLEFT - Input left hand switches

		1674	 .SRIGT - Enter right hand switches

		1846	 SWCHPT - Prints current state of switches

		1858	 SWCOM - Switch complement routine

		*****************************************************************
	1950	Miscellaneous Routines
		*****************************************************************

		1953	 PARSER - Additional CPU parity error service

		2001	 .COMM - Match a command entered against a command table.

		2052	 .COMM2 - Compare command typed to table to see if valid

		2088	 .SARG - Obtain SIXBIT argument

		2176	 .OARG - Obtain octal argument

		2267	 DECYN - Decode an argument which should be NO or YES

		2295	 .DARG - Obtain octal/decimal argument

		2389	 CHKARG - Check for argument when there shouldn't be any

		2436	 LASARG - Check for last argument when there shouldn't be any more

		2479	 FIOFF - Routine to turn off the 'file input' switch

		2497	 FINCMD - Input a sixbit command from a file

		2547	 FSARG - Input a sixbit argument from a file

		2597	 FOARG - Input a octal argument from a file

		2661	 FEOL - Skip characters until end of line is reached
DFNIA  LST                                                              DECDOC VER  00.25   24-SEP-84 20:13:07   PAGE 26            
                                                                                                                           SEQ 0108
		*****************************************************************
	2672	Scope Looping And Error Reporting Routine
		*****************************************************************

		2675	 SCOPE1 - Error reporter and scope loop controller
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 1
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0109

     1						SUBTTL	DFNIA TITLE FILE
     2
     3						SALL
     4
     5						UNIVERSAL DFNIA
     6						SEARCH	MONSYM
     7
     8						EXTERN	START,STARTA,PGMNAM,SCOPE1
     9						EXTERN	PPDEC,PPDECF,ALTCHH,.PNTOC,.PNTDC,.PNTDP,.PNTDL,.DELAY
    10
    11						.REQUIRE DFNIA1
    12						.REQUIRE DFNIA2
    13						.REQUIRE DFNIA3
    14						.REQUIRE DFNIAI
    15						.REQUIRE DFNIAU
    16
    17			000000			MCNVER==0
    18			000002			DECVER==2
    19
    20					;*	Copyright (C) 1983
    21					;*	DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
    22					;*	
    23					;*	This software is furnished under a license  for  use  only
    24					;*	on a single computer system and  may  be  copied only with
    25					;*	the inclusion of the of the above copyright  notice.  This
    26					;*	software, or any other copies thereof, may not be provided
    27					;*	or otherwise made available to any other person except for
    28					;*	use  on such system and to one who agrees to these license
    29					;*	terms. Title to and ownership of the software shall at all
    30					;*	times remain in DEC.
    31					;*	
    32					;*	The information in this  document  is  subject  to  change
    33					;*	without notice and should not be construed as a commitment
    34					;*	by Digital Equipment Corporation.
    35					;*	
    36					;*	DEC assumes no responsibility for the use or reliability
    37					;*	of its software on equipment which is not supplied by DEC.
    38					;*
    39					;*	Author:		Dick Stockdale
    40					;*	Maintainer:	36-Bit Diagnostic Engineering
    41
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 2
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0110

    42
    43					;#********************************************************************
    44					;* Program Parameters
    45					;#********************************************************************
    46
    47					; AC Assignments.
    48
    49			000011			OP=11				; op code
    50			000012			PK=12				; packet address
    51			000013			Q=13				; queue number
    52			000014			PAT=14				; data pattern in use
    53			000015			ERFLG=15			; error flag (gets cleared by SCOPER)
    54			000016			MBCN=16				; channel 54000,,0 to 57400,,0
    55			000017			P=17				; stack pointer
    56
    57
    58					;#********************************************************************
    59					;* Assembly Parameters
    60					;#********************************************************************
    61
    62			000005			ITERAT==5			; default to 5 passes
    63			000001			KL10==1				; assemble for KL10
    64			000001			EXCASB==1			; assemble for exec mode
    65			000001			USRASB==1			; assemble for user mode
    66			000001			MEMMAP==1			; allow memory to be mapped
    67
    68			000001			$LPAPER==1			; don't list literals
    69
    70			030000			SADR1=BEGIN
    71			030000			SADR2=BEGIN
    72			030000			SADR3=BEGIN
    73			030007			SADR4=SRTDDT
    74			000000*			SADR5=START			; ^C restart
    75			030007			SADR6=SRTDDT
    76		254200	000000*			SADR7=HALT START
    77		254200	000000*			SADR8=HALT START
    78		254200	000000*			SADR9=HALT START
    79		254200	000000*			SADR10=HALT START
    80		254200	000000*			SADR11=HALT START
    81
    82		711523	655207			PAREA1==711523,,655207		; random number base
    83			000000			PAREA2==0
    84		444656	514100			PAREA3==SIXBIT/DFNIA/
    85		605664	000000			PAREA4==SIXBIT/PNT/
    86			000000			PAREA5==0
    87			000000			PAREA6==0
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 3
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0111

    88
    89					;#************************************************************
    90					;* Channel Logout Status Bits
    91					;#************************************************************
    92
    93		400000	000000			LOGO==1B0			; channel log out bit
    94		200000	000000			MPER==1B1			; memory parity error
    95		100000	000000			ADRPE==1B2			; set when no address parity error
    96		040000	000000			NOTWC0==1B3			; not word count zero
    97		020000	000000			NEXM==1B4			; non-existant memory
    98		000400	000000			LAXER==1B9			; last xfer error
    99		000200	000000			IPAER==1B10			; IPA20 error
   100		000100	000000			LGWC==1B11			; long word count
   101		000040	000000			SHWC==1B12			; short word count
   102		000020	000000			OVN==1B13			; overrrun
   103
   104
   105					;#********************************************************************
   106					;* Right Hand Switches
   107					;#********************************************************************
   108
   109			400000			TRACET==1B18			; program test # trace feature
   110			200000			INHFLT==1B19			; inhibit fault isolation
   111			100000			INHMSG==1B20			; inhibit error message printout
   112			040000			LOOPGM==1B21			; loop on program
   113			020000			LOOPTS==1B22			; loop on test
   114			010000			RUNALL==1B23			; run all segments of a test	
   115			004000			DSPEAR==1B24			; disable SPEAR switch
   116			002000			DEBUG1==1B25			; debug mode (debug without an IPA)
   117			001000			DEBUG2==1B26			; debug mode (print error messages)
   118			000400			DEBUG3==1B27			; debug mode (don't load test ucode)
   119			000200			DEBUG4==1B28			; debug mode (dump on error)
   120			000040			DEBUG6==1B30			; debug mode (expanded error message)
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 4
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0112

   121
   122					;#********************************************************************
   123					;* OP Code definitions (for operational microcode)
   124					;#********************************************************************
   125
   126					; Op code sent
   127
   128			000001			SNDDG==1
   129			000002			LDMCAT==2
   130			000003			LDPTT==3
   131			000004			RCCNT==4
   132			000006			WRPLI==6
   133			000007			RDPLI==7
   134			000010			RDNSA==10
   135			000011			WRNSA==11
   136
   137					; Op code received
   138
   139			000001			DGSNT==SNDDG
   140			000005			DGRCV==5
   141			000002			MCATLD==LDMCAT
   142			000003			PTTLD==LDPTT
   143			000004			CNTRC==RCCNT
   144			000006			PLIWR==WRPLI
   145			000007			PLIRD==RDPLI
   146			000010			NSARD==RDNSA
   147			000011			NSAWR==WRNSA
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 5
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0113

   148
   149					;#*********************************************************************
   150					;* Macro Definitions
   151					;#*********************************************************************
   152
   153					;#********************************************************************
   154					;* Text macros
   155					;#********************************************************************
   156
   157						DEFINE	TMSG(TEXT),<PNTMSG	[ASCIZ ^TEXT^]>
   158
   159						DEFINE	TMSGC(TEXT),<PNTMSG	[ASCIZ ^
   160					TEXT^]>
   161
   162						DEFINE	TMSGD(TEXT),<PNTMSG	[ASCIZ ^TEXT
   163					^]>
   164
   165						DEFINE	TMSGCD(TEXT),<PNTMSG	[ASCIZ ^
   166					TEXT
   167					^]>
   168						DEFINE	FMSG(TEXT),<PNTMSF	[ASCIZ ^TEXT^]>
   169
   170						DEFINE	FMSGC(TEXT),<PNTMSF	[ASCIZ ^
   171					TEXT^]>
   172
   173						DEFINE	FMSGD(TEXT),<PNTMSF	[ASCIZ ^TEXT
   174					^]>
   175
   176						DEFINE	FMSGCD(TEXT),<PNTMSF	[ASCIZ ^
   177					TEXT
   178					^]>
   179
   180					;#********************************************************************
   181					;* ASCII text macro
   182					;#********************************************************************
   183
   184						DEFINE	TASCIZ (TEXT)<[ASCIZ /TEXT/]>
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 6
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0114

   185
   186					;#********************************************************************
   187					;* RPUT/RGET - Multiple put/get
   188					;#********************************************************************
   189
   190						DEFINE	RPUT (R0,R1<-1>,R2<-1>,R3<-1>,R4<-1>,R5<-1>,R6<-1>,R7<-1>,R8<-1>,R9<-1>)<
   191						PUT	R0
   192						XLIST
   193						IFGE R1,<PUT	R1>
   194						IFGE R2,<PUT	R2>
   195						IFGE R3,<PUT	R3>
   196						IFGE R4,<PUT	R4>
   197						IFGE R5,<PUT	R5>
   198						IFGE R6,<PUT	R6>
   199						IFGE R7,<PUT	R7>
   200						IFGE R8,<PUT	R8>
   201						IFGE R9,<PUT	R9>
   202						LIST>
   203
   204						DEFINE	RGET (R0,R1<-1>,R2<-1>,R3<-1>,R4<-1>,R5<-1>,R6<-1>,R7<-1>,R8<-1>,R9<-1>)<
   205						GET	R0
   206						XLIST
   207						IFGE R1,<GET	R1>
   208						IFGE R2,<GET	R2>
   209						IFGE R3,<GET	R3>
   210						IFGE R4,<GET	R4>
   211						IFGE R5,<GET	R5>
   212						IFGE R6,<GET	R6>
   213						IFGE R7,<GET	R7>
   214						IFGE R8,<GET	R8>
   215						IFGE R9,<GET	R9>
   216						LIST>
   217
   218					; Microword table macro
   219
   220						DEFINE	SUBTAB(ADDR)<
   221						-2
   222						ADDR>
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 7
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0115

   223
   224					;#********************************************************************
   225					;* Test Dispatch Table Definitions
   226					;#********************************************************************
   227
   228		400000	000000			PORT==1B0			; PORT tests
   229		200000	000000			NIA==1B1			; NIA tests
   230		100000	000000			LOOP==1B2			; Loopback tests
   231		040000	000000			FUNCT==1B3			; Functional tests
   232		740000	000000			ALL==17B3			; All tests
   233		000100	000000			TDENA==1B11			; test dispatch enable (0-yes,1-no)
   234
   235
   236					;#*********************************************************************
   237					;* Port CONI/CONO CSR Bit Assignments
   238					;#*********************************************************************
   239
   240		400000	000000			PORTP==1B0			; port present
   241		200000	000000			CSRRQS==1B1			; diag request CSR
   242		100000	000000			CSRCHN==1B2			; diag CSR changed
   243		040000	000000			DINIT==1B3			; diag initialized
   244		020000	000000			PI00RQ==1B4			; PI Level 0 interrupt in progress
   245		010000	000000			RQINT==1B5			; request interrupt
   246		004000	000000			CRAMPE==1B6			; CRAM parity error
   247		002000	000000			MBERR==1B7			; MBUS error
   248		000100	000000			IDLE==1B11			; IDLE loop
   249		000040	000000			DCOMP==1B12			; disable complete
   250		000020	000000			ECOMP==1B13			; enable complete
   251			400000			PCLEAR==1B18			; port clear
   252			200000			TSTEBF==1B19			; diag test EBUF
   253			100000			GENEPE==1B20			; diag generate EBUS parity error
   254			040000			SELLAR==1B21			; diag select LAR/SQR
   255			020000			SINCYC==1B22			; diag single cycle
   256			010000			SPARE1==1B23			; spare bit
   257			004000			EBUSPE==1B24			; EBUS parity error
   258			002000			FQUERR==1B25			; free queue error
   259			001000			MVRERR==1B26			; data mover error
   260			000400			CMDQAV==1B27			; command queue available
   261			000200			RESQAV==1B28			; response queue available
   262			000100			SPARE2==1B29			; spare bit
   263			000040			PDSABL==1B30			; disable
   264			000020			PENABL==1B31			; enable
   265			000010			MPRUN==1B32			; mproc run
   266			000004			PIA00==1B33			; PIA field bit 0
   267			000002			PIA01==1B34			; PIA field bit 1
   268			000001			PIA02==1B35			; PIA field bit 2
   269
   270			002000			TCOMP==1B25			; test completed bit
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 8
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0116

   271
   272					;#*********************************************************************
   273					;* OPDEF/UUO Definitions
   274					;#*********************************************************************
   275
   276		104000	000000			OPDEF	JSYS	[104000,,0]	; TOPS-20 command
   277		104000	000100			OPDEF	CFIBF	[JSYS 100]	; clear TOPS-20 input buffer
   278
   279		001000	000000			OPDEF	PNTOCC	[1B8]		; print n digits leading 0's suppressed
   280		002000	000000			OPDEF	PDECF   [2B8]		; force print decimal number
   281		003000	000000			OPDEF	PNTDCC	[3B8]		; print n digits leading 0's suppressed
   282		004000	000000			OPDEF	PNTDCP	[4B8]		; print n digits leading 0's suppressed
   283		005000	000000			OPDEF	DELAY	[5B8]		; delay for n milliseconds
   284		006000	000000			OPDEF	PDEC    [6B8]		; print decimal number
   285		007000	000000			OPDEF	ALTCHK  [7B8]		; check for altmode character typed
   286		010000	000000			OPDEF	PNTDCL	[10B8]		; print decimal number left justified
   287		027000	000000			OPDEF	SCOPER	[27B8]		; error handler UUO
   288
   289			000000*			LUUO1==.PNTOC			; service routine for n digit octal
   290			000000*			LUUO2==PPDECF			; force print decimal number
   291			000000*			LUUO3==.PNTDC			; service routine for n digit decimal
   292			000000*			LUUO4==.PNTDP			; service routine for n digit decimal
   293			000000*			LUUO5==.DELAY			; delay routine (n milliseconds)
   294			000000*			LUUO6==PPDEC			; print decimal number
   295			000000*			LUUO7==ALTCHH			; check if an altmode was typed
   296			000000*			LUUO10==.PNTDL			; print decimal number left justified
   297			000000*			LUUO27==SCOPE1			; error print routine
   298
   299
   300					;#*********************************************************************
   301					;* Bit Definitions For "SCOPE" UUO Handler - Error Message Printer
   302					;#*********************************************************************
   303
   304		100000	000000			MSG==1B2			; ASCIZ message
   305		200000	000000			CALL==2B2			; call special print routine
   306		300000	000000			GOTO==3B2			; goto (new address of error table)
   307		040000	000000			TXNOT==1B3			; print/call entry if TXTINH not set
   308		020000	000000			TXYES==1B4			; print/call entry if TXTINH set
   309		060000	000000			TXALL==3B4			; print/call entry always
   310		010000	000000			LAST==1B5			; last table entry
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 9
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0117

   311
   312					;#********************************************************************
   313					;* Microword Field Definitions
   314					;
   315					;  These definitions are arranged for the macro which generates pairs
   316					;  of microwords as (addr & parity flags & left 20 bits,right 36 bits).
   317					;  These are of the form:
   318					;
   319					;  Word 1:  Bits 00-11 - Microword load address (0000-7777)
   320					;		 12-35 - Bits 0-23 of microword to load
   321					;  Word 2:  Bits 00-34 - Bits 24-57,59 of microword to load
   322					;	         35 ---- Force Bad Parity flag
   323					;
   324					;  In detail:
   325					;
   326					;  Word 1:  Bits 00-11 - Microword load address
   327					;		 12-23 - MWJMPFLD
   328					;		 24    - MWPAR
   329					;		 25    - MWOUTPUTENA
   330					;		 26-35 - MWMGCFLD
   331					;
   332					;  Word 2:  Bits 00-02 - MWSORCEFLD
   333					;		 03-05 - MWFUNCTFLD
   334					;		 06-08 - MWDESTFLD
   335					;		 09    - MWCCENA
   336					;		 10    - MWRAMODE
   337					;		 11-14 - MWPORTAFLD
   338					;		 15-18 - MWPORTBFLD
   339					;		 19-23 - MWSKIPFLD
   340					;		 24-26 - MWBUSCTLFLD
   341					;		 27    - MWCARRY
   342					;		 28-31 - MWCTRLFLD
   343					;		 32    - MWTIMEFLD
   344					;		 33    - MWSPARE00
   345					;		 34    - MWMARKBIT
   346					;
   347					;		 35    - Force bad parity flag
   348					;
   349					;  The microwords are generated using a set of field  definitions
   350					;  describing how the two words are to be constructed. Each field
   351					;  is defined as a bit position in the first word, a bit position
   352					;  in the right word, and a magnitude describing the size  of the
   353					;  field.  These are defined as follows:
   354					;
   355					;      .Lxxxx - Specifies the rightmost bit position of the field
   356					;		in the left word. If the field does not appear in
   357					;		left word, this will be zero.
   358					;
   359					;      .Rxxxx - Specifies the rightmost bit position of the field
   360					;		in the right word.  If the field  does not appear
   361					;		in right word, this will be zero.
   362					;
   363					;      .Mxxxx - Specifies the maximum magnitude of the  field  in
   364					;		the word.
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 10
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0118

   365
   366					;  The microwords are generated as follows:
   367					;
   368					;  Left word = ((value AND .Mxxxx) times .Lxxxx) ! next field ...
   369					;  Right word = ((value AND .Mxxxx) times .Rxxxx) ! next field ...
   370					;
   371					;  Parity is calculated prior to loading into the CRAM.  The parity
   372					;  bit  may be specified explicitly by specifying EVEN or ODD.  The
   373					;  microcode  loader  will  ensure  that the word has the specified
   374					;  parity.  If not specified, the correct parity will be calculated.
   375					;
   376					;  Sample microword definitions:
   377					;
   378					;  (a) Specify:  J 1000, OUTENA, SORCE fld = 2, DEST fld = 3
   379					;		 load address = 120
   380					;
   381					;      Type:     MWORD	<ADDR=120,J=1000,OENA,SORC=2,DEST=3>
   382					;#********************************************************************
   383
   384		000100	000000			.LADDR==1B11			; MW load address
   385			000000			.RADDR==0
   386			007777			.MADDR==7777
   387
   388			010000			.LJ==1B23			; MW jump field         (00:11)
   389			000000			.RJ==0
   390			007777			.MJ==7777
   391
   392			004000			.LPAR==1B24			; MW parity		(12:12)
   393			000000			.RPAR==0
   394			000001			.MPAR==1
   395
   396			002000			.LOENA==1B25			; MW output enable      (13:13)
   397			000000			.ROENA==0
   398			000001			.MOENA==1
   399
   400			000001			.LMGC==1B35			; MW magic number field (14:23)
   401			000000			.RMGC==0
   402			001777			.MMGC==1777
   403
   404			000000			.LSORC==0			; MW source field       (24:26)
   405		100000	000000			.RSORC==1B2
   406			000007			.MSORC==7
   407
   408			000000				.LSAQ==0		; Source = AQ
   409			000000				.RSAQ==0B2
   410			000007				.MSAQ==7
   411
   412			000000				.LSAB==0		; Source = AB
   413		100000	000000				.RSAB==1B2
   414			000007				.MSAB==7
   415
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 11
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0119

   416			000000				.LS0Q==0		; Source = 0Q
   417		200000	000000				.RS0Q==2B2
   418			000007				.MS0Q==7
   419
   420			000000				.LS0B==0		; Source = 0B
   421		300000	000000				.RS0B==3B2
   422			000007				.MS0B==7
   423
   424			000000				.LS0A==0		; Source = 0A
   425		400000	000000				.RS0A==4B2
   426			000007				.MS0A==7
   427
   428			000000				.LSDA==0		; Source = DA
   429		500000	000000				.RSDA==5B2
   430			000007				.MSDA==7
   431
   432			000000				.LSDQ==0		; Source = DQ
   433		600000	000000				.RSDQ==6B2
   434			000007				.MSDQ==7
   435
   436			000000				.LSD0==0		; Source = D0
   437		700000	000000				.RSD0==7B2
   438			000007				.MSD0==7
   439
   440			000000			.LFUNC==0			; MW function field     (27:29)
   441		010000	000000			.RFUNC==1B5
   442			000007			.MFUNC==7
   443
   444			000000				.LPLUS==0		; R PLUS S function
   445			000000				.RPLUS==0B5
   446			000007				.MPLUS==7
   447
   448			000000				.LSMIN==0		; R MINUS S function
   449		010000	000000				.RSMIN==1B5
   450			000007				.MSMIN==7
   451
   452			000000				.LRMIN==0		; R MINUS S function
   453		020000	000000				.RRMIN==2B5
   454			000007				.MRMIN==7
   455
   456			000000				.LOR==0			; R OR S function
   457		030000	000000				.ROR==3B5
   458			000007				.MOR==7
   459
   460			000000				.LAND==0		; R AND S function
   461		040000	000000				.RAND==4B5
   462			000007				.MAND==7
   463
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 12
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0120

   464			000000				.LNAND==0		; NOT R AND S function
   465		050000	000000				.RNAND==5B5
   466			000007				.MNAND==7
   467
   468			000000				.LXOR==0		; R XOR S function
   469		060000	000000				.RXOR==6B5
   470			000007				.MXOR==7
   471
   472			000000				.LXNOR==0		; R XNOR S function
   473		070000	000000				.RXNOR==7B5
   474			000007				.MXNOR==7
   475
   476			000000			.LD==0				; MW destination field  (30:32)
   477		001000	000000			.RD==1B8
   478			000007			.MD==7
   479
   480			000000			.LCENA==0			; MW CC enable          (33:33)
   481		000400	000000			.RCENA==1B9
   482			000001			.MCENA==1
   483
   484			000000				.LDISA==0		; MW CC disable
   485			000000				.RDISA==0B9
   486			000001				.MDISA==1
   487
   488			000000				.LENA==0		; MW CC enable
   489		000400	000000				.RENA==1B9
   490			000001				.MENA==1
   491
   492			000000			.LRAM==0			; MW RAM mode           (34:34)
   493		000200	000000			.RRAM==1B10
   494			000001			.MRAM==1
   495
   496			000000			.LA==0				; MW Port A field       (35:38)
   497		000010	000000			.RA==1B14
   498			000017			.MA==17
   499
   500			000000			.LB==0				; MW Port B field       (39:42)
   501			400000			.RB==1B18
   502			000017			.MB==17
   503
   504			000000			.LSK==0				; MW skip field         (43:47)
   505			010000			.RSK==1B23
   506			000037			.MSK==37
   507
   508			000000				.LCCON==0		; Select CC 'on' (CCCSRCHNG)
   509			030000				.RCCON==03B23
   510			000037				.MCCON==37
   511
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 13
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0121

   512			000000				.LCCOF==0		; Select CC 'off' (CCGRNTCSR)
   513			010000				.RCCOF==01B23
   514			000037				.MCCOF==37
   515
   516			000000				.LCCCA==0		; Select CCCBUSAVAIL
   517			000000				.RCCCA==0B23
   518			000037				.MCCCA==37
   519
   520			000000				.LCCGC==0		; Select CCGRNTCSR
   521			010000				.RCCGC==01B23
   522			000037				.MCCGC==37
   523
   524			000000				.LCCFZ==0		; Select CCFEQ0
   525			020000				.RCCFZ==02B23
   526			000037				.MCCFZ==37
   527
   528			000000				.LCCCC==0		; Select CCCSRCHNG
   529			030000				.RCCCC==03B23
   530			000037				.MCCCC==37
   531
   532			000000				.LCCEB==0		; Select CCEBPARERR
   533			040000				.RCCEB==4B23
   534			000037				.MCCEB==37
   535
   536			000000				.LCCRA==0		; Select CCRCVATTN
   537			050000				.RCCRA==5B23
   538			000037				.MCCRA==37
   539
   540			000000				.LCCEF==0		; Select CCEOFRAME
   541			060000				.RCCEF==6B23
   542			000037				.MCCEF==37
   543
   544			000000				.LCCXA==0		; Select CCXMTRATTN
   545			070000				.RCCXA==7B23
   546			000037				.MCCXA==37
   547
   548			000000				.LCCER==0		; Select CCEBUSRQST
   549			100000				.RCCER==10B23
   550			000037				.MCCER==37
   551
   552			000000				.LCCIA==0		; Select CCINTRACTIVE
   553			110000				.RCCIA==11B23
   554			000037				.MCCIA==37
   555
   556			000000				.LCCMB==0		; Select CCMBSIGN
   557			120000				.RCCMB==12B23
   558			000037				.MCCMB==37
   559
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 14
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0122

   560			000000				.LCCMP==0		; Select CCMVRPARCHK
   561			130000				.RCCMP==13B23
   562			000037				.MCCMP==37
   563
   564			000000				.LCCCP==0		; Select CCCBUSPARERR
   565			140000				.RCCCP==14B23
   566			000037				.MCCCP==37
   567
   568			000000				.LCCPP==0		; Select CCPLIPARERR
   569			150000				.RCCPP==15B23
   570			000037				.MCCPP==37
   571
   572			000000				.LCCCE==0		; Select CCCHANERR
   573			160000				.RCCCE==16B23
   574			000037				.MCCCE==37
   575
   576			000000				.LCCLW==0		; Select CCCBLSTWD
   577			170000				.RCCLW==17B23
   578			000037				.MCCLW==37
   579
   580			000000				.LLSAD==0		; Load SAD Reg
   581			200000				.RLSAD==20B23
   582			000037				.MLSAD==37
   583
   584			000000				.LSKMB==0		; Select MBUS field
   585			210000				.RSKMB==21B23
   586			000037				.MSKMB==37
   587
   588			000000				.LLDLM==0		; Load Local Mem
   589			230000				.RLDLM==23B23
   590			000037				.MLDLM==37
   591
   592			000000				.LRDLM==0		; Read Local Mem
   593			220000				.RRDLM==22B23
   594			000037				.MRDLM==37
   595
   596			000000				.LSKCN==0		; Select constant field
   597			240000				.RSKCN==24B23
   598			000037				.MSKCN==37
   599
   600			000000			.LBUS==0			; MW bus control field  (48:50)
   601			001000			.RBUS==1B26
   602			000007			.MBUS==7
   603
   604			000000				.LSELP==0		; Select PLI field
   605			001000				.RSELP==1B26
   606			000007				.MSELP==7
   607
   608			000000				.LSELM==0		; Select Mbus field
   609			002000				.RSELM==2B26
   610			000007				.MSELM==7
   611
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 15
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0123

   612			000000				.LSELF==0		; Select Fmtr field
   613			003000				.RSELF==3B26
   614			000007				.MSELF==7
   615
   616			000000				.LSELC==0		; Select Cbus field
   617			004000				.RSELC==4B26
   618			000007				.MSELC==7
   619
   620			000000				.LSELE==0		; Select Ebus field
   621			005000				.RSELE==5B26
   622			000007				.MSELE==7
   623
   624			000000			.LCRY==0			; MW carry              (51:51)
   625			000400			.RCRY==1B27
   626			000001			.MCRY==1
   627
   628			000000			.LOP==0				; MW control field      (52:55)
   629			000020			.ROP==1B31
   630			000017			.MOP==17
   631
   632			000000				.LJZ==0			; Jump zero instruction
   633			000000				.RJZ==00B31
   634			000017				.MJZ==17
   635
   636			000000				.LCJS==0		; Conditional JSB pipeline instruction
   637			000020				.RCJS==01B31
   638			000017				.MCJS==17
   639
   640			000000				.LJMAP==0		; Jump MAP instruction
   641			000040				.RJMAP==02B31
   642			000017				.MJMAP==17
   643
   644			000000				.LCJP==0		; Conditional jump pipeline instruction
   645			000060				.RCJP==03B31
   646			000017				.MCJP==17
   647
   648			000000				.LPUSH==0		; Push/cond load counter instruction
   649			000100				.RPUSH==04B31
   650			000017				.MPUSH==17
   651
   652			000000				.LJSRP==0		; Cond JSB R/Pipeline instruction
   653			000120				.RJSRP==05B31
   654			000017				.MJSRP==17
   655
   656			000000				.LCJV==0		; Conditional jump vector instruction
   657			000140				.RCJV==06B31
   658			000017				.MCJV==17
   659
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 16
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0124

   660			000000				.LJRP==0		; Cond jump R/Pipeline instruction
   661			000160				.RJRP==07B31
   662			000017				.MJRP==17
   663
   664			000000				.LRFCT==0		; Repeat loop, counter#0 instruction
   665			000200				.RRFCT==10B31
   666			000017				.MRFCT==17
   667
   668			000000				.LRPCT==0		; Repeat pipeline, counter#0 instr
   669			000220				.RRPCT==11B31
   670			000017				.MRPCT==17
   671
   672			000000				.LCRTN==0		; Conditional RTN instruction
   673			000240				.RCRTN==12B31
   674			000017				.MCRTN==17
   675
   676			000000				.LCJPP==0		; Cond jump pipeline and pop instr
   677			000260				.RCJPP==13B31
   678			000017				.MCJPP==17
   679
   680			000000				.LLDCT==0		; Load counter and continue instruction
   681			000300				.RLDCT==14B31
   682			000017				.MLDCT==17
   683
   684			000000				.LLOOP==0		; Test end loop instruction
   685			000320				.RLOOP==15B31
   686			000017				.MLOOP==17
   687
   688			000000				.LCONT==0		; Continue instruction
   689			000340				.RCONT==16B31
   690			000017				.MCONT==17
   691
   692			000000				.LTWB==0		; Three way branch instruction
   693			000360				.RTWB==17B31
   694			000017				.MTWB==17
   695
   696			000000			.LTIM==0			; time field
   697			000010			.RTIM==1B32
   698			000001			.MTIM==1
   699
   700			000000			.LSPAR==0			; 1st spare bit
   701			000004			.RSPAR==1B33
   702			000001			.MSPAR==1
   703
   704			000000			.LMARK==0			; mark bit
   705			000002			.RMARK==1B34
   706			000001			.MMARK==1
   707
   708			000000			.LBAD==0			; force bad parity
   709			000001			.RBAD==1B35
   710			000001			.MBAD==1
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 17
DFNIAT	MAC	14-Feb-84 16:51		DFNIA TITLE FILE                                                                   SEQ 0125

   711
   712					;#********************************************************************
   713					;* Microword Macros (Note: If ADDR not specified, 'ADDR'+1 is used).
   714					;
   715					;  Left word = ((value AND .Mxxxx) times .Lxxxx) ! next field ...
   716					;  Right word = ((value AND .Mxxxx) times .Rxxxx) ! next field ...
   717					;
   718					;  Samples:	MWORD	<J=1000,OENA,SORC=2,DEST=3>
   719					;		MWORD	<J=0,OENA,SORC=2,DEST=3>
   720					;#********************************************************************
   721
   722					; CALC - Insert field value into the microwords under construction
   723
   724						DEFINE	CALC($ARG1)<
   725						IFE .L'$ARG1-1B11,<%ADDR==$ARG2>
   726						IFN .L'$ARG1-1B11,<%ML=%ML!<<$ARG2&.M'$ARG1>*.L'$ARG1>
   727								   %MR=%MR!<<$ARG2&.M'$ARG1>*.R'$ARG1>>>
   728
   729					; CONCAT - Build string argument
   730
   731						DEFINE	CONCAT($A)<
   732						$B=<SIXBIT /$A/>_-36		; get right justified character in
   733						$CHR=$CHR_6+$B>			;   octal and accumulate in string
   734
   735					; FIELD - Decode argument in the form XXXX=NNNN into XXXX and NNNN
   736
   737						DEFINE	FIELD($ARG)<
   738						$CHR=0				; init string argument
   739						$GARG=0				; init numeric argument
   740						IRPC $ARG,<IFN $GARG,<$ARG2=$ARG2*8+$ARG>
   741							  IFIDN "=",$ARG,<$GARG=1
   742									 $ARG2=0>
   743							  IFE $GARG,<CONCAT $ARG>
   744							  IFE $GARG,<$ARG2=1>>
   745						CALC \'$CHR>			; enter into microword
   746
   747					; MWORD - Build microwords
   748
   749						DEFINE	MWORD ($FLD)<
   750						%ML==0				; init left word
   751						%MR==0				; init right word
   752						IRP $FLD,<DEFINE MFLD($A)<FIELD $A>
   753							 MFLD	$FLD>
   754						%ML==%ML!%ADDR_^D24
   755						%ADDR==%ADDR+1
   756						EXP	%ML,%MR>		; done
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 1
PARAM	KLM	18-Sep-79 17:16		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979                              SEQ 0126

   757					SUBTTL	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979
   758
   759					DEFINE	S,<; *********************************************************************>
   760
   761					; **********************************************************************
   762					;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
   763					;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
   764					;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
   765					; **********************************************************************
   766
   767			400000		ABORT==	400000			;ABORT PROGRAM ON PASS COMPLETION
   768			200000		RSTART==200000			;RESTART TEST, PRINT TOTALS
   769			100000		TOTALS==100000			;PRINT TOTALS, CONTINUE
   770
   771			040000		NOPNT==	040000			;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
   772			020000		PNTLPT==020000			;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
   773			010000		DING==	010000			;RING BELL ON ERROR
   774
   775			004000		LOOPER==004000			;ENTER EXERCISE/CHECK LOOP ON ERROR
   776			002000		ERSTOP==002000			;HALT ON TEST ERROR
   777			001000		PALERS==001000			;PRINT ALL ERRORS
   778
   779			000400		RELIAB==000400			;RELIABILITY MODE
   780			000200		TXTINH==000200			;INHIBIT ERROR TEXT
   781			000100		INHPAG==000100			;INHIBIT PAGING
   782
   783			000040		MODDVC==000040			;MODIFY DEVICE CODE
   784			000020		INHCSH==000020			;INHIBIT CACHE
   785			000010		OPRSEL==000010			;OPERATOR SELECTION
   786
   787			000004		CHAIN==	000004			;CHAIN CONTROL SWITCH
   788
   789			000002		KAHZ50==000002			;KA10 50 HERTZ POWER
   790
   791									;SWITCH 17 RESERVED !!!
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 2
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0127

   792					SUBTTL	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979
   793
   794					; **********************************************************************
   795					;*SPECIAL SUBPROGRAM LINKAGES
   796					; **********************************************************************
   797
   798			027772		FSELNK=	27772	;FILE SELECT LINK
   799			027773		FRDLNK=	27773	;FILE READ LINK
   800			027774		LDLNK=	27774	;LOAD LINKAGE ADDRESS
   801			027775		DDTLNK=	27775	;DDT LINKAGE ADDRESS
   802			027776		MODLNK=	27776	;OPERATIONAL MODE CHECK LINKAGE ADDRESS
   803			027777		SUBLNK=	27777	;SUBROUTINE LINKAGE ADDRESS
   804
   805					; **********************************************************************
   806					;*SPECIAL SUBROUTINE FATAL HALTS
   807					;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
   808					; **********************************************************************
   809
   810					;ADDRESS   TAG	REASON
   811					;---------------------
   812
   813					; 1010 	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
   814					; 1011  PLERR	;FATAL PUSH LIST POINTER ERROR
   815					; 1012  PLERR1	;INITIAL PUSH LIST POINTER ERROR
   816					; 1013  MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
   817					; 1014  DTEBER	;DTE20 INTERRUPT WITHOUT DOORBELL
   818					; 1015  DTECER	;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
   819					; 1016  CPIERR	;CPU INITIALIZATION ERROR
   820					; 1017  EOPERR	;END OF PROGRAM ERROR
   821					; 1020  LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT
   822
   823					; **********************************************************************
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 3
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0128

   824					; **********************************************************************
   825					;OPERATOR DEFINITIONS (NON-UUO'S)
   826					; **********************************************************************
   827
   828		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
   829		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
   830		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
   831		262740	000000		OPDEF	GET	[POP	P,]	;GET DATA FROM PUSH LIST 
   832		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
   833		254200	000000		OPDEF	HALT	[JRST	4,]	;DEFINITION FOR DDT
   834		254100	000000		OPDEF	JRSTF	[JRST	2,]	;DEFINITION FOR DDT
   835		254500	000000		OPDEF	JEN	[JRST	12,]	;DEFINITION FOR DDT
   836
   837					; **********************************************************************
   838					;SUBROUTINE INITIALIZATION CALL
   839					; **********************************************************************
   840
   841		265000	030011		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
   842
   843					; **********************************************************************
   844					;HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
   845					; **********************************************************************
   846
   847		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
   848		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
   849
   850					; **********************************************************************
   851					;TERMINAL INPUT UUO'S
   852					;ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
   853					;CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
   854					; **********************************************************************
   855
   856		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
   857		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
   858		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
   859		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
   860		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
   861		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
   862		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
   863		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
   864		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
   865		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
   866		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 4
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0129

   867					;TERMINAL OUTPUT UUO'S.
   868
   869		037000	000000		OPDEF	PNTA	[37B8!0B12!0]	;PRINT ASCII WORD
   870		037000	000001		OPDEF	PNTAF	[37B8!0B12!1]	;PRINT ASCII WORD FORCED
   871		037740	000000		OPDEF	PNTAL	[37B8!17B12!0]	;PRINT ASCIZ LINE
   872		037740	000001		OPDEF	PNTALF	[37B8!17B12!1]	;PRINT ASCIZ LINE FORCED
   873		037600	000003		OPDEF	PSIXL	[37B8!14B12!3]	;PRINT SIXBIT'Z LINE
   874		037640	000003		OPDEF	PSIXLF	[37B8!15B12!3]	;PRINT SIXBIT'Z LINE FORCED
   875		037000	000000		OPDEF	PNTMSG	[37B8!0B12!0]	;PRINT MESSAGE IMMEDIATE
   876		037040	000000		OPDEF	PNTMSF	[37B8!1B12!0]	;PRINT MESSAGE IMMEDIATE FORCED
   877		037100	000000		OPDEF	PSIXM	[37B8!2B12!0]	;PRINT SIXBIT'Z MSG IMMEDIATE
   878		037200	000000		OPDEF	PSIXMF	[37B8!4B12!0]	;PRINT SIXBIT'Z MSG IMM FORCED
   879		037000	000000		OPDEF	PNTCI	[37B8!0B12!0]	;PRINT CHARACTER IMMEDIATE
   880		037040	000000		OPDEF	PNTCIF	[37B8!1B12!0]	;PRINT CHARACTER IMMEDIATE FORCED
   881		037500	000000		OPDEF	PNTCHR	[37B8!12B12!0]	;PRINT CHARACTER
   882		037500	000001		OPDEF	PNTCHF	[37B8!12B12!1]	;PRINT CHARACTER FORCED
   883		037040	000000		OPDEF	PNT1	[37B8!1B12!0]	;PRINT ONE OCTAL DIGIT
   884		037040	000001		OPDEF	PNT1F	[37B8!1B12!1]	;PRINT 1 OCTAL DIGIT FORCED	
   885		037100	000000		OPDEF	PNT2	[37B8!2B12!0]	;PRINT TWO OCTAL DIGITS
   886		037100	000001		OPDEF	PNT2F	[37B8!2B12!1]	;PRINT 2 OCTAL DIGITS FORCED	
   887		037140	000000		OPDEF	PNT3	[37B8!3B12!0]	;PRINT THREE OCTAL DIGITS
   888		037140	000001		OPDEF	PNT3F	[37B8!3B12!1]	;PRINT THREE OCTAL DIGITS FORCED	
   889		037200	000000		OPDEF	PNT4	[37B8!4B12!0]	;PRINT FOUR OCTAL DIGITS
   890		037200	000001		OPDEF	PNT4F	[37B8!4B12!1]	;PRINT FOUR OCTAL DIGITS FORCED
   891		037240	000000		OPDEF	PNT5	[37B8!5B12!0]	;PRINT FIVE OCTAL DIGITS
   892		037240	000001		OPDEF	PNT5F	[37B8!5B12!1]	;PRINT FIVE OCTAL DIGITS FORCED
   893		037300	000000		OPDEF	PNT6	[37B8!6B12!0]	;PRINT SIX OCTAL DIGITS
   894		037300	000001		OPDEF	PNT6F	[37B8!6B12!1]	;PRINT SIX OCTAL DIGITS FORCED
   895		037340	000000		OPDEF	PNT7	[37B8!7B12!0]	;PRINT 7 OCTAL DIGITS
   896		037340	000001		OPDEF	PNT7F	[37B8!7B12!1]	;PRINT 7 OCTAL DIGITS FORCED
   897		037440	000000		OPDEF	PNT11	[37B8!11B12!0]	;PRINT 11 OCTAL DIGITS
   898		037440	000001		OPDEF	PNT11F	[37B8!11B12!1]	;PRINT 11 OCTAL DIGITS FORCED.
   899		037400	000000		OPDEF	PNTADR	[37B8!10B12!0]	;PRINT PHYSICAL ADDRESS
   900		037400	000001		OPDEF	PNTADF	[37B8!10B12!1]	;PRINT PHYSICAL ADDRESS FORCED
   901		037600	000000		OPDEF	PNTOCT  [37B8!14B12!0]	;PRINT FULL WORD OCTAL
   902		037600	000001		OPDEF	PNTOTF	[37B8!14B12!1]	;PRINT FULL WORD OCTAL FORCED
   903		037540	000000		OPDEF	PNTHW	[37B8!13B12!0]	;PRINT OCTAL HALF WORDS, 6 SP 6
   904		037540	000001		OPDEF	PNTHWF	[37B8!13B12!1]	;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
   905		037700	000003		OPDEF	PNTOCS	[37B8!16B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S
   906		037740	000003		OPDEF	PNTOCF	[37B8!17B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
   907		037640	000000		OPDEF	PNTDEC	[37B8!15B12!0]	;PRINT DECIMAL, SUPRESS LEADING 0'S
   908		037640	000001		OPDEF	PNTDCF	[37B8!15B12!1]	;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
   909		037700	000000		OPDEF	PNTDS	[37B8!16B12!0]	;PRINT DECIMAL, SPACES FOR LD 0'S
   910		037700	000001		OPDEF	PNTDSF	[37B8!16B12!1]	;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 5
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0130

   911		037200	000002		OPDEF	PNTNM	[37B8!4B12!2]	;PRINT PROGRAM NAME
   912		037000	000002		OPDEF	PNTSIX	[37B8!0B12!2]	;PRINT SIXBIT WORD
   913		037040	000002		OPDEF	PNTSXF	[37B8!1B12!2]	;PRINT SIXBIT WORD FORCED
   914		037240	000002		OPDEF	DROPDV	[37B8!5B12!2]	;CLOSE LOGICAL FILE, USER MODE
   915		037100	000002		OPDEF	PNTCW	[37B8!2B12!2]	;PRINT DF10 CONTROL WORD
   916		037140	000002		OPDEF	PNTCWF	[37B8!3B12!2]	;PRINT DF10 CONTROL WORD FORCED
   917		037000	030242		OPDEF	PCRL	[37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
   918		037040	030242		OPDEF	PCRLF	[37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
   919		037000	000040		OPDEF	PSP	[37B8!0B12!40]	;PRINT SPACE
   920		037040	000040		OPDEF	PSPF	[37B8!1B12!40]	;PRINT SPACE FORCED
   921		037000	030243		OPDEF	PCRL2	[37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
   922		037040	030243		OPDEF	PCRL2F	[37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
   923		037040	000007		OPDEF	PBELL	[37B8!1B12!7]	;PRINT TTY BELL
   924
   925		037040	000026		OPDEF	PFORCE	[37B8!1B12!26]	;PRINT FORCE, CONTROL O OVERRIDE
   926
   927					DEFINE	PMSG	(ARG),<
   928						PSIXM	[SIXBIT\ARG'_\]>
   929
   930					DEFINE	PMSGF	(ARG),<
   931						PSIXMF	[SIXBIT\ARG'_\]>
   932
   933					;SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
   934					;	CONSERVES CORE OVER ASCIZ
   935
   936					DEFINE	SIXBTZ	(ARG),<	[SIXBIT\ARG'_\]>
   937
   938					;CONSOLE SWITCH INPUT UUO.
   939					;READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
   940					; USER MODE.
   941
   942		037400	000002		OPDEF	SWITCH	[37B8!10B12!2]	;INPUT CONSOLE SWITCHES
   943
   944					;CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
   945					;EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
   946
   947		037540	000004		OPDEF	CLOKOP	[37B8!13B12!4]	;CLOCK OPERATION UUO - PDP-11 CLOCK
   948		037200	000004		OPDEF	MTROP	[37B8!4B12!4]	;CLOCK OPERATION UUO - DK20 METER
   949
   950					;KL10 ONLY CACHE OPERATION UUO'S
   951
   952		037040	000004		OPDEF	CINVAL	[37B8!1B12!4]	;CACHE INVALIDATE
   953		037100	000004		OPDEF	CFLUSH	[37B8!2B12!4]	;CACHE FLUSH
   954		037140	000004		OPDEF	CWRTBI	[37B8!3B12!4]	;CACHE WRITE-BACK & INVALIDATE
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 6
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0131

   955					;END OF PASS/PROGRAM UUOS
   956
   957					;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
   958					;DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
   959
   960		037500	000004		OPDEF	ENDUUO	[37B8!12B12!4]	;UUO TO DISPLAY LIGHTS
   961		037700	000004		OPDEF	EOPUUO	[37B8!16B12!4]	;END OF PROGRAM UUO
   962
   963					;MEMORY MANAGEMENT UUO'S
   964					;UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
   965					;ADDRESS CONVERSION, ETC...
   966
   967		037000	000004		OPDEF	MAPMEM	[37B8!0B12!4]	;MAP MEMORY
   968		037500	000002		OPDEF	MEMZRO	[37B8!12B12!2]	;ZERO MEMORY
   969		037440	000002		OPDEF	MEMSEG	[37B8!11B12!2]	;SETUP MEMORY SEGMENT
   970		037540	000002		OPDEF	MAPADR	[37B8!13B12!2]	;VIRTUAL TO PHYSICAL ADR CONVERT
   971		037640	000002		OPDEF	MAPCNK	[37B8!15B12!2]	;MAP MEMORY CHUNK
   972		037600	000002		OPDEF	MAPSET	[37B8!14B12!2]	;SET KI10 EXEC PAGE MAP
   973		037740	000002		OPDEF	MAPPNT	[37B8!17B12!2]	;PRINT MEMORY MAP
   974
   975					;DEVICE CODE MODIFICATION UUO
   976					;ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
   977					;IOT'S TO A DIFFERENT DEVICE CODE.
   978
   979		037340	000002		OPDEF	MODPCU	[37B8!7B12!2]	;MODIFY PERHIPERAL CODE, USER
   980		037300	000002		OPDEF	MODPCP	[37B8!6B12!2]	;MODIFY PERHIPERAL CODE, PROGRAM
   981
   982			030000			IFNDEF	MODDVL,<MODDVL==BEGIN>
   983			030000			IFNDEF	MODDVU,<MODDVU==BEGIN>
   984
   985					;"DIAMON" FILE SELECTION AND READ UUOS
   986
   987		037240	000004		OPDEF	FSELECT	[37B8!5B12!4]	;FILE SELECTION
   988		037300	000004		OPDEF	FREAD	[37B8!6B12!4]	;FILE READ - ASCII DATA
   989		037340	000004		OPDEF	FRD36	[37B8!7B12!4]	;FILE READ - 36 BIT DATA
   990		037400	000004		OPDEF	FRD8	[37B8!10B12!4]	;FILE READ - 8 BIT DATA
   991
   992					;KI10 ONLY UUO FOR PRINTING MARGIN VALUES
   993
   994		037700	000002		OPDEF	PNTMGN	[37B8!16B12!2]	;PRINT MARGIN VALUE
   995
   996						XLIST
   997					IFNDEF	KLOLD,<LIST
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 7
PARAM	KLM	18-Sep-79 17:16		ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979                                       SEQ 0132

   998					SUBTTL	ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
   999
  1000					; **********************************************************************
  1001					;ERROR HANDLER PARAMETERS
  1002					; **********************************************************************
  1003
  1004		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
  1005		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
  1006		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
  1007		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
  1008		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
  1009
  1010					;THE ERROR HANDLER MACROS
  1011
  1012					;A MACRO TO REPORT AN ERROR AND LOOP
  1013
  1014						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
  1015												SALL
  1016						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
  1017							   CORECT,,ACTUAL
  1018							   [SIXBIT\D'_\],,ERR]
  1019												XALL
  1020						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
  1021					>
  1022
  1023					;A MACRO TO REPORT AN ERROR AND NOT LOOP
  1024
  1025						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
  1026												SALL
  1027						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
  1028							   CORECT,,ACTUAL
  1029							   [SIXBIT\D'_\],,ERR]
  1030												XALL>
  1031
  1032					>;END OF KLOLD CONDITIONAL
  1033
  1034						XLIST
  1035						LIST
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 1
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0133

  1036					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
  1037
  1038	030000					LOC	30000
  1039
  1040					; **********************************************************************
  1041					;PROGRAM STARTING ADDRESSES
  1042					;THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
  1043					;NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
  1044					;OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
  1045					;MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
  1046					; **********************************************************************
  1047
  1048	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
  1049	030001	254 00 0 00 000000*	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
  1050
  1051	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
  1052
  1053	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
  1054
  1055	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
  1056
  1057	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
  1058
  1059	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
  1060
  1061	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
  1062	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
  1063
  1064	030010	254 00 0 00 000000*	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
  1065	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
  1066	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
  1067
  1068	030013	254200	030001*		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
  1069	030014	254200	030013*		START2:	SADR8			; "
  1070	030015	254200	030014*		START3:	SADR9			; "
  1071	030016	254200	030015*		START4:	SADR10			; "
  1072	030017	254200	030016*		START5:	SADR11			; "
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 2
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0134

  1073					; **********************************************************************
  1074					;PROGRAM FIXED PARAMETER AREA
  1075					; **********************************************************************
  1076
  1077	030020	444656	514100		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
  1078	030021	605664	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
  1079	030022	711523	655207		RANDBS:	PAREA1		;RANDOM BASE NUMBER
  1080	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
  1081	030024	000000	000005		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
  1082	030025	000000000000#		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
  1083	030026	000000	000002		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
  1084	030027	000000	030000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
  1085	030030	000000	030000		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
  1086	030031	777777	777777		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
  1087	030032	777777	777777		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
  1088	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
  1089	030034	777777	777777		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
  1090	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
  1091	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
  1092
  1093					; **********************************************************************
  1094					;PROGRAM VARIABLE PARAMETER AREA
  1095					; **********************************************************************
  1096
  1097	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
  1098	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
  1099	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
  1100	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
  1101	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
  1102	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
  1103	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
  1104	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
  1105	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
  1106	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
  1107	030051	000000	000000		TESTPC:	0		;SUBTEST PC
  1108	030052	000000	000000		ERRPC:	0		;ERROR PC
  1109	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
  1110	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
  1111	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
  1112	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 3
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0135

  1113					; **********************************************************************
  1114					;SPECIAL PROGRAM DISPATCH ADDRESSES
  1115					; **********************************************************************
  1116
  1117	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
  1118	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
  1119	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
  1120	030062	000000000000#		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
  1121	030063	000000	030007		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
  1122	030064				CPOPJ1:			;SKIP RETURN
  1123	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
  1124	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
  1125	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
  1126	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
  1127	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
  1128	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
  1129	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
  1130	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
  1131	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
  1132	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
  1133	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
  1134	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
  1135	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
  1136	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
  1137	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
  1138	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
  1139
  1140	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
  1141	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
  1142	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
  1143
  1144					; **********************************************************************
  1145					;PROCESSOR CONTROL STORAGE
  1146					; **********************************************************************
  1147
  1148	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
  1149	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
  1150	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
  1151	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
  1152	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
  1153
  1154	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
  1155	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
  1156
  1157	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
  1158	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
  1159	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
  1160	030120	000000	000000		%COREC:	0		; " CORRECT DATA
  1161	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
  1162	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
  1163	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 4
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0136

  1164					; **********************************************************************
  1165					;UUO DISPATCH TABLE
  1166					; **********************************************************************
  1167						XLIST
  1168						LIST
  1169	030124	000000*	030070		UUODIS:	LUUO1,,$UUOER
  1170	030125	000000*	000000*			LUUO3,,LUUO2
  1171	030126	000000*	000000*			LUUO5,,LUUO4
  1172	030127	000000*	000000*			LUUO7,,LUUO6
  1173	030130	030070	000000*			LUUO11,,LUUO10
  1174	030131	030070	030070			LUUO13,,LUUO12
  1175	030132	030070	030070			LUUO15,,LUUO14
  1176	030133	030070	030070			LUUO17,,LUUO16
  1177	030134	030070	030070			LUUO21,,LUUO20
  1178	030135	030070	030070			LUUO23,,LUUO22
  1179	030136	030070	030070			LUUO25,,LUUO24
  1180	030137	000000*	030070			LUUO27,,LUUO26
  1181	030140	030070	030070			LUUO31,,LUUO30
  1182	030141	030070	030070			LUUO33,,LUUO32
  1183
  1184					; **********************************************************************
  1185					;MEMORY MANAGMENT STORAGE
  1186					; **********************************************************************
  1187
  1188	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
  1189	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
  1190	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
  1191	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
  1192	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
  1193
  1194					; **********************************************************************
  1195					;PRINT CONTROL STORAGE
  1196					; **********************************************************************
  1197
  1198	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
  1199	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
  1200	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
  1201	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
  1202	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
  1203	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
  1204	030225	000000	000000		$TWCNT:	0		;TIME WAITED
  1205	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
  1206	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
  1207	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
  1208	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
  1209	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
  1210	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
  1211	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
  1212	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
  1213	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
  1214	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
  1215	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
  1216	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 5
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0137

  1217					; **********************************************************************
  1218					;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
  1219					;TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
  1220					;	MOVEI	NAME
  1221					;	PNTA		;OR PNTAF
  1222					; **********************************************************************
  1223
  1224	030242				CRLF:	ASCII/
  1225	030242	015 012 000 000 000 	/
  1226	030243				CRLF2:	ASCII/
  1227
  1228	030243	015 012 015 012 000 	/
  1229	030244	054 000 000 000 000 	COMMA:	ASCII/,/
  1230	030245	056 000 000 000 000 	PERIOD:	ASCII/./
  1231	030246	040 000 000 000 000 	SPACE:	ASCII/ /
  1232	030247	011 000 000 000 000 	TAB:	ASCII/	/
  1233	030250				MINUS:
  1234	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
  1235	030251	053 000 000 000 000 	PLUS:	ASCII/+/
  1236	030252	052 000 000 000 000 	AST:	ASCII/*/
  1237	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
  1238	030254	050 000 000 000 000 	LFP:	ASCII/(/
  1239	030255	051 000 000 000 000 	RTP:	ASCII/)/
  1240	030256	007 0000000000 		BELL:	BYTE (7) 007
  1241	030257	077 000 000 000 000 	QUEST:	ASCII/?/
  1242	030260	057 000 000 000 000 	SLASH:	ASCII!/!
  1243	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
  1244	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
  1245	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
  1246	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
  1247
  1248					; **********************************************************************
  1249					;USER MODE OUTPUT FILE INFORMATION
  1250					; **********************************************************************
  1251
  1252	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
  1253	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
  1254	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
  1255	030272					BLOCK	2
  1256
  1257					; **********************************************************************
  1258					;DISK UPDATE MODE FILE INFORMATION
  1259					; **********************************************************************
  1260
  1261	030274				$IBUF:	BLOCK	3
  1262	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
  1263	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
  1264	030301					BLOCK	2
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 6
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0138

  1265					; **********************************************************************
  1266					;PUSHDOWN LIST CONTROL INFORMATION
  1267					; **********************************************************************
  1268
  1269	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
  1270	030304				PLISTS:	BLOCK	200
  1271	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
  1272
  1273					; **********************************************************************
  1274					;POWER LINE CLOCK FREQUENCY FLAG
  1275					; **********************************************************************
  1276
  1277	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
  1278
  1279					; **********************************************************************
  1280					;KL10 CACHE CONTROL FLAGS
  1281					; **********************************************************************
  1282
  1283	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
  1284	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
  1285
  1286					; **********************************************************************
  1287					;NUMBER INPUT DIGIT FLAG
  1288					; **********************************************************************
  1289
  1290	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
  1291
  1292					; **********************************************************************
  1293					;KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
  1294					; **********************************************************************
  1295
  1296	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
  1297
  1298					; **********************************************************************
  1299					;ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
  1300					; **********************************************************************
  1301
  1302	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
  1303	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
  1304	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
  1305
  1306					; **********************************************************************
  1307					;SPECIAL USERS UUO INTERCEPT INSTRUCTION
  1308					; **********************************************************************
  1309
  1310	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 7
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0139

  1311					; **********************************************************************
  1312					;USER MODE MONITOR TYPE FLAG
  1313					; **********************************************************************
  1314
  1315	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
  1316
  1317					; **********************************************************************
  1318					;SPECIAL USERS MUUO INTERCEPT INSTRUCTION
  1319					; **********************************************************************
  1320
  1321	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
  1322
  1323					; **********************************************************************
  1324					;SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
  1325					; **********************************************************************
  1326
  1327	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
  1328
  1329					; **********************************************************************
  1330					;"SWITCH" CALL USAGE CONTROL
  1331					; **********************************************************************
  1332
  1333	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
  1334
  1335					; **********************************************************************
  1336					;SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
  1337					; **********************************************************************
  1338
  1339	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
  1340	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
  1341
  1342					; **********************************************************************
  1343					;SM10 (KS-10) PROCESSOR TYPE FLAG
  1344					; **********************************************************************
  1345
  1346	030524	000000	000000		SM10:	0	;IF -1 THIS IS A KS-10
  1347
  1348					; **********************************************************************
  1349					;RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
  1350					; **********************************************************************
  1351
  1352	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
  1353
  1354					; **********************************************************************
  1355					;SPECIAL FUTURE EXPANSION ROOM
  1356					; **********************************************************************
  1357
  1358					; **********************************************************************
  1359					;END OF FIXED STORAGE
  1360					; **********************************************************************
  1361
  1362	030577					LOC	30577
  1363	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page 1
DFNIAE	MAC	20-Nov-82 15:06		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0140

  1364					;#********************************************************************
  1365					; End of DFNIAT,PARAM,FIXED,DFNIA files
  1366					;#********************************************************************
  1367
  1368						XLIST
  1369
NO ERRORS DETECTED

PROGRAM BREAK IS 030601
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:05.889

69P CORE USED
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page S-1
DFNIAE	MAC	20-Nov-82 15:06		SYMBOL TABLE                                                                       SEQ 0141

ABORT		400000	spd	DEBUG3		000400	spd	IOCLR		200000	spd	LDATAF		000200	spd	
ADRPE	100000	000000	spd	DEBUG4		000200	spd	IPAER	000200	000000	spd	LDCASD		040020	spd	
ALL	740000	000000	spd	DEBUG6		000040	spd	ITERAT		000005	spd	LDIOPF		040400	spd	
ALTCHH		000000	ext	DECVER		000002	spd	ITRCH1		030104		LDLNK		027774		
ALTCHK	007000	000000		DELAY	005000	000000		ITRCNT		030024		LDMCAT		000002	spd	
ALTMGO		030063		DF22F		030142		JEN	254500	000000		LDNXER		042000	spd	
ANXM		010000	spd	DGRCV		000005	spd	JOB41		000041	spd	LDPAER		041000	spd	
AROV		400000	spd	DGSNT		000001	spd	JOBAPR		000125	spd	LDPTT		000003	spd	
AROVU		000010	spd	DIAGMN		030002		JOBCNI		000126	spd	LDPWRF		040100	spd	
AST		030252		DING		010000	spd	JOBDDT		000074	spd	LDSBER		044000	spd	
ATSIN		030253		DINIT	040000	000000	spd	JOBFF		000121	spd	LECASD		100020	spd	
BEGEND		030057		DOLLAR		030261		JOBOPC		000130	spd	LEIOPF		100400	spd	
BEGIN		030000		DROPDV	037240	000002		JOBREL		000044	spd	LENXER		102000	spd	
BEGIN1		030010		DSPEAR		004000	spd	JOBREN		000124	spd	LEPAER		101000	spd	
BELL		030256		EBUSPE		004000	spd	JOBSA		000120	spd	LEPWRF		100100	spd	
BIS		020000	spd	ECOMP	000020	000000	spd	JOBSYM		000116	spd	LESBER		104000	spd	
CALL	200000	000000	spd	ENDFIX		030577		JOBTPC		000127	spd	LEUPFW		000420	spd	
CCA		000014	spd	ENDUUO	037500	000004		JOBUSY		000117	spd	LEVNCD		100000	spd	
CFIBF	104000	000100		EOPUUO	037700	000004		JOBUUO		000040	spd	LEVNPA		400000	spd	
CFLUSH	037100	000004		ERFLG		000015		JOBVER		000137	spd	LEVNPD		200000	spd	
CHAIN		000004	spd	ERLOOP	035000	000000		JRSTF	254100	000000		LEXCMP		000000	spd	
CHNOFF		001000	spd	ERLP1	035040	000000		JSYS	104000	000000		LFLGCL		020000	spd	
CHNON		002000	spd	ERLP2	035100	000000		KAHZ50		000002	spd	LFLGDS		040000	spd	
CINVAL	037040	000004		ERMORE		030101		KAIFLG		030040		LFLGEN		100000	spd	
CLK		001000	spd	ERRHLT	037600	000004		KL10		000001	spd	LFLGST		010000	spd	
CLKCLR		001000	spd	ERRPC		030052		KLFLG		030041		LFP		030254		
CLKDIS		004000	spd	ERRTLS		030053		LAPRAL		127520	spd	LGWC	000100	000000	spd	
CLKENB		002000	spd	ERSTOP		002000	spd	LAPRP1		000001	spd	LINSTF		000400	spd	
CLKU		001000	spd	ERUUO	036000	000000		LAPRP2		000002	spd	LINT		000010	spd	
CLOCKF		030045		EXCASB		000001	spd	LAPRP3		000003	spd	LIOCLR		200000	spd	
CLOKOP	037540	000004		EXIOT		004000	spd	LAPRP4		000004	spd	LIOPFE		000400	spd	
CMDQAV		000400	spd	FATAL	037640	000004		LAPRP5		000005	spd	LKNTRP		000430	spd	
CNTLC		030062		FOV		040000	spd	LAPRP6		000006	spd	LKTRP		000431	spd	
CNTRC		000004	spd	FOVU		000100	spd	LAPRP7		000007	spd	LLACBL		400000	spd	
COMMA		030244		FQUERR		002000	spd	LAROVT		000421	spd	LLDUSB		100000	spd	
CONSW		030046		FRD36	037340	000004		LAST	010000	000000	spd	LLPRCN		200000	spd	
CPOPJ		030065		FRD8	037400	000004		LAXER	000400	000000	spd	LMUUO		000424	spd	
CPOPJ1		030064		FRDLNK		027773		LCASDE		000020	spd	LMUUOP		000425	spd	
CRAMPE	004000	000000	spd	FREAD	037300	000004		LCASLD		200000	spd	LNXMEN		002000	spd	
CRLF		030242		FSELEC	037240	000004		LCASLO		400000	spd	LNXMER		002000	spd	
CRLF2		030243		FSELNK		027772		LCASWB		200000	spd	LOGO	400000	000000	spd	
CRY0		200000	spd	FUNCT	040000	000000	spd	LCASWD		000020	spd	LOOP	100000	000000	spd	
CRY1		100000	spd	FXU		000100	spd	LCCASD		020020	spd	LOOPER		004000	spd	
CSHFLG		030506		GENEPE		100000	spd	LCHNOF		001000	spd	LOOPGM		040000	spd	
CSHMEM		030507		GET	262740	000000		LCHNON		002000		LOOPTS		020000	spd	
CSRCHN	100000	000000	spd	GO	260740	000000		LCIOPF		020400	spd	LPAREN		001000	spd	
CSRRQS	200000	000000	spd	GOTO	300000	000000	spd	LCNTRP		000434	spd	LPARER		001000	spd	
CWRTBI	037140	000004		HALT	254200	000000		LCNXER		022000	spd	LPDOVT		000422	spd	
CYCL60		030505		HYPEN		030250		LCPAER		021000	spd	LPFWPC		000426	spd	
DCK		000040	spd	IDLE	000100	000000	spd	LCPWRF		020100	spd	LPGFTR		000427	spd	
DCOMP	000040	000000	spd	INHCSH		000020	spd	LCSBER		024000	spd	LPICH1		000100	spd	
DDTLNK		027775		INHFLT		200000	spd	LCSLOA		200000	spd	LPICH2		000040	spd	
DDTSRT		030007		INHMSG		100000	spd	LCSLOO		400000	spd	LPICH3		000020	spd	
DEBUG1		002000	spd	INHPAG		000100	spd	LCTRP		000435	spd	LPICH4		000010	spd	
DEBUG2		001000	spd	INXM		000100	spd	LCWSX		000040	spd	LPICH5		000004	spd	
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page S-2
DFNIAE	MAC	20-Nov-82 15:06		SYMBOL TABLE                                                                       SEQ 0142

LPICH6		000002	spd	LUUO22		030070		NSARD		000010	spd	PION		000200	spd	
LPICH7		000001	spd	LUUO23		030070		NSAWR		000011	spd	PJRST	254000	000000		
LPICHA		000177	spd	LUUO24		030070		NXMU		010000	spd	PK		000012		
LPICLR		010000	spd	LUUO25		030070		OP		000011		PLIRD		000007	spd	
LPIIP1		040000	spd	LUUO26		030070		OPRSEL		000010	spd	PLIST		030303		
LPIIP2		020000	spd	LUUO27		000000*	spd	OPTIME		030224		PLISTE		030504		
LPIIP3		010000	spd	LUUO3		000000*	spd	OVN	000020	000000	spd	PLISTS		030304		
LPIIP4		004000	spd	LUUO30		030070		P		000017		PLIWR		000006	spd	
LPIIP5		002000	spd	LUUO31		030070		PAG		000010	spd	PLUS		030251		
LPIIP6		001000	spd	LUUO32		030070		PALERS		001000	spd	PNT1	037040	000000		
LPIIP7		000400	spd	LUUO33		030070		PARCLR		200000	spd	PNT11	037440	000000		
LPIOFF		000400	spd	LUUO4		000000*	spd	PARDIS		100000	spd	PNT11F	037440	000001		
LPION		000200	spd	LUUO5		000000*	spd	PAREA1	711523	655207	spd	PNT1F	037040	000001		
LPNTRP		000436	spd	LUUO6		000000*	spd	PAREA2		000000	spd	PNT2	037100	000000		
LPRCH1		000100	spd	LUUO7		000000*	spd	PAREA3	444656	514100	spd	PNT2F	037100	000001		
LPRCH2		000040	spd	LUUOI		000041	spd	PAREA4	605664	000000	spd	PNT3	037140	000000		
LPRCH3		000020	spd	LWRITE		000100	spd	PAREA5		000000	spd	PNT3F	037140	000001		
LPRCH4		000010	spd	MAPADR	037540	000002		PAREA6		000000	spd	PNT4	037200	000000		
LPRCH5		000004	spd	MAPCNK	037640	000002		PAREA7		030035		PNT4F	037200	000001		
LPRCH6		000002	spd	MAPMEM	037000	000004		PAREA8		030036		PNT5	037240	000000		
LPRCH7		000001	spd	MAPNEW		030143		PARENB		040000	spd	PNT5F	037240	000001		
LPTRP		000437	spd	MAPPNT	037740	000002		PARU		004000	spd	PNT6	037300	000000		
LPWRFE		000100	spd	MAPSET	037600	000002		PASCNT		030047		PNT6F	037300	000001		
LPWRFL		000100	spd	MARGIN		030055		PAT		000014		PNT7	037340	000000		
LREQSE		004000	spd	MBCN		000016		PBELL	037040	000007		PNT7F	037340	000001		
LRQCLR		020000	spd	MBERR	002000	000000	spd	PCLEAR		400000	spd	PNTA	037000	000000		
LSBSEN		004000	spd	MCATLD		000002	spd	PCRL	037000	030242		PNTADF	037400	000001		
LSBUSE		004000	spd	MCNVER		000000	spd	PCRL2	037000	030243		PNTADR	037400	000000		
LSCASD		010020	spd	MEMLOW		030145		PCRL2F	037040	030243		PNTAF	037000	000001		
LSECMO		040000	spd	MEMMAP		000001	spd	PCRLF	037040	030242		PNTAL	037740	000000		
LSIOPF		010400	spd	MEMSEG	037440	000002		PDEC	006000	000000		PNTALF	037740	000001		
LSMODE		040000	spd	MEMSIZ		030146		PDECF	002000	000000		PNTCHF	037500	000001		
LSNTRP		000432	spd	MEMTOT		030144		PDISF		030221		PNTCHR	037500	000000		
LSNXER		012000	spd	MEMZRO	037500	000002		PDLOVU		200000	spd	PNTCI	037000	000000		
LSPAER		011000	spd	MINUS		030250		PDSABL		000040	spd	PNTCIF	037040	000000		
LSPWRF		010100	spd	MODDVC		000040	spd	PENABL		000020	spd	PNTCW	037100	000002		
LSSBER		014000	spd	MODDVL		030000	spd	PERIOD		030245		PNTCWF	037140	000002		
LSTRP		000433	spd	MODDVU		030000	spd	PFORCE	037040	000026		PNTDCC	003000	000000		
LTRP3T		000423	spd	MODLNK		027776		PFSTRT		030005		PNTDCF	037640	000001		
LTRPAE		020000	spd	MODPCP	037300	000002		PGMINT	265000	030011		PNTDCL	010000	000000		
LTRPEN		020000	spd	MODPCU	037340	000002		PGMNAM		000000	ext	PNTDCP	004000	000000		
LUSCMP		000040	spd	MONCTL		030043		PI00RQ	020000	000000	spd	PNTDEC	037640	000000		
LUUO		000040	spd	MONFLG		030042		PIA00		000004	spd	PNTDS	037700	000000		
LUUO1		000000*	spd	MONTEN		030044		PIA01		000002	spd	PNTDSF	037700	000001		
LUUO10		000000*	spd	MONTYP		030516		PIA02		000001	spd	PNTENB		030220		
LUUO11		030070		MPER	200000	000000	spd	PICHN1		000100	spd	PNTEXT		030021		
LUUO12		030070		MPRUN		000010	spd	PICHN2		000040	spd	PNTFLG		030217		
LUUO13		030070		MPVU		020000	spd	PICHN3		000020	spd	PNTHW	037540	000000		
LUUO14		030070		MSG	100000	000000	spd	PICHN4		000010	spd	PNTHWF	037540	000001		
LUUO15		030070		MTROP	037200	000004		PICHN5		000004	spd	PNTINH		030222		
LUUO16		030070		MVRERR		001000	spd	PICHN6		000002	spd	PNTLPT		020000	spd	
LUUO17		030070		NEXM	020000	000000	spd	PICHN7		000001	spd	PNTMGN	037700	000002		
LUUO2		000000*	spd	NIA	200000	000000	spd	PICHNA		000177	spd	PNTMSF	037040	000000		
LUUO20		030070		NOPNT		040000	spd	PICLR		010000	spd	PNTMSG	037000	000000		
LUUO21		030070		NOTWC0	040000	000000	spd	PIOFF		000400	spd	PNTNAM		030020		
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page S-3
DFNIAE	MAC	20-Nov-82 15:06		SYMBOL TABLE                                                                       SEQ 0143

PNTNM	037200	000002		SADR5		000000*		TXNOT	040000	000000	spd	$SVUPC		030114		
PNTOCC	001000	000000		SADR6		030007		TXTINH		000200	spd	$SVUUO		030113		
PNTOCF	037740	000003		SADR7	254200	000000*		TXYES	020000	000000	spd	$TABF		030235		
PNTOCS	037700	000003		SADR8	254200	000000*		USER		030037		$TTCHR		030231		
PNTOCT	037600	000000		SADR9	254200	000000*		USERF		010000	spd	$TWCNT		030225		
PNTOTF	037600	000001		SBINIT		030011		USRASB		000001	spd	$TYPNB		030233		
PNTSIX	037000	000002		SCOPE		030116		USRCRF		030241		$UMODE		030032		
PNTSPC		030223		SCOPE1		000000	ext	USRLFF		030240		$UORTX		030067		
PNTSXF	037040	000002		SCOPER	027000	000000		UUODIS		030124		$USRHL		030073		
PORT	400000	000000	spd	SELLAR		040000	spd	UUOEXT		030065		$UUOER		030070		
PORTP	400000	000000	spd	SFSTRT		030004		UUORTN		030066		$VTF		030237		
PPDEC		030127	ext	SHWC	000040	000000	spd	UUOSKP		030064		%ACTFL		030121		
PPDECF		030125	ext	SINCYC		020000	spd	WRNSA		000011	spd	%ACTUL		030122		
PSIXL	037600	000003		SLASH		030260		WRPLI		000006	spd	%COREC		030120		
PSIXLF	037640	000003		SM10		030524		$$MUUO		030517		%CORFL		030117		
PSIXM	037100	000000		SNDDG		000001	spd	$$OUTE		030520		%DISCR		030123		
PSIXMF	037200	000000		SPACE		030246		$$TAX1		030522		%ERHI1		030512		
PSP	037000	000040		SPARE1		010000	spd	$$TAX2		030523		%ERHI2		030513		
PSPF	037040	000040		SPARE2		000100	spd	$$TOGG		030521		%ERHI3		030514		
PTTLD		000003	spd	SRTDDT		030007		$$UUO		030515		.DELAY		000000	ext	
PUT	261740	000000		START		030017	ext	$ACC0		030106		.JB41		000041	spd	
PVPAGI		030511		START1		030013		$BEND1		030060		.JBAPR		000125	spd	
PWFCLR		400000	spd	START2		030014		$BEND2		030061		.JBCNI		000126	spd	
Q		000013		START3		030015		$CHRIN		030232		.JBDDT		000074	spd	
QUEST		030257		START4		030016		$CRLF		030234		.JBFF		000121	spd	
RADIX		030262		START5		030017		$DEVCH		000017	spd	.JBOPC		000130	spd	
RADLSC		030264		STARTA		030010	ext	$DSKUP		030033		.JBREL		000044	spd	
RADLSP		030263		SUBLNK		027777		$DVCH1		000016	spd	.JBREN		000124	spd	
RANDBS		030022		SWITCH	037400	000002		$DVOFF		030226		.JBSA		000120	spd	
RCCNT		000004	spd	SWPTAB		030525		$EMODE		030031		.JBSYM		000116	spd	
RDNSA		000010	spd	SWTEXR		030023		$FFF		030236		.JBTPC		000127	spd	
RDPLI		000007	spd	SYSEXR		030003		$IBUF		030274		.JBUSY		000117	spd	
REENTR		030006		TAB		030247		$INEXT		030300		.JBUUO		000040	spd	
RELIAB		000400	spd	TCOMP		002000	spd	$INNM		030277		.JBVER		000137	spd	
REPT		000015	spd	TDENA	000100	000000	spd	$ITRHL		030071		.LA		000000	spd	
REPT1		000016	spd	TESTPC		030051		$ITRX1		030072		.LADDR	000100	000000	spd	
REPTU		030115		TICKS		030054		$LPAPE		000001	spd	.LAND		000000	spd	
REPTUO	034000	000000		TOTALS		100000	spd	$MMAP		030034		.LB		000000	spd	
REQSET		004000	spd	TRACET		400000	spd	$MODVL		030027		.LBAD		000000	spd	
RESQAV		000200	spd	TSTEBF		200000	spd	$MODVU		030030		.LBUS		000000	spd	
RESRT1		030076		TTALTM	037340	000003		$OBUF		030265		.LCCCA		000000	spd	
RESRT2		030077		TTICHR	037000	000003		$ONETM		030056		.LCCCC		000000	spd	
RETURN		030012		TTICLR	037500	000003		$OUTEX		030271		.LCCCE		000000	spd	
RQINT	010000	000000	spd	TTICNV	037240	000003		$OUTNM		030270		.LCCCP		000000	spd	
RSTART		200000	spd	TTIDEC	037200	000003		$PARER		030100		.LCCEB		000000	spd	
RTN	263740	000000		TTINO	037100	000003		$PNAME		030025		.LCCEF		000000	spd	
RTP		030255		TTIOCT	037140	000003		$PSHER		030103		.LCCER		000000	spd	
RUNALL		010000	spd	TTIYES	037040	000003		$PVER		030026		.LCCFZ		000000	spd	
RUNFLG		030050		TTLOOK	037300	000003		$RSRTX		030074		.LCCGC		000000	spd	
SADR1		030000		TTNBRF		030510		$RSRTY		030075		.LCCIA		000000	spd	
SADR10	254200	000000*		TTSIXB	037400	000003		$SPAG1		030112		.LCCLW		000000	spd	
SADR11	254200	000000*		TTYFIL		030227		$START		030001		.LCCMB		000000	spd	
SADR2		030000		TTYINP	037440	000003		$SVAPR		030110		.LCCMP		000000	spd	
SADR3		030000		TTYSPD		030230		$SVPAG		030111		.LCCOF		000000	spd	
SADR4		030007		TXALL	060000	000000	spd	$SVPI		030107		.LCCON		000000	spd	
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page S-4
DFNIAE	MAC	20-Nov-82 15:06		SYMBOL TABLE                                                                       SEQ 0144

.LCCPP		000000	spd	.LSORC		000000	spd	.MOP		000017	spd	.RCCMP		130000	spd	
.LCCRA		000000	spd	.LSPAR		000000	spd	.MOR		000007	spd	.RCCOF		010000	spd	
.LCCXA		000000	spd	.LTIM		000000	spd	.MPAR		000001	spd	.RCCON		030000	spd	
.LCENA		000000	spd	.LTWB		000000	spd	.MPLUS		000007	spd	.RCCPP		150000	spd	
.LCJP		000000	spd	.LXNOR		000000	spd	.MPUSH		000017	spd	.RCCRA		050000	spd	
.LCJPP		000000	spd	.LXOR		000000	spd	.MRAM		000001	spd	.RCCXA		070000	spd	
.LCJS		000000	spd	.MA		000017	spd	.MRDLM		000037	spd	.RCENA	000400	000000	spd	
.LCJV		000000	spd	.MADDR		007777	spd	.MRFCT		000017	spd	.RCJP		000060	spd	
.LCONT		000000	spd	.MAND		000007	spd	.MRMIN		000007	spd	.RCJPP		000260	spd	
.LCRTN		000000	spd	.MB		000017	spd	.MRPCT		000017	spd	.RCJS		000020	spd	
.LCRY		000000	spd	.MBAD		000001	spd	.MS0A		000007	spd	.RCJV		000140	spd	
.LD		000000	spd	.MBUS		000007	spd	.MS0B		000007	spd	.RCONT		000340	spd	
.LDISA		000000	spd	.MCCCA		000037	spd	.MS0Q		000007	spd	.RCRTN		000240	spd	
.LENA		000000	spd	.MCCCC		000037	spd	.MSAB		000007	spd	.RCRY		000400	spd	
.LFUNC		000000	spd	.MCCCE		000037	spd	.MSAQ		000007	spd	.RD	001000	000000	spd	
.LJ		010000	spd	.MCCCP		000037	spd	.MSD0		000007	spd	.RDISA		000000	spd	
.LJMAP		000000	spd	.MCCEB		000037	spd	.MSDA		000007	spd	.RENA	000400	000000	spd	
.LJRP		000000	spd	.MCCEF		000037	spd	.MSDQ		000007	spd	.RFUNC	010000	000000	spd	
.LJSRP		000000	spd	.MCCER		000037	spd	.MSELC		000007	spd	.RJ		000000	spd	
.LJZ		000000	spd	.MCCFZ		000037	spd	.MSELE		000007	spd	.RJMAP		000040	spd	
.LLDCT		000000	spd	.MCCGC		000037	spd	.MSELF		000007	spd	.RJRP		000160	spd	
.LLDLM		000000	spd	.MCCIA		000037	spd	.MSELM		000007	spd	.RJSRP		000120	spd	
.LLOOP		000000	spd	.MCCLW		000037	spd	.MSELP		000007	spd	.RJZ		000000	spd	
.LLSAD		000000	spd	.MCCMB		000037	spd	.MSK		000037	spd	.RLDCT		000300	spd	
.LMARK		000000	spd	.MCCMP		000037	spd	.MSKCN		000037	spd	.RLDLM		230000	spd	
.LMGC		000001	spd	.MCCOF		000037	spd	.MSKMB		000037	spd	.RLOOP		000320	spd	
.LNAND		000000	spd	.MCCON		000037	spd	.MSMIN		000007	spd	.RLSAD		200000	spd	
.LOENA		002000	spd	.MCCPP		000037	spd	.MSORC		000007	spd	.RMARK		000002	spd	
.LOP		000000	spd	.MCCRA		000037	spd	.MSPAR		000001	spd	.RMGC		000000	spd	
.LOR		000000	spd	.MCCXA		000037	spd	.MTIM		000001	spd	.RNAND	050000	000000	spd	
.LPAR		004000	spd	.MCENA		000001	spd	.MTWB		000017	spd	.ROENA		000000	spd	
.LPLUS		000000	spd	.MCJP		000017	spd	.MXNOR		000007	spd	.ROP		000020	spd	
.LPUSH		000000	spd	.MCJPP		000017	spd	.MXOR		000007	spd	.ROR	030000	000000	spd	
.LRAM		000000	spd	.MCJS		000017	spd	.PNTDC		000000	ext	.RPAR		000000	spd	
.LRDLM		000000	spd	.MCJV		000017	spd	.PNTDL		030130	ext	.RPLUS		000000	spd	
.LRFCT		000000	spd	.MCONT		000017	spd	.PNTDP		030126	ext	.RPUSH		000100	spd	
.LRMIN		000000	spd	.MCRTN		000017	spd	.PNTOC		000000	ext	.RRAM	000200	000000	spd	
.LRPCT		000000	spd	.MCRY		000001	spd	.RA	000010	000000	spd	.RRDLM		220000	spd	
.LS0A		000000	spd	.MD		000007	spd	.RADDR		000000	spd	.RRFCT		000200	spd	
.LS0B		000000	spd	.MDISA		000001	spd	.RAND	040000	000000	spd	.RRMIN	020000	000000	spd	
.LS0Q		000000	spd	.MENA		000001	spd	.RB		400000	spd	.RRPCT		000220	spd	
.LSAB		000000	spd	.MFUNC		000007	spd	.RBAD		000001	spd	.RS0A	400000	000000	spd	
.LSAQ		000000	spd	.MJ		007777	spd	.RBUS		001000	spd	.RS0B	300000	000000	spd	
.LSD0		000000	spd	.MJMAP		000017	spd	.RCCCA		000000	spd	.RS0Q	200000	000000	spd	
.LSDA		000000	spd	.MJRP		000017	spd	.RCCCC		030000	spd	.RSAB	100000	000000	spd	
.LSDQ		000000	spd	.MJSRP		000017	spd	.RCCCE		160000	spd	.RSAQ		000000	spd	
.LSELC		000000	spd	.MJZ		000017	spd	.RCCCP		140000	spd	.RSD0	700000	000000	spd	
.LSELE		000000	spd	.MLDCT		000017	spd	.RCCEB		040000	spd	.RSDA	500000	000000	spd	
.LSELF		000000	spd	.MLDLM		000037	spd	.RCCEF		060000	spd	.RSDQ	600000	000000	spd	
.LSELM		000000	spd	.MLOOP		000017	spd	.RCCER		100000	spd	.RSELC		004000	spd	
.LSELP		000000	spd	.MLSAD		000037	spd	.RCCFZ		020000	spd	.RSELE		005000	spd	
.LSK		000000	spd	.MMARK		000001	spd	.RCCGC		010000	spd	.RSELF		003000	spd	
.LSKCN		000000	spd	.MMGC		001777	spd	.RCCIA		110000	spd	.RSELM		002000	spd	
.LSKMB		000000	spd	.MNAND		000007	spd	.RCCLW		170000	spd	.RSELP		001000	spd	
.LSMIN		000000	spd	.MOENA		000001	spd	.RCCMB		120000	spd	.RSK		010000	spd	
DFNIA	MACRO %53A(1152) 19:59 24-Sep-84 Page S-5
DFNIAE	MAC	20-Nov-82 15:06		SYMBOL TABLE                                                                       SEQ 0145

.RSKCN		240000	spd	
.RSKMB		210000	spd	
.RSMIN	010000	000000	spd	
.RSORC	100000	000000	spd	
.RSPAR		000004	spd	
.RTIM		000010	spd	
.RTWB		000360	spd	
.RXNOR	070000	000000	spd	
.RXOR	060000	000000	spd	
ABORT	   767#
ADRPE	    95#                                                                                                            SEQ 0146
ALL	   232#
ALTCHH	     9#	   295
ALTMGO	  1121#
ANXM	  1035#
AROV	  1035#
AROVU	  1035#
AST	  1236#
ATSIN	  1237#
BEGEND	  1117#
BEGIN	    70	    71	    72	   982	   983	  1048#
BEGIN1	  1064#	  1118
BELL	  1240#
BIS	  1035#
CALL	   305#
CCA	  1035#
CHAIN	   787#
CHNOFF	  1035#
CHNON	  1035#
CLK	  1035#
CLKCLR	  1035#
CLKDIS	  1035#
CLKENB	  1035#
CLKU	  1035#
CLOCKF	  1103#
CMDQAV	   260#
CNTLC	  1120#
CNTRC	   143#
COMMA	  1229#
CONSW	  1104#
CPOPJ	  1124#
CPOPJ1	  1122#
CRAMPE	   246#
CRLF	   917	   918	  1224#
CRLF2	   921	   922	  1226#
CRY0	  1035#
CRY1	  1035#
CSHFLG	  1283#
CSHMEM	  1284#
CSRCHN	   242#
CSRRQS	   241#
CYCL60	  1277#
DCK	  1035#
DCOMP	   249#
DDTLNK	   801#	  1062
DDTSRT	  1062#
DEBUG1	   116#
DEBUG2	   117#
DEBUG3	   118#
DEBUG4	   119#
DEBUG6	   120#
DECVER	    18#	  1083
DF22F	  1188#
DGRCV	   140#                                                                                                            SEQ 0147
DGSNT	   139#
DIAGMN	  1051#
DING	   773#
DINIT	   243#
DOLLAR	  1243#
DSKUPD	  1088
DSPEAR	   115#
EBUSPE	   257#
ECOMP	   250#
ENDFIX	  1363#
ERFLG	    53#
ERMORE	  1137#
ERRPC	  1108#
ERRTLS	  1109#
ERSTOP	   776#
EXCASB	    64#	  1086
EXIOT	  1035#
FOV	  1035#
FOVU	  1035#
FQUERR	   258#
FRDLNK	   799#
FSELNK	   798#
FUNCT	   231#
FXU	  1035#
GENEPE	   253#
GOTO	   306#
HYPEN	  1234#
IDLE	   248#
INHCSH	   784#
INHFLT	   110#
INHMSG	   111#
INHPAG	   781#
INXM	  1035#
IOCLR	  1035#
IPAER	    99#
ITERAT	    62#	  1081
ITRCH1	  1141#
ITRCNT	  1081#
JOB41	  1035#
JOBAPR	  1035#
JOBCNI	  1035#
JOBDDT	  1035#
JOBFF	  1035#
JOBOPC	  1035#
JOBREL	  1035#
JOBREN	  1035#
JOBSA	  1035#
JOBSYM	  1035#
JOBTPC	  1035#
JOBUSY	  1035#
JOBUUO	  1035#
JOBVER	  1035#
KA10	  1035                                                                                                             SEQ 0148
KAHZ50	   789#
KAIFLG	  1098#
KI10	  1035
KL10	    63#	  1035
KL10P0	  1035
KLFLG	  1099#
KLOLD	   997
LAPRAL	  1035#
LAPRP1	  1035#
LAPRP2	  1035#
LAPRP3	  1035#
LAPRP4	  1035#
LAPRP5	  1035#
LAPRP6	  1035#
LAPRP7	  1035#
LAROVT	  1035#
LAST	   310#
LAXER	    98#
LCASDE	  1035#
LCASLD	  1035#
LCASLO	  1035#
LCASWB	  1035#
LCASWD	  1035#
LCCASD	  1035#
LCHNOF	  1035#
LCHNON	  1035#
LCIOPF	  1035#
LCNTRP	  1035#
LCNXER	  1035#
LCPAER	  1035#
LCPWRF	  1035#
LCSBER	  1035#
LCSLOA	  1035#
LCSLOO	  1035#
LCTRP	  1035#
LCWSX	  1035#
LDATAF	  1035#
LDCASD	  1035#
LDIOPF	  1035#
LDLNK	   800#	  1051	  1053
LDMCAT	   129#	   141
LDNXER	  1035#
LDPAER	  1035#
LDPTT	   130#	   142
LDPWRF	  1035#
LDSBER	  1035#
LECASD	  1035#
LEIOPF	  1035#
LENXER	  1035#
LEPAER	  1035#
LEPWRF	  1035#
LESBER	  1035#
LEUPFW	  1035#                                                                                                            SEQ 0149
LEVNCD	  1035#
LEVNPA	  1035#
LEVNPD	  1035#
LEXCMP	  1035#
LFLGCL	  1035#
LFLGDS	  1035#
LFLGEN	  1035#
LFLGST	  1035#
LFP	  1238#
LGWC	   100#
LINSTF	  1035#
LINT	  1035#
LIOCLR	  1035#
LIOPFE	  1035#
LKNTRP	  1035#
LKTRP	  1035#
LLACBL	  1035#
LLDUSB	  1035#
LLPRCN	  1035#
LMUUO	  1035#
LMUUOP	  1035#
LNXMEN	  1035#
LNXMER	  1035#
LOGO	    93#
LOOP	   230#
LOOPER	   775#
LOOPGM	   112#
LOOPTS	   113#
LPAREN	  1035#
LPARER	  1035#
LPDOVT	  1035#
LPFWPC	  1035#
LPGFTR	  1035#
LPICH1	  1035#
LPICH2	  1035#
LPICH3	  1035#
LPICH4	  1035#
LPICH5	  1035#
LPICH6	  1035#
LPICH7	  1035#
LPICHA	  1035#
LPICLR	  1035#
LPIIP1	  1035#
LPIIP2	  1035#
LPIIP3	  1035#
LPIIP4	  1035#
LPIIP5	  1035#
LPIIP6	  1035#
LPIIP7	  1035#
LPIOFF	  1035#
LPION	  1035#
LPNTRP	  1035#
LPRCH1	  1035#                                                                                                            SEQ 0150
LPRCH2	  1035#
LPRCH3	  1035#
LPRCH4	  1035#
LPRCH5	  1035#
LPRCH6	  1035#
LPRCH7	  1035#
LPTRP	  1035#
LPWRFE	  1035#
LPWRFL	  1035#
LREQSE	  1035#
LRQCLR	  1035#
LSBSEN	  1035#
LSBUSE	  1035#
LSCASD	  1035#
LSECMO	  1035#
LSIOPF	  1035#
LSMODE	  1035#
LSNTRP	  1035#
LSNXER	  1035#
LSPAER	  1035#
LSPWRF	  1035#
LSSBER	  1035#
LSTRP	  1035#
LTRP3T	  1035#
LTRPAE	  1035#
LTRPEN	  1035#
LUSCMP	  1035#
LUUO	  1035#
LUUO1	   289#	  1168	  1169
LUUO10	   296#	  1168	  1173
LUUO11	  1168	  1173
LUUO12	  1168	  1174
LUUO13	  1168	  1174
LUUO14	  1168	  1175
LUUO15	  1168	  1175
LUUO16	  1168	  1176
LUUO17	  1168	  1176
LUUO2	   290#	  1168	  1170
LUUO20	  1168	  1177
LUUO21	  1168	  1177
LUUO22	  1168	  1178
LUUO23	  1168	  1178
LUUO24	  1168	  1179
LUUO25	  1168	  1179
LUUO26	  1168	  1180
LUUO27	   297#	  1168	  1180
LUUO3	   291#	  1168	  1170
LUUO30	  1168	  1181
LUUO31	  1168	  1181
LUUO32	  1168	  1182
LUUO33	  1168	  1182
LUUO4	   292#	  1168	  1171
LUUO5	   293#	  1168	  1171                                                                                             SEQ 0151
LUUO6	   294#	  1168	  1172
LUUO7	   295#	  1168	  1172
LUUOI	  1035#
LWRITE	  1035#
MAPNEW	  1189#
MARGIN	  1111#
MBCN	    54#
MBERR	   247#
MCATLD	   141#
MCNVER	    17#	  1083
MEMLOW	  1191#
MEMMAP	    66#	  1089
MEMSIZ	  1192#
MEMTOT	  1190#
MINUS	  1233#
MODDVC	   783#
MODDVL	   982	   982#	  1084
MODDVU	   983	   983#	  1085
MODLNK	   802#	  1048
MONCTL	  1101#
MONFLG	  1100#
MONTEN	  1102#
MONTYP	  1315#
MPER	    94#
MPRUN	   265#
MPVU	  1035#
MSG	   304#
MVRERR	   259#
NEXM	    97#
NIA	   229#
NOPNT	   771#
NOTWC0	    96#
NSARD	   146#
NSAWR	   147#
NXMU	  1035#
OP	    49#
OPRSEL	   785#
OPTIME	  1203#
OVN	   102#
P	    55#	   828	   829	   830	   831	  1035#	  1123
PAG	  1035#
PALERS	   777#
PARCLR	  1035#
PARDIS	  1035#
PAREA1	    82#	  1079
PAREA2	    83#	  1080
PAREA3	    84#	  1077
PAREA4	    85#	  1078
PAREA5	    86#	  1090
PAREA6	    87#	  1091
PAREA7	  1090#
PAREA8	  1091#
PARENB	  1035#                                                                                                            SEQ 0152
PARU	  1035#
PASCNT	  1105#
PAT	    52#
PCLEAR	   251#
PDISF	  1200#
PDLOVU	  1035#
PDSABL	   263#
PENABL	   264#
PERIOD	  1230#
PFSTRT	  1057#
PGMNAM	     8#	  1082
PI00RQ	   244#
PIA00	   266#
PIA01	   267#
PIA02	   268#
PICHN1	  1035#
PICHN2	  1035#
PICHN3	  1035#
PICHN4	  1035#
PICHN5	  1035#
PICHN6	  1035#
PICHN7	  1035#
PICHNA	  1035#
PICLR	  1035#
PIOFF	  1035#
PION	  1035#
PK	    50#
PLIRD	   145#
PLIST	  1269#	  1269
PLISTE	  1269	  1271#
PLISTS	  1270#
PLIWR	   144#
PLUS	  1235#
PNTENB	  1199#
PNTEXT	  1078#
PNTFLG	  1198#
PNTINH	  1201#
PNTLPT	   772#
PNTNAM	  1077#
PNTSPC	  1202#
PORT	   228#
PORTP	   240#
PPDEC	     9#	   294
PPDECF	     9#	   290
PTTLD	   142#
PVPAGI	  1296#
PWFCLR	  1035#
Q	    51#
QUEST	  1241#
RADIX	  1244#
RADLSC	  1246#
RADLSP	  1245#
RANDBS	  1079#                                                                                                            SEQ 0153
RCCNT	   131#	   143
RDNSA	   134#	   146
RDPLI	   133#	   145
REENTR	  1059#
RELIAB	   779#
REPT	  1035#
REPT1	  1035#
REPTU	  1157#
REQSET	  1035#
RESQAV	   261#
RESRT1	  1134#
RESRT2	  1135#
RETURN	  1066#
RQINT	   245#
RSTART	   768#
RTP	  1239#
RUNALL	   114#
RUNFLG	  1106#
SADR1	    70#	  1055
SADR10	    79#	  1071
SADR11	    80#	  1072
SADR2	    71#	  1057
SADR3	    72#	  1059
SADR4	    73#
SADR5	    74#	  1120
SADR6	    75#	  1121
SADR7	    76#	  1068
SADR8	    77#	  1069
SADR9	    78#	  1070
SBINIT	   841	  1065#
SCOPE	  1158#
SCOPE1	     8#	   297
SELLAR	   254#
SFSTRT	  1055#
SHWC	   101#
SINCYC	   255#
SLASH	  1242#
SM10	  1346#
SNDDG	   128#	   139
SPACE	  1231#
SPARE1	   256#
SPARE2	   262#
SRTDDT	    73	    75	  1061#
START	     8#	    74	    76	    77	    78	    79	    80	  1049
START1	  1068#
START2	  1069#
START3	  1070#
START4	  1071#
START5	  1072#
STARTA	     8#	  1064
SUBLNK	   803#	  1065
SWPTAB	  1352#
SWTEXR	  1080#                                                                                                            SEQ 0154
SYSEXR	  1053#
TAB	  1232#
TCOMP	   270#
TDENA	   233#
TESTPC	  1107#
TICKS	  1110#
TOTALS	   769#
TRACET	   109#
TSTEBF	   252#
TTNBRF	  1290#
TTYFIL	  1206#
TTYSPD	  1207#
TXALL	   309#
TXNOT	   307#
TXTINH	   780#
TXYES	   308#
USER	  1097#
USERF	  1035#
USRASB	    65#	  1087
USRCRF	  1216#
USRLFF	  1215#
UUODIS	  1169#
UUOEXT	  1125#
UUORTN	  1126#
UUOSKP	  1123#
WRNSA	   135#	   147
WRPLI	   132#	   144
$$MUUO	  1321#
$$OUTE	  1327#
$$TAX1	  1339#
$$TAX2	  1340#
$$TOGG	  1333#
$$UUO	  1310#
$ACC0	  1148#
$BEND1	  1118#
$BEND2	  1119#
$CHRIN	  1209#
$CRLF	  1211#
$DEVCH	  1035#
$DSKUP	  1088#
$DVCH1	  1035#
$DVOFF	  1205#
$EMODE	  1086#
$FFF	  1213#
$IBUF	  1261#
$INEXT	  1263#
$INNM	  1262#
$ITRHL	  1129#
$ITRX1	  1130#
$LPAPE	    68#
$MMAP	  1089#
$MODVL	  1084#
$MODVU	  1085#                                                                                                            SEQ 0155
$OBUF	  1252#
$ONETM	  1112#
$OUTEX	  1254#
$OUTNM	  1253#
$PAPER	  1035
$PARER	  1136#
$PNAME	  1082#
$PSHER	  1140#
$PVER	  1083#
$RSRTX	  1132#
$RSRTY	  1133#
$SPAG1	  1152#
$START	  1049#
$SVAPR	  1150#
$SVPAG	  1151#
$SVPI	  1149#
$SVUPC	  1155#
$SVUUO	  1154#
$TABF	  1212#
$TTCHR	  1208#
$TWCNT	  1204#
$TYPNB	  1210#
$UMODE	  1087#
$UORTX	  1127#
$USRHL	  1131#
$UUOER	  1128#	  1169
$VTF	  1214#
%ACTFL	  1161#
%ACTUL	  1162#
%COREC	  1160#
%CORFL	  1159#
%DISCR	  1163#
%ERHI1	  1302#
%ERHI2	  1303#
%ERHI3	  1304#
.DELAY	     9#	   293
.JB41	  1035#
.JBAPR	  1035#
.JBCNI	  1035#
.JBDDT	  1035#
.JBFF	  1035#
.JBOPC	  1035#
.JBREL	  1035#
.JBREN	  1035#
.JBSA	  1035#
.JBSYM	  1035#
.JBTPC	  1035#
.JBUSY	  1035#
.JBUUO	  1035#
.JBVER	  1035#
.LA	   496#
.LADDR	   384#
.LAND	   460#                                                                                                            SEQ 0156
.LB	   500#
.LBAD	   708#
.LBUS	   600#
.LCCCA	   516#
.LCCCC	   528#
.LCCCE	   572#
.LCCCP	   564#
.LCCEB	   532#
.LCCEF	   540#
.LCCER	   548#
.LCCFZ	   524#
.LCCGC	   520#
.LCCIA	   552#
.LCCLW	   576#
.LCCMB	   556#
.LCCMP	   560#
.LCCOF	   512#
.LCCON	   508#
.LCCPP	   568#
.LCCRA	   536#
.LCCXA	   544#
.LCENA	   480#
.LCJP	   644#
.LCJPP	   676#
.LCJS	   636#
.LCJV	   656#
.LCONT	   688#
.LCRTN	   672#
.LCRY	   624#
.LD	   476#
.LDISA	   484#
.LENA	   488#
.LFUNC	   440#
.LJ	   388#
.LJMAP	   640#
.LJRP	   660#
.LJSRP	   652#
.LJZ	   632#
.LLDCT	   680#
.LLDLM	   588#
.LLOOP	   684#
.LLSAD	   580#
.LMARK	   704#
.LMGC	   400#
.LNAND	   464#
.LOENA	   396#
.LOP	   628#
.LOR	   456#
.LPAR	   392#
.LPLUS	   444#
.LPUSH	   648#
.LRAM	   492#
.LRDLM	   592#                                                                                                            SEQ 0157
.LRFCT	   664#
.LRMIN	   452#
.LRPCT	   668#
.LS0A	   424#
.LS0B	   420#
.LS0Q	   416#
.LSAB	   412#
.LSAQ	   408#
.LSD0	   436#
.LSDA	   428#
.LSDQ	   432#
.LSELC	   616#
.LSELE	   620#
.LSELF	   612#
.LSELM	   608#
.LSELP	   604#
.LSK	   504#
.LSKCN	   596#
.LSKMB	   584#
.LSMIN	   448#
.LSORC	   404#
.LSPAR	   700#
.LTIM	   696#
.LTWB	   692#
.LXNOR	   472#
.LXOR	   468#
.MA	   498#
.MADDR	   386#
.MAND	   462#
.MB	   502#
.MBAD	   710#
.MBUS	   602#
.MCCCA	   518#
.MCCCC	   530#
.MCCCE	   574#
.MCCCP	   566#
.MCCEB	   534#
.MCCEF	   542#
.MCCER	   550#
.MCCFZ	   526#
.MCCGC	   522#
.MCCIA	   554#
.MCCLW	   578#
.MCCMB	   558#
.MCCMP	   562#
.MCCOF	   514#
.MCCON	   510#
.MCCPP	   570#
.MCCRA	   538#
.MCCXA	   546#
.MCENA	   482#
.MCJP	   646#
.MCJPP	   678#                                                                                                            SEQ 0158
.MCJS	   638#
.MCJV	   658#
.MCONT	   690#
.MCRTN	   674#
.MCRY	   626#
.MD	   478#
.MDISA	   486#
.MENA	   490#
.MFUNC	   442#
.MJ	   390#
.MJMAP	   642#
.MJRP	   662#
.MJSRP	   654#
.MJZ	   634#
.MLDCT	   682#
.MLDLM	   590#
.MLOOP	   686#
.MLSAD	   582#
.MMARK	   706#
.MMGC	   402#
.MNAND	   466#
.MOENA	   398#
.MOP	   630#
.MOR	   458#
.MPAR	   394#
.MPLUS	   446#
.MPUSH	   650#
.MRAM	   494#
.MRDLM	   594#
.MRFCT	   666#
.MRMIN	   454#
.MRPCT	   670#
.MS0A	   426#
.MS0B	   422#
.MS0Q	   418#
.MSAB	   414#
.MSAQ	   410#
.MSD0	   438#
.MSDA	   430#
.MSDQ	   434#
.MSELC	   618#
.MSELE	   622#
.MSELF	   614#
.MSELM	   610#
.MSELP	   606#
.MSK	   506#
.MSKCN	   598#
.MSKMB	   586#
.MSMIN	   450#
.MSORC	   406#
.MSPAR	   702#
.MTIM	   698#
.MTWB	   694#                                                                                                            SEQ 0159
.MXNOR	   474#
.MXOR	   470#
.PNTDC	     9#	   291
.PNTDL	     9#	   296
.PNTDP	     9#	   292
.PNTOC	     9#	   289
.RA	   497#
.RADDR	   385#
.RAND	   461#
.RB	   501#
.RBAD	   709#
.RBUS	   601#
.RCCCA	   517#
.RCCCC	   529#
.RCCCE	   573#
.RCCCP	   565#
.RCCEB	   533#
.RCCEF	   541#
.RCCER	   549#
.RCCFZ	   525#
.RCCGC	   521#
.RCCIA	   553#
.RCCLW	   577#
.RCCMB	   557#
.RCCMP	   561#
.RCCOF	   513#
.RCCON	   509#
.RCCPP	   569#
.RCCRA	   537#
.RCCXA	   545#
.RCENA	   481#
.RCJP	   645#
.RCJPP	   677#
.RCJS	   637#
.RCJV	   657#
.RCONT	   689#
.RCRTN	   673#
.RCRY	   625#
.RD	   477#
.RDISA	   485#
.RENA	   489#
.RFUNC	   441#
.RJ	   389#
.RJMAP	   641#
.RJRP	   661#
.RJSRP	   653#
.RJZ	   633#
.RLDCT	   681#
.RLDLM	   589#
.RLOOP	   685#
.RLSAD	   581#
.RMARK	   705#
.RMGC	   401#                                                                                                            SEQ 0160
.RNAND	   465#
.ROENA	   397#
.ROP	   629#
.ROR	   457#
.RPAR	   393#
.RPLUS	   445#
.RPUSH	   649#
.RRAM	   493#
.RRDLM	   593#
.RRFCT	   665#
.RRMIN	   453#
.RRPCT	   669#
.RS0A	   425#
.RS0B	   421#
.RS0Q	   417#
.RSAB	   413#
.RSAQ	   409#
.RSD0	   437#
.RSDA	   429#
.RSDQ	   433#
.RSELC	   617#
.RSELE	   621#
.RSELF	   613#
.RSELM	   609#
.RSELP	   605#
.RSK	   505#
.RSKCN	   597#
.RSKMB	   585#
.RSMIN	   449#
.RSORC	   405#
.RSPAR	   701#
.RTIM	   697#
.RTWB	   693#
.RXNOR	   473#
.RXOR	   469#
ALTCHK	   285#
CALC	   724#                                                                                                            SEQ 0161
CFIBF	   277#
CFLUSH	   953#
CINVAL	   952#
CLOKOP	   947#
CONCAT	   731#
CWRTBI	   954#
DELAY	   283#
DROPDV	   914#
ENDUUO	   960#	  1117
EOPUUO	   961#	  1119
ERLOOP	  1005#
ERLP1	  1006#
ERLP2	  1007#
ERRHLT	   848#
ERROR	  1014#
ERROR1	  1025#
ERUUO	  1004#
FATAL	   847#
FIELD	   737#
FMSG	   168#
FMSGC	   170#
FMSGCD	   176#
FMSGD	   173#
FRD36	   989#
FRD8	   990#
FREAD	   988#
FSELEC	   987#
GET	   831#
GO	   828#
HALT	    76	    77	    78	    79	    80	   833#	  1138
JEN	   835#
JRSTF	   834#
JSYS	   276#	   277
MAPADR	   970#
MAPCNK	   971#
MAPMEM	   967#
MAPPNT	   973#
MAPSET	   972#
MEMSEG	   969#
MEMZRO	   968#
MODPCP	   980#
MODPCU	   979#
MTROP	   948#
MWORD	   749#
PBELL	   923#
PCRL	   917#
PCRL2	   921#
PCRL2F	   922#
PCRLF	   918#
PDEC	   284#
PDECF	   280#
PFORCE	   925#
PGMINT	   841#                                                                                                            SEQ 0162
PJRST	   832#
PMSG	   927#
PMSGF	   930#
PNT1	   883#
PNT11	   897#
PNT11F	   898#
PNT1F	   884#
PNT2	   885#
PNT2F	   886#
PNT3	   887#
PNT3F	   888#
PNT4	   889#
PNT4F	   890#
PNT5	   891#
PNT5F	   892#
PNT6	   893#
PNT6F	   894#
PNT7	   895#
PNT7F	   896#
PNTA	   869#
PNTADF	   900#
PNTADR	   899#
PNTAF	   870#
PNTAL	   871#
PNTALF	   872#
PNTCHF	   882#
PNTCHR	   881#
PNTCI	   879#
PNTCIF	   880#
PNTCW	   915#
PNTCWF	   916#
PNTDCC	   281#
PNTDCF	   908#
PNTDCL	   286#
PNTDCP	   282#
PNTDEC	   907#
PNTDS	   909#
PNTDSF	   910#
PNTHW	   903#
PNTHWF	   904#
PNTMGN	   994#
PNTMSF	   876#
PNTMSG	   875#
PNTNM	   911#
PNTOCC	   279#
PNTOCF	   906#
PNTOCS	   905#
PNTOCT	   901#
PNTOTF	   902#
PNTSIX	   912#
PNTSXF	   913#
PSIXL	   873#
PSIXLF	   874#                                                                                                            SEQ 0163
PSIXM	   877#
PSIXMF	   878#
PSP	   919#
PSPF	   920#
PUT	   830#
REPTUO	  1008#
RGET	   204#
RPUT	   190#
RTN	   829#	  1125
S	   759#
SCOPER	   287#
SIXBTZ	   936#
SUBTAB	   220#
SWITCH	   942#
TASCIZ	   184#
TMSG	   157#
TMSGC	   159#
TMSGCD	   165#
TMSGD	   162#
TTALTM	   863#
TTICHR	   856#
TTICLR	   866#
TTICNV	   861#
TTIDEC	   860#
TTINO	   858#
TTIOCT	   859#
TTIYES	   857#
TTLOOK	   862#
TTSIXB	   864#
TTYINP	   865#
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 1
DFNIA1	MAC	18-Feb-84 20:30		Externs / Entrys                                                                   SEQ 0164

     1						TITLE	DFNIA (Port Functional Diagnostic)
     2
     3						SUBTTL	Externs / Entrys
     4
     5						SALL
     6
     7						SEARCH	DFNIA,MONSYM
     8	000137					LOC	137
     9	000137	000000	000002			MCNVER,,DECVER
    10	030600					LOC	ENDFIX+1
    11
    12					; Miscellaneous stuff
    13
    14						INTERN	UDEBUG			; no-IPA user mode debug switch
    15						INTERN	MDEBUG			; error message debug switch
    16						INTERN	LDEBUG			; ucode load debug switch
    17						INTERN	DDEBUG,DDUMP		; dump on error debug switch
    18						INTERN	EDEBUG			; expanded error message mode switch
    19						INTERN	PGMNAM			; program name
    20						INTERN	TXADDL			; additional text routine address
    21						ENTRY	START,STARTA		; start addresses
    22
    23					; Microcode routines
    24
    25						ENTRY	CALPAR,DWCRAM,DRCRAM,MLOADN,MLOADY,TLOAD,TFLOAD,MVPNT
    26						INTERN	CADDR,CWORDL,CWORDR,PARFLG,UVERSN,MLNUM
    27
    28					; Miscellaneous routines
    29
    30						ENTRY	CSRPNT,CSRENG,TRACE,RUPDAT,SUPDAT,SETENA,SETDSA,PACK4T,CNTPNT
    31						INTERN	FINPUT,FINECH,DSPRIN
    32						INTERN	STASNT,STARCV,.RREXP
    33
    34					; Test variables
    35
    36						ENTRY	TSTPNT,TSTEND
    37						INTERN	TSTNAM,TSTNUM,TSTSUB,TSTPC,TSTFLG,TSTMSK,TSTREP,TSTOFF
    38						INTERN	ALTF,TSLOAD,TAKFIL,SPEAR2,SPREP2,PMODE,TSTTAB
    39
    40					; Interrupt activity print routines
    41
    42						ENTRY	IPRINT
    43
    44					; Packet Handling Routines
    45
    46						ENTRY	BPACK,BPACKN,RWAIT,CHKINT,INSQUE,CHKRSP,RSPQUE,PNTRSP,CHKRQV
    47						ENTRY	CMDOPC,OPCPNT,TPCB,TIDLE,RDADDR,CONPNT,CONVIR,GETQUE,PUTQUE
    48						INTERN	CONTBL,NUMENT,RQAFLG,NEWENT,MTABLE,PTABLE,MCAT17
    49						INTERN	PACKET,RSPONS,BUFF,TPAT,TREGN,TREGD,TAMC,TH4000,TPRMSC,TRETRY
    50						INTERN	TDEST,TFMFLG,TRSFLG,TBSDFL,TPDFLG,TBYTE,TWORD,SADDR,TPTTVL
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 2
DFNIA1	MAC	18-Feb-84 20:30		Externs / Entrys                                                                   SEQ 0165

    51
    52					; Queue Print Routines
    53
    54						ENTRY	PQUEUE,PPAKC,PPAKR,PPAKF,PPCB,PPCBD
    55						INTERN	PCB,PTTFQ
    56
    57					; Tests 1-27
    58
    59						EXTERN	TST1,TST2,TST3,TST4,TST5,TST6,TST7,TST10,TST11,TST12
    60						EXTERN	TST13,TST14,TST15,TST16,TST17,TST20,TST21,TST22,TST23
    61						EXTERN	TST24,TST25,TST26,TST27
    62
    63					; Microcode Tests 2-3
    64
    65						EXTERN	T2M,T3M
    66
    67					; EXTERN's located in DFCIA3.MAC
    68
    69						EXTERN	CRCSAV,CRCOFF,CRCTAB
    70
    71					; EXTERN's located in DFNIAI.MAC (Port Handling Routines module)
    72
    73						EXTERN	LDEBUF,LDRAR,LDCRAM,LDCSR,RDEBUF,RDLAR,RDCRAM,RDCSR
    74						EXTERN	SETEBU,SETLAR,CLREBU,CHKCSR,ERESET,IPACLR,ISTOP
    75						EXTERN	IPASRT,IPASTP,IPASST,SLAST,SNEXT,EADDR,AADDR,SDATA
    76						EXTERN	INITPI,INITPD,SETVEC,.CONI,.CONO,.DATAI,.DATAO,USRION
    77						EXTERN	INTNUM,INTPC,INTTYP,INTCON,INTAPR,INTTIM,INTUSE,INTCSR,INTEND
    78						EXTERN	CHINIT,GETLOG,CCWPNT,LOGPNT,CBASE,.INPNT,.INWD1,ICWA0,ENABLE
    79						EXTERN	DSETUP,DEVREQ,DEVREL,SNARKF,FFF,HAVIPA,REQ1,REQ2,REL
    80						EXTERN	LOCDON,LOCPHY
    81
    82					; EXTERN's located in DFNIAU.MAC (Utility Routines module)
    83
    84						EXTERN	CLRBUF,TTYYES,STCLOK,PTIME,RUNTME,CURTIM,.CLOSE
    85						EXTERN	DEBTIM,FORPNT,CONVSX,FGETW,FINCMD,FIOFF,FOARG,.RESET
    86						EXTERN	.SWCHP,SWITT,.ISWT,SWCHPT,.RSWIT,.LSWIT,SWRGT,SWCOM,SCOSW
    87						EXTERN	.COMM,.CGOT,.SARG,.OARG,.DARG,ARGFLG,ARGUM,CHKARG,LASARG,DECYN
    88						EXTERN	SCOPE1,SCOOFF,BUFGEN,BUFCOM,WRDERR,PATPNT
    89
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 3
DFNIA1	MAC	18-Feb-84 20:30		Initialization                                                                     SEQ 0166

    90						SUBTTL	Initialization
    91
    92						SALL
    93
    94	030600				PGMNAM:	ASCIZ	$
    95	030600	015 012 104 106 116 	DFNIA NI Port Functional Diagnostic
    96	030601	111 101 040 116 111 
    97	030602	040 120 157 162 164 
    98	030603	040 106 165 156 143 
    99	030604	164 151 157 156 141 
   100	030605	154 040 104 151 141 
   101	030606	147 156 157 163 164 
   102	030607	151 143 015 012 000 	$
   103
   104	030610	402 00 0 00 030056 	SB:	SETZM	$ONETM			; reinit everything
   105	030611				START:
   106
   107					; First clear debug switches and set up PGMINT variables - MAPNEW, PVPAGI
   108
   109	030611	402 00 0 00 134255'		SETZM	UDEBUG#			; no-IPA user mode debug switch
   110	030612	402 00 0 00 134172'		SETZM	MDEBUG#			; error message debug switch
   111	030613	402 00 0 00 134166'		SETZM	LDEBUG#			; ucode load debug switch
   112	030614	402 00 0 00 134151'		SETZM	DDEBUG#			; dump on error debug switch
   113	030615	402 00 0 00 134156'		SETZM	EDEBUG#			; expanded error message switch
   114	030616	476 00 0 00 030143 		SETOM	MAPNEW			; map all memory
   115	030617	476 00 0 00 030511 		SETOM	PVPAGI			; always use paging
   116
   117					; MCPUS - Multiple cpu print switch - If this flag is cleared, the multiple
   118					; cpu message is printed in full, if set, only the question asking which
   119					; cpu to run on is asked.
   120
   121	030620	336 00 0 00 030056 		SKIPN	$ONETM			; first time through here?
   122	030621	402 00 0 00 134171'		SETZM	MCPUS#			; yes - clear the flag
   123
   124					; Set up cache usage
   125
   126	030622	402 00 0 00 030506 		SETZM	CSHFLG			; allow pgm and any buffer space 
   127	030623	402 00 0 00 030507 		SETZM	CSHMEM			;   to be in cache
   128
   129					; Init file input switch
   130
   131	030624	402 00 0 00 134161'		SETZM	FINPUT#			; initialize 'file input' switch
   132	030625	476 00 0 00 134160'		SETOM	FINECH#			; set echo switch
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 4
DFNIA1	MAC	18-Feb-84 20:30		Initialization                                                                     SEQ 0167

   133
   134					; Init flags/switches
   135
   136	030626	402 00 0 00 134162'		SETZM	FMTTYP#			; allow all data formats
   137	030627	402 00 0 00 134144'		SETZM	BONETM#			; clear $ONETM flag
   138	030630	336 00 0 00 030056 		SKIPN	$ONETM			; 1st time pgm init?
   139	030631	476 00 0 00 134144'		SETOM	BONETM			; yes - set $ONETM flag
   140	030632	332 00 0 00 030056 		SKIPE	$ONETM			; 1st time pgm init?
   141	030633	254 00 0 00 030651 		JRST	STRT1			; no - skip next bit of code
   142
   143					; First time only code
   144
   145	030634	402 00 0 00 000000*		SETZM	SWRGT			; yes - clear right hand switches
   146	030635	201 00 0 00 000000*		MOVEI	.RSWIT			; get start addr of prompt table
   147	030636	202 00 0 00 030525 		MOVEM	SWPTAB			; setup for switch prompting
   148
   149					; Init print enable, forced print switch, and statistics, and SPEAR flags
   150
   151	030637	211 00 0 00 023420 		MOVNI	^D10000			; set the printout limit
   152	030640	202 00 0 00 030220 		MOVEM	PNTENB			; so won't die too soon
   153	030641	402 00 0 00 000000*		SETZM	FORPNT			; clear forced print switch
   154	030642	402 00 0 00 030521 		SETZM	$$TOGGLE		; enable switches
   155	030643	260 17 0 00 043661 		GO	SZERO			; clear statistics
   156	030644	402 00 0 00 134244'		SETZM	SPEAR1#			; clear 'SPEAR initial msg prnted' flag
   157	030645	402 00 0 00 134245'		SETZM	SPEAR2#			; clear 'SPEAR err/fin msg prnted' flag
   158	030646	402 00 0 00 043151 		SETZM	CONTBL			; clear first word of config table
   159	030647	200 00 0 00 117020 		MOVE	[CONTBL,,CONTBL+1]	; build BLT pointer
   160	030650	251 00 0 00 043460 		BLT	CONTBL+^D199		; clear configuration table
   161
   162					; Standard startup and handle paging and clock
   163
   164	030651	260 17 0 00 000000*	STRT1:	GO	.RESET			; reset everything
   165	030652	265 00 0 00 030011 		PGMINT				; init the program
   166	030653	476 00 0 00 030516 		SETOM	MONTYP			; force to be TOPS-20
   167	030654	205 00 0 00 500000 		MOVSI	500000			; access bits for the page table
   168	030655	502 00 0 00 000400 		HLLM	400			; maps 340000 to physical 0
   169	030656	201 00 0 00 340000 		MOVEI	340000			; causes paging when E is calculated
   170	030657	202 00 0 00 000000*		MOVEM	CBASE			; channel routines now page correctly
   171	030660	260 17 0 00 000000*		GO	STCLOK			; start the clock ...
   172	030661	402 00 0 00 030047 		SETZM	PASCNT			; clear pass count
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 5
DFNIA1	MAC	18-Feb-84 20:30		Initialization                                                                     SEQ 0168

   173
   174					; Set/clear debug switches
   175
   176	030662	402 00 0 00 134255'		SETZM	UDEBUG			; clear no-IPA user mode debug switch
   177	030663	402 00 0 00 134172'		SETZM	MDEBUG			; clear error message debug switch
   178	030664	402 00 0 00 134166'		SETZM	LDEBUG			; clear ucode load debug switch
   179	030665	402 00 0 00 134151'		SETZM	DDEBUG			; clear dump on error debug switch
   180	030666	402 00 0 00 134156'		SETZM	EDEBUG			; clear expanded error message switch
   181	030667	260 17 0 00 000000*		GO	SWITT			; get switches
   182	030670	602 00 0 00 002000 		TRNE	DEBUG1			; debug switch set?
   183	030671	476 00 0 00 134255'		SETOM	UDEBUG			; set no-IPA user mode debug switch
   184	030672	602 00 0 00 001000 		TRNE	DEBUG2			; debug switch set?
   185	030673	476 00 0 00 134172'		SETOM	MDEBUG			; set error message debug switch
   186	030674	602 00 0 00 000400 		TRNE	DEBUG3			; debug switch set?
   187	030675	476 00 0 00 134166'		SETOM	LDEBUG			; set ucode load debug switch
   188	030676	602 00 0 00 000200 		TRNE	DEBUG4			; debug switch set?
   189	030677	476 00 0 00 134151'		SETOM	DDEBUG			; set dump on error debug switch
   190	030700	602 00 0 00 000040 		TRNE	DEBUG6			; debug switch set?
   191	030701	476 00 0 00 134156'		SETOM	EDEBUG			; set expanded error message switch
   192	030702	201 00 0 00 000005 		MOVEI	ITERAT			; get default pass count
   193	030703	202 00 0 00 030024 		MOVEM	ITRCNT			; save in FIXED area location
   194	030704	402 00 0 00 115611 		SETZM	PMODE			; set program mode to 'no test'
   195
   196					; Request device, ...
   197
   198	030705	200 16 0 00 115612 		MOVE	MBCN,NIPORT		; set up MBCN register
   199	030706	260 17 0 00 000000*		GO	DSETUP			; set up DIAG JSYS
   200	030707	260 17 0 00 000000*		GO	LOCPHY			; lock part of the diagnostic
   201	030710	260 17 0 00 000000*		GO	ENABLE			; enable privileges
   202	030711	260 17 0 00 000000*		GO	USRION			; set USRIOT bit
   203	030712	260 17 0 00 000000*		GO	RDCSR			; read CSR
   204	030713	400 01 0 00 000000 		SETZ	1,			; error
   205	030714	404 01 0 00 117021 		AND	1,[400003,,0]		; mask out all but hardwired bits
   206	030715	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
   207	030716	316 01 0 00 117021 		CAMN	1,[400003,,0]		; no - an NI20 here?
   208	030717	260 17 0 00 000000*		GO	DEVREQ			; yes - request the device
   209						JRST	[FMSGCD	<? NI port not found>
   210							 SKIPE	20000
   211							 JRST	20000
   212							 HALT	.+1
   213	030720	254 00 0 00 117027 			 JRST	START]
   214
   215					; Handle SPEAR reporting
   216
   217	030721	260 17 0 00 115360 		GO	SPREP1			; do initial SPEAR report
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 6
DFNIA1	MAC	18-Feb-84 20:30		Initialization                                                                     SEQ 0169

   218
   219					; Go do a test
   220
   221	030722	336 00 0 00 033704 	STARTA:	SKIPN	SADDR			; address already gotten?
   222						GO	[GO	RDADDR		; no - read station address and
   223							 DMOVE	SADDR		;   set up some defaults
   224							 DMOVEM	TDEST		;   ...
   225	030723	260 17 0 00 117034 			 RTN]
   226	030724	260 17 0 00 000000*		GO	INITPI			; initialize PI system
   227	030725	260 17 0 00 000000*		GO	SETVEC			; set up vector addresses
   228	030726	260 17 0 00 030766 		GO	DISPAT			; do a test
   229	030727	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
   230	030730	254 00 0 00 030746 		JRST	STARTB			; yes - exit
   231	030731	260 17 0 00 030667*		GO	SWITT			; get switches
   232	030732	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
   233	030733	260 17 0 00 030747 		GO	PASPNT			; no - print end of pass
   234	030734	260 17 0 00 030731*		GO	SWITT			; get switches
   235	030735	336 00 0 00 030037 		SKIPN	USER			; user mode?
   236	030736	607 00 0 00 400000 		TLNN	ABORT			; abort switch set?
   237	030737	334 00 0 00 000000 		SKIPA				; no (or user mode) - continue
   238	030740	254 00 0 00 030746 		JRST	STARTB			; yes - exit
   239	030741	037 12 0 00 000004 		ENDUUO				; end of pass handling
   240	030742	254 00 0 00 030722 		JRST	STARTA			; ITRCNT not exhausted - continue
   241	030743	260 17 0 00 030734*		GO	SWITT			; get switches
   242	030744	602 00 0 00 040000 		TRNE	LOOPGM			; loop on program switch set?
   243	030745	254 00 0 00 030722 		JRST	STARTA			; yes - loop forever
   244	030746	037 16 0 00 000004 	STARTB:	EOPUUO				; ITRCNT exhausted - exit pgm
   245
   246					; Print pass count
   247
   248	030747	200 00 0 00 030047 	PASPNT:	MOVE	PASCNT			; get pass count
   249	030750	350 00 0 00 000000 		AOS				; increment by 1
   250	030751	231 00 0 00 000012 		IDIVI	^D10			; divide by 10
   251	030752	332 00 0 00 000000 		SKIPE				; print pass number only for passes
   252	030753	326 01 0 00 117037 		JUMPN	1,[RTN]			;    1,2..7,10,20,30,40 ...
   253	030754	037 00 0 00 117040 		TMSGC	<End pass >		; print it
   254	030755	200 00 0 00 030047 		MOVE	PASCNT
   255	030756	350 00 0 00 000000 		AOS
   256	030757	037 15 0 00 000000 		PNTDEC
   257	030760	037 00 0 00 117043 		TMSG	<. at >
   258	030761	402 00 0 00 030641*		SETZM	FORPNT			; clear force print
   259	030762	200 03 0 00 117045 		MOVE	3,[JFCL]		; set up timer routine
   260	030763	260 17 0 00 000000*		GO	RUNTME			; print current time
   261	030764	037 00 0 00 030242 		PCRL
   262	030765	263 17 0 00 000000 		RTN				; return
   263
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 7
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0170

   264						SUBTTL	Test/Command Selection
   265
   266					;#*********************************************************************
   267					;* DISPAT - Routine to dispatch to proper test as typed by the operator
   268					;*	   in response to the 'WHAT TEST' prompt.
   269					;
   270					; COMMAND	DEFINITION
   271					; -------	----------
   272					; ALL	n	All tests
   273					; PORT	n	Port modules related tests
   274					; NIA	n	NIA module related tests
   275					; LOOP	n	Loopback tests
   276					; FUNCT n	Functional tests (including loopback)
   277					; n	n	Test n
   278					;
   279					; Other tests:
   280					;
   281					; DEBUG		Enter debugger
   282					;
   283					; DIAMON	Enter DIAMON
   284					; DDT   	Enter DDT
   285					; HELP  	Print this text
   286					; EXIT  	Exit program 
   287					;
   288					; TAKE		Take commands from a file
   289					; NTAKE		Take commands from a file (without echoing them)
   290					;
   291					; CONFIG	Print current configuration
   292					;
   293					; ENABLE	Enable execution of a test
   294					; DISABL	Disable execution of a test
   295					; DISLIS	List disabled tests
   296					;
   297					; LIST n	List all tests
   298					;
   299					; Switches:  To complement switch, type switch name
   300					;
   301					; SWITCH	Enter switches
   302					; SWPRIN	Print current switches
   303					;
   304					; NOPNT   ERSTOP  TXTINH  TRACE   LOOPGM  DSPEAR  LDEBUG
   305					; PNTLPT  PALERS  OPRSEL  INHMSG  LOOPTS  UDEBUG  DDEBUG
   306					; DING    RELIAB	  INHFLT  RUNALL  MDEBUG  EDEBUG
   307					;#********************************************************************
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 8
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0171

   308
   309	030766	402 00 0 00 134143'	DISPAT:	SETZM	ALTF#			; clear 'altmode typed' flag
   310
   311	030767	260 17 0 00 030743*		GO	SWITT			; get switches
   312	030770	603 00 0 00 000010 		TLNE	OPRSEL			; OPRSEL switch set?
   313	030771	037 01 0 00 117046 		FMSGCD	<Type ? for help>	; yes - print this
   314
   315					; Do a little initialization - first set up altmode transfer address
   316
   317	030772	202 17 0 00 134233'	DISP0:	MOVEM	P,SAVEP#		; save stack pointer
   318	030773	260 17 0 00 030767*		GO	SWITT			; get switches
   319	030774	603 00 0 00 000010 		TLNE	OPRSEL			; OPRSEL switch set?
   320						MOVEI	1,[PCRLF		; yes - set $ addr to print blank line
   321	030775	201 01 0 00 117052 			   JRST	DISP0]		;  line and continue at 'What test'
   322	030776	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
   323						MOVEI	1,[SETZM ALTF		; no - set up $ xfr addr to exit pass
   324							   GO	 FIOFF
   325	030777	201 01 0 00 117054 			   RTN]
   326	031000	202 01 0 00 030063 		MOVEM	1,ALTMGO		; store it
   327	031001	402 00 0 00 134143'		SETZM	ALTF			; clear 'altmode typed' flag
   328
   329					; Set up print limit, clear error flag, clear input buffer, set up MBCN
   330
   331	031002	201 00 0 00 303240 		MOVEI	^D100000		; re-set up print limit just in case
   332	031003	212 00 0 00 030220 		MOVNM	PNTENB			;   the last test exceeded it
   333	031004	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
   334	031005	260 17 0 00 000000*		GO	CLRBUF			; clear input buffer
   335	031006	200 16 0 00 115612 		MOVE	MBCN,NIPORT		; set up MBCN register properly
   336	031007	476 00 0 00 134250'		SETOM	TSLOAD#			; initialize ucode loaded flag
   337
   338					; Set/clear debug switches
   339
   340	031010	402 00 0 00 134255'		SETZM	UDEBUG			; clear no-IPA user mode debug switch
   341	031011	402 00 0 00 134172'		SETZM	MDEBUG			; clear error message debug switch
   342	031012	402 00 0 00 134166'		SETZM	LDEBUG			; clear ucode load debug switch
   343	031013	402 00 0 00 134151'		SETZM	DDEBUG			; clear dump on error debug switch
   344	031014	402 00 0 00 134156'		SETZM	EDEBUG			; clear expanded error message switch
   345	031015	260 17 0 00 030773*		GO	SWITT			; get switches
   346	031016	602 00 0 00 002000 		TRNE	DEBUG1			; debug switch set?
   347	031017	476 00 0 00 134255'		SETOM	UDEBUG			; set no-IPA user mode debug switch
   348	031020	602 00 0 00 001000 		TRNE	DEBUG2			; debug switch set?
   349	031021	476 00 0 00 134172'		SETOM	MDEBUG			; set error message debug switch
   350	031022	602 00 0 00 000400 		TRNE	DEBUG3			; debug switch set?
   351	031023	476 00 0 00 134166'		SETOM	LDEBUG			; set ucode load debug switch
   352	031024	602 00 0 00 000200 		TRNE	DEBUG4			; debug switch set?
   353	031025	476 00 0 00 134151'		SETOM	DDEBUG			; set dump on error debug switch
   354	031026	602 00 0 00 000040 		TRNE	DEBUG6			; debug switch set?
   355	031027	476 00 0 00 134156'		SETOM	EDEBUG			; set expanded error message switch
   356	031030	402 00 0 00 115611 		SETZM	PMODE			; set program mode to 'no test'
   357	031031	402 00 0 00 134174'		SETZM	MULFLG#			; clear 'multiple examine' flag
   358	031032	476 00 0 00 134175'		SETOM	MULINI#			; set 'initial examine' flag
   359	031033	402 00 0 00 134254'		SETZM	TXADDL#			; clear 'addl text' routine address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 9
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0172

   360
   361					; Set up PI system in case any interrupts occur
   362
   363	031034	260 17 0 00 030724*		GO	INITPI			; init PI system
   364	031035	260 17 0 00 030725*		GO	SETVEC			; set up vector addresses
   365
   366					; Do ALL test automatically if OPRSEL switch is not set
   367
   368	031036	201 01 0 00 000001 		MOVEI	1,1			; set to ALL test
   369	031037	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
   370	031040	254 00 0 00 031117 		JRST	DISP2			; no - go do test
   371	031041	402 00 0 00 030047 		SETZM	PASCNT			; clear pass count
   372
   373					; Now handle a normal command
   374
   375	031042	402 00 0 00 000000*		SETZM	.INWD1			; clear special interrupt data
   376	031043	476 00 0 00 134144'		SETOM	BONETM			; set 'not first time' flag
   377	031044	336 00 0 00 134161'		SKIPN	FINPUT			; file input?
   378	031045	476 00 0 00 134160'		SETOM	FINECH			; no - ensure echo flag set
   379	031046	332 00 0 00 134160'		SKIPE	FINECH			; echo flag set?
   380						GO	[PFORCE			; no - print all this
   381							 PCRLF
   382							 FMSG	<What test - >
   383	031047	260 17 0 00 117062 			 RTN]
   384	031050	332 00 0 00 134161'		SKIPE	FINPUT			; file input?
   385						JRST	[GO	FINCMD		; yes - input sixbit cmd
   386							 JRST	DISP0		; error or EOF
   387	031051	254 00 0 00 117066 			 JRST	DISP0B]		; continue
   388	031052	037 10 0 00 000003 	DISP0A:	TTSIXB				; get the name in sixbit
   389						ALTCHK	[GET	XXW#		; adjust stack properly
   390							 SKIPN	$TWCNT		; did a timeout occur?
   391							 JRST	DISP0		; yes - keep looking for input
   392							 MOVE	1,$TTCHR	; no - get character typed
   393							 CAIN	1,40		; space (delimiter) typed?
   394							 JRST	.+1		; yes - continue (no error condition)
   395							 CAIN	1,77		; was a question mark typed?
   396							 JRST	DISQUE		; yes - handle
   397	031053	007 00 0 00 117071 			 JRST	DISPE]		; no - error - reask question
   398					DISP0B:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
   399							 CAIN	40		;   looking for an argument, if not
   400							 JRST	DISP0A		;   exit
   401	031054	322 00 0 00 117102 			 JRST	DISP0]
   402	031055	202 00 0 00 134253'		MOVEM	TSTSAV#			; save the typed name
   403	031056	402 00 0 00 000000*		SETZM	ARGFLG			; clear 'argument given' flag
   404	031057	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
   405	031060	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
   406	031061	476 00 0 00 031056*		SETOM	ARGFLG			; set 'argument given' flag
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 10
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0173

   407
   408					; Process command
   409
   410	031062	200 01 0 00 134253'	DISP1:	MOVE	1,TSTSAV		; get command into AC1
   411	031063	201 02 0 00 031131 		MOVEI	2,DISLIS		; get address of cmd list
   412	031064	260 17 0 00 000000*		GO	.COMM			; handle command decoding
   413	031065	334 00 0 00 000000 		 SKIPA				; error return
   414	031066	254 00 0 00 031117 		JRST	DISP2			; dispatch to test
   415
   416					; Now check to see if a test number was selected in the form 'n r'
   417					; where 'n' is the test number and 'r' is the repeat count.
   418
   419			000027			MAXTST==TSTMAX-TSTTAB-1
   420
   421	031067	260 17 0 00 000000*		GO	CONVSX			; convert to octal test number
   422	031070	254 00 0 00 031106 		 JRST	DISPD			; error return (unrecognizable)
   423	031071	333 00 0 00 000001 		SKIPLE	1			; out of range?
   424	031072	303 01 0 00 000027 		CAILE	1,MAXTST		; out of range?
   425	031073	254 00 0 00 031100 		JRST	DISPR			; yes - handle
   426	031074	370 00 0 00 000001 		SOS	1			; normalize to 0..n
   427	031075	202 01 0 00 115576 		MOVEM	1,TSTNUM		; save test number
   428	031076	260 17 0 00 031563 		GO	TSTSPC			; execute it
   429	031077	254 00 0 00 031120 		JRST	DISPX			; end of test
   430
   431					; Range error
   432
   433	031100	037 01 0 00 117106 	DISPR:	FMSGC	<? Test selected is not in range 1->
   434	031101	201 00 0 00 000027 		MOVEI	MAXTST			; get range
   435	031102	037 17 0 00 000003 		PNTOCF				; print it
   436	031103	037 01 0 00 030242 		PCRLF
   437	031104	260 17 0 00 000000*		GO	FIOFF			; turn off file input
   438	031105	254 00 0 00 030772 		JRST	DISP0			; continue
   439
   440					; Possibly a DEBUG command was typed - check for this and handle
   441
   442	031106	200 01 0 00 134253'	DISPD:	MOVE	1,TSTSAV		; get command into AC1
   443	031107	201 02 0 00 032322 		MOVEI	2,.DBCMD		; get address of cmd list
   444	031110	260 17 0 00 031064*		GO	.COMM			; handle command decoding
   445	031111	254 00 0 00 031114 		 JRST	DISPE			; unrecognizable
   446	031112	260 17 1 01 032474 		GO	@.DBDIS(1)		; dispatch to test
   447	031113	254 00 0 00 030772 		JRST	DISP0			; return to 'DEBUG>' prompt
   448
   449					; Unrecognized command
   450
   451	031114	037 01 0 00 117116 	DISPE:	FMSGCD	<? Unrecognizable - Type ? for help>
   452	031115	260 17 0 00 031104*		GO	FIOFF			; turn off file input
   453	031116	254 00 0 00 030772 		JRST	DISP0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 11
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0174

   454
   455					; Dispatch to test
   456
   457	031117	260 17 1 01 031205 	DISP2:	GO	@DISGO(1)		; dispatch to test
   458
   459					; End of command - if OPRSEL switch set, ask for command
   460					;		   if OPRSEL switch not set, it is end of pass
   461
   462	031120	260 17 0 00 031015*	DISPX:	GO	SWITT			; get program switches
   463	031121	603 00 0 00 000010 		TLNE	OPRSEL			; OPRSEL set?
   464	031122	254 00 0 00 030772 		JRST	DISP0			; yes - not really end of pass
   465	031123	263 17 0 00 000000 		RTN				; no - end of pass
   466
   467					; Handle ? typed
   468
   469	031124	037 01 0 00 000026 	DISQUE:	PFORCE				; handle Control-O
   470	031125	037 00 1 00 031127 		PNTMSG	@DISQUU			; print text
   471	031126	254 00 0 00 030772 		JRST	DISP0			; continue
   472
   473	031127				DISQUU:	[ASCII	/
   474					Tests       Other         Switches
   475					-----   --------------  ----------------------
   476					ALL    DIAMON  ENABLE  NOPNT   TRACE   UDEBUG
   477					PORT   DDT     DISABL  PNTLPT  INHFLT  MDEBUG
   478					NIA    HELP    DISLIS  DING    INHMSG  LDEBUG
   479					LOOP   EXIT    LIST    ERSTOP  LOOPGM  DDEBUG
   480					FUNCT  TAKE    STATIS  PALERS  LOOPTS  EDEBUG
   481	031127	000000	117126		       NTAKE   ZSTATS  RELIAB  RUNALL  SWITCH    /]
   482						[ASCIZ	/
   483					DEBUG  CONFIG  ZCOUNT  TXTINH  DSPEAR  SWPRIN
   484					(Or 'n' where n        OPRSEL
   485					 is the test #).
   486	031130	000000	117240		/]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 12
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0175

   487
   488					;#*********************************************************************
   489					;* DISLIS - List of all valid test names that can be typed
   490					;#*********************************************************************
   491
   492	031131	777777	777655		DISLIS:	-123				; ignore
   493	031132	41 54 54 00 00 00 		SIXBIT	/ALL/			; execute ALL tests
   494	031133	60 57 62 64 00 00 		SIXBIT	/PORT/			; execute Port tests
   495	031134	56 51 41 00 00 00 		SIXBIT	/NIA/			; execute Link tests
   496	031135	54 57 57 60 00 00 		SIXBIT	/LOOP/			; execute Loopback tests
   497	031136	46 65 56 43 64 00 		SIXBIT	/FUNCT/			; execute Functional tests
   498	031137	62 41 56 44 57 55 		SIXBIT	/RANDOM/		; execute tests randomly
   499
   500					; Other
   501			
   502	031140	63 64 41 64 51 63 		SIXBIT	/STATIS/		; print collected statistics
   503	031141	72 63 64 41 64 63 		SIXBIT	/ZSTATS/		; clear statistics areas
   504	031142	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; print current configuration
   505
   506	031143	45 56 41 42 54 45 		SIXBIT	/ENABLE/		; enable specified tests
   507	031144	44 51 63 41 42 54 		SIXBIT	/DISABL/		; disable specified tests
   508	031145	44 51 63 54 51 63 		SIXBIT	/DISLIS/		; list disabled tests
   509	031146	54 51 63 64 00 00 		SIXBIT	/LIST/			; list test descriptions
   510
   511	031147	64 41 53 45 00 00 		SIXBIT	/TAKE/			; take commands from a file
   512	031150	56 64 41 53 45 00 		SIXBIT	/NTAKE/			; take commands from a file
   513	031151	44 45 42 65 47 00 		SIXBIT	/DEBUG/			; execute debugger test
   514	031152	44 51 41 55 57 56 		SIXBIT	/DIAMON/		; exit to DIAMON
   515	031153	44 44 64 00 00 00 		SIXBIT	/DDT/			; enter DDT
   516	031154	45 70 51 64 00 00 		SIXBIT	/EXIT/			; exit pgm
   517	031155	50 45 54 60 00 00 		SIXBIT	/HELP/			; help
   518
   519					; Switches
   520
   521	031156	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; input switches
   522	031157	63 67 60 62 51 56 		SIXBIT	/SWPRIN/		; print switch selections
   523	031160	56 57 60 56 64 00 		SIXBIT	/NOPNT/			; don't print anything
   524	031161	60 56 64 54 60 64 		SIXBIT	/PNTLPT/		; print on printer
   525	031162	44 51 56 47 00 00 		SIXBIT	/DING/			; ding on error
   526	031163	45 62 63 64 57 60 		SIXBIT	/ERSTOP/		; halt on error
   527	031164	60 41 54 45 62 63 		SIXBIT	/PALERS/		; print all errors
   528	031165	62 45 54 51 41 42 		SIXBIT	/RELIAB/		; reliability testing
   529	031166	64 70 64 51 56 50 		SIXBIT	/TXTINH/		; shorten printing
   530	031167	57 60 62 63 45 54 		SIXBIT	/OPRSEL/		; operator select
   531	031170	64 62 41 43 45 00 		SIXBIT	/TRACE/			; trace pgm flow
   532	031171	51 56 50 46 54 64 		SIXBIT	/INHFLT/		; inhibit fault isolation
   533	031172	51 56 50 55 63 47 		SIXBIT	/INHMSG/		; inhibit error messages
   534	031173	54 57 57 60 47 55 		SIXBIT	/LOOPGM/		; loop on program
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 13
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0176

   535	031174	54 57 57 60 64 63 		SIXBIT	/LOOPTS/		; loop on test
   536	031175	62 65 56 41 54 54 		SIXBIT	/RUNALL/		; run all test segments
   537	031176	44 63 60 45 41 62 		SIXBIT	/DSPEAR/		; disable SPEAR reporting
   538	031177	65 44 45 42 65 47 		SIXBIT	/UDEBUG/		; no-IPA user mode debug switch
   539	031200	55 44 45 42 65 47 		SIXBIT	/MDEBUG/		; error message debug switch
   540	031201	54 44 45 42 65 47 		SIXBIT	/LDEBUG/		; load microcode debug switch
   541	031202	44 44 45 42 65 47 		SIXBIT	/DDEBUG/		; dump on error debug switch
   542	031203	45 44 45 42 65 47 		SIXBIT	/EDEBUG/		; expanded error msg switch
   543	031204	000 00 0 00 000000 		Z
   544
   545
   546					;#********************************************************************
   547					;* DISGO - Test dispatch addresses
   548					;#********************************************************************
   549
   550	031205	000000	117037		DISGO:	[RTN]				; ignore
   551	031206	000000	031260			TSTEXE				; ALL - execute all tests
   552	031207	000000	031260			TSTEXE				; PORT - execute PORT modules tests
   553	031210	000000	031260			TSTEXE				; NIA - execute NIA module tests
   554	031211	000000	031260			TSTEXE				; LOOP - execute Loopback tests
   555	031212	000000	031260			TSTEXE				; FUNCT - execute Functional tests
   556	031213	000000	031626			TSTRAN				; RANDOM - execute tests randomly
   557
   558	031214	000000	031477			TSTPRI				; STATIS - Print statistics
   559	031215	000000	031361			TSTZER				; ZSTATS - Zero statistics
   560	031216	000000	031366			TSTCON				; CONFIG - Print configuration
   561
   562	031217	000000	031431			TSTENA				; ENABLE - enable specified tests
   563	031220	000000	031425			TSTDSA				; DISABL - disable specified tests
   564	031221	000000	031455			TSTDSL				; DISLIS - list disabled tests
   565	031222	000000	031266			TSTLIS				; LIST - list test descriptions
   566
   567	031223	000000	031527			TSTTAK				; TAKE - take commands from a file
   568	031224	000000	031525			TSTTAN				; NTAKE - take commands from a file
   569	031225	000000	032231			TSTDEB				; DEBUG - execute debugger test
   570	031226	000000	031332			TSTDIA				; DIAMON - re-enter DIAMON
   571	031227	000000	031337			TSTDDT				; DDT - enter DDT
   572	031230	000000	031350			TSTHLT				; EXIT - exit
   573	031231	000000	031373			TSTHLP				; HELP - help
   574
   575	031232	000000	031504			TSTSWI				; SWITCH - input switches
   576	031233	000000	031511			TSTSWP				; SWPRIN - print switch selections
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 14
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0177

   577
   578			000027		SWSTT==.-DISGO
   579
   580	031234	000000	031516			TSTSSW				; NOPNT
   581	031235	000000	031516			TSTSSW				; PNTLPT
   582	031236	000000	031516			TSTSSW				; DING
   583	031237	000000	031516			TSTSSW				; ERSTOP
   584	031240	000000	031516			TSTSSW				; PALERS
   585	031241	000000	031516			TSTSSW				; RELIAB
   586	031242	000000	031516			TSTSSW				; TXTINH
   587	031243	000000	031516			TSTSSW				; OPRSEL
   588	031244	000000	031516			TSTSSW				; TRACE
   589	031245	000000	031516			TSTSSW				; INHFLT
   590	031246	000000	031516			TSTSSW				; INHMSG
   591	031247	000000	031516			TSTSSW				; LOOPGM
   592	031250	000000	031516			TSTSSW				; LOOPTS
   593	031251	000000	031516			TSTSSW				; RUNALL
   594	031252	000000	031516			TSTSSW				; DSPEAR
   595	031253	000000	031516			TSTSSW				; UDEBUG
   596	031254	000000	031516			TSTSSW				; MDEBUG
   597	031255	000000	031516			TSTSSW				; LDEBUG
   598	031256	000000	031516			TSTSSW				; DDEBUG
   599	031257	000000	031516			TSTSSW				; EDEBUG
   600
   601
   602					;#********************************************************************
   603					;* ALL    Execute all tests
   604					;* PORT   Execute Port modules related tests
   605					;* NIA    Execute NIA module related tests
   606					;* LOOP   Execute Loopback tests
   607					;* FUNCT  Execute Functional tests
   608					;
   609					; All of these commands dispatch to TSTEXE which sets up test mask
   610					; and does dispatch to tests.
   611					;#********************************************************************
   612
   613					TSTEXE:	MOVE	[ALL			; get test mask
   614							 PORT
   615							 NIA
   616							 LOOP
   617	031260	200 00 0 01 117263 			 FUNCT]-1(1)
   618	031261	202 00 0 00 115602 		MOVEM	TSTMSK			; save test mask
   619	031262	260 17 0 00 031655 		GO	TSTDIS			; go dispatch to tests
   620
   621					; Handle SPEAR reporting
   622
   623	031263	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
   624	031264	260 17 0 00 115421 		GO	SPREP2			; do final SPEAR report
   625	031265	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 15
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0178

   626
   627					;#********************************************************************
   628					;* TSTLIS - List test description for either single test or range of tests.
   629					;
   630					; Argument(s):  n - list only one test
   631					;		n,m - list range of tests
   632					;	        none - list all tests
   633					;#********************************************************************
   634
   635	031266	402 00 0 00 115577 	TSTLIS:	SETZM	TSTSUB			; clear subtest number
   636	031267	402 00 0 00 134251'		SETZM	TSTL1#			; set up start test number
   637	031270	350 00 0 00 134251'		AOS	TSTL1			; set to 1
   638	031271	201 00 0 00 000027 		MOVEI	MAXTST			; set up final test number
   639	031272	202 00 0 00 134252'		MOVEM	TSTL2#			; set to MAXTST
   640
   641					; Check for argument(s)
   642
   643	031273	200 01 0 00 117302 		MOVE	1,[FMSGCD <LIST test# (CR) or LIST test#,test# (CR)>]
   644	031274	260 17 0 00 000000*		GO	.DARG			; get test number
   645	031275	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   646	031276	254 00 0 00 031310 		 JRST	TSTLI0			; no argument given
   647	031277	200 01 0 00 000000*		MOVE	1,ARGUM			; get argument
   648	031300	202 01 0 00 134251'		MOVEM	1,TSTL1			; save first test number
   649	031301	202 01 0 00 134252'		MOVEM	1,TSTL2			; save second test number
   650	031302	210 01 0 00 117302 		MOVN	1,[FMSGCD <LIST test# (CR) or LIST test#,test# (CR)>]
   651	031303	260 17 0 00 031274*		GO	.DARG			; get test number
   652	031304	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   653	031305	254 00 0 00 031310 		 JRST	TSTLI0			; no 2nd argument given
   654	031306	200 01 0 00 031277*		MOVE	1,ARGUM			; get argument
   655	031307	202 01 0 00 134252'		MOVEM	1,TSTL2			; save second test number
   656
   657					; Range check the arguments
   658
   659	031310	333 01 0 00 134251'	TSTLI0:	SKIPLE	1,TSTL1			; first argument in range
   660	031311	303 01 0 00 000027 		CAILE	1,MAXTST		;   1-MAXTST?
   661						JRST	[FMSGCD	<? Range of test numbers is 1->
   662							 MOVEI	MAXTST		; get range
   663							 PNTOCF			; print it
   664							 PCRLF
   665							 GO	FIOFF		; turn off file input
   666	031312	254 00 0 00 117312 			 RTN]
   667	031313	200 02 0 00 134252'		MOVE	2,TSTL2			; get 2nd argument
   668	031314	311 02 0 00 000001 		CAML	2,1			; 2nd argument in range
   669	031315	303 02 0 00 000027 		CAILE	2,MAXTST		;   1st arg-MAXTST?
   670						JRST	[FMSGC	<? Range of test numbers is 1->
   671							 MOVEI	MAXTST		; get range
   672							 PNTOCF			; print it
   673							 PCRLF
   674							 GO	FIOFF		; turn off file input
   675	031316	254 00 0 00 117327 			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 16
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0179

   676
   677					; Print the test descriptions
   678
   679	031317	200 02 0 00 134251'	TSTLI1:	MOVE	2,TSTL1			; get test number
   680	031320	202 02 0 00 115576 		MOVEM	2,TSTNUM		; set up for TSTPNT
   681	031321	037 00 0 00 030242 		PCRL				; skip a line
   682	031322	260 17 0 00 042411 		GO	TSTPNT			; no - print it
   683	031323	350 02 0 00 134251'		AOS	2,TSTL1			; point to next test
   684	031324	313 02 0 00 134252'		CAMLE	2,TSTL2			; reach end of range?
   685	031325	254 00 0 00 031330 		JRST	TSTLIX			; yes - exit
   686	031326	037 07 0 00 000003 		TTALTM				; no - altmode typed?
   687	031327	254 00 0 00 031317 		JRST	TSTLI1			; no - do next test
   688	031330	037 00 0 00 030242 	TSTLIX:	PCRL				; final CRLF
   689	031331	263 17 0 00 000000 		RTN				; return
   690
   691
   692					;#********************************************************************
   693					;* TSTDIA - Return to DIAMON
   694					;#********************************************************************
   695
   696	031332	200 01 0 00 117341 	TSTDIA:	MOVE	1,[FMSGCD (DIAMON <CR>)]
   697	031333	260 17 0 00 000000*		GO	CHKARG			; check for argument
   698	031334	263 17 0 00 000000 		RTN				; error - exit
   699	031335	260 17 0 00 000000*		GO	DEVREL			; release the device
   700	031336	254 00 0 00 020000 		JRST	20000			; enter DIAMON
   701
   702
   703					;#********************************************************************
   704					;* TSTDDT - Enter DDT
   705					;#********************************************************************
   706
   707	031337	200 01 0 00 117345 	TSTDDT:	MOVE	1,[FMSGCD (DDT <CR>)]
   708	031340	260 17 0 00 031333*		GO	CHKARG			; check for argument
   709	031341	263 17 0 00 000000 		RTN				; error - exit
   710	031342	037 01 0 00 117346 		FMSGCD	<Type RTN$X to continue>
   711	031343	260 17 0 00 030007 		GO	SRTDDT			; enter DDT
   712	031344	260 17 0 00 000000*		GO	INITPD			; init PI system
   713	031345	260 17 0 00 031035*		GO	SETVEC			; set up vector addresses
   714	031346	400 01 0 00 000000 		SETZ	1,			; clear AC1
   715	031347	263 17 0 00 000000 		RTN				; ask for a test
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 17
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0180

   716
   717					;#********************************************************************
   718					;* TSTHLT - Program halts - CONTINUE will start it back up.
   719					;#********************************************************************
   720
   721	031350	200 01 0 00 117357 	TSTHLT:	MOVE	1,[FMSGCD (EXIT <CR>)]
   722	031351	260 17 0 00 031340*		GO	CHKARG			; check for argument
   723	031352	263 17 0 00 000000 		RTN				; error - exit
   724	031353	260 17 0 00 031335*		GO	DEVREL			; release the device
   725	031354	260 17 0 00 000000*		GO	.CLOSE			; close any open files
   726	031355	332 00 0 00 020000 		SKIPE	20000			; DIAMON loaded?
   727	031356	254 00 0 00 020000 		JRST	20000			; yes - return there
   728	031357	254 04 0 00 031360 		HALT	.+1			; no - halt
   729	031360	254 00 0 00 030611 		JRST	START			; continue
   730
   731
   732					;#********************************************************************
   733					;* TSTZER - Clear statistics
   734					;#********************************************************************
   735
   736	031361	200 01 0 00 117363 	TSTZER:	MOVE	1,[FMSGCD (ZERO <CR>)]
   737	031362	260 17 0 00 031351*		GO	CHKARG			; check for argument
   738	031363	263 17 0 00 000000 		RTN				; error - exit
   739	031364	260 17 0 00 043661 		GO	SZERO			; clear statistics
   740	031365	263 17 0 00 000000 		RTN				; done
   741
   742
   743					;#********************************************************************
   744					;* TSTCON - Print configuration
   745					;#********************************************************************
   746
   747	031366	200 01 0 00 117370 	TSTCON:	MOVE	1,[FMSGCD (CONFIG <CR>)]
   748	031367	260 17 0 00 031362*		GO	CHKARG			; check for argument
   749	031370	263 17 0 00 000000 		RTN				; error - exit
   750	031371	260 17 0 00 043073 		GO	CONPNT			; print configuration
   751	031372	263 17 0 00 000000 		RTN				; done
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 18
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0181

   752
   753					;#*********************************************************************
   754					;* TSTHLP - Help for 'WHAT TEST' question.
   755					;#*********************************************************************
   756
   757					TSTHLP:	MOVN	1,[FMSGD <
   758					HELP ALL     MISC
   759	031373	210 01 0 00 117402 	     TESTS   SWITCH>]
   760	031374	260 17 0 00 000000*		GO	.SARG			; get SIXBIT argument
   761	031375	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   762						 GO	[MOVE	[SIXBIT /ALL/]	; no argument - assume all
   763							 MOVEM	ARGUM
   764	031376	260 17 0 00 117404 			 RTN]
   765	031377	200 01 0 00 031306*		MOVE	1,ARGUM			; get sixbit command
   766	031400	201 02 0 00 031413 		MOVEI	2,TSTHLC		; get address of cmd list
   767	031401	260 17 0 00 031110*		GO	.COMM			; handle command decoding
   768						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
   769							 GO	FIOFF
   770	031402	254 00 0 00 117407 			 RTN]			; error return
   771	031403	037 01 0 00 000026 		PFORCE				; handle Control-O
   772	031404	200 02 0 00 000001 		MOVE	2,1			; get AC1
   773	031405	336 03 0 01 031420 	TSTHL0:	SKIPN	3,TSTHLL(1)		; get address of TMSG
   774	031406	263 17 0 00 000000 		RTN				; all done - exit
   775	031407	256 00 0 00 000003 		XCT	3			; print it
   776	031410	350 00 0 00 000001 		AOS	1			; point to next address
   777	031411	322 02 0 00 031405 		JUMPE	2,TSTHL0		; loop till done
   778	031412	263 17 0 00 000000 		RTN				; exit
   779
   780	031413	41 54 54 00 00 00 	TSTHLC:	SIXBIT	/ALL/			; print all help info
   781	031414	64 45 63 64 63 00 		SIXBIT	/TESTS/			; print test commands
   782	031415	55 51 63 43 00 00 		SIXBIT	/MISC/			; print miscellaneous commands
   783	031416	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; print switch commands
   784	031417	000000	000000			0				; end of list
   785
   786	031420	037 00 0 00 117412 	TSTHLL:	TMSGCD	<Tests Available:>
   787
   788						TMSGD	<
   789					ALL n   Execute ALL tests (n times)
   790					PORT n  Execute Port modules tests
   791					NIA n   Execute NIA module tests
   792					LOOP n  Execute Loopback tests
   793					FUNCT n Execute Functional tests
   794	031421	037 00 0 00 117417 	m n     Test m>
   795
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 19
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0182

   796						TMSGD	<
   797					TAKE    Take cmds from file
   798					NTAKE   Take commands from file (unechoed)
   799					DEBUG   Enter port debugger
   800					DIAMON  Enter DIAMON
   801					DDT     Enter DDT
   802					HELP    Print this
   803					EXIT    Exit program   
   804					
   805					STATIS  Print statistics
   806					ZSTATS  Clear statistics
   807					ZCOUNT  Clear counters
   808					CONFIG  Print configuration   
   809					ENABLE  Enable specified tests
   810					DISABL  Disable specified tests
   811					DISLIS  List disabled tests
   812	031422	037 00 0 00 117466 	LIST    List test descriptions>
   813
   814						TMSGD	<
   815					Switches:  To complement switch, type switch name
   816					
   817					SWITCH  Enter switches
   818					SWPRIN  Print current switches
   819					
   820					NOPNT   ERSTOP  TXTINH  TRACE   LOOPGM  DSPEAR  LDEBUG
   821					PNTLPT  PALERS  OPRSEL  INHFLT  LOOPTS  UDEBUG  DDEBUG
   822	031423	037 00 0 00 117614 	DING    RELIAB          INHMSG  RUNALL  MDEBUG  EDEBUG>
   823	031424	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 20
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0183

   824
   825					;#********************************************************************
   826					;* TSTDSA - Disable a test.
   827					;* TSTENA - Enable a test.
   828					;#********************************************************************
   829
   830	031425	402 00 0 00 134157'	TSTDSA:	SETZM	ENATST#			; clear 'enable' flag
   831	031426	200 00 0 00 117710 		MOVE	[FMSGCD (DISABL n1,n2, ... <CR>)]
   832	031427	202 00 0 00 134247'		MOVEM	TMP1#
   833	031430	254 00 0 00 031434 		JRST	TSTEN0			; continue
   834	031431	476 00 0 00 134157'	TSTENA:	SETOM	ENATST#			; set 'enable' flag
   835	031432	200 00 0 00 117714 		MOVE	[FMSGCD (ENABLE n1,n2, ... <CR>)]
   836	031433	202 00 0 00 134247'		MOVEM	TMP1#
   837	031434	336 00 0 00 031061*	TSTEN0:	SKIPN	ARGFLG			; argument given?
   838						JRST	[FMSGCD	<? Missing argument>
   839							 GO	FIOFF
   840	031435	254 00 0 00 117722 			 RTN]
   841
   842					; Get an argument
   843
   844	031436	200 01 0 00 134247'	TSTDS0:	MOVE	1,TMP1			; get help string
   845	031437	260 17 0 00 000000*		GO	.OARG			; yes - get octal argument
   846	031440	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   847	031441	263 17 0 00 000000 		 RTN				; no more arguments
   848	031442	333 01 0 00 031377*		SKIPLE	1,ARGUM			; get argument
   849	031443	303 01 0 00 000027 		CAILE	1,MAXTST		; out of range?
   850						JRST	[FMSGC	<? Test selected is not in range 1->
   851							 MOVEI	MAXTST		; get range
   852							 PNTOCF			; print it
   853							 PCRLF
   854							 GO	FIOFF
   855	031444	254 00 0 00 117725 			 RTN]
   856	031445	202 01 0 00 115576 		MOVEM	1,TSTNUM		; save test number
   857
   858					; Now perform the specified function
   859
   860	031446	200 02 0 01 032037 		MOVE	2,TSTTAB(1)		; get test dispatch word
   861	031447	332 00 0 00 134157'		SKIPE	ENATST			; 'enable' flag set?
   862	031450	621 02 0 00 000100 		TLZ	2,(TDENA)		; yes - clear 'disable' bit
   863	031451	336 00 0 00 134157'		SKIPN	ENATST			; 'enable' flag set?
   864	031452	661 02 0 00 000100 		TLO	2,(TDENA)		; no - set 'disable' bit
   865	031453	202 02 0 01 032037 		MOVEM	2,TSTTAB(1)		; save test dispatch word
   866	031454	254 00 0 00 031436 		JRST	TSTDS0			; get next argument
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 21
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0184

   867
   868					;#********************************************************************
   869					;* TSTDSL - List disabled tests
   870					;#********************************************************************
   871
   872	031455	200 01 0 00 117737 	TSTDSL:	MOVE	1,[FMSGCD (DISLIS <CR>)]
   873	031456	260 17 0 00 031367*		GO	CHKARG			; check for argument
   874	031457	263 17 0 00 000000 		RTN				; error - exit
   875	031460	402 00 0 00 115576 		SETZM	TSTNUM			; initialize test number
   876	031461	400 06 0 00 000000 		SETZ	6,			; count of tests printed
   877	031462	350 01 0 00 115576 	TSTDL0:	AOS	1,TSTNUM		; point to next test
   878	031463	303 01 0 00 000027 		CAILE	1,MAXTST		; done yet?
   879						JRST	[PCRL			; yes - return
   880	031464	254 00 0 00 117740 			 RTN]
   881	031465	200 00 0 01 032037 		MOVE	TSTTAB(1)		; get test dispatch word
   882	031466	607 00 0 00 000100 		TLNN	(TDENA)			; disabled?
   883	031467	254 00 0 00 031462 		JRST	TSTDL0			; no - try next test
   884	031470	377 00 0 00 000006 		SOSG	6			; done with line yet?
   885						GO	[MOVEI	6,12		; yes - reset counter and
   886							 PCRL			;   print a blank line
   887	031471	260 17 0 00 117742 			 RTN]
   888	031472	037 00 0 00 117745 		TMSG	<TST>
   889	031473	200 00 0 00 115576 		MOVE	TSTNUM			; get test number
   890	031474	037 16 0 00 000003 		PNTOCS				; print it
   891	031475	037 00 0 00 000040 		PSP
   892	031476	254 00 0 00 031462 		JRST	TSTDL0			; continue
   893
   894
   895					;#********************************************************************
   896					;* TSTPRI - Print statistics
   897					;#********************************************************************
   898
   899	031477	200 01 0 00 117752 	TSTPRI:	MOVE	1,[FMSGCD (STATIS <CR>)]
   900	031500	260 17 0 00 031456*		GO	CHKARG			; check for argument
   901	031501	263 17 0 00 000000 		RTN				; error - exit
   902	031502	260 17 0 00 043571 		GO	SREPOR			; go print statistics
   903	031503	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 22
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0185

   904
   905					;#********************************************************************
   906					;* TSTSWI/TSTSWP - Input switches / Print switch selections
   907					;#********************************************************************
   908
   909	031504	200 01 0 00 117757 	TSTSWI:	MOVE	1,[FMSGCD (SWITCH <CR>)]
   910	031505	260 17 0 00 031500*		GO	CHKARG			; check for argument
   911	031506	263 17 0 00 000000 		RTN				; error - exit
   912	031507	260 17 0 00 000000*		GO	.ISWT			; input switches
   913	031510	263 17 0 00 000000 		RTN				; ask for a test
   914
   915	031511	200 01 0 00 117764 	TSTSWP:	MOVE	1,[FMSGCD (SWPRIN <CR>)]
   916	031512	260 17 0 00 031505*		GO	CHKARG			; check for argument
   917	031513	263 17 0 00 000000 		RTN				; error - exit
   918	031514	260 17 0 00 000000*		GO	.SWCHP			; print switches
   919	031515	263 17 0 00 000000 		RTN				; ask for a test
   920
   921
   922					;#********************************************************************
   923					;* TSTSSW - Switch complement commands
   924					;#********************************************************************
   925
   926	031516	200 01 0 00 117772 	TSTSSW:	MOVE	1,[FMSGCD (Switch Name <CR>)]
   927	031517	260 17 0 00 031512*		GO	CHKARG			; check for argument
   928	031520	263 17 0 00 000000 		RTN				; error - exit
   929	031521	200 01 0 00 000000*		MOVE	1,.CGOT			; get dispatch number
   930	031522	275 01 0 00 000027 		SUBI	1,SWSTT			; normalize to 0..
   931	031523	260 17 0 00 000000*		GO	SWCOM			; complement switch
   932	031524	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 23
DFNIA1	MAC	18-Feb-84 20:30		Test/Command Selection                                                             SEQ 0186

   933
   934					;#********************************************************************
   935					;* TSTTAK - Take commands from a file
   936					;* TSTTAN - Take commands from a file without echoing results
   937					;
   938					; This works by reading commands from a file as if they were being
   939					; typed to the diagnostic directly.  Either end of file or the first
   940					; occurrence of an error halts this procedure.
   941					;#********************************************************************
   942
   943	031525	402 00 0 00 134160'	TSTTAN:	SETZM	FINECH			; clear echo switch
   944	031526	334 00 0 00 000000 		SKIPA				; continue
   945	031527	476 00 0 00 134160'	TSTTAK:	SETOM	FINECH			; set echo switch
   946	031530	200 01 0 00 120003 		MOVE	1,[FMSGCD (TAKE <CR> or TAKE Fname Ext <CR>)]
   947	031531	260 17 0 00 031374*		GO	.SARG			; get SIXBIT argument
   948	031532	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   949	031533	254 00 0 00 031544 		 JRST	TSTTA0			; no more arguments
   950	031534	200 01 0 00 031442*		MOVE	1,ARGUM			; get argument
   951	031535	202 01 0 00 031561 		MOVEM	1,TAKFIL		; save file name
   952	031536	210 01 0 00 120003 		MOVN	1,[FMSGCD (TAKE <CR> or TAKE Fname Ext <CR>)]
   953	031537	260 17 0 00 031531*		GO	.SARG			; get SIXBIT argument
   954	031540	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   955	031541	254 00 0 00 031544 		 JRST	TSTTA0			; no more arguments
   956	031542	200 01 0 00 031534*		MOVE	1,ARGUM			; get argument
   957	031543	202 01 0 00 031562 		MOVEM	1,TAKFIL+1		; save file name extension
   958
   959					; Now start reading the file specified
   960
   961	031544	260 17 0 00 031115*	TSTTA0:	GO	FIOFF			; shut off previous file input
   962	031545	201 00 0 00 031561 		MOVEI	TAKFIL			; point to file name buffer
   963	031546	037 05 0 00 000004 		FSELECT				; init the file
   964						JRST	[FMSGC	<? Can't access ">
   965							 MOVE	TAKFIL			; get file name
   966							 PNTSXF				; print it
   967							 PNTCIF	"."
   968							 MOVE	TAKFIL+1		; get extension
   969							 PNTSXF				; print it
   970							 FMSGD	<" on selected load device.>
   971	031547	254 00 0 00 120016 			 RTN]
   972	031550	037 01 0 00 120026 		FMSGC	<[File input from: >
   973	031551	200 00 0 00 031561 		MOVE	TAKFIL			; get the selected file name
   974	031552	037 01 0 00 000002 		PNTSXF				; print it
   975	031553	037 01 0 00 000056 		PNTCIF	"."
   976	031554	200 00 0 00 031562 		MOVE	TAKFIL+1		; get the extension of file
   977	031555	037 01 0 00 000002 		PNTSXF				; print it
   978	031556	037 01 0 00 120033 		FMSGD	<]>
   979	031557	476 00 0 00 134161'		SETOM	FINPUT			; set 'file input' flag
   980	031560	263 17 0 00 000000 		RTN				; exit
   981
   982					; File name
   983
   984	031561	44 46 56 51 41 00 	TAKFIL:	SIXBIT	/DFNIA/
   985	031562	43 55 44 00 00 00 		SIXBIT	/CMD/
   986
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 24
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0187

   987						SUBTTL	Test Dispatching
   988
   989					;#********************************************************************
   990					;* TSTSPC - Run only one test
   991					;#********************************************************************
   992
   993	031563	201 00 0 00 032003 	TSTSPC:	MOVEI	TSTALT			; set up altmode transfer address
   994	031564	202 00 0 00 030063 		MOVEM	ALTMGO			;   to exit IPA testing
   995	031565	402 00 0 00 115603 		SETZM	TSTREP			; clear pass count
   996	031566	260 17 0 00 031120*		GO	SWITT			; get program switches
   997	031567	602 00 0 00 020000 		TRNE	LOOPTS			; loop on test?
   998						JRST	[HRLEI	377777		; yes - get 'infinite' repeat count
   999	031570	254 00 0 00 120034 			 JRST	.+2]
  1000	031571	201 00 0 00 000001 		MOVEI	1			; no - set repeat count requested
  1001	031572	202 00 0 00 115604 		MOVEM	TSTREQ			;   to 1 pass
  1002	031573	402 00 0 00 115605 		SETZM	TSTMUL			; clear multiple test flag
  1003	031574	336 00 0 00 031434*		SKIPN	ARGFLG			; argument given?
  1004	031575	254 00 0 00 031604 		JRST	TSTSP0			; no - do the test
  1005	031576	210 01 0 00 120043 		MOVN	1,[FMSGCD (n RepeatCount <CR>)]
  1006	031577	260 17 0 00 031303*		GO	.DARG			; yes - get repeat count argument
  1007	031600	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1008	031601	334 00 0 00 000000 		 SKIPA				; no argument given
  1009	031602	200 00 0 00 031542*		MOVE	ARGUM			; get argument
  1010	031603	202 00 0 00 115604 		MOVEM	TSTREQ			; save it
  1011	031604	476 00 0 00 031574*	TSTSP0:	SETOM	ARGFLG			; remember that we had an argument
  1012	031605	254 00 0 00 031716 		JRST	TSTD3			; do the test
  1013
  1014
  1015					;#********************************************************************
  1016					;* RANGEN - Random number generator
  1017					;#********************************************************************
  1018
  1019	031606	261 17 0 00 000001 	RANGEN:	RPUT	(1,2)			; save AC's
  1020
  1021	031610	200 01 0 00 134222'		MOVE	1,RANNUM#		; get base number
  1022	031611	270 01 0 00 030022 		ADD	1,RANDBS		; modify number in AC1
  1023	031612	241 01 0 00 777774 		ROT	1,-4			; to create a new number
  1024	031613	447 01 0 00 134222'		EQVB	1,RANNUM		; put result in AC1 and RANNUM
  1025	031614	405 01 0 00 007777 		ANDI	1,7777			; save only 4 digits
  1026	031615	220 01 0 17 777777 		IMUL	1,-1(P)			; obtain (0..n-1)*10000
  1027	031616	242 01 0 00 777764 		LSH	1,-^D12			; obtain 0..n-1
  1028	031617	350 00 0 00 000001 		AOS	1			; obtain 1..n
  1029	031620	313 01 0 17 777777 		CAMLE	1,-1(P)			; in range?
  1030	031621	200 01 0 17 777777 		MOVE	1,-1(P)			; no - force it to be
  1031	031622	250 01 0 17 777777 		EXCH	1,-1(P)			; set up returned argument
  1032	031623	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  1033
  1034	031625	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 25
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0188

  1035
  1036					;#********************************************************************
  1037					; TSTRAN - Run tests randomly
  1038					;#********************************************************************
  1039
  1040	031626	201 00 0 00 031647 	TSTRAN:	MOVEI	TSTRAA			; set up altmode transfer address
  1041	031627	202 00 0 00 030063 		MOVEM	ALTMGO			;   to exit port testing
  1042	031630	402 00 0 00 115603 		SETZM	TSTREP			; clear pass count
  1043	031631	201 00 0 00 000001 		MOVEI	1			; set repeat count requested
  1044	031632	202 00 0 00 115604 		MOVEM	TSTREQ			;   to 1 pass
  1045	031633	402 00 0 00 115605 		SETZM	TSTMUL			; clear multiple test flag
  1046	031634	402 00 0 00 134221'		SETZM	RANCNT#			; initialize test count
  1047	031635	400 03 0 00 000000 		SETZ	3,			; set up a base number using the
  1048	031636	260 17 0 00 030763*		GO	RUNTME			;   program run time and save
  1049	031637	200 00 0 00 000000*		MOVE	CURTIM			;   it in RANNUM
  1050	031640	202 00 0 00 134222'		MOVEM	RANNUM
  1051
  1052					; Determine test to run
  1053
  1054	031641	201 01 0 00 000027 	TSTRA0:	MOVEI	1,MAXTST		; get range 1..MAXTST
  1055	031642	260 17 0 00 031606 		GO	RANGEN			; get a random number (in AC1)
  1056	031643	202 01 0 00 115576 		MOVEM	1,TSTNUM		; save test number
  1057	031644	260 17 0 00 031716 		GO	TSTD3			; do the test
  1058	031645	350 01 0 00 134221'		AOS	1,RANCNT		; increment test count
  1059	031646	254 00 0 00 031641 		JRST	TSTRA0			; keep looping
  1060
  1061					; Altmode exit
  1062
  1063	031647	037 01 0 00 120044 	TSTRAA:	FMSGC	<[Testing aborted after >
  1064	031650	200 00 0 00 134221'		MOVE	RANCNT			; get test count
  1065	031651	037 15 0 00 000001 		PNTDCF				; print it
  1066	031652	037 01 0 00 120052 		FMSG	<. tests]>
  1067	031653	262 17 0 00 134261'		GET	XXX#			; pop off extra item
  1068	031654	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 26
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0189

  1069
  1070					;#********************************************************************
  1071					;* TSTDIS - Dispatch to the tests
  1072					;#********************************************************************
  1073
  1074					; Set up flags, defaults, etc.
  1075
  1076	031655	201 00 0 00 032003 	TSTDIS:	MOVEI	TSTALT			; set up altmode transfer address
  1077	031656	202 00 0 00 030063 		MOVEM	ALTMGO			;   to exit port testing
  1078	031657	402 00 0 00 115603 		SETZM	TSTREP			; clear pass count
  1079	031660	402 00 0 00 115604 		SETZM	TSTREQ			; set repeat count requested to 1
  1080	031661	350 00 0 00 115604 		AOS	TSTREQ			;   pass
  1081	031662	476 00 0 00 115605 		SETOM	TSTMUL			; set multiple test flag
  1082	031663	402 00 0 00 115576 		SETZM	TSTNUM			; initialize test number
  1083	031664	336 00 0 00 031604*		SKIPN	ARGFLG			; argument given?
  1084	031665	254 00 0 00 031675 		JRST	TSTD0			; no - do the tests
  1085	031666	210 01 0 00 120061 		MOVN	1,[FMSGCD (CMD RepeatCount <CR>)]
  1086	031667	260 17 0 00 031577*		GO	.DARG			; yes - get repeat count argument
  1087	031670	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1088	031671	334 00 0 00 000000 		 SKIPA				; no argument given
  1089	031672	200 00 0 00 031602*		MOVE	ARGUM			; get argument
  1090	031673	202 00 0 00 115604 		MOVEM	TSTREQ			; save it
  1091	031674	476 00 0 00 031664*		SETOM	ARGFLG			; remember that we had an argument
  1092
  1093					; If OPRSEL switch is not set then all tests are run.
  1094
  1095	031675	402 00 0 00 032151 	TSTD0:	SETZM	TSTRES			; clear first word
  1096	031676	200 00 0 00 120062 		MOVE	[TSTRES,,TSTRES+1]	; build BLT pointer
  1097	031677	251 00 0 00 032230 		BLT	TSTRES+57		; clear the results
  1098	031700	260 17 0 00 031566*		GO	SWITT			; get the pgm switches
  1099	031701	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL set?
  1100	031702	254 00 0 00 031716 		JRST	TSTD3			; no - go run all of them
  1101
  1102					; Handle pass count
  1103
  1104	031703	200 00 0 00 115604 	TSTD1:	MOVE	TSTREQ			; get argument typed
  1105	031704	332 00 0 00 031674*		SKIPE	ARGFLG			; any argument given?
  1106	031705	254 00 0 00 031715 		JRST	TSTD2			; yes - skip over this question
  1107	031706	332 00 0 00 134161'		SKIPE	FINPUT			; file input switch set?
  1108						JRST	[MOVEI	1		; yes - default to 1 iteration
  1109	031707	254 00 0 00 120063 			 JRST	TSTD2]
  1110	031710	037 01 0 00 120065 		FMSGC	<How many passes? (CR to loop forever) - >
  1111	031711	037 04 0 00 000003 		TTIDEC
  1112	031712	007 00 0 00 031703 		ALTCHK	TSTD1
  1113	031713	336 00 0 00 030510 		SKIPN	TTNBRF			; CR typed?
  1114	031714	200 00 0 00 120076 		MOVE	[377777,,777777]	; yes - loop forever
  1115	031715	202 00 0 00 115604 	TSTD2:	MOVEM	TSTREQ			; save count
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 27
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0190

  1116
  1117					; Save test number selection for multiple pass use
  1118
  1119	031716	200 00 0 00 115576 	TSTD3:	MOVE	TSTNUM			; get test number
  1120	031717	202 00 0 00 134235'		MOVEM	SAVNUM#			; save test number
  1121	031720	476 00 0 00 115611 		SETOM	PMODE			; set program mode to 'test'
  1122
  1123					; Initialize test number at beginning of pass
  1124
  1125	031721	200 00 0 00 134235'	TSTD4:	MOVE	SAVNUM			; get test number
  1126	031722	202 00 0 00 115576 		MOVEM	TSTNUM			; save test number
  1127	031723	260 17 0 00 031700*		GO	SWITT			; get the pgm switches
  1128	031724	201 01 0 00 000001 		MOVEI	1,1			; initialize repeat count
  1129	031725	603 00 0 00 000400 		TLNE	RELIAB			; reliability switch set?
  1130	031726	201 01 0 00 000004 		MOVEI	1,4			; yes - set up count of 4
  1131	031727	202 01 0 00 115607 		MOVEM	1,TSTREL		; save it
  1132
  1133					; Now actually do the tests
  1134
  1135	031730	200 00 0 00 115607 	TSTD5:	MOVE	TSTREL			; get reliability count
  1136	031731	202 00 0 00 115610 		MOVEM	TSTCNT			; save it
  1137	031732	350 01 0 00 115576 		AOS	1,TSTNUM		; point to next test
  1138	031733	303 01 0 00 000027 		CAILE	1,MAXTST		; end of tests?
  1139	031734	254 00 0 00 031770 		JRST	TSTD9			; yes - handle
  1140	031735	200 16 0 00 115612 	TSTD6:	MOVE	MBCN,NIPORT		; valid test - set up MBCN
  1141	031736	200 02 0 01 032037 		MOVE	2,TSTTAB(1)		; get test dispatch word
  1142	031737	512 02 0 00 115601 		HLLZM	2,TSTFLG		; set up test flags
  1143	031740	552 02 0 00 115600 		HRRZM	2,TSTPC			; set up test PC
  1144	031741	402 00 0 00 134254'		SETZM	TXADDL			; clear 'addl text' routine address
  1145	031742	402 00 0 00 066700 		SETZM	IQFUL			; clear number of times freeq empty
  1146	031743	201 00 0 00 000100 		MOVEI	100			; set up minumum number of
  1147	031744	202 00 0 00 066701 		MOVEM	IQFMIN			;   entries on the free queue
  1148	031745	402 00 0 00 066702 		SETZM	IQCMAX			; clear maximum entries on cmd queue
  1149
  1150					; Verify that test should be run
  1151
  1152	031746	200 02 0 00 115602 		MOVE	2,TSTMSK		; get test mask
  1153	031747	332 00 0 00 115605 		SKIPE	TSTMUL			; multiple passes?
  1154	031750	612 02 0 00 115601 		TDNE	2,TSTFLG		; valid test to execute?
  1155	031751	260 17 1 00 115600 		GO	@TSTPC			; yes - dispatch to test
  1156
  1157					; Dispatch is done - now check altmode
  1158
  1159	031752	332 00 0 00 134143'	TSTD7:	SKIPE	ALTF			; 'altmode typed' flag set?
  1160	031753	254 00 1 00 030063 		JRST	@ALTMGO			; yes - exit
  1161	031754	037 07 0 00 000003 		TTALTM				; altmode typed?
  1162	031755	334 00 0 00 000000 		SKIPA				; no - continue
  1163	031756	254 00 1 00 030063 		JRST	@ALTMGO			; yes - exit thru $ transfer address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 28
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0191

  1164
  1165					; Loop till reliability count expired
  1166
  1167	031757	373 00 0 00 115610 		SOSLE	TSTCNT			; decrement reliability count
  1168	031760	254 00 0 00 031735 		JRST	TSTD6			; loop till done
  1169	031761	332 00 0 00 030037 	TSTD8:	SKIPE	USER			; user mode?
  1170	031762	254 00 0 00 031766 		JRST	.+4			; yes - continue
  1171	031763	260 17 0 00 031723*		GO	SWITT			; get switches
  1172	031764	603 00 0 00 200000 		TLNE	RSTART			; RSTART switch set?
  1173	031765	254 00 0 00 030611 		JRST	START			; yes - restart the diagnostic
  1174	031766	332 00 0 00 115605 		SKIPE	TSTMUL			; multiple tests being done?
  1175	031767	254 00 0 00 031730 		JRST	TSTD5			; yes - do next test
  1176
  1177					; Now bump pass count
  1178
  1179	031770	350 01 0 00 115603 	TSTD9:	AOS	1,TSTREP		; increment pass count
  1180	031771	332 00 0 00 115605 		SKIPE	TSTMUL			; multiple test flag set?
  1181	031772	260 17 0 00 032021 		GO	TSTEOP			; yes - print end of pass message
  1182	031773	260 17 0 00 031763*		GO	SWITT			; get switches
  1183	031774	336 00 0 00 030037 		SKIPN	USER			; user mode?
  1184	031775	607 00 0 00 400000 		TLNN	ABORT			; abort switch set?
  1185	031776	334 00 0 00 000000 		SKIPA				; no - continue (or user mode)
  1186	031777	263 17 0 00 000000 		RTN				; exit
  1187	032000	373 00 0 00 115604 		SOSLE	TSTREQ			; passes all done?
  1188	032001	254 00 0 00 031721 		JRST	TSTD4			; no - keep looping
  1189	032002	263 17 0 00 000000 		RTN				; exit
  1190
  1191					; Altmode transfer code
  1192
  1193	032003	037 01 0 00 120077 	TSTALT:	FMSGC	<[Testing aborted>
  1194	032004	336 00 0 00 115603 		SKIPN	TSTREP			; zero passes?
  1195	032005	254 00 0 00 032012 		JRST	TSTAL0			; yes - don't print how many
  1196	032006	037 01 0 00 120103 		FMSG	< after >
  1197	032007	200 00 0 00 115603 		MOVE	TSTREP			; get pass count
  1198	032010	037 15 0 00 000001 		PNTDCF				; print it
  1199	032011	037 01 0 00 120105 		FMSG	<. passes>
  1200	032012	037 01 0 00 120033 	TSTAL0:	FMSGD	<]>
  1201	032013	260 17 0 00 031544*		GO	 FIOFF			; clear 'file input' switch
  1202	032014	476 00 0 00 134143'		SETOM	ALTF			; set altmode typed flag
  1203	032015	260 17 0 00 031773*		GO	SWITT			; get program switches
  1204	032016	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
  1205	032017	254 00 0 00 031332 		JRST	TSTDIA			; no - exit to DIAMON
  1206	032020	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 29
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0192

  1207
  1208					; End of pass message
  1209
  1210	032021	260 17 0 00 032015*	TSTEOP:	GO	SWITT			; get switches
  1211	032022	607 00 0 00 000010 		TLNN	OPRSEL			; operator select?
  1212	032023	263 17 0 00 000000 		RTN				; no - don't print end of pass
  1213	032024	332 00 0 00 134156'		SKIPE	EDEBUG			; expanded data switch set?
  1214						GO	[TMSG	<Port->		; yes - print what port
  1215							 LDB	[POINT 3,MBCN,9];   this is
  1216							 PNT2
  1217							 PSP
  1218	032025	260 17 0 00 120112 			 RTN]
  1219	032026	037 00 0 00 120117 		TMSG	<End Pass >		; print pass count
  1220	032027	200 00 0 00 115603 		MOVE	TSTREP
  1221	032030	037 15 0 00 000000 		PNTDEC
  1222	032031	037 00 0 00 117043 		TMSG	<. at >
  1223	032032	402 00 0 00 030761*		SETZM	FORPNT			; clear force print
  1224	032033	200 03 0 00 117045 		MOVE	3,[JFCL]		; set up timer routine
  1225	032034	260 17 0 00 031636*		GO	RUNTME			; print current time
  1226	032035	037 00 0 00 030242 		PCRL
  1227	032036	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 30
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0193

  1228
  1229					; Table of test names and flags
  1230
  1231	032037	000000	000000		TSTTAB:	0
  1232	032040	000000000000#			PORT!TST1			; 1
  1233	032041	000000000000#			PORT!TST2			; 2
  1234	032042	000000000000#			PORT!TST3			; 3
  1235	032043	000000000000#			FUNCT!TST4			; 4
  1236	032044	000000000000#			FUNCT!TST5			; 5
  1237	032045	000000000000#			NIA!TST6			; 6
  1238	032046	000000000000#			NIA!TST7			; 7
  1239	032047	000000000000#			NIA!TST10			; 10
  1240	032050	000000000000#			NIA!TST11			; 11
  1241	032051	000000000000#			LOOP!TST12			; 12
  1242	032052	000000000000#			LOOP!TST13			; 13
  1243	032053	000000000000#			LOOP!TST14			; 14
  1244	032054	000000000000#			FUNCT!TST15			; 15
  1245	032055	000000000000#			FUNCT!TST16			; 16
  1246	032056	000000000000#			FUNCT!TST17			; 17
  1247	032057	000000000000#			FUNCT!TST20			; 20
  1248	032060	000000000000#			FUNCT!TST21			; 21
  1249	032061	000000000000#			FUNCT!TST22			; 22
  1250	032062	000000000000#			FUNCT!TST23			; 23
  1251	032063	000000000000#			FUNCT!TST24			; 24
  1252	032064	000000000000#			FUNCT!TST25			; 25
  1253	032065	000000000000#			FUNCT!TST26			; 26
  1254	032066	000000000000#			LOOP!TST27			; 27
  1255	032067	000000	000000		TSTMAX:	0
  1256
  1257					; Table of address of test microcode
  1258
  1259	032070	000000	000000		TSTMIC:	0
  1260	032071	000000	000000			0				; 1
  1261	032072	000000000000#			T2M				; 2
  1262	032073	000000000000#			T3M				; 3
  1263	032074	000000	000000			0				; 4
  1264	032075	000000	000000			0				; 5
  1265	032076	000000	000000			0				; 6
  1266	032077	000000	000000			0				; 7
  1267	032100	000000	000000			0				; 10
  1268	032101	000000	000000			0				; 11
  1269	032102	000000	000000			0				; 12
  1270	032103	000000	000000			0				; 13
  1271	032104	000000	000000			0				; 14
  1272	032105	000000	000000			0				; 15
  1273	032106	000000	000000			0				; 16
  1274	032107	000000	000000			0				; 17
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 31
DFNIA1	MAC	18-Feb-84 20:30		Test Dispatching                                                                   SEQ 0194

  1275	032110	000000	000000			0				; 20
  1276	032111	000000	000000			0				; 21
  1277	032112	000000	000000			0				; 22
  1278	032113	000000	000000			0				; 23
  1279	032114	000000	000000			0				; 24
  1280	032115	000000	000000			0				; 25
  1281	032116	000000	000000			0				; 26
  1282	032117	000000	000000			0				; 27
  1283
  1284					; Test names
  1285
  1286	032120	000000	000000		TSTNAM:	0
  1287	032121	037 00 0 00 120121 		TMSG	<Port Hardware Test 1> 		; 1
  1288	032122	037 00 0 00 120126 		TMSG	<Port Hardware Test 2>		; 2
  1289	032123	037 00 0 00 120133 		TMSG	<Port Hardware Test 3>		; 3
  1290	032124	037 00 0 00 120140 		TMSG	<Idle Loop Test>		; 4
  1291	032125	037 00 0 00 120143 		TMSG	<Queue Handling Test>		; 5
  1292	032126	037 00 0 00 120147 		TMSG	<NSA ROM Address Test>		; 6
  1293	032127	037 00 0 00 120154 		TMSG	<NSA RAM Address Test>		; 7
  1294	032130	037 00 0 00 120161 		TMSG	<CRC Test 1>			; 10
  1295	032131	037 00 0 00 120164 		TMSG	<CRC Test 2>			; 11
  1296	032132	037 00 0 00 120167 		TMSG	<Non-BSD Datagram Loopback Test>; 12
  1297	032133	037 00 0 00 120176 		TMSG	<BSD Datagram Loopback Test 1>	; 13
  1298	032134	037 00 0 00 120204 		TMSG	<BSD Datagram Loopback Test 2>	; 14
  1299	032135	037 00 0 00 120212 		TMSG	<Multicast Table Test 1> 	; 15
  1300	032136	037 00 0 00 120217 		TMSG	<Multicast Table Test 2>	; 16
  1301	032137	037 00 0 00 120224 		TMSG	<Multicast Table Test 3>	; 17
  1302	032140	037 00 0 00 120231 		TMSG	<Broadcast Test 3>		; 20
  1303	032141	037 00 0 00 120235 		TMSG	<PTT Table Test 1>		; 21
  1304	032142	037 00 0 00 120241 		TMSG	<PTT Table Test 2>		; 22
  1305	032143	037 00 0 00 120245 		TMSG	<PTT Table Test 3>		; 23
  1306	032144	037 00 0 00 120251 		TMSG	<PAD Flag Bit Test 1>		; 24
  1307	032145	037 00 0 00 120255 		TMSG	<PAD Flag Bit Test 2>		; 25
  1308	032146	037 00 0 00 120261 		TMSG	<Configuration Test> 		; 26
  1309	032147	037 00 0 00 120265 		TMSG	<Statistics Test>		; 27
  1310	032150	000000	000000			0
  1311
  1312	032151				TSTRES:	BLOCK	60			; test results
  1313
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 32
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0195

  1314						SUBTTL	Port Debugger
  1315
  1316					;#*********************************************************************
  1317					;* TSTDEB - Console command utility for the port.
  1318					;
  1319					; Command		Action
  1320					; -------		------
  1321					;  ?		   Print list of commands available.
  1322					;
  1323					;  HELP		   Print list of commands and description.
  1324					;  EXIT		   Exit debugger mode and go back to 'What Test' level.
  1325					;  DDT		   Enter DDT.
  1326					;
  1327					;  TAKE		   Take commands from specified file
  1328					;  NTAKE	   Take commands from specified file (unechoed)
  1329					;
  1330					;  SET ADDR adr      Set start address
  1331					;      CSR data      Set start CSR data
  1332					;      PARITY arg*   Set/clr auto par generation
  1333					;      EBUF arg*     Set/clr preserve EBUF flag
  1334					;      PCB arg*      Set/clr PCB CCW list for START
  1335					;      FNAME nm ext  Set default ucode file name
  1336					;      PAT n         Set data pattern
  1337					;      PATLIS arg    List data patterns
  1338					;      RESPON arg*   Set/clr forced response
  1339					;      FORMAT arg    Set format (COMPAT or HIDEN)
  1340					;      BSD arg       Set BSD style datagram
  1341					;      LENGTH len    Set text length
  1342					;      DADDR n1,n2   Set destination address
  1343					;      SADDR n1,n2   Set self address
  1344					;      PTTVAL arg    Set PTT value
  1345					;      PRINT adr     Set text length to print
  1346					;      INTERV sec    Interval (seconds)
  1347					;      SUMMAR sec    Summary interval (seconds)
  1348					;      WHAT          Print options
  1349					;      HELP          Set help message
  1350					;
  1351					;  ECSR		   Print contents of the CSR register (in octal).
  1352					;  DCSR	arg	   Change the contents of the CSR registers.
  1353					;  ZCSR		   Clear CSR register.
  1354					;
  1355					;  RESET	   Issue an EBUS reset.
  1356					;  CLEAR	   Issue a 'Clear Port'.
  1357					;
  1358					;  START adr	   Start port microcode by setting CSR Bit 21 'MPROC Run'.
  1359					;		   If address is supplied, start at that address; if no
  1360					;		   address is supplied, start at location 0.
  1361					;
  1362					;  STOP		   Stop port microcode by clearing CSR Bit 21 'MPROC Run'.
  1363					;		   Report the last CRAM address also.
  1364					;
  1365					;  CONT		   Clear the single step bit and set 'MPROC Run' in the port.
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 33
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0196

  1366
  1367					;  Response		Action
  1368					;  --------		------
  1369					;  SSTEP arg	   Single step the port microcode 'ARG' times.  Report 
  1370					;		   final CRAM address.
  1371					;
  1372					;  STRACE arg	   Single step the port microcode 'ARG' times.  Report 
  1373					;		   the CRAM address and CSR register contents after each
  1374					;		   micro-instruction.
  1375					;
  1376					;  SPRINT arg	   Print single step history data, 'ARG' entries.
  1377					;  SCLEAR	   Clear single step history data.
  1378					;  SSINIT	   Initialize single step data
  1379					;
  1380					;  EEBUF	   Print contents of EBUF register.
  1381					;  DEBUF arg	   Deposit data to EBUF register.
  1382					;  ZEBUF	   Zero EBUF register.
  1383					;
  1384					;  ELAR		   Print contents of LAR register.
  1385					;  DRAR	arg	   Deposit data to RAR register.
  1386					;  ZRAR		   Zero RAR register.
  1387					;
  1388					;  DCRAM adr,adr   Deposit data into port CRAM addresses specified by 'adr1'
  1389					;		   and 'adr2'.  The data will be queried for each address.
  1390					;		   The port microcode must be stopped.
  1391					;
  1392					;  BCRAM adr,adr   Deposit data as above, data is queried by bit field.
  1393					;
  1394					;  ACRAM adr,adr   Alter CRAM locations, addresses selected as above.
  1395					;
  1396					;  ECRAM adr,adr   Examine port CRAM addresses.  'Adr1' and 'adr2' specify
  1397					;		   examine limits.  The port microcode must be stopped.
  1398					;
  1399					;  LCRAM adr,adr   List port CRAM addresses.  'Adr1' and 'adr2' specify
  1400					;		   examine limits.  The port microcode must be stopped.
  1401					;
  1402					;  ZCRAM adr,adr   Zero port CRAM addresses.  'Adr1' and 'adr2' specify
  1403					;		   examine limits.  The port microcode must be stopped.
  1404					;
  1405					;  ELOCS adr,adr   Examine local storage contents
  1406					;  DLOCS adr,adr   Deposit local storage contents
  1407					;  ZLOCS adr,adr   Zero local storage contents
  1408					;
  1409					;  E2901 adr,adr   Examine 2901 registers
  1410					;  D2901 adr,data  Deposit 2901 registers
  1411					;  Z2901 adr,adr   Zero 2901 registers
  1412					;
  1413					;  MARK adr..      Set mark bit in CRAM locations
  1414					;  RMARK adr..	   Remove mark bit at CRAM address 'adr'
  1415					;  CMARK adr,adr   Clear mark bit in CRAM locations
  1416					;  LMARK	   List locations with mark bit set
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 34
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0197

  1417
  1418					;  Response		Action
  1419					;  --------		------
  1420					;  BREAK adr..	  Set a breakpoint at port CRAM address
  1421					;  RBREAK adr..	  Remove breakpoint at port CRAM address 'adr'
  1422					;  CBREAK adr,adr Clear all breakpoints
  1423					;  LBREAK adr,adr List breakpoints
  1424					;
  1425					;  LOAD	arg	  Load microcode into CRAM from a test.  'Arg' specifies
  1426					;		  the test number.
  1427					;  LIST arg	  List microcode of a test.  'Arg' specifies the test
  1428					;		  number.
  1429					;
  1430					;  FLOAD 	  Load microcode from disk file into CRAM.
  1431					;  FVERFY	  Verify microcode loaded.
  1432					;  FLIST	  List microcode on disk file.
  1433					;  FEXAM	  Examine microcode on disk file.
  1434					;
  1435					;  TRANSL arg     Translate given CSR bits to English.
  1436					;  CCODE	  Print current status of condition codes.
  1437					;  ESTACK	  Examine 2910 stack contents
  1438					;
  1439					;  FILLNX arg	  Fill CRAM with data as 'J=.+1,CTL=x', where 'x' is given.
  1440					;  FILLPC arg	  Fill CRAM with data as 'J=.,CTL=x', where 'x' is given.
  1441					;
  1442					;  IPRINT	  Print interrupt history
  1443					;  ICLEAR	  Clear interrupt history
  1444					;  IINIT	  Initialize interrupt system
  1445					;
  1446					;  STATIS	  Print statistics
  1447					;  ZSTATS	  Clear statistics
  1448					;  ZCOUNT	  Clear counters
  1449					;  CONFIG	  Print system configuration
  1450					;
  1451					;  CCWPNT	  Print CCW list
  1452					;  LOGPNT	  Print logout data
  1453					;
  1454					;  PINIT	  Initialize PCB
  1455					;  SIDLE	  Start port until reach IDLE loop
  1456					;  BPACK	  Build a packet
  1457					;  IQUEUE	  Put packet on cmd queue
  1458					;  PQUEUE	  Print contents of a queue
  1459					;  PPCB		  Print PCB
  1460					;  WATCH	  Watch port and print events
  1461					;
  1462					;  DEPPTT	  Deposit into PTT table
  1463					;  DEPMUL	  Deposit into Multicast address table
  1464					;  DEPPAK	  Deposit into packet
  1465					;
  1466					;  DPLI lnk,data  Deposit data to PLI
  1467					;  EPLI lnk,reg   Read PLI data
  1468					;
  1469					;  ETBUFF	  Read transmit buffers
  1470					;  ERBUFF	  Read receive buffers
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 35
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0198

  1471
  1472					;  Switches:  To complement switch, type switch name
  1473					;
  1474					;  SWITCH	   Enter switches
  1475					;  SWPRIN	   Print current switches
  1476					;
  1477					;  NOPNT   LOOPER  RELIAB   TRACE   LOOPGM  DSPEAR  LDEBUG
  1478					;  PNTLPT  ERSTOP  TXTINH   INHFLT  LOOPTS  UDEBUG  DDEBUG
  1479					;  DING    PALERS  OPRSEL   INHMSG  RUNALL  MDEBUG  EDEBUG
  1480					;
  1481					; Common Error Messages For 'DEBUG' Mode:
  1482					;
  1483					; "? Missing argument" - Response to "DEBUG>" prompt expects a command
  1484					;	plus an argument.
  1485					;
  1486					; "? Argument Error" - An attempt was made to decode an octal or decimal
  1487					;	argument.  It was undecipherable.
  1488					;
  1489					; "? Range nonsensical" - The beginning address is greater than ending
  1490					;	address.
  1491					;
  1492					; "? Range of CRAM locations is 0000-7777" - Argument(s) typed were not
  1493					;	in range.
  1494					;
  1495					; "? Port not stopped" - An operation requiring the port to be stopped
  1496					;	was issued when 'MPROC Run' was set.
  1497					;
  1498					; "? Port not running" - A function was issued to the port when it was
  1499					;	stopped.  It should have been running.
  1500					;
  1501					; "? Error accessing CSR registers" - A read of CSR register failed.
  1502					;
  1503					; "? Test specified does not have microcode" - An attempt to load ucode
  1504					;	from this test failed because the test doesn't have any.
  1505					;
  1506					; "? Unrecognized command" - Unrecognized command entered.
  1507					;#********************************************************************
  1508
  1509	032231	200 01 0 00 120274 	TSTDEB:	MOVE	1,[FMSGCD (DEBUG <CR>)]
  1510	032232	260 17 0 00 031517*		GO	CHKARG			; check for argument
  1511	032233	263 17 0 00 000000 		RTN				; error - exit
  1512	032234	202 17 0 00 134232'		MOVEM	P,SAVCMD#		; save PC
  1513
  1514					; Initialize things
  1515
  1516	032235	402 00 0 00 134213'	CMD0:	SETZM	PCMD#			; clear the command storage
  1517	032236	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
  1518	032237	201 00 0 00 303240 		MOVEI	^D100000		; re-set up print limit just in case
  1519	032240	212 00 0 00 030220 		MOVNM	PNTENB			;   the last test exceeded it
  1520	032241	200 16 0 00 115612 		MOVE	MBCN,NIPORT		; set up MBCN register properly
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 36
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0199

  1521
  1522					; Set/clear debug switches
  1523
  1524	032242	402 00 0 00 134255'		SETZM	UDEBUG			; clear no-IPA user mode debug switch
  1525	032243	402 00 0 00 134172'		SETZM	MDEBUG			; clear error message debug switch
  1526	032244	402 00 0 00 134166'		SETZM	LDEBUG			; clear ucode load debug switch
  1527	032245	402 00 0 00 134151'		SETZM	DDEBUG			; clear dump on error debug switch
  1528	032246	260 17 0 00 032021*		GO	SWITT			; get switches
  1529	032247	602 00 0 00 002000 		TRNE	DEBUG1			; debug switch set?
  1530	032250	476 00 0 00 134255'		SETOM	UDEBUG			; set no-IPA user mode debug switch
  1531	032251	602 00 0 00 001000 		TRNE	DEBUG2			; debug switch set?
  1532	032252	476 00 0 00 134172'		SETOM	MDEBUG			; set error message debug switch
  1533	032253	602 00 0 00 000400 		TRNE	DEBUG3			; debug switch set?
  1534	032254	476 00 0 00 134166'		SETOM	LDEBUG			; set ucode load debug switch
  1535	032255	602 00 0 00 000200 		TRNE	DEBUG4			; debug switch set?
  1536	032256	476 00 0 00 134151'		SETOM	DDEBUG			; set dump on error debug switch
  1537	032257	402 00 0 00 115611 		SETZM	PMODE			; set program mode to 'no test'
  1538	032260	402 00 0 00 134174'		SETZM	MULFLG			; clear 'multiple examine' flag
  1539	032261	476 00 0 00 134175'		SETOM	MULINI			; set 'initial examine' flag
  1540	032262	402 00 0 00 134254'		SETZM	TXADDL			; clear 'addl text' routine address
  1541
  1542					; Input command
  1543
  1544	032263	260 17 0 00 031005*		GO	CLRBUF			; clear input buffer
  1545	032264	260 17 0 00 000000*	CMD1:	GO	.INPNT			; print interrupt fielded (if any)
  1546						MOVEI	[PCRL			; set up $ transfer address
  1547							 SETZM	ALTF
  1548							 GO	FIOFF
  1549	032265	201 00 0 00 120275 			 JRST	CMD0]
  1550	032266	202 00 0 00 030063 		MOVEM	ALTMGO
  1551	032267	402 00 0 00 134143'		SETZM	ALTF			; clear 'altmode typed' flag
  1552	032270	336 00 0 00 134161'		SKIPN	FINPUT			; file input?
  1553	032271	476 00 0 00 134160'		SETOM	FINECH			; no - ensure echo flag set
  1554	032272	332 00 0 00 134160'		SKIPE	FINECH			; echo flag set?
  1555						GO	[PFORCE			; no - print all this
  1556							 PCRLF
  1557							 FMSG	(DEBUG> )
  1558	032273	260 17 0 00 120303 			 RTN]
  1559	032274	332 00 0 00 134161'		SKIPE	FINPUT			; file input?
  1560						JRST	[GO	FINCMD		; yes - input sixbit cmd
  1561							 JRST	CMD1		; error or EOF
  1562	032275	254 00 0 00 120307 			 JRST	CMD2]		; continue
  1563	032276	037 10 0 00 000003 	CMD1A:	TTSIXB				; get operator input
  1564						ALTCHK	[GET	XXW#		; adjust stack properly
  1565							 SKIPN	$TWCNT		; did a timeout occur?
  1566							 JRST	CMD1		; yes - keep looking for input
  1567							 MOVE	1,$TTCHR	; no - get character typed
  1568							 CAIN	1,77		; was a question mark typed?
  1569							 JRST	CMDQUE		; yes - handle
  1570							 CAIN	1,40		; space (delimiter character) typed?
  1571							 JRST	.+1		; yes - continue (no error occurred)
  1572							 FMSGCD	<? Unrecognizable - Type ? for help>
  1573							 GO	FIOFF		; turn off file input
  1574	032277	007 00 0 00 120312 			 JRST	CMD0]		; error - reask question
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 37
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0200

  1575
  1576					CMD2:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
  1577							 CAIN	40		;   looking for an argument, if not
  1578							 JRST	CMD1A		;   exit
  1579	032300	322 00 0 00 120325 			 JRST	CMD1]
  1580	032301	202 00 0 00 134213'		MOVEM	PCMD			; save command typed
  1581	032302	402 00 0 00 031704*		SETZM	ARGFLG			; clear 'argument given' flag
  1582	032303	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
  1583	032304	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
  1584	032305	476 00 0 00 032302*		SETOM	ARGFLG			; set 'argument given' flag
  1585
  1586					; Decode the command
  1587
  1588	032306	200 01 0 00 134213'		MOVE	1,PCMD			; get sixbit command
  1589	032307	201 02 0 00 032322 		MOVEI	2,.DBCMD		; get address of cmd list
  1590	032310	260 17 0 00 031401*		GO	.COMM			; handle command decoding
  1591						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  1592							 GO	FIOFF
  1593	032311	254 00 0 00 120322 			 JRST	CMD0]		; error return
  1594	032312	260 17 1 01 032474 		GO	@.DBDIS(1)		; dispatch to test
  1595	032313	254 00 0 00 032235 		JRST	CMD0			; return to 'DEBUG>' prompt
  1596
  1597					; Question mark typed
  1598
  1599	032314	037 01 0 00 000026 	CMDQUE:	PFORCE				; handle Control-O
  1600	032315	037 00 1 00 032317 		PNTMSG	@CMDQUU			; print text
  1601	032316	254 00 0 00 032235 		JRST	CMD0			; look for new command
  1602
  1603	032317				CMDQUU:	[ASCII	/
  1604					-------- Miscellaneous ---------------------   - NI -  -- Switches --
  1605					HELP    IPRINT  START   EEBUF  ECRAM   MARK    PINIT   NOPNT   TRACE
  1606					EXIT    ICLEAR  STOP    DEBUF  BCRAM   RMARK   SIDLE   PNTLPT  INHFLT
  1607					DDT     IINIT   CONT    ZEBUF  ACRAM   CMARK   WATCH   DING    INHMSG
  1608	032317	000000	120331		                SSTEP          ECRAM   LMARK           ERSTOP  LOOPGM /]
  1609						[ASCII	/
  1610					SET     CCWPNT  STRACE  ELAR   LCRAM           BPACK   PALERS  LOOPTS
  1611					TAKE    LOGPNT  SPRINT  DRAR   ZCRAM   BREAK   IQUEUE  RELIAB  RUNALL
  1612					NTAKE           SCLEAR  ZRAR           RBREAK          TXTINH  DSPEAR
  1613					TRANSL  CONFIG  SSINIT         ECSR    CBREAK  PPCB    OPRSEL  UDEBUG
  1614	032320	000000	120440		FILLNX                  E2901  DCSR    LBREAK  PQUEUE          MDEBUG/]
  1615						[ASCIZ	/
  1616					FILLPC  FLOAD   ELOCS   D2901  ZCSR                    SWITCH  LDEBUG
  1617					STATIS  FVERFY  DLOCS   Z2901          DUMP    DEBPTT  SWPRIN  DDEBUG
  1618					ZSTATS  FLIST   ZLOCS          EPLI    CCODE   DEPMUL          EDEBUG
  1619					ZCOUNT  FEXAM           ENEXT  DPLI    ESTACK  DEPBAK
  1620					RESET                   DNEXT  ETBUFF
  1621					CLEAR                          ERBUFF
  1622	032321	000000	120547		/]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 38
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0201

  1623
  1624					;#********************************************************************
  1625					;* .DBCMD - List of acceptable commands
  1626					;#********************************************************************
  1627
  1628					; Miscellaneous commands
  1629
  1630	032322	777777	777655		.DBCMD:	-123				; ignore
  1631	032323	50 45 54 60 00 00 		SIXBIT	/HELP/			; print help message
  1632	032324	45 70 51 64 00 00 		SIXBIT	/EXIT/			; exit DEBUG mode
  1633	032325	44 44 64 00 00 00 		SIXBIT	/DDT/			; enter DDT
  1634
  1635	032326	63 45 64 00 00 00 		SIXBIT	/SET/			; set/print options
  1636	032327	64 41 53 45 00 00 		SIXBIT	/TAKE/			; take commands from a file
  1637	032330	56 64 41 53 45 00 		SIXBIT	/NTAKE/			; take commands from a file
  1638	032331	45 56 45 70 64 00 		SIXBIT	/ENEXT/			; examine next location
  1639	032332	44 56 45 70 64 00 		SIXBIT	/DNEXT/			; examine next location
  1640
  1641					; CSR commands
  1642
  1643	032333	45 43 63 62 00 00 		SIXBIT	/ECSR/			; examine CSR register
  1644	032334	44 43 63 62 00 00 		SIXBIT	/DCSR/			; deposit CSR register
  1645	032335	72 43 63 62 00 00 		SIXBIT	/ZCSR/			; zero CSR register
  1646
  1647	032336	62 45 63 45 64 00 		SIXBIT	/RESET/			; issue an EBUS Reset
  1648	032337	43 54 45 41 62 00 		SIXBIT	/CLEAR/			; issue a 'Port Clear'
  1649
  1650					; Start/stop/single step commands
  1651
  1652	032340	63 64 41 62 64 00 		SIXBIT	/START/			; start the port
  1653	032341	63 64 57 60 00 00 		SIXBIT	/STOP/			; stop the port
  1654	032342	43 57 56 64 00 00 		SIXBIT	/CONT/			; continue the port
  1655	032343	63 63 64 45 60 00 		SIXBIT	/SSTEP/			; single step the port
  1656	032344	63 64 62 41 43 45 		SIXBIT	/STRACE/		; single step the port while tracing
  1657	032345	63 60 62 51 56 64 		SIXBIT	/SPRINT/		; print single step history
  1658	032346	63 43 54 45 41 62 		SIXBIT	/SCLEAR/		; clear single step history data
  1659	032347	63 63 51 56 51 64 		SIXBIT	/SSINIT/		; set up ss start addr/data/history
  1660
  1661					; EBUF commands
  1662
  1663	032350	45 45 42 65 46 00 		SIXBIT	/EEBUF/			; examine EBUF register
  1664	032351	44 45 42 65 46 00 		SIXBIT	/DEBUF/			; deposit EBUF register
  1665	032352	72 45 42 65 46 00 		SIXBIT	/ZEBUF/			; zero EBUF register
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 39
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0202

  1666
  1667					; RAR/LAR commands
  1668
  1669	032353	45 54 41 62 00 00 		SIXBIT	/ELAR/			; examine LAR register
  1670	032354	44 62 41 62 00 00 		SIXBIT	/DRAR/			; deposit RAR register
  1671	032355	72 62 41 62 00 00 		SIXBIT	/ZRAR/			; zero RAR register
  1672
  1673					; CRAM commands
  1674
  1675	032356	44 43 62 41 55 00 		SIXBIT	/DCRAM/			; deposit into port CRAM
  1676	032357	42 43 62 41 55 00 		SIXBIT	/BCRAM/			; deposit into port CRAM by bit field
  1677	032360	41 43 62 41 55 00 		SIXBIT	/ACRAM/			; alter port CRAM
  1678	032361	45 43 62 41 55 00 		SIXBIT	/ECRAM/			; examine port CRAM
  1679	032362	54 43 62 41 55 00 		SIXBIT	/LCRAM/			; list port CRAM
  1680	032363	72 43 62 41 55 00 		SIXBIT	/ZCRAM/			; zero port CRAM
  1681
  1682					; 2901 commands
  1683
  1684	032364	45 22 31 20 21 00 		SIXBIT	/E2901/			; examine 2901 registers
  1685	032365	44 22 31 20 21 00 		SIXBIT	/D2901/			; deposit 2901 registers
  1686	032366	72 22 31 20 21 00 		SIXBIT	/Z2901/			; zero 2901 registers
  1687
  1688					; Local storage commmands
  1689
  1690	032367	45 54 57 43 63 00 		SIXBIT	/ELOCS/			; examine local storage
  1691	032370	44 54 57 43 63 00 		SIXBIT	/DLOCS/			; deposit local storage
  1692	032371	72 54 57 43 63 00 		SIXBIT	/ZLOCS/			; zero local storage
  1693
  1694					; Mark bit commands
  1695
  1696	032372	55 41 62 53 00 00 		SIXBIT	/MARK/			; set mark bit in locations
  1697	032373	62 55 41 62 53 00 		SIXBIT	/RMARK/			; remove mark bit in locations
  1698	032374	43 55 41 62 53 00 		SIXBIT	/CMARK/			; clear mark bit in locations
  1699	032375	54 55 41 62 53 00 		SIXBIT	/LMARK/			; list locations with mark bit set
  1700
  1701					; Breakpoint commands
  1702
  1703	032376	42 62 45 41 53 00 		SIXBIT	/BREAK/			; set breakpoint
  1704	032377	62 42 62 45 41 53 		SIXBIT	/RBREAK/		; remove breakpoint
  1705	032400	43 42 62 45 41 53 		SIXBIT	/CBREAK/		; clear all breakpoints
  1706	032401	54 42 62 45 41 53 		SIXBIT	/LBREAK/		; list breakpoints
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 40
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0203

  1707
  1708					; Microcode file commands
  1709
  1710	032402	54 57 41 44 00 00 		SIXBIT	/LOAD/			; load microcode from test into CRAM
  1711	032403	54 51 63 64 00 00 		SIXBIT	/LIST/			; list microcode from test
  1712	032404	46 54 57 41 44 00 		SIXBIT	/FLOAD/			; load microcode from file into CRAM
  1713	032405	46 66 45 62 46 71 		SIXBIT	/FVERFY/		; verify microcode loaded
  1714	032406	46 54 51 63 64 00 		SIXBIT	/FLIST/			; list microcode in file
  1715	032407	46 45 70 41 55 00 		SIXBIT	/FEXAM/			; examine microcode in file
  1716
  1717					; Miscellaneous commands
  1718
  1719	032410	64 62 41 56 63 54 		SIXBIT	/TRANSL/		; translate CSR bits
  1720	032411	43 43 57 44 45 00 		SIXBIT	/CCODE/			; print condition codes
  1721	032412	45 63 64 41 43 53 		SIXBIT	/ESTACK/		; examine 2910 stack contents
  1722	032413	46 51 54 54 56 70 		SIXBIT	/FILLNX/		; fill CRAM with special data
  1723	032414	46 51 54 54 60 43 		SIXBIT	/FILLPC/		; fill CRAM with special data
  1724	032415	51 60 62 51 56 64 		SIXBIT	/IPRINT/		; print interrupt history
  1725	032416	51 43 54 45 41 62 		SIXBIT	/ICLEAR/		; clear interrupt history
  1726	032417	51 51 56 51 64 00 		SIXBIT	/IINIT/			; initialize interrupt system
  1727
  1728	032420	63 64 41 64 51 63 		SIXBIT	/STATIS/		; print collected statistics
  1729	032421	72 63 64 41 64 63 		SIXBIT	/ZSTATS/		; clear statistics areas
  1730	032422	72 43 57 65 56 64 		SIXBIT	/ZCOUNT/		; clear counters data
  1731	032423	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; print current configuration
  1732	032424	44 65 55 60 00 00 		SIXBIT	/DUMP/			; dump entire port status
  1733
  1734					; Data transfer routines
  1735
  1736	032425	43 43 67 60 56 64 		SIXBIT	/CCWPNT/		; print CCW list
  1737	032426	54 57 47 60 56 64 		SIXBIT	/LOGPNT/		; print logout data
  1738
  1739					; NI related commands
  1740
  1741	032427	60 51 56 51 64 00 		SIXBIT	/PINIT/			; initialize PCB and queues
  1742	032430	63 51 44 54 45 00 		SIXBIT	/SIDLE/			; start port and wait for IDLE loop
  1743	032431	42 60 41 43 53 00 		SIXBIT	/BPACK/			; build a packet
  1744	032432	51 61 65 45 65 45 		SIXBIT	/IQUEUE/		; insert on queue
  1745	032433	60 61 65 45 65 45 		SIXBIT	/PQUEUE/		; print specified queue
  1746	032434	60 60 43 42 00 00 		SIXBIT	/PPCB/			; print PCB
  1747	032435	67 41 64 43 50 00 		SIXBIT	/WATCH/			; watch port and print events
  1748	032436	44 60 54 51 00 00 		SIXBIT	/DPLI/			; deposit data to PLI
  1749	032437	45 60 54 51 00 00 		SIXBIT	/EPLI/			; examine PLI
  1750	032440	44 45 60 60 64 64 		SIXBIT	/DEPPTT/		; deposit into PTT table
  1751	032441	44 45 60 55 65 54 		SIXBIT	/DEPMUL/		; deposit into Multicast table
  1752	032442	44 45 60 60 41 53 		SIXBIT	/DEPPAK/		; deposit into packet
  1753	032443	45 64 42 65 46 46 		SIXBIT	/ETBUFF/		; read transmit buffers
  1754	032444	45 62 42 65 46 46 		SIXBIT	/ERBUFF/		; read receive buffers
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 41
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0204

  1755
  1756					; Switches
  1757
  1758	032445	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; input switches
  1759	032446	63 67 60 62 51 56 		SIXBIT	/SWPRIN/		; print switch selections
  1760	032447	56 57 60 56 64 00 		SIXBIT	/NOPNT/			; don't print anything
  1761	032450	60 56 64 54 60 64 		SIXBIT	/PNTLPT/		; print on printer
  1762	032451	44 51 56 47 00 00 		SIXBIT	/DING/			; ding on error
  1763	032452	45 62 63 64 57 60 		SIXBIT	/ERSTOP/		; halt on error
  1764	032453	60 41 54 45 62 63 		SIXBIT	/PALERS/		; print all errors
  1765	032454	62 45 54 51 41 42 		SIXBIT	/RELIAB/		; reliability testing
  1766	032455	64 70 64 51 56 50 		SIXBIT	/TXTINH/		; shorten printing
  1767	032456	57 60 62 63 45 54 		SIXBIT	/OPRSEL/		; operator select
  1768	032457	64 62 41 43 45 00 		SIXBIT	/TRACE/			; trace pgm flow
  1769	032460	51 56 50 46 54 64 		SIXBIT	/INHFLT/		; inhibit fault isolation
  1770	032461	51 56 50 55 63 47 		SIXBIT	/INHMSG/		; inhibit error messages
  1771	032462	54 57 57 60 47 55 		SIXBIT	/LOOPGM/		; loop on program
  1772	032463	54 57 57 60 64 63 		SIXBIT	/LOOPTS/		; loop on test
  1773	032464	62 65 56 41 54 54 		SIXBIT	/RUNALL/		; run all test segments
  1774	032465	44 63 60 45 41 62 		SIXBIT	/DSPEAR/		; disable SPEAR reporting
  1775	032466	65 44 45 42 65 47 		SIXBIT	/UDEBUG/		; no-IPA user mode debug switch
  1776	032467	55 44 45 42 65 47 		SIXBIT	/MDEBUG/		; error message debug switch
  1777	032470	54 44 45 42 65 47 		SIXBIT	/LDEBUG/		; load microcode debug switch
  1778	032471	44 44 45 42 65 47 		SIXBIT	/DDEBUG/		; dump on error debug switch
  1779	032472	45 44 45 42 65 47 		SIXBIT	/EDEBUG/		; expanded error msg switch
  1780	032473	000 00 0 00 000000 		Z				; list terminator
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 42
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0205

  1781
  1782					;#********************************************************************
  1783					;* .DBDIS - List of dispatch addresses
  1784					;#********************************************************************
  1785
  1786	032474	000000	117037		.DBDIS:	[RTN]				; ignore
  1787	032475	000000	032645			DHELP				; HELP - print help message
  1788						[MOVE	1,[FMSGCD (EXIT <CR>)]	; EXIT - exit DEBUG mode
  1789						 GO	CHKARG
  1790						 RTN
  1791						 GET	XXX#
  1792	032476	000000	120655			 RTN]
  1793	032477	000000	031337			TSTDDT				; DDT - enter DDT
  1794
  1795	032500	000000	032737			DSET				; SET - set/clear/print options
  1796	032501	000000	031527			TSTTAK				; TAKE - take commands from file
  1797	032502	000000	031525			TSTTAN				; NTAKE - take commands from a file
  1798	032503	000000	040157			DENEXT				; ENEXT - examine next location
  1799	032504	000000	040241			DDNEXT				; DNEXT - deposit next location
  1800
  1801	032505	000000	033713			DECSR				; ECSR - examine CSR register
  1802	032506	000000	033723			DDCSR				; DCSR - deposit CSR register
  1803	032507	000000	033732			DZCSR				; ZCSR - zero CSR register
  1804
  1805	032510	000000	033740			DRESET				; RESET - issue an EBUS Reset
  1806	032511	000000	033745			DCLEAR				; CLEAR - issue a 'Port Clear'
  1807
  1808	032512	000000	033765			DSTART				; START - start the port
  1809	032513	000000	034014			DSTOP				; STOP - stop the port
  1810	032514	000000	035405			DCONT				; CONT - continue the port
  1811	032515	000000	034037			DSSTEP				; SSTEP - single step the port
  1812	032516	000000	034034			DTRACE				; STRACE - sstep the port while tracing
  1813	032517	000000	034106			DSSPNT				; SPRINT - print single step history
  1814	032520	000000	034130			DSSCLR				; SCLEAR - clear single step history
  1815	032521	000000	033752			DSINIT				; SSINIT - set up ss addr/data/history
  1816
  1817	032522	000000	035422			DEEBUF				; EEBUF - examine EBUF register
  1818	032523	000000	035443			DDEBUF				; DEBUF - deposit EBUF register
  1819	032524	000000	035436			DZEBUF				; ZEBUF - zero EBUF register
  1820
  1821	032525	000000	035455			DELAR				; ELAR - examine LAR register
  1822	032526	000000	035475			DDRAR				; DRAR - deposit RAR register
  1823	032527	000000	035507			DZRAR				; ZRAR - zero RAR register
  1824
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 43
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0206

  1825	032530	000000	035522			DDCRAM				; DCRAM - deposit CRAM
  1826	032531	000000	035525			DBCRAM				; BCRAM - deposit CRAM by bit field
  1827	032532	000000	035530			DACRAM				; ACRAM - alter port CRAM
  1828	032533	000000	035517			DECRAM				; ECRAM - examine port CRAM
  1829	032534	000000	035536			DLCRAM				; LCRAM - list port CRAM
  1830	032535	000000	035533			DZCRAM				; ZCRAM - zero port CRAM
  1831
  1832	032536	000000	036304			DEALU				; E2901 - examine 2901 registers
  1833	032537	000000	036412			DDALU				; D2901 - deposit 2901 registers
  1834	032540	000000	036473			DZALU				; Z2901 - zero 2901 registers
  1835
  1836	032541	000000	036610			DELOCS				; ELOCS - examine local storage
  1837	032542	000000	036713			DDLOCS				; DLOCS - deposit local storage
  1838	032543	000000	036767			DZLOCS				; ZLOCS - zero local storage
  1839
  1840	032544	000000	037103			DMARK				; MARK - set mark bits
  1841	032545	000000	037132			DRMARK				; RMARK - remove mark bits
  1842	032546	000000	037161			DCMARK				; CMARK - clear mark bits
  1843	032547	000000	037232			DLMARK				; LMARK - list mark bits
  1844
  1845	032550	000000	040455			DBREAK				; BREAK - set breakpoint
  1846	032551	000000	040510			DRBRK				; RBREAK - remove breakpoint
  1847	032552	000000	040533			DCBRK				; CBREAK - clear all breakpoints
  1848	032553	000000	040577			DLBRK				; LBREAK - list breakpoints
  1849
  1850	032554	000000	040660			DLOAD				; LOAD - load test microcode into CRAM
  1851	032555	000000	040701			DLIST				; LIST - list test microcode
  1852	032556	000000	040714			DFLOAD				; FLOAD - load ucode from file to CRAM
  1853	032557	000000	040737			DFVERF				; FVERFY - verify microcode loaded
  1854	032560	000000	040753			DFLIST				; FLIST - list microcode in file
  1855	032561	000000	041010			DFEXAM				; FEXAM - examine microcode in file
  1856
  1857	032562	000000	041045			DTRANS				; TRANSL - translate CSR bits
  1858	032563	000000	041055			DCCODE				; CCODE - print condition codes
  1859	032564	000000	040415			DESTAK				; ESTACK - examine 2910 stack
  1860	032565	000000	041204			DFILLN				; FILLNX - fill CRAM with special data
  1861	032566	000000	041230			DFILLP				; FILLPC - fill CRAM with special data
  1862	032567	000000	041277			DIPRIN				; IPRINT - print interrupt history
  1863						[MOVE	1,[FMSGCD (ICLEAR <CR>)]; ICLEAR - clear interrupt history
  1864						 GO	CHKARG
  1865						 RTN
  1866						 SETZM	INTNUM
  1867						 MOVE	[INTNUM,,INTNUM+1]
  1868						 BLT	INTEND
  1869						 SETOM	INTNUM
  1870	032570	000000	120670			 RTN]
  1871	032571	000000	041353			DIINIT				; IINIT - initialize interrupt system
  1872
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 44
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0207

  1873	032572	000000	031477			TSTPRI				; STATIS - print statistics
  1874	032573	000000	031361			TSTZER				; ZSTATS - clear statistics
  1875						[MOVE	1,[FMSGCD (ZCOUNT <CR>)]; ZCOUNT - clear counters
  1876						 GO	CHKARG
  1877						 RTN
  1878						 GO	ZCOUNT
  1879	032574	000000	120705			 RTN]
  1880	032575	000000	031366			TSTCON				; CONFIG - print configuration
  1881
  1882						[MOVE	1,[FMSGCD (DUMP <CR>)]	; DUMP - Dump entire port status
  1883						 GO	CHKARG
  1884						 RTN
  1885						 GO	DDUMP	
  1886	032576	000000	120716			 RTN]
  1887
  1888	032577	000000	041252			DCWPNT				; CCWPNT - print CCW list
  1889	032600	000000	041260			DLGPNT				; LOGPNT - print logout area data
  1890
  1891					; NI related commands
  1892
  1893	032601	000000	041361			DPINIT				; PINIT - initialize PCB and queues
  1894	032602	000000	041366			DSIDLE				; SIDLE - start port/wait for IDLE loop
  1895	032603	000000	041376			DBPACK				; BPACK - build packet
  1896	032604	000000	041453			DIQUEU				; IQUEUE - put packet on cmd queue
  1897	032605	000000	041472			DPQUEU				; PQUEUE - print specified queue
  1898	032606	000000	041464			DPPCB				; PPCB - print PCB
  1899	032607	000000	041531			DWATCH				; WATCH - watch port and print events
  1900	032610	000000	037310			DDPLI				; DPLI - deposit data to PLI
  1901	032611	000000	037400			DEPLI				; EPLI - examine PLI
  1902	032612	000000	040324			DDPPTT				; DEPPTT - deposit into PTT table
  1903	032613	000000	040347			DDPMUL				; DEPMUL - deposit into Multicast table
  1904	032614	000000	040372			DDPPAK				; DEPPAK - deposit into packet
  1905	032615	000000	037521			DETBUF				; ETBUFF - read transmit buffers
  1906	032616	000000	037526			DERBUF				; ERBUFF - read receive buffers
  1907
  1908					; Switches
  1909
  1910						[MOVE	1,[FMSGCD (SWITCH <CR>)]; SWITCH - input switches
  1911						 GO	CHKARG
  1912						 RTN
  1913						 GO	.ISWT
  1914	032617	000000	120723			 RTN]
  1915						[MOVE	1,[FMSGCD (SWPRIN <CR>)]; SWPRIN - print switches
  1916						 GO	CHKARG
  1917						 RTN
  1918						 GO	.SWCHP
  1919	032620	000000	120730			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 45
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0208

  1920
  1921			000125		SWSTP==.-.DBDIS
  1922
  1923	032621	000000	041266			DSWIT				; NOPNT
  1924	032622	000000	041266			DSWIT				; PNTLPT
  1925	032623	000000	041266			DSWIT				; DING
  1926	032624	000000	041266			DSWIT				; ERSTOP
  1927	032625	000000	041266			DSWIT				; PALERS
  1928	032626	000000	041266			DSWIT				; RELIAB
  1929	032627	000000	041266			DSWIT				; TXTINH
  1930	032630	000000	041266			DSWIT				; OPRSEL
  1931	032631	000000	041266			DSWIT				; TRACE
  1932	032632	000000	041266			DSWIT				; INHFLT
  1933	032633	000000	041266			DSWIT				; INHMSG
  1934	032634	000000	041266			DSWIT				; LOOPGM
  1935	032635	000000	041266			DSWIT				; LOOPTS
  1936	032636	000000	041266			DSWIT				; RUNALL
  1937	032637	000000	041266			DSWIT				; DSPEAR
  1938	032640	000000	041266			DSWIT				; UDEBUG
  1939	032641	000000	041266			DSWIT				; MDEBUG
  1940	032642	000000	041266			DSWIT				; LDEBUG
  1941	032643	000000	041266			DSWIT				; DDEBUG
  1942	032644	000000	041266			DSWIT				; EDEBUG
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 46
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0209

  1943
  1944					;#*********************************************************************
  1945					;* DHELP - Print DEBUG> help message
  1946					;#*********************************************************************
  1947
  1948					DHELP:	MOVN	1,[FMSGD <
  1949					HELP ALL     START  CRAM  BREAK   DTXFR
  1950					     MISC    CSR    2901  UCODE   NI
  1951					     INTRPT  EBUF   LOCS  STATIS  PLI
  1952	032645	210 01 0 00 120776 	     RESET   LAR    MARK  CONFIG  SWITCH>]
  1953	032646	260 17 0 00 031537*		GO	.SARG			; get SIXBIT argument
  1954	032647	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1955						 GO	[MOVE	[SIXBIT /ALL/]	; no argument - assume all
  1956							 MOVEM	ARGUM
  1957	032650	260 17 0 00 117404 			 RTN]
  1958	032651	200 01 0 00 031672*		MOVE	1,ARGUM			; get sixbit command
  1959	032652	201 02 0 00 032665 		MOVEI	2,.HLCMD		; get address of cmd list
  1960	032653	260 17 0 00 032310*		GO	.COMM			; handle command decoding
  1961						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  1962							 GO	FIOFF
  1963	032654	254 00 0 00 117407 			 RTN]			; error return
  1964	032655	037 01 0 00 000026 		PFORCE				; handle Control-O
  1965	032656	200 02 0 00 000001 		MOVE	2,1			; get AC1
  1966	032657	336 03 0 01 032712 	DHELP0:	SKIPN	3,DHELP1(1)		; get address of TMSG
  1967	032660	263 17 0 00 000000 		RTN				; all done - exit
  1968	032661	256 00 0 00 000003 		XCT	3			; print it
  1969	032662	350 00 0 00 000001 		AOS	1			; point to next address
  1970	032663	322 02 0 00 032657 		JUMPE	2,DHELP0		; loop till done
  1971	032664	263 17 0 00 000000 		RTN				; exit
  1972
  1973	032665	41 54 54 00 00 00 	.HLCMD:	SIXBIT	/ALL/			; print all help info
  1974	032666	55 51 63 43 00 00 		SIXBIT	/MISC/			; print miscellaneous commands
  1975	032667	51 56 64 62 60 64 		SIXBIT	/INTRPT/		; print interrupt commands
  1976	032670	62 45 63 45 64 00 		SIXBIT	/RESET/			; print reset commands
  1977	032671	63 64 41 62 64 00 		SIXBIT	/START/			; print start... commands
  1978	032672	43 63 62 00 00 00 		SIXBIT	/CSR/			; print CSR commands
  1979	032673	45 42 65 46 00 00 		SIXBIT	/EBUF/			; print EBUF commands
  1980	032674	54 41 62 00 00 00 		SIXBIT	/LAR/			; print LAR commands
  1981	032675	43 62 41 55 00 00 		SIXBIT	/CRAM/			; print CRAM commands
  1982	032676	22 31 20 21 00 00 		SIXBIT	/2901/			; print 2901 commands
  1983	032677	54 57 43 63 00 00 		SIXBIT	/LOCS/			; print local storage commands
  1984	032700	55 41 62 53 00 00 		SIXBIT	/MARK/			; print mark commands
  1985	032701	42 62 45 41 53 00 		SIXBIT	/BREAK/			; print breakpoint commands
  1986	032702	65 43 57 44 45 00 		SIXBIT	/UCODE/			; print microcode commands
  1987	032703	63 64 41 64 51 63 		SIXBIT	/STATIS/		; print statisitics commands
  1988	032704	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; print configuration commands
  1989	032705	44 64 70 46 62 00 		SIXBIT	/DTXFR/			; print data transfer commands
  1990	032706	56 51 00 00 00 00 		SIXBIT	/NI/			; print NI related commands
  1991	032707	60 54 51 00 00 00 		SIXBIT	/PLI/			; print PLI commands
  1992	032710	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; print switch commands
  1993	032711	000000	000000			0				; end of list
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 47
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0210

  1994
  1995	032712	037 00 0 00 120777 	DHELP1:	TMSGCD	<DEBUG Commands:>
  1996
  1997						TMSGD	<
  1998					HELP arg    Print help
  1999					EXIT        Exit DEBUG mode
  2000					DDT         Enter DDT
  2001					SET opt arg    Set/clear/print options
  2002					TAKE file ext  Take commands from file
  2003					NTAKE file ext Take commands from file (unechoed)
  2004					TRANSL dat  Translate CSR data
  2005					CCODE       Print condition codes
  2006					ESTACK      Examine 2910 stack contents
  2007					FILLNX dat  Fill CRAM with 'J=.+1,CTL=dat'
  2008					FILLPC dat  Fill CRAM with 'J=.,CTL=dat'
  2009					ENEXT       Examine next
  2010	032713	037 00 0 00 121003 	DNEXT arg   Deposit next>
  2011
  2012						TMSGD	<
  2013					IPRINT      Print accumulated interrupt activity
  2014					ICLEAR      Clear accumulated interrupt activity
  2015	032714	037 00 0 00 121137 	IINIT       Init interrupt system>
  2016
  2017						TMSGD	<
  2018					RESET       Issue EBUS Reset
  2019	032715	037 00 0 00 121173 	CLEAR       Issue a 'Port Clear'>
  2020
  2021						TMSGD	<
  2022					START adr   Start the port microsequencer
  2023					STOP        Stop the port microsequencer
  2024					CONT        Continue the port microsequencer
  2025					SSTEP cnt   Single step the port microsequencer
  2026					STRACE cnt  Single step and trace execution
  2027					SPRINT cnt  Print single step history data
  2028					SCLEAR      Clear single step history data
  2029	032716	037 00 0 00 121211 	SSINIT      Set up ss addr/data/history>
  2030
  2031						TMSGD	<
  2032					ECSR        Examine CSR Register
  2033					DCSR dat    Deposit CSR Register
  2034	032717	037 00 0 00 121321 	ZCSR        Zero CSR Register>
  2035
  2036						TMSGD	<
  2037					EEBUF       Examine EBUF register
  2038					DEBUF dat   Deposit EBUF register
  2039	032720	037 00 0 00 121346 	ZEBUF       Zero EBUF register>
  2040
  2041						TMSGD	<
  2042					ELAR        Examine LAR register
  2043					DRAR dat    Deposit RAR register
  2044	032721	037 00 0 00 121373 	ZRAR        Zero RAR register>
  2045
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 48
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0211

  2046						TMSGD	<
  2047					DCRAM adr,adr  Deposit into CRAM
  2048					BCRAM adr,adr  Deposit into CRAM by fields
  2049					ACRAM adr,adr  Alter CRAM
  2050					ECRAM adr,adr  Examine CRAM
  2051					LCRAM adr,adr  List CRAM
  2052	032722	037 00 0 00 121420 	ZCRAM adr,adr  Zero CRAM>
  2053
  2054						TMSGD	<
  2055					E2901 reg,reg  Examine 2901 registers
  2056					D2901 reg,dat  Deposit 2901 register
  2057	032723	037 00 0 00 121466 	Z2901 reg,reg  Zero 2901 registers>
  2058
  2059						TMSGD	<
  2060					ELOCS adr,adr  Examine local storage
  2061					DLOCS adr,dat  Deposit local storage
  2062	032724	037 00 0 00 121516 	ZLOCS adr,adr  Zero local storage>
  2063
  2064						TMSGD	<
  2065					MARK adr,adr    Set mark bit
  2066					RMARK adr,adr   Remove mark bit
  2067					CMARK adr,adr   Clear all mark bits
  2068	032725	037 00 0 00 121545 	LMARK adr,adr   List mark bits>
  2069
  2070						TMSGD	<
  2071					BREAK adr,adr   Set breakpoint
  2072					RBREAK adr,adr  Remove breakpoint
  2073					CBREAK adr,adr  Clear all breakpoints
  2074	032726	037 00 0 00 121600 	LBREAK adr,adr  List breakpoints>
  2075
  2076						TMSGD	<
  2077					LOAD tst    Load microcode from Test 'tst' into CRAM
  2078					LIST tst    List microcode from Test 'tst'
  2079					FLOAD       Load microcode from file into CRAM
  2080					FVERFY      Verify microcode loaded from file
  2081					FLIST       List microcode in file
  2082	032727	037 00 0 00 121635 	FEXAM       Examine microcode in file>
  2083
  2084						TMSGD	<
  2085					STATIS    Print statistics
  2086					ZSTATS    Clear statistics
  2087	032730	037 00 0 00 121724 	ZCOUNT    Clear counters>
  2088
  2089						TMSGD	<
  2090	032731	037 00 0 00 121745 	CONFIG    Print configuration>
  2091
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 49
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0212

  2092						TMSGD	<
  2093					CCWPNT    Print CCW list
  2094	032732	037 00 0 00 121754 	LOGPNT    Print logout data>
  2095
  2096						TMSGD	<
  2097					PINIT     Initialize PCB and queues
  2098					SIDLE     Start port/wait for IDLE loop
  2099					BPACK     Build packet
  2100					IQUEUE    Put packet on cmd queue
  2101					PQUEUE n  Print specified queue
  2102					PPCB      Print PCB
  2103					WATCH     Watch port and print events
  2104					LOOP      Loop back packets
  2105					DEPPTT    Deposit into PTT table
  2106					DEPMUL    Deposit into Multicast table
  2107	032733	037 00 0 00 121770 	DEPPAK    Deposit into packet>
  2108
  2109						TMSGD	<
  2110					DPLI lnk,data,rep  Deposit PLI data
  2111					EPLI lnk,rep       Examine PLI data
  2112					
  2113					ETBUFF    Examine transmit buffers
  2114	032734	037 00 0 00 122102 	ERBUFF    Examine receive buffers>
  2115
  2116						TMSGD	<
  2117					SWITCH  Enter switch information
  2118					SWPRIN  Print current switch settings   
  2119					
  2120					(To complement switch setting, type switch name).
  2121					
  2122					NOPNT   ERSTOP  TXTINH  TRACE   LOOPGM  DSPEAR  LDEBUG
  2123					PNTLPT  PALERS  OPRSEL  INHFLT  LOOPTS  UDEBUG  DDEBUG
  2124	032735	037 00 0 00 122140 	DING    RELIAB          INHMSG  RUNALL  MDEBUG  EDEBUG>
  2125	032736	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 50
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0213

  2126
  2127					;#********************************************************************
  2128					;* DSET - Set/clear/print options
  2129					;#********************************************************************
  2130
  2131					DSET:	MOVE	1,[FMSGD <
  2132					SET ADDR    PCB     RESPON  DADDR   PRINT   HELP
  2133					    CSR     FNAME   FORMAT  SADDR   INTERV
  2134					    PARITY  PAT     BSD     PTTVAL  SUMMAR
  2135	032737	200 01 0 00 122302 	    EBUF    PATLIS  LENGTH  PAD     WHAT>]
  2136	032740	260 17 0 00 032646*		GO	.SARG			; get SIXBIT argument
  2137	032741	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2138						 JRST	[FMSGCD	<? Missing argument>
  2139							 GO	FIOFF
  2140	032742	254 00 0 00 117722 			 RTN]
  2141	032743	200 01 0 00 032651*		MOVE	1,ARGUM			; get sixbit command
  2142	032744	201 02 0 00 032751 		MOVEI	2,.STCMD		; get address of cmd list
  2143	032745	260 17 0 00 032653*		GO	.COMM			; handle command decoding
  2144						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  2145							 GO	FIOFF
  2146	032746	254 00 0 00 117407 			 RTN]			; error return
  2147	032747	260 17 1 01 032777 		GO	@.STDIS(1)		; dispatch to test
  2148	032750	263 17 0 00 000000 		RTN				; return to 'DEBUG>' prompt
  2149
  2150	032751	41 44 44 62 00 00 	.STCMD:	SIXBIT	/ADDR/			; set start address
  2151	032752	43 63 62 00 00 00 		SIXBIT	/CSR/			; set start data for CSR
  2152	032753	60 41 62 51 64 71 		SIXBIT	/PARITY/		; set/clr auto parity generation
  2153	032754	45 42 65 46 00 00 		SIXBIT	/EBUF/			; set/clr preserve EBUF
  2154	032755	60 43 42 00 00 00 		SIXBIT	/PCB/			; set/clr PCB CCW list in use by START
  2155	032756	46 56 41 55 45 00 		SIXBIT	/FNAME/			; set file name
  2156	032757	60 41 64 00 00 00 		SIXBIT	/PAT/			; set data pattern
  2157	032760	60 41 64 54 51 63 		SIXBIT	/PATLIS/		; list data patterns
  2158	032761	62 45 63 60 57 56 		SIXBIT	/RESPON/		; set/clr forced response
  2159	032762	46 57 62 55 41 64 		SIXBIT	/FORMAT/		; set format (COMPAT or HIDEN)
  2160	032763	42 63 44 00 00 00 		SIXBIT	/BSD/			; set BSD style datagram
  2161	032764	54 45 56 47 64 50 		SIXBIT	/LENGTH/		; set length of text portion of packet
  2162	032765	44 41 44 44 62 00 		SIXBIT	/DADDR/			; set destination address
  2163	032766	63 41 44 44 62 00 		SIXBIT	/SADDR/			; set self address
  2164	032767	60 64 64 66 41 54 		SIXBIT	/PTTVAL/		; protocol type value
  2165	032770	60 41 44 00 00 00 		SIXBIT	/PAD/			; set pad flag
  2166	032771	60 62 51 56 64 00 		SIXBIT	/PRINT/			; set text length to print
  2167	032772	51 56 64 45 62 66 		SIXBIT	/INTERV/		; interval (seconds)
  2168	032773	63 65 55 55 41 62 		SIXBIT	/SUMMAR/		; summary interval (seconds)
  2169	032774	67 50 41 64 00 00 		SIXBIT	/WHAT/			; print options
  2170	032775	50 45 54 60 00 00 		SIXBIT	/HELP/			; set help message
  2171	032776	000 00 0 00 000000 		Z
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 51
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0214

  2172
  2173	032777	000000	033024		.STDIS:	DSETAD				; ADDR - set start address
  2174	033000	000000	033045			DSETCS				; CSR - set start CSR data
  2175	033001	000000	033062			DSETPR				; PARITY - set/clr auto par generation
  2176	033002	000000	033102			DSETEB				; EBUF - set/clr preserve EBUF flag
  2177	033003	000000	033122			DSETPC				; PCB - set/clr PCB CCW list for START
  2178	033004	000000	033142			DSETFN				; FNAME - set default ucode file name
  2179	033005	000000	033173			DSETPA				; PAT - set data pattern
  2180	033006	000000	033233			DSETPL				; PATLIS - list data patterns
  2181	033007	000000	033270			DSETRE				; RESPON - set/clr forced response
  2182	033010	000000	033311			DSETFO				; FORMAT - set format (COMPAT or HIDEN)
  2183	033011	000000	033333			DSETBS				; BSD - set BSD style datagram
  2184	033012	000000	033373			DSETLN				; LENGTH - set text length
  2185	033013	000000	033413			DSETDA				; DADDR - set destination address
  2186	033014	000000	033513			DSETSA				; SADDR - set self address
  2187	033015	000000	033537			DSETPV				; PTTVAL - protocol type value
  2188	033016	000000	033353			DSETPD				; PAD - set pad flag
  2189	033017	000000	033554			DSETPT				; PRINT - set text length to print
  2190	033020	000000	033574			DSETIN				; INTERV - interval (seconds)
  2191	033021	000000	033611			DSETSU				; SUMMAR - summary interval (seconds)
  2192	033022	000000	033626			DSETWH				; WHAT - print options
  2193	033023	000000	033655			DSETHE				; HELP - set help message
  2194
  2195
  2196					;#********************************************************************
  2197					;* DSETAD - Set start address for START/SSTEP/CONT commands
  2198					;#********************************************************************
  2199
  2200	033024	210 01 0 00 122315 	DSETAD:	MOVN	1,[FMSGCD (SET ADDR addr (0-7777) <CR> or SET ADDR <CR>)]
  2201	033025	260 17 0 00 031437*		GO	.OARG			; get argument
  2202	033026	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2203	033027	254 00 0 00 033037 		 JRST	DSADD1			; no argument given
  2204	033030	200 00 0 00 032743*		MOVE	ARGUM			; get argument
  2205	033031	202 00 0 00 033666 		MOVEM	DSADDR			; save it
  2206	033032	301 00 0 00 000000 		CAIL	0			; out of range?
  2207	033033	301 00 0 00 007777 		CAIL	7777
  2208						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  2209							 GO	FIOFF
  2210	033034	254 00 0 00 122327 			 RTN]
  2211	033035	202 00 0 00 033666 		MOVEM	DSADDR			; no - save it
  2212	033036	263 17 0 00 000000 		RTN				; exit
  2213
  2214	033037	037 00 0 00 030242 	DSADD1:	PCRL
  2215	033040	037 00 0 00 122332 	DSADD2:	TMSG	<Start address ............ >
  2216	033041	200 00 0 00 033666 		MOVE	DSADDR
  2217	033042	037 16 0 00 000003 		PNTOCS
  2218	033043	037 00 0 00 030242 		PCRL
  2219	033044	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 52
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0215

  2220
  2221					;#********************************************************************
  2222					;* DSETCS - Set start CSR data for START/CONT commands
  2223					;#********************************************************************
  2224
  2225	033045	210 01 0 00 122350 	DSETCS:	MOVN	1,[FMSGCD (SET CSR xxxxxx <CR> or SET CSR <CR>)]
  2226	033046	260 17 0 00 033025*		GO	.OARG			; get argument
  2227	033047	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2228	033050	254 00 0 00 033054 		 JRST	DSCSR1			; no argument given
  2229	033051	200 00 0 00 033030*		MOVE	ARGUM			; get argument
  2230	033052	202 00 0 00 033667 		MOVEM	DSDATA			; save it
  2231	033053	263 17 0 00 000000 		RTN				; exit
  2232
  2233	033054	037 00 0 00 030242 	DSCSR1:	PCRL
  2234	033055	037 00 0 00 122351 	DSCSR2:	TMSG	<Start CSR data ........... >
  2235	033056	200 00 0 00 033667 		MOVE	DSDATA
  2236	033057	037 16 0 00 000003 		PNTOCS
  2237	033060	037 00 0 00 030242 		PCRL
  2238	033061	263 17 0 00 000000 		RTN				; exit
  2239
  2240
  2241					;#********************************************************************
  2242					;* DSETPR - Set/clear automatic parity generation for load cram command
  2243					;#********************************************************************
  2244
  2245	033062	210 01 0 00 122367 	DSETPR:	MOVN	1,[FMSGCD (SET PAR NO or YES or SET PAR <CR>)]
  2246	033063	260 17 0 00 032740*		GO	.SARG			; get argument
  2247	033064	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2248	033065	254 00 0 00 033073 		 JRST	DSPAR1			; no argument given
  2249	033066	260 17 0 00 000000*		GO	DECYN			; decode argument Y or N
  2250	033067	263 17 0 00 000000 		 RTN				; error - unrecognized
  2251						JRST	[SETZM	PARFLG		; no - clear the flag
  2252	033070	254 00 0 00 122370 			 RTN]
  2253	033071	476 00 0 00 033670 		SETOM	PARFLG			; yes - set it
  2254	033072	263 17 0 00 000000 		RTN				; exit
  2255
  2256	033073	037 00 0 00 030242 	DSPAR1:	PCRL
  2257	033074	037 00 0 00 122372 	DSPAR2:	TMSG	<Auto parity generation ... >
  2258	033075	332 00 0 00 033670 		SKIPE	PARFLG			; set?
  2259	033076	037 00 0 00 122400 		TMSGD	<YES>
  2260	033077	336 00 0 00 033670 		SKIPN	PARFLG			; set?
  2261	033100	037 00 0 00 122402 		TMSGD	<NO>
  2262	033101	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 53
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0216

  2263
  2264					;#********************************************************************
  2265					;* DSETEB - Set/clear preserve EBUF for single stepping
  2266					;#********************************************************************
  2267
  2268	033102	210 01 0 00 122413 	DSETEB:	MOVN	1,[FMSGCD (SET EBUF NO or YES or SET EBUF <CR>)]
  2269	033103	260 17 0 00 033063*		GO	.SARG			; get argument
  2270	033104	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2271	033105	254 00 0 00 033113 		 JRST	DSEBU1			; no argument given
  2272	033106	260 17 0 00 033066*		GO	DECYN			; decode argument Y or N
  2273	033107	263 17 0 00 000000 		 RTN				; error - unrecognized
  2274						JRST	[SETZM	PRSFLG		; no - clear the flag
  2275	033110	254 00 0 00 122414 			 RTN]
  2276	033111	476 00 0 00 033671 		SETOM	PRSFLG			; yes - set it
  2277	033112	263 17 0 00 000000 		RTN				; exit
  2278
  2279	033113	037 00 0 00 030242 	DSEBU1:	PCRL
  2280	033114	037 00 0 00 122416 	DSEBU2:	TMSG	<EBUF preserved in sstep .. >
  2281	033115	332 00 0 00 033671 		SKIPE	PRSFLG			; set?
  2282	033116	037 00 0 00 122400 		TMSGD	<YES>
  2283	033117	336 00 0 00 033671 		SKIPN	PRSFLG			; set?
  2284	033120	037 00 0 00 122402 		TMSGD	<NO>
  2285	033121	263 17 0 00 000000 		RTN				; return
  2286
  2287
  2288					;#********************************************************************
  2289					;* DSETPC - Set/clear PCB CCW list made up for START command
  2290					;#********************************************************************
  2291
  2292	033122	210 01 0 00 122434 	DSETPC:	MOVN	1,[FMSGCD (SET PCB NO or YES or SET PCB <CR>)]
  2293	033123	260 17 0 00 033103*		GO	.SARG			; get argument
  2294	033124	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2295	033125	254 00 0 00 033133 		 JRST	DSPCB1			; no argument given
  2296	033126	260 17 0 00 033106*		GO	DECYN			; decode argument Y or N
  2297	033127	263 17 0 00 000000 		 RTN				; error - unrecognized
  2298						JRST	[SETZM	PCBFLG		; no - clear the flag
  2299	033130	254 00 0 00 122435 			 RTN]
  2300	033131	476 00 0 00 033675 		SETOM	PCBFLG			; yes - set it
  2301	033132	263 17 0 00 000000 		RTN				; exit
  2302
  2303	033133	037 00 0 00 030242 	DSPCB1:	PCRL
  2304	033134	037 00 0 00 122437 	DSPCB2:	TMSG	<Setup PCB CCW on START cmd >
  2305	033135	332 00 0 00 033675 		SKIPE	PCBFLG			; set?
  2306	033136	037 00 0 00 122400 		TMSGD	<YES>
  2307	033137	336 00 0 00 033675 		SKIPN	PCBFLG			; set?
  2308	033140	037 00 0 00 122402 		TMSGD	<NO>
  2309	033141	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 54
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0217

  2310
  2311					;#********************************************************************
  2312					;* DSETFN - Set default microcode file name
  2313					;#********************************************************************
  2314
  2315	033142	200 01 0 00 122457 	DSETFN:	MOVE	1,[FMSGCD (SET FNAME file ext <CR> or SET FNAME <CR>)]
  2316	033143	260 17 0 00 033123*		GO	.SARG			; get argument (file name)
  2317	033144	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2318	033145	254 00 0 00 033162 		 JRST	DSFNM1			; no argument - print it out
  2319	033146	200 00 0 00 033051*		MOVE	ARGUM			; get argument
  2320	033147	202 00 0 00 134247'		MOVEM	TMP1#			; save it
  2321	033150	210 01 0 00 122457 		MOVN	1,[FMSGCD (SET FNAME file ext <CR> or SET FNAME <CR>)]
  2322	033151	260 17 0 00 033143*		GO	.SARG			; get argument (extension)
  2323	033152	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2324	033153	254 00 0 00 033156 		 JRST	DSFNM0			; no extension given - exit
  2325	033154	200 00 0 00 033146*		MOVE	ARGUM			; get 2nd argument
  2326	033155	202 00 0 00 044325 		MOVEM	FNAME+1			; save it
  2327	033156	200 00 0 00 134247'	DSFNM0:	MOVE	TMP1			; get first argument
  2328	033157	202 00 0 00 044324 		MOVEM	FNAME			; save it
  2329	033160	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  2330	033161	263 17 0 00 000000 		RTN				; return
  2331
  2332	033162	037 00 0 00 030242 	DSFNM1:	PCRL
  2333	033163	037 00 0 00 122460 	DSFNM2:	TMSG	<Microcode file name ...... >
  2334	033164	200 00 0 00 044324 		MOVE	FNAME			; get name
  2335	033165	037 00 0 00 000002 		PNTSIX				; print it
  2336	033166	037 00 0 00 122466 		TMSG	<.>
  2337	033167	200 00 0 00 044325 		MOVE	FNAME+1			; get extension
  2338	033170	037 00 0 00 000002 		PNTSIX				; print it
  2339	033171	037 00 0 00 030242 		PCRL
  2340	033172	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 55
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0218

  2341
  2342					;#********************************************************************
  2343					;* DSETPA - Set data pattern to insert in buffer
  2344					;#********************************************************************
  2345
  2346	033173	200 01 0 00 122504 	DSETPA:	MOVE	1,[FMSGCD (SET PAT number (1-126 octal)(126=opr sel) or SET PAT <CR>)]
  2347	033174	260 17 0 00 033046*		GO	.OARG			; get argument
  2348	033175	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2349	033176	254 00 0 00 033220 		 JRST	DSPAT1			; no argument given
  2350	033177	200 00 0 00 033154*		MOVE	ARGUM			; get argument
  2351	033200	301 00 0 00 000001 		CAIL	1			; in range?
  2352	033201	303 00 0 00 000126 		CAILE	126
  2353						JRST	[FMSGCD	<? Out of range 1-126 octal>
  2354							 GO	FIOFF
  2355	033202	254 00 0 00 122514 			 RTN]
  2356	033203	202 00 0 00 033673 		MOVEM	DSPAT			; save it
  2357	033204	302 00 0 00 000126 		CAIE	126			; operator selected pattern?
  2358	033205	254 00 0 00 033214 		JRST	DSPATX			; no - exit
  2359	033206	200 01 0 00 122525 		MOVE	1,[FMSGCD <SET PAT 126,data (CR)>]
  2360	033207	260 17 0 00 033174*		GO	.OARG			; get argument
  2361	033210	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2362						 JRST	[FMSGCD	<? Missing argument>
  2363							 GO	FIOFF
  2364	033211	254 00 0 00 117722 			 RTN]
  2365	033212	200 00 0 00 033177*		MOVE	ARGUM			; get argument
  2366	033213	202 00 0 00 033674 		MOVEM	DSTPAT			; save it
  2367	033214	260 17 0 00 000000*	DSPATX:	GO	LASARG			; check for last argument
  2368	033215	263 17 0 00 000000 		RTN				; exit
  2369	033216	037 01 0 00 122517 		FMSGCD	<SET PAT 126,data (CR)>
  2370	033217	263 17 0 00 000000 		RTN				; exit
  2371
  2372	033220	037 00 0 00 030242 	DSPAT1:	PCRL
  2373	033221	037 00 0 00 122526 	DSPAT2:	TMSG	<Data pattern (#) ......... >
  2374	033222	200 01 0 00 033673 		MOVE	1,DSPAT			; get pattern
  2375	033223	256 00 0 01 000000*		XCT	PATPNT(1)		;  ...
  2376	033224	302 01 0 00 000126 		CAIE	1,126			; operator selected pattern?
  2377	033225	254 00 0 00 033231 		JRST	DSPAT3			; no - continue
  2378	033226	037 00 0 00 122534 		TMSG	< - >			; yes - print it out
  2379	033227	200 00 0 00 033674 		MOVE	DSTPAT
  2380	033230	037 13 0 00 000000 		PNTHW
  2381	033231	037 00 0 00 030242 	DSPAT3:	PCRL
  2382	033232	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 56
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0219

  2383
  2384					;#********************************************************************
  2385					;* DSETPL - List data patterns
  2386					;#********************************************************************
  2387
  2388	033233	200 01 0 00 122546 	DSETPL:	MOVE	1,[FMSGCD <SET PATLIS num1,num2 or SET PATLIS (CR)>]
  2389	033234	260 17 0 00 033207*		GO	.OARG			; get argument
  2390	033235	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2391						 JRST	[MOVE	PAT,DSPAT	; no argument - just print
  2392							 MOVEM	PAT,PAT1#	;   current selection
  2393							 MOVEM	PAT,PAT2#
  2394	033236	254 00 0 00 122547 			 JRST	DSETPP]
  2395	033237	200 00 0 00 033212*		MOVE	ARGUM			; get argument
  2396	033240	202 00 0 00 134211'		MOVEM	PAT1#			; save it
  2397
  2398	033241	200 01 0 00 122546 		MOVE	1,[FMSGCD <SET PATLIS num1,num2 or SET PATLIS (CR)>]
  2399	033242	260 17 0 00 033234*		GO	.OARG			; get argument
  2400	033243	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2401						 JRST	[MOVE	PAT,PAT1	; no 2nd argument - just print
  2402							 MOVEM	PAT,PAT2	;   one translation
  2403	033244	254 00 0 00 122553 			 JRST	DSETPP]
  2404	033245	200 00 0 00 033237*		MOVE	ARGUM			; get argument
  2405	033246	202 00 0 00 134212'		MOVEM	PAT2			; save it
  2406	033247	200 01 0 00 134212'		MOVE	1,PAT2			; get argument
  2407	033250	274 01 0 00 134211'		SUB	1,PAT1			; see if range ok
  2408						JUMPL	1,[FMSGCD <? Range nonsensical>
  2409							 GO	FIOFF
  2410	033251	321 01 0 00 122563 			 RTN]
  2411
  2412	033252	200 14 0 00 134211'	DSETPP:	MOVE	PAT,PAT1		; get pattern
  2413	033253	301 14 0 00 000001 		CAIL	PAT,1			; in range?
  2414	033254	303 14 0 00 000126 		CAILE	PAT,126
  2415						JRST	[FMSGCD	<? Out of range 1-126 octal>
  2416							 GO	FIOFF
  2417	033255	254 00 0 00 122514 			 RTN]
  2418	033256	037 00 0 00 030242 		PCRL
  2419	033257	256 00 0 14 033223*		XCT	PATPNT(PAT)		; print it
  2420	033260	350 00 0 00 000014 		AOS	PAT			; increment pattern number
  2421	033261	037 07 0 00 000003 		TTALTM				; altmode typed?
  2422	033262	334 00 0 00 000000 		SKIPA				; no - continue
  2423	033263	254 00 0 00 033266 		JRST	DSETPX			; yes - return
  2424	033264	317 14 0 00 134212'		CAMG	PAT,PAT2		; done yet?
  2425	033265	254 00 0 00 033253 		JRST	DSETPP+1		; no - loop till done
  2426	033266	037 00 0 00 030243 	DSETPX:	PCRL2				; final CRLF
  2427	033267	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 57
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0220

  2428
  2429					;#********************************************************************
  2430					;* DSETRE - Set/clr forced response
  2431					;#********************************************************************
  2432
  2433	033270	476 00 0 00 033676 	DSETRE:	SETOM	RSPFLG			; set the flag
  2434	033271	210 01 0 00 122577 		MOVN	1,[FMSGCD (SET RESPON NO or YES or SET RESPON <CR>)]
  2435	033272	260 17 0 00 033151*		GO	.SARG			; get argument
  2436	033273	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2437	033274	254 00 0 00 033302 		 JRST	DSRES1			; no argument given
  2438	033275	260 17 0 00 033126*		GO	DECYN			; decode argument Y or N
  2439	033276	263 17 0 00 000000 		 RTN				; error - unrecognized
  2440						JRST	[SETOM	RSPFLG		; no - clear the flag
  2441							 TMSGCD	<[No response requested not allowed]> 
  2442	033277	254 00 0 00 122610 			 RTN]
  2443	033300	476 00 0 00 033676 		SETOM	RSPFLG			; yes - set it
  2444	033301	263 17 0 00 000000 		RTN				; exit
  2445
  2446	033302	037 00 0 00 030242 	DSRES1:	PCRL
  2447	033303	037 00 0 00 122613 	DSRES2:	TMSG	<Request Packet Response .. >
  2448	033304	332 00 0 00 033676 		SKIPE	RSPFLG			; set?
  2449	033305	037 00 0 00 122400 		TMSGD	<YES>
  2450	033306	336 00 0 00 033676 		SKIPN	RSPFLG			; set?
  2451	033307	037 00 0 00 122402 		TMSGD	<NO>
  2452	033310	263 17 0 00 000000 		RTN				; return
  2453
  2454
  2455					;#********************************************************************
  2456					;* DSETFO - Set format (COMPAT or HIDEN)
  2457					;#********************************************************************
  2458
  2459	033311	210 01 0 00 122633 	DSETFO:	MOVN	1,[FMSGCD (SET FORMAT COMPAT or HIDEN or SET FORMAT <CR>)]
  2460	033312	260 17 0 00 033272*		GO	.SARG			; get argument
  2461	033313	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2462	033314	254 00 0 00 033323 		 JRST	DSFOR1			; no argument given
  2463	033315	200 01 0 00 033245*		MOVE	1,ARGUM			; get command into AC1
  2464	033316	201 02 0 00 033330 		MOVEI	2,DSFORL		; get address of cmd list
  2465	033317	260 17 0 00 032745*		GO	.COMM			; handle command decoding
  2466						 JRST	[FMSGCD	<? Unrecognized argument>
  2467	033320	254 00 0 00 122642 			 RTN]
  2468	033321	202 01 0 00 033677 		MOVEM	1,FORSEL		; save value
  2469	033322	263 17 0 00 000000 		RTN				; return
  2470
  2471	033323	037 00 0 00 030242 	DSFOR1:	PCRL
  2472	033324	037 00 0 00 122644 	DSFOR2:	TMSG	<Datagram Format .......... >
  2473	033325	200 01 0 00 033677 		MOVE	1,FORSEL		; get format value
  2474						XCT	[TMSGD	<COMPAT>	; print it
  2475	033326	256 00 0 01 122656 			 TMSGD	<HIDEN>](1)
  2476	033327	263 17 0 00 000000 		RTN				; return
  2477
  2478	033330	43 57 55 60 41 64 	DSFORL:	SIXBIT	/COMPAT/
  2479	033331	50 51 44 45 56 00 		SIXBIT	/HIDEN/
  2480	033332	000 00 0 00 000000 		Z
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 58
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0221

  2481
  2482					;#********************************************************************
  2483					;* DSETBS - Set BSD stype datagram
  2484					;#********************************************************************
  2485
  2486	033333	210 01 0 00 122670 	DSETBS:	MOVN	1,[FMSGCD (SET BSD NO or YES or SET BSD <CR>)]
  2487	033334	260 17 0 00 033312*		GO	.SARG			; get argument
  2488	033335	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2489	033336	254 00 0 00 033344 		 JRST	DSBSD1			; no argument given
  2490	033337	260 17 0 00 033275*		GO	DECYN			; decode argument Y or N
  2491	033340	263 17 0 00 000000 		 RTN				; error - unrecognized
  2492						JRST	[SETZM	BSDFLG		; no - clear the flag
  2493	033341	254 00 0 00 122671 			 RTN]
  2494	033342	476 00 0 00 033700 		SETOM	BSDFLG			; yes - set it
  2495	033343	263 17 0 00 000000 		RTN				; exit
  2496
  2497	033344	037 00 0 00 030242 	DSBSD1:	PCRL
  2498	033345	037 00 0 00 122673 	DSBSD2:	TMSG	<BSD Style Datagram ....... >
  2499	033346	332 00 0 00 033700 		SKIPE	BSDFLG			; set?
  2500	033347	037 00 0 00 122400 		TMSGD	<YES>
  2501	033350	336 00 0 00 033700 		SKIPN	BSDFLG			; set?
  2502	033351	037 00 0 00 122402 		TMSGD	<NO>
  2503	033352	263 17 0 00 000000 		RTN				; return
  2504
  2505
  2506					;#********************************************************************
  2507					;* DSETPD - Set pad flag
  2508					;#********************************************************************
  2509
  2510	033353	210 01 0 00 122711 	DSETPD:	MOVN	1,[FMSGCD (SET PAD NO or YES or SET PAD <CR>)]
  2511	033354	260 17 0 00 033334*		GO	.SARG			; get argument
  2512	033355	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2513	033356	254 00 0 00 033364 		 JRST	DSPAD1			; no argument given
  2514	033357	260 17 0 00 033337*		GO	DECYN			; decode argument Y or N
  2515	033360	263 17 0 00 000000 		 RTN				; error - unrecognized
  2516						JRST	[SETZM	PADFLG		; no - clear the flag
  2517	033361	254 00 0 00 122712 			 RTN]
  2518	033362	476 00 0 00 033701 		SETOM	PADFLG			; yes - set it
  2519	033363	263 17 0 00 000000 		RTN				; exit
  2520
  2521	033364	037 00 0 00 030242 	DSPAD1:	PCRL
  2522	033365	037 00 0 00 122714 	DSPAD2:	TMSG	<Pad all datagrams ........ >
  2523	033366	332 00 0 00 033701 		SKIPE	PADFLG			; set?
  2524	033367	037 00 0 00 122400 		TMSGD	<YES>
  2525	033370	336 00 0 00 033701 		SKIPN	PADFLG			; set?
  2526	033371	037 00 0 00 122402 		TMSGD	<NO>
  2527	033372	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 59
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0222

  2528
  2529					;#********************************************************************
  2530					;* DSETLN - Set length of text portion of packet
  2531					;#********************************************************************
  2532
  2533	033373	210 01 0 00 122735 	DSETLN:	MOVN	1,[FMSGCD (SET LEN length (1-1504. bytes) or SET LEN <CR>)]
  2534	033374	260 17 0 00 031667*		GO	.DARG			; get argument
  2535	033375	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2536	033376	254 00 0 00 033405 		 JRST	DSLEN1			; no argument given
  2537	033377	200 00 0 00 033315*		MOVE	ARGUM			; get argument
  2538	033400	303 00 0 00 000000 		CAILE	0			; argument in range 1-1504.?
  2539	033401	303 00 0 00 002740 		CAILE	^D1504
  2540						JRST	[FMSGCD	<? Out of range 1-1504. bytes>
  2541							 GO	FIOFF
  2542	033402	254 00 0 00 122745 			 RTN]
  2543	033403	202 00 0 00 033672 		MOVEM	DSBYTE			; save it
  2544	033404	263 17 0 00 000000 		RTN				; exit
  2545
  2546	033405	037 00 0 00 030242 	DSLEN1:	PCRL
  2547	033406	037 00 0 00 122750 	DSLEN2:	TMSG	<Text length (bytes) ...... >
  2548	033407	200 00 0 00 033672 		MOVE	DSBYTE
  2549	033410	037 15 0 00 000000 		PNTDEC
  2550	033411	037 00 0 00 117263 		TMSGD	<.>
  2551	033412	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 60
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0223

  2552
  2553					;#********************************************************************
  2554					;* DSETDA - Set destination address
  2555					;#********************************************************************
  2556
  2557	033413	120 00 0 00 033702 	DSETDA:	DMOVE	DADDR			; get address
  2558	033414	202 00 0 00 134230'		MOVEM	SAVAD1#			; save 1st word
  2559	033415	202 01 0 00 134231'		MOVEM	1,SAVAD2#		; save 2nd word
  2560
  2561						MOVE	1,[FMSGCD <SET DADDR B0,B1,B2,B3,B4,B5 or SET DADDR or SET DADDR SELF (CR)>
  2562	033416	200 01 0 00 122774 	]
  2563	033417	260 17 0 00 033354*		GO	.SARG			; get argument
  2564	033420	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2565	033421	254 00 0 00 033467 		 JRST	DSDAD1			; no argument given
  2566	033422	200 01 0 00 033377*		MOVE	1,ARGUM			; get command into AC1
  2567	033423	201 02 0 00 033511 		MOVEI	2,DSDADL		; get address of cmd list
  2568	033424	260 17 0 00 033317*		GO	.COMM			; handle command decoding
  2569						JRST	[MOVE	1,ARGUM		; error - may be an octal
  2570							 GO	CONVSX		;   number - check and handle
  2571							 SKIPA			;   as appropriate
  2572							 JRST	DSDAD0
  2573							 FMSGCD	<? Unrecognized argument>
  2574	033425	254 00 0 00 122775 			 RTN]
  2575	033426	260 17 0 00 065672 		GO	RDADDR			; read station address
  2576	033427	120 00 0 00 033704 		DMOVE	SADDR			; get it
  2577	033430	124 00 0 00 033702 		DMOVEM	DADDR			; save it
  2578	033431	037 00 0 00 030242 		PCRL
  2579	033432	254 00 0 00 033472 		JRST	DSDAD2			; print it out now
  2580
  2581	033433	200 00 0 00 000001 	DSDAD0:	MOVE	1			; get argument
  2582	033434	137 00 0 00 123003 		DPB	[POINT 8,SAVAD1,31]	; save it
  2583
  2584	033435	260 17 0 00 033242*		GO	.OARG			; get argument
  2585	033436	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2586	033437	254 00 0 00 033467 		 JRST	DSDAD1			; no argument given
  2587	033440	200 00 0 00 033422*		MOVE	ARGUM			; get argument
  2588	033441	137 00 0 00 123004 		DPB	[POINT 8,SAVAD1,23]	; save it
  2589
  2590	033442	260 17 0 00 033435*		GO	.OARG			; get argument
  2591	033443	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2592	033444	254 00 0 00 033467 		 JRST	DSDAD1			; no argument given
  2593	033445	200 00 0 00 033440*		MOVE	ARGUM			; get argument
  2594	033446	137 00 0 00 123005 		DPB	[POINT 8,SAVAD1,15]	; save it
  2595
  2596	033447	260 17 0 00 033442*		GO	.OARG			; get argument
  2597	033450	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2598	033451	254 00 0 00 033467 		 JRST	DSDAD1			; no argument given
  2599	033452	200 00 0 00 033445*		MOVE	ARGUM			; get argument
  2600	033453	137 00 0 00 123006 		DPB	[POINT 8,SAVAD1,7]	; save it
  2601
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 61
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0224

  2602	033454	260 17 0 00 033447*		GO	.OARG			; get argument
  2603	033455	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2604	033456	254 00 0 00 033467 		 JRST	DSDAD1			; no argument given
  2605	033457	200 00 0 00 033452*		MOVE	ARGUM			; get argument
  2606	033460	137 00 0 00 123007 		DPB	[POINT 8,SAVAD2,31]	; save it
  2607
  2608	033461	210 01 0 00 123022 		MOVN	1,[FMSGCD <SET DADDR B0,B1,B2,B3,B4,B5 or SET DADDR (CR)>]
  2609	033462	260 17 0 00 033454*		GO	.OARG			; get argument
  2610	033463	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2611	033464	254 00 0 00 033467 		 JRST	DSDAD1			; no argument given
  2612	033465	200 00 0 00 033457*		MOVE	ARGUM			; get argument
  2613	033466	137 00 0 00 123023 		DPB	[POINT 8,SAVAD2,23]	; save it
  2614	
  2615	033467	120 00 0 00 134230'	DSDAD1:	DMOVE	SAVAD1			; get address
  2616	033470	124 00 0 00 033702 		DMOVEM	DADDR			; save it
  2617	033471	037 00 0 00 030242 		PCRL
  2618
  2619	033472	037 00 0 00 123024 	DSDAD2:	TMSG	<Destination address ...... >
  2620	033473	135 00 0 00 123032 		LDB	[POINT 8,DADDR,31]
  2621	033474	037 03 0 00 000000 		PNT3
  2622	033475	135 00 0 00 123033 		LDB	[POINT 8,DADDR,23]
  2623	033476	037 03 0 00 000000 		PNT3
  2624	033477	135 00 0 00 123034 		LDB	[POINT 8,DADDR,15]
  2625	033500	037 03 0 00 000000 		PNT3
  2626	033501	135 00 0 00 123035 		LDB	[POINT 8,DADDR,7]
  2627	033502	037 03 0 00 000000 		PNT3
  2628	033503	135 00 0 00 123036 		LDB	[POINT 8,DADDR+1,31]
  2629	033504	037 03 0 00 000000 		PNT3
  2630	033505	135 00 0 00 123037 		LDB	[POINT 8,DADDR+1,23]
  2631	033506	037 03 0 00 000000 		PNT3
  2632	033507	037 00 0 00 030242 		PCRL
  2633	033510	263 17 0 00 000000 		RTN
  2634
  2635					; Command list
  2636
  2637	033511	63 45 54 46 00 00 	DSDADL:	SIXBIT	/SELF/
  2638	033512	000 00 0 00 000000 		Z
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 62
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0225

  2639
  2640					;#********************************************************************
  2641					;* DSETSA - Set self address
  2642					;#********************************************************************
  2643
  2644	033513	200 01 0 00 123044 	DSETSA:	MOVE	1,[FMSGCD <SET SADDR (CR)>]
  2645	033514	260 17 0 00 032232*		GO	CHKARG			; ensure last argument
  2646	033515	263 17 0 00 000000 		RTN				; error - exit
  2647	033516	260 17 0 00 065672 		GO	RDADDR			; read physical address ROM
  2648	033517	037 00 0 00 030242 		PCRL
  2649
  2650	033520	037 00 0 00 123045 	DSSAD2:	TMSG	<Our station address ...... >
  2651	033521	135 00 0 00 123053 		LDB	[POINT 8,SADDR,31]
  2652	033522	037 03 0 00 000000 		PNT3
  2653	033523	135 00 0 00 123054 		LDB	[POINT 8,SADDR,23]
  2654	033524	037 03 0 00 000000 		PNT3
  2655	033525	135 00 0 00 123055 		LDB	[POINT 8,SADDR,15]
  2656	033526	037 03 0 00 000000 		PNT3
  2657	033527	135 00 0 00 123056 		LDB	[POINT 8,SADDR,7]
  2658	033530	037 03 0 00 000000 		PNT3
  2659	033531	135 00 0 00 123057 		LDB	[POINT 8,SADDR+1,31]
  2660	033532	037 03 0 00 000000 		PNT3
  2661	033533	135 00 0 00 123060 		LDB	[POINT 8,SADDR+1,23]
  2662	033534	037 03 0 00 000000 		PNT3
  2663	033535	037 00 0 00 030242 		PCRL
  2664	033536	263 17 0 00 000000 		RTN
  2665
  2666
  2667					;#********************************************************************
  2668					;* DSETPV - Set protocol type value
  2669					;#********************************************************************
  2670
  2671	033537	210 01 0 00 123071 	DSETPV:	MOVN	1,[FMSGCD (SET PTTVAL n or SET PTTVAL <CR>)]
  2672	033540	260 17 0 00 033462*		GO	.OARG			; get argument
  2673	033541	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2674	033542	254 00 0 00 033546 		 JRST	DSPTT1			; no argument given
  2675	033543	200 00 0 00 033465*		MOVE	ARGUM			; get argument
  2676	033544	202 00 0 00 033712 		MOVEM	PTTVAL			; save it
  2677	033545	263 17 0 00 000000 		RTN				; exit
  2678
  2679	033546	037 00 0 00 030242 	DSPTT1:	PCRL
  2680	033547	037 00 0 00 123072 	DSPTT2:	TMSG	<PTT value ................ >
  2681	033550	200 00 0 00 033712 		MOVE	PTTVAL
  2682	033551	037 16 0 00 000003 		PNTOCS
  2683	033552	037 00 0 00 030242 		PCRL
  2684	033553	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 63
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0226

  2685
  2686					;#********************************************************************
  2687					;* DSETPT - Set length of text portion to print
  2688					;#********************************************************************
  2689
  2690	033554	210 01 0 00 123112 	DSETPT:	MOVN	1,[FMSGCD (SET PRINT nwords (1-1000.) or SET PRINT <CR>)]
  2691	033555	260 17 0 00 033374*		GO	.DARG			; get argument
  2692	033556	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2693	033557	254 00 0 00 033566 		 JRST	DSPNT1			; no argument given
  2694	033560	200 00 0 00 033543*		MOVE	ARGUM			; get argument
  2695	033561	303 00 0 00 000000 		CAILE	0			; argument in range 1-1000?
  2696	033562	303 00 0 00 001750 		CAILE	^D1000
  2697						JRST	[FMSGCD	<? Out of range 1-1000. words>
  2698							 GO	FIOFF
  2699	033563	254 00 0 00 123122 			 RTN]
  2700	033564	202 00 0 00 033706 		MOVEM	DSPRIN			; save it
  2701	033565	263 17 0 00 000000 		RTN				; exit
  2702
  2703	033566	037 00 0 00 030242 	DSPNT1:	PCRL
  2704	033567	037 00 0 00 123125 	DSPNT2:	TMSG	<Text to print (words) .... >
  2705	033570	200 00 0 00 033706 		MOVE	DSPRIN
  2706	033571	037 15 0 00 000000 		PNTDEC
  2707	033572	037 00 0 00 117263 		TMSGD	<.>
  2708	033573	263 17 0 00 000000 		RTN				; exit
  2709
  2710
  2711					;#********************************************************************
  2712					;* DSETIN - Set interval (milliseconds)
  2713					;#********************************************************************
  2714
  2715	033574	210 01 0 00 123145 	DSETIN:	MOVN	1,[FMSGCD (SET INTERV milliseconds or SET INTERV <CR>)]
  2716	033575	260 17 0 00 033555*		GO	.DARG			; get argument
  2717	033576	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2718	033577	254 00 0 00 033603 		 JRST	DSINT1			; no argument given
  2719	033600	200 00 0 00 033560*		MOVE	ARGUM			; get argument
  2720	033601	202 00 0 00 033710 		MOVEM	DSINT			; save it
  2721	033602	263 17 0 00 000000 		RTN				; exit
  2722
  2723	033603	037 00 0 00 030242 	DSINT1:	PCRL
  2724	033604	037 00 0 00 123146 	DSINT2:	TMSG	<Interval (milliseconds) .. >
  2725	033605	200 00 0 00 033710 		MOVE	DSINT
  2726	033606	037 15 0 00 000000 		PNTDEC
  2727	033607	037 00 0 00 117263 		TMSGD	<.>
  2728	033610	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 64
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0227

  2729
  2730					;#********************************************************************
  2731					;* DSETSU - Set summary interval (seconds)
  2732					;#********************************************************************
  2733
  2734	033611	210 01 0 00 123165 	DSETSU:	MOVN	1,[FMSGCD (SET SUMMAR seconds or SET SUMMAR <CR>)]
  2735	033612	260 17 0 00 033575*		GO	.DARG			; get argument
  2736	033613	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2737	033614	254 00 0 00 033620 		 JRST	DSSUM1			; no argument given
  2738	033615	200 00 0 00 033600*		MOVE	ARGUM			; get argument
  2739	033616	202 00 0 00 033707 		MOVEM	DSSUM			; save it
  2740	033617	263 17 0 00 000000 		RTN				; exit
  2741
  2742	033620	037 00 0 00 030242 	DSSUM1:	PCRL
  2743	033621	037 00 0 00 123166 	DSSUM2:	TMSG	<Summary interval (seconds) >
  2744	033622	200 00 0 00 033707 		MOVE	DSSUM
  2745	033623	037 15 0 00 000000 		PNTDEC
  2746	033624	037 00 0 00 117263 		TMSGD	<.>
  2747	033625	263 17 0 00 000000 		RTN				; exit
  2748
  2749
  2750					;#********************************************************************
  2751					;* DSETWH - Print all selected options
  2752					;#********************************************************************
  2753
  2754	033626	260 17 0 00 033214*	DSETWH:	GO	LASARG			; check for last argument
  2755	033627	263 17 0 00 000000 		RTN				; error - exit
  2756						JRST	[FMSGCD	(SET WHAT <CR>)	; ? typed - print msg and
  2757	033630	254 00 0 00 123200 			 RTN]			;   return
  2758	033631	037 00 0 00 123202 		TMSGCD	<Options:>
  2759	033632	260 17 0 00 033037 		GO	DSADD1			; print address
  2760	033633	260 17 0 00 033055 		GO	DSCSR2			; print CSR data
  2761	033634	260 17 0 00 033074 		GO	DSPAR2			; print parity flag
  2762	033635	260 17 0 00 033114 		GO	DSEBU2			; print EBUF flag
  2763	033636	260 17 0 00 033134 		GO	DSPCB2			; print PCB flag
  2764	033637	260 17 0 00 033163 		GO	DSFNM2			; print file name selected
  2765	033640	260 17 0 00 033221 		GO	DSPAT2			; print data pattern
  2766	033641	260 17 0 00 033303 		GO	DSRES2			; print response flag
  2767	033642	260 17 0 00 033324 		GO	DSFOR2			; print format
  2768	033643	260 17 0 00 033345 		GO	DSBSD2			; print BSD flag
  2769	033644	260 17 0 00 033406 		GO	DSLEN2			; print length
  2770	033645	260 17 0 00 033472 		GO	DSDAD2			; print destination address
  2771	033646	260 17 0 00 033520 		GO	DSSAD2			; print our station address
  2772	033647	260 17 0 00 033547 		GO	DSPTT2			; print PTT value
  2773	033650	260 17 0 00 033365 		GO	DSPAD2			; print pad flag
  2774	033651	260 17 0 00 033567 		GO	DSPNT2			; print length to print
  2775	033652	260 17 0 00 033604 		GO	DSINT2			; print interval
  2776	033653	260 17 0 00 033621 		GO	DSSUM2			; print summary interval
  2777	033654	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 65
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0228

  2778
  2779					;#********************************************************************
  2780					;* DSETHE - Set help message
  2781					;#********************************************************************
  2782
  2783	033655	200 01 0 00 123211 	DSETHE:	MOVE	1,[FMSGCD (SET HELP <CR>)]
  2784	033656	260 17 0 00 033514*		GO	CHKARG			; check for argument
  2785	033657	263 17 0 00 000000 		RTN				; error - exit
  2786	033660	037 01 0 00 000026 		PFORCE				; handle Control-O
  2787	033661	037 00 1 00 033663 		PNTMSG	@DSETHL			; print text
  2788	033662	263 17 0 00 000000 		RTN				; ask for a test
  2789
  2790	033663				DSETHL:	[ASCII	^
  2791					SET Command:   (* Arg - YES or NO)
  2792
  2793					SET ADDR adr    - set start address
  2794					SET CSR data    - set start CSR data
  2795					SET PARITY arg* - set/clr auto par generation
  2796					SET EBUF arg*   - set/clr preserve EBUF flag
  2797					SET PCB arg*    - set/clr PCB CCW list for START
  2798					SET FNAME name ext - set default ucode file name
  2799	033663	000000	123212		SET PAT n       - set data pattern   ^]
  2800						[ASCII	^
  2801					SET PATLIS arg  - list data patterns
  2802					SET RESPON arg* - set/clr forced response
  2803					SET FORMAT arg  - set format (COMPAT or HIDEN)
  2804					SET BSD arg*    - set/clr BSD style datagram
  2805					SET LENGTH len  - set text length
  2806					SET DADDR n1,n2 - set destination address
  2807					SET SADDR n1,n2 - set self address
  2808					SET PTTVAL arg  - set PTT value
  2809	033664	000000	123317		SET PAD arg*    - set/clr pad datagram   ^]
  2810						[ASCIZ	^
  2811					SET PRINT adr   - set text length to print
  2812					SET INTERV sec  - interval (seconds)
  2813					SET SUMMAR sec  - summary interval (seconds)
  2814					SET WHAT        - print options
  2815					SET HELP        - set help message
  2816	033665	000000	123430		^]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 66
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0229

  2817
  2818					;#********************************************************************
  2819					;* Program Flags
  2820					;#********************************************************************
  2821
  2822	033666	000000	000000		DSADDR:	0				; start address initially zero
  2823	033667	000000	000000		DSDATA:	0				; start data initially zero
  2824
  2825	033670	777777	777777		PARFLG:	-1				; 'automatic parity generation' flag
  2826	033671	777777	777777		PRSFLG:	-1				; 'preserve EBUF' flag
  2827
  2828	033672	000000	000144		DSBYTE:	^D100				; text length
  2829
  2830	033673	000000	000001		DSPAT:	1				; data pattern
  2831	033674	000000	000000		DSTPAT:	0				; operator select pattern
  2832
  2833	033675	000000	000000		PCBFLG:	0				; don't auto generate CCW list
  2834
  2835	033676	777777	777777		RSPFLG:	-1				; generate response flag
  2836	033677	000000	000000		FORSEL:	0				; datagram format
  2837	033700	000000	000000		BSDFLG:	0				; BSD style datagram flag
  2838	033701	000000	000000		PADFLG:	0				; pad datagrams flag
  2839
  2840	033702	000000	000000		DADDR:	0				; destination address
  2841	033703	000000	000000			0
  2842
  2843	033704	000000	000000		SADDR:	0				; self address
  2844	033705	000000	000000			0
  2845
  2846	033706	000000	000003		DSPRIN:	^D3				; default length to print
  2847
  2848	033707	000000	000036		DSSUM:	^D30				; default to 30 seconds
  2849	033710	000000	000000		DSINT:	0				; default to 0 milliseconds
  2850
  2851	033711	000000	000000		SANFLG:	0				; sanity checking
  2852
  2853	033712	000000	000005		PTTVAL:	5				; PTT value
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 67
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0230

  2854
  2855					;#*********************************************************************
  2856					;* DECSR - Examine CSR register
  2857					;#*********************************************************************
  2858
  2859	033713	200 01 0 00 123503 	DECSR:	MOVE	1,[FMSGCD (ECSR <CR>)]
  2860	033714	260 17 0 00 033656*		GO	CHKARG			; check for argument
  2861	033715	263 17 0 00 000000 		RTN				; error - exit
  2862	033716	260 17 0 00 030712*		GO	RDCSR			; read the CSR register
  2863	033717	037 00 0 00 123504 		 TMSGC	<[Rdcsr failed]>	; error return
  2864	033720	260 17 0 00 042605 		GO	CSRPNT			; print CSR data
  2865	033721	037 00 0 00 030242 		PCRL				; end of line
  2866	033722	263 17 0 00 000000 		RTN				; return
  2867
  2868
  2869					;#*********************************************************************
  2870					;* DDCSR - Deposit CSR register
  2871					;#*********************************************************************
  2872
  2873	033723	210 01 0 00 123515 	DDCSR:	MOVN	1,[FMSGCD (DCSR xxxxxx <CR>)]
  2874	033724	260 17 0 00 033540*		GO	.OARG			; get argument
  2875	033725	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2876						 JRST	[FMSGCD	<? Missing argument>
  2877							 GO	FIOFF
  2878	033726	254 00 0 00 117722 			 RTN]
  2879	033727	200 01 0 00 033615*		MOVE	1,ARGUM			; get argument
  2880	033730	260 17 0 00 000000*		GO	LDCSR			; write it
  2881	033731	263 17 0 00 000000 		RTN				; return
  2882
  2883
  2884					;#*********************************************************************
  2885					;* DZCSR - Zero CSR register
  2886					;#*********************************************************************
  2887
  2888	033732	200 01 0 00 123521 	DZCSR:	MOVE	1,[FMSGCD (ZCSR <CR>)]
  2889	033733	260 17 0 00 033714*		GO	CHKARG			; check for argument
  2890	033734	263 17 0 00 000000 		RTN				; error - exit
  2891	033735	400 01 0 00 000000 		SETZ	1,			; clear data
  2892	033736	260 17 0 00 033730*		GO	LDCSR			; write it
  2893	033737	263 17 0 00 000000 		RTN				; return
  2894
  2895
  2896					;#********************************************************************
  2897					;* DRESET - Issue an EBUS Reset
  2898					;#********************************************************************
  2899
  2900	033740	200 01 0 00 123525 	DRESET:	MOVE	1,[FMSGCD (RESET <CR>)]
  2901	033741	260 17 0 00 033733*		GO	CHKARG			; check for argument
  2902	033742	263 17 0 00 000000 		RTN				; error - exit
  2903	033743	260 17 0 00 000000*		GO	ERESET
  2904	033744	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 68
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0231

  2905
  2906					;#********************************************************************
  2907					;* DCLEAR - Issue a 'Port Clear'
  2908					;#********************************************************************
  2909
  2910	033745	200 01 0 00 123531 	DCLEAR:	MOVE	1,[FMSGCD (CLEAR <CR>)]
  2911	033746	260 17 0 00 033741*		GO	CHKARG			; check for argument
  2912	033747	263 17 0 00 000000 		RTN				; error - exit
  2913	033750	260 17 0 00 000000*		GO	IPACLR			; do a 'port clear'
  2914	033751	263 17 0 00 000000 		RTN				; return
  2915
  2916
  2917					;#********************************************************************
  2918					;* DSINIT - Set up start addr/data/history prior to single step command
  2919					;#********************************************************************
  2920
  2921	033752	200 01 0 00 123536 	DSINIT:	MOVE	1,[FMSGCD (SSINIT <CR>)]
  2922	033753	260 17 0 00 033746*		GO	CHKARG			; check for argument
  2923	033754	263 17 0 00 000000 		RTN				; error - exit
  2924	033755	200 00 0 00 033666 		MOVE	DSADDR			; get start address
  2925	033756	202 00 0 00 000000*		MOVEM	SNEXT			; save it for IPASST
  2926	033757	200 00 0 00 033667 		MOVE	DSDATA			; get start CSR data
  2927	033760	202 00 0 00 000000*		MOVEM	SDATA			; save it for IPASST
  2928	033761	260 17 0 00 033037 		GO	DSADD1			; print start address
  2929	033762	260 17 0 00 033055 		GO	DSCSR2			; print start data
  2930	033763	260 17 0 00 034130 		GO	DSSCLR			; clear sstep history
  2931	033764	263 17 0 00 000000 		RTN
  2932
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 69
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0232

  2933
  2934					;#********************************************************************
  2935					;* DSTART - Start the port
  2936					;
  2937					; Arguments set up:
  2938					;
  2939					; DSADDR - Current start address which has been specified by either a
  2940					;	   'SETADD' command, or as an argument to the 'START' command.
  2941					; DSDATA - Current start CSR data specified by a 'SETCSR' command.
  2942					; PCBFLG - Set up 3-Word CCW list automatically flag
  2943					;
  2944					; Arguments set up for IPASST:  SNEXT - Contents of DSADDR is used.
  2945					;				SLAST - Contents of DSADDR is used.
  2946					;				SDATA - Contents of DSDATA is used.
  2947					;#********************************************************************
  2948
  2949	033765	210 01 0 00 123546 	DSTART:	MOVN	1,[FMSGCD (START addr <CR> or START <CR>)]
  2950	033766	260 17 0 00 033724*		GO	.OARG			; get start address
  2951	033767	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  2952	033770	334 01 0 00 033666 		 SKIPA	1,DSADDR		; no argument given
  2953
  2954					; Check for PCB handling generation
  2955
  2956	033771	332 00 0 00 033675 		SKIPE	PCBFLG			; PCB flag set?
  2957	033772	260 17 0 00 000000*		GO	CHINIT			; yes - initialize software
  2958
  2959					; Start it up
  2960
  2961	033773	260 17 0 00 000000*	DSTAR0:	GO	ISTOP			; stop the port
  2962	033774	200 01 0 00 033727*		MOVE	1,ARGUM			; get argument
  2963	033775	202 01 0 00 033756*		MOVEM	1,SNEXT			; set it up
  2964	033776	202 00 0 00 000000*		MOVEM	SLAST			; set it up
  2965	033777	200 00 0 00 033667 		MOVE	DSDATA			; get start data
  2966	034000	202 00 0 00 033760*		MOVEM	SDATA			; set it up
  2967	034001	260 17 0 00 000000*		GO	IPASRT			; start it up
  2968						 JRST	[FMSGCD	<? Error accessing CSR register>
  2969							 GO	FIOFF
  2970	034002	254 00 0 00 123556 			 RTN]
  2971						 JRST	[FMSGCD	<? Port not stopped>
  2972							 GO	FIOFF
  2973	034003	254 00 0 00 123566 			 RTN]
  2974	034004	334 00 0 00 000000 		 SKIPA				; error - Error bits set in CSR
  2975	034005	263 17 0 00 000000 		RTN				; exit
  2976	034006	037 01 0 00 123571 		FMSGCD	<? START failed - Error bits set in CSR>
  2977	034007	260 17 0 00 033716*		GO	RDCSR			; read CSR register
  2978	034010	255 00 0 00 000000 		JFCL				; ignore error
  2979	034011	260 17 0 00 042605 		GO	CSRPNT			; print CSR register
  2980	034012	037 00 0 00 030242 		PCRL				; end of line
  2981	034013	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 70
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0233

  2982
  2983					;#********************************************************************
  2984					;* DSTOP - Stop the port
  2985					;
  2986					; Arguments set by IPASTP:
  2987					;
  2988					; SNEXT - Set to stopping address.
  2989					; SDATA - Set to contents of CSR register.
  2990					;#********************************************************************
  2991
  2992	034014	200 01 0 00 123605 	DSTOP:	MOVE	1,[FMSGCD (STOP <CR>)]
  2993	034015	260 17 0 00 033753*		GO	CHKARG			; check for argument
  2994	034016	263 17 0 00 000000 		RTN				; error - exit
  2995	034017	260 17 0 00 000000*		GO	IPASTP			; stop it and get final address
  2996						 JRST	[FMSGCD	<? Error accessing CSR register>
  2997							 GO	FIOFF
  2998	034020	254 00 0 00 123556 			 RTN]
  2999						 JRST	[FMSGCD	<? Port not running>
  3000							 GO	FIOFF
  3001	034021	254 00 0 00 123613 			 RTN]
  3002	034022	254 00 0 00 034027 		 JRST	DSTOP1			; error - Error bits set in CSR
  3003	034023	037 00 0 00 123616 		TMSGC	<Port stopped.  Last Adr = >
  3004	034024	200 00 0 00 033775*		MOVE	SNEXT			; print it out
  3005	034025	037 04 0 00 000000 		PNT4
  3006	034026	334 00 0 00 000000 		SKIPA
  3007	034027	037 01 0 00 123624 	DSTOP1:	FMSGCD	<? Stop failed - Error bits set in CSR>
  3008	034030	200 01 0 00 034000*		MOVE	1,SDATA			; get CSR data
  3009	034031	260 17 0 00 042605 		GO	CSRPNT			; print CSR register
  3010	034032	037 00 0 00 030242 		PCRL				; end of line
  3011	034033	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 71
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0234

  3012
  3013					;#********************************************************************
  3014					;* DSSTEP - Single step the port
  3015					;* DTRACE - Single step the port and trace progress
  3016					;
  3017					; Arguments set up for IPASST:
  3018					;
  3019					; SNEXT - This is the address last set up by another single step
  3020					;	  command or by a SETSTR (set up start data) command.
  3021					;	  After each single step the LAR is read.  The contents
  3022					;	  of the LAR are put in SNEXT.
  3023					;
  3024					; SLAST - This is the address last executed.  SNEXT is put in this
  3025					;	  location before each single step
  3026					;
  3027					; SDATA - This is the data last set up by another single step
  3028					;	  command or by a SET CSR (set up start data) command.
  3029					;
  3030					; Both of these routines store single step data in a ring buffer which
  3031					; can be examined with a SPRINT command.  This is useful in debugging
  3032					; a microcode routine and instead of single stepping and tracing, you
  3033					; single step 500 times or until an error occurs, then examine last x
  3034					; locations to see what happened.
  3035					;#********************************************************************
  3036
  3037	034034	210 01 0 00 123646 	DTRACE:	MOVN	1,[FMSGCD (STRACE RepeatCount <CR> or STRACE <CR>)]
  3038	034035	476 00 0 00 134153'		SETOM	DTRFLG			; set trace flag
  3039	034036	254 00 0 00 034041 		JRST	DTRAC0			; continue
  3040
  3041	034037	402 00 0 00 134153'	DSSTEP:	SETZM	DTRFLG#			; clear trace flag
  3042	034040	210 01 0 00 123660 		MOVN	1,[FMSGCD (SSTEP RepeatCount <CR> or SSTEP <CR>)]
  3043
  3044	034041	402 00 0 00 033774*	DTRAC0:	SETZM	ARGUM			; set default argument
  3045	034042	350 00 0 00 034041*		AOS	ARGUM			;   to 1 single step
  3046	034043	260 17 0 00 033612*		GO	.DARG			; get argument
  3047	034044	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3048	034045	255 00 0 00 000000 		 JFCL				; no argument given
  3049	034046	260 17 0 00 033773*		GO	ISTOP			; stop the port
  3050	034047	200 02 0 00 034042*		MOVE	2,ARGUM			; get argument
  3051	034050	400 04 0 00 000000 		SETZ	4,			; clear count of single steps
  3052	034051	332 00 0 00 134153'		SKIPE	DTRFLG			; trace flag set?
  3053	034052	037 00 0 00 123661 		TMSGCD	< RAR   LAR   CSR (final)  SS#>
  3054
  3055					; Single step
  3056
  3057	034053	350 00 0 00 000004 	DSST0:	AOS	4			; increment count
  3058	034054	200 01 0 00 033671 		MOVE	1,PRSFLG		; get preserve EBUF flag
  3059	034055	200 00 0 00 034030*		MOVE	SDATA			; get initial CSR data
  3060	034056	202 00 0 00 134241'		MOVEM	SLDATA#			; save initial CSR data
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 72
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0235

  3061	034057	260 17 0 00 000000*		GO	IPASST			; single step once
  3062						 JRST	[FMSGCD	<? Error accessing CSR register>
  3063							 GO	FIOFF
  3064	034060	254 00 0 00 123556 			 RTN]
  3065						 JRST	[FMSGCD	<? Port not stopped>
  3066							 GO	FIOFF
  3067	034061	254 00 0 00 123566 			 RTN]
  3068						 JRST	[GO	SAVHST
  3069							 TMSGC	<[Error bits set in CSR]> 
  3070							 SKIPE	DTRFLG
  3071							 JRST	DSSTX
  3072							 TMSGC	<[>
  3073							 MOVE	4
  3074							 PNTOCS
  3075							 TMSGD	< ssteps done]>
  3076	034062	254 00 0 00 123703 			 JRST	DSSTX]
  3077	034063	260 17 0 00 035357 		GO	SAVHST			; save data for sstep history
  3078
  3079					; If tracing is being done
  3080
  3081	034064	200 01 0 00 034137 		MOVE	1,SSLOC			; get history location
  3082	034065	332 00 0 00 134153'		SKIPE	DTRFLG			; tracing being done?
  3083	034066	260 17 0 00 035340 		GO	PNTHST			; yes - print it
  3084
  3085					; Altmode and exit checking
  3086
  3087	034067	037 07 0 00 000003 	DSST1:	TTALTM				; altmode key struck?
  3088	034070	334 00 0 00 000000 		SKIPA				; no - proceed
  3089						JRST	[PCRL			; yes - print some final
  3090							 SKIPE	DTRFLG		;    data and exit
  3091							 RTN
  3092							 TMSG	<[>
  3093							 MOVE	4
  3094							 PNTOCS
  3095							 TMSGD	< ssteps done]>
  3096	034071	254 00 0 00 123715 			 JRST	DSSTX]
  3097	034072	367 02 0 00 034053 		SOJG	2,DSST0			; loop till done
  3098
  3099					; Exit
  3100
  3101	034073	037 00 0 00 123725 	DSSTX:	TMSGC	<LAR Last/>		; print LAR data
  3102	034074	200 00 0 00 033776*		MOVE	SLAST			; get last address
  3103	034075	037 04 0 00 000000 		PNT4				; print it
  3104	034076	037 00 0 00 123730 		TMSG	<  Next/>
  3105	034077	200 00 0 00 034024*		MOVE	SNEXT			; get next address
  3106	034100	037 04 0 00 000000 		PNT4				; print it
  3107	034101	037 00 0 00 123732 		TMSG	<  CSR/>		; print CSR data
  3108	034102	200 00 0 00 034055*		MOVE	SDATA			; get it
  3109	034103	037 13 0 00 000000 		PNTHW				; print it
  3110	034104	037 00 0 00 030242 		PCRL				; end of line
  3111	034105	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 73
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0236

  3112
  3113					;#********************************************************************
  3114					;* DSSPNT - Print single step history
  3115					;#********************************************************************
  3116
  3117	034106	201 00 0 00 000024 	DSSPNT:	MOVEI	^D20			; set default number of ssteps
  3118	034107	202 00 0 00 034047*		MOVEM	ARGUM			;   to print to 20
  3119	034110	210 01 0 00 123744 		MOVN	1,[FMSGCD (SPRINT EntryCount or SPRINT <CR>)]
  3120	034111	260 17 0 00 034043*		GO	.DARG			; get argument
  3121	034112	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3122	034113	255 00 0 00 000000 		 JFCL				; no argument given
  3123	034114	200 03 0 00 034107*		MOVE	3,ARGUM			; get argument
  3124	034115	200 01 0 00 034137 		MOVE	1,SSLOC			; get current location
  3125	034116	037 00 0 00 123661 		TMSGCD	< RAR   LAR   CSR (final)  SS#>
  3126	034117	260 17 0 00 035340 	DSSPN0:	GO	PNTHST			; print an item
  3127	034120	037 07 0 00 000003 		TTALTM				; altmode typed?
  3128	034121	334 00 0 00 000000 		SKIPA				; no - continue
  3129	034122	263 17 0 00 000000 		RTN				; yes - exit
  3130	034123	375 00 0 00 000001 		SOSGE	1			; decrement pointer - at start of list?
  3131	034124	201 01 0 00 000177 		MOVEI	1,177			; yes - point to end now
  3132	034125	333 00 0 01 034140 		SKIPLE	SSNUM(1)		; valid entry?
  3133	034126	367 03 0 00 034117 		SOJG	3,DSSPN0		; yes - loop till done
  3134	034127	263 17 0 00 000000 		RTN				; no - return
  3135
  3136
  3137					;#********************************************************************
  3138					;* DSSCLR - Clear single step history data
  3139					;#********************************************************************
  3140
  3141	034130	200 01 0 00 123751 	DSSCLR:	MOVE	1,[FMSGCD (SCLEAR <CR>)]
  3142	034131	260 17 0 00 034015*		GO	CHKARG			; check for argument
  3143	034132	263 17 0 00 000000 		RTN				; error - exit
  3144	034133	402 00 0 00 034137 		SETZM	SSLOC			; clear first word
  3145	034134	200 00 0 00 123752 		MOVE	[SSLOC,,SSLOC+1]	; build BLT pointer
  3146	034135	251 00 0 00 035337 		BLT	SSCSRN+177		; clear it
  3147	034136	263 17 0 00 000000 		RTN				; return
  3148
  3149					; Ring buffer and miscellaneous data
  3150
  3151	034137	000000	000000		SSLOC:	0				; pointer to single step entry
  3152	034140				SSNUM:	BLOCK	200			; latest single step number
  3153	034340				SSADRL:	BLOCK	200			; initial address
  3154	034540				SSADRN:	BLOCK	200			; final address
  3155	034740				SSCSRL:	BLOCK	200			; initial CSR
  3156	035140				SSCSRN:	BLOCK	200			; final CSR
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 74
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0237

  3157
  3158					;#********************************************************************
  3159					;* PNTHST - Print a single step history entry
  3160					;
  3161					; Argument:	AC1 - location to print (offset into tables)
  3162					;#********************************************************************
  3163
  3164	035340	261 17 0 00 000000 	PNTHST:	PUT	0			; save AC0
  3165	035341	200 00 0 01 034340 		MOVE	SSADRL(1)		; print LAR (last) contents
  3166	035342	037 04 0 00 000000 		PNT4
  3167	035343	037 00 0 00 117042 		TMSG	< >
  3168	035344	200 00 0 01 034540 		MOVE	SSADRN(1)		; print LAR (next) contents
  3169	035345	037 04 0 00 000000 		PNT4
  3170	035346	037 00 0 00 117042 		TMSG	< >
  3171	035347	200 00 0 01 035140 		MOVE	SSCSRN(1)		; get CSR (final) data
  3172	035350	037 13 0 00 000000 		PNTHW				; print it
  3173	035351	037 00 0 00 117042 		TMSG	< >
  3174	035352	200 00 0 01 034140 		MOVE	SSNUM(1)		; get sstep number
  3175	035353	037 16 0 00 000003 		PNTOCS				; print it
  3176	035354	037 00 0 00 030242 		PCRL
  3177	035355	262 17 0 00 000000 		GET	0			; restore AC0
  3178	035356	263 17 0 00 000000 		RTN				; return
  3179
  3180
  3181					;#********************************************************************
  3182					;* SAVHST - Save single step history data
  3183					;#********************************************************************
  3184
  3185	035357	261 17 0 00 000000 	SAVHST:	RPUT	(0,1,2)			; save AC's
  3186
  3187	035362	200 02 0 00 034137 		MOVE	2,SSLOC			; get last offset
  3188	035363	200 02 0 02 034140 		MOVE	2,SSNUM(2)		; get last number
  3189	035364	350 01 0 00 034137 		AOS	1,SSLOC			; get/increment offset
  3190	035365	301 01 0 00 000200 		CAIL	1,200			; overflow ring buffer yet?
  3191	035366	403 01 0 00 034137 		SETZB	1,SSLOC			; yes - reinitialize pointer
  3192	035367	350 00 0 00 000002 		AOS	2			; increment ss number
  3193	035370	202 02 0 01 034140 		MOVEM	2,SSNUM(1)		; save it
  3194	035371	200 00 0 00 034074*		MOVE	SLAST			; get initial address
  3195	035372	202 00 0 01 034340 		MOVEM	SSADRL(1)		; save it
  3196	035373	200 00 0 00 034077*		MOVE	SNEXT			; get final address
  3197	035374	202 00 0 01 034540 		MOVEM	SSADRN(1)		; save it
  3198	035375	200 00 0 00 134241'		MOVE	SLDATA			; get initial CSR data
  3199	035376	202 00 0 01 034740 		MOVEM	SSCSRL(1)		; save it
  3200	035377	200 00 0 00 034102*		MOVE	SDATA			; get final CSR data
  3201	035400	202 00 0 01 035140 		MOVEM	SSCSRN(1)		; save it
  3202	035401	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  3203
  3204	035404	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 75
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0238

  3205
  3206					;#********************************************************************
  3207					;* DCONT - Continue the port
  3208					;
  3209					; Arguments set up for IPASRT:
  3210					;
  3211					; SNEXT - Points to next address, from IPASTP or IPASST
  3212					; SDATA - Defaults to current contents of SDATA last set up by IPASTP.
  3213					;#********************************************************************
  3214
  3215	035405	200 01 0 00 123756 	DCONT:	MOVE	1,[FMSGCD (CONT <CR>)]
  3216	035406	260 17 0 00 034131*		GO	CHKARG			; check for argument
  3217	035407	263 17 0 00 000000 		RTN				; error - exit
  3218	035410	260 17 0 00 034001*		GO	IPASRT			; start it up
  3219						 JRST	[FMSGCD	<? Error accessing CSR register>
  3220							 GO	FIOFF
  3221	035411	254 00 0 00 123556 			 RTN]
  3222						 JRST	[FMSGCD	<? Port not stopped>
  3223							 GO	FIOFF
  3224	035412	254 00 0 00 123566 			 RTN]
  3225	035413	334 00 0 00 000000 		 SKIPA				; error - Error bits set in CSR
  3226	035414	263 17 0 00 000000 		RTN				; exit
  3227	035415	037 01 0 00 123757 		FMSGCD	<? CONT failed - Error bits set in CSR>
  3228	035416	200 01 0 00 035377*		MOVE	1,SDATA			; get CSR data
  3229	035417	260 17 0 00 042605 		GO	CSRPNT			; print CSR register
  3230	035420	037 01 0 00 030242 		PCRLF				; end of line
  3231	035421	263 17 0 00 000000 		RTN				; continue
  3232
  3233					;#********************************************************************
  3234					;* DEEBUF - Examine EBUF register
  3235					;#********************************************************************
  3236
  3237	035422	200 01 0 00 123773 	DEEBUF:	MOVE	1,[FMSGCD (EEBUF <CR>)]
  3238	035423	260 17 0 00 035406*		GO	CHKARG			; check for argument
  3239	035424	263 17 0 00 000000 		RTN				; error - exit
  3240	035425	260 17 0 00 034046*	DEBEBU:	GO	ISTOP			; stop the port
  3241	035426	260 17 0 00 000000*		GO	SETEBU			; ensure 'Test EBUF' bit is set
  3242						 JRST	[FMSGCD	<? Error accessing CSR register>
  3243							 GO	FIOFF
  3244	035427	254 00 0 00 123556 			 RTN]
  3245
  3246					; Now read the data
  3247
  3248	035430	260 17 0 00 000000*		GO	RDEBUF			; read EBUF
  3249	035431	037 00 0 00 123774 		TMSGC	<EBUF/ >		; print out the data
  3250	035432	200 00 0 00 000001 		MOVE	1
  3251	035433	037 13 0 00 000000 		PNTHW
  3252	035434	037 00 0 00 030242 		PCRL
  3253	035435	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 76
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0239

  3254
  3255					;#********************************************************************
  3256					;* DDEBUF - Deposit EBUF register
  3257					;* DZEBUF - Zero EBUF register
  3258					;#********************************************************************
  3259
  3260	035436	200 01 0 00 124001 	DZEBUF:	MOVE	1,[FMSGCD (ZEBUF <CR>)]
  3261	035437	260 17 0 00 035423*		GO	CHKARG			; check for argument
  3262	035440	263 17 0 00 000000 		RTN				; error - exit
  3263	035441	402 00 0 00 034114*		SETZM	ARGUM			; clear data
  3264	035442	254 00 0 00 035447 		JRST	DDEBU1			; continue
  3265
  3266	035443	210 01 0 00 124010 	DDEBUF:	MOVN	1,[FMSGCD (DEBUF xxxxxxxxxxxx <CR>)]
  3267	035444	260 17 0 00 033766*		GO	.OARG			; get argument
  3268	035445	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3269						 JRST	[FMSGCD	<? Missing argument>
  3270							 GO	FIOFF
  3271	035446	254 00 0 00 117722 			 RTN]
  3272	035447	260 17 0 00 035425*	DDEBU1:	GO	ISTOP			; stop the port
  3273	035450	260 17 0 00 035426*		GO	SETEBU			; ensure 'Test EBUF' bit is set
  3274						 JRST	[FMSGCD	<? Error accessing CSR register>
  3275							 GO	FIOFF
  3276	035451	254 00 0 00 123556 			 RTN]
  3277	035452	200 01 0 00 035441*		MOVE	1,ARGUM			; get argument
  3278	035453	260 17 0 00 000000*		GO	LDEBUF			; write it
  3279	035454	263 17 0 00 000000 		RTN				; continue
  3280
  3281
  3282					;#********************************************************************
  3283					;* DELAR - Examine LAR register
  3284					;#********************************************************************
  3285
  3286	035455	200 01 0 00 124014 	DELAR:	MOVE	1,[FMSGCD (ELAR <CR>)]
  3287	035456	260 17 0 00 035437*		GO	CHKARG			; check for argument
  3288	035457	263 17 0 00 000000 		RTN				; error - exit
  3289	035460	260 17 0 00 035447*	DEBLAR:	GO	ISTOP			; stop the port
  3290	035461	201 01 0 00 040000 		MOVEI	1,SELLAR		; get 'DIAG Sel LAR' bit
  3291	035462	260 17 0 00 033736*		GO	LDCSR			; write to CSR register
  3292	035463	260 17 0 00 000000*		GO	RDLAR			; read LAR
  3293	035464	037 00 0 00 124015 		TMSGC	<LAR: >			; print out the data
  3294	035465	200 00 0 00 000001 		MOVE	1
  3295	035466	037 16 0 00 000003 		PNTOCS
  3296	035467	037 00 0 00 124017 		TMSG	< (Adr: >
  3297	035470	242 01 0 00 777777 		LSH	1,-1			; don't print out RAR bit
  3298	035471	200 00 0 00 000001 		MOVE	1
  3299	035472	037 16 0 00 000003 		PNTOCS
  3300	035473	037 00 0 00 122545 		TMSGD	<)>
  3301	035474	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 77
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0240

  3302
  3303					;#********************************************************************
  3304					;* DDRAR - Deposit RAR register
  3305					;#********************************************************************
  3306
  3307	035475	210 01 0 00 124025 	DDRAR:	MOVN	1,[FMSGCD (DRAR addr <CR>)]
  3308	035476	260 17 0 00 035444*		GO	.OARG			; get test number
  3309	035477	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3310						 JRST	[FMSGCD	<? Missing argument>
  3311							 GO	FIOFF
  3312	035500	254 00 0 00 117722 			 RTN]
  3313	035501	260 17 0 00 035460*		GO	ISTOP			; stop the port
  3314	035502	400 01 0 00 000000 		SETZ	1,			; ensure we can write the RAR
  3315	035503	260 17 0 00 035462*		GO	LDCSR			;   by clearing CSR register
  3316	035504	200 01 0 00 035452*		MOVE	1,ARGUM			; get argument
  3317	035505	260 17 0 00 000000*		GO	LDRAR			; write it
  3318	035506	263 17 0 00 000000 		RTN				; continue
  3319
  3320
  3321					;#********************************************************************
  3322					;* DZRAR - Zero RAR register
  3323					;#********************************************************************
  3324
  3325	035507	200 01 0 00 124031 	DZRAR:	MOVE	1,[FMSGCD (ZRAR <CR>)]
  3326	035510	260 17 0 00 035456*		GO	CHKARG			; check for argument
  3327	035511	263 17 0 00 000000 		RTN				; error - exit
  3328	035512	260 17 0 00 035501*		GO	ISTOP			; stop the port
  3329	035513	400 01 0 00 000000 		SETZ	1,			; clear data
  3330	035514	260 17 0 00 035503*		GO	LDCSR			; clear CSR first
  3331	035515	260 17 0 00 035505*		GO	LDRAR			; write it
  3332	035516	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 78
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0241

  3333
  3334					;#*********************************************************************
  3335					;* DECRAM - Examine CRAM locations specified by "PARG1" and "PARG2".
  3336					;#*********************************************************************
  3337
  3338	035517	201 00 0 00 000000 	DECRAM:	MOVEI	0			; set the 'EDZL' flag
  3339	035520	202 00 0 00 134152'		MOVEM	DFLAG#			;   to 0 (Examine)
  3340	035521	254 00 0 00 035541 		JRST	DCOMGO			; process arguments
  3341
  3342					;#*********************************************************************
  3343					;* DDCRAM - Change CRAM locations.
  3344					;#*********************************************************************
  3345
  3346	035522	201 00 0 00 000001 	DDCRAM:	MOVEI	1			; set the 'EDZL' flag
  3347	035523	202 00 0 00 134152'		MOVEM	DFLAG			;   to 1 (Deposit)
  3348	035524	254 00 0 00 035541 		JRST	DCOMGO			; process arguments
  3349
  3350					;#*********************************************************************
  3351					;* DBCRAM - Change CRAM locations by field
  3352					;#*********************************************************************
  3353
  3354	035525	201 00 0 00 000002 	DBCRAM:	MOVEI	2			; set the 'EDZL' flag
  3355	035526	202 00 0 00 134152'		MOVEM	DFLAG			;   to 1 (Deposit)
  3356	035527	254 00 0 00 035541 		JRST	DCOMGO			; process arguments
  3357
  3358					;#*********************************************************************
  3359					;* DACRAM - Alter CRAM locations.
  3360					;#*********************************************************************
  3361
  3362	035530	201 00 0 00 000003 	DACRAM:	MOVEI	3			; set the 'EDZL' flag
  3363	035531	202 00 0 00 134152'		MOVEM	DFLAG			;   to 1 (Deposit)
  3364	035532	254 00 0 00 035541 		JRST	DCOMGO			; process arguments
  3365
  3366					;#*********************************************************************
  3367					;* DZCRAM -- Zero CRAM addresses specified.
  3368					;#*********************************************************************
  3369
  3370	035533	201 00 0 00 000004 	DZCRAM:	MOVEI	4			; set the 'EDZL' flag
  3371	035534	202 00 0 00 134152'		MOVEM	DFLAG			;   to 2 (Zero)
  3372	035535	254 00 0 00 035541 		JRST	DCOMGO			; process arguments
  3373
  3374					;#*********************************************************************
  3375					;* DLCRAM -- List CRAM addresses specified.
  3376					;#*********************************************************************
  3377
  3378	035536	201 00 0 00 000005 	DLCRAM:	MOVEI	5			; set the 'EDZL' flag
  3379	035537	202 00 0 00 134152'		MOVEM	DFLAG			;   to 3 (List)
  3380	035540	254 00 0 00 035541 		JRST	DCOMGO			; process arguments
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 79
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0242

  3381
  3382					; Start to process the arguments typed - both should be CRAM
  3383					; addresses in octal.
  3384
  3385	035541	200 00 0 00 035607 	DCOMGO:	MOVE	RTO			; set up default range of CRAM locs
  3386	035542	202 00 0 00 035603 		MOVEM	CRAMTO			;   to be whatever typed before or
  3387	035543	200 00 0 00 035610 		MOVE	RFROM			;   if nothing typed, then 0-0
  3388	035544	202 00 0 00 035602 		MOVEM	CRAMFR
  3389
  3390					; Get first address
  3391
  3392	035545	200 01 0 00 124037 		MOVE	1,[FMSGCD <xCRAM addr,addr (CR)>]
  3393	035546	260 17 0 00 035476*		GO	.OARG			; get first address
  3394	035547	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3395	035550	254 00 0 00 035562 		 JRST	DCOM0			; no arguments given - continue
  3396	035551	200 00 0 00 035504*		MOVE	ARGUM			; get argument
  3397	035552	202 00 0 00 035602 		MOVEM	CRAMFR			; save in 'from' location
  3398	035553	202 00 0 00 035603 		MOVEM	CRAMTO			; save in 'to' location
  3399
  3400					; Get 2nd address
  3401
  3402	035554	210 01 0 00 124037 		MOVN	1,[FMSGCD <xCRAM addr,addr (CR)>]
  3403	035555	260 17 0 00 035546*		GO	.OARG			; get first address
  3404	035556	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3405	035557	254 00 0 00 035562 		 JRST	DCOM0			; no arguments given - continue
  3406	035560	200 00 0 00 035551*		MOVE	ARGUM			; get argument
  3407	035561	202 00 0 00 035603 		MOVEM	CRAMTO			; save in 'to' location
  3408
  3409					; Now range check the arguments
  3410
  3411	035562	331 01 0 00 035602 	DCOM0:	SKIPL	1,CRAMFR		; 1st argument in range?
  3412	035563	303 01 0 00 007777 		CAILE	1,7777		
  3413						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  3414							 SETOM	ALTF
  3415							 GO	FIOFF
  3416	035564	254 00 0 00 124040 			 RTN]
  3417	035565	331 01 0 00 035603 		SKIPL	1,CRAMTO		; 2nd argument in range?
  3418	035566	303 01 0 00 007777 		CAILE	1,7777		
  3419						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  3420							 GO	FIOFF
  3421	035567	254 00 0 00 122327 			 RTN]
  3422	035570	274 01 0 00 035602 		SUB	1,CRAMFR		; see if range ok
  3423						JUMPL	1,[FMSGCD <? Range nonsensical>
  3424							   GO	FIOFF
  3425	035571	321 01 0 00 122563 			   RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 80
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0243

  3426
  3427					;#*********************************************************************
  3428					; Process the command - examine, deposit, or zero
  3429					;#*********************************************************************
  3430
  3431					; Save default arguments
  3432
  3433	035572	200 00 0 00 035602 		MOVE	CRAMFR			; set up the new default range
  3434	035573	202 00 0 00 035610 		MOVEM	RFROM			;   selected, for later EXAM, 
  3435	035574	200 00 0 00 035603 		MOVE	CRAMTO			;   DEPOS, or ZEROs
  3436	035575	202 00 0 00 035607 		MOVEM	RTO
  3437
  3438					; Then ensure the port is stopped
  3439
  3440	035576	260 17 0 00 035512*		GO	ISTOP			; stop the port
  3441
  3442					; Now do it
  3443
  3444	035577	476 00 0 00 134150'	DCOM1:	SETOM	DC1ST#			; init 'first location' flag
  3445	035600	200 01 0 00 134152'		MOVE	1,DFLAG			; get type of command
  3446						JRST	@[DCOMEX		; dispatch to proper routine
  3447							  DCOMDE
  3448							  DCOMDB
  3449							  DCOMAL
  3450							  DCOMZE
  3451	035601	254 00 1 01 124044 			  DCOMLI](1)
  3452
  3453					; Default CRAM locations, CRAM data, and Misc
  3454
  3455	035602	000000	000000		CRAMFR:	0				; range is from CRAMFR to
  3456	035603	000000	000000		CRAMTO:	0				;   CRAMTO
  3457	035604	000000	000000		CADDR:	0				; current address
  3458
  3459	035605	000000	000000		CWORDL:	0				; left 28 bits
  3460	035606	000000	000000		CWORDR:	0				; right 28 bits
  3461
  3462	035607	000000	000000		RTO:	0				; start address (default)
  3463	035610	000000	000000		RFROM:	0				; end address (default)
  3464
  3465	035611	000000	000000		ANEXT:	0				; next address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 81
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0244

  3466
  3467					;#*********************************************************************
  3468					; Deposit into CRAM locations.
  3469					;#*********************************************************************
  3470
  3471					DCOMDE:	MOVEI	[SETZM	ALTF		; set up altmode transfer address
  3472							 GO	FIOFF		;   to exit this command
  3473	035612	201 00 0 00 117054 			 RTN]
  3474	035613	202 00 0 00 030063 		MOVEM	ALTMGO
  3475	035614	335 00 0 00 134150'		SKIPGE	DC1ST			; first location?
  3476	035615	037 01 0 00 124052 		FMSGC	<Type xxxx,xxxx,xxxx,xxxx,xxxx>
  3477	035616	402 00 0 00 134150'		SETZM	DC1ST			; clear 'first location' flag
  3478	035617	037 01 0 00 030242 		PCRLF
  3479	035620	476 00 0 00 035605 		SETOM	CWORDL			; initialize left 30 bits
  3480	035621	476 00 0 00 035606 		SETOM	CWORDR			; initialize right 30 bits
  3481	035622	200 00 0 00 035602 		MOVE	CRAMFR			; get the address to modify
  3482	035623	202 00 0 00 035604 		MOVEM	CADDR			; save address for writing
  3483	035624	037 04 0 00 000001 		PNT4F				; print it
  3484	035625	037 01 0 00 124061 		FMSG	<::   >
  3485	035626	403 04 0 00 000005 		SETZB	4,5			; clear data input locations
  3486	035627	476 00 0 00 032305*		SETOM	ARGFLG			; ensure that an argument is expected
  3487	035630	200 01 0 00 124072 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  3488	035631	260 17 0 00 035555*		GO	.OARG			; get first address
  3489	035632	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3490						 JRST	[FMSGCD	<? Missing arguments>
  3491							 GO	FIOFF
  3492	035633	254 00 0 00 124100 			 RTN]
  3493	035634	200 00 0 00 035560*		MOVE	ARGUM			; get argument
  3494	035635	137 00 0 00 124103 		DPB	[POINT 12,4,11]		; save it
  3495	035636	200 01 0 00 124072 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  3496	035637	260 17 0 00 035631*		GO	.OARG			; get first address
  3497	035640	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3498						 JRST	[FMSGCD	<? Missing arguments>
  3499							 GO	FIOFF
  3500	035641	254 00 0 00 124100 			 RTN]
  3501	035642	200 00 0 00 035634*		MOVE	ARGUM			; get argument
  3502	035643	137 00 0 00 124104 		DPB	[POINT 12,4,23]		; save it
  3503	035644	200 01 0 00 124072 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  3504	035645	260 17 0 00 035637*		GO	.OARG			; get first address
  3505	035646	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3506						 JRST	[FMSGCD	<? Missing arguments>
  3507							 GO	FIOFF
  3508	035647	254 00 0 00 124100 			 RTN]
  3509	035650	200 00 0 00 035642*		MOVE	ARGUM			; get argument
  3510	035651	137 00 0 00 124105 		DPB	[POINT 12,4,35]		; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 82
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0245

  3511	035652	200 01 0 00 124072 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  3512	035653	260 17 0 00 035645*		GO	.OARG			; get first address
  3513	035654	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3514						 JRST	[FMSGCD	<? Missing arguments>
  3515							 GO	FIOFF
  3516	035655	254 00 0 00 124100 			 RTN]
  3517	035656	200 00 0 00 035650*		MOVE	ARGUM			; get argument
  3518	035657	137 00 0 00 124106 		DPB	[POINT 12,5,11]		; save it
  3519	035660	210 01 0 00 124072 		MOVN	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  3520	035661	260 17 0 00 035653*		GO	.OARG			; get first address
  3521	035662	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3522						 JRST	[FMSGCD	<? Missing argument>
  3523							 GO	FIOFF
  3524	035663	254 00 0 00 117722 			 RTN]
  3525	035664	200 00 0 00 035656*		MOVE	ARGUM			; get argument
  3526	035665	137 00 0 00 124107 		DPB	[POINT 12,5,23]		; save it
  3527	035666	135 00 0 00 124110 		LDB	[POINT 30,4,29]		; get left 30 bits
  3528	035667	202 00 0 00 035605 		MOVEM	CWORDL			; save them
  3529	035670	246 04 0 00 777772 		LSHC	4,-^D6			; position right 30 bits properly
  3530	035671	135 00 0 00 124111 		LDB	[POINT 30,5,29]		; get right 30 bits
  3531	035672	202 00 0 00 035606 		MOVEM	CWORDR			; save them
  3532	035673	260 17 0 00 036231 		GO	DWCRAM			; go write CRAM location
  3533	035674	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  3534	035675	350 01 0 00 035602 		AOS	1,CRAMFR		; update the specified address
  3535	035676	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next address
  3536	035677	317 01 0 00 035603 		CAMG	1,CRAMTO		; reach end yet?
  3537	035700	254 00 0 00 035612 		JRST	DCOMDE			; no - loop till done
  3538	035701	263 17 0 00 000000 		RTN				; yes - exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 83
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0246

  3539
  3540					;#*********************************************************************
  3541					; Deposit into CRAM locations (by bit field)
  3542					;#*********************************************************************
  3543
  3544	035702	402 00 0 00 035605 	DCOMDB:	SETZM	CWORDL			; initialize left 28 bits
  3545	035703	402 00 0 00 035606 		SETZM	CWORDR			; initialize right 28 bits
  3546	035704	200 00 0 00 035602 		MOVE	CRAMFR			; get the address to modify
  3547	035705	202 00 0 00 035604 		MOVEM	CADDR			; save address for writing
  3548	035706	254 00 0 00 035712 		JRST	DCOMAG
  3549
  3550	035707	200 00 0 00 035602 	DCOMAL:	MOVE	CRAMFR			; get the address to modify
  3551	035710	202 00 0 00 035604 		MOVEM	CADDR			; save address for writing
  3552	035711	260 17 0 00 036263 		GO	DRCRAM			; read CRAM (init both words)
  3553
  3554					; Set up initial data
  3555
  3556	035712	335 00 0 00 134150'	DCOMAG:	SKIPGE	DC1ST			; first location?
  3557						PNTMSF	[ASCIZ /
  3558	035713	037 01 0 00 124112 	Type  value,value... or ^,CR,^Z,field name/]
  3559	035714	402 00 0 00 134150'		SETZM	DC1ST			; clear 'first location' flag
  3560	035715	037 01 0 00 030242 		PCRLF
  3561						MOVEI	[SETZM	ALTF		; set up altmode transfer address
  3562							 GO	FIOFF		;   to exit this command
  3563							 PCRLF
  3564	035716	201 00 0 00 124123 			 RTN]
  3565	035717	202 00 0 00 030063 		MOVEM	ALTMGO
  3566	035720	200 00 0 00 035602 		MOVE	CRAMFR			; get the address to modify
  3567	035721	037 04 0 00 000001 		PNT4F				; print it
  3568	035722	037 01 0 00 124127 		FMSGD	<::>
  3569	035723	260 17 0 00 032263*		GO	CLRBUF			; clear input buffer
  3570	035724	402 00 0 00 030231 		SETZM	$TTCHR			; clear last character typed
  3571
  3572					; Select an entry from the bit table
  3573
  3574	035725	201 06 0 00 000001 		MOVEI	6,1			; init bit pointer
  3575	035726	275 06 0 00 000002 	DCOMA0:	SUBI	6,2			; decrement entry pointer
  3576	035727	315 06 0 00 124130 		CAMGE	6,[-1]			; backed up too far?
  3577	035730	474 06 0 00 000000 		SETO	6,			; force to start at beginning
  3578	035731	350 00 0 00 000006 	DCOMA1:	AOS	6			; point to next entry
  3579	035732	303 06 0 00 000021 		CAILE	6,^D17			; done with microword?
  3580	035733	254 00 0 00 035775 		JRST	DCOMAX			; yes - exit (write location)
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 84
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0247

  3581	
  3582					; Have an entry - now get input/dispatch data
  3583
  3584	035734	200 00 0 00 030231 		MOVE	$TTCHR			; get last character typed
  3585	035735	302 00 0 00 000054 		CAIE	","			; was it a comma
  3586	035736	306 00 0 00 000040 		CAIN	" "			;   or a blank?
  3587	035737	254 00 0 00 035751 		JRST	DCOMA3			; yes - continue
  3588	035740	332 00 0 00 134161'	DCOMAA:	SKIPE	FINPUT			; file input?
  3589						JRST	[GO	FINCMD		; yes - input sixbit cmd
  3590							 JRST	.+1		; error or EOF
  3591	035741	254 00 0 00 124131 			 JRST	DCOM3A]		; continue
  3592	035742	200 00 0 00 134152'		MOVE	DFLAG			; get dispatch flag
  3593	035743	306 00 0 00 000002 		CAIN	2			; alter?
  3594	035744	254 00 0 00 035750 		JRST	DCOMA2			; no - continue
  3595	035745	260 17 1 06 036031 		GO	@DCOLDB(6)		; yes - get data byte
  3596	035746	037 17 0 00 000003 		PNTOCF
  3597	035747	037 01 0 00 000040 		PSPF
  3598
  3599	035750	256 00 0 06 036007 	DCOMA2:	XCT	DCOMSG(6)		; no - print field name
  3600	035751	037 10 0 00 000003 	DCOMA3:	TTSIXB				; get input
  3601						ALTCHK	[GET	XXW#		; adjust stack properly
  3602							 SKIPN	$TWCNT		; did a timeout occur?
  3603							 JRST	DCOMA3		; yes - keep looking for input
  3604							 MOVE	$TTCHR		; get character typed
  3605							 CAIN	"^"		; backup character?
  3606							 JRST	DCOMA0		; yes - backup
  3607							 CAIN	32		; control-Z?
  3608							 PCRLF			; yes - a final blank line
  3609							 CAIN	32		; control-Z?
  3610							 JRST	DCOMAX		; yes - exit - done
  3611							 CAIN	"?"		; question mark?
  3612							 JRST	[XCT	MWDQUE(6); yes - handle 
  3613								 PCRLF
  3614								 JRST	DCOMAA]
  3615							 FMSGCD	<? Argument error>
  3616							 GO	CLRBUF
  3617							 PCRLF
  3618							 GO	FIOFF
  3619	035752	007 00 0 00 124144 			 JRST	DCOMA2]		; no - error - reask question
  3620					DCOM3A:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
  3621							 CAIN	40		;   looking for an argument, if not
  3622							 JRST	DCOMA3		;   exit
  3623	035753	322 00 0 00 124165 			 JRST	DCOMA5]
  3624	035754	202 00 0 00 134234'		MOVEM	SAVFLD#			; save argument
  3625	035755	200 01 0 00 134234'		MOVE	1,SAVFLD		; get into AC1
  3626	035756	260 17 0 00 031067*		GO	CONVSX			; convert to octal
  3627	035757	334 00 0 00 000000 		SKIPA
  3628	035760	254 00 0 00 035770 		JRST	DCOMA4			; ok - insert into data
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 85
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0248

  3629
  3630					; Unrecognizable - check if a field was specified
  3631
  3632	035761	200 01 0 00 134234'		MOVE	1,SAVFLD		; get command into AC1
  3633	035762	201 02 0 00 036075 		MOVEI	2,FLDLIS		; get address of field list
  3634	035763	260 17 0 00 033424*		GO	.COMM			; handle command decoding
  3635						 JRST	[FMSGCD	<? Argument error>
  3636							 GO	CLRBUF
  3637							 PCRLF
  3638							 GO	FIOFF
  3639	035764	254 00 0 00 124160 			 JRST	DCOMA2]		; no - error - reask question
  3640	035765	370 00 0 00 000001 		SOS	1			; normalize to -1..12
  3641	035766	200 06 0 00 000001 		MOVE	6,1			; put into AC6
  3642	035767	254 00 0 00 035731 		JRST	DCOMA1			; go handle the field
  3643
  3644					; Insert field entry
  3645
  3646	035770	200 00 0 00 000001 	DCOMA4:	MOVE	1			; get number
  3647	035771	260 17 1 06 036053 		GO	@DCODPB(6)		; yes - insert it
  3648	035772	200 00 0 00 030231 	DCOMA5:	MOVE	$TTCHR			; get last character typed
  3649	035773	312 00 0 00 000015 		CAME	15			; CRLF?
  3650	035774	254 00 0 00 035731 		JRST	DCOMA1			; no - get next entry
  3651
  3652					; Finally, write the location
  3653
  3654	035775	260 17 0 00 036231 	DCOMAX:	GO	DWCRAM			; go write CRAM location
  3655	035776	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  3656	035777	350 01 0 00 035602 		AOS	1,CRAMFR		; update the specified address
  3657	036000	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next address
  3658	036001	313 01 0 00 035603 		CAMLE	1,CRAMTO		; reach end yet?
  3659	036002	263 17 0 00 000000 		RTN				; yes - exit
  3660	036003	200 00 0 00 134152'		MOVE	DFLAG			; get dispatch flag
  3661	036004	302 00 0 00 000003 		CAIE	3			; alter?
  3662	036005	254 00 0 00 035702 		JRST	DCOMDB			; no - deposit by bit field
  3663	036006	254 00 0 00 035707 		JRST	DCOMAL			; yes - alter by bit field
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 86
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0249

  3664
  3665					; Input message table
  3666
  3667	036007	037 01 0 00 124171 	DCOMSG:	FMSG	<J - >
  3668	036010	037 01 0 00 124172 		FMSG	<PAR - >
  3669	036011	037 01 0 00 124174 		FMSG	<OENA - >
  3670	036012	037 01 0 00 124176 		FMSG	<MGC - >
  3671	036013	037 01 0 00 124200 		FMSG	<SORC - >
  3672	036014	037 01 0 00 124202 		FMSG	<FUNC - >
  3673	036015	037 01 0 00 124204 		FMSG	<DEST - >
  3674	036016	037 01 0 00 124206 		FMSG	<CENA - >
  3675	036017	037 01 0 00 124210 		FMSG	<RAM - >
  3676	036020	037 01 0 00 124212 		FMSG	<A - >
  3677	036021	037 01 0 00 124213 		FMSG	<B - >
  3678	036022	037 01 0 00 124214 		FMSG	<SK - >
  3679	036023	037 01 0 00 124216 		FMSG	<BUS - >
  3680	036024	037 01 0 00 124220 		FMSG	<CRY - >
  3681	036025	037 01 0 00 124222 		FMSG	<CTL - >
  3682	036026	037 01 0 00 124224 		FMSG	<TIME - >
  3683	036027	037 01 0 00 124226 		FMSG	<SPARE - >
  3684	036030	037 01 0 00 124230 		FMSG	<MARK - >
  3685
  3686					; Microword load byte pointer table
  3687
  3688					DCOLDB:	[LDB	[POINT 12,CWORDL,17]	; J - Bits 6-17
  3689	036031	000000	124233			 RTN]
  3690						[LDB	[POINT 1,CWORDL,18]	; PAR - Bit 18 
  3691	036032	000000	124236			 RTN]
  3692						[LDB	[POINT 1,CWORDL,19]	; OENA - Bit 19
  3693	036033	000000	124241			 RTN]
  3694						[LDB	[POINT 10,CWORDL,29]	; MGC - Bits 20-29
  3695	036034	000000	124244			 RTN]
  3696						[LDB	[POINT 3,CWORDL,32]	; SORC - Bits 30-32
  3697	036035	000000	124247			 RTN]
  3698						[LDB	[POINT 3,CWORDL,35]	; FUNC - Bits 33-35
  3699	036036	000000	124252			 RTN]
  3700						[LDB	[POINT 3,CWORDR,8]	; DEST - Bits 6-8
  3701	036037	000000	124255			 RTN]
  3702						[LDB	[POINT 1,CWORDR,9]	; CENA - Bit 9
  3703	036040	000000	124260			 RTN]
  3704						[LDB	[POINT 1,CWORDR,10]	; RAM - Bit 10
  3705	036041	000000	124263			 RTN]
  3706						[LDB	[POINT 4,CWORDR,14]	; A - Bits 11-14
  3707	036042	000000	124266			 RTN]
  3708						[LDB	[POINT 4,CWORDR,18]	; B - Bits 15-18
  3709	036043	000000	124271			 RTN]
  3710						[LDB	[POINT 5,CWORDR,23]	; SK - Bits 19-23
  3711	036044	000000	124274			 RTN]
  3712						[LDB	[POINT 3,CWORDR,26]	; BUS - Bits 24-26
  3713	036045	000000	124277			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 87
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0250

  3714						[LDB	[POINT 1,CWORDR,27]	; CRY - Bits 27
  3715	036046	000000	124302			 RTN]
  3716						[LDB	[POINT 4,CWORDR,31]	; OP - Bits 28-31
  3717	036047	000000	124305			 RTN]
  3718						[LDB	[POINT 1,CWORDR,32]	; TIME - Bit 32
  3719	036050	000000	124310			 RTN]
  3720						[LDB	[POINT 2,CWORDR,34]	; SPARE - Bits 33-34
  3721	036051	000000	124313			 RTN]
  3722						[LDB	[POINT 1,CWORDR,35]	; MARK - Bit 35
  3723	036052	000000	124316			 RTN]
  3724
  3725					; Microword deposit byte pointer table
  3726
  3727					DCODPB:	[DPB	[POINT 12,CWORDL,17]	; J - Bits 6-17
  3728	036053	000000	124320			 RTN]
  3729						[DPB	[POINT 1,CWORDL,18]	; PAR - Bit 18 
  3730	036054	000000	124322			 RTN]
  3731						[DPB	[POINT 1,CWORDL,19]	; OENA - Bit 19
  3732	036055	000000	124324			 RTN]
  3733						[DPB	[POINT 10,CWORDL,29]	; MGC - Bits 20-29
  3734	036056	000000	124326			 RTN]
  3735						[DPB	[POINT 3,CWORDL,32]	; SORC - Bits 30-32
  3736	036057	000000	124330			 RTN]
  3737						[DPB	[POINT 3,CWORDL,35]	; FUNC - Bits 33-35
  3738	036060	000000	124332			 RTN]
  3739						[DPB	[POINT 3,CWORDR,8]	; DEST - Bits 6-8
  3740	036061	000000	124334			 RTN]
  3741						[DPB	[POINT 1,CWORDR,9]	; CENA - Bit 9
  3742	036062	000000	124336			 RTN]
  3743						[DPB	[POINT 1,CWORDR,10]	; RAM - Bit 10
  3744	036063	000000	124340			 RTN]
  3745						[DPB	[POINT 4,CWORDR,14]	; A - Bits 11-14
  3746	036064	000000	124342			 RTN]
  3747						[DPB	[POINT 4,CWORDR,18]	; B - Bits 15-18
  3748	036065	000000	124344			 RTN]
  3749						[DPB	[POINT 5,CWORDR,23]	; SK - Bits 19-23
  3750	036066	000000	124346			 RTN]
  3751						[DPB	[POINT 3,CWORDR,26]	; BUS - Bits 24-26
  3752	036067	000000	124350			 RTN]
  3753						[DPB	[POINT 1,CWORDR,27]	; CRY - Bits 27
  3754	036070	000000	124352			 RTN]
  3755						[DPB	[POINT 4,CWORDR,31]	; OP - Bits 28-31
  3756	036071	000000	124354			 RTN]
  3757						[DPB	[POINT 1,CWORDR,32]	; TIME - Bit 32
  3758	036072	000000	124356			 RTN]
  3759						[DPB	[POINT 2,CWORDR,34]	; SPARE - Bits 33-34
  3760	036073	000000	124360			 RTN]
  3761						[DPB	[POINT 1,CWORDR,35]	; MARK - Bit 35
  3762	036074	000000	124362			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 88
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0251

  3763
  3764					; Field command table
  3765
  3766	036075	52 00 00 00 00 00 	FLDLIS:	SIXBIT	/J/
  3767	036076	60 41 62 00 00 00 		SIXBIT	/PAR/
  3768	036077	57 45 56 41 00 00 		SIXBIT	/OENA/
  3769	036100	55 47 43 00 00 00 		SIXBIT	/MGC/
  3770	036101	63 57 62 43 00 00 		SIXBIT	/SORC/
  3771	036102	46 65 56 43 00 00 		SIXBIT	/FUNC/
  3772	036103	44 45 63 64 00 00 		SIXBIT	/DEST/
  3773	036104	43 45 56 41 00 00 		SIXBIT	/CENA/
  3774	036105	62 41 55 00 00 00 		SIXBIT	/RAM/
  3775	036106	41 00 00 00 00 00 		SIXBIT	/A/
  3776	036107	42 00 00 00 00 00 		SIXBIT	/B/
  3777	036110	63 53 00 00 00 00 		SIXBIT	/SK/
  3778	036111	42 65 63 00 00 00 		SIXBIT	/BUS/
  3779	036112	43 62 71 00 00 00 		SIXBIT	/CRY/
  3780	036113	43 64 54 00 00 00 		SIXBIT	/CTL/
  3781	036114	64 51 55 45 00 00 		SIXBIT	/TIME/
  3782	036115	63 60 41 62 45 00 		SIXBIT	/SPARE/
  3783	036116	55 41 62 53 00 00 		SIXBIT	/MARK/
  3784	036117	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 89
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0252

  3785
  3786					; Help text
  3787
  3788	036120	037 01 0 00 124364 	MWDQUE:	FMSGCD	<Jump field>
  3789	036121	037 01 0 00 124367 		FMSGCD	<Parity bit - Pgm calculates it unless SETPAR is off>
  3790	036122	037 01 0 00 124403 		FMSGCD	<Ouput enable>
  3791	036123	037 01 0 00 124407 		FMSGCD	<Magic # field>
  3792						FMSGD	<
  3793					Source field:
  3794					 0-AQ  2-0Q  4-0A  6-DQ
  3795	036124	037 01 0 00 124413 	 1-AB  3-0B  5-DA  7-D0>
  3796						FMSGD	<
  3797					ALU Function:
  3798					 0-Plus  2-Rmin  4-And   6-Xor
  3799	036125	037 01 0 00 124431 	 1-Smin  3-Or    5-Nand  7-Xnor>
  3800						FMSGD	<
  3801					Destination field:
  3802					 0-QF  2-BA  4-/2BQF  6-*2BQF
  3803	036126	037 01 0 00 124452 	 1-F   3-BF  5-/2BF   7-*2BF>
  3804	036127	037 01 0 00 124473 		FMSGCD	<CC Enable>
  3805	036130	037 01 0 00 124476 		FMSGCD	<RAM Mode>
  3806	036131	037 01 0 00 124501 		FMSGCD	<Port A 0-17>
  3807	036132	037 01 0 00 124505 		FMSGCD	<Port B 0-17>
  3808						FMSGD	<
  3809					Skip field - Select:
  3810					 00/20-CCCbusAvail  10/30-CCEbusRqst
  3811					 01/21-CCGrntCsr    11/31-CCOverflow
  3812					 02/22-CCFeq0	    12/32-CCMbSign
  3813					 03/23-CCCsrChng    13/33-CCMVParChk
  3814					 04/24-CCEbParerr   14/34-CCCbusParErr
  3815					 05/25-CCRcvAttn    15/35-CCPliParErr
  3816					 06/26-CCEndOfFrame 16/36-CCChanErr
  3817					 07/27-CCXmtrAttn   17/37-CCCbLstWd
  3818					
  3819					 20/30-LoadSadReg   23/33-LdLocalMem
  3820					 21/31-SelMbusFld   24/34-SelCnstFld
  3821	036133	037 01 0 00 124511 	 22/32-RdLocalMem>
  3822						FMSGD	<
  3823					Bus Ctl field - Select:
  3824					 0-Nul  2-Mbus  4-Cbus
  3825	036134	037 01 0 00 124636 	 1-Pli  3-Fmtr  5-Ebus>
  3826	036135	037 01 0 00 124656 		FMSGCD	<Carry input>
  3827						FMSGD	<
  3828					2910 Control field:
  3829					 00-JZ    04-PUSH  10-RFCT  14-LDCT
  3830					 01-CJS   05-JSRP  11-RPCT  15-LOOP
  3831					 02-JMAP  06-CJV   12-CRTN  16-CONT
  3832	036136	037 01 0 00 124662 	 03-CJP   07-JRP   13-CJPP  17-TWB>
  3833	036137	037 01 0 00 124725 		FMSGCD	<Time field>
  3834	036140	037 01 0 00 124730 		FMSGCD	<Spare bits>
  3835	036141	037 01 0 00 124733 		FMSGCD	<Mark bit>
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 90
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0253

  3836
  3837					;#*********************************************************************
  3838					; Zero CRAM addresses specified by "PARG1" and "PARG2"
  3839					;#*********************************************************************
  3840
  3841	036142	402 00 0 00 035605 	DCOMZE:	SETZM	CWORDL			; clear CRAM words left and
  3842	036143	402 00 0 00 035606 		SETZM	CWORDR			;   right
  3843	036144	200 00 0 00 035602 		MOVE	CRAMFR			; get the address to modify
  3844	036145	202 00 0 00 035604 		MOVEM	CADDR			; save address for writing
  3845	036146	260 17 0 00 036231 		GO	DWCRAM			; go write CRAM location
  3846	036147	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  3847	036150	037 07 0 00 000003 		TTALTM				; altmode key struck?
  3848	036151	334 00 0 00 000000 		SKIPA				; no - proceed
  3849	036152	263 17 0 00 000000 		RTN				; yes - exit
  3850	036153	350 01 0 00 035602 		AOS	1,CRAMFR		; update the specified address
  3851	036154	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next address
  3852	036155	317 01 0 00 035603 		CAMG	1,CRAMTO		; reach end yet?
  3853	036156	254 00 0 00 036142 		JRST	DCOMZE			; no - loop till done
  3854	036157	263 17 0 00 000000 		RTN				; yes - exit
  3855
  3856
  3857					;#*********************************************************************
  3858					; Examine CRAM locations
  3859					;#*********************************************************************
  3860
  3861	036160	200 00 0 00 035602 	DCOMEX:	MOVE	CRAMFR			; get the address to modify
  3862	036161	202 00 0 00 035604 		MOVEM	CADDR			; save address
  3863	036162	037 00 0 00 030242 		PCRL
  3864	036163	037 04 0 00 000000 		PNT4				; print it
  3865	036164	037 00 0 00 124736 		TMSG	</ >
  3866	036165	260 17 0 00 036263 		GO	DRCRAM			; read CRAM location
  3867	036166	255 00 0 00 000000 		JFCL				; error return
  3868	036167	200 02 0 00 035605 		MOVE	2,CWORDL		; get left half
  3869	036170	200 03 0 00 035606 		MOVE	3,CWORDR		; get right half
  3870	036171	260 17 0 00 042527 		GO	PNTWD			; print it
  3871	036172	037 07 0 00 000003 		TTALTM				; altmode key struck?
  3872	036173	334 00 0 00 000000 		SKIPA				; no - proceed
  3873						JRST	[SETOM	ALTF		; yes - set altmode typed flag 
  3874							 SETZM	MULFLG		;   and clear 'examine next' flag
  3875	036174	254 00 0 00 124737 			 JRST	DCOMEZ]		;   and exit
  3876	036175	350 01 0 00 035602 		AOS	1,CRAMFR		; update the specified address
  3877	036176	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next address
  3878	036177	317 01 0 00 035603 		CAMG	1,CRAMTO		; reach end yet?
  3879	036200	254 00 0 00 036160 		JRST	DCOMEX			; no - loop till done
  3880	036201	336 00 0 00 134174'	DCOMEZ:	SKIPN	MULFLG			; in 'examine next'?
  3881	036202	037 00 0 00 030242 		PCRL				; no - print a blank line
  3882	036203	263 17 0 00 000000 		RTN				; yes - exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 91
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0254

  3883
  3884					;#*********************************************************************
  3885					; List CRAM locations
  3886					;#*********************************************************************
  3887
  3888					; Print this CRAM entry
  3889
  3890	036204	332 00 0 00 134175'	DCOMLI:	SKIPE	MULINI			; in 'examine next'?
  3891	036205	037 00 0 00 124742 		TMSGC	<ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK>
  3892	036206	200 00 0 00 035602 	DCOML0:	MOVE	CRAMFR			; get the address to list
  3893	036207	202 00 0 00 035604 		MOVEM	CADDR			; save address
  3894	036210	260 17 0 00 036263 		GO	DRCRAM			; read CRAM location
  3895	036211	255 00 0 00 000000 		JFCL				; error return
  3896	036212	037 00 0 00 030242 		PCRL				; start a new line
  3897	036213	001 04 0 00 035604 		PNTOCC	4,CADDR			; print cram address
  3898	036214	037 00 0 00 124736 		TMSG	</ >
  3899	036215	200 02 0 00 035605 		MOVE	2,CWORDL		; get left word
  3900	036216	200 03 0 00 035606 		MOVE	3,CWORDR		; get right word
  3901	036217	260 17 0 00 042433 		GO	PNTCRM			; go print it
  3902	036220	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  3903	036221	254 00 0 00 036226 		JRST	DCOMLX			; yes - return
  3904	036222	350 01 0 00 035602 		AOS	1,CRAMFR		; no - update the specified address
  3905	036223	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next address
  3906	036224	317 01 0 00 035603 		CAMG	1,CRAMTO		; reach end yet?
  3907	036225	254 00 0 00 036206 		JRST	DCOML0			; no - loop till done
  3908	036226	336 00 0 00 134174'	DCOMLX:	SKIPN	MULFLG			; in 'examine next'?
  3909	036227	037 00 0 00 030242 		PCRL				; no - print a blank line
  3910	036230	263 17 0 00 000000 		RTN				; yes - exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 92
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0255

  3911
  3912					;#********************************************************************
  3913					; DWCRAM - Load CRAM word at 'CADDR' with data in 'CWORDL' and 'CWORDR'
  3914					;#********************************************************************
  3915
  3916	036231	261 17 0 00 000000 	DWCRAM:	RPUT	(0,1,2,3)		; save AC's
  3917
  3918	036235	200 01 0 00 035604 		MOVE	1,CADDR			; get actual CRAM load address
  3919	036236	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  3920	036237	660 01 0 00 000001 		TRO	1,1			; set bit 12 (for left 30 bits)
  3921	036240	260 17 0 00 035515*		GO	LDRAR			; load RAR with it
  3922	036241	200 02 0 00 035605 		MOVE	2,CWORDL		; get left 30 bits
  3923	036242	200 03 0 00 035606 		MOVE	3,CWORDR		; get right 30 bits
  3924	036243	400 01 0 00 000000 		SETZ	1,			; ignore 'bad parity' bit
  3925	036244	332 00 0 00 033670 		SKIPE	PARFLG			; calculate parity?
  3926	036245	260 17 0 00 042551 		GO	CALPAR			; yes - do so
  3927	036246	200 01 0 00 000002 		MOVE	1,2			; get left 30 bits
  3928	036247	260 17 0 00 000000*		GO	LDCRAM			; load it
  3929
  3930	036250	200 01 0 00 035604 		MOVE	1,CADDR			; get actual CRAM load address
  3931	036251	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  3932	036252	620 01 0 00 000001 		TRZ	1,1			; clear bit 12 (for right 30 bits)
  3933	036253	260 17 0 00 036240*		GO	LDRAR			; load address
  3934	036254	200 01 0 00 000003 		MOVE	1,3			; get right 30 bits
  3935	036255	260 17 0 00 036247*		GO	LDCRAM			; load it
  3936	036256	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  3937
  3938	036262	263 17 0 00 000000 		RTN
  3939
  3940					;#********************************************************************
  3941					; DRCRAM - Read CRAM word at 'CADDR' into 'CWORDL' and 'CWORDR'
  3942					;#********************************************************************
  3943
  3944	036263	261 17 0 00 000000 	DRCRAM:	RPUT	(0,1)			; save AC's
  3945
  3946	036265	200 01 0 00 035604 		MOVE	1,CADDR			; get actual CRAM address
  3947	036266	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  3948	036267	660 01 0 00 000001 		TRO	1,1			; set bit 12 (for left 30 bits)
  3949	036270	260 17 0 00 036253*		GO	LDRAR			; load RAR with it
  3950	036271	260 17 0 00 000000*		GO	RDCRAM			; load it
  3951	036272	202 01 0 00 035605 		MOVEM	1,CWORDL		; save it
  3952
  3953	036273	200 01 0 00 035604 		MOVE	1,CADDR			; get actual CRAM load address
  3954	036274	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  3955	036275	620 01 0 00 000001 		TRZ	1,1			; clear bit 12 (for right 30 bits)
  3956	036276	260 17 0 00 036270*		GO	LDRAR			; load address
  3957	036277	260 17 0 00 036271*		GO	RDCRAM			; load it
  3958	036300	202 01 0 00 035606 		MOVEM	1,CWORDR		; save it
  3959	036301	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  3960
  3961	036303	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 93
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0256

  3962
  3963					;#********************************************************************
  3964					;* DEALU - Examine 2901 registers
  3965					;
  3966					; Arguments:  Reg1,Reg2
  3967					;#********************************************************************
  3968
  3969	036304	200 00 0 00 036606 	DEALU:	MOVE	ALUFR			; set up default of register range
  3970	036305	202 00 0 00 134217'		MOVEM	RALUB#			;   to be whatever was typed before
  3971	036306	200 00 0 00 036607 		MOVE	ALUTO			;   or if nothing typed, then 0-20
  3972	036307	202 00 0 00 134220'		MOVEM	RALUE#
  3973
  3974					; Get arguments
  3975
  3976	036310	200 01 0 00 124770 		MOVE	1,[FMSGCD <E2901 reg1,reg2 (CR) (20=QReg)>]
  3977	036311	260 17 0 00 035661*		GO	.OARG			; get first argument
  3978	036312	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3979	036313	254 00 0 00 036325 		 JRST	DEALU0			; no arguments given - continue
  3980	036314	200 00 0 00 035664*		MOVE	ARGUM			; get argument
  3981	036315	202 00 0 00 134217'		MOVEM	RALUB			; save in 'from' location
  3982	036316	202 00 0 00 134220'		MOVEM	RALUE			; save in 'to' location
  3983
  3984	036317	210 01 0 00 124776 		MOVN	1,[FMSGCD <E2901 reg1,reg2 (CR)>]
  3985	036320	260 17 0 00 036311*		GO	.OARG			; get 2nd argument
  3986	036321	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3987	036322	254 00 0 00 036325 		 JRST	DEALU0			; no arguments given - continue
  3988	036323	200 00 0 00 036314*		MOVE	ARGUM			; get argument
  3989	036324	202 00 0 00 134220'		MOVEM	RALUE			; save in 'to' location
  3990
  3991					; Now range check the arguments
  3992
  3993	036325	331 01 0 00 134217'	DEALU0:	SKIPL	1,RALUB			; 1st argument in range?
  3994	036326	303 01 0 00 000020 		CAILE	1,20		
  3995						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  3996							 SETOM	ALTF
  3997							 GO	FIOFF
  3998	036327	254 00 0 00 125011 			 RTN]
  3999	036330	331 01 0 00 134220'		SKIPL	1,RALUE			; 2nd argument in range?
  4000	036331	303 01 0 00 000020 		CAILE	1,20		
  4001						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  4002							 GO	FIOFF
  4003	036332	254 00 0 00 125015 			 RTN]
  4004	036333	274 01 0 00 134217'		SUB	1,RALUB			; see if range ok
  4005						JUMPL	1,[FMSGCD <? Range nonsensical>
  4006							   GO	FIOFF
  4007	036334	321 01 0 00 122563 			   RTN]
  4008	036335	200 00 0 00 134217'		MOVE	RALUB			; get 'from' argument
  4009	036336	202 00 0 00 036606 		MOVEM	ALUFR			; save it
  4010	036337	200 00 0 00 134220'		MOVE	RALUE			; get 'to' argument
  4011	036340	202 00 0 00 036607 		MOVEM	ALUTO			; save it
  4012	036341	201 00 0 00 000006 		MOVEI	6			; get E2901 flag
  4013	036342	202 00 0 00 134152'		MOVEM	DFLAG			; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 94
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0257

  4014
  4015					; Save CRAM location
  4016
  4017	036343	200 01 0 00 125020 	DEBALU:	MOVE	1,[-1,,7750]		; set up AOBJN word
  4018	036344	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  4019
  4020					; Now do each register
  4021
  4022	036345	037 00 0 00 125021 	DEALU1:	TMSGC	<R>			; start a new line
  4023	036346	200 02 0 00 134217'		MOVE	2,RALUB			; get register number
  4024	036347	200 00 0 00 000002 		MOVE	2			; get register number
  4025	036350	137 02 0 00 125022 		DPB	2,[POINT 4,DEALUM+1,14]	; save it in microword
  4026	036351	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  4027	036352	037 00 0 00 125023 		TMSG	<Q>			; yes - print Q
  4028	036353	302 02 0 00 000020 		CAIE	2,20			; Q-Register?
  4029	036354	037 16 0 00 000003 		PNTOCS				; no - print register number
  4030	036355	037 00 0 00 124736 		TMSG	</ >
  4031	036356	201 00 0 00 000004 		MOVEI	4			; get source field of 4 (0A)
  4032	036357	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  4033	036360	201 00 0 00 000002 		MOVEI	2			; yes - use source of 2 (0Q)
  4034	036361	137 00 0 00 125024 		DPB	[POINT 3,DEALUM+1,2]	; set up source field
  4035	036362	201 01 0 00 036565 		MOVEI	1,DEALUM		; set up microcode address
  4036	036363	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4037	036364	255 00 0 00 000000 		JFCL				; ignore error
  4038	036365	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  4039	036366	242 01 0 00 000001 		LSH	1,1			; position correctly
  4040	036367	260 17 0 00 036276*		GO	LDRAR			; load the RAR
  4041	036370	201 01 0 00 220010 		MOVEI	1,SINCYC!MPRUN!TSTEBF	; single step once
  4042	036371	260 17 0 00 035514*		GO	LDCSR
  4043	036372	260 17 0 00 035430*		GO	RDEBUF			; read EBUF contents
  4044	036373	200 00 0 00 000001 		MOVE	1			; get register data
  4045	036374	037 13 0 00 000000 		PNTHW				; print it
  4046	036375	350 00 0 00 000002 		AOS	2			; point to next register
  4047	036376	202 02 0 00 035611 		MOVEM	2,ANEXT			; save next register
  4048	036377	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4049	036400	334 00 0 00 000000 		SKIPA				; no - proceed
  4050						JRST	[SETOM	ALTF		; yes - set altmode typed flag 
  4051							 SETZM	MULFLG		;   and clear 'examine next' flag
  4052	036401	254 00 0 00 125025 			 JRST	DEALUX]		;   and exit
  4053	036402	350 01 0 00 134217'		AOS	1,RALUB			; point to next register
  4054	036403	317 01 0 00 134220'		CAMG	1,RALUE			; done yet?
  4055	036404	254 00 0 00 036345 		JRST	DEALU1			; no - loop till done
  4056
  4057					; Restore CRAM location and exit
  4058
  4059	036405	336 00 0 00 134174'	DEALUX:	SKIPN	MULFLG			; in 'examine next'?
  4060	036406	037 00 0 00 030242 		PCRL				; no - print blank line
  4061	036407	200 01 0 00 125020 		MOVE	1,[-1,,7750]		; set up AOBJN word
  4062	036410	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4063	036411	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 95
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0258

  4064
  4065					;#********************************************************************
  4066					;* DDALU - Deposit register 
  4067					;
  4068					; Format:  DALU reg,data
  4069					;#********************************************************************
  4070
  4071	036412	200 01 0 00 125035 	DDALU:	MOVE	1,[FMSGCD <DALU reg,data (CR)>]
  4072	036413	260 17 0 00 034111*		GO	.DARG			; get register number
  4073	036414	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4074						 JRST	[FMSGCD	<? Missing argument>
  4075							 GO	FIOFF
  4076	036415	254 00 0 00 117722 			 RTN]
  4077	036416	331 01 0 00 036323*	DDALU0:	SKIPL	1,ARGUM			; argument in range?
  4078	036417	303 01 0 00 000020 		CAILE	1,20		
  4079						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  4080							 GO	FIOFF
  4081	036420	254 00 0 00 125015 			 RTN]
  4082	036421	202 01 0 00 134217'		MOVEM	1,RALUB			; get 'from' argument
  4083	036422	202 01 0 00 036606 		MOVEM	1,ALUFR			; save it
  4084	036423	202 01 0 00 134220'		MOVEM	1,RALUE			; get 'to' argument
  4085	036424	202 01 0 00 036607 		MOVEM	1,ALUTO			; save it
  4086	036425	200 01 0 00 125035 		MOVE	1,[FMSGCD <DALU reg,data (CR)>]
  4087	036426	260 17 0 00 036320*		GO	.OARG			; get data
  4088	036427	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4089						 JRST	[FMSGCD	<? Missing argument>
  4090							 GO	FIOFF
  4091	036430	254 00 0 00 117722 			 RTN]
  4092	036431	200 00 0 00 036416*		MOVE	ARGUM			; get argument
  4093	036432	202 00 0 00 134165'		MOVEM	LARG2			; save it
  4094	036433	201 00 0 00 000007 		MOVEI	7			; get D2901 flag
  4095	036434	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  4096
  4097					; Save CRAM locations
  4098
  4099	036435	200 01 0 00 125036 		MOVE	1,[-5,,7750]		; set up AOBJN word
  4100	036436	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  4101
  4102					; Load microcode
  4103
  4104	036437	200 02 0 00 134217'		MOVE	2,RALUB			; get location to write
  4105	036440	137 02 0 00 125037 		DPB	2,[POINT 4,DDALUM+7,18]	; set up 2901 register
  4106	036441	201 00 0 00 000002 		MOVEI	2			; get destination field of 2 (BA)
  4107	036442	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  4108	036443	201 00 0 00 000000 		MOVEI	0			; yes - use destination of 0 (QF)
  4109	036444	137 00 0 00 125040 		DPB	[POINT 3,DDALUM+7,8]	; set up source field
  4110	036445	201 01 0 00 036570 		MOVEI	1,DDALUM		; set up microcode address
  4111	036446	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4112	036447	255 00 0 00 000000 		JFCL				; ignore error
  4113	036450	350 00 0 00 000002 		AOS	2			; point to next register
  4114	036451	202 02 0 00 035611 		MOVEM	2,ANEXT			; save next register
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 96
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0259

  4115
  4116					; Now do the deposit
  4117
  4118	036452	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  4119	036453	242 01 0 00 000001 		LSH	1,1			; position correctly
  4120	036454	260 17 0 00 036367*		GO	LDRAR			; load the RAR
  4121	036455	201 01 0 00 000010 		MOVEI	1,MPRUN			; set initial data
  4122	036456	260 17 0 00 036371*		GO	LDCSR			; start the port
  4123	036457	200 01 0 00 134165'		MOVE	1,LARG2			; get data to write
  4124	036460	260 17 0 00 000000*		GO	.DATAO			; give to port
  4125	036461	400 01 0 00 000000 		SETZ	1,			; stop the port
  4126	036462	260 17 0 00 036456*		GO	LDCSR
  4127
  4128					; Check if additional arguments
  4129
  4130	036463	336 00 0 00 035627*		SKIPN	ARGFLG			; any more arguments
  4131	036464	254 00 0 00 036470 		JRST	DDALUX			; no - exit
  4132	036465	200 00 0 00 035611 		MOVE	ANEXT			; get register number
  4133	036466	202 00 0 00 036431*		MOVEM	ARGUM			; save it
  4134	036467	254 00 0 00 036416 		JRST	DDALU0			; loop till done
  4135
  4136					; Restore CRAM locations and exit
  4137
  4138	036470	200 01 0 00 125036 	DDALUX:	MOVE	1,[-5,,7750]		; set up AOBJN word
  4139	036471	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4140	036472	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 97
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0260

  4141
  4142					;#********************************************************************
  4143					;* DZALU - Zero 2901 registers
  4144					;
  4145					; Format:  ZALU reg1,reg2
  4146					;#********************************************************************
  4147
  4148	036473	200 00 0 00 036606 	DZALU:	MOVE	ALUFR			; set up default of register range
  4149	036474	202 00 0 00 134217'		MOVEM	RALUB			;   to be whatever was typed before
  4150	036475	200 00 0 00 036607 		MOVE	ALUTO			;   or if nothing typed, then 0-0
  4151	036476	202 00 0 00 134220'		MOVEM	RALUE
  4152
  4153					; Get arguments
  4154
  4155	036477	200 01 0 00 125046 		MOVE	1,[FMSGCD <ZALU reg1,reg2 (CR)>]
  4156	036500	260 17 0 00 036413*		GO	.DARG			; get first argument
  4157	036501	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4158	036502	254 00 0 00 036514 		 JRST	DZALU0			; no arguments given - continue
  4159	036503	200 00 0 00 036466*		MOVE	ARGUM			; get argument
  4160	036504	202 00 0 00 134217'		MOVEM	RALUB			; save in 'from' location
  4161	036505	202 00 0 00 134220'		MOVEM	RALUE			; save in 'to' location
  4162
  4163	036506	210 01 0 00 125046 		MOVN	1,[FMSGCD <ZALU reg1,reg2 (CR)>]
  4164	036507	260 17 0 00 036500*		GO	.DARG			; get 2nd argument
  4165	036510	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4166	036511	254 00 0 00 036514 		 JRST	DZALU0			; no arguments given - continue
  4167	036512	200 00 0 00 036503*		MOVE	ARGUM			; get argument
  4168	036513	202 00 0 00 134220'		MOVEM	RALUE			; save in 'to' location
  4169
  4170					; Now range check the arguments
  4171
  4172	036514	331 01 0 00 134217'	DZALU0:	SKIPL	1,RALUB			; 1st argument in range?
  4173	036515	303 01 0 00 000020 		CAILE	1,20		
  4174						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  4175							 GO	FIOFF
  4176	036516	254 00 0 00 125015 			 RTN]
  4177	036517	331 01 0 00 134220'		SKIPL	1,RALUE			; 2nd argument in range?
  4178	036520	303 01 0 00 000020 		CAILE	1,20		
  4179						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  4180							 GO	FIOFF
  4181	036521	254 00 0 00 125015 			 RTN]
  4182	036522	274 01 0 00 134217'		SUB	1,RALUB			; see if range ok
  4183						JUMPL	1,[FMSGCD <? Range nonsensical>
  4184							   GO	FIOFF
  4185	036523	321 01 0 00 122563 			   RTN]
  4186	036524	200 00 0 00 134217'		MOVE	RALUB			; get 'from' argument
  4187	036525	202 00 0 00 036606 		MOVEM	ALUFR			; save it
  4188	036526	200 00 0 00 134220'		MOVE	RALUE			; get 'to' argument
  4189	036527	202 00 0 00 036607 		MOVEM	ALUTO			; save it
  4190	036530	201 00 0 00 000010 		MOVEI	8			; get Z2901 flag
  4191	036531	202 00 0 00 134152'		MOVEM	DFLAG			; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 98
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0261

  4192
  4193					; Save CRAM location
  4194
  4195	036532	200 01 0 00 125020 		MOVE	1,[-1,,7750]		; set up AOBJN word
  4196	036533	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM location
  4197
  4198					; Now do each location
  4199
  4200	036534	200 02 0 00 134217'	DZALU1:	MOVE	2,RALUB			; get location to write
  4201	036535	137 02 0 00 125047 		DPB	2,[POINT 4,DZALUM+1,18]	; set up register number
  4202	036536	201 00 0 00 000002 		MOVEI	2			; get destination field of 2 (BA)
  4203	036537	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  4204	036540	201 00 0 00 000000 		MOVEI	0			; yes - use destination of 0 (QF)
  4205	036541	137 00 0 00 125050 		DPB	[POINT 3,DZALUM+1,8]	; set up destination field
  4206	036542	201 01 0 00 036603 		MOVEI	1,DZALUM		; set up microcode address
  4207	036543	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4208	036544	255 00 0 00 000000 		JFCL				; ignore error
  4209	036545	350 00 0 00 000002 		AOS	2			; point to next register
  4210	036546	202 02 0 00 035611 		MOVEM	2,ANEXT			; save next register
  4211	036547	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  4212	036550	242 01 0 00 000001 		LSH	1,1			; position correctly
  4213	036551	260 17 0 00 036454*		GO	LDRAR			; load the RAR
  4214	036552	201 01 0 00 020010 		MOVEI	1,MPRUN!SINCYC		; start it up
  4215	036553	260 17 0 00 036462*		GO	LDCSR
  4216	036554	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4217	036555	334 00 0 00 000000 		SKIPA				; no - proceed
  4218	036556	254 00 0 00 036562 		JRST	DZALUX			; yes - exit
  4219	036557	350 01 0 00 134217'		AOS	1,RALUB			; point to next location
  4220	036560	317 01 0 00 134220'		CAMG	1,RALUE			; done yet?
  4221	036561	254 00 0 00 036534 		JRST	DZALU1			; no - loop till done
  4222
  4223					; Restore CRAM location and exit
  4224
  4225	036562	200 01 0 00 125020 	DZALUX:	MOVE	1,[-1,,7750]		; set up AOBJN word
  4226	036563	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4227	036564	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 99
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0262

  4228
  4229					; Microcode to examine 2901's
  4230
  4231	036565	775077	502004		DEALUM:	MWORD	<ADDR=7750,JMAP,J=7750,S0A,OR,D=1,OENA,SELE,MGC=4>
  4232	036566	431000	005040
  4233	036567	777777	777777			-1
  4234
  4235					; Microcode to deposit 2901's
  4236
  4237	036570	775077	510000		DDALUM:	MWORD	<ADDR=7750,JMAP,J=7751,D=1>		; 7750
  4238	036571	001000	000040
  4239	036572	775177	530000			MWORD	<CJP,J=7753,D=1,CENA,CCER>		; 7751
  4240	036573	001400	100060
  4241	036574	775277	510000			MWORD	<JMAP,J=7751,D=1>			; 7752
  4242	036575	001000	000040
  4243	036576	775300	000010			MWORD	<CONT,SD0,OR,D=2,SELE,MGC=10>		; 7753
  4244	036577	732000	005340
  4245	036600	775477	540000			MWORD	<JMAP,J=7754,D=1>			; 7754
  4246	036601	001000	000040
  4247	036602	777777	777777			-1
  4248
  4249					; Microcode to zero 2901's
  4250
  4251	036603	775077	500000		DZALUM:	MWORD	<ADDR=7750,JMAP,J=7750,S0A,AND,D=2>
  4252	036604	442000	000040
  4253	036605	777777	777777			-1
  4254
  4255					; Arguments
  4256
  4257	036606	000000	000000		ALUFR:	0				; default range of 
  4258	036607	000000	000020		ALUTO:	20				;   registers
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 100
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0263

  4259
  4260					;#********************************************************************
  4261					;* DELOCS - Examine local storage 
  4262					;
  4263					; Format:  ELOCS adr1,adr2
  4264					;#********************************************************************
  4265
  4266	036610	200 00 0 00 037101 	DELOCS:	MOVE	LOCFR			; set up default of local storage range
  4267	036611	202 00 0 00 134223'		MOVEM	RLOCB#			;   to be whatever was typed before
  4268	036612	200 00 0 00 037102 		MOVE	LOCTO			;   or if nothing typed, then 0-0
  4269	036613	202 00 0 00 134224'		MOVEM	RLOCE#
  4270
  4271					; Get arguments
  4272
  4273	036614	200 01 0 00 125057 		MOVE	1,[FMSGCD <ELOCS addr1,addr2 (CR)>]
  4274	036615	260 17 0 00 036507*		GO	.DARG			; get first address
  4275	036616	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4276	036617	254 00 0 00 036631 		 JRST	DELOC0			; no arguments given - continue
  4277	036620	200 00 0 00 036512*		MOVE	ARGUM			; get argument
  4278	036621	202 00 0 00 134223'		MOVEM	RLOCB			; save in 'from' location
  4279	036622	202 00 0 00 134224'		MOVEM	RLOCE			; save in 'to' location
  4280
  4281	036623	210 01 0 00 125057 		MOVN	1,[FMSGCD <ELOCS addr1,addr2 (CR)>]
  4282	036624	260 17 0 00 036615*		GO	.DARG			; get 2nd address
  4283	036625	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4284	036626	254 00 0 00 036631 		 JRST	DELOC0			; no arguments given - continue
  4285	036627	200 00 0 00 036620*		MOVE	ARGUM			; get argument
  4286	036630	202 00 0 00 134224'		MOVEM	RLOCE			; save in 'to' location
  4287
  4288					; Now range check the arguments
  4289
  4290	036631	331 01 0 00 134223'	DELOC0:	SKIPL	1,RLOCB			; 1st argument in range?
  4291	036632	303 01 0 00 001777 		CAILE	1,1777
  4292						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  4293							 SETOM	ALTF
  4294							 GO	FIOFF
  4295	036633	254 00 0 00 125072 			 RTN]
  4296	036634	331 01 0 00 134224'		SKIPL	1,RLOCE			; 2nd argument in range?
  4297	036635	303 01 0 00 001777 		CAILE	1,1777
  4298						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  4299							 GO	FIOFF
  4300	036636	254 00 0 00 125076 			 RTN]
  4301	036637	274 01 0 00 134223'		SUB	1,RLOCB			; see if range ok
  4302						JUMPL	1,[FMSGCD <? Range nonsensical>
  4303							   GO	FIOFF
  4304	036640	321 01 0 00 122563 			   RTN]
  4305	036641	200 00 0 00 134223'		MOVE	RLOCB			; get 'from' argument
  4306	036642	202 00 0 00 037101 		MOVEM	LOCFR			; save it
  4307	036643	200 00 0 00 134224'		MOVE	RLOCE			; get 'to' argument
  4308	036644	202 00 0 00 037102 		MOVEM	LOCTO			; save it
  4309	036645	201 00 0 00 000011 		MOVEI	9			; get ELOCS flag
  4310	036646	202 00 0 00 134152'		MOVEM	DFLAG			; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 101
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0264

  4311
  4312					; Save CRAM locations
  4313
  4314	036647	200 01 0 00 125101 	DEBELO:	MOVE	1,[-2,,7750]		; set up AOBJN word
  4315	036650	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  4316	036651	200 07 0 00 134223'		MOVE	7,RLOCB			; get initial address
  4317
  4318					; Now do each location
  4319
  4320	036652	200 06 0 00 134223'	DELOC1:	MOVE	6,RLOCB			; get current address
  4321	036653	274 06 0 00 000007 		SUB	6,7			; calculate word # (0..n)
  4322	036654	602 06 0 00 000003 		TRNE	6,3			; multiple of 4?
  4323	036655	037 00 0 00 117042 		TMSG	< >			; no - print a few spaces
  4324	036656	606 06 0 00 000003 		TRNN	6,3			; multiple of 4?
  4325						GO	[TMSGC	<LS>		; yes - start a new line
  4326							 MOVE	RLOCB
  4327							 PNTOCS
  4328							 TMSG	</ >
  4329	036657	260 17 0 00 125103 			 RTN]
  4330	036660	200 00 0 00 134223'		MOVE	RLOCB			;  get local storage address
  4331	036661	137 00 0 00 125110 		DPB	[POINT 10,DELOCM,35]	; save it in microword
  4332	036662	201 01 0 00 037056 		MOVEI	1,DELOCM		; set up microcode address
  4333	036663	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4334	036664	255 00 0 00 000000 		JFCL				; ignore error
  4335	036665	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  4336	036666	242 01 0 00 000001 		LSH	1,1			; position correctly
  4337	036667	260 17 0 00 036551*		GO	LDRAR			; load the RAR
  4338	036670	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  4339	036671	260 17 0 00 036553*		GO	LDCSR			; write to CSR register
  4340	036672	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF data
  4341	036673	260 17 0 00 036671*		GO	LDCSR			; write to CSR register
  4342	036674	260 17 0 00 036372*		GO	RDEBUF			; read EBUF contents
  4343	036675	200 00 0 00 000001 		MOVE	1			; get register data
  4344	036676	037 13 0 00 000000 		PNTHW				; print it
  4345	036677	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4346	036700	334 00 0 00 000000 		SKIPA				; no - proceed
  4347						JRST	[SETOM	ALTF		; yes - set altmode typed flag 
  4348							 SETZM	MULFLG		;   and clear 'examine next' flag
  4349	036701	254 00 0 00 125111 			 JRST	DELOCX]		;   and exit
  4350	036702	350 01 0 00 134223'		AOS	1,RLOCB			; point to next location
  4351	036703	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next location
  4352	036704	317 01 0 00 134224'		CAMG	1,RLOCE			; done yet?
  4353	036705	254 00 0 00 036652 		JRST	DELOC1			; no - loop till done
  4354
  4355					; Restore CRAM locations and exit
  4356
  4357	036706	336 00 0 00 134174'	DELOCX:	SKIPN	MULFLG			; in 'examine next'?
  4358	036707	037 00 0 00 030242 		PCRL				; no - print blank line
  4359	036710	200 01 0 00 125101 		MOVE	1,[-2,,7750]		; set up AOBJN word
  4360	036711	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4361	036712	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 102
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0265

  4362
  4363					;#********************************************************************
  4364					;* DDLOCS - Deposit local storage 
  4365					;
  4366					; Format:  DLOCS adr,data
  4367					;#********************************************************************
  4368
  4369	036713	200 01 0 00 125121 	DDLOCS:	MOVE	1,[FMSGCD <DLOCS addr,data (CR)>]
  4370	036714	260 17 0 00 036624*		GO	.DARG			; get address
  4371	036715	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4372						 JRST	[FMSGCD	<? Missing argument>
  4373							 GO	FIOFF
  4374	036716	254 00 0 00 117722 			 RTN]
  4375	036717	200 00 0 00 036627*	DDLOC0:	MOVE	ARGUM			; get argument
  4376	036720	301 00 0 00 000000 		CAIL	0			; in range 0-1777?
  4377	036721	303 00 0 00 001777 		CAILE	1777
  4378						JRST	[FMSGCD	<? Range of Local Storage addresses is 0-1777>
  4379							 GO	FIOFF
  4380	036722	254 00 0 00 125134 			 RTN]
  4381	036723	202 00 0 00 037101 		MOVEM	LOCFR			; save 'from' argument
  4382	036724	202 00 0 00 037102 		MOVEM	LOCTO			; save 'to' argument
  4383	036725	200 01 0 00 125121 		MOVE	1,[FMSGCD <DLOCS addr,data (CR)>]
  4384	036726	260 17 0 00 036426*		GO	.OARG			; get data
  4385	036727	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4386						 JRST	[FMSGCD	<? Missing argument>
  4387							 GO	FIOFF
  4388	036730	254 00 0 00 117722 			 RTN]
  4389	036731	200 00 0 00 036717*		MOVE	ARGUM			; get argument
  4390	036732	202 00 0 00 134165'		MOVEM	LARG2#			; save it
  4391	036733	201 00 0 00 000012 		MOVEI	^D10			; get DLOCS flag
  4392	036734	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  4393
  4394					; Save CRAM locations
  4395
  4396	036735	200 01 0 00 125036 		MOVE	1,[-5,,7750]		; set up AOBJN word
  4397	036736	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  4398
  4399					; Load microcode
  4400
  4401	036737	200 00 0 00 037101 		MOVE	LOCFR			; get location to write
  4402	036740	137 00 0 00 125137 		DPB	[POINT 10,DDLOCM+8,35]	; set up local storage address
  4403	036741	202 00 0 00 035611 		MOVEM	ANEXT			; save address
  4404	036742	350 00 0 00 035611 		AOS	ANEXT			; set to next address
  4405	036743	201 01 0 00 037063 		MOVEI	1,DDLOCM		; set up microcode address
  4406	036744	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4407	036745	255 00 0 00 000000 		JFCL				; ignore error
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 103
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0266

  4408
  4409					; Now do the deposit
  4410
  4411	036746	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  4412	036747	242 01 0 00 000001 		LSH	1,1			; position correctly
  4413	036750	260 17 0 00 036667*		GO	LDRAR			; load the register
  4414	036751	201 01 0 00 000010 		MOVEI	1,MPRUN			; no - set initial data
  4415	036752	260 17 0 00 036673*		GO	LDCSR
  4416	036753	200 01 0 00 134165'		MOVE	1,LARG2			; get data to write
  4417	036754	260 17 0 00 036460*		GO	.DATAO			; give to port
  4418	036755	400 01 0 00 000000 		SETZ	1,			; stop the port
  4419	036756	260 17 0 00 036752*		GO	LDCSR
  4420
  4421					; Check if additional arguments
  4422
  4423	036757	336 00 0 00 036463*		SKIPN	ARGFLG			; any more arguments
  4424	036760	254 00 0 00 036764 		JRST	DDLOCX			; no - exit
  4425	036761	200 00 0 00 035611 		MOVE	ANEXT			; get register number
  4426	036762	202 00 0 00 036731*		MOVEM	ARGUM			; save it
  4427	036763	254 00 0 00 036717 		JRST	DDLOC0			; loop till done
  4428
  4429					; Restore CRAM locations and exit
  4430
  4431	036764	200 01 0 00 125036 	DDLOCX:	MOVE	1,[-5,,7750]		; set up AOBJN word
  4432	036765	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4433	036766	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 104
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0267

  4434
  4435					;#********************************************************************
  4436					;* DZLOCS - Zero local storage 
  4437					;
  4438					; Format:  ZLOCS adr1,adr2
  4439					;#********************************************************************
  4440
  4441	036767	200 00 0 00 037101 	DZLOCS:	MOVE	LOCFR			; set up default of local storage range
  4442	036770	202 00 0 00 134223'		MOVEM	RLOCB			;   to be whatever was typed before
  4443	036771	200 00 0 00 037102 		MOVE	LOCTO			;   or if nothing typed, then 0-0
  4444	036772	202 00 0 00 134224'		MOVEM	RLOCE
  4445
  4446					; Get arguments
  4447
  4448	036773	200 01 0 00 125146 		MOVE	1,[FMSGCD <ZLOCS addr1,addr2 (CR)>]
  4449	036774	260 17 0 00 036714*		GO	.DARG			; get first address
  4450	036775	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4451	036776	254 00 0 00 037010 		 JRST	DZLOC0			; no arguments given - continue
  4452	036777	200 00 0 00 036762*		MOVE	ARGUM			; get argument
  4453	037000	202 00 0 00 134223'		MOVEM	RLOCB			; save in 'from' location
  4454	037001	202 00 0 00 134224'		MOVEM	RLOCE			; save in 'to' location
  4455
  4456	037002	210 01 0 00 125146 		MOVN	1,[FMSGCD <ZLOCS addr1,addr2 (CR)>]
  4457	037003	260 17 0 00 036774*		GO	.DARG			; get 2nd address
  4458	037004	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4459	037005	254 00 0 00 037010 		 JRST	DZLOC0			; no arguments given - continue
  4460	037006	200 00 0 00 036777*		MOVE	ARGUM			; get argument
  4461	037007	202 00 0 00 134224'		MOVEM	RLOCE			; save in 'to' location
  4462
  4463					; Now range check the arguments
  4464
  4465	037010	331 01 0 00 134223'	DZLOC0:	SKIPL	1,RLOCB			; 1st argument in range?
  4466	037011	303 01 0 00 001777 		CAILE	1,1777
  4467						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  4468							 GO	FIOFF
  4469	037012	254 00 0 00 125076 			 RTN]
  4470	037013	331 01 0 00 134224'		SKIPL	1,RLOCE			; 2nd argument in range?
  4471	037014	303 01 0 00 001777 		CAILE	1,1777
  4472						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  4473							 GO	FIOFF
  4474	037015	254 00 0 00 125076 			 RTN]
  4475	037016	274 01 0 00 134223'		SUB	1,RLOCB			; see if range ok
  4476						JUMPL	1,[FMSGCD <? Range nonsensical>
  4477							   GO	FIOFF
  4478	037017	321 01 0 00 122563 			   RTN]
  4479	037020	200 00 0 00 134223'		MOVE	RLOCB			; get 'from' argument
  4480	037021	202 00 0 00 037101 		MOVEM	LOCFR			; save it
  4481	037022	200 00 0 00 134224'		MOVE	RLOCE			; get 'to' argument
  4482	037023	202 00 0 00 037102 		MOVEM	LOCTO			; save it
  4483	037024	201 00 0 00 000013 		MOVEI	^D11			; get ZLOCS flag
  4484	037025	202 00 0 00 134152'		MOVEM	DFLAG			; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 105
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0268

  4485
  4486					; Save CRAM location
  4487
  4488	037026	200 01 0 00 125020 		MOVE	1,[-1,,7750]		; set up AOBJN word
  4489	037027	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  4490
  4491					; Now do each location
  4492
  4493	037030	200 00 0 00 134223'	DZLOC1:	MOVE	RLOCB			; get local storage address
  4494	037031	137 00 0 00 125147 		DPB	[POINT 10,DZLOCM,35]	; set up local storage address
  4495	037032	201 01 0 00 037076 		MOVEI	1,DZLOCM		; set up microcode address
  4496	037033	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4497	037034	255 00 0 00 000000 		JFCL				; ignore error
  4498	037035	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  4499	037036	242 01 0 00 000001 		LSH	1,1			; position correctly
  4500	037037	260 17 0 00 036750*		GO	LDRAR			; load the RAR
  4501	037040	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  4502	037041	260 17 0 00 036756*		GO	LDCSR
  4503	037042	400 01 0 00 000000 		SETZ	1,			; stop the port
  4504	037043	260 17 0 00 037041*		GO	LDCSR
  4505	037044	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4506	037045	334 00 0 00 000000 		SKIPA				; no - proceed
  4507	037046	254 00 0 00 037053 		JRST	DZLOCX			; yes - exit
  4508	037047	350 01 0 00 134223'		AOS	1,RLOCB			; point to next register
  4509	037050	202 01 0 00 035611 		MOVEM	1,ANEXT			; save next location
  4510	037051	317 01 0 00 134224'		CAMG	1,RLOCE			; done yet?
  4511	037052	254 00 0 00 037030 		JRST	DZLOC1			; no - loop till done
  4512
  4513					; Restore CRAM location and exit
  4514
  4515	037053	200 01 0 00 125020 	DZLOCX:	MOVE	1,[-1,,7750]		; set up AOBJN word
  4516	037054	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4517	037055	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 106
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0269

  4518
  4519					; Microcode to examine local storage
  4520
  4521	037056	775077	510000		DELOCM:	MWORD	<ADDR=7750,JMAP,J=7751,SD0,OR,D=2,RDLM>
  4522	037057	732000	220040
  4523	037060	775177	512004			MWORD	<JMAP,J=7751,S0A,OR,D=1,OENA,SELE,MGC=4>
  4524	037061	431000	005040
  4525	037062	777777	777777			-1
  4526
  4527					; Microcode to deposit local storage
  4528
  4529	037063	775077	510000		DDLOCM:	MWORD	<ADDR=7750,JMAP,J=7751,D=1>		; 7750
  4530	037064	001000	000040
  4531	037065	775177	530000			MWORD	<CJP,J=7753,D=1,CENA,CCER>		; 7751
  4532	037066	001400	100060
  4533	037067	775277	510000			MWORD	<JMAP,J=7751,D=1>			; 7752
  4534	037070	001000	000040
  4535	037071	775300	000010			MWORD	<CONT,SD0,OR,D=2,SELE,MGC=10>		; 7753
  4536	037072	732000	005340
  4537	037073	775477	542000			MWORD	<JMAP,J=7754,S0A,OR,D=1,OENA,LDLM,MGC=0>; 7754
  4538	037074	431000	230040
  4539	037075	777777	777777			-1
  4540
  4541					; Microcode to zero local storage
  4542
  4543	037076	775077	502000		DZLOCM:	MWORD	<ADDR=7750,JMAP,J=7750,S0A,AND,D=1,LDLM,OENA>
  4544	037077	441000	230040
  4545	037100	777777	777777			-1
  4546
  4547					; Arguments
  4548
  4549	037101	000000	000000		LOCFR:	0				; default range of 
  4550	037102	000000	000000		LOCTO:	0				;   locations
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 107
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0270

  4551
  4552					;#********************************************************************
  4553					;* DMARK - Set mark bit in CRAM locations
  4554					;#********************************************************************
  4555
  4556					; First check for any argument
  4557
  4558	037103	336 00 0 00 036757*	DMARK:	SKIPN	ARGFLG			; argument given?
  4559						JRST	[FMSGCD	<? Missing argument>
  4560							 GO	FIOFF
  4561	037104	254 00 0 00 117722 			 RTN]
  4562
  4563					; Obtain argument
  4564
  4565	037105	200 01 0 00 125156 	DMARK0:	MOVE	1,[FMSGCD <MARK addr,addr,... (CR)>]
  4566	037106	260 17 0 00 036726*		GO	.OARG			; get argument
  4567	037107	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4568	037110	263 17 0 00 000000 		 RTN				; done - no more arguments
  4569	037111	331 01 0 00 037006*		SKIPL	1,ARGUM			; argument out of range?
  4570	037112	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  4571						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4572							 GO	FIOFF
  4573	037113	254 00 0 00 122327 			 RTN]
  4574
  4575					; Then ensure the port is stopped
  4576
  4577	037114	260 17 0 00 035576*		GO	ISTOP			; stop the port
  4578
  4579					; Now obtain CRAM data and set MARK bit
  4580
  4581	037115	202 01 0 00 035604 		MOVEM	1,CADDR			; set up address to load
  4582	037116	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  4583	037117	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  4584	037120	260 17 0 00 036263 		GO	DRCRAM			; read the data
  4585	037121	200 02 0 00 035605 		MOVE	2,CWORDL		; get left half
  4586	037122	200 03 0 00 035606 		MOVE	3,CWORDR		; get right half
  4587	037123	660 03 0 00 000001 		TRO	3,1			; set mark bit
  4588	037124	202 03 0 00 035606 		MOVEM	3,CWORDR		; save data
  4589	037125	261 17 0 00 033670 		PUT	PARFLG			; save state of parity flag
  4590	037126	402 00 0 00 033670 		SETZM	PARFLG			; clear parity flag
  4591	037127	260 17 0 00 036231 		GO	DWCRAM			; load CRAM data
  4592	037130	262 17 0 00 033670 		GET	PARFLG			; restore state of parity flag
  4593	037131	254 00 0 00 037105 		JRST	DMARK0			; get next address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 108
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0271

  4594
  4595					;#********************************************************************
  4596					;* DRMARK - Remove mark bit in CRAM locations
  4597					;#********************************************************************
  4598
  4599					; First check for any argument
  4600
  4601	037132	336 00 0 00 037103*	DRMARK:	SKIPN	ARGFLG			; argument given?
  4602						JRST	[FMSGCD	<? Missing argument>
  4603							 GO	FIOFF
  4604	037133	254 00 0 00 117722 			 RTN]
  4605
  4606					; Obtain argument
  4607
  4608	037134	200 01 0 00 125165 	DRMAR0:	MOVE	1,[FMSGCD <RMARK addr,addr,... (CR)>]
  4609	037135	260 17 0 00 037106*		GO	.OARG			; get argument
  4610	037136	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4611	037137	263 17 0 00 000000 		 RTN				; done - no more arguments
  4612	037140	331 01 0 00 037111*		SKIPL	1,ARGUM			; argument out of range?
  4613	037141	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  4614						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4615							 GO	FIOFF
  4616	037142	254 00 0 00 122327 			 RTN]
  4617
  4618					; Then ensure the port is stopped
  4619
  4620	037143	260 17 0 00 037114*		GO	ISTOP			; stop the port
  4621
  4622					; Now obtain CRAM data and set MARK bit
  4623
  4624	037144	202 01 0 00 035604 		MOVEM	1,CADDR			; set up address to load
  4625	037145	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  4626	037146	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  4627	037147	260 17 0 00 036263 		GO	DRCRAM			; read the data
  4628	037150	200 02 0 00 035605 		MOVE	2,CWORDL		; get left half
  4629	037151	200 03 0 00 035606 		MOVE	3,CWORDR		; get right half
  4630	037152	620 03 0 00 000001 		TRZ	3,1			; clear mark bit
  4631	037153	202 03 0 00 035606 		MOVEM	3,CWORDR		; save data
  4632	037154	261 17 0 00 033670 		PUT	PARFLG			; save state of parity flag
  4633	037155	402 00 0 00 033670 		SETZM	PARFLG			; clear parity flag
  4634	037156	260 17 0 00 036231 		GO	DWCRAM			; load CRAM data
  4635	037157	262 17 0 00 033670 		GET	PARFLG			; restore state of parity flag
  4636	037160	254 00 0 00 037134 		JRST	DRMAR0			; get next address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 109
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0272

  4637
  4638					;#********************************************************************
  4639					;* DCMARK - Clear all mark bits
  4640					;
  4641					; If arguments are given, they are assumed to the the locations between
  4642					; which all mark bits are to be removed.
  4643					;#********************************************************************
  4644
  4645					; Start to process the arguments typed - both should be CRAM
  4646					; addresses in octal.
  4647
  4648	037161	400 05 0 00 000000 	DCMARK:	SETZ	5,			; init range of addresses
  4649	037162	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  4650
  4651					; Get first address
  4652
  4653	037163	200 01 0 00 125174 		MOVE	1,[FMSGCD <CMARK addr1,addr2 (CR)>]
  4654	037164	260 17 0 00 037135*		GO	.OARG			; get first address
  4655	037165	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4656	037166	254 00 0 00 037200 		 JRST	DCMAR0			; no arguments given - continue
  4657	037167	200 00 0 00 037140*		MOVE	ARGUM			; get argument
  4658	037170	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  4659	037171	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  4660
  4661					; Get 2nd address
  4662
  4663	037172	210 01 0 00 125174 		MOVN	1,[FMSGCD <CMARK addr1,addr2 (CR)>]
  4664	037173	260 17 0 00 037164*		GO	.OARG			; get first address
  4665	037174	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4666	037175	254 00 0 00 037200 		 JRST	DCMAR0			; no arguments given - continue
  4667	037176	200 00 0 00 037167*		MOVE	ARGUM			; get argument
  4668	037177	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  4669
  4670					; Now range check the arguments
  4671
  4672	037200	331 00 0 00 000005 	DCMAR0:	SKIPL	5			; 1st argument in range?
  4673	037201	303 05 0 00 007777 		CAILE	5,7777		
  4674						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4675							 GO	FIOFF
  4676	037202	254 00 0 00 122327 			 RTN]
  4677	037203	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  4678	037204	303 06 0 00 007777 		CAILE	6,7777		
  4679						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4680							 GO	FIOFF
  4681	037205	254 00 0 00 122327 			 RTN]
  4682	037206	274 01 0 00 000005 		SUB	1,5			; see if range ok
  4683						JUMPL	1,[FMSGCD <? Range nonsensical>
  4684							   GO	FIOFF
  4685	037207	321 01 0 00 122563 			   RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 110
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0273

  4686
  4687					; Then ensure the port is stopped
  4688
  4689	037210	260 17 0 00 037143*		GO	ISTOP			; stop the port
  4690
  4691					; Now obtain CRAM data and load back into CRAM without MARK bit set
  4692
  4693	037211	202 05 0 00 035604 	DCMAR1:	MOVEM	5,CADDR			; set up address to load
  4694	037212	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  4695	037213	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  4696	037214	260 17 0 00 036263 		GO	DRCRAM			; read the data
  4697	037215	200 02 0 00 035605 		MOVE	2,CWORDL		; get left half
  4698	037216	200 03 0 00 035606 		MOVE	3,CWORDR		; get right half
  4699	037217	626 03 0 00 000001 		TRZN	3,1			; clear mark bit - set?
  4700	037220	254 00 0 00 037226 		JRST	DCMAR2			; no - continue
  4701	037221	202 03 0 00 035606 		MOVEM	3,CWORDR		; save data
  4702	037222	261 17 0 00 033670 		PUT	PARFLG			; save state of parity flag
  4703	037223	402 00 0 00 033670 		SETZM	PARFLG			; clear parity flag
  4704	037224	260 17 0 00 036231 		GO	DWCRAM			; load CRAM data
  4705	037225	262 17 0 00 033670 		GET	PARFLG			; restore state of parity flag
  4706	037226	350 00 0 00 000005 	DCMAR2:	AOS	5			; increment 'from' address
  4707	037227	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  4708	037230	254 00 0 00 037211 		JRST	DCMAR1			; no - get next address
  4709	037231	263 17 0 00 000000 		RTN				; yes - exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 111
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0274

  4710
  4711					;#********************************************************************
  4712					;* DLMARK - List locations with mark bit set
  4713					;
  4714					; If arguments are given, they are assumed to the the locations between
  4715					; which all mark bits are to be listed.
  4716					;#********************************************************************
  4717
  4718					; Start to process the arguments typed - both should be CRAM
  4719					; addresses in octal.
  4720
  4721	037232	400 05 0 00 000000 	DLMARK:	SETZ	5,			; init range of addresses
  4722	037233	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  4723
  4724					; Get first address
  4725
  4726	037234	200 01 0 00 125203 		MOVE	1,[FMSGCD <LMARK addr1,addr2 (CR)>]
  4727	037235	260 17 0 00 037173*		GO	.OARG			; get first address
  4728	037236	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4729	037237	254 00 0 00 037251 		 JRST	DLMAR0			; no arguments given - continue
  4730	037240	200 00 0 00 037176*		MOVE	ARGUM			; get argument
  4731	037241	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  4732	037242	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  4733
  4734					; Get 2nd address
  4735
  4736	037243	210 01 0 00 125203 		MOVN	1,[FMSGCD <LMARK addr1,addr2 (CR)>]
  4737	037244	260 17 0 00 037235*		GO	.OARG			; get first address
  4738	037245	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4739	037246	254 00 0 00 037251 		 JRST	DLMAR0			; no arguments given - continue
  4740	037247	200 00 0 00 037240*		MOVE	ARGUM			; get argument
  4741	037250	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  4742
  4743					; Now range check the arguments
  4744
  4745	037251	331 00 0 00 000005 	DLMAR0:	SKIPL	5			; 1st argument in range?
  4746	037252	303 05 0 00 007777 		CAILE	5,7777		
  4747						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4748							 GO	FIOFF
  4749	037253	254 00 0 00 122327 			 RTN]
  4750	037254	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  4751	037255	303 06 0 00 007777 		CAILE	6,7777		
  4752						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4753							 GO	FIOFF
  4754	037256	254 00 0 00 122327 			 RTN]
  4755	037257	274 01 0 00 000005 		SUB	1,5			; see if range ok
  4756						JUMPL	1,[FMSGCD <? Range nonsensical>
  4757							   GO	FIOFF
  4758	037260	321 01 0 00 122563 			   RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 112
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0275

  4759
  4760					; Then ensure the port is stopped
  4761
  4762	037261	260 17 0 00 037210*		GO	ISTOP			; stop the port
  4763	037262	200 07 0 00 125204 		MOVE	7,[-2]			; initialize mark bit count
  4764	037263	037 00 0 00 125205 		TMSGC	<Mark bit set at:  >
  4765
  4766					; Now obtain CRAM data and check mark bit
  4767
  4768	037264	202 05 0 00 035604 	DLMAR1:	MOVEM	5,CADDR			; set up address to load
  4769	037265	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  4770	037266	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  4771	037267	260 17 0 00 036263 		GO	DRCRAM			; read the data
  4772	037270	200 03 0 00 035606 		MOVE	3,CWORDR		; get right word
  4773	037271	606 03 0 00 000001 		TRNN	3,1			; mark bit set?
  4774	037272	254 00 0 00 037300 		JRST	DLMAR2			; no - continue
  4775
  4776					; Print location
  4777
  4778	037273	350 00 0 00 000007 		AOS	7			; next 5 characters
  4779	037274	303 07 0 00 000007 		CAILE	7,7			; done with line?
  4780						GO	[SETO	7,		; yes - init counter
  4781							 TMSGC	<                  >
  4782	037275	260 17 0 00 125217 			 RTN]
  4783	037276	001 04 0 00 000005 		PNTOCC	4,5			; print address
  4784	037277	037 00 0 00 000040 		PSP				; print a space
  4785
  4786					; Increment to next location
  4787
  4788	037300	037 07 0 00 000003 	DLMAR2:	TTALTM				; altmode key struck?
  4789	037301	334 00 0 00 000000 		SKIPA				; no - proceed
  4790	037302	254 00 0 00 037306 		JRST	DLMARX			; yes - exit
  4791	037303	350 00 0 00 000005 		AOS	5			; increment 'from' address
  4792	037304	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  4793	037305	254 00 0 00 037264 		JRST	DLMAR1			; no - get next address
  4794	037306	037 00 0 00 030242 	DLMARX:	PCRL				; yes - print blank line
  4795	037307	263 17 0 00 000000 		RTN				;   and exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 113
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0276

  4796
  4797					;#********************************************************************
  4798					;* DDPLI - Deposit data to PLI
  4799					;
  4800					; Format:  DPLI cntrl,data,repcount
  4801					;#********************************************************************
  4802
  4803					; Get first argument - control bits
  4804
  4805	037310	200 01 0 00 037517 	DDPLI:	MOVE	1,DPLIH			; get help text
  4806	037311	260 17 0 00 037244*		GO	.OARG			; get address
  4807	037312	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4808						 JRST	[FMSGCD	<? Missing argument>
  4809							 GO	FIOFF
  4810	037313	254 00 0 00 117722 			 RTN]
  4811	037314	331 01 0 00 037247*		SKIPL	1,ARGUM			; get argument
  4812	037315	303 01 0 00 000017 		CAILE	1,17			; in range 0-17?
  4813						JRST	[FMSGCD	<? Range of PLI control bits is 0-17>
  4814							 GO	FIOFF
  4815	037316	254 00 0 00 125232 			 RTN]
  4816	037317	202 01 0 00 037514 		MOVEM	1,PLICTL		; save control bits
  4817
  4818					; Get second argument - data
  4819
  4820	037320	200 01 0 00 037517 	DDPLI0:	MOVE	1,DPLIH			; get help text
  4821	037321	260 17 0 00 037311*		GO	.OARG			; get data
  4822	037322	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4823						 JRST	[FMSGCD	<? Missing argument>
  4824							 GO	FIOFF
  4825	037323	254 00 0 00 117722 			 RTN]
  4826	037324	200 00 0 00 037314*		MOVE	ARGUM			; get argument
  4827	037325	202 00 0 00 037515 		MOVEM	PLIDAT			; save it
  4828
  4829					; Get third argument - repeat count
  4830
  4831	037326	210 01 0 00 037517 		MOVN	1,DPLIH			; get help text
  4832	037327	260 17 0 00 037321*		GO	.OARG			; get data
  4833	037330	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4834	037331	402 00 0 00 037324*		 SETZM	ARGUM			; no argument - set to 0
  4835	037332	200 00 0 00 037331*		MOVE	ARGUM			; get argument
  4836	037333	202 00 0 00 037516 		MOVEM	PLIREP			; save it
  4837	037334	201 00 0 00 000014 		MOVEI	^D12			; get DPLI flag
  4838	037335	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  4839
  4840					; Save CRAM locations
  4841
  4842	037336	200 01 0 00 125235 		MOVE	1,[-4,,7750]		; set up AOBJN word
  4843	037337	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 114
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0277

  4844
  4845					; Insert data into appropriate microwords
  4846
  4847	037340	200 00 0 00 037514 		MOVE	PLICTL			; get control bits
  4848	037341	202 00 0 00 035611 		MOVEM	ANEXT			; save location
  4849	037342	137 00 0 00 125236 		DPB	[POINT 6,DDPLM2,31]	; save control bits
  4850	037343	200 00 0 00 037515 		MOVE	PLIDAT			; get PLI data bits
  4851	037344	137 00 0 00 125237 		DPB	[POINT 10,DDPLIM,35]	; save it in microword
  4852
  4853					; Load microcode
  4854
  4855	037345	201 01 0 00 037367 		MOVEI	1,DDPLIM		; set up microcode address
  4856	037346	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4857	037347	255 00 0 00 000000 		JFCL				; ignore error
  4858
  4859					; Do the deposit
  4860
  4861	037350	201 01 0 00 007750 	DDPLI1:	MOVEI	1,7750			; get start address
  4862	037351	242 01 0 00 000001 		LSH	1,1			; position correctly
  4863	037352	260 17 0 00 037037*		GO	LDRAR			; load the RAR
  4864	037353	201 01 0 00 000010 		MOVEI	1,MPRUN			; set up initial data
  4865	037354	260 17 0 00 037043*		GO	LDCSR			; start the port
  4866	037355	400 01 0 00 000000 		SETZ	1,			; clear AC1
  4867	037356	260 17 0 00 037354*		GO	LDCSR			; stop the port
  4868
  4869					; Check altmode and decrement repeat count
  4870
  4871	037357	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4872	037360	334 00 0 00 000000 		SKIPA				; no - proceed
  4873	037361	254 00 0 00 037364 		JRST	DDPLIX			; yes - exit
  4874	037362	373 00 0 00 037516 		SOSLE	PLIREP			; decrement repeat count - expired?
  4875	037363	254 00 0 00 037350 		JRST	DDPLI1			; no - loop till done
  4876
  4877					; Restore CRAM locations and exit
  4878
  4879	037364	200 01 0 00 125235 	DDPLIX:	MOVE	1,[-^D4,,7750]		; set up AOBJN word
  4880	037365	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4881	037366	263 17 0 00 000000 		RTN				; return
  4882
  4883					; Microword to use to load PLI data
  4884
  4885	037367	775077	510000		DDPLIM:	MWORD	<ADDR=7750,JMAP,J=7751,SD0,OR,D=2,MGC=0,SKCN>	; 7750
  4886	037370	732000	240040
  4887	037371	775100	002040			MWORD	<CONT,S0A,OR,D=1,OENA,MGC=40,SELM>		; 7751
  4888	037372	431000	002340
  4889	037373	775200	000014		DDPLM2:	MWORD	<CONT,D=1,SELP,MGC=14>				; 7752
  4890	037374	001000	001340
  4891	037375	775377	530000			MWORD	<JMAP,J=7753,D=1>				; 7753
  4892	037376	001000	000040
  4893	037377	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 115
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0278

  4894
  4895					;#********************************************************************
  4896					;* DEPLI - Examine PLI registers
  4897					;
  4898					; Format:  EPLI cntrl,repcount
  4899					;#********************************************************************
  4900
  4901	037400	201 00 0 00 000015 	DEPLI:	MOVEI	^D13			; get EPLI flag
  4902	037401	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  4903	037402	402 00 0 00 037516 		SETZM	PLIREP			; initialize repeat count
  4904	037403	200 00 0 00 037514 		MOVE	PLICTL			; get control bits
  4905	037404	202 00 0 00 037332*		MOVEM	ARGUM			; save in argument location
  4906
  4907					; Get control bits
  4908
  4909	037405	200 01 0 00 037520 		MOVE	1,EPLIH			; get help text
  4910	037406	260 17 0 00 037327*		GO	.OARG			; get link control bits
  4911	037407	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4912	037410	255 00 0 00 000000 		 JFCL				; no arguments given - continue
  4913	037411	331 01 0 00 037404*		SKIPL	1,ARGUM			; get argument
  4914	037412	303 01 0 00 000017 		CAILE	1,17			; in range 0-17?
  4915						JRST	[FMSGCD	<? Range of PLI control bits is 0-17>
  4916							 GO	FIOFF
  4917	037413	254 00 0 00 125232 			 RTN]
  4918	037414	202 01 0 00 037514 		MOVEM	1,PLICTL		; save control bits
  4919
  4920					; Get 2nd argument - repeat count
  4921
  4922	037415	210 01 0 00 037520 		MOVN	1,EPLIH			; get help text
  4923	037416	260 17 0 00 037406*		GO	.OARG			; get data
  4924	037417	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4925	037420	402 00 0 00 037411*		SETZM	ARGUM			; no argument - set to 0
  4926	037421	200 00 0 00 037420*		MOVE	ARGUM			; get argument
  4927	037422	202 00 0 00 037516 		MOVEM	PLIREP			; save it
  4928	037423	200 00 0 00 037514 		MOVE	PLICTL			; get control bits
  4929	037424	202 00 0 00 035611 		MOVEM	ANEXT			; save location
  4930
  4931					; Save CRAM locations
  4932
  4933	037425	200 01 0 00 125240 	DEPLI0:	MOVE	1,[-7,,7750]		; set up AOBJN word
  4934	037426	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  4935
  4936					; Set up location and load microcode
  4937
  4938	037427	200 00 0 00 037514 		MOVE	PLICTL			; get control bits
  4939	037430	137 00 0 00 125241 		DPB	[POINT 6,DEPLIM+2,31]	; save it in microword
  4940	037431	201 01 0 00 037475 		MOVEI	1,DEPLIM		; set up microcode address
  4941	037432	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  4942	037433	255 00 0 00 000000 		JFCL				; ignore error
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 116
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0279

  4943
  4944					; Print header
  4945
  4946	037434	200 01 0 00 037514 		MOVE	1,PLICTL		; get control bits
  4947						XCT	[TMSGC	<0-RdReg:>	; print it
  4948							 TMSGC	<1-EnaLnk:>
  4949							 TMSGC	<2-WFBLst:>
  4950							 TMSGC	<3-WXmtBf:>
  4951							 TMSGC	<4-RRecBf:>
  4952							 TMSGC	<5-WtAdrs:>
  4953							 TMSGC	<6-XmtAct:>
  4954							 TMSGC	<7-RdRSta:>
  4955							 TMSGC	<10-ClrRBf:>
  4956							 TMSGC	<11-DsaLnk:>
  4957							 TMSGC	<12-WRBfAd:>
  4958							 TMSGC	<13-RdXSta:>
  4959							 TMSGC	<14-RcXmBf:>
  4960							 TMSGC	<15-RUBLst:>
  4961							 TMSGC	<16-RRcAtn:>
  4962	037435	256 00 0 01 125322 			 TMSGC	<17-WtReg:>](1)
  4963	037436	476 00 0 00 134214'		SETOM	PLINUM#			; clear print count
  4964
  4965					; Do the examine and print results
  4966
  4967	037437	201 01 0 00 007750 	DEPLI1:	MOVEI	1,7750			; get start address
  4968	037440	242 01 0 00 000001 		LSH	1,1			; position correctly
  4969	037441	260 17 0 00 037352*		GO	LDRAR			; load the RAR
  4970	037442	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  4971	037443	260 17 0 00 037356*		GO	LDCSR			; write to CSR register
  4972	037444	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF data
  4973	037445	260 17 0 00 037443*		GO	LDCSR			; write to CSR register
  4974	037446	260 17 0 00 036674*		GO	RDEBUF			; read EBUF contents
  4975	037447	260 17 0 00 000000*		GO	SETLAR			; ensure the LAR can be read
  4976	037450	255 00 0 00 000000 		JFCL				; error - ignore
  4977	037451	350 00 0 00 134214'		AOS	PLINUM			; increment print count
  4978	037452	037 00 0 00 125342 		TMSGC	< >			; start a new line
  4979	037453	200 00 0 00 134214'		MOVE	PLINUM			; get print count
  4980	037454	037 16 0 00 000003 		PNTOCS				; print it
  4981	037455	037 00 0 00 124736 		TMSG	</ >
  4982	037456	135 00 0 00 125343 		LDB	[POINT 8,1,35]		; get PLI data
  4983	037457	037 03 0 00 000000 		PNT3				; print it
  4984	037460	260 17 0 00 035463*		GO	RDLAR			; read LAR
  4985	037461	242 01 0 00 777777 		LSH	1,-1			; right shift 1 bit
  4986	037462	306 01 0 00 007756 		CAIN	1,7756			; parity error occurred?
  4987	037463	037 00 0 00 125344 		TMSG	<(PE on read)>		; yes - print such
  4988	037464	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4989	037465	334 00 0 00 000000 		SKIPA				; no - proceed
  4990	037466	254 00 0 00 037471 		JRST	DEPLIX			; yes - exit
  4991	037467	373 00 0 00 037516 		SOSLE	PLIREP			; decrement count - expired?
  4992	037470	254 00 0 00 037437 		JRST	DEPLI1			; no - loop til done
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 117
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0280

  4993
  4994					; Restore CRAM locations and exit
  4995
  4996	037471	037 00 0 00 030242 	DEPLIX:	PCRL				; print a final CRLF
  4997	037472	200 01 0 00 125240 		MOVE	1,[-7,,7750]		; set up AOBJN word
  4998	037473	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  4999	037474	263 17 0 00 000000 		RTN				; return
  5000
  5001					; Microwords to use to get PLI data
  5002
  5003	037475	775077	510020		DEPLIM:	MWORD	<ADDR=7750,JMAP,J=7751,D=1,SELM,MGC=20>		; 7750
  5004	037476	001000	002040
  5005	037477	775100	000012			MWORD	<CONT,D=1,SELP,MGC=12>				; 7751
  5006	037500	001000	001340
  5007	037501	775200	000300			MWORD	<CONT,SD0,OR,D=2,SELM,MGC=300>			; 7752
  5008	037502	732000	002340
  5009	037503	775300	002004			MWORD	<CONT,S0A,OR,D=1,OENA,SELE,MGC=4>		; 7753
  5010	037504	431000	005340
  5011	037505	775477	560000			MWORD	<CJP,J=7756,D=1,CENA,CCPP>			; 7754
  5012	037506	001400	150060
  5013	037507	775577	550000			MWORD	<JMAP,J=7755,D=1>				; 7755
  5014	037510	001000	000040
  5015	037511	775677	560000			MWORD	<JMAP,J=7756,D=1>				; 7756
  5016	037512	001000	000040
  5017	037513	777777	777777			-1
  5018
  5019					; Arguments
  5020
  5021	037514	000000	000000		PLICTL:	0				; default control bits
  5022	037515	000000	000000		PLIDAT:	0				; PLI data to write
  5023	037516	000000	000000		PLIREP:	0				; repeat count
  5024
  5025					; Help text
  5026
  5027					DPLIH:	FMSGCD <DPLI cntrl,data,repcount (CR) where cntrl is:
  5028					0-RdReg   4-RRecBf  10-ClrRBf  14-RcXmBf
  5029					1-EnaLnk  5-WtAdrs  11-DsaLnk  15-RUBLst
  5030					2-WFBLst  6-XmtAct  12-WRBfAd  16-RRcAtn
  5031	037517	037 01 0 00 125347 	3-WXmtBf  7-RdRSta  13-RdXSta  17-WtReg>
  5032
  5033					EPLIH:	FMSGCD <EPLI cntrl,repcount (CR) where cntrl is:
  5034					0-RdReg   4-RRecBf  10-ClrRBf  14-RcXmBf
  5035					1-EnaLnk  5-WtAdrs  11-DsaLnk  15-RUBLst
  5036					2-WFBLst  6-XmtAct  12-WRBfAd  16-RRcAtn
  5037	037520	037 01 0 00 125423 	3-WXmtBf  7-RdRSta  13-RdXSta  17-WtReg>
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 118
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0281

  5038
  5039					;#********************************************************************
  5040					;* DETBUF - Read transmit buffer
  5041					;#********************************************************************
  5042
  5043	037521	200 01 0 00 125502 	DETBUF:	MOVE	1,[FMSGCD (ETBUFF <CR>)]
  5044	037522	260 17 0 00 035510*		GO	CHKARG			; check for argument
  5045	037523	263 17 0 00 000000 		RTN				; error - exit
  5046
  5047					; Read/print buffer
  5048
  5049	037524	260 17 0 00 037656 		GO	RDBUFT			; read/print it
  5050	037525	263 17 0 00 000000 		RTN				; exit
  5051
  5052
  5053					;#********************************************************************
  5054					;* DERBUF - Read receive buffer
  5055					;#********************************************************************
  5056
  5057	037526	200 01 0 00 125507 	DERBUF:	MOVE	1,[FMSGCD (ERBUFF <CR>)]
  5058	037527	260 17 0 00 037522*		GO	CHKARG			; check for argument
  5059	037530	263 17 0 00 000000 		RTN				; error - exit
  5060
  5061					; Read/print buffer
  5062
  5063	037531	260 17 0 00 037713 		GO	RDBUFR			; read/print it
  5064	037532	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 119
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0282

  5065
  5066					;#********************************************************************
  5067					;* DDUMP - Dump port state
  5068					;#********************************************************************
  5069
  5070	037533	261 17 0 00 000000 	DDUMP:	RPUT	(0,1,2,3,4)		; save AC's
  5071
  5072	037540	476 00 0 00 134250'		SETOM	TSLOAD			; invalidate microcode loaded
  5073
  5074					; Print CSR, EBUF, LAR, 2901 registers, stack
  5075
  5076	037541	037 00 0 00 125510 		TMSGC	<+++++++++++++++ KLNI DUMP +++++++++++++++>
  5077	037542	260 17 0 00 034007*		GO	RDCSR			; read CSR
  5078	037543	255 00 0 00 000000 		JFCL				; error - ignore
  5079	037544	260 17 0 00 042605 		GO	CSRPNT			; print data
  5080	037545	260 17 0 00 035425 		GO	DEBEBU			; print EBUF
  5081	037546	260 17 0 00 035460 		GO	DEBLAR			; print LAR data
  5082	037547	037 00 0 00 125521 		TMSG	<+++++++++++++++ 2901 Registers +++++++++++++++>
  5083	037550	402 00 0 00 134217'		SETZM	RALUB			; set up 'from' location
  5084	037551	201 00 0 00 000020 		MOVEI	20
  5085	037552	202 00 0 00 134220'		MOVEM	RALUE			; set up 'to' location
  5086	037553	260 17 0 00 036343 		GO	DEBALU			; print 2901 registers
  5087	037554	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5088	037555	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5089	037556	037 00 0 00 125533 		TMSG	<+++++++++++++++ 2910 Stack +++++++++++++++>
  5090	037557	260 17 0 00 040420 		GO	DEBSTK			; print stack contents
  5091
  5092					; Print PCB
  5093
  5094	037560	037 00 0 00 125544 		TMSG	<+++++++++++++++ PCB +++++++++++++++>
  5095	037561	260 17 0 00 070747 		GO	PPCB			; print PCB
  5096	037562	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5097	037563	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5098
  5099					; Print queues
  5100
  5101	037564	037 00 0 00 125554 		TMSGC	<+++++++++++++++ Queues +++++++++++++++>
  5102	037565	201 13 0 00 000000 		MOVEI	Q,0			; set up queue number
  5103	037566	260 17 0 00 067305 	DDUMP0:	GO	PQUEUE			; print this queue
  5104	037567	037 00 0 00 030242 		PCRL				; final CRLF
  5105	037570	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5106	037571	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5107	037572	350 00 0 00 000013 		AOS	Q			; point to next queue
  5108	037573	307 13 0 00 000005 		CAIG	Q,5			; done yet?
  5109	037574	254 00 0 00 037566 		JRST	DDUMP0			; no - loop till done
  5110
  5111					; Print local storage
  5112
  5113	037575	037 00 0 00 125565 		TMSG	<+++++++++++++++ Local Storage +++++++++++++++>
  5114	037576	402 00 0 00 134223'		SETZM	RLOCB			; set range of locations
  5115	037577	201 00 0 00 001777 		MOVEI	1777			;   to 0-1777
  5116	037600	202 00 0 00 134224'		MOVEM	RLOCE
  5117	037601	260 17 0 00 036647 		GO	DEBELO			; print local storage
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 120
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0283

  5118	037602	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5119	037603	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5120
  5121					; Print transmit and receive buffers
  5122
  5123	037604	037 00 0 00 125577 		TMSG	<+++++++++++++++ NIA Transmit Buffer +++++++++++++++>
  5124	037605	260 17 0 00 037656 		GO	RDBUFT
  5125	037606	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5126	037607	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5127
  5128	037610	037 00 0 00 125612 		TMSG	<+++++++++++++++ NIA Receive Buffers +++++++++++++++>
  5129	037611	260 17 0 00 037713 		GO	RDBUFR
  5130	037612	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5131	037613	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5132
  5133					; Print logout data (before STORE)
  5134
  5135	037614	037 00 0 00 125625 		TMSGC	<+++++++++++++++ EPT Data +++++++++++++++>
  5136	037615	037 00 0 00 125636 		TMSGC	<Logout data before STOP and STORE:>
  5137	037616	260 17 0 00 037755 		GO	PLOG			; get/print EPT
  5138	037617	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  5139	037620	254 00 0 00 037643 		JRST	DDUMPX			; yes - exit
  5140
  5141					; Print logout data (after STORE)
  5142
  5143	037621	037 00 0 00 125625 		TMSGC	<+++++++++++++++ EPT Data +++++++++++++++>
  5144	037622	037 00 0 00 125646 		TMSGC	<After loading special ucode to do a STOP and STORE:>
  5145	037623	200 01 0 00 125101 		MOVE	1,[-2,,7750]		; set up AOBJN word
  5146	037624	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  5147	037625	201 01 0 00 037651 		MOVEI	1,DDUMPM		; set up microcode address
  5148	037626	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  5149	037627	255 00 0 00 000000 		JFCL				; ignore error
  5150	037630	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5151	037631	242 01 0 00 000001 		LSH	1,1			; position correctly
  5152	037632	260 17 0 00 037441*		GO	LDRAR			; load the RAR
  5153	037633	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  5154	037634	260 17 0 00 037445*		GO	LDCSR			; write to CSR register
  5155	037635	400 01 0 00 000000 		SETZ	1,			; stop the port
  5156	037636	260 17 0 00 037634*		GO	LDCSR
  5157	037637	200 01 0 00 125101 		MOVE	1,[-2,,7750]		; set up AOBJN word
  5158	037640	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  5159	037641	260 17 0 00 037755 		GO	PLOG			; get/print EPT
  5160	037642	037 00 0 00 125661 		TMSGCD	<+++++++++++++++ End of KLIPA DUMP +++++++++++++++>
  5161	037643	262 17 0 00 000004 	DDUMPX:	RGET	(4,3,2,1,0)		; restore AC's
  5162
  5163	037650	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 121
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0284

  5164
  5165					; Microcode to do a STORE
  5166
  5167	037651	775077	510140		DDUMPM:	MWORD	<ADDR=7750,JMAP,J=7751,SELC,MGC=140>	; 7750
  5168	037652	000000	004040
  5169	037653	775177	510000			MWORD	<JMAP,J=7751>				; 7751
  5170	037654	000000	000040
  5171	037655	777777	777777			-1
  5172
  5173
  5174					;#********************************************************************
  5175					;* RDBUFT - Read transmit buffer (80 bytes only)
  5176					;#********************************************************************
  5177
  5178	037656	261 17 0 00 000000 	RDBUFT:	RPUT	(0,1,2,3)		; save AC's
  5179
  5180	037662	260 17 0 00 037261*		GO	ISTOP			; stop the port
  5181	037663	037 00 0 00 125674 		TMSGC	<Transmit Buffer:  >
  5182	037664	201 01 0 00 000006 		MOVEI	1,6			; get code for 'XMT Action'
  5183	037665	201 02 0 00 000001 		MOVEI	2,1			; get data 'Reset TxBuf Adrs'
  5184	037666	260 17 0 00 040126 		GO	WRTPLI			; write over PLI
  5185	037667	201 01 0 00 000005 		MOVEI	1,5			; get code for 'Wt Adrs'
  5186	037670	201 02 0 00 000020 		MOVEI	2,20			; get data 'Xmt Buffer Rd'
  5187	037671	260 17 0 00 040126 		GO	WRTPLI			; write over PLI
  5188	037672	201 03 0 00 000120 		MOVEI	3,^D80			; print only 80 bytes
  5189	037673	315 03 0 00 033706 		CAMGE	3,DSPRIN		; more than words to print?
  5190	037674	200 03 0 00 033706 		MOVE	3,DSPRIN		; no - get words to print
  5191	037675	260 17 0 00 040054 	RDBUF1:	GO	RDBF			; read buffer data
  5192	037676	200 00 0 00 000001 		MOVE	1			; get into AC0
  5193	037677	037 03 0 00 000000 		PNT3				; print it out
  5194	037700	200 00 0 00 000003 		MOVE	3			; get into AC0
  5195	037701	275 00 0 00 000006 		SUBI	6
  5196	037702	231 00 0 00 000017 		IDIVI	^D15
  5197						JUMPE	1,[TMSGC  <                  >
  5198	037703	322 01 0 00 125701 			   JRST	  .+1]
  5199	037704	367 03 0 00 037675 		SOJG	3,RDBUF1		; loop till done
  5200	037705	037 00 0 00 030242 		PCRL				; final CRLF
  5201	037706	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  5202
  5203	037712	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 122
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0285

  5204
  5205					;#********************************************************************
  5206					;* RDBUFR - Read transmit buffers
  5207					;#********************************************************************
  5208
  5209	037713	261 17 0 00 000000 	RDBUFR:	RPUT	(0,1,2,3,4)		; save AC's
  5210
  5211						TMSGC	<('SET PRINT n' to print n bytes)
  5212					Receive  Byte
  5213					Buffer#   0   1   2   3   4   5   6   7   10  11  12  13  14  15  16  17
  5214	037720	037 00 0 00 125703 	-------  --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --->
  5215	037721	474 04 0 00 000000 		SETO	4,			; initialize buffer count
  5216	037722	350 00 0 00 000004 	RDBUF2:	AOS	4			; point to next buffer
  5217	037723	301 04 0 00 000040 		CAIL	4,^D32			; done yet?
  5218	037724	254 00 0 00 037746 		JRST	RDBUFX			; yes - exit
  5219	
  5220					; Print a buffer
  5221
  5222	037725	260 17 0 00 033750*		GO	IPACLR			; do a 'port clear'
  5223	037726	037 00 0 00 125753 		TMSGC	<  #>
  5224	037727	001 02 0 00 000004 		PNTOCC	2,4			; print buffer number
  5225	037730	037 00 0 00 125755 		TMSG	<:   >
  5226	037731	201 01 0 00 000012 		MOVEI	1,12			; get code for 'Write RecBuf Adrs'
  5227	037732	200 02 0 00 000004 		MOVE	2,4			; get buffer address
  5228	037733	242 02 0 00 000001 		LSH	2,1			; left shift properly
  5229	037734	260 17 0 00 040126 		GO	WRTPLI			; write over PLI
  5230	037735	201 03 0 00 000020 		MOVEI	3,^D16			; print only 16 bytes
  5231	037736	315 03 0 00 033706 		CAMGE	3,DSPRIN		; more than words to print?
  5232	037737	200 03 0 00 033706 		MOVE	3,DSPRIN		; no - get words to print
  5233	037740	260 17 0 00 040101 	RDBUF3:	GO	RRDBF			; read receive buffer
  5234	037741	200 00 0 00 000001 		MOVE	1			; get into AC0
  5235	037742	037 03 0 00 000000 		PNT3				; print it out
  5236	037743	367 03 0 00 037740 		SOJG	3,RDBUF3		; loop till done
  5237	037744	037 07 0 00 000003 		TTALTM				; check for altmode typed
  5238	037745	254 00 0 00 037722 		JRST	RDBUF2			; loop on buffer number
  5239
  5240					; Exit
  5241
  5242	037746	037 00 0 00 030242 	RDBUFX:	PCRL
  5243	037747	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  5244
  5245	037754	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 123
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0286

  5246
  5247					;#********************************************************************
  5248					;* PLOG - Obtain EPT logout data
  5249					;#********************************************************************
  5250
  5251	037755	200 01 0 00 125756 	PLOG:	MOVE	1,[-^D14,,0]		; set up AOBJN word
  5252	037756	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  5253	037757	201 01 0 00 040017 		MOVEI	1,PLOGM			; get microcode address
  5254	037760	260 17 0 00 064353 		GO	MLOADN			; load the microcode
  5255	037761	255 00 0 00 000000 		JFCL
  5256
  5257					; Start it up and give the port the address to read
  5258
  5259	037762	400 01 0 00 000000 		SETZ	1,			; get start address
  5260	037763	260 17 0 00 037632*		GO	LDRAR			; load the register
  5261	037764	201 01 0 00 000010 		MOVEI	1,MPRUN			; set initial data
  5262	037765	260 17 0 00 037636*		GO	LDCSR
  5263	037766	135 01 0 00 120111 		LDB	1,[POINT 3,MBCN,9]	; get channel number
  5264	037767	200 01 0 01 000000*		MOVE	1,ICWA0(1)		; get ICWA for channel
  5265	037770	200 03 0 00 000001 		MOVE	3,1			; get into AC3 also
  5266	037771	336 00 0 00 134255'		SKIPN	UDEBUG			; user mode?
  5267	037772	7 010 24 0 00 000002 		CONI	PAG,2			; no - get page number of EPT
  5268	037773	242 02 0 00 000011 		LSH	2,9			; position correctly
  5269	037774	621 02 0 00 777777 		TLZ	2,777777		; clear left half
  5270	037775	270 01 0 00 000002 		ADD	1,2			; add in EPT offset
  5271	037776	434 01 0 00 125757 		IOR	1,[440000,,0]		; include IOP function
  5272	037777	260 17 0 00 036754*		GO	.DATAO			; do the first DATAO
  5273	040000	201 02 0 00 000004 		MOVEI	2,4			; number of locations to read
  5274	040001	037 00 0 00 125760 	PLOG0:	TMSGC	<EPT+>
  5275	040002	200 00 0 00 000003 		MOVE	3			; get offset
  5276	040003	037 02 0 00 000000 		PNT2				; print it
  5277	040004	260 17 0 00 000000*		GO	.DATAI			; get the data
  5278	040005	200 00 0 00 000001 		MOVE	1			; get into AC0
  5279	040006	037 13 0 00 000000 		PNTHW				; print it
  5280	040007	005 00 0 00 000001 		DELAY	1			; wait 1 millisecond
  5281	040010	350 00 0 00 000003 		AOS	3			; point to next offset
  5282	040011	367 02 0 00 040001 		SOJG	2,PLOG0			; done yet - no - loop till done
  5283	040012	400 01 0 00 000000 		SETZ	1,
  5284	040013	260 17 0 00 037765*		GO	LDCSR			; stop the port
  5285
  5286					; Done
  5287
  5288	040014	200 01 0 00 125756 		MOVE	1,[-^D14,,0]		; set up AOBJN word
  5289	040015	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  5290	040016	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 124
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0287

  5291
  5292					; Microcode
  5293
  5294	040017	000000	010000		PLOGM:	MWORD	<ADDR=0,JMAP,J=1>			; 0
  5295	040020	000000	000040
  5296	040021	000100	030000			MWORD	<CJP,J=3,CENA,CCER>			; 1
  5297	040022	000400	100060
  5298	040023	000200	010000			MWORD	<JMAP,J=1>				; 2
  5299	040024	000000	000040
  5300	040025	000301	000010			MWORD	<LDCT,J=100,SD0,B=16,OR,D=2,SELE,MGC=10>; 3
  5301	040026	732007	005300
  5302
  5303	040027	000400	042004			MWORD	<RPCT,J=4,S0A,A=16,OR,D=1,OENA,SELE,MGC=4>
  5304	040030	431160	005220
  5305	040031	000501	000001			MWORD	<LDCT,J=100,SELE,MGC=1>			; 5 (Ex/Dep int)
  5306	040032	000000	005300
  5307	040033	000600	100000			MWORD	<CJP,J=10,D=1,CENA,CCER>		; 6
  5308	040034	001400	100060
  5309	040035	000700	060000			MWORD	<JMAP,J=6,D=1>				; 7
  5310	040036	001000	000040
  5311	040037	001000	000010			MWORD	<CONT,SD0,B=17,OR,D=2,SELE,MGC=10>	; 10
  5312	040040	732007	405340
  5313	040041	001100	112004			MWORD	<RPCT,J=11,S0A,OR,A=17,D=2,OENA,SELE,MGC=4>
  5314	040042	432170	005220
  5315	040043	001200	140000			MWORD	<CJP,J=14,D=1,CENA,CCER>		; 12
  5316	040044	001400	100060
  5317	040045	001300	120000			MWORD	<JMAP,J=12,D=1>				; 13
  5318	040046	001000	000040
  5319	040047	001401	000020			MWORD	<LDCT,J=100,SELE,MGC=20> 		; 14
  5320	040050	000000	005300
  5321	040051	001500	040000			MWORD	<JMAP,J=4,S0B,PLUS,D=2,B=16,CRY>	; 15
  5322	040052	302007	000440
  5323	040053	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 125
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0288

  5324
  5325					;#********************************************************************
  5326					; RDBF - Read a buffer location (AC1 contains data)
  5327					;#********************************************************************
  5328
  5329	040054	200 01 0 00 125240 	RDBF:	MOVE	1,[-7,,7750]		; set up AOBJN word
  5330	040055	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  5331	040056	201 01 0 00 000000 		MOVEI	1,0			; get link control bits (RDREG)
  5332	040057	137 01 0 00 125241 		DPB	1,[POINT 6,DEPLIM+2,31]	; save it in microword
  5333	040060	201 01 0 00 037475 		MOVEI	1,DEPLIM		; set up microcode address
  5334	040061	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  5335	040062	255 00 0 00 000000 		JFCL				; ignore error
  5336	040063	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5337	040064	242 01 0 00 000001 		LSH	1,1			; position correctly
  5338	040065	260 17 0 00 037763*		GO	LDRAR			; load the RAR
  5339	040066	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  5340	040067	260 17 0 00 040013*		GO	LDCSR			; write to CSR register
  5341	040070	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF data
  5342	040071	260 17 0 00 040067*		GO	LDCSR			; write to CSR register
  5343	040072	260 17 0 00 037446*		GO	RDEBUF			; read EBUF contents
  5344	040073	405 01 0 00 000377 		ANDI	1,377			; get rid of misc bits
  5345	040074	261 17 0 00 000001 		PUT	1			; save data
  5346	040075	200 01 0 00 125240 		MOVE	1,[-7,,7750]		; set up AOBJN word
  5347	040076	260 17 0 00 042752 		GO	RESCRM			; save the CRAM locations
  5348	040077	262 17 0 00 000001 		GET	1			; restore data
  5349	040100	263 17 0 00 000000 		RTN				; return
  5350
  5351					;#********************************************************************
  5352					; RRDBF - Read a receive buffer location (AC1 contains data)
  5353					;#********************************************************************
  5354
  5355	040101	200 01 0 00 125240 	RRDBF:	MOVE	1,[-7,,7750]		; set up AOBJN word
  5356	040102	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  5357	040103	201 01 0 00 000004 		MOVEI	1,4			; get link control bits (RDBUFF)
  5358	040104	137 01 0 00 125241 		DPB	1,[POINT 6,DEPLIM+2,31]	; save it in microword
  5359	040105	201 01 0 00 037475 		MOVEI	1,DEPLIM		; set up microcode address
  5360	040106	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  5361	040107	255 00 0 00 000000 		JFCL				; ignore error
  5362	040110	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5363	040111	242 01 0 00 000001 		LSH	1,1			; position correctly
  5364	040112	260 17 0 00 040065*		GO	LDRAR			; load the RAR
  5365	040113	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  5366	040114	260 17 0 00 040071*		GO	LDCSR			; write to CSR register
  5367	040115	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF data
  5368	040116	260 17 0 00 040114*		GO	LDCSR			; write to CSR register
  5369	040117	260 17 0 00 040072*		GO	RDEBUF			; read EBUF contents
  5370	040120	405 01 0 00 000377 		ANDI	1,377			; get rid of misc bits
  5371	040121	261 17 0 00 000001 		PUT	1			; save data
  5372	040122	200 01 0 00 125240 		MOVE	1,[-7,,7750]		; set up AOBJN word
  5373	040123	260 17 0 00 042752 		GO	RESCRM			; save the CRAM locations
  5374	040124	262 17 0 00 000001 		GET	1			; restore data
  5375	040125	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 126
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0289

  5376
  5377					;#********************************************************************
  5378					; WRTPLI - Deposit PLI (AC1,2 contain Control/Data bits)
  5379					;#********************************************************************
  5380
  5381	040126	261 17 0 00 000000 	WRTPLI:	RPUT	(0,1,2)			; save AC's
  5382
  5383	040131	200 01 0 00 125235 		MOVE	1,[-4,,7750]		; set up AOBJN word
  5384	040132	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  5385	040133	200 00 0 17 777777 		MOVE	-1(P)			; get link control bits
  5386	040134	137 00 0 00 125236 		DPB	[POINT 6,DDPLM2,31]	; save link control bits
  5387	040135	200 00 0 17 000000 		MOVE	(P)			; get PLI data bits
  5388	040136	137 00 0 00 125237 		DPB	[POINT 10,DDPLIM,35]	; save it in microword
  5389	040137	201 01 0 00 037367 		MOVEI	1,DDPLIM		; set up microcode address
  5390	040140	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  5391	040141	255 00 0 00 000000 		JFCL				; ignore error
  5392	040142	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5393	040143	242 01 0 00 000001 		LSH	1,1			; position correctly
  5394	040144	260 17 0 00 040112*		GO	LDRAR			; load the RAR
  5395	040145	201 01 0 00 000010 		MOVEI	1,MPRUN			; set up initial data
  5396	040146	260 17 0 00 040116*		GO	LDCSR			; start the port
  5397	040147	400 01 0 00 000000 		SETZ	1,			; clear AC1
  5398	040150	260 17 0 00 040146*		GO	LDCSR			; stop the port
  5399	040151	200 01 0 00 125235 		MOVE	1,[-4,,7750]		; set up AOBJN word
  5400	040152	260 17 0 00 042752 		GO	RESCRM			; restore the CRAM locations
  5401	040153	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  5402
  5403	040156	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 127
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0290

  5404
  5405					;#********************************************************************
  5406					;* DENEXT - Examine next
  5407					;#********************************************************************
  5408
  5409	040157	402 00 0 00 037421*	DENEXT:	SETZM	ARGUM			; default to repeat count
  5410	040160	350 00 0 00 040157*		AOS	ARGUM			;   of 1
  5411	040161	200 01 0 00 125772 		MOVE	1,[FMSGCD (ENEXT repcount <CR> or ENEXT <CR>)]
  5412	040162	260 17 0 00 037003*		GO	.DARG			; get repeat count
  5413	040163	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5414	040164	255 00 0 00 000000 		 JFCL				; no argument given
  5415	040165	200 00 0 00 040160*		MOVE	ARGUM			; get argument
  5416
  5417					; Do the examine
  5418
  5419	040166	476 00 0 00 134174'	DENE0:	SETOM	MULFLG			; set 'multiple examine' flag
  5420	040167	200 00 0 00 040165*		MOVE	ARGUM			; get argument
  5421	040170	307 00 0 00 000001 		CAIG	1			; only one more repetition?
  5422	040171	402 00 0 00 134174'		SETZM	MULFLG			; yes - clear 'multiple examine' flag
  5423	040172	200 01 0 00 134152'		MOVE	1,DFLAG			; get last operation done
  5424	040173	554 00 0 01 040204 		HLRZ	DETAB(1)		; get new value of DFLAG
  5425	040174	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  5426	040175	550 02 0 01 040204 		HRRZ	2,DETAB(1)		; get dispatch address
  5427	040176	260 17 0 02 000000 		GO	(2)			; dispatch
  5428	040177	336 00 0 00 134143'		SKIPN	ALTF			; altmode typed?
  5429	040200	377 00 0 00 040167*		SOSG	ARGUM			; repeat count exhausted?
  5430	040201	263 17 0 00 000000 		RTN				; yes - exit
  5431	040202	402 00 0 00 134175'		SETZM	MULINI			; clear 'initial examine' flag
  5432	040203	254 00 0 00 040166 		JRST	DENE0			; no - loop till done
  5433
  5434					; Dispatch table
  5435
  5436	040204	000000	040222		DETAB:	0,,DENEX0			; ECRAM
  5437	040205	000000	040222			0,,DENEX0			; DCRAM
  5438	040206	000000	040222			0,,DENEX0			; BCRAM
  5439	040207	000000	040222			0,,DENEX0			; ACRAM
  5440	040210	000000	040222			0,,DENEX0			; ZCRAM
  5441	040211	000005	040222			5,,DENEX0			; LCRAM
  5442	040212	000006	040226			6,,DENEX1			; E2901
  5443	040213	000006	040226			6,,DENEX1			; D2901
  5444	040214	000006	040226			6,,DENEX1			; Z2901
  5445	040215	000011	040232			9,,DENEX2			; ELOCS
  5446	040216	000011	040232			9,,DENEX2			; DLOCS
  5447	040217	000011	040232			9,,DENEX2			; ZLOCS
  5448	040220	000015	040236			^D13,,DENEX3			; DPLI
  5449	040221	000015	040236			^D13,,DENEX3			; EPLI
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 128
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0291

  5450
  5451					; To handle CRAM examine ...
  5452
  5453	040222	200 00 0 00 035611 	DENEX0:	MOVE	ANEXT			; get address
  5454	040223	202 00 0 00 035603 		MOVEM	CRAMTO			; set up 'to' and 'from'
  5455	040224	202 00 0 00 035602 		MOVEM	CRAMFR			;   addresses
  5456	040225	254 00 0 00 035562 		PJRST	DCOM0			; go handle
  5457
  5458					; To handle 2901 registers
  5459
  5460	040226	200 00 0 00 035611 	DENEX1:	MOVE	ANEXT			; get register number
  5461	040227	202 00 0 00 134217'		MOVEM	RALUB			; save in 'from' location
  5462	040230	202 00 0 00 134220'		MOVEM	RALUE			; save in 'to' location
  5463	040231	254 00 0 00 036325 		PJRST	DEALU0			; go handle
  5464
  5465					; To handle local storage
  5466
  5467	040232	200 00 0 00 035611 	DENEX2:	MOVE	ANEXT			; get address
  5468	040233	202 00 0 00 134223'		MOVEM	RLOCB			; save in 'from' location
  5469	040234	202 00 0 00 134224'		MOVEM	RLOCE			; save in 'to' location
  5470	040235	254 00 0 00 036631 		PJRST	DELOC0			; go handle
  5471
  5472					; To handle PLI registers
  5473
  5474	040236	200 00 0 00 035611 	DENEX3:	MOVE	ANEXT			; get register number
  5475	040237	202 00 0 00 037516 		MOVEM	PLIREP			; save in argument location
  5476	040240	254 00 0 00 037425 		PJRST	DEPLI0			; go handle
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 129
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0292

  5477
  5478					;#********************************************************************
  5479					;* DDNEXT - Deposit next
  5480					;#********************************************************************
  5481
  5482	040241	200 01 0 00 134152'	DDNEXT:	MOVE	1,DFLAG			; get last operation done
  5483	040242	554 00 0 01 040246 		HLRZ	DDTAB(1)		; get new value of DFLAG
  5484	040243	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  5485	040244	550 02 0 01 040246 		HRRZ	2,DDTAB(1)		; get dispatch address
  5486	040245	254 00 0 02 000000 		JRST	(2)			; dispatch
  5487
  5488					; Dispatch table
  5489
  5490	040246	000001	040267		DDTAB:	1,,DDNEX0			; ECRAM
  5491	040247	000001	040267			1,,DDNEX0			; DCRAM
  5492	040250	000002	040267			2,,DDNEX0			; BCRAM
  5493	040251	000003	040267			3,,DDNEX0			; ACRAM
  5494	040252	000003	040267			3,,DDNEX0			; ZCRAM
  5495	040253	000003	040267			3,,DDNEX0			; LCRAM
  5496	040254	000007	040276			7,,DDNEX1			; E2901
  5497	040255	000007	040276			7,,DDNEX1			; D2901
  5498	040256	000007	040276			7,,DDNEX1			; Z2901
  5499	040257	000012	040303			^D10,,DDNEX2			; ELOCS
  5500	040260	000012	040303			^D10,,DDNEX2			; DLOCS
  5501	040261	000012	040303			^D10,,DDNEX2			; ZLOCS
  5502	040262	000014	040310			^D12,,DDNEX3			; DPLI
  5503	040263	000014	040310			^D12,,DDNEX3			; EPLI
  5504	040264	000016	040313			^D14,,DDNEX4			; DEPPTT
  5505	040265	000017	040316			^D15,,DDNEX5			; DEPMUL
  5506	040266	000020	040321			^D16,,DDNEX6			; DEPPAK
  5507	
  5508					; To handle CRAM deposit ...
  5509
  5510	040267	200 01 0 00 125776 	DDNEX0:	MOVE	1,[FMSGCD (DNEXT <CR>)]
  5511	040270	260 17 0 00 037527*		GO	CHKARG			; check for argument
  5512	040271	263 17 0 00 000000 		RTN				; error - exit
  5513	040272	200 00 0 00 035611 		MOVE	ANEXT			; get address
  5514	040273	202 00 0 00 035603 		MOVEM	CRAMTO			; set up 'to' and 'from'
  5515	040274	202 00 0 00 035602 		MOVEM	CRAMFR			;   addresses
  5516	040275	254 00 0 00 035562 		PJRST	DCOM0			; go handle
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 130
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0293

  5517
  5518					; To handle 2901 registers
  5519
  5520	040276	200 00 0 00 035611 	DDNEX1:	MOVE	ANEXT			; get register number
  5521	040277	202 00 0 00 134217'		MOVEM	RALUB			; save in 'from' location
  5522	040300	202 00 0 00 134220'		MOVEM	RALUE			; save in 'to' location
  5523	040301	202 00 0 00 040200*		MOVEM	ARGUM			; save it
  5524	040302	254 00 0 00 036416 		PJRST	DDALU0			; go handle
  5525
  5526					; To handle local storage
  5527
  5528	040303	200 00 0 00 035611 	DDNEX2:	MOVE	ANEXT			; get address
  5529	040304	202 00 0 00 134223'		MOVEM	RLOCB			; save in 'from' location
  5530	040305	202 00 0 00 134224'		MOVEM	RLOCE			; save in 'to' location
  5531	040306	202 00 0 00 040301*		MOVEM	ARGUM			; save it
  5532	040307	254 00 0 00 036717 		PJRST	DDLOC0			; go handle
  5533
  5534					; To handle PLI registers
  5535
  5536	040310	200 00 0 00 035611 	DDNEX3:	MOVE	ANEXT			; get register number
  5537	040311	202 00 0 00 040306*		MOVEM	ARGUM			; save in argument location
  5538	040312	254 00 0 00 037320 		PJRST	DDPLI0			; go handle
  5539
  5540					; To handle DEPPTT
  5541
  5542	040313	200 00 0 00 035611 	DDNEX4:	MOVE	ANEXT			; get location
  5543	040314	202 00 0 00 040311*		MOVEM	ARGUM			; save in argument location
  5544	040315	254 00 0 00 040330 		PJRST	DDPPT0			; go handle
  5545
  5546					; To handle DEPMUL
  5547
  5548	040316	200 00 0 00 035611 	DDNEX5:	MOVE	ANEXT			; get location
  5549	040317	202 00 0 00 040314*		MOVEM	ARGUM			; save in argument location
  5550	040320	254 00 0 00 040353 		PJRST	DDPMU0			; go handle
  5551
  5552					; To handle DEPPAK
  5553
  5554	040321	200 00 0 00 035611 	DDNEX6:	MOVE	ANEXT			; get location
  5555	040322	202 00 0 00 040317*		MOVEM	ARGUM			; save in argument location
  5556	040323	254 00 0 00 040376 		PJRST	DDPPA0			; go handle
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 131
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0294

  5557
  5558					;#********************************************************************
  5559					;* DDPPTT - Deposit into PTT table
  5560					;
  5561					; Format:  DEPPTT adr,data
  5562					;#********************************************************************
  5563
  5564	040324	200 01 0 00 126005 	DDPPTT:	MOVE	1,[FMSGCD <DEPPTT offset,data (CR)>]
  5565	040325	260 17 0 00 040162*		GO	.DARG			; get address
  5566	040326	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5567						 JRST	[FMSGCD	<? Missing argument>
  5568							 GO	FIOFF
  5569	040327	254 00 0 00 117722 			 RTN]
  5570	040330	200 02 0 00 040322*	DDPPT0:	MOVE	2,ARGUM			; get argument
  5571	040331	301 02 0 00 000000 		CAIL	2,0			; in range 0-47?
  5572	040332	303 02 0 00 000047 		CAILE	2,47
  5573						JRST	[FMSGCD	<? Range of PTT locations is 0-47>
  5574							 GO	FIOFF
  5575	040333	254 00 0 00 126016 			 RTN]
  5576	040334	210 01 0 00 126005 		MOVN	1,[FMSGCD <DEPPTT offset,data (CR)>]
  5577	040335	260 17 0 00 037416*		GO	.OARG			; get data
  5578	040336	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5579						 JRST	[FMSGCD	<? Missing argument>
  5580							 GO	FIOFF
  5581	040337	254 00 0 00 117722 			 RTN]
  5582
  5583					; Do the deposit
  5584
  5585	040340	200 00 0 00 040330*		MOVE	ARGUM			; get argument
  5586	040341	202 00 0 02 105000 		MOVEM	PTABLE(2)		; save the data
  5587	040342	202 02 0 00 035611 		MOVEM	2,ANEXT			; save location
  5588	040343	350 00 0 00 035611 		AOS	ANEXT			; point to next location
  5589	040344	201 00 0 00 000016 		MOVEI	^D14			; get DEPMUL flag
  5590	040345	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  5591	040346	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 132
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0295

  5592
  5593					;#********************************************************************
  5594					;* DDPMUL - Deposit into Multicast table
  5595					;
  5596					; Format:  DEPMUL adr,data
  5597					;#********************************************************************
  5598
  5599	040347	200 01 0 00 126027 	DDPMUL:	MOVE	1,[FMSGCD <DEPMUL offset,data (CR)>]
  5600	040350	260 17 0 00 040325*		GO	.DARG			; get address
  5601	040351	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5602						 JRST	[FMSGCD	<? Missing argument>
  5603							 GO	FIOFF
  5604	040352	254 00 0 00 117722 			 RTN]
  5605	040353	200 02 0 00 040340*	DDPMU0:	MOVE	2,ARGUM			; get argument
  5606	040354	301 02 0 00 000000 		CAIL	2,0			; in range 0-17?
  5607	040355	303 02 0 00 000017 		CAILE	2,17
  5608						JRST	[FMSGCD	<? Range of Multi-cast locations is 0-17>
  5609							 GO	FIOFF
  5610	040356	254 00 0 00 126041 			 RTN]
  5611	040357	210 01 0 00 126027 		MOVN	1,[FMSGCD <DEPMUL offset,data (CR)>]
  5612	040360	260 17 0 00 040335*		GO	.OARG			; get data
  5613	040361	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5614						 JRST	[FMSGCD	<? Missing argument>
  5615							 GO	FIOFF
  5616	040362	254 00 0 00 117722 			 RTN]
  5617
  5618					; Do the deposit
  5619
  5620	040363	200 00 0 00 040353*		MOVE	ARGUM			; get argument
  5621	040364	202 00 0 02 115320 		MOVEM	MTABLE(2)		; save the data
  5622	040365	202 02 0 00 035611 		MOVEM	2,ANEXT			; save location
  5623	040366	350 00 0 00 035611 		AOS	ANEXT			; point to next location
  5624	040367	201 00 0 00 000017 		MOVEI	^D15			; get DEPMUL flag
  5625	040370	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  5626	040371	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 133
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0296

  5627
  5628					;#********************************************************************
  5629					;* DDPPAK - Deposit into packet
  5630					;
  5631					; Format:  DEPPAK adr,data
  5632					;#********************************************************************
  5633
  5634	040372	200 01 0 00 126052 	DDPPAK:	MOVE	1,[FMSGCD <DEPPAK offset,data (CR)>]
  5635	040373	260 17 0 00 040350*		GO	.DARG			; get address
  5636	040374	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5637						 JRST	[FMSGCD	<? Missing argument>
  5638							 GO	FIOFF
  5639	040375	254 00 0 00 117722 			 RTN]
  5640	040376	200 02 0 00 040363*	DDPPA0:	MOVE	2,ARGUM			; get argument
  5641	040377	301 02 0 00 000000 		CAIL	2,0			; in range 0-99.?
  5642	040400	303 02 0 00 000143 		CAILE	2,^D99
  5643						JRST	[FMSGCD	<? Range of PACKET locations is 0-99.>
  5644							 GO	FIOFF
  5645	040401	254 00 0 00 126064 			 RTN]
  5646	040402	210 01 0 00 126052 		MOVN	1,[FMSGCD <DEPPAK offset,data (CR)>]
  5647	040403	260 17 0 00 040360*		GO	.OARG			; get data
  5648	040404	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5649						 JRST	[FMSGCD	<? Missing argument>
  5650							 GO	FIOFF
  5651	040405	254 00 0 00 117722 			 RTN]
  5652
  5653					; Do the deposit
  5654
  5655	040406	200 00 0 00 040376*		MOVE	ARGUM			; get argument
  5656	040407	202 00 0 02 072114 		MOVEM	PACKET(2)		; save the data
  5657	040410	202 02 0 00 035611 		MOVEM	2,ANEXT			; save location
  5658	040411	350 00 0 00 035611 		AOS	ANEXT			; point to next location
  5659	040412	201 00 0 00 000020 		MOVEI	^D16			; get DEPPAK flag
  5660	040413	202 00 0 00 134152'		MOVEM	DFLAG			; save it
  5661	040414	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 134
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0297

  5662
  5663					;#********************************************************************
  5664					;* DESTAK - examine 2910 stack
  5665					;#********************************************************************
  5666
  5667	040415	200 01 0 00 126073 	DESTAK:	MOVE	1,[FMSGCD (ESTACK <CR>)]
  5668	040416	260 17 0 00 040270*		GO	CHKARG			; check for argument
  5669	040417	263 17 0 00 000000 		RTN				; error - exit
  5670	040420	200 01 0 00 125020 	DEBSTK:	MOVE	1,[-1,,7750]		; set up AOBJN word
  5671	040421	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  5672	040422	201 01 0 00 040452 		MOVEI	1,DESTKM		; set up microcode address
  5673	040423	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  5674	040424	255 00 0 00 000000 		JFCL				; ignore error
  5675
  5676					; Do the task
  5677
  5678	040425	260 17 0 00 037662*		GO	ISTOP			; stop the port
  5679	040426	037 00 0 00 126074 		TMSGC	<2910 Stack:>
  5680	040427	037 00 0 00 126077 		TMSGC	< Location   Contents (addr)>
  5681	040430	474 04 0 00 000000 		SETO	4,			; initialize location pointer
  5682	040431	350 00 0 00 000004 	DESTA0:	AOS	4			; point to next location
  5683	040432	303 04 0 00 000004 		CAILE	4,4			; done yet?
  5684	040433	254 00 0 00 040446 		JRST	DESTAX			; yes - exit
  5685	040434	402 00 0 00 035416*		SETZM	SDATA			; get initial CSR data
  5686	040435	201 00 0 00 007750 		MOVEI	7750			; set up next address
  5687	040436	202 00 0 00 035373*		MOVEM	SNEXT			;   for IPASST
  5688	040437	260 17 0 00 034057*		GO	IPASST			; single step once
  5689						 JRST	[FMSGCD	<? Error accessing CSR register>
  5690							 GO	FIOFF
  5691	040440	254 00 0 00 126105 			 JRST	DESTAY]
  5692						 JRST	[FMSGCD	<? Port not stopped>
  5693							 GO	FIOFF
  5694	040441	254 00 0 00 126110 			 JRST	DESTAY]
  5695	040442	255 00 0 00 000000 		 JFCL				; error bits set in CSR
  5696						XCT	[TMSGC	<   Top  >
  5697							 TMSGC	<    -1  >
  5698							 TMSGC	<    -2  >
  5699							 TMSGC	<    -3  >
  5700	040443	256 00 0 04 126132 			 TMSGC	<    -4  >](4)
  5701	040444	001 12 0 00 040436*		PNTOCC	12,SNEXT		; print address
  5702	040445	254 00 0 00 040431 		JRST	DESTA0			; loop till done
  5703
  5704					; Restore CRAM location/exit
  5705
  5706	040446	037 00 0 00 030242 	DESTAX:	PCRL
  5707	040447	200 01 0 00 125020 	DESTAY:	MOVE	1,[-1,,7750]		; set up AOBJN word
  5708	040450	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  5709	040451	263 17 0 00 000000 		RTN				; return
  5710
  5711					; Microcode
  5712
  5713	040452	775000	000000		DESTKM:	MWORD	<ADDR=7750,CRTN,D=1>	; 7750
  5714	040453	001000	000240
  5715	040454	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 135
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0298

  5716
  5717					;#********************************************************************
  5718					;* DBREAK - Set breakpoint
  5719					;
  5720					; A breakpoint is set by reading the particular CRAM location  and
  5721					; rewriting it with bad parity.  Nothing can be done at the break-
  5722					; point except read the CSR register.
  5723					;#********************************************************************
  5724
  5725					; First check for any argument
  5726
  5727	040455	336 00 0 00 037132*	DBREAK:	SKIPN	ARGFLG			; argument given?
  5728						JRST	[FMSGCD	<? Missing argument>
  5729							 GO	FIOFF
  5730	040456	254 00 0 00 117722 			 RTN]
  5731
  5732					; Obtain argument
  5733
  5734	040457	200 01 0 00 126145 	DBREA0:	MOVE	1,[FMSGCD <BREAK addr,addr,... (CR)>]
  5735	040460	260 17 0 00 040403*		GO	.OARG			; get argument
  5736	040461	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5737	040462	263 17 0 00 000000 		 RTN				; done - no more arguments
  5738	040463	331 01 0 00 040406*		SKIPL	1,ARGUM			; argument out of range?
  5739	040464	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  5740						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5741							 GO	FIOFF
  5742	040465	254 00 0 00 122327 			 RTN]
  5743
  5744					; Then ensure the port is stopped
  5745
  5746	040466	260 17 0 00 040425*		GO	ISTOP			; stop the port
  5747
  5748					; Now obtain CRAM data and give it bad parity
  5749
  5750	040467	202 01 0 00 035604 		MOVEM	1,CADDR			; set up address to load
  5751	040470	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  5752	040471	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  5753	040472	260 17 0 00 036263 		GO	DRCRAM			; read the data
  5754	040473	261 17 0 00 000001 		PUT	1			; save AC1
  5755	040474	474 01 0 00 000000 		SETO	1,			; set 'force bad parity' flag
  5756	040475	200 02 0 00 035605 		MOVE	2,CWORDL		; get left half
  5757	040476	200 03 0 00 035606 		MOVE	3,CWORDR		; get right half
  5758	040477	260 17 0 00 042551 		GO	CALPAR			; insert parity
  5759	040500	202 02 0 00 035605 		MOVEM	2,CWORDL		; save left half
  5760	040501	202 03 0 00 035606 		MOVEM	3,CWORDR		; save right half
  5761	040502	262 17 0 00 000001 		GET	1			; restore AC1
  5762	040503	261 17 0 00 033670 		PUT	PARFLG			; save 'calculate parity' flag
  5763	040504	402 00 0 00 033670 		SETZM	PARFLG			; clear 'calculate parity' flag
  5764	040505	260 17 0 00 036231 		GO	DWCRAM			; load CRAM data (now with bad parity)
  5765	040506	262 17 0 00 033670 		GET	PARFLG			; restore 'calculate parity' flag
  5766	040507	254 00 0 00 040457 		JRST	DBREA0			; get next address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 136
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0299

  5767
  5768					;#********************************************************************
  5769					;* DRBRK - Remove breakpoint
  5770					;#********************************************************************
  5771
  5772					; First check for any argument
  5773
  5774	040510	336 00 0 00 040455*	DRBRK:	SKIPN	ARGFLG			; argument given?
  5775						JRST	[FMSGCD	<? Missing argument>
  5776							 GO	FIOFF
  5777	040511	254 00 0 00 117722 			 RTN]
  5778
  5779					; Obtain argument
  5780
  5781	040512	200 01 0 00 126154 	DRBR0:	MOVE	1,[FMSGCD <RBREAK addr,addr,... (CR)>]
  5782	040513	260 17 0 00 040460*		GO	.OARG			; get argument
  5783	040514	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5784	040515	263 17 0 00 000000 		 RTN				; done - no more arguments
  5785	040516	331 01 0 00 040463*		SKIPL	1,ARGUM			; argument out of range?
  5786	040517	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  5787						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5788							 GO	FIOFF
  5789	040520	254 00 0 00 122327 			 RTN]
  5790
  5791					; Then ensure the port is stopped
  5792
  5793	040521	260 17 0 00 040466*		GO	ISTOP			; stop the port
  5794
  5795					; Now obtain CRAM data and load back into CRAM with good parity
  5796
  5797	040522	202 01 0 00 035604 		MOVEM	1,CADDR			; set up address to load
  5798	040523	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  5799	040524	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  5800	040525	260 17 0 00 036263 		GO	DRCRAM			; read the data
  5801	040526	261 17 0 00 033670 		PUT	PARFLG			; save 'calculate parity' flag
  5802	040527	476 00 0 00 033670 		SETOM	PARFLG			; set 'calculate parity' flag
  5803	040530	260 17 0 00 036231 		GO	DWCRAM			; load CRAM data (now with good parity)
  5804	040531	262 17 0 00 033670 		GET	PARFLG			; restore 'calculate parity' flag
  5805	040532	254 00 0 00 040512 		JRST	DRBR0			; get next address
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 137
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0300

  5806
  5807					;#********************************************************************
  5808					;* DCBRK - Clear all breakpoints 
  5809					;
  5810					; If arguments are given, they are assumed to the the locations between
  5811					; which all breakpoints are to be removed.
  5812					;#********************************************************************
  5813
  5814					; Start to process the arguments typed - both should be CRAM
  5815					; addresses in octal.
  5816
  5817	040533	400 05 0 00 000000 	DCBRK:	SETZ	5,			; init range of addresses
  5818	040534	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  5819
  5820					; Get first address
  5821
  5822	040535	200 01 0 00 126163 		MOVE	1,[FMSGCD <CBREAK addr1,addr2 (CR)>]
  5823	040536	260 17 0 00 040513*		GO	.OARG			; get first address
  5824	040537	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5825	040540	254 00 0 00 040552 		 JRST	DCBR0			; no arguments given - continue
  5826	040541	200 00 0 00 040516*		MOVE	ARGUM			; get argument
  5827	040542	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  5828	040543	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5829
  5830					; Get 2nd address
  5831
  5832	040544	210 01 0 00 126163 		MOVN	1,[FMSGCD <CBREAK addr1,addr2 (CR)>]
  5833	040545	260 17 0 00 040536*		GO	.OARG			; get first address
  5834	040546	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5835	040547	254 00 0 00 040552 		 JRST	DCBR0			; no arguments given - continue
  5836	040550	200 00 0 00 040541*		MOVE	ARGUM			; get argument
  5837	040551	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5838
  5839					; Now range check the arguments
  5840
  5841	040552	331 00 0 00 000005 	DCBR0:	SKIPL	5			; 1st argument in range?
  5842	040553	303 05 0 00 007777 		CAILE	5,7777
  5843						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5844							 GO	FIOFF
  5845	040554	254 00 0 00 122327 			 RTN]
  5846	040555	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  5847	040556	303 06 0 00 007777 		CAILE	6,7777
  5848						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5849							 GO	FIOFF
  5850	040557	254 00 0 00 122327 			 RTN]
  5851	040560	274 01 0 00 000005 		SUB	1,5			; see if range ok
  5852						JUMPL	1,[FMSGCD <? Range nonsensical>
  5853							   GO	FIOFF
  5854	040561	321 01 0 00 122563 			   RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 138
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0301

  5855
  5856					; Then ensure the port is stopped
  5857
  5858	040562	260 17 0 00 040521*		GO	ISTOP			; stop the port
  5859
  5860					; Now obtain CRAM data and load back into CRAM with good parity
  5861
  5862	040563	202 05 0 00 035604 	DCBR1:	MOVEM	5,CADDR			; set up address to load
  5863	040564	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  5864	040565	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  5865	040566	260 17 0 00 036263 		GO	DRCRAM			; read the data
  5866	040567	261 17 0 00 033670 		PUT	PARFLG			; save 'calculate parity' flag
  5867	040570	476 00 0 00 033670 		SETOM	PARFLG			; set 'calculate parity' flag
  5868	040571	260 17 0 00 036231 		GO	DWCRAM			; load CRAM data (now with good parity)
  5869	040572	262 17 0 00 033670 		GET	PARFLG			; restore 'calculate parity' flag
  5870	040573	350 00 0 00 000005 		AOS	5			; increment 'from' address
  5871	040574	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  5872	040575	254 00 0 00 040563 		JRST	DCBR1			; no - get next address
  5873	040576	263 17 0 00 000000 		RTN				; yes - exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 139
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0302

  5874
  5875					;#********************************************************************
  5876					;* DLBRK - List breakpoints
  5877					;
  5878					; If arguments are given, they are assumed to be the locations between
  5879					; which all breakpoints are to be listed.
  5880					;#********************************************************************
  5881
  5882					; Start to process the arguments typed - both should be CRAM
  5883					; addresses in octal.
  5884
  5885	040577	400 05 0 00 000000 	DLBRK:	SETZ	5,			; init range of addresses
  5886	040600	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  5887
  5888					; Get first address
  5889
  5890	040601	200 01 0 00 126172 		MOVE	1,[FMSGCD <LBREAK addr1,addr2 (CR)>]
  5891	040602	260 17 0 00 040545*		GO	.OARG			; get first address
  5892	040603	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5893	040604	254 00 0 00 040616 		 JRST	DLBR0			; no arguments given - continue
  5894	040605	200 00 0 00 040550*		MOVE	ARGUM			; get argument
  5895	040606	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  5896	040607	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5897
  5898					; Get 2nd address
  5899
  5900	040610	210 01 0 00 126172 		MOVN	1,[FMSGCD <LBREAK addr1,addr2 (CR)>]
  5901	040611	260 17 0 00 040602*		GO	.OARG			; get first address
  5902	040612	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5903	040613	254 00 0 00 040616 		 JRST	DLBR0			; no arguments given - continue
  5904	040614	200 00 0 00 040605*		MOVE	ARGUM			; get argument
  5905	040615	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5906
  5907					; Now range check the arguments
  5908
  5909	040616	331 00 0 00 000005 	DLBR0:	SKIPL	5			; 1st argument in range?
  5910	040617	303 05 0 00 007777 		CAILE	5,7777
  5911						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5912							 GO	FIOFF
  5913	040620	254 00 0 00 122327 			 RTN]
  5914	040621	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  5915	040622	303 06 0 00 007777 		CAILE	6,7777
  5916						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5917							 GO	FIOFF
  5918	040623	254 00 0 00 122327 			 RTN]
  5919	040624	274 01 0 00 000005 		SUB	1,5			; see if range ok
  5920						JUMPL	1,[FMSGCD <? Range nonsensical>
  5921							   GO	FIOFF
  5922	040625	321 01 0 00 122563 			   RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 140
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0303

  5923
  5924					; Then ensure the port is stopped
  5925
  5926	040626	260 17 0 00 040562*		GO	ISTOP			; stop the port
  5927	040627	200 07 0 00 125204 		MOVE	7,[-2]			; initialize breakpoint count
  5928	040630	037 00 0 00 126173 		TMSGC	<Breakpoints:  >
  5929
  5930					; Now obtain CRAM data and load back into CRAM with good parity
  5931
  5932	040631	202 05 0 00 035604 	DLBR1:	MOVEM	5,CADDR			; set up address to load
  5933	040632	476 00 0 00 035605 		SETOM	CWORDL			; initialize left half
  5934	040633	476 00 0 00 035606 		SETOM	CWORDR			; initialize right half
  5935	040634	260 17 0 00 036263 		GO	DRCRAM			; read the data
  5936	040635	400 01 0 00 000000 		SETZ	1,			; clear 'bad' parity flag
  5937	040636	200 02 0 00 035605 		MOVE	2,CWORDL		; get left word
  5938	040637	200 03 0 00 035606 		MOVE	3,CWORDR		; get right word
  5939	040640	260 17 0 00 042551 		GO	CALPAR			; calculate parity
  5940	040641	316 02 0 00 035605 		CAMN	2,CWORDL		; same as before?
  5941	040642	254 00 0 00 040650 		JRST	DLBR2			; yes - good parity
  5942
  5943					; Print location
  5944
  5945	040643	350 00 0 00 000007 		AOS	7			; next 5 characters
  5946	040644	303 07 0 00 000007 		CAILE	7,7			; done with line?
  5947						GO	[SETO	7,		; yes - init counter
  5948							 TMSGC	<              >
  5949	040645	260 17 0 00 126203 			 RTN]
  5950	040646	001 04 0 00 000005 		PNTOCC	4,5			; print address
  5951	040647	037 00 0 00 000040 		PSP				; print a space
  5952
  5953					; Increment to next location
  5954
  5955	040650	037 07 0 00 000003 	DLBR2:	TTALTM				; altmode key struck?
  5956	040651	334 00 0 00 000000 		SKIPA				; no - proceed
  5957	040652	254 00 0 00 040656 		JRST	DLBRX			; yes - exit
  5958	040653	350 00 0 00 000005 		AOS	5			; increment 'from' address
  5959	040654	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  5960	040655	254 00 0 00 040631 		JRST	DLBR1			; no - get next address
  5961	040656	037 00 0 00 030242 	DLBRX:	PCRL				; yes - print blank line
  5962	040657	263 17 0 00 000000 		RTN				;   and exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 141
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0304

  5963
  5964					;#********************************************************************
  5965					;* DLOAD - Load microcode into CRAM from a test.
  5966					;#********************************************************************
  5967
  5968	040660	210 01 0 00 126212 	DLOAD:	MOVN	1,[FMSGCD (LOAD n <CR>)]
  5969	040661	260 17 0 00 040611*		GO	.OARG			; get argument
  5970	040662	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5971						 JRST	[FMSGCD	<? Missing argument>
  5972							 GO	FIOFF
  5973	040663	254 00 0 00 117722 			 RTN]
  5974	040664	333 01 0 00 040614*		SKIPLE	1,ARGUM			; get argument - out of range
  5975	040665	303 01 0 00 000027 		CAILE	1,MAXTST		;   1-MAXTST?
  5976						JRST	[FMSGC	<? Test number out of range 1 - >
  5977							 MOVEI	MAXTST
  5978							 PNTOCF
  5979							 PCRLF
  5980							 GO	FIOFF
  5981	040666	254 00 0 00 126222 			 RTN]
  5982	040667	337 01 0 01 032070 		SKIPG	1,TSTMIC(1)		; get test microcode address
  5983						JRST	[FMSGCD <? Test specified does not have microcode>
  5984							 GO	FIOFF
  5985	040670	254 00 0 00 126241 			 RTN]
  5986	040671	260 17 0 00 040626*		GO	ISTOP			; stop the port
  5987	040672	260 17 0 00 064355 		GO	MLOADY			; load it
  5988	040673	255 00 0 00 000000 		 JFCL				; failed
  5989	040674	037 00 0 00 126244 		TMSGC	<[Number of CRAM locations loaded/verified = >
  5990	040675	200 00 0 00 134173'		MOVE	MLNUM			; get number of words loaded/verified
  5991	040676	037 15 0 00 000000 		PNTDEC	
  5992	040677	037 00 0 00 126256 		TMSGD	<.]>
  5993	040700	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 142
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0305

  5994
  5995					;#********************************************************************
  5996					;* DLIST - List microcode from test
  5997					;#********************************************************************
  5998
  5999	040701	210 01 0 00 126263 	DLIST:	MOVN	1,[FMSGCD (LIST n <CR>)]
  6000	040702	260 17 0 00 040661*		GO	.OARG			; get argument
  6001	040703	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6002						 JRST	[FMSGCD	<? Missing argument>
  6003							 GO	FIOFF
  6004	040704	254 00 0 00 117722 			 RTN]
  6005	040705	333 01 0 00 040664*		SKIPLE	1,ARGUM			; get argument - out of range
  6006	040706	303 01 0 00 000027 		CAILE	1,MAXTST		;   1-MAXTST?
  6007						JRST	[FMSGC	<? Test number out of range 1 - >
  6008							 MOVEI	MAXTST
  6009							 PNTOCF
  6010							 PCRLF
  6011							 GO	FIOFF
  6012	040707	254 00 0 00 126222 			 RTN]
  6013	040710	337 01 0 01 032070 		SKIPG	1,TSTMIC(1)		; get test microcode address
  6014						JRST	[FMSGCD <? Test specified does not have microcode>
  6015							 GO	FIOFF
  6016	040711	254 00 0 00 126241 			 RTN]
  6017	040712	260 17 0 00 064625 		GO	MLIST			; list it
  6018	040713	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 143
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0306

  6019
  6020					;#********************************************************************
  6021					;* DFLOAD - Load microcode from file into CRAM
  6022					;#********************************************************************
  6023
  6024	040714	200 01 0 00 126267 	DFLOAD:	MOVE	1,[FMSGCD (FLOAD <CR>)]
  6025	040715	260 17 0 00 040416*		GO	CHKARG			; check for argument
  6026	040716	263 17 0 00 000000 		RTN				; error - exit
  6027	040717	476 00 0 00 044331 		SETOM	FFLAG			; set operator output flag
  6028	040720	260 17 0 00 044010 		GO	FLOADB			; load file into ucode buffer
  6029	040721	263 17 0 00 000000 		RTN				; error - exit
  6030
  6031					; Ensure the port is stopped
  6032
  6033	040722	260 17 0 00 040671*		GO	ISTOP			; stop the port
  6034	040723	400 01 0 00 000000 		SETZ	1,			; clear AC1
  6035	040724	260 17 0 00 040150*		GO	LDCSR			; clear CSR
  6036
  6037					; Check to see if it is already loaded
  6038
  6039	040725	200 00 0 00 044326 		MOVE	UNAME			; get microcode name desired
  6040	040726	316 00 0 00 044330 		CAMN	CNAME			; same as what is loaded?
  6041						GO	[TMSGC	<[>		; yes - print message
  6042							 MOVE	UNAME
  6043							 PNTSIX
  6044							 PNTCI	"."
  6045							 MOVE	UNAME+1
  6046							 PNTSIX
  6047							 TMSGD	< already loaded]>
  6048	040727	260 17 0 00 126274 			 RTN]
  6049
  6050					; Load microcode
  6051
  6052	040730	476 00 0 00 044330 		SETOM	CNAME			; ensure the microcode gets loaded
  6053	040731	260 17 0 00 044074 		GO	FLOADC			; load buffer into CRAM
  6054	040732	263 17 0 00 000000 		RTN				; error - return
  6055	040733	255 00 0 00 000000 		JFCL				; already loaded - return
  6056
  6057					; Verify microcode
  6058
  6059	040734	260 17 0 00 044152 		GO	FVERFC			; verify CRAM against buffer
  6060	040735	260 17 0 00 044231 		GO	FUERR			; print any errors
  6061	040736	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 144
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0307

  6062
  6063					;#********************************************************************
  6064					;* DFVERF - Verify microcode from file versus CRAM
  6065					;#********************************************************************
  6066
  6067	040737	200 01 0 00 126310 	DFVERF:	MOVE	1,[FMSGCD (FVERFY <CR>)]
  6068	040740	260 17 0 00 040715*		GO	CHKARG			; check for argument
  6069	040741	263 17 0 00 000000 		RTN				; error - exit
  6070	040742	476 00 0 00 044331 		SETOM	FFLAG			; set operator output flag
  6071	040743	260 17 0 00 044010 		GO	FLOADB			; load file into ucode buffer
  6072	040744	263 17 0 00 000000 		RTN				; error - exit
  6073
  6074					; Ensure the port is stopped
  6075
  6076	040745	260 17 0 00 040722*		GO	ISTOP			; stop the port
  6077	040746	400 01 0 00 000000 		SETZ	1,			; clear AC1
  6078	040747	260 17 0 00 040724*		GO	LDCSR			; clear CSR
  6079
  6080					; Now do the verify
  6081
  6082	040750	260 17 0 00 044152 	DFVER0:	GO	FVERFC			; verify CRAM against buffer
  6083	040751	260 17 0 00 044231 		GO	FUERR			; print any errors
  6084	040752	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 145
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0308

  6085
  6086					;#********************************************************************
  6087					;* DFLIST - List microcode in file
  6088					;#********************************************************************
  6089
  6090	040753	200 01 0 00 126314 	DFLIST:	MOVE	1,[FMSGCD (FLIST <CR>)]
  6091	040754	260 17 0 00 040740*		GO	CHKARG			; check for argument
  6092	040755	263 17 0 00 000000 		RTN				; error - exit
  6093	040756	476 00 0 00 044331 		SETOM	FFLAG			; set operator output flag
  6094	040757	260 17 0 00 044010 		GO	FLOADB			; load file into ucode buffer
  6095	040760	263 17 0 00 000000 		RTN				; error - exit
  6096	040761	037 00 0 00 124742 		TMSGC	<ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK>
  6097	040762	200 03 0 00 044332 		MOVE	3,ULEN			; get length of ucode
  6098	040763	201 04 0 00 044331 		MOVEI	4,UCODE-2		; get address of ucode buffer
  6099	040764	361 03 0 00 041006 	DFLIS0:	SOJL	3,DFLISX		; done yet? yes - exit
  6100	040765	271 04 0 00 000002 		ADDI	4,2			; point to next microword entry
  6101	040766	120 01 0 04 000000 		DMOVE	1,(4)			; get microword entry
  6102	040767	135 00 0 00 126315 		LDB	[POINT 12,1,11]		; get CRAM address
  6103	040770	202 00 0 00 035604 		MOVEM	CADDR			; save it
  6104	040771	246 01 0 00 000006 		LSHC	1,6			; position correctly for 30 bits
  6105	040772	135 03 0 00 126316 		LDB	3,[POINT 30,2,29]	; get right 30 bits
  6106	040773	135 02 0 00 126317 		LDB	2,[POINT 30,1,35]	; get left 30 bits
  6107	040774	622 03 0 00 000002 		TRZE	3,2			; bit 59 set?
  6108	040775	660 03 0 00 000001 		TRO	3,1			; yes - set rightmost bit
  6109	040776	037 00 0 00 030242 		PCRL				; start a new line
  6110	040777	001 04 0 00 035604 		PNTOCC	4,CADDR			; print CRAM load address
  6111	041000	037 00 0 00 124736 		TMSG	</ >
  6112	041001	260 17 0 00 042433 		GO	PNTCRM			; print it
  6113	041002	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  6114	041003	254 00 0 00 041006 		JRST	DFLISX			; yes - exit
  6115	041004	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6116	041005	254 00 0 00 040764 		JRST	DFLIS0			; no - loop till done
  6117
  6118	041006	037 00 0 00 030242 	DFLISX:	PCRL				; final CRLF
  6119	041007	263 17 0 00 000000 		RTN				; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 146
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0309

  6120
  6121					;#********************************************************************
  6122					;* DFEXAM - Examine microcode in file
  6123					;#********************************************************************
  6124
  6125	041010	200 01 0 00 126323 	DFEXAM:	MOVE	1,[FMSGCD (FEXAM <CR>)]
  6126	041011	260 17 0 00 040754*		GO	CHKARG			; check for argument
  6127	041012	263 17 0 00 000000 		RTN				; error - exit
  6128	041013	476 00 0 00 044331 		SETOM	FFLAG			; set operator output flag
  6129	041014	260 17 0 00 044010 		GO	FLOADB			; load file into ucode buffer
  6130	041015	263 17 0 00 000000 		RTN				; error - exit
  6131	041016	200 03 0 00 044332 		MOVE	3,ULEN			; get length of ucode
  6132	041017	201 04 0 00 044331 		MOVEI	4,UCODE-2		; get address of ucode buffer
  6133	041020	361 03 0 00 041043 	DFEXA0:	SOJL	3,DFEXAX		; done yet? yes - exit
  6134	041021	271 04 0 00 000002 		ADDI	4,2			; point to next microword entry
  6135	041022	120 01 0 04 000000 		DMOVE	1,(4)			; get microword entry
  6136	041023	135 00 0 00 126315 		LDB	[POINT 12,1,11]		; get CRAM address
  6137	041024	202 00 0 00 035604 		MOVEM	CADDR			; save it
  6138	041025	246 01 0 00 000006 		LSHC	1,6			; position correctly for 30 bits
  6139	041026	135 03 0 00 126316 		LDB	3,[POINT 30,2,29]	; get right 30 bits
  6140	041027	135 02 0 00 126317 		LDB	2,[POINT 30,1,35]	; get left 30 bits
  6141	041030	622 03 0 00 000002 		TRZE	3,2			; bit 59 set?
  6142	041031	660 03 0 00 000001 		TRO	3,1			; yes - set rightmost bit
  6143	041032	037 00 0 00 030242 		PCRL				; start a new line
  6144	041033	200 00 0 00 035604 		MOVE	CADDR			; get CRAM load address
  6145	041034	037 04 0 00 000000 		PNT4				; print it
  6146	041035	037 00 0 00 124736 		TMSG	</ >
  6147	041036	260 17 0 00 042527 		GO	PNTWD			; print it
  6148	041037	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  6149	041040	254 00 0 00 041043 		JRST	DFEXAX			; yes - exit
  6150	041041	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6151	041042	254 00 0 00 041020 		JRST	DFEXA0			; no - loop till done
  6152
  6153	041043	037 00 0 00 030242 	DFEXAX:	PCRL				; final CRLF
  6154	041044	263 17 0 00 000000 		RTN				; exit
  6155
  6156
  6157					;#********************************************************************
  6158					;* DTRANS - Translate CSR bits to English
  6159					;#********************************************************************
  6160
  6161	041045	210 01 0 00 126331 	DTRANS:	MOVN	1,[FMSGCD (TRANSL data <CR>)]
  6162	041046	260 17 0 00 040702*		GO	.OARG			; get argument
  6163	041047	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6164						 JRST	[FMSGCD	<? Missing argument>
  6165							 GO	FIOFF
  6166	041050	254 00 0 00 117722 			 RTN]
  6167	041051	200 01 0 00 040705*		MOVE	1,ARGUM			; get argument
  6168	041052	260 17 0 00 042605 		GO	CSRPNT			; print CSR data in English
  6169	041053	037 00 0 00 030242 		PCRL				; end of line
  6170	041054	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 147
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0310

  6171
  6172					;#********************************************************************
  6173					;* DCCODE - Print condition codes
  6174					;#********************************************************************
  6175
  6176	041055	200 01 0 00 126335 	DCCODE:	MOVE	1,[FMSGCD (CCODE <CR>)]
  6177	041056	260 17 0 00 041011*		GO	CHKARG			; check for argument
  6178	041057	263 17 0 00 000000 		RTN				; error - exit
  6179
  6180					; Save CRAM locations
  6181
  6182	041060	200 01 0 00 125235 		MOVE	1,[-4,,7750]		; set up AOBJN word
  6183	041061	260 17 0 00 042730 		GO	SAVCRM			; save the CRAM locations
  6184
  6185					; Loop on condition code
  6186
  6187	041062	474 07 0 00 000000 		SETO	7,			; initialize pointer
  6188	041063	350 00 0 00 000007 	DCCOD1:	AOS	7			; point to next condition code
  6189	041064	303 07 0 00 000017 		CAILE	7,17			; done yet?
  6190	041065	254 00 0 00 041107 		JRST	DCCOD2			; yes - go print results
  6191	041066	137 07 0 00 126336 		DPB	7,[POINT 4,CCMIC+3,23]	; no - set up microcode
  6192	041067	201 01 0 00 041173 		MOVEI	1,CCMIC			; set up microcode address
  6193	041070	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  6194	041071	255 00 0 00 000000 		JFCL				; ignore error
  6195	041072	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  6196	041073	242 01 0 00 000001 		LSH	1,1			; position correctly
  6197	041074	260 17 0 00 040144*		GO	LDRAR			; load the RAR
  6198	041075	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  6199	041076	260 17 0 00 040747*		GO	LDCSR			; write to CSR register
  6200	041077	201 01 0 00 040000 		MOVEI	1,SELLAR		; set up to read LAR
  6201	041100	260 17 0 00 041076*		GO	LDCSR			; stop the port
  6202	041101	260 17 0 00 037460*		GO	RDLAR			; read stopping address
  6203	041102	242 01 0 00 777777 		LSH	1,-1			; position correctly
  6204	041103	402 00 0 07 041153 		SETZM	CCTAB3(7)		; initialize result
  6205	041104	306 01 0 00 007753 		CAIN	1,7753			; was the cc set?
  6206	041105	476 00 0 07 041153 		SETOM	CCTAB3(7)		; yes - indicate such
  6207	041106	254 00 0 00 041063 		JRST	DCCOD1			; loop till done
  6208
  6209					; Print the results
  6210
  6211	041107	037 00 0 00 126337 	DCCOD2:	TMSGC	<CC On:  >
  6212	041110	474 07 0 00 000000 		SETO	7,			; initialize pointer
  6213	041111	350 00 0 00 000007 	DCCOD3:	AOS	7			; point to next entry
  6214	041112	303 07 0 00 000017 		CAILE	7,17			; done yet?
  6215	041113	254 00 0 00 041117 		JRST	DCCOD4			; yes - continue
  6216	041114	332 00 0 07 041153 		SKIPE	CCTAB3(7)		; no - cc on?
  6217	041115	256 00 0 07 041133 		XCT	CCTAB1(7)		; yes - print text
  6218	041116	254 00 0 00 041111 		JRST	DCCOD3
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 148
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0311

  6219
  6220	041117	037 00 0 00 126342 	DCCOD4:	TMSGC	<CC Off: >
  6221	041120	474 07 0 00 000000 		SETO	7,			; initialize pointer
  6222	041121	350 00 0 00 000007 	DCCOD5:	AOS	7			; point to next entry
  6223	041122	303 07 0 00 000017 		CAILE	7,17			; done yet?
  6224	041123	254 00 0 00 041127 		JRST	DCCOD6			; yes - continue
  6225	041124	336 00 0 07 041153 		SKIPN	CCTAB3(7)		; no - cc on?
  6226	041125	256 00 0 07 041133 		XCT	CCTAB1(7)		; yes - print text
  6227	041126	254 00 0 00 041121 		JRST	DCCOD5
  6228	041127	037 00 0 00 030242 	DCCOD6:	PCRL
  6229
  6230					; Restore CRAM locations and exit
  6231
  6232	041130	200 01 0 00 125235 		MOVE	1,[-4,,7750]		; set up AOBJN word
  6233	041131	260 17 0 00 042752 		GO	RESCRM			; restore CRAM data
  6234	041132	263 17 0 00 000000 		RTN				; return
  6235
  6236					; Tables
  6237
  6238	041133	037 00 0 00 126345 	CCTAB1:	TMSG	< CBAV>			; 0 - CCCBUSAVAIL
  6239	041134	037 00 0 00 126347 		TMSG	< GCSR>			; 1 - CCGRNTCSR
  6240	041135	037 00 0 00 126351 		TMSG	< FEQ0>			; 2 - CCFEQ0
  6241	041136	037 00 0 00 126353 		TMSG	< CSRC>			; 3 - CCCSRCHNG
  6242	041137	037 00 0 00 126355 		TMSG	< EBPE>			; 4 - CCEBPARERR
  6243	041140	037 00 0 00 126357 		TMSG	< RATN>			; 5 - CCRCVATTN
  6244	041141	037 00 0 00 126361 		TMSG	< EOFF>			; 6 - CCENDOFFRAME
  6245	041142	037 00 0 00 126363 		TMSG	< XATN>			; 7 - CCXMTRATTN
  6246	041143	037 00 0 00 126365 		TMSG	< ERQS>			; 10 - CCEBUSRQST
  6247	041144	037 00 0 00 126367 		TMSG	< IACT>			; 11 - CCINTRACTIVE
  6248	041145	037 00 0 00 126371 		TMSG	< MSGN>			; 12 - CCMBSIGN
  6249	041146	037 00 0 00 126373 		TMSG	< MVRP>			; 13 - CCMVRPARCHK
  6250	041147	037 00 0 00 126375 		TMSG	< CBPE>			; 14 - CCCBUSPARERR
  6251	041150	037 00 0 00 126377 		TMSG	< PLPE>			; 15 - CCPLIPARERR
  6252	041151	037 00 0 00 126401 		TMSG	< CHER>			; 16 - CCCHANERR
  6253	041152	037 00 0 00 126403 		TMSG	< CBLW>			; 17 - CCCBLSTWD
  6254
  6255	041153				CCTAB3:	BLOCK	^D16			; results
  6256
  6257					; Microcode
  6258
  6259	041173	775077	510000		CCMIC:	MWORD	<ADDR=7750,JMAP,J=7751,D=1> 	; 7750
  6260	041174	001000	000040
  6261	041175	775177	530000			MWORD	<CJP,J=7753,D=1,CENA>		; 7751
  6262	041176	001400	000060
  6263	041177	775277	520000			MWORD	<JMAP,J=7752,D=1>		; 7752
  6264	041200	001000	000040
  6265	041201	775377	530000			MWORD	<JMAP,J=7753,D=1>		; 7753
  6266	041202	001000	000040
  6267	041203	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 149
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0312

  6268
  6269					;#********************************************************************
  6270					;* DFILLN - Fill CRAM with special data (J=PC+1,OPCode)
  6271					;#********************************************************************
  6272
  6273	041204	210 01 0 00 126415 	DFILLN:	MOVN	1,[FMSGCD <FILLNX number (2910 Op code 0-17)>]
  6274	041205	260 17 0 00 041046*		GO	.OARG			; get argument
  6275	041206	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6276						 JRST	[FMSGCD	<? Missing argument>
  6277							 GO	FIOFF
  6278	041207	254 00 0 00 117722 			 RTN]
  6279	041210	260 17 0 00 040745*		GO	ISTOP			; stop the port
  6280	041211	200 01 0 00 041051*		MOVE	1,ARGUM			; get argument
  6281	041212	400 02 0 00 000000 		SETZ	2,			; initialize address
  6282	041213	402 00 0 00 035605 		SETZM	CWORDL			; initialize left half
  6283	041214	402 00 0 00 035606 		SETZM	CWORDR			; initialize right half
  6284	041215	202 02 0 00 035604 	DFILN0:	MOVEM	2,CADDR			; set up address
  6285	041216	350 00 0 00 000002 		AOS	2			; point to next address
  6286	041217	303 02 0 00 007777 		CAILE	2,7777			; at end yet?
  6287	041220	400 02 0 00 000000 		SETZ	2,			; yes - set back to zero
  6288	041221	137 02 0 00 124232 		DPB	2,[POINT 12,CWORDL,17]	; insert J field
  6289	041222	137 01 0 00 124304 		DPB	1,[POINT 4,CWORDR,31]	; insert CTL field
  6290	041223	260 17 0 00 036231 		GO	DWCRAM			; load it
  6291	041224	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  6292	041225	326 02 0 00 041215 		JUMPN	2,DFILN0		; loop till done
  6293	041226	037 00 0 00 126416 		TMSGCD	<[Number of CRAM locations loaded = 4096.]>
  6294	041227	263 17 0 00 000000 		RTN				; return
  6295
  6296
  6297					;#********************************************************************
  6298					;* DFILLP - Fill CRAM with special data (J=PC,OPCode)
  6299					;#********************************************************************
  6300
  6301	041230	210 01 0 00 126440 	DFILLP:	MOVN	1,[FMSGCD <FILLPC number (2910 Op code 0-17)>]
  6302	041231	260 17 0 00 041205*		GO	.OARG			; get argument
  6303	041232	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6304						 JRST	[FMSGCD	<? Missing argument>
  6305							 GO	FIOFF
  6306	041233	254 00 0 00 117722 			 RTN]
  6307	041234	260 17 0 00 041210*		GO	ISTOP			; stop the port
  6308	041235	200 01 0 00 041211*		MOVE	1,ARGUM			; get argument
  6309	041236	476 00 0 00 035604 		SETOM	CADDR			; initialize address
  6310	041237	402 00 0 00 035605 		SETZM	CWORDL			; initialize left half
  6311	041240	402 00 0 00 035606 		SETZM	CWORDR			; initialize right half
  6312	041241	350 02 0 00 035604 	DFILP0:	AOS	2,CADDR			; set up address
  6313	041242	137 02 0 00 124232 		DPB	2,[POINT 12,CWORDL,17]	; insert J field
  6314	041243	137 01 0 00 124304 		DPB	1,[POINT 4,CWORDR,31]	; insert CTL field
  6315	041244	260 17 0 00 036231 		GO	DWCRAM			; load it
  6316	041245	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  6317	041246	307 02 0 00 007777 		CAIG	2,7777			; done yet?
  6318	041247	254 00 0 00 041241 		JRST	DFILP0			; no - loop till done
  6319	041250	037 00 0 00 126416 		TMSGCD	<[Number of CRAM locations loaded = 4096.]>
  6320	041251	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 150
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0313

  6321
  6322					;#********************************************************************
  6323					;* DCWPNT - Print CCW list
  6324					;#********************************************************************
  6325
  6326	041252	200 01 0 00 126445 	DCWPNT:	MOVE	1,[FMSGCD (CCWPNT <CR>)]
  6327	041253	260 17 0 00 041056*		GO	CHKARG			; check for argument
  6328	041254	263 17 0 00 000000 		RTN				; error - exit
  6329	041255	260 17 0 00 000000*		GO	CCWPNT			; print CCW list
  6330	041256	037 00 0 00 030242 		PCRL
  6331	041257	263 17 0 00 000000 		RTN				; return
  6332
  6333
  6334					;#********************************************************************
  6335					;* DLGPNT - Print logout data
  6336					;#********************************************************************
  6337
  6338	041260	200 01 0 00 126452 	DLGPNT:	MOVE	1,[FMSGCD (LOGPNT <CR>)]
  6339	041261	260 17 0 00 041253*		GO	CHKARG			; check for argument
  6340	041262	263 17 0 00 000000 		RTN				; error - exit
  6341	041263	260 17 0 00 000000*		GO	GETLOG			; get logout data to a buffer area
  6342	041264	260 17 0 00 000000*		GO	LOGPNT			; print channel logout data
  6343	041265	263 17 0 00 000000 		RTN				; return
  6344
  6345
  6346					;#********************************************************************
  6347					;* DSWIT - Switch complement commands
  6348					;#********************************************************************
  6349
  6350	041266	200 01 0 00 117772 	DSWIT:	MOVE	1,[FMSGCD (Switch Name <CR>)]
  6351	041267	260 17 0 00 041261*		GO	CHKARG			; check for argument
  6352	041270	263 17 0 00 000000 		RTN				; error - exit
  6353	041271	261 17 0 00 000001 		PUT	1			; save AC1
  6354	041272	200 01 0 00 031521*		MOVE	1,.CGOT			; get dispatch number
  6355	041273	275 01 0 00 000125 		SUBI	1,SWSTP			; normalize to 0..
  6356	041274	260 17 0 00 031523*		GO	SWCOM			; complement switch
  6357	041275	262 17 0 00 000001 		GET	1			; restore AC1
  6358	041276	263 17 0 00 000000 		RTN				; continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 151
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0314

  6359
  6360					;#********************************************************************
  6361					;* IPRINT - Print interrupt history
  6362					;#********************************************************************
  6363
  6364	041277	200 01 0 00 126457 	DIPRIN:	MOVE	1,[FMSGCD (IPRINT <CR>)]
  6365	041300	260 17 0 00 041267*		GO	CHKARG			; check for argument
  6366	041301	263 17 0 00 000000 		RTN				; error - exit
  6367	041302	261 17 0 00 000000 	IPRINT:	RPUT	(0,1,2)			; save AC's
  6368
  6369	041305	335 01 0 00 000000*	IPRIN0:	SKIPGE	1,INTNUM		; any interrupt yet?
  6370	041306	254 00 0 00 041312 		JRST	IPRINX
  6371	041307	260 17 0 00 041316 		GO	IPRINI			; yes - print the data
  6372	041310	037 07 0 00 000003 		TTALTM				; check for altmode typed
  6373	041311	254 00 0 00 041305 		JRST	IPRIN0			; no - keep looping
  6374	041312	262 17 0 00 000002 	IPRINX:	RGET	(2,1,0)			; yes - restore AC's
  6375
  6376	041315	263 17 0 00 000000 		RTN				; exit
  6377
  6378					; Print interrupt data
  6379
  6380	041316	370 01 0 00 041305*	IPRINI:	SOS	1,INTNUM		; point to previous interrupt
  6381	041317	303 01 0 00 000023 		CAILE	1,^D19			; overflow interrupt?
  6382	041320	201 01 0 00 000023 		MOVEI	1,^D19			; yes - limit to 20 interrupts
  6383	041321	202 01 0 00 041316*		MOVEM	1,INTNUM		; save number left
  6384	041322	037 00 0 00 126460 		TMSGC	<=====>
  6385	041323	550 02 0 01 000000*		HRRZ	2,INTTYP(1)		; get type
  6386						XCT	[TMSGC	<Vectored (PC = >	
  6387							 TMSGC	<NV Chn 1 (PC = >
  6388							 TMSGC	<NV Chn 2 (PC = >
  6389							 TMSGC	<NV Chn 3 (PC = >
  6390							 TMSGC	<NV Chn 4 (PC = >
  6391							 TMSGC	<NV Chn 5 (PC = >
  6392							 TMSGC	<NV Chn 6 (PC = >
  6393	041324	256 00 0 02 126522 			 TMSGC	<NV Chn 7 (PC = >](2)
  6394	041325	550 00 0 01 000000*		HRRZ	INTPC(1)		; get interrupt PC
  6395	041326	037 16 0 00 000003 		PNTOCS				; print it
  6396	041327	037 00 0 00 126532 		TMSG	<) at >
  6397	041330	200 00 0 01 000000*		MOVE	INTTIM(1)		; get milliseconds
  6398	041331	037 15 0 00 000000 		PNTDEC
  6399	041332	037 00 0 00 126534 		TMSG	<.ms + >
  6400	041333	200 00 0 01 000000*		MOVE	INTUSE(1)		; get microseconds
  6401	041334	037 15 0 00 000000 		PNTDEC
  6402	041335	037 00 0 00 126536 		TMSG	<.us>
  6403	041336	037 00 0 00 126537 		TMSGC	<CONI PI = >
  6404	041337	200 00 0 01 000000*		MOVE	INTCON(1)		; get CONI PI data
  6405	041340	037 13 0 00 000000 		PNTHW				; print it
  6406	041341	037 00 0 00 126542 		TMSG	<  CONI APR = >
  6407	041342	200 00 0 01 000000*		MOVE	INTAPR(1)		; get APR data
  6408	041343	037 13 0 00 000000 		PNTHW				; print it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 152
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0315

  6409	041344	037 00 0 00 126545 		TMSG	<  CSR = >
  6410	041345	200 00 0 01 000000*		MOVE	INTCSR(1)		; get CSR data
  6411	041346	037 13 0 00 000000 		PNTHW				; print it
  6412	041347	037 00 0 00 030242 		PCRL
  6413	041350	335 00 0 01 041323*		SKIPGE	INTTYP(1)
  6414	041351	037 00 0 00 126547 		TMSGCD	< ##### (Interrupts flushed) #####>
  6415	041352	263 17 0 00 000000 		RTN	
  6416
  6417
  6418					;#********************************************************************
  6419					;* IINIT - Initialize interrupt system
  6420					;#********************************************************************
  6421
  6422	041353	200 01 0 00 126562 	DIINIT:	MOVE	1,[FMSGCD (IINIT <CR>)]
  6423	041354	260 17 0 00 041300*		GO	CHKARG			; check for argument
  6424	041355	263 17 0 00 000000 		RTN				; error - exit
  6425	041356	260 17 0 00 031034*		GO	INITPI			; init PI system
  6426	041357	260 17 0 00 031345*		GO	SETVEC			; set up vector addresses
  6427	041360	263 17 0 00 000000 		RTN				; return
  6428
  6429
  6430					;#********************************************************************
  6431					;* DPINIT - Initialize PCB and queues
  6432					;#********************************************************************
  6433
  6434	041361	200 01 0 00 126566 	DPINIT:	MOVE	1,[FMSGCD (PINIT <CR>)]
  6435	041362	260 17 0 00 041354*		GO	CHKARG			; check for argument
  6436	041363	263 17 0 00 000000 		RTN				; error - exit
  6437	041364	260 17 0 00 064711 		GO	TPCB			; initialize the PCB
  6438	041365	263 17 0 00 000000 		RTN				; return
  6439
  6440
  6441					;#********************************************************************
  6442					;* DSIDLE - Start port and wait for IDLE loop
  6443					;#********************************************************************
  6444
  6445	041366	200 01 0 00 126572 	DSIDLE:	MOVE	1,[FMSGCD (SIDLE <CR>)]
  6446	041367	260 17 0 00 041362*		GO	CHKARG			; check for argument
  6447	041370	263 17 0 00 000000 		RTN				; error - exit
  6448	041371	260 17 0 00 065646 		GO	TIDLE			; start up port and wait for IDLE
  6449	041372	037 01 0 00 126573 		FMSGCD	<? Never got to idle loop>
  6450	041373	260 17 0 00 042264 		GO	SETENA			; set enable ...
  6451						GO	[SKIPN	UDEBUG
  6452							 FMSGCD	<? Couldn't enable port>
  6453	041374	260 17 0 00 126607 			 RTN]
  6454	041375	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 153
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0316

  6455
  6456					;#********************************************************************
  6457					;* DBPACK - Build packet
  6458					;#********************************************************************
  6459
  6460	041376	210 01 0 00 126612 	DBPACK:	MOVN	1,[GO	DBPACP]		; get help text
  6461	041377	260 17 0 00 040373*		GO	.DARG			; get argument
  6462	041400	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6463						 JRST	[FMSGCD	<? Missing argument - Opcode>
  6464							 GO	FIOFF
  6465	041401	254 00 0 00 126622 			 RTN]
  6466	041402	200 11 0 00 041235*		MOVE	OP,ARGUM		; get opcode
  6467	041403	260 17 0 00 070207 		GO	DECOPC			; decode the op code
  6468	041404	334 00 0 00 000000 		SKIPA				; error - print error
  6469	041405	332 00 0 00 000002 		SKIPE	2			; correct type?
  6470						JRST	[FMSGCD	<? Opcode illegal> ; no - print error
  6471							 GO	FIOFF
  6472	041406	254 00 0 00 126632 			 RTN]
  6473
  6474					; Set up arguments
  6475
  6476	041407	200 00 0 00 033676 		MOVE	RSPFLG			; get response flag
  6477	041410	202 00 0 00 065713 		MOVEM	TRSFLG			; save it
  6478	041411	200 00 0 00 033700 		MOVE	BSDFLG			; get BSD flag
  6479	041412	202 00 0 00 065712 		MOVEM	TBSDFL			; save it
  6480	041413	200 00 0 00 033677 		MOVE	FORSEL			; get format select flag
  6481	041414	202 00 0 00 065711 		MOVEM	TFMFLG			; save it
  6482	041415	200 00 0 00 033701 		MOVE	PADFLG			; get pad flag
  6483	041416	202 00 0 00 065714 		MOVEM	TPDFLG			; save it
  6484	041417	120 00 0 00 033702 		DMOVE	DADDR			; get destination address
  6485	041420	124 00 0 00 065715 		DMOVEM	TDEST			; save it
  6486	041421	200 00 0 00 033672 		MOVE	DSBYTE			; get byte count
  6487	041422	202 00 0 00 065720 		MOVEM	TBYTE			; save it
  6488	041423	402 00 0 00 065721 		SETZM	TWORD			; clear word count
  6489	041424	200 00 0 00 033673 		MOVE	DSPAT			; get data pattern
  6490	041425	202 00 0 00 065722 		MOVEM	TPAT			; save it
  6491	041426	200 00 0 00 033712 		MOVE	PTTVAL			; get PTT value
  6492	041427	202 00 0 00 065717 		MOVEM	TPTTVL			; save it
  6493	041430	260 17 0 00 065733 		GO	BPACK			; build the packet
  6494	041431	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 154
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0317

  6495
  6496					; Print help text
  6497
  6498	041432	037 01 0 00 126635 	DBPACP:	FMSGCD <BPACK opcode (CR), where opcode:>
  6499	041433	474 11 0 00 000000 		SETO	OP,			; initialize op code
  6500	041434	474 03 0 00 000000 		SETO	3,			; print count
  6501	041435	350 00 0 00 000011 	DBPAC0:	AOS	OP			; point to next one
  6502	041436	303 11 0 00 000377 		CAILE	OP,377			; done yet?
  6503						JRST	[PCRLF
  6504	041437	254 00 0 00 124125 			 RTN]
  6505	041440	260 17 0 00 070207 		GO	DECOPC			; decode op code
  6506	041441	254 00 0 00 041435 		JRST	DBPAC0			; error - keep looping
  6507	041442	332 00 0 00 000002 		SKIPE	2			; incorrect type?
  6508	041443	254 00 0 00 041435 		JRST	DBPAC0			; yes - keep looping
  6509	041444	350 00 0 00 000003 		AOS	3			; increment print count
  6510	041445	301 03 0 00 000006 		CAIL	3,6			; more than 6 on this line?
  6511						GO	[SETZ	3,		; yes - reinit everything
  6512							 PCRLF
  6513	041446	260 17 0 00 126645 			 RTN]
  6514	041447	037 00 0 00 117042 		TMSG	< >
  6515	041450	001 03 0 00 000011 		PNTOCC	3,OP			; print op code
  6516						XCT	[FMSG	<-SNDDG  >	; print in English
  6517							 FMSG	<-LDMCAT >
  6518							 FMSG	<-LDPTT  >
  6519							 FMSG	<-RCCNT  >
  6520							 FMSG	<-WRPLI  >
  6521							 FMSG	<-RDPLI  >
  6522							 FMSG	<-RDNSA  >
  6523							 FMSG	<-WRNSA  >
  6524	041451	256 00 0 01 126672 			 FMSG	<-DGRCV  >](1)
  6525	041452	254 00 0 00 041435 		JRST	DBPAC0			; loop till done
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 155
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0318

  6526
  6527					;#********************************************************************
  6528					;* DIQUEU - Insert a packet on a command queue
  6529					;#********************************************************************
  6530
  6531	041453	200 01 0 00 126707 	DIQUEU:	MOVE	1,[FMSGCD (IQUEUE <CR>)]
  6532	041454	260 17 0 00 041367*		GO	CHKARG			; check for argument
  6533	041455	263 17 0 00 000000 		RTN				; error/altmode/question - exit
  6534
  6535					; Check if a packet exists
  6536
  6537	041456	336 00 0 00 072117 		SKIPN	PACKET+3		; packet has been built?
  6538						JRST	[FMSGCD	<? Packet not built yet>
  6539							 GO	FIOFF
  6540	041457	254 00 0 00 126716 			 RTN]
  6541
  6542					; Insert onto the specified command queue
  6543
  6544	041460	260 17 0 00 066703 		GO	INSQUE			; insert into queue
  6545						JRST	[FMSGCD	<? PTT value illegal>
  6546							 GO	FIOFF
  6547	041461	254 00 0 00 126726 			 RTN]
  6548						JRST	[FMSGCD	<? No free queue entries available or interlock failed>
  6549							 GO	FIOFF
  6550	041462	254 00 0 00 126745 			 RTN]
  6551	041463	263 17 0 00 000000 		RTN				; return
  6552
  6553
  6554					;#********************************************************************
  6555					;* DPPCB - Print PCB
  6556					;#********************************************************************
  6557
  6558	041464	200 01 0 00 126753 	DPPCB:	MOVE	1,[FMSGCD (PPCB <CR>)]
  6559	041465	260 17 0 00 041454*		GO	CHKARG			; check for argument
  6560	041466	263 17 0 00 000000 		RTN				; error - exit
  6561	041467	260 17 0 00 070747 		GO	PPCB			; print PCB data
  6562	041470	037 00 0 00 030242 		PCRL
  6563	041471	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 156
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0319

  6564
  6565					;#********************************************************************
  6566					;* DPQUEU - Print specified queue
  6567					;#********************************************************************
  6568
  6569					DPQUEU:	MOVE	1,[FMSGCD <PQUEUE n1,n2 (CR) where n is:
  6570					0-CmdQ  2-UnkQ   4-Ptt
  6571	041472	200 01 0 00 126775 	1-RspQ  3-PttFq  5-Mcast>]
  6572	041473	260 17 0 00 041377*		GO	.DARG			; get argument
  6573	041474	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6574						 JRST	[FMSGCD	<? Missing argument>
  6575							 GO	FIOFF
  6576	041475	254 00 0 00 117722 			 RTN]
  6577	041476	331 01 0 00 041402*		SKIPL	1,ARGUM			; get argument, in range
  6578	041477	303 01 0 00 000005 		CAILE	1,5			;   0-5?
  6579						JRST	[FMSGCD	<? Queue number out of range 0-5>
  6580							 GO	FIOFF
  6581	041500	254 00 0 00 127006 			 RTN]
  6582	041501	202 01 0 00 134215'		MOVEM	1,QARG1#		; save queue number
  6583	041502	202 01 0 00 134216'		MOVEM	1,QARG2#		; save queue number
  6584
  6585						MOVN	1,[FMSGCD <PQUEUE n1,n2 (CR) where n is:
  6586					0-CmdQ  2-UnkQ   4-Ptt
  6587	041503	210 01 0 00 126775 	1-RspQ  3-PttFq  5-Mcast>]
  6588	041504	260 17 0 00 041473*		GO	.DARG			; get argument
  6589	041505	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6590	041506	254 00 0 00 041515 		JRST	DPQUE0
  6591	041507	331 01 0 00 041476*		SKIPL	1,ARGUM			; get argument, in range
  6592	041510	303 01 0 00 000005 		CAILE	1,5			;   0-5?
  6593						JRST	[FMSGCD	<? Queue number out of range 0-5>
  6594							 GO	FIOFF
  6595	041511	254 00 0 00 127006 			 RTN]
  6596	041512	202 01 0 00 134216'		MOVEM	1,QARG2#		; save queue number
  6597	041513	315 01 0 00 134215'		CAMGE	1,QARG1			; see if range ok?
  6598						JRST	[FMSGCD <? Range nonsensical>
  6599							 GO	FIOFF
  6600	041514	254 00 0 00 122563 			 RTN]
  6601
  6602	041515	200 13 0 00 134215'	DPQUE0:	MOVE	Q,QARG1			; get queue number
  6603	041516	260 17 0 00 067305 		GO	PQUEUE			; print this queue
  6604	041517	037 00 0 00 030242 		PCRL				; final CRLF
  6605	041520	332 00 0 00 134143'		SKIPE	ALTF			; altmode typed?
  6606	041521	263 17 0 00 000000 		RTN				; yes - exit
  6607	041522	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6608	041523	334 00 0 00 000000 		SKIPA				; no - loop till done
  6609	041524	263 17 0 00 000000 		RTN				; yes - exit
  6610	041525	350 13 0 00 134215'		AOS	Q,QARG1			; point to next queue
  6611	041526	317 13 0 00 134216'		CAMG	Q,QARG2			; done yet?
  6612	041527	254 00 0 00 041515 		JRST	DPQUE0			; no - loop till done
  6613	041530	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 157
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0320

  6614
  6615					;#********************************************************************
  6616					;* DWATCH - Watch port and print events and loop back packets
  6617					;#********************************************************************
  6618
  6619	041531	402 00 0 00 041507*	DWATCH:	SETZM	ARGUM			; default to echo
  6620	041532	350 00 0 00 041531*		AOS	ARGUM			;  ...
  6621	041533	210 01 0 00 127024 		MOVN	1,[FMSGCD <WATCH (echo) or WATCH 0 (no echo) or 1 (echo) (CR)>]
  6622	041534	260 17 0 00 041231*		GO	.OARG			; get argument
  6623	041535	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6624	041536	255 00 0 00 000000 		 JFCL				; no argument typed - continue
  6625	041537	261 17 0 00 000002 		RPUT	(2,3)			; save AC's
  6626
  6627	041541	200 00 0 00 127025 		MOVE	[PACKET,,SAVPKT]	; get BLT pointer
  6628	041542	251 00 0 00 074437 		BLT	SAVPKT+^D399		; save PACKET data
  6629	041543	260 17 0 00 065646 		GO	TIDLE			; ensure in idle loop
  6630						JRST	[SKIPE	UDEBUG
  6631							 JRST	.+1
  6632							 FMSGCD	<? Couldn't start port>
  6633							 RGET	(3,2)
  6634	041544	254 00 0 00 127034 			 RTN]
  6635	041545	260 17 0 00 042264 		GO	SETENA			; ensure the port is enabled
  6636						JRST	[SKIPE	UDEBUG
  6637							 JRST	.+1
  6638							 FMSGCD	<? Couldn't enable port>
  6639							 RGET	(3,2)
  6640	041546	254 00 0 00 127042 			 RTN]
  6641
  6642					; Initialize everything
  6643
  6644	041547	402 00 0 00 134201'		SETZM	NCHAR#			; clear last character typed
  6645	041550	402 00 0 00 134207'		SETZM	NPACKS#			; clear number of packets sent
  6646	041551	402 00 0 00 134206'		SETZM	NPACKR#			; clear number of packets received
  6647	041552	402 00 0 00 134204'		SETZM	NPACKO#			; clear number of other packets rcvd
  6648	041553	402 00 0 00 134203'		SETZM	NPACKL#			; clear number of packets looped
  6649	041554	402 00 0 00 134205'		SETZM	NPACKQ#			; clear number of rsp requested rcvd
  6650	041555	402 00 0 00 134170'		SETZM	LOOFLG#			; clear loopback flag
  6651	041556	476 00 0 00 134163'		SETOM	IGNFLG#			; set ignore other packets flag
  6652	041557	402 00 0 00 134242'		SETZM	SNDFLG#			; clear send packet flag
  6653	041560	402 00 0 00 134243'		SETZM	SNDTIM#			; init time to send next packet
  6654	041561	400 03 0 00 000000 		SETZ	3,			; set up to read time
  6655	041562	260 17 0 00 032034*		GO	RUNTME			; get runtime so far
  6656	041563	200 00 0 00 031637*		MOVE	CURTIM			; get current time
  6657	041564	270 00 0 00 033707 		ADD	DSSUM			; point to next interval
  6658	041565	202 00 0 00 134246'		MOVEM	STIME#			; save statistics time
  6659	041566	402 00 0 00 134225'		SETZM	RQAFLG#			; clear response queue available flag
  6660
  6661					; Help message
  6662
  6663	041567	037 00 0 00 127050 	DWATCQ:	TMSGC	<[Type:  S-SndPk   O-SndPks  L-Loopback  0-EchoOff  1-EchoOn>
  6664	041570	037 00 0 00 127065 		TMSGC	<        2-PntCSR  3-PntPCB  4-PntStats  5-IgnorePk $-Exit>
  6665	041571	037 00 0 00 127101 		TMSGCD	<        ?-ThisText]>
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 158
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0321

  6666
  6667					; Start of idle loop
  6668
  6669	041572	334 00 0 00 000000 	DWATC0:	SKIPA				; JFCL this to do sanity checking
  6670	041573	260 17 0 00 042150 		GO	SANCHK			; do a sanity check of the free queues
  6671	041574	037 07 0 00 000003 		TTALTM				; altmode typed?
  6672	041575	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  6673	041576	254 00 0 00 042142 		JRST	DWATCX			; yes - exit
  6674	041577	332 00 0 00 134143'		SKIPE	ALTF			; altmode flagged?
  6675	041600	254 00 0 00 042142 		JRST	DWATCX			; yes - exit
  6676	041601	336 00 0 00 134201'		SKIPN	NCHAR			; prior character saved?
  6677	041602	202 00 0 00 134201'		MOVEM	NCHAR			; no - save this one
  6678
  6679					; Verify the port is still running
  6680
  6681	041603	260 17 0 00 037542*		GO	RDCSR			; read CSR
  6682	041604	400 01 0 00 000000 		SETZ	1,			; error
  6683	041605	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  6684	041606	602 01 0 00 000010 		TRNE	1,MPRUN			; no - still running?
  6685	041607	334 00 0 00 000000 		SKIPA				; yes - continue
  6686					 	JRST	[TMSGCD	<[Port is no longer running]>
  6687	041610	254 00 0 00 127115 			 JRST	DWATCY]
  6688
  6689					; Check on summary interval time
  6690
  6691	041611	400 03 0 00 000000 		SETZ	3,			; set up to read time
  6692	041612	260 17 0 00 041562*		GO	RUNTME			; get runtime so far
  6693	041613	200 00 0 00 041563*		MOVE	CURTIM			; get current time
  6694	041614	315 00 0 00 134246'		CAMGE	STIME			; time to print statistics?
  6695	041615	254 00 0 00 041667 		JRST	DWATC1			; no - continue
  6696	041616	037 00 0 00 127117 		TMSGC	<*** Statistics >
  6697	041617	332 00 0 00 134156'		SKIPE	EDEBUG			; expanded data switch set?
  6698						GO	[TMSG	<Port->		; yes - print what port
  6699							 LDB	[POINT 3,MBCN,9];   this is
  6700							 PNT2
  6701							 PSP
  6702	041620	260 17 0 00 120112 			 RTN]
  6703	041621	200 03 0 00 117045 		MOVE	3,[JFCL]		; set up to print time
  6704	041622	260 17 0 00 041612*		GO	RUNTME			; print elapsed time
  6705	041623	037 00 0 00 127123 		TMSG	< ***>
  6706
  6707	041624	336 00 0 00 134207'		SKIPN	NPACKS			; anything yet?
  6708	041625	254 00 0 00 041632 		JRST	.+5			; no - continue
  6709	041626	037 00 0 00 127124 		TMSGC	< Packets sent:   >
  6710	041627	200 00 0 00 134207'		MOVE	NPACKS			; get packets sent
  6711	041630	037 15 0 00 000000 		PNTDEC				; print it
  6712	041631	037 00 0 00 122466 		TMSG	<.>
  6713
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 159
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0322

  6714	041632	336 00 0 00 134206'		SKIPN	NPACKR			; anything yet?
  6715	041633	254 00 0 00 041640 		JRST	.+5			; no - continue
  6716	041634	037 00 0 00 127130 		TMSGC	< Packets rcvd:   >
  6717	041635	200 00 0 00 134206'		MOVE	NPACKR			; get packets received
  6718	041636	037 15 0 00 000000 		PNTDEC				; print it
  6719	041637	037 00 0 00 127134 		TMSG	<. (from self)>
  6720
  6721	041640	336 00 0 00 134205'		SKIPN	NPACKQ			; anything yet?
  6722	041641	254 00 0 00 041646 		JRST	.+5			; no - continue
  6723	041642	037 00 0 00 127137 		TMSGC	< RspRqsted rcvd: >
  6724	041643	200 00 0 00 134205'		MOVE	NPACKQ			; get response requested received
  6725	041644	037 15 0 00 000000 		PNTDEC				; print it
  6726	041645	037 00 0 00 122466 		TMSG	<.>
  6727
  6728	041646	336 00 0 00 134203'		SKIPN	NPACKL			; anything yet?
  6729	041647	254 00 0 00 041654 		JRST	.+5			; no - continue
  6730	041650	037 00 0 00 127143 		TMSGC	< Packets looped: >
  6731	041651	200 00 0 00 134203'		MOVE	NPACKL			; get packets sent
  6732	041652	037 15 0 00 000000 		PNTDEC				; print it
  6733	041653	037 00 0 00 122466 		TMSG	<.>
  6734
  6735	041654	336 00 0 00 134204'		SKIPN	NPACKO			; anything yet?
  6736	041655	254 00 0 00 041662 		JRST	.+5			; no - continue
  6737	041656	037 00 0 00 127130 		TMSGC	< Packets rcvd:   >
  6738	041657	200 00 0 00 134204'		MOVE	NPACKO			; get packets received
  6739	041660	037 15 0 00 000000 		PNTDEC				; print it
  6740	041661	037 00 0 00 127147 		TMSG	<. (from other nodes)>
  6741
  6742	041662	037 00 0 00 030242 		PCRL
  6743	041663	200 00 0 00 041613*		MOVE	CURTIM			; get current time
  6744	041664	270 00 0 00 033707 		ADD	DSSUM			; add interval time
  6745	041665	202 00 0 00 134246'		MOVEM	STIME			; set up next statistics time
  6746	041666	254 00 0 00 041750 		JRST	DWATC2			; check for character typed
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 160
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0323

  6747
  6748					; Check on response queue entries
  6749
  6750	041667	260 17 0 00 067151 	DWATC1:	GO	CHKRQV			; check response queue available
  6751	041670	260 17 0 00 067100 		GO	CHKRSP			; check for RspQ entry
  6752						JRST	[SETZM	RQAFLG		; no entry found - continue
  6753							 MOVE	1,PCB+5		; get response queue FLINK
  6754							 GO	CONVIR		; convert to virtual
  6755							 CAIE	1,PCB+5		; queue really empty?
  6756							 SETOM	RQAFLG		; no - set rsp queue avail flag
  6757	041671	254 00 0 00 127154 			 JRST	DWATC2]
  6758	041672	135 11 0 00 127162 		LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  6759	041673	302 11 0 00 000001 		CAIE	OP,DGSNT		; datagram sent (response)
  6760	041674	306 11 0 00 000005 		CAIN	OP,DGRCV		;   or received?
  6761	041675	334 00 0 00 000000 		SKIPA				; yes - continue
  6762	041676	254 00 0 00 041703 		JRST	.+5			; no - continue
  6763	041677	120 00 0 00 033704 		DMOVE	SADDR			; get correct address
  6764	041700	316 00 0 00 073007 		CAMN	RSPONS+7		; first word correct?
  6765	041701	312 01 0 00 073010 		CAME	1,RSPONS+10		; yes - 2nd word correct?
  6766						JRST	[CAIE	OP,DGRCV	; no - from another node or a
  6767							 JRST	[AOS	NPACKQ	;   response requested of a frame
  6768								 SKIPN	IGNFLG	;   sent to another node
  6769								 JRST	.+2
  6770								 JRST	DWATC2]
  6771							 AOS	NPACKO
  6772							 SKIPN	ARGUM
  6773							 JRST	DWATLP
  6774							 SKIPN	IGNFLG
  6775							 GO	PNTRSP
  6776	041702	254 00 0 00 127167 			 JRST	DWATLP]
  6777	041703	302 11 0 00 000005 		CAIE	OP,DGRCV		; response requested?
  6778	041704	350 00 0 00 134205'		AOS	NPACKQ			; yes - increment rsp rqsted count
  6779	041705	306 11 0 00 000005 		CAIN	OP,DGRCV		; response requested?
  6780	041706	350 00 0 00 134206'		AOS	NPACKR			; no - increment receive count
  6781	041707	332 00 0 00 041532*		SKIPE	ARGUM			; echo on?
  6782	041710	260 17 0 00 042227 		GO	PNTRSP			; yes - print it
  6783	041711	254 00 0 00 041750 		JRST	DWATC2			; continue
  6784
  6785					; Got a response - check if we should loop it back
  6786
  6787	041712	336 00 0 00 134170'	DWATLP:	SKIPN	LOOFLG			; loopback flag set?
  6788	041713	254 00 0 00 041750 		JRST	DWATC2			; no - continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 161
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0324

  6789
  6790					; Loopback - convert to an outgoing datagram to put onto cmd queue
  6791
  6792	041714	402 00 0 00 072114 		SETZM	PACKET			; initialize packet data
  6793	041715	200 00 0 00 127177 		MOVE	[PACKET,,PACKET+1]	; get BLT pointer
  6794	041716	251 00 0 00 072733 		BLT	PACKET+^D399		; zero it
  6795	041717	201 00 0 00 000001 		MOVEI	1			; set flags to response=yes
  6796	041720	137 00 0 00 127200 		DPB	[POINT 8,PACKET+3,15]	; save flags
  6797	041721	201 11 0 00 000001 		MOVEI	OP,SNDDG		; get op code for SNDDG
  6798	041722	137 11 0 00 127201 		DPB	OP,[POINT 8,PACKET+3,23]; save it
  6799	041723	200 00 0 00 073011 		MOVE	RSPONS+11		; get PTT value
  6800	041724	202 00 0 00 072121 		MOVEM	PACKET+5		; save it
  6801	041725	200 00 0 00 073004 		MOVE	RSPONS+4		; get text length
  6802	041726	275 00 0 00 000004 		SUBI	4			; subtract off the CRC
  6803	041727	202 00 0 00 072120 		MOVEM	PACKET+4		; save it
  6804	041730	201 00 0 00 105071 		MOVEI	PTTFQ+1			; get address of FLINK of free queue
  6805	041731	202 00 0 00 072122 		MOVEM	PACKET+6		; save it
  6806	041732	120 00 0 00 073007 		DMOVE	RSPONS+7		; get source address
  6807	041733	124 00 0 00 072123 		DMOVEM	PACKET+7		; set up destination address
  6808	041734	200 00 0 00 127202 		MOVE	[RSPONS+13,,PACKET+11]	; build BLT pointer
  6809	041735	251 00 0 00 072732 		BLT	PACKET+^D398		; copy the data
  6810
  6811					; Loopback - insert on queue
  6812
  6813	041736	260 17 0 00 066703 		GO	INSQUE			; insert into queue
  6814						JRST	[TMSGCD	<? PTT value illegal>
  6815	041737	254 00 0 00 127203 			 JRST	DWATC2]
  6816						JRST	[TMSGCD	<? No free queue entries available or interlock failed>
  6817	041740	254 00 0 00 127205 			 JRST	DWATC2]
  6818	041741	350 00 0 00 134203'		AOS	NPACKL			; increment packet looped count
  6819	041742	337 00 0 00 066650 		SKIPG	NUMENT			; was the queue empty?
  6820						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  6821							 TMSGCD	<? Read CSR failed>
  6822							 TRO	1,400
  6823							 GO	LDCSR
  6824	041743	260 17 0 00 127214 			 RTN]
  6825	041744	336 00 0 00 134163'		SKIPN	IGNFLG			; ignore looped packets?
  6826	041745	336 00 0 00 041707*		SKIPN	ARGUM			;   or echo off?
  6827	041746	334 00 0 00 000000 		SKIPA				; yes - continue
  6828						GO	[TMSGC	<***** >	; no - print data
  6829							 GO	PTIME
  6830							 TMSG	<** Packet (>
  6831							 GO	OPCPNT
  6832							 TMSGD	<) Inserted on CmdQ **>
  6833	041747	260 17 0 00 127233 			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 162
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0325

  6834
  6835					; Finally, check to see if a special character was typed - S,O,L,0,1,2,3,4,5,?
  6836
  6837	041750	332 00 0 00 041745*	DWATC2:	SKIPE	ARGUM			; echo on?
  6838	041751	260 17 0 00 032264*		GO	.INPNT			; yes - print any interrupt fielded
  6839	041752	200 00 0 00 134201'		MOVE	NCHAR			; get last character typed
  6840	041753	402 00 0 00 134201'		SETZM	NCHAR			; clear last character typed
  6841	041754	302 00 0 00 000123 		CAIE	123			; was it an 'S'?
  6842	041755	306 00 0 00 000163 		CAIN	163			;   or 's'?
  6843	041756	254 00 0 00 042050 		JRST	DWATC7			; yes - insert another packet
  6844	041757	302 00 0 00 000117 		CAIE	117			; was it an 'O'?
  6845	041760	306 00 0 00 000157 		CAIN	157			;   or 'o'?
  6846	041761	254 00 0 00 042120 		JRST	DWATC8			; yes - complement send flag
  6847	041762	302 00 0 00 000114 		CAIE	114			; was it an 'L'?
  6848	041763	306 00 0 00 000154 		CAIN	154			;   or 'l'?
  6849	041764	254 00 0 00 042126 		JRST	DWATC9			; yes - insert another packet
  6850	041765	306 00 0 00 000060 		CAIN	60			; was it a '0'?
  6851	041766	402 00 0 00 041750*		SETZM	ARGUM			; yes - set echo off
  6852	041767	306 00 0 00 000061 		CAIN	61			; was it a '1'?
  6853	041770	476 00 0 00 041766*		SETOM	ARGUM			; yes - set echo on
  6854	041771	306 00 0 00 000060 		CAIN	60			; was it a '0'?
  6855	041772	037 00 0 00 127241 		TMSGCD	<[Echo off]>
  6856	041773	306 00 0 00 000061 		CAIN	61			; was it a '1'?
  6857	041774	037 00 0 00 127244 		TMSGCD	<[Echo on]>
  6858	041775	306 00 0 00 000062 		CAIN	62			; was it a '2'?
  6859	041776	254 00 0 00 042017 		JRST	DWATC3			; yes - print CSR
  6860	041777	306 00 0 00 000063 		CAIN	63			; was it a '3'?
  6861	042000	254 00 0 00 042027 		JRST	DWATC4			; yes - print PCB data
  6862	042001	306 00 0 00 000064 		CAIN	64			; was it a '4'?
  6863	042002	254 00 0 00 042043 		JRST	DWATC6			; yes - print statistics
  6864	042003	306 00 0 00 000065 		CAIN	65			; was it a '5'?
  6865	042004	254 00 0 00 042134 		JRST	DWATCA			; yes - complement ignore packets flag
  6866	042005	306 00 0 00 000077 		CAIN	77			; was it a '?'?
  6867	042006	254 00 0 00 041567 		JRST	DWATCQ			; yes - print some help
  6868
  6869					; Check to see if we should send a packet
  6870
  6871	042007	336 00 0 00 134242'		SKIPN	SNDFLG			; sending packets?
  6872	042010	254 00 0 00 041572 		JRST	DWATC0			; no - continue
  6873	042011	200 00 0 00 000000*		MOVE	DEBTIM			; get current time (milliseconds)
  6874	042012	315 00 0 00 134243'		CAMGE	SNDTIM			; time to send another packet?
  6875	042013	254 00 0 00 041572 		JRST	DWATC0			; no - continue
  6876	042014	270 00 0 00 033710 		ADD	DSINT			; set up next send time
  6877	042015	202 00 0 00 134243'		MOVEM	SNDTIM			; save it
  6878	042016	254 00 0 00 042050 		JRST	DWATC7			; go send the packet
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 163
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0326

  6879
  6880					; An '2' was typed, print CSR register
  6881
  6882	042017	260 17 0 00 041603*	DWATC3:	GO	RDCSR			; read CSR register
  6883	042020	037 00 0 00 127207 		TMSGCD	<? Read CSR failed> 	; error - failed
  6884	042021	037 00 0 00 127221 		TMSGC	<***** >
  6885	042022	260 17 0 00 000000*		GO	PTIME			; print time
  6886	042023	037 00 0 00 127247 		TMSG	< ***** CSR>
  6887	042024	260 17 0 00 042605 		GO	CSRPNT			; print CSR data in English
  6888	042025	037 00 0 00 030242 		PCRL				; end of line
  6889	042026	254 00 0 00 041572 		JRST	DWATC0			; keep looping
  6890
  6891					; An '3' was typed, print PCB data
  6892
  6893	042027	260 17 0 00 042032 	DWATC4:	GO	DWATC5			; go print it
  6894	042030	037 00 0 00 030242 		PCRL				; end of line
  6895	042031	254 00 0 00 041572 		JRST	DWATC0			; keep looping
  6896
  6897	042032	261 17 0 00 000000 	DWATC5:	RPUT	(0,1,2,3,4)		; save AC's
  6898
  6899	042037	037 00 0 00 127221 		TMSGC	<***** >
  6900	042040	260 17 0 00 042022*		GO	PTIME			; print time
  6901	042041	037 00 0 00 127252 		TMSG	< ***** PCB>
  6902	042042	254 00 0 00 071023 		PJRST	PPCBD			; print the PCB data
  6903
  6904					; An '4' was typed, print statistics
  6905
  6906	042043	400 03 0 00 000000 	DWATC6:	SETZ	3,			; set up to read time
  6907	042044	260 17 0 00 041622*		GO	RUNTME			; get runtime so far
  6908	042045	200 00 0 00 041663*		MOVE	CURTIM			; get current time
  6909	042046	202 00 0 00 134246'		MOVEM	STIME			; set time to print statistics
  6910	042047	254 00 0 00 041572 		JRST	DWATC0			; continue
  6911
  6912					; An 'S' was typed, insert a packet
  6913
  6914	042050	332 00 0 00 041770*	DWATC7:	SKIPE	ARGUM			; echo on?
  6915	042051	037 00 0 00 030242 		PCRL				; yes
  6916	042052	200 00 0 00 127255 		MOVE	[SAVPKT,,PACKET]	; get BLT pointer
  6917	042053	251 00 0 00 072733 		BLT	PACKET+^D399		; copy saved packet data
  6918	042054	336 00 0 00 072117 		SKIPN	PACKET+3		; any packet data here?
  6919						JRST	[TMSGCD	<? No prior packet - nothing put on queue>
  6920	042055	254 00 0 00 127267 			 JRST	DWATC0]
  6921	042056	260 17 0 00 067164 		GO	PTCHKP			; check for a matching PTT value?
  6922	042057	201 13 0 00 000003 		MOVEI	Q,3			; no - set to PTT free queue anyway
  6923	042060	260 17 0 00 066516 		GO	CHKINT			; check interlock word
  6924						JRST	[TMSGCD	<? Interlock failed>
  6925	042061	254 00 0 00 127276 			 JRST	DWATC0]
  6926						XCT	[SETOM PCB+10		; reset interlock 
  6927	042062	256 00 0 13 127276 			 SETOM PTTFQ]-2(Q) 	;  ...
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 164
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0327

  6928	042063	200 00 0 00 066650 		MOVE	NUMENT			; number of entries on free queue
  6929	042064	305 00 0 00 000010 		CAIGE	8			; less than or equal to 8?
  6930	042065	254 00 0 00 041572 		JRST	DWATC0			; yes - don't insert an entry
  6931	042066	260 17 0 00 066703 		GO	INSQUE			; insert into queue
  6932						JRST	[TMSGCD	<? PTT value illegal>
  6933	042067	254 00 0 00 127302 			 JRST	DWATC0]
  6934						JRST	[TMSGCD	<? No free queue entries available or interlock failed>
  6935	042070	254 00 0 00 127304 			 JRST	DWATC0]
  6936	042071	336 00 0 00 066650 		SKIPN	NUMENT			; any entries on the cmd queue already?
  6937						GO	[GO	RDCSR		; no - set command queue available
  6938							 JFCL			;    bit in CSR register
  6939							 TRO	1,CMDQAV
  6940							 GO	LDCSR
  6941	042072	260 17 0 00 127306 			 RTN]
  6942	042073	350 00 0 00 134207'		AOS	NPACKS			; increment sent count
  6943	042074	332 00 0 00 042050*		SKIPE	ARGUM			; echo on?
  6944						GO	[TMSGC	<***** >	; yes - print message
  6945							 GO	PTIME
  6946							 TMSG	<** Packet (>
  6947							 LDB	OP,[POINT 8,PACKET+3,23]
  6948							 GO	OPCPNT
  6949							 TMSGD	<) Inserted on CmdQ **>
  6950	042075	260 17 0 00 127313 			 RTN]
  6951
  6952					; Debug mode - put command queue entry on the response queue
  6953
  6954	042076	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  6955	042077	254 00 0 00 041572 		JRST	DWATC0			; no - continue
  6956	042100	201 13 0 00 000000 		MOVEI	Q,0			; point to cmd queue
  6957	042101	260 17 0 00 066516 		GO	CHKINT			; check interlock word
  6958						JRST	[TMSGCD	<? Interlock failed for cmd queue>
  6959	042102	254 00 0 00 127332 			 JRST	DWATC0]
  6960	042103	336 00 0 00 066650 		SKIPN	NUMENT			; queue empty?
  6961						JRST	[SETOM	PCB		; yes - reset the interlock
  6962	042104	254 00 0 00 127334 			 JRST	DWATC0]
  6963	042105	260 17 0 00 066766 		GO	GETQUE			; remove command from command queue
  6964	042106	255 00 0 00 000000 		JFCL				; failed - ignore
  6965	042107	202 01 0 00 134202'		MOVEM	1,NEWENT		; save entry address
  6966	042110	476 00 0 00 072000 		SETOM	PCB			; reset interlock
  6967	042111	201 13 0 00 000001 		MOVEI	Q,1			; point to response queue
  6968	042112	260 17 0 00 066516 		GO	CHKINT			; check interlock word
  6969						JRST	[TMSGCD	<? Interlock failed for rsp queue>
  6970	042113	254 00 0 00 127346 			 JRST	DWATC0]
  6971	042114	200 01 0 00 134202'		MOVE	1,NEWENT		; get entry address
  6972	042115	260 17 0 00 067022 		GO	PUTQUE			; insert command on command queue
  6973	042116	476 00 0 00 072004 		SETOM	PCB+4			; reset interlock
  6974	042117	254 00 0 00 041572 		JRST	DWATC0			; keep looping
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 165
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0328

  6975
  6976					; An 'O' was typed, complement send packet flag
  6977
  6978	042120	402 00 0 00 134243'	DWATC8:	SETZM	SNDTIM			; clear send time
  6979	042121	462 00 0 00 134242'		SETCMM	SNDFLG			; complement send flag
  6980	042122	332 00 0 00 134242'		SKIPE	SNDFLG			; set?
  6981						JRST	[TMSGC	<*** Will send packets at a >
  6982							 MOVE	DSINT			; get interval time
  6983							 PNTDEC				; print it out
  6984							 TMSGD	<. millisecond interval ***>
  6985	042123	254 00 0 00 127364 			 JRST	DWATC0]
  6986	042124	037 00 0 00 127371 		TMSGCD	<*** Will not send packets ***>
  6987	042125	254 00 0 00 041572 		JRST	DWATC0			; keep looping
  6988
  6989					; An 'L' was typed, complement loopback flag
  6990
  6991	042126	462 00 0 00 134170'	DWATC9:	SETCMM	LOOFLG			; complement loopback flag
  6992	042127	332 00 0 00 134170'		SKIPE	LOOFLG			; set?
  6993	042130	037 00 0 00 127400 		TMSGCD	<*** Will loop received datagrams ***>
  6994	042131	336 00 0 00 134170'		SKIPN	LOOFLG			; set?
  6995	042132	037 00 0 00 127411 		TMSGCD	<*** Will not loop received datagrams ***>
  6996	042133	254 00 0 00 041572 		JRST	DWATC0			; keep looping
  6997
  6998					; An '5' was typed, complement ignore other packets flag
  6999
  7000	042134	462 00 0 00 134163'	DWATCA:	SETCMM	IGNFLG			; complement loopback flag
  7001	042135	332 00 0 00 134163'		SKIPE	IGNFLG			; set?
  7002	042136	037 00 0 00 127422 		TMSGCD	<*** Will ignore datagrams from other nodes ***>
  7003	042137	336 00 0 00 134163'		SKIPN	IGNFLG			; set?
  7004	042140	037 00 0 00 127435 		TMSGCD	<*** Will not ignore datagrams from other nodes ***>
  7005	042141	254 00 0 00 041572 		JRST	DWATC0			; keep looping
  7006
  7007					; Exit
  7008	
  7009	042142	037 00 0 00 030242 	DWATCX:	PCRL
  7010	042143	260 17 0 00 042324 		GO	SETDSA			; disable the port
  7011	042144	260 17 0 00 041234*		GO	ISTOP			; stop the port
  7012	042145	262 17 0 00 000003 	DWATCY:	RGET	(3,2)			; restore AC's
  7013
  7014	042147	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 166
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0329

  7015
  7016					;#********************************************************************
  7017					;* SANCHK - Sanity check of the free queue
  7018					;#********************************************************************
  7019
  7020	042150	261 17 0 00 000000 	SANCHK:	RPUT	(0,1,2,3,Q)		; save AC's
  7021
  7022	042155	201 13 0 00 000003 		MOVEI	Q,3			; point to free queue
  7023	042156	260 17 0 00 066516 		GO	CHKINT			; check interlock word
  7024						JRST	[TMSGCD	<? Interlock failed for free queue (SANCHK)>
  7025	042157	254 00 0 00 127462 			 JRST	SANCHX]
  7026	042160	336 03 0 00 066650 		SKIPN	3,NUMENT		; any entries?
  7027	042161	254 00 0 00 042173 		JRST	SANCHX			; no - exit
  7028	042162	200 01 0 03 066562 	SANCH0:	MOVE	1,LENTRY-1(3)		; get entry address
  7029	042163	200 01 0 01 000012 		MOVE	1,12(1)			; get data pointer
  7030	042164	260 17 0 00 042207 		GO	CONVRR			; convert to virtual
  7031	042165	254 00 0 00 042202 		JRST	SANCHE			; error - exit
  7032	042166	200 02 0 03 066562 		MOVE	2,LENTRY-1(3)		; get entry address
  7033	042167	201 02 0 02 000013 		MOVEI	2,13(2)			; get data pointer
  7034	042170	312 01 0 00 000002 		CAME	1,2			; correct?
  7035	042171	254 00 0 00 042202 		JRST	SANCHE			; error - exit
  7036	042172	367 03 0 00 042162 		SOJG	3,SANCH0		; yes - loop till done
  7037	042173	476 00 0 00 105070 	SANCHX:	SETOM	PTTFQ			; reset interlock
  7038	042174	262 17 0 00 000013 		RGET	(Q,3,2,1,0)		; restore AC's
  7039
  7040	042201	263 17 0 00 000000 		RTN
  7041	042202	037 00 0 00 127464 	SANCHE:	TMSGCD	<? Free queue entry data pointer incorrect>
  7042	042203	260 17 0 00 042144*		GO	ISTOP			; stop the port
  7043	042204	200 17 0 00 134233'		MOVE	P,SAVEP			; restore stack pointer
  7044	042205	261 17 0 00 127476 		PUT	[DISP0]			; set up stack
  7045	042206	254 00 0 00 030007 		JRST	SRTDDT			; go to DDT
  7046
  7047					;#********************************************************************
  7048					;* CONVRR - Convert physical address to virtual
  7049					;
  7050					; Return:  +1 - Invalid		+2 - Valid
  7051					;#********************************************************************
  7052
  7053	042207	350 00 0 17 000000 	CONVRR:	AOS	(P)			; set up return +2
  7054	042210	261 17 0 00 000000 		RPUT	(0,2)			; save AC's
  7055
  7056	042212	621 01 0 00 777700 		TLZ	1,777700		; clear all but address bits
  7057	042213	474 02 0 00 000000 		SETO	2,			; initialize address pointer
  7058	042214	350 00 0 00 000002 	CONVR0:	AOS	2			; point to next address
  7059	042215	335 00 0 02 065470 		SKIPGE	ADRPHY(2)		; end of list?
  7060	042216	254 00 0 00 042222 		JRST	CONVRE			; yes - error - go handle
  7061	042217	312 01 0 02 065470 		CAME	1,ADRPHY(2)		; address match?
  7062	042220	254 00 0 00 042214 		JRST	CONVR0			; no - loop till done
  7063	042221	334 00 0 00 000000 		SKIPA				; ok - continue
  7064	042222	370 00 0 17 777776 	CONVRE:	SOS	-2(P)			; set up return +1
  7065	042223	200 01 0 02 065312 	CONVRX:	MOVE	1,ADRVIR(2)		; yes - get virtual address
  7066	042224	262 17 0 00 000002 		RGET	(2,0)			; restore AC's
  7067
  7068	042226	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 167
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0330

  7069
  7070					;#********************************************************************
  7071					;* PNTRSP - Print a response queue entry
  7072					;
  7073					; Given:  RSPONS - Packet from the Response Queue
  7074					;#********************************************************************
  7075
  7076					; First, check to see if we can print it or if it is being ignored
  7077
  7078	042227	261 17 0 00 000000 	PNTRSP:	RPUT	(0,1,2,Q)		; save AC's
  7079
  7080
  7081					; Print out the packet
  7082
  7083	042233	037 00 0 00 127221 	PNTRS0:	TMSGC	<***** >
  7084	042234	260 17 0 00 042040*		GO	PTIME			; print time
  7085	042235	037 00 0 00 127477 		TMSG	< ***** RspQ Entry Received (>
  7086	042236	135 11 0 00 127162 		LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  7087	042237	260 17 0 00 070134 		GO	OPCPNT			; print op code
  7088	042240	037 00 0 00 127505 		TMSG	<)>
  7089	042241	201 12 0 00 073000 		MOVEI	PK,RSPONS		; get address of packet
  7090	042242	201 13 0 00 000001 		MOVEI	Q,1			; indicate response queue
  7091	042243	261 17 0 00 127506 		RPUT	([PNTRS1],0,1)		; save return address and AC's
  7092
  7093	042246	402 00 0 00 134146'		SETZM	CMDPAK			; clear command packet flag
  7094	042247	476 00 0 00 134226'		SETOM	RSPPAK			; set response packet flag
  7095	042250	254 00 0 00 067452 		JRST	PPAKCC			; go print it out
  7096	042251	037 00 0 00 030242 	PNTRS1:	PCRL
  7097
  7098					; Exit
  7099
  7100	042252	350 00 0 17 777775 	PNTRS2:	AOS	-3(P)			; set up proper return
  7101	042253	262 17 0 00 000013 	PNTRSX:	RGET	(Q,2,1,0)		; restore AC's
  7102
  7103	042257	263 17 0 00 000000 		RTN				; return
  7104
  7105
  7106					;#********************************************************************
  7107					;* DCONF - Determine and print NI configuration
  7108					;#********************************************************************
  7109
  7110	042260	200 01 0 00 117370 	DCONF:	MOVE	1,[FMSGCD (CONFIG <CR>)]
  7111	042261	260 17 0 00 041465*		GO	CHKARG			; check for argument
  7112	042262	260 17 0 00 043073 		GO	CONPNT			; print results
  7113	042263	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 168
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0331

  7114
  7115					;#********************************************************************
  7116					;* SETENA - Ensure the port is in the enabled state
  7117					;
  7118					; Return:  +1 - Failed
  7119					;	   +2 - Succeeded
  7120					;#********************************************************************
  7121
  7122	042264	261 17 0 00 000000 	SETENA:	RPUT	(0,1,2)			; save AC's
  7123
  7124
  7125					; First set DISABLE bit and wait for DISABLE COMPLETE
  7126
  7127	042267	201 01 0 00 000050 		MOVEI	1,PDSABL!MPRUN		; get DISABLE bit
  7128	042270	336 00 0 00 030037 		SKIPN	USER			; user mode?
  7129	042271	660 01 0 00 000004 		TRO	1,4			; no - set PIA bits
  7130	042272	260 17 0 00 041100*		GO	LDCSR			; write to CSR
  7131	042273	201 02 0 00 000144 		MOVEI	2,^D100			; check up to 100 times
  7132	042274	260 17 0 00 042017*	SETEN0:	GO	RDCSR			; read CSR
  7133	042275	254 00 0 00 042320 		JRST	SETENE			; error - exit
  7134	042276	603 01 0 00 000040 		TLNE	1,(DCOMP)		; DISABLE COMPLETE set?
  7135	042277	254 00 0 00 042303 		JRST	SETEN1			; yes - continue
  7136	042300	005 00 0 00 000005 		DELAY	5			; wait 5 milliseconds
  7137	042301	367 02 0 00 042274 		SOJG	2,SETEN0		; no - loop till done
  7138	042302	254 00 0 00 042320 		JRST	SETENE			; no - error - exit
  7139
  7140					; Now set ENABLE bit and wait for ENABLE COMPLETE
  7141
  7142	042303	201 01 0 00 000030 	SETEN1:	MOVEI	1,PENABL!MPRUN		; get ENABLE bit
  7143	042304	336 00 0 00 030037 		SKIPN	USER			; user mode?
  7144	042305	660 01 0 00 000004 		TRO	1,4			; no - set PIA bits
  7145	042306	260 17 0 00 042272*		GO	LDCSR			; write to CSR
  7146	042307	201 02 0 00 000144 		MOVEI	2,^D100			; check up to 100 times
  7147	042310	260 17 0 00 042274*	SETEN2:	GO	RDCSR			; read CSR
  7148	042311	254 00 0 00 042320 		JRST	SETENE			; error - exit
  7149	042312	603 01 0 00 000020 		TLNE	1,(ECOMP)		; ENABLE COMPLETE set?
  7150	042313	254 00 0 00 042317 		JRST	SETEN3			; yes - continue
  7151	042314	005 00 0 00 000005 		DELAY	5			; wait 5 milliseconds
  7152	042315	367 02 0 00 042310 		SOJG	2,SETEN2		; no - loop till done
  7153	042316	334 00 0 00 000000 		SKIPA				; failed - exit
  7154
  7155					; Exit
  7156
  7157	042317	350 00 0 17 777775 	SETEN3:	AOS	-3(P)			; set up proper return
  7158	042320	262 17 0 00 000002 	SETENE:	RGET	(2,1,0)			; restore AC's
  7159
  7160	042323	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 169
DFNIA1	MAC	18-Feb-84 20:30		Port Debugger                                                                      SEQ 0332

  7161
  7162					;#********************************************************************
  7163					;* SETDSA - Disable the port
  7164					;#********************************************************************
  7165
  7166	042324	261 17 0 00 000001 	SETDSA:	RPUT	(1,2)			; save AC's
  7167
  7168	042326	260 17 0 00 042310*		GO	RDCSR			; read CSR
  7169	042327	400 01 0 00 000000 		SETZ	1,			; error
  7170	042330	606 01 0 00 000010 		TRNN	1,MPRUN			; port actually running?
  7171	042331	254 00 0 00 042345 		JRST	SETDSX			; no - exit
  7172	042332	201 01 0 00 000050 		MOVEI	1,PDSABL!MPRUN		; get DISABLE bit
  7173	042333	336 00 0 00 030037 		SKIPN	USER			; user mode?
  7174	042334	660 01 0 00 000004 		TRO	1,4			; no - set PIA bits
  7175	042335	260 17 0 00 042306*		GO	LDCSR			; write to CSR
  7176	042336	201 02 0 00 000144 		MOVEI	2,^D100			; check up to 100 times
  7177	042337	260 17 0 00 042326*	SETDS0:	GO	RDCSR			; read CSR
  7178	042340	254 00 0 00 042345 		JRST	SETDSX			; error - exit
  7179	042341	603 01 0 00 000040 		TLNE	1,(DCOMP)		; DISABLE COMPLETE set?
  7180	042342	254 00 0 00 042345 		JRST	SETDSX			; yes - exit
  7181	042343	005 00 0 00 000005 		DELAY	5			; wait 5 milliseconds
  7182	042344	367 02 0 00 042337 		SOJG	2,SETDS0		; no - loop till done
  7183	042345	262 17 0 00 000002 	SETDSX:	RGET	(2,1)			; restore AC's
  7184
  7185	042347	263 17 0 00 000000 		RTN				; return
  7186
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 170
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0333

  7187						SUBTTL	Program Utility Routines
  7188
  7189					;#*********************************************************************
  7190					;* TRACE - Program Trace Routine
  7191					;
  7192					; This routine traces test execution if the TRACE switch is set.  This
  7193					; routine sets up TSTSUB, ERFLG, ERRPC for error reporting during  the
  7194					; test, and ERRNUM for interrupt handling.
  7195					;#********************************************************************
  7196
  7197	042350	261 17 0 00 000000 	TRACE:	RPUT	(0,1)			; save AC's
  7198
  7199	042352	202 00 0 00 115606 		MOVEM	TSTOFF			; save relocatable offset
  7200	042353	200 01 0 00 115576 		MOVE	1,TSTNUM		; get test number
  7201	042354	200 01 0 01 032037 		MOVE	1,TSTTAB(1)		; get test flags
  7202	042355	260 17 0 00 032246*		GO	SWITT			; get switches
  7203	042356	606 00 0 00 400000 		TRNN	TRACET			; want to trace?
  7204	042357	254 00 0 00 042366 		JRST	TREX			; no
  7205	042360	037 00 0 00 127507 		TMSG	<* Test >
  7206	042361	200 00 0 00 115576 		MOVE	TSTNUM			; get test number
  7207	042362	037 16 0 00 000003 		PNTOCS				; print it
  7208	042363	603 01 0 00 000100 		TLNE	1,(TDENA)		; disabled?
  7209	042364	037 00 0 00 127511 		TMSG	< (Disabled)>		; yes - print such
  7210	042365	037 00 0 00 030242 		PCRL
  7211	042366	402 00 0 00 000015 	TREX:	SETZM	ERFLG			; clear the error detected flag
  7212	042367	402 00 0 00 030052 		SETZM	ERRPC			; clear the error PC
  7213	042370	402 00 0 00 115577 		SETZM	TSTSUB			; clear subtest number
  7214	042371	402 00 0 00 000000*		SETZM	SCOOFF			; clear error offset
  7215	042372	476 00 0 00 041321*		SETOM	INTNUM			; initialize interrupt number
  7216	042373	402 00 0 00 040444*		SETZM	SNEXT			; initialize next address
  7217	042374	402 00 0 00 040434*		SETZM	SDATA			; initialize CSR data
  7218	042375	603 01 0 00 000100 		TLNE	1,(TDENA)		; test disabled?
  7219	042376	254 00 0 00 042402 		JRST	TREXX			; yes - exit test
  7220	042377	262 17 0 00 000001 		RGET	(1,0)			; no - restore AC's
  7221
  7222	042401	263 17 0 00 000000 		RTN				; exit normally
  7223
  7224	042402	262 17 0 00 000001 	TREXX:	RGET	(1,0,XXX)		; restore AC's
  7225
  7226	042405	263 17 0 00 000000 		RTN				; exit test
  7227
  7228
  7229					;#********************************************************************
  7230					;* TSTEND - Do end of test processing
  7231					;#********************************************************************
  7232
  7233	042406	200 01 0 00 115576 	TSTEND:	MOVE	1,TSTNUM		; get test number
  7234	042407	202 15 0 01 032151 		MOVEM	ERFLG,TSTRES(1)		; save results
  7235	042410	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 171
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0334

  7236
  7237					;#********************************************************************
  7238					;* TSTPNT - Print test name/number
  7239					;#********************************************************************
  7240
  7241	042411	261 17 0 00 000000 	TSTPNT:	RPUT	(0,1)			; save AC's
  7242
  7243	042413	037 00 0 00 117745 		TMSG	<TST>
  7244	042414	200 00 0 00 115576 		MOVE	TSTNUM			; get test number
  7245	042415	037 16 0 00 000003 		PNTOCS				; print it
  7246	042416	200 00 0 00 115577 		MOVE	TSTSUB			; get subtest number
  7247	042417	322 00 0 00 042422 		JUMPE	TSTPN0			; zero?  yes - continue
  7248	042420	037 00 0 00 117115 		TMSG	<->			; no - print it
  7249	042421	037 16 0 00 000003 		PNTOCS
  7250	042422	260 17 0 00 042355*	TSTPN0:	GO	SWITT			; get switches
  7251	042423	603 00 0 00 000200 		TLNE	TXTINH			; text inhibit set?
  7252	042424	254 00 0 00 042430 		JRST	TSTPNX			; yes - exit
  7253	042425	037 00 0 00 122534 		TMSG	< - >
  7254	042426	200 01 0 00 115576 		MOVE	1,TSTNUM		; get test number
  7255	042427	256 00 0 01 032120 		XCT	TSTNAM(1)		; print test description
  7256	042430	262 17 0 00 000001 	TSTPNX:	RGET	(1,0)			; restore AC's
  7257
  7258	042432	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 172
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0335

  7259
  7260					;#********************************************************************
  7261					;* PNTCRM - Print CRAM word
  7262					;
  7263					; Arguments:	AC2 - Left 30 bits
  7264					;		AC3 - Right 30 bits
  7265					;#********************************************************************
  7266
  7267	042433	261 17 0 00 000000 	PNTCRM:	RPUT	(0,1)			; save AC's
  7268
  7269	042435	135 00 0 00 127514 		LDB	[POINT 12,2,17]		; get MWJMPFLD
  7270	042436	001 04 0 00 000000 		PNTOCC	4,0			; print it
  7271	042437	037 00 0 00 127515 		TMSG	<  >
  7272	042440	135 00 0 00 127516 		LDB	[POINT 1,2,18]		; get MWPAR
  7273	042441	037 01 0 00 000000 		PNT1				; print it
  7274	042442	037 00 0 00 127515 		TMSG	<  >
  7275	042443	135 00 0 00 127517 		LDB	[POINT 1,2,19]		; get MWOUTPUTENA
  7276	042444	037 01 0 00 000000 		PNT1				; print it
  7277	042445	135 00 0 00 127520 		LDB	[POINT 10,2,29]		; get MWMGCFLD
  7278	042446	001 04 0 00 000000 		PNTOCC	4,0			; print it
  7279	042447	037 00 0 00 127515 		TMSG	<  >
  7280	042450	135 00 0 00 127521 		LDB	[POINT 3,2,32]		; get MWSORCEFLD
  7281	042451	037 01 0 00 000000 		PNT1				; print it
  7282	042452	037 00 0 00 127515 		TMSG	<  >
  7283	042453	135 00 0 00 127522 		LDB	[POINT 3,2,35]		; get MWFUNCTFLD
  7284	042454	037 01 0 00 000000 		PNT1				; print it
  7285	042455	037 00 0 00 127515 		TMSG	<  >
  7286	042456	135 00 0 00 127523 		LDB	[POINT 3,3,8]		; get MWDESTFLD
  7287	042457	037 01 0 00 000000 		PNT1				; print it
  7288	042460	037 00 0 00 127515 		TMSG	<  >
  7289	042461	135 00 0 00 127524 		LDB	[POINT 1,3,9]		; get MWCCENA
  7290	042462	037 01 0 00 000000 		PNT1				; print it
  7291	042463	037 00 0 00 000040 		PSP
  7292	042464	135 00 0 00 127525 		LDB	[POINT 1,3,10]		; get MWRAMODE
  7293	042465	037 01 0 00 000000 		PNT1				; print it
  7294	042466	037 00 0 00 000040 		PSP
  7295	042467	135 00 0 00 127526 		LDB	[POINT 4,3,14]		; get MWPORTAFLD
  7296	042470	001 02 0 00 000000 		PNTOCC	2,0			; print it
  7297	042471	037 00 0 00 000040 		PSP
  7298	042472	135 00 0 00 127527 		LDB	[POINT 4,3,18]		; get MWPORTBFLD
  7299	042473	001 02 0 00 000000 		PNTOCC	2,0			; print it
  7300	042474	037 00 0 00 000040 		PSP
  7301	042475	135 00 0 00 127530 		LDB	[POINT 5,3,23]		; get MWSKIPFLD
  7302	042476	001 02 0 00 000000 		PNTOCC	2,0			; print it
  7303	042477	037 00 0 00 127515 		TMSG	<  >
  7304	042500	135 00 0 00 127531 		LDB	[POINT 3,3,26]		; get MWBUSCTLFLD
  7305	042501	037 01 0 00 000000 		PNT1				; print it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 173
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0336

  7306	042502	037 00 0 00 127515 		TMSG	<  >
  7307	042503	135 00 0 00 127532 		LDB	[POINT 1,3,27]		; get MWCARRY
  7308	042504	037 01 0 00 000000 		PNT1				; print it
  7309	042505	037 00 0 00 000040 		PSP
  7310	042506	135 01 0 00 127533 		LDB	1,[POINT 4,3,31]	; get MWCTRLFLD
  7311						XCT	[TMSG	<JZ  >		; print in English
  7312							 TMSG	<CJS >
  7313							 TMSG	<JMAP>
  7314							 TMSG	<CJP >
  7315							 TMSG	<PUSH>
  7316							 TMSG	<JSRP>
  7317							 TMSG	<CJV >
  7318							 TMSG	<JRP >
  7319							 TMSG	<RFCT>
  7320							 TMSG	<RPCT>
  7321							 TMSG	<CRTN>
  7322							 TMSG	<CJPP>
  7323							 TMSG	<LDCT>
  7324							 TMSG	<LOOP>
  7325							 TMSG	<CONT>
  7326	042507	256 00 0 01 127554 			 TMSG	<TWB >](1)
  7327	042510	037 00 0 00 127515 		TMSG	<  >
  7328	042511	135 00 0 00 127574 		LDB	[POINT 1,3,32]		; get MWTIMEFLD
  7329	042512	037 01 0 00 000000 		PNT1				; print it
  7330	042513	037 00 0 00 000040 		PSP
  7331	042514	135 00 0 00 127575 		LDB	[POINT 2,3,34]		; get MWSPARE00-01
  7332	042515	037 01 0 00 000000 		PNT1				; print it
  7333	042516	037 00 0 00 000040 		PSP
  7334	042517	135 00 0 00 127576 		LDB	[POINT 1,3,35]		; get MWMARKBIT
  7335	042520	037 01 0 00 000000 		PNT1				; print it
  7336	042521	037 07 0 00 000003 		TTALTM				; altmode typed?
  7337	042522	334 00 0 00 000000 		SKIPA				; no - continue
  7338						GO	[SETOM	ALTF		; yes - set 'altmode typed' flag
  7339							 SETZM	MULFLG		;   and clear 'examine next' flag
  7340	042523	260 17 0 00 127577 			 RTN]
  7341	042524	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  7342
  7343	042526	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 174
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0337

  7344
  7345					;#********************************************************************
  7346					;* PNTWD - Print a CRAM word (xxxx xxxx xxxx xxxx xxxx)
  7347					;
  7348					; Argument:	AC2 - Left half
  7349					;		AC3 - Right half
  7350					;#********************************************************************
  7351
  7352	042527	261 17 0 00 000000 	PNTWD:	RPUT	(0,1)			; save AC's
  7353
  7354	042531	135 00 0 00 127514 		LDB	[POINT 12,2,17]		; get 1st 4 digits
  7355	042532	037 04 0 00 000000 		PNT4				; print them
  7356	042533	135 00 0 00 127602 		LDB	[POINT 12,2,29]		; get 2nd 4 digits
  7357	042534	037 04 0 00 000000 		PNT4				; print them
  7358	042535	135 01 0 00 127603 		LDB	1,[POINT 6,2,35]	; get next 6 bits
  7359	042536	135 00 0 00 127604 		LDB	[POINT 6,3,11]		; get next 6 bits
  7360	042537	242 01 0 00 000006 		LSH	1,6			; position correctly
  7361	042540	434 00 0 00 000001 		IOR	1			; build 12 bits (3rd 4 digits)
  7362	042541	037 04 0 00 000000 		PNT4				; print them
  7363	042542	135 00 0 00 127605 		LDB	[POINT 12,3,23]		; get 1st 4 digits
  7364	042543	037 04 0 00 000000 		PNT4				; print them
  7365	042544	135 00 0 00 127606 		LDB	[POINT 12,3,35]		; get last 4 digits
  7366	042545	037 04 0 00 000000 		PNT4				; print them
  7367	042546	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  7368
  7369	042550	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 175
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0338

  7370
  7371					;#********************************************************************
  7372					;* CALPAR - Calculate parity for a CRAM location
  7373					;
  7374					; Arguments:	AC1 - Contains 2nd word of microword as  put  together
  7375					;		      by the microword macro MWORD.  This is only used
  7376					;		      to look at bit 35 which is a flag specifying bad
  7377					;		      parity.
  7378					;		AC2 - Bits 0-29 (Right justified)
  7379					;		AC3 - Bits 30-59 (Right justified)
  7380					;
  7381					; Function:	Calculate good parity and insert into Bit 12  of  the
  7382					;		microword which is Bit 18 in AC2. Then if 'force bad
  7383					;		parity' flag is set, complement this bit.
  7384					;
  7385					; Return:	+1 always.  AC's are unmodified, except bit 18 of AC2.
  7386					;#********************************************************************
  7387
  7388	042551	261 17 0 00 000004 	CALPAR:	RPUT	(4,5,6,7)		; save AC's
  7389
  7390	042555	402 00 0 00 134145'		SETZM	CALMAR#			; clear MARK bit location
  7391	042556	602 03 0 00 000001 		TRNE	3,1			; MARK bit set?
  7392	042557	476 00 0 00 134145'		SETOM	CALMAR			; yes - note the fact
  7393	042560	620 03 0 00 000001 		TRZ	3,1			; ensure MARK bit is zero
  7394	042561	400 04 0 00 000000 		SETZ	4,			; clear count of number of 1's
  7395	042562	200 05 0 00 000002 		MOVE	5,2			; get left half
  7396	042563	210 06 0 00 000005 		MOVN	6,5			; calculate number of 1's
  7397	042564	632 05 0 00 000006 		TDZE	5,6			;  ...
  7398	042565	344 04 0 00 042563 		AOJA	4,.-2			;  ...
  7399	042566	200 05 0 00 000003 		MOVE	5,3			; get right half
  7400	042567	210 06 0 00 000005 		MOVN	6,5			; calculate number of 1's
  7401	042570	632 05 0 00 000006 		TDZE	5,6			;  ...
  7402	042571	344 04 0 00 042567 		AOJA	4,.-2			;  ...
  7403
  7404					; Now, the parity is even if bit 35 of AC4 is zero, and odd if bit 35 set
  7405
  7406	042572	606 04 0 00 000001 		TRNN	4,1			; bit 35 set?
  7407	042573	431 02 0 00 400000 		XORI	2,400000		; no - complement bit 18
  7408
  7409					; Also, handle force parity flag
  7410
  7411	042574	602 01 0 00 000001 		TRNE	1,1			; 'force bad parity' flag set?
  7412	042575	431 02 0 00 400000 		XORI	2,400000		; yes - complement bit 18
  7413
  7414					; Done - exit
  7415
  7416	042576	332 00 0 00 134145'		SKIPE	CALMAR			; MARK bit set initially?
  7417	042577	660 03 0 00 000001 		TRO	3,1			; yes - set it now
  7418	042600	262 17 0 00 000007 		RGET	(7,6,5,4)		; restore AC's
  7419
  7420	042604	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 176
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0339

  7421
  7422					;#********************************************************************
  7423					;* CSRPNT - Print CSR register as 'CSR: xxxxxx,,xxxxxx' followed by
  7424					;*          English translation.
  7425					;#********************************************************************
  7426
  7427	042605	261 17 0 00 000000 	CSRPNT:	RPUT	(0,1,2,3)		; save AC's
  7428
  7429	042611	037 00 0 00 127607 		TMSGC	<CSR: >			; print out the data
  7430	042612	200 00 0 00 000001 		MOVE	1
  7431	042613	037 13 0 00 000000 		PNTHW
  7432	042614	260 17 0 00 042422*		GO	SWITT			; get switches
  7433	042615	603 00 0 00 000200 		TLNE	TXTINH			; TXTINH set?
  7434	042616	254 00 0 00 042622 		JRST	CSRPNX			; yes - exit
  7435	042617	201 02 0 00 000023 		MOVEI	2,^D19			; character count so far
  7436	042620	201 03 0 00 000023 		MOVEI	3,^D19			; continuation line column number
  7437	042621	260 17 0 00 042627 		GO	CSRENG			; go print in English
  7438	042622	262 17 0 00 000003 	CSRPNX:	RGET	(3,2,1,0)		; restore AC's
  7439
  7440	042626	263 17 0 00 000000 		RTN				; return
  7441
  7442
  7443					;#********************************************************************
  7444					;* CSRENG - Print CSR data in English
  7445					;
  7446					; AC1 - Contains data to print
  7447					; AC2 - Contains character count on line so far
  7448					; AC3 - Contains column to start continuation lines
  7449					;#********************************************************************
  7450
  7451	042627	261 17 0 00 000000 	CSRENG:	RPUT	(0,1,4,5,6)		; save AC's
  7452
  7453	042634	202 01 0 00 134147'		MOVEM	1,CSRENS#		; save CSR data
  7454	042635	200 04 0 00 000001 		MOVE	4,1			; get data into AC1
  7455	042636	400 05 0 00 000000 		SETZ	5,			; clear bit index
  7456	042637	404 04 0 00 127611 		AND	4,[777770,,777770]	; clear port ID and PI bits
  7457	042640	434 04 0 00 127612 		IOR	4,[000004,,000004]	; set bits so both are printed
  7458	042641	322 04 0 00 042660 	CSREN0:	JUMPE	4,CSRENX		; zero? yes - exit
  7459	042642	607 04 0 00 400000 		TLNN	4,400000		; no - bit set?
  7460	042643	254 00 0 00 042656 		JRST	CSREN2			; no - continue
  7461	042644	271 02 0 00 000007 		ADDI	2,7			; increment character count
  7462	042645	305 02 0 00 000110 		CAIGE	2,^D72			; over 72 characters?
  7463	042646	254 00 0 00 042655 		JRST	CSREN1			; no - go print
  7464	042647	037 00 0 00 030242 		PCRL				; yes - print CRLF, then
  7465	042650	200 01 0 00 000003 		MOVE	1,3			;   print spaces to start
  7466	042651	037 00 0 00 117042 		TMSG	< >			;   in proper column, and
  7467	042652	367 01 0 00 042651 		SOJG	1,.-1			;   adjust character count
  7468	042653	200 02 0 00 000003 		MOVE	2,3			;   properly
  7469	042654	271 02 0 00 000007 		ADDI	2,7			; increment character count
  7470	042655	256 00 0 05 042666 	CSREN1:	XCT	CSRENB(5)		; yes - print it
  7471	042656	242 04 0 00 000001 	CSREN2:	LSH	4,1			; left shift one bit
  7472	042657	345 05 0 00 042641 		AOJGE	5,CSREN0		; increment and keep looping
  7473	042660	262 17 0 00 000006 	CSRENX:	RGET	(6,5,4,1,0)		; restore AC's
  7474
  7475	042665	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 177
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0340

  7476
  7477					;#********************************************************************
  7478					;* CSRENB - CSR bits
  7479					;#********************************************************************
  7480
  7481	042666	037 00 0 00 127613 	CSRENB:	TMSG	<PortP >		; 00
  7482	042667	037 00 0 00 127615 		TMSG	<CsrRqs >		; 01
  7483	042670	037 00 0 00 127617 		TMSG	<CsrChn >		; 02
  7484	042671	037 00 0 00 127621 		TMSG	<Dinit >		; 03
  7485	042672	037 00 0 00 127623 		TMSG	<PI00Rq >		; 04
  7486	042673	037 00 0 00 127625 		TMSG	<RqInt >		; 05
  7487	042674	037 00 0 00 127627 		TMSG	<CramPE >		; 06
  7488	042675	037 00 0 00 127631 		TMSG	<MBErr >		; 07
  7489	042676	037 00 0 00 127633 		TMSG	<Unused >		; 08
  7490	042677	037 00 0 00 127633 		TMSG	<Unused >		; 09
  7491	042700	037 00 0 00 127633 		TMSG	<Unused >		; 10
  7492	042701	037 00 0 00 127635 		TMSG	<Idle >			; 11
  7493	042702	037 00 0 00 127637 		TMSG	<Dcomp >		; 12
  7494	042703	037 00 0 00 127641 		TMSG	<Ecomp >		; 13
  7495	042704	037 00 0 00 127633 		TMSG	<Unused >		; 14
  7496						GO	[TMSG	<ID=>		; 15
  7497							 LDB	[POINT 3,CSRENS,17]
  7498							 PNT1
  7499	042705	260 17 0 00 127645 			 RTN]
  7500	042706	255 00 0 00 000000 		JFCL				; 16
  7501	042707	255 00 0 00 000000 		JFCL				; 17
  7502	042710	037 00 0 00 127651 		TMSG	<PClr >			; 18
  7503	042711	037 00 0 00 127653 		TMSG	<TEbuf >		; 19
  7504	042712	037 00 0 00 127655 		TMSG	<GenEPE >		; 20
  7505	042713	037 00 0 00 127657 		TMSG	<SelLAR >		; 21
  7506	042714	037 00 0 00 127661 		TMSG	<SinCyc >		; 22
  7507	042715	037 00 0 00 127663 		TMSG	<Spare1 >		; 23
  7508	042716	037 00 0 00 127665 		TMSG	<EbusPE >		; 24
  7509	042717	037 00 0 00 127667 		TMSG	<FQErr >		; 25
  7510	042720	037 00 0 00 127671 		TMSG	<MVErr >		; 26
  7511	042721	037 00 0 00 127673 		TMSG	<CmdQAV >		; 27
  7512	042722	037 00 0 00 127675 		TMSG	<ResQAV >		; 28
  7513	042723	037 00 0 00 127677 		TMSG	<Spare2 >		; 29
  7514	042724	037 00 0 00 127701 		TMSG	<Disabl >		; 30
  7515	042725	037 00 0 00 127703 		TMSG	<Enable >		; 31
  7516	042726	037 00 0 00 127705 		TMSG	<MPRun >		; 32
  7517						GO	[LDB	[POINT 3,CSRENS,35]
  7518							 SKIPN
  7519							 RTN
  7520							 TMSG	<Pia=>		; 33-35
  7521							 PNT1
  7522	042727	260 17 0 00 127711 			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 178
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0341

  7523
  7524					;#********************************************************************
  7525					;* SAVCRM - Save specified CRAM locations in a buffer
  7526					;#********************************************************************
  7527
  7528	042730	261 17 0 00 000000 	SAVCRM:	RPUT	(0,1,2,3)		; save AC's
  7529
  7530	042734	260 17 0 00 042203*		GO	ISTOP			; stop the port
  7531	042735	201 02 0 00 042777 		MOVEI	2,SAVCRL		; get address of storage area
  7532	042736	200 03 0 00 000001 		MOVE	3,1			; get AOBJN word
  7533	042737	552 03 0 00 035604 	SAVCR0:	HRRZM	3,CADDR			; set up CRAM address
  7534	042740	260 17 0 00 036263 		GO	DRCRAM			; read CRAM location
  7535	042741	120 00 0 00 035605 		DMOVE	CWORDL			; get location
  7536	042742	124 00 0 02 000000 		DMOVEM	(2)			; save it
  7537	042743	271 02 0 00 000002 		ADDI	2,2			; point to next location
  7538	042744	253 03 0 00 042737 		AOBJN	3,SAVCR0		; loop till done
  7539	042745	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  7540
  7541	042751	263 17 0 00 000000 		RTN				; return
  7542
  7543
  7544					;#********************************************************************
  7545					;* RESCRM - Restore CRAM locations
  7546					;#********************************************************************
  7547
  7548	042752	261 17 0 00 000000 	RESCRM:	RPUT	(0,1,2,3)		; save AC's
  7549
  7550	042756	260 17 0 00 042734*		GO	ISTOP			; stop the port
  7551	042757	261 17 0 00 033670 		PUT	PARFLG			; save parity flag
  7552	042760	402 00 0 00 033670 		SETZM	PARFLG			; don't calculate parity
  7553	042761	201 02 0 00 042777 		MOVEI	2,SAVCRL		; get address of storage area
  7554	042762	200 03 0 00 000001 		MOVE	3,1			; get AOBJN word
  7555	042763	552 03 0 00 035604 	RESCR0:	HRRZM	3,CADDR			; set up CRAM address
  7556	042764	120 00 0 02 000000 		DMOVE	(2)			; save it
  7557	042765	124 00 0 00 035605 		DMOVEM	CWORDL			; get location
  7558	042766	260 17 0 00 036231 		GO	DWCRAM			; read CRAM location
  7559	042767	271 02 0 00 000002 		ADDI	2,2			; point to next location
  7560	042770	253 03 0 00 042763 		AOBJN	3,RESCR0		; loop till done
  7561	042771	262 17 0 00 033670 		GET	PARFLG			; restore parity flag
  7562	042772	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  7563
  7564	042776	263 17 0 00 000000 		RTN				; return
  7565
  7566					; CRAM storage area
  7567
  7568	042777				SAVCRL:	BLOCK	^D60
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 179
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0342

  7569
  7570					;#********************************************************************
  7571					;* CONPNT - Print configuration data
  7572					;#********************************************************************
  7573
  7574	043073	261 17 0 00 000000 	CONPNT:	RPUT	(0,1,2,3)		; save AC's
  7575
  7576	043077	260 17 0 00 065672 		GO	RDADDR			; read our address
  7577						TMSGD	<
  7578					***** NI Configuration *****
  7579					   Physical Address
  7580					Bt1 Bt2 Bt3 Bt4 Bt5 Bt6
  7581	043100	037 00 0 00 127717 	----------------------->
  7582
  7583					; Print this node address first
  7584
  7585	043101	120 01 0 00 033704 		DMOVE	1,SADDR			; get address
  7586	043102	260 17 0 00 070261 		GO	PADDR			; print it
  7587	043103	037 00 0 00 127744 		TMSGD	<  (Self)>
  7588
  7589					; Now print accumulated data
  7590
  7591	043104	201 03 0 00 043147 		MOVEI	3,CONTBL-2		; initialize address of table
  7592	043105	271 03 0 00 000002 	CONPN0:	ADDI	3,2			; point to next address
  7593	043106	120 00 0 03 000000 		DMOVE	(3)			; get address
  7594	043107	620 00 0 00 000017 		TRZ	17			; get rid of MBZ bits
  7595	043110	404 01 0 00 127747 		AND	1,[3,,777740]		; get rid of MBZ bits
  7596	043111	434 00 0 00 000001 		IOR	1			; include second word
  7597	043112	322 00 0 00 043117 		JUMPE	CONPNX			; zero? yes - exit
  7598
  7599					; Print entry
  7600
  7601	043113	120 01 0 03 000000 		DMOVE	1,(3)			; get address
  7602	043114	260 17 0 00 070261 		GO	PADDR			; print it
  7603	043115	037 00 0 00 030242 		PCRL
  7604	043116	254 00 0 00 043105 		JRST	CONPN0			; loop till done
  7605
  7606					; Exit
  7607
  7608	043117	262 17 0 00 000003 	CONPNX:	RGET	(3,2,1,0)		; restore AC's
  7609
  7610	043123	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 180
DFNIA1	MAC	18-Feb-84 20:30		Program Utility Routines                                                           SEQ 0343

  7611
  7612					;#********************************************************************
  7613					;* SAVCON - Accumulate configuration data
  7614					;#********************************************************************
  7615
  7616					; Check if self
  7617
  7618	043124	120 00 0 00 073007 	SAVCON:	DMOVE	RSPONS+7		; get source address
  7619	043125	620 00 0 00 000017 		TRZ	17			; get rid of MBZ bits
  7620	043126	404 01 0 00 127747 		AND	1,[3,,777740]		; get rid of MBZ bits
  7621	043127	316 00 0 00 033704 		CAMN	SADDR			; sent by self?
  7622	043130	312 01 0 00 033705 		CAME	1,SADDR+1	
  7623	043131	334 00 0 00 000000 		SKIPA				; no - continue
  7624	043132	263 17 0 00 000000 		RTN				; yes - exit
  7625
  7626					; Look for free spot or match
  7627
  7628	043133	400 03 0 00 000000 		SETZ	3,			; clear table pointer
  7629	043134	316 00 0 03 043151 	SAVCO1:	CAMN	CONTBL(3)		; check for match of bytes 1-4
  7630	043135	312 01 0 03 043152 		CAME	1,CONTBL+1(3)		;   and of bytes 5-6
  7631	043136	334 00 0 00 000000 		SKIPA				; no - continue
  7632	043137	263 17 0 00 000000 		RTN				; yes - go build entry
  7633	043140	200 02 0 03 043151 		MOVE	2,CONTBL(3)		; get first word
  7634	043141	270 02 0 03 043152 		ADD	2,CONTBL+1(3)		; add in 2nd word
  7635	043142	322 02 0 00 043147 		JUMPE	2,SAVCO2		; free spot? yes - go build entry
  7636	043143	271 03 0 00 000002 		ADDI	3,2			; increment table pointer
  7637	043144	307 03 0 00 000306 		CAIG	3,^D198			; table full?
  7638	043145	254 00 0 00 043134 		JRST	SAVCO1			; no - keep looking for a match
  7639	043146	263 17 0 00 000000 		RTN				; yes - exit
  7640
  7641					; Save in table
  7642
  7643	043147	124 00 0 03 043151 	SAVCO2:	DMOVEM	CONTBL(3)		; save it
  7644	043150	263 17 0 00 000000 		RTN				; exit
  7645
  7646					; Configuration table (source address)
  7647
  7648	043151				CONTBL:	BLOCK	^D100*2			; up to 100 nodes
  7649
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 181
DFNIA1	MAC	18-Feb-84 20:30		Statistics Routines                                                                SEQ 0344

  7650						SUBTTL	Statistics Routines
  7651
  7652					;#********************************************************************
  7653					;* SUPDAT - Update statistics for datagrams sent
  7654					;
  7655					; Given:  PACKET - Contains the packet data sent
  7656					;#********************************************************************
  7657
  7658	043461	261 17 0 00 000000 	SUPDAT:	RPUT	(0,1,2,3,OP)		; save AC's
  7659
  7660	043466	135 11 0 00 127201 		LDB	OP,[POINT 8,PACKET+3,23]; get op code
  7661	043467	201 02 0 00 000002 		MOVEI	2,2			; initialize to 'other packet'
  7662	043470	306 11 0 00 000001 		CAIN	OP,DGSNT		; datagram?
  7663						GO	[SETZ	2,		; yes - set to 'other datagram'
  7664							 DMOVE	PACKET+7	;   and to 'self-directed dgm'
  7665							 CAMN	SADDR		;   if destination address is
  7666							 CAME	1,SADDR+1	;   self
  7667							 AOS	2
  7668	043471	260 17 0 00 127750 			 RTN]
  7669
  7670					; Increment packets sent
  7671
  7672	043472	221 02 0 00 000003 	SUPDA0:	IMULI	2,3			; calculate address of statistics
  7673	043473	271 02 0 00 043665 		ADDI	2,STASNT		;   ...
  7674	043474	350 00 0 02 000000 		AOS	.SPSNT(2)		; increment number of packets sent
  7675	043475	200 03 0 00 000002 		MOVE	3,2			; get into AC3
  7676	043476	400 00 0 00 000000 		SETZ				; clear byte count
  7677	043477	260 17 0 00 070207 		GO	DECOPC			; decode op code
  7678	043500	334 00 0 00 000000 		SKIPA				; error - exit
  7679						XCT	[GO	[LDB	[POINT 20,PACKET+4,35] 	; 0-SNDDG
  7680								 ADDI	^D14
  7681								 RTN]
  7682							 JFCL					; 1-LDMCAT
  7683							 JFCL					; 2-LDPTT
  7684							 JFCL					; 3-RCCNT
  7685							 JFCL					; 4-WRPLI
  7686							 JFCL					; 5-RDPLI
  7687							 JFCL					; 6-RDNSA
  7688							 JFCL					; 7-WRNSA
  7689							 GO	[LDB	[POINT 20,PACKET+4,35] 	; 10-DGRCV
  7690								 ADDI	^D14
  7691	043501	256 00 0 01 127762 				 RTN]](1)
  7692	043502	272 00 0 03 000001 		ADDM	.SBSNT(3)		; add in byte count
  7693	043503	262 17 0 00 000011 		RGET	(OP,3,2,1,0)		; restore AC's
  7694
  7695	043510	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 182
DFNIA1	MAC	18-Feb-84 20:30		Statistics Routines                                                                SEQ 0345

  7696
  7697					;#********************************************************************
  7698					;* RUPDAT - Update statistics for datagrams received
  7699					;
  7700					; Given:  RSPONS - Contains the packet data received
  7701					;#********************************************************************
  7702
  7703	043511	261 17 0 00 000000 	RUPDAT:	RPUT	(0,1,2,3,OP)		; save AC's
  7704
  7705
  7706					; First determine what category
  7707
  7708	043516	135 11 0 00 127162 		LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  7709	043517	201 02 0 00 000002 		MOVEI	2,2			; initialize to 'other packet'
  7710	043520	302 11 0 00 000005 		CAIE	OP,DGRCV		; datagram received or a
  7711	043521	306 11 0 00 000001 		CAIN	OP,DGSNT		;   response?
  7712						GO	[SETZ	2,		; yes - set to 'other datagram'
  7713							 DMOVE	RSPONS+7	;   and to 'self-directed dgm'
  7714							 CAMN	SADDR		;   if destination address is
  7715							 CAME	1,SADDR+1	;   self
  7716							 AOS	2
  7717	043522	260 17 0 00 127773 			 RTN]
  7718
  7719					; Then determine which type it is - response requested, or packet received
  7720
  7721	043523	306 11 0 00 000005 		CAIN	OP,DGRCV		; packet received?
  7722	043524	254 00 0 00 043542 		JRST	RUPDA2			; yes - go handle
  7723	043525	200 03 0 00 073003 		MOVE	3,RSPONS+3		; get status word
  7724	043526	603 03 0 00 000004 		TLNE	3,4			; error bit set?
  7725	043527	254 00 0 00 043535 		JRST	RUPDA1			; yes - go handle
  7726
  7727					; By dint of 'Rsp Requested'
  7728
  7729	043530	200 03 0 00 000002 		MOVE	3,2			; get offset
  7730	043531	221 03 0 00 000003 		IMULI	3,3			; calculate address of statistics
  7731	043532	271 03 0 00 043676 		ADDI	3,STARCV		;   ...
  7732	043533	350 00 0 03 000000 		AOS	.RPRCV(3)		; increment receive packet count
  7733	043534	254 00 0 00 043563 		JRST	RUPDAX			; go increment byte count
  7734
  7735					; By dint of 'Error in transmission'
  7736	
  7737	043535	200 03 0 00 000002 	RUPDA1:	MOVE	3,2			; get offset
  7738	043536	221 03 0 00 000003 		IMULI	3,3			; calculate address of statistics
  7739	043537	271 03 0 00 043665 		ADDI	3,STASNT		;   ...
  7740	043540	350 00 0 03 000002 		AOS	.STERR(3)		; increment transmit error count
  7741	043541	254 00 0 00 043563 		JRST	RUPDAX			; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 183
DFNIA1	MAC	18-Feb-84 20:30		Statistics Routines                                                                SEQ 0346

  7742
  7743					; This is a packet received from another port or from self (if destination
  7744					; port specified self).
  7745
  7746	043542	200 03 0 00 000002 	RUPDA2:	MOVE	3,2			; get offset
  7747	043543	221 03 0 00 000003 		IMULI	3,3			; calculate address of statistics
  7748	043544	271 03 0 00 043676 		ADDI	3,STARCV		;   ...
  7749	043545	350 00 0 03 000000 		AOS	.RPRCV(3)		; increment packet received count
  7750	043546	200 02 0 00 073003 		MOVE	2,RSPONS+3		; get status word
  7751	043547	135 02 0 00 130001 		LDB	2,[POINT 6,2,7]		; get status byte
  7752	043550	606 02 0 00 000001 		TRNN	2,1			; error word?
  7753	043551	254 00 0 00 043555 		JRST	RUPDA3			; no - continue
  7754	043552	350 00 0 03 000002 		AOS	.RRERR(3)		; yes - increment receive error count
  7755	043553	306 02 0 00 000020 		CAIN	2,20			; CRC error?
  7756	043554	350 00 0 03 000003 		AOS	.RRCRC(3)		; yes - increment CRC error count
  7757
  7758					; Calculate bytes received
  7759
  7760	043555	135 11 0 00 127162 	RUPDA3:	LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  7761	043556	260 17 0 00 070207 		GO	DECOPC			; decode opcode
  7762	043557	334 00 0 00 000000 		SKIPA
  7763						XCT	[GO	[LDB	[POINT 20,RSPONS+4,35] 	; 0-SNDDG
  7764								 ADDI	^D14
  7765								 RTN]
  7766							 JFCL					; 1-LDMCAT
  7767							 JFCL					; 2-LDPTT
  7768							 JFCL					; 3-RCCNT
  7769							 JFCL					; 4-WRPLI
  7770							 JFCL					; 5-RDPLI
  7771							 JFCL					; 6-RDNSA
  7772							 JFCL					; 7-WRNSA
  7773							 GO	[LDB	[POINT 20,RSPONS+4,35] 	; 10-DGRCV
  7774								 ADDI	^D14
  7775	043560	256 00 0 01 130006 				 RTN]](1)
  7776	043561	272 00 0 03 000001 		ADDM	.RBRCV(3)		; add in byte count
  7777	043562	260 17 0 00 043124 		GO	SAVCON			; handle configuration data
  7778
  7779					; Done - exit
  7780
  7781	043563	262 17 0 00 000011 	RUPDAX:	RGET	(OP,3,2,1,0)		; restore AC's
  7782
  7783	043570	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 184
DFNIA1	MAC	18-Feb-84 20:30		Statistics Routines                                                                SEQ 0347

  7784
  7785					;#********************************************************************
  7786					;* SREPOR - Report statistics
  7787					;#********************************************************************
  7788
  7789	043571	261 17 0 00 000000 	SREPOR:	RPUT	(0,1,2,3,4,5)		; save AC's
  7790
  7791
  7792					; Packets Sent statistics
  7793
  7794	043577	037 00 0 00 130017 		TMSGC	<*** STATISTICS - Packets Sent (>
  7795	043600	260 17 0 00 042234*		GO	PTIME
  7796						TMSG	<) ***
  7797					 (All numbers decimal)
  7798					                      Packets     Bytes     Transmit
  7799					   Type                Sent       Sent       Errors
  7800	043601	037 00 0 00 130026 	   ----                ----       ----       ------>
  7801	043602	474 05 0 00 000000 		SETO	5,			; initialize pointer to line number
  7802	043603	350 00 0 00 000005 	SREPO0:	AOS	5			; point to next line
  7803	043604	301 05 0 00 000003 		CAIL	5,3			; done yet?
  7804	043605	254 00 0 00 043621 		JRST	SREPO1			; yes - exit
  7805	043606	200 04 0 00 000005 		MOVE	4,5			; calculate beginning address
  7806	043607	221 04 0 00 000003 		IMULI	4,3			;   of statistics
  7807	043610	271 04 0 00 043665 		ADDI	4,STASNT		;   ...
  7808
  7809					; Print it
  7810
  7811						XCT	[TMSGC	<Self-Directed DGMs>
  7812							 TMSGC	<Other DGMs        >
  7813	043611	256 00 0 05 130113 			 TMSGC	<Other Packets     >](5)
  7814	043612	200 00 0 04 000000 		MOVE	.SPSNT(4)		; get packets sent
  7815	043613	003 12 0 00 000000 		PNTDCC	^D10,0			; print it
  7816	043614	200 00 0 04 000001 		MOVE	.SBSNT(4)		; get bytes sent
  7817	043615	003 15 0 00 000000 		PNTDCC	^D13,0			; print it
  7818	043616	200 00 0 04 000002 		MOVE	.STERR(4)		; get transmit errors
  7819	043617	003 12 0 00 000000 		PNTDCC	^D10,0			; print it
  7820	043620	254 00 0 00 043603 		JRST	SREPO0			; loop till done
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 185
DFNIA1	MAC	18-Feb-84 20:30		Statistics Routines                                                                SEQ 0348

  7821
  7822					; Packets Received statistics
  7823
  7824	043621	037 00 0 00 030242 	SREPO1:	PCRL
  7825	043622	037 00 0 00 130116 		TMSGC	<*** STATISTICS - Packets Received (>
  7826	043623	260 17 0 00 043600*		GO	PTIME
  7827						TMSG	<) ***
  7828					 (All numbers decimal)                              Unexpected  Expected
  7829					                      Packets     Bytes       Rcvd      CRC       CRC
  7830					   Type                Rcvd       Rcvd       Errors    Errors    Errors
  7831	043624	037 00 0 00 130126 	   ----                ----       ----       ------    ------    ------>
  7832	043625	474 05 0 00 000000 		SETO	5,			; initialize pointer to line number
  7833	043626	350 00 0 00 000005 	SREPO2:	AOS	5			; point to next line
  7834	043627	301 05 0 00 000003 		CAIL	5,3			; done yet?
  7835	043630	254 00 0 00 043651 		JRST	SREPOX			; yes - exit
  7836	043631	200 04 0 00 000005 		MOVE	4,5			; calculate beginning address
  7837	043632	221 04 0 00 000005 		IMULI	4,5			;   of statistics
  7838	043633	271 04 0 00 043676 		ADDI	4,STARCV		;   ...
  7839
  7840					; Print it
  7841
  7842						XCT	[TMSGC	<Self-Directed DGMs>
  7843							 TMSGC	<Other DGMs        >
  7844	043634	256 00 0 05 130113 			 TMSGC	<Other Packets     >](5)
  7845	043635	200 00 0 04 000000 		MOVE	.RPRCV(4)		; get packets received
  7846	043636	003 12 0 00 000000 		PNTDCC	^D10,0			; print it
  7847	043637	200 00 0 04 000001 		MOVE	.RBRCV(4)		; get bytes received
  7848	043640	003 15 0 00 000000 		PNTDCC	^D13,0			; print it
  7849	043641	200 00 0 04 000002 		MOVE	.RRERR(4)		; get receive errors
  7850	043642	003 12 0 00 000000 		PNTDCC	^D10,0			; print it
  7851	043643	200 00 0 04 000003 		MOVE	.RRCRC(4)		; get CRC errors total
  7852	043644	274 00 0 04 000004 		SUB	.RREXP(4)		; calculate unexpected errors
  7853	043645	003 12 0 00 000000 		PNTDCC	^D10,0			; print it
  7854	043646	200 00 0 04 000004 		MOVE	.RREXP(4)		; get CRC expected errors
  7855	043647	003 12 0 00 000000 		PNTDCC	^D10,0			; print it
  7856	043650	254 00 0 00 043626 		JRST	SREPO2			; loop till done
  7857
  7858					; Exit
  7859
  7860	043651	037 00 0 00 030242 	SREPOX:	PCRL
  7861	043652	262 17 0 00 000005 		RGET	(5,4,3,2,1,0)		; restore AC's
  7862
  7863	043660	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 186
DFNIA1	MAC	18-Feb-84 20:30		Statistics Routines                                                                SEQ 0349

  7864
  7865					;#********************************************************************
  7866					;* SZERO - Clear statistics
  7867					;#********************************************************************
  7868
  7869	043661	402 00 0 00 043665 	SZERO:	SETZM	STATB			; clear first word
  7870	043662	200 00 0 00 130222 		MOVE	[STATB,,STATB+1]	; build a BLT pointer
  7871	043663	251 00 0 00 043714 		BLT	STATE			; clear them all
  7872	043664	263 17 0 00 000000 		RTN				; return
  7873
  7874
  7875					;#********************************************************************
  7876					;* Statistics data areas
  7877					;#********************************************************************
  7878
  7879					; Offset definitions for packets sent
  7880
  7881			000000		.SPSNT==0				; # packets sent
  7882			000001		.SBSNT==1				; # bytes sent
  7883			000002		.STERR==2				; # transmit errors
  7884
  7885					; Offset definitions for packets received
  7886
  7887			000000		.RPRCV==0				; # packets received
  7888			000001		.RBRCV==1				; # bytes received
  7889			000002		.RRERR==2				; # receive errors
  7890			000003		.RRCRC==3				; # CRC errors
  7891			000004		.RREXP==4				; # expected CRC errors
  7892
  7893					; Statistics
  7894
  7895	043665				STATB:
  7896	043665				STASNT:	BLOCK	3			; self-directed datagrams
  7897	043670					BLOCK	3			; other datagrams
  7898	043673					BLOCK	3			; other packets
  7899
  7900	043676				STARCV:	BLOCK	5			; self-directed datagrams
  7901	043703					BLOCK	5			; other datagrams
  7902	043710					BLOCK	5			; other packets
  7903
  7904			043714		STATE==.-1
  7905
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 187
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0350

  7906						SUBTTL	Microcode Handling Routines
  7907
  7908					;#********************************************************************
  7909					; These routines load/verify operational microcode and test microcode.
  7910					;
  7911					; Operational microcode:
  7912					;
  7913					;   TFLOAD - Load operational microcode for a test
  7914					;   FLOADB - Load operational microcode into buffer
  7915					;   FLOADC - Load microcode buffer contents into the port
  7916					;   FVERFC - Verify port microcode against buffer contents
  7917					;   FUERR -  Print verify error data
  7918					;
  7919					; Test microcode:
  7920					;
  7921					;   MLOADN - Load microcode and verify it (do not print errors)
  7922					;   MLOADY - Load microcode and verify it (print errors)
  7923					;   MVPNT - Print verify error data
  7924					;   MLIST - List microcode of a test
  7925					;   TLOAD - Load microcode/verify it for a test
  7926					;#********************************************************************
  7927
  7928					;#********************************************************************
  7929					;* TFLOAD - Load operational microcode for a test
  7930					;
  7931					; Returns:	+1 Error occurred (Error message or routine in AC0)
  7932					;		+2 Succeeded
  7933					;#********************************************************************
  7934
  7935	043715	402 00 0 00 044331 	TFLOAD:	SETZM	FFLAG			; clear operator output flag
  7936	043716	260 17 0 00 044010 		GO	FLOADB			; load file into ucode buffer
  7937						JRST	[MOVE	[TFLER1,,TFLER2]; error - exit
  7938	043717	254 00 0 00 130224 			 RTN]
  7939	043720	200 00 0 00 134250'		MOVE	TSLOAD			; get microcode loaded flag
  7940	043721	306 00 0 00 000777 		CAIN	777			; operational microcode?
  7941	043722	254 00 0 00 043741 		JRST	TFLOAX			; yes - return - already loaded
  7942	043723	261 17 0 00 000001 		PUT	1			; save AC1
  7943	043724	260 17 0 00 042756*		GO	ISTOP			; stop the port
  7944	043725	400 01 0 00 000000 		SETZ	1,			; clear AC1
  7945	043726	260 17 0 00 042335*		GO	LDCSR			; clear CSR
  7946	043727	262 17 0 00 000001 		GET	1			; restore AC1
  7947	043730	332 00 0 00 134166'		SKIPE	LDEBUG			; ucode load debug switch set?
  7948	043731	254 00 0 00 043741 		JRST	TFLOAX			; yes - don't load ucode
  7949	043732	201 00 0 00 000777 		MOVEI	777			; set microcode loaded flag to
  7950	043733	202 00 0 00 134250'		MOVEM	TSLOAD			;   indicate operational ucode
  7951	043734	260 17 0 00 044074 		GO	FLOADC			; load buffer into CRAM
  7952	043735	254 00 0 00 043743 		JRST	TFLOAE			; error - exit
  7953	043736	254 00 0 00 043741 		JRST	TFLOAX			; already loaded - exit
  7954	043737	260 17 0 00 044152 		GO	FVERFC			; verify CRAM against buffer
  7955	043740	254 00 0 00 043743 		JRST	TFLOAE			; error - report
  7956	043741	350 00 0 17 000000 	TFLOAX:	AOS	(P)			; no - set up proper return
  7957	043742	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 188
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0351

  7958
  7959					; Error loading operational microcode
  7960
  7961	043743	200 00 0 00 130226 	TFLOAE:	MOVE	[TFLER3,,TFLER4]
  7962	043744	474 15 0 00 000000 		SETO	ERFLG,			; set error flag
  7963	043745	332 00 0 00 134172'		SKIPE	MDEBUG			; error message debug switch set?
  7964	043746	350 00 0 17 000000 		AOS	(P)			; yes - skip this error
  7965	043747	263 17 0 00 000000 		RTN				; exit
  7966
  7967					; Error message routines
  7968
  7969	043750	037 01 0 00 130227 	TFLER1:	FMSG	<Can't access ">
  7970	043751	200 00 0 00 044324 		MOVE	FNAME
  7971	043752	037 01 0 00 000002 		PNTSXF
  7972	043753	037 01 0 00 000056 		PNTCIF	"."
  7973	043754	200 00 0 00 044325 		MOVE	FNAME+1
  7974	043755	037 01 0 00 000002 	 	PNTSXF
  7975	043756	037 01 0 00 130232 		FMSG	<" on selected load device>
  7976	043757	263 17 0 00 000000 		RTN
  7977
  7978	043760	037 00 0 00 130227 	TFLER2:	TMSG	<Can't access ">
  7979	043761	200 00 0 00 044324 		MOVE	FNAME
  7980	043762	037 00 0 00 000002 		PNTSIX
  7981	043763	037 00 0 00 000056 		PNTCI	"."
  7982	043764	200 00 0 00 044325 		MOVE	FNAME+1
  7983	043765	037 00 0 00 000002 	 	PNTSIX
  7984	043766	037 00 0 00 130232 		TMSG	<" on selected load device>
  7985	043767	263 17 0 00 000000 		RTN
  7986
  7987	043770	037 01 0 00 130240 	TFLER3:	FMSG	<Verify error loading ">
  7988	043771	200 00 0 00 044324 		MOVE	FNAME
  7989	043772	037 01 0 00 000002 		PNTSXF
  7990	043773	037 01 0 00 000056 		PNTCIF	"."
  7991	043774	200 00 0 00 044325 		MOVE	FNAME+1
  7992	043775	037 01 0 00 000002 	 	PNTSXF
  7993	043776	037 01 0 00 130245 		FMSG	<" into CRAM>
  7994	043777	263 17 0 00 000000 		RTN
  7995
  7996	044000	037 00 0 00 130240 	TFLER4:	TMSG	<Verify error loading ">
  7997	044001	200 00 0 00 044324 		MOVE	FNAME
  7998	044002	037 00 0 00 000002 		PNTSIX
  7999	044003	037 00 0 00 000056 		PNTCI	"."
  8000	044004	200 00 0 00 044325 		MOVE	FNAME+1
  8001	044005	037 00 0 00 000002 	 	PNTSIX
  8002	044006	037 00 0 00 130245 		TMSG	<" into CRAM>
  8003	044007	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 189
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0352

  8004
  8005					;#********************************************************************
  8006					;* FLOADB - Load operational microcode into buffer
  8007					;
  8008					; Data areas:	UCODE - 4096 word buffer of opr ucode
  8009					;		ULEN - number of uword used
  8010					;		UNAME - name of ucode loaded
  8011					;
  8012					;		FNAME - name of ucode desired
  8013					;		FFLAG - output flag 0 - no operator output
  8014					;				   -1 - operator output is printed
  8015					;
  8016					; Return:  +1 - Error occurred
  8017					;	   +2 - Load succeeded
  8018					;	   ULEN,UCODE,UNAME updated
  8019					;#********************************************************************
  8020
  8021	044010	261 17 0 00 000000 	FLOADB:	RPUT	(0,1,2,3,4)		; save AC's
  8022
  8023	044015	200 00 0 00 044326 		MOVE	UNAME			; get microcode loaded name
  8024	044016	312 00 0 00 044324 		CAME	FNAME			; same as desired?
  8025	044017	254 00 0 00 044024 		JRST	FLODB0			; no - must reload ucode
  8026	044020	200 00 0 00 044327 		MOVE	UNAME+1			; get microcode loaded extension
  8027	044021	316 00 0 00 044325 		CAMN	FNAME+1			; same as desired?
  8028	044022	254 00 0 00 044065 		JRST	FLODBX			; yes - already loaded
  8029	044023	402 00 0 00 044330 		SETZM	CNAME			; no - clear 'CRAM loaded' name
  8030
  8031					; Must load microcode into buffer
  8032
  8033	044024	201 00 0 00 044324 	FLODB0:	MOVEI	FNAME			; point to file name buffer
  8034	044025	037 05 0 00 000004 		FSELECT				; init the file
  8035						JRST	[SKIPN	FFLAG		; error - print error message
  8036							 JRST	FLODBE		;   if operator output is
  8037							 FMSGC	<? Can't access ">; desired, then exit
  8038							 MOVE	FNAME
  8039							 PNTSXF
  8040							 PNTCIF	"."
  8041							 MOVE	FNAME+1
  8042							 PNTSXF
  8043							 FMSGD	<" on selected load device.>
  8044	044026	254 00 0 00 130250 			 JRST	FLODBE]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 190
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0353

  8045	044027	332 00 0 00 044331 		SKIPE	FFLAG			  ; print operator output?
  8046						GO	[TMSGC	<[Reading file: > ; yes - print this
  8047							 MOVE	FNAME
  8048							 PNTSIX
  8049							 PNTCI	"."
  8050							 MOVE	FNAME+1
  8051							 PNTSIX				
  8052							 TMSGD	<]>
  8053	044030	260 17 0 00 130266 			 RTN]
  8054	044031	402 00 0 00 044326 		SETZM	UNAME			; invalidate current contents
  8055	044032	402 00 0 00 134256'		SETZM	UVERSN#			; invalidate current version number
  8056	044033	201 04 0 00 044333 		MOVEI	4,UCODE			; get buffer address
  8057	044034	260 17 0 00 000000*	FLODB1:	GO	FGETW			; get microcode entry
  8058	044035	254 00 0 00 044052 		 JRST	FLODB2			; error/EOF occurred
  8059	044036	403 01 0 00 000002 		SETZB	1,2			; clear AC's
  8060	044037	200 00 0 00 035604 		MOVE	CADDR			; get address
  8061	044040	137 00 0 00 126315 		DPB	[POINT 12,1,11]		; save in word 1
  8062	044041	135 00 0 00 130276 		LDB	[POINT 24,CWORDL,29]	; get left 24 bits (0-23)
  8063	044042	137 00 0 00 130277 		DPB	[POINT 24,1,35]		; save in word 1
  8064	044043	135 00 0 00 130300 		LDB	[POINT 6,CWORDL,35]	; get left 24 bits (24-27)
  8065	044044	137 00 0 00 130301 		DPB	[POINT 6,2,5]		; save in word 2
  8066	044045	135 00 0 00 130302 		LDB	[POINT 30,CWORDR,35]	; get right 28 bits (0-27)
  8067	044046	137 00 0 00 130303 		DPB	[POINT 30,2,35]		; save in word 2
  8068	044047	124 01 0 04 000000 		DMOVEM	1,(4)			; save data
  8069	044050	271 04 0 00 000002 		ADDI	4,2			; point to next location
  8070	044051	254 00 0 00 044034 		JRST	FLODB1			; no - loop til done
  8071
  8072					; Done loading ucode into buffer
  8073
  8074	044052	120 00 0 00 044324 	FLODB2:	DMOVE	FNAME			; get name of microcode loaded
  8075	044053	124 00 0 00 044326 		DMOVEM	UNAME			; save in actual name loaded
  8076	044054	275 04 0 00 044333 		SUBI	4,UCODE			; calculate length of ucode
  8077	044055	242 04 0 00 777777 		LSH	4,-1			; divide by 2
  8078	044056	202 04 0 00 044332 		MOVEM	4,ULEN			; save it
  8079	044057	332 00 0 00 044331 		SKIPE	FFLAG			; operator output desired?
  8080						GO	[TMSGC	<[>		; yes - print message
  8081							 MOVE	4
  8082							 PNTDEC
  8083							 TMSGD	<. microwords loaded]>
  8084	044060	260 17 0 00 130311 			 RTN]
  8085	044061	200 00 0 00 134250'		MOVE	TSLOAD			; get microcode loaded flag
  8086	044062	306 00 0 00 000777 		CAIN	777			; operational microcode?
  8087	044063	476 00 0 00 134250'		SETOM	TSLOAD			; yes - reset loaded flag
  8088	044064	260 17 0 00 044300 		GO	ZCOUNT			; zero counters
  8089
  8090					; Exit
  8091
  8092	044065	350 00 0 17 777773 	FLODBX:	AOS	-5(P)			; set up good return
  8093	044066	262 17 0 00 000004 	FLODBE:	RGET	(4,3,2,1,0)		; restore AC's
  8094
  8095	044073	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 191
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0354

  8096
  8097					;#********************************************************************
  8098					;* FLOADC - Load microcode buffer contents into the port
  8099					;
  8100					; Return:  +1 - Error
  8101					;	   +2 - Already loaded
  8102					;	   +3 - Ok
  8103					;#********************************************************************
  8104
  8105	044074	261 17 0 00 000000 	FLOADC:	RPUT	(0,1,2,3,4)		; save AC's
  8106
  8107	044101	336 00 0 00 044326 		SKIPN	UNAME			; any microcode loaded?
  8108						JRST	[SKIPE	FFLAG		; no - return
  8109							 TMSGCD	<? No microcode loaded yet>
  8110							 SOS	-5(P)
  8111							 SOS	-5(P)
  8112	044102	254 00 0 00 130324 			 JRST	FLODCX]
  8113	044103	200 00 0 00 044326 		MOVE	UNAME			; get microcode name desired
  8114	044104	316 00 0 00 044330 		CAMN	CNAME			; same as what is loaded?
  8115						JRST	[SKIPN	FFLAG		; no - return
  8116							 JRST	FLODCX
  8117							 TMSGC	<[>
  8118							 MOVE	UNAME		;   message
  8119							 PNTSIX
  8120							 PNTCI	"."
  8121							 MOVE	UNAME+1
  8122							 PNTSIX
  8123							 TMSGD	< already loaded]>
  8124							 SOS	-5(P)
  8125	044105	254 00 0 00 130331 			 JRST	FLODCX]
  8126	044106	332 00 0 00 044331 		SKIPE	FFLAG			; operator output desired?
  8127						GO	[TMSGC	<[Loading >	; yes - print loading ucode
  8128							 MOVE	UNAME		;   message
  8129							 PNTSIX
  8130							 PNTCI	"."
  8131							 MOVE	UNAME+1
  8132							 PNTSIX
  8133							 TMSGD	< into CRAM]>
  8134	044107	260 17 0 00 130352 			 RTN]
  8135
  8136					; Go load the microcode
  8137
  8138	044110	200 03 0 00 044332 		MOVE	3,ULEN			; get length of ucode
  8139	044111	201 04 0 00 044333 		MOVEI	4,UCODE			; get address of ucode buffer
  8140	044112	261 17 0 00 033670 		PUT	PARFLG			; save auto parity flag
  8141	044113	402 00 0 00 033670 		SETZM	PARFLG			; clear auto parity flag
  8142	044114	120 01 0 04 000000 	FLODC0:	DMOVE	1,(4)			; get microword entry
  8143	044115	135 00 0 00 126315 		LDB	[POINT 12,1,11]		; get CRAM address
  8144	044116	202 00 0 00 035604 		MOVEM	CADDR			; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 192
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0355

  8145	044117	246 01 0 00 000006 		LSHC	1,6			; position correctly for 30 bits
  8146	044120	135 00 0 00 126317 		LDB	[POINT 30,1,35]		; get left 30 bits
  8147	044121	202 00 0 00 035605 		MOVEM	CWORDL			; save it
  8148	044122	135 00 0 00 126316 		LDB	[POINT 30,2,29]		; get right 30 bits
  8149	044123	622 00 0 00 000002 		TRZE	2			; bit 59 set?
  8150	044124	660 00 0 00 000001 		TRO	1			; yes - set rightmost bit
  8151	044125	202 00 0 00 035606 		MOVEM	CWORDR			; save it
  8152	044126	260 17 0 00 036231 		GO	DWCRAM			; write CRAM word
  8153	044127	271 04 0 00 000002 		ADDI	4,2			; point to next entry
  8154	044130	367 03 0 00 044114 		SOJG	3,FLODC0		; loop till done
  8155	044131	262 17 0 00 033670 		GET	PARFLG			; restore auto parity flag
  8156	044132	200 00 0 00 044326 		MOVE	UNAME			; get name of ucode loaded
  8157	044133	202 00 0 00 044330 		MOVEM	CNAME			; save name of ucode loaded
  8158
  8159					; Also load a NOP into location 56
  8160
  8161	044134	201 01 0 00 044147 		MOVEI	1,FLONOP		; set up microcode address
  8162	044135	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  8163	044136	255 00 0 00 000000 		JFCL				; ignore error
  8164
  8165					; Exit
  8166
  8167	044137	262 17 0 00 000004 	FLODCX:	RGET	(4,3,2,1,0)		; restore AC's
  8168
  8169	044144	350 00 0 17 000000 		AOS	(P)			; set up proper return
  8170	044145	350 00 0 17 000000 		AOS	(P)			; set up proper return
  8171	044146	263 17 0 00 000000 		RTN				; return
  8172
  8173					; NOP for location 56
  8174
  8175	044147	005600	000000		FLONOP:	MWORD	<ADDR=56,CONT>
  8176	044150	000000	000340
  8177	044151	777777	777777			-1
  8178
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 193
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0356

  8179
  8180					;#********************************************************************
  8181					;* FVERFC - Verify port microcode against buffer contents
  8182					;
  8183					; Data areas:	UCODE - 4096 word buffer of opr ucode
  8184					;		ULEN - number of uword used
  8185					;		UNAME - name of ucode loaded
  8186					;		UVERR - verify error count
  8187					;		ECODE - up to 3 verify errors
  8188					;
  8189					;		FFLAG - output flag 0 - no operator output
  8190					;				   -1 - operator output is printed
  8191					;
  8192					; Return:  +1 - Verify error
  8193					;	   +2 - Verify succeeded
  8194					;	   UVERR,ECODE updated
  8195					;#********************************************************************
  8196
  8197	044152	261 17 0 00 000000 	FVERFC:	RPUT	(0,1,2,3,4)		; save AC's
  8198
  8199	044157	336 00 0 00 044326 		SKIPN	UNAME			; any microcode loaded?
  8200						JRST	[SKIPE	FFLAG		; no - return
  8201							 TMSGCD	<? No microcode loaded into buffer yet>
  8202	044160	254 00 0 00 130373 			 JRST	FVERFE]
  8203	044161	200 03 0 00 044332 		MOVE	3,ULEN			; get length of ucode
  8204	044162	201 04 0 00 044333 		MOVEI	4,UCODE			; get address of ucode buffer
  8205	044163	402 00 0 00 064333 		SETZM	UVERR			; clear verify error count
  8206	044164	120 01 0 04 000000 	FVERF0:	DMOVE	1,(4)			; get microword entry
  8207	044165	135 00 0 00 126315 		LDB	[POINT 12,1,11]		; get CRAM address
  8208	044166	306 00 0 00 000056 		CAIN	56			; special location 56?
  8209	044167	254 00 0 00 044207 		JRST	FVERF1			; yes - don't check this one
  8210	044170	202 00 0 00 035604 		MOVEM	CADDR			; save it
  8211	044171	246 01 0 00 000006 		LSHC	1,6			; position correctly for 30 bits
  8212	044172	135 00 0 00 126317 		LDB	[POINT 30,1,35]		; get left 30 bits
  8213	044173	202 00 0 00 134154'		MOVEM	DWORDL#			; save it
  8214	044174	135 00 0 00 126316 		LDB	[POINT 30,2,29]		; get right 30 bits
  8215	044175	622 00 0 00 000002 		TRZE	2			; bit 59 set?
  8216	044176	660 00 0 00 000001 		TRO	1			; yes - set rightmost bit
  8217	044177	202 00 0 00 134155'		MOVEM	DWORDR#			; save it
  8218	044200	260 17 0 00 036263 		GO	DRCRAM			; read CRAM word
  8219	044201	200 00 0 00 035605 		MOVE	CWORDL			; get left word
  8220	044202	312 00 0 00 134154'		CAME	DWORDL			; correct?
  8221						JRST	[AOS	2,UVERR		; no - handle error
  8222							 CAILE	2,3		; too many errors so far?
  8223							 JRST	FVERF1		; yes - don't save this one
  8224							 IMULI	2,5		; no - multiply by 5
  8225							 MOVEI	2,ECODE-5(2)	; get address to save bad data
  8226							 MOVE	CADDR		; get CRAM address
  8227							 MOVEM	(2)		; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 194
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0357

  8228  8229							 DMOVE	DWORDL		; get correct
  8230							 DMOVEM	1(2)		; save it
  8231							 DMOVE	CWORDL		; get correct
  8232							 DMOVEM	3(2)		; save it
  8233	044203	254 00 0 00 130376 			 JRST	FVERF1]
  8234	044204	200 00 0 00 035606 		MOVE	CWORDR			; get right word
  8235	044205	312 00 0 00 134155'		CAME	DWORDR			; correct?
  8236						JRST	[AOS	2,UVERR		; no - handle error
  8237							 CAILE	2,3		; too many errors so far?
  8238							 JRST	FVERF1		; yes - don't save this one
  8239							 IMULI	2,5		; no - multiply by 5
  8240							 MOVEI	2,ECODE-5(2)	; get address to save bad data
  8241							 MOVE	CADDR		; get CRAM address
  8242							 MOVEM	(2)		; save it
  8243							 DMOVE	DWORDL		; get correct
  8244							 DMOVEM	1(2)		; save it
  8245							 DMOVE	CWORDL		; get correct
  8246							 DMOVEM	3(2)		; save it
  8247	044206	254 00 0 00 130376 			 JRST	FVERF1]
  8248	044207	271 04 0 00 000002 	FVERF1:	ADDI	4,2			; point to next entry
  8249	044210	367 03 0 00 044164 		SOJG	3,FVERF0		; loop till done
  8250	044211	201 00 0 00 000137 		MOVEI	137			; read location 137 which contains
  8251	044212	202 00 0 00 035604 		MOVEM	CADDR			;   microcode version in MGC field
  8252	044213	260 17 0 00 036263 		GO	DRCRAM			;   bits 14-23
  8253	044214	135 00 0 00 124243 		LDB	[POINT 10,CWORDL,29] 	; get version number
  8254	044215	202 00 0 00 134256'		MOVEM	UVERSN			; save it
  8255	044216	332 00 0 00 064333 		SKIPE	UVERR			; any verify errors?
  8256	044217	254 00 0 00 044223 		JRST	FVERFE			; yes - take error exit
  8257	044220	332 00 0 00 044331 		SKIPE	FFLAG			; operator output desired?
  8258						GO	[TMSGC	<[>		; yes - print message
  8259							 MOVE	ULEN
  8260							 PNTDEC
  8261							 TMSGD	<. CRAM locations loaded/verified]>
  8262							 TMSGC	<[Ucode version >
  8263							 MOVE	UVERSN		; get version number
  8264							 PNTOCS			; print it
  8265							 TMSGD	<]>
  8266	044221	260 17 0 00 130426 			 RTN]
  8267	044222	350 00 0 17 777773 		AOS	-5(P)			; set up good return
  8268	044223	262 17 0 00 000004 	FVERFE:	RGET	(4,3,2,1,0)		; restore AC's
  8269
  8270	044230	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 195
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0358

  8271
  8272					;#********************************************************************
  8273					;* FUERR -  Print verify error data
  8274					;
  8275					; Data printed:  UVERR - number of verify errors
  8276					;		 ECODE - correct/actual data for each error (up to 3)
  8277					;#********************************************************************
  8278
  8279	044231	336 00 0 00 064333 	FUERR:	SKIPN	UVERR			; any verify errors?
  8280	044232	263 17 0 00 000000 		RTN				; no - return
  8281	044233	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save some AC's
  8282
  8283	044240	037 00 0 00 030242 		PCRL				; start a new line
  8284	044241	200 00 0 00 044332 		MOVE	ULEN
  8285	044242	037 15 0 00 000000 		PNTDEC
  8286	044243	037 00 0 00 130437 		TMSG	<. CRAM locations loaded - >
  8287	044244	200 00 0 00 064333 		MOVE	UVERR			; get number of errors
  8288	044245	037 15 0 00 000000 		PNTDEC				; print it
  8289	044246	037 00 0 00 130445 		TMSG	<. verify errors:>
  8290	044247	037 00 0 00 130451 		TMSGC	< Addr           Correct                  Actual>
  8291	044250	201 01 0 00 064334 		MOVEI	1,ECODE			; get address of correct/actual data
  8292	044251	200 04 0 00 064333 		MOVE	4,UVERR			; get number of verify errors
  8293	044252	303 04 0 00 000003 		CAILE	4,3			; more than 3 errors?
  8294	044253	201 04 0 00 000003 		MOVEI	4,3			; yes - limit to 3
  8295	044254	200 00 0 01 000000 	FUERR0:	MOVE	(1)			; get CRAM address
  8296	044255	037 00 0 00 125342 		TMSGC	< >
  8297	044256	037 04 0 00 000000 		PNT4				; print it
  8298	044257	037 00 0 00 127515 		TMSG	<  >
  8299	044260	120 02 0 01 000001 		DMOVE	2,1(1)			; get left/right halves of correct
  8300	044261	260 17 0 00 042527 		GO	PNTWD			; print it
  8301	044262	037 00 0 00 127515 		TMSG	<  >
  8302	044263	120 02 0 01 000003 		DMOVE	2,3(1)			; get left/right halves of actual
  8303	044264	260 17 0 00 042527 		GO	PNTWD			; print it
  8304	044265	271 01 0 00 000005 		ADDI	1,5			; point to next entry
  8305	044266	367 04 0 00 044254 		SOJG	4,FUERR0		; loop till done
  8306	044267	303 04 0 00 000003 		CAILE	4,3			; more than printed?
  8307	044270	037 00 0 00 130463 		TMSGC	< ...>			; yes - indicate more
  8308	044271	037 00 0 00 030242 		PCRL
  8309	044272	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8310
  8311	044277	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 196
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0359

  8312
  8313					;#********************************************************************
  8314					;* ZCOUNT - Zero counters data (local storage locations 1400-1777)
  8315					;#********************************************************************
  8316
  8317	044300	261 17 0 00 000001 	ZCOUNT:	RPUT	(1,4)			; save AC's
  8318
  8319	044302	201 04 0 00 001400 		MOVEI	4,1400			; get initial address
  8320	044303	137 04 0 00 125147 	ZCOUN0:	DPB	4,[POINT 10,DZLOCM,35]	; set up local storage address
  8321	044304	201 01 0 00 037076 		MOVEI	1,DZLOCM		; set up microcode address
  8322	044305	260 17 0 00 064353 		GO	MLOADN			; load/verify it
  8323	044306	255 00 0 00 000000 		JFCL				; ignore error
  8324	044307	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  8325	044310	242 01 0 00 000001 		LSH	1,1			; position correctly
  8326	044311	260 17 0 00 041074*		GO	LDRAR			; load the RAR
  8327	044312	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  8328	044313	260 17 0 00 043726*		GO	LDCSR
  8329	044314	400 01 0 00 000000 		SETZ	1,			; stop the port
  8330	044315	260 17 0 00 044313*		GO	LDCSR
  8331	044316	350 00 0 00 000004 		AOS	4			; point to next address
  8332	044317	305 04 0 00 002000 		CAIGE	4,2000			; done yet?
  8333	044320	254 00 0 00 044303 		JRST	ZCOUN0			; no - loop till done
  8334	044321	262 17 0 00 000004 		RGET	(4,1)			; restore AC's
  8335
  8336	044323	263 17 0 00 000000 		RTN				; return
  8337
  8338
  8339					;#********************************************************************
  8340					; Ucode data areas
  8341					;#********************************************************************
  8342
  8343					; Microcode file name
  8344
  8345	044324	56 51 22 20 00 00 	FNAME:	SIXBIT	/NI20/			; operational microcode
  8346	044325	65 54 44 00 00 00 		SIXBIT	/ULD/			;   file name
  8347
  8348	044326	000000	000000		UNAME:	0				; name of actual microcode
  8349	044327	000000	000000			0				;   loaded into buffer
  8350	044330	000000	000000		CNAME:	0				; name of actual ucode loaded into CRAM
  8351
  8352	044331	000000	000000		FFLAG:	0				; operator output flag (0-N,-1-Y)
  8353
  8354					; Microcode
  8355
  8356	044332	000000	000000		ULEN:	0				; length of microcode
  8357
  8358	044333				UCODE:	BLOCK	^D8192			; microcode data area
  8359
  8360					; Verify error data
  8361
  8362	064333	000000	000000		UVERR:	0				; number of ucode verify errors
  8363	064334				ECODE:	BLOCK	3*5			; verify error ucode data area
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 197
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0360

  8364
  8365					;#********************************************************************
  8366					;* MLOADN - Load microcode and verify it (do not print errors)
  8367					;* MLOADY - Load microcode and verify it (print errors)
  8368					;
  8369					; Arguments:	AC1 - Contains address where microcode starts
  8370					;
  8371					; Returns:	MLNUM - Number of words loaded/verified
  8372					;		+1 - Error occurred loading/verifying microcode
  8373					;		+2 - Ok
  8374					;
  8375					; Microcode format:  The microcode is given in  2  word  segments
  8376					;	(specifying address and 60 CRAM bits).  The ucode is in a
  8377					;	table beginning at the address given in AC1.  The end  of
  8378					;	this table is indicated by a word containing -1.
  8379					;
  8380					;	Microwords from another microcode list may be inserted by
  8381					;	placing a two word entry within  the table:  -2  followed
  8382					;	by the address of the new list.
  8383					;
  8384					;  Word 1:  Bits 00-11 - Microword load address (0000-7777)
  8385					;		 12-35 - Bits 0-23 of microword to load
  8386					;  Word 2:  Bits 00-34 - Bits 24-57,59 of microword to load
  8387					;	         35 ---- Force Bad Parity flag
  8388					;#********************************************************************
  8389
  8390	064353	402 00 0 00 134200'	MLOADN:	SETZM	MVREP#			; clear print flag
  8391	064354	334 00 0 00 000000 		SKIPA				; continue
  8392	064355	476 00 0 00 134200'	MLOADY:	SETOM	MVREP			; set print flag
  8393	064356	402 00 0 00 134176'		SETZM	MVFLAG#			; clear verify flag
  8394	064357	260 17 0 00 064366 		GO	MVCOM			; load microcode
  8395	064360	255 00 0 00 000000 		JFCL				; error - ignore
  8396	064361	476 00 0 00 134176'		SETOM	MVFLAG			; set verify flag
  8397	064362	260 17 0 00 064366 		GO	MVCOM			; verify microcode
  8398	064363	263 17 0 00 000000 		RTN				; error - return
  8399	064364	350 00 0 17 000000 		AOS	(P)			; set up proper return
  8400	064365	263 17 0 00 000000 		RTN				; return
  8401
  8402	064366	476 00 0 00 134177'	MVCOM:	SETOM	MVNUM#			; init number of verify errors
  8403	064367	402 00 0 00 134173'		SETZM	MLNUM#			; init number of words loaded
  8404	064370	323 01 0 00 117037 		JUMPLE	1,[RTN]			; exit if no microcode table specified
  8405	064371	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save some AC's
  8406
  8407	064376	200 04 0 00 000001 		MOVE	4,1			; get address of table in AC4
  8408	064377	200 01 0 00 130465 		MOVE	1,[MWBADR,,MWBADR+1]	; build a BLT pointer
  8409	064400	476 00 0 00 064517 		SETOM	MWBADR			; initialize first word
  8410	064401	251 01 0 00 064535 		BLT	1,MWBRAC+2		; initialize the rest
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 198
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0361

  8411
  8412					; First stop the port and ensure 'DIAG TEST EBUF' is not set
  8413
  8414	064402	260 17 0 00 043724*		GO	ISTOP			; stop the port
  8415	064403	260 17 0 00 000000*		GO	CLREBU			; ensure cleared
  8416	064404	255 00 0 00 000000 		 JFCL				; ignore error
  8417
  8418					; Load microwords
  8419
  8420	064405	200 02 0 04 000000 	MLOAD0:	MOVE	2,(4)			; get first word
  8421	064406	316 02 0 00 124130 		CAMN	2,[-1]			; end of list?
  8422	064407	254 00 0 00 064505 		JRST	MLOADX			; yes - exit
  8423	064410	402 00 0 00 044330 		SETZM	CNAME			; clear 'CRAM loaded' ucode flag
  8424	064411	200 03 0 04 000001 		MOVE	3,1(4)			; get second word
  8425	064412	312 02 0 00 125204 		CAME	2,[-2]			; subtable entry?
  8426	064413	254 00 0 00 064427 		JRST	MLOAD1			; no - go load word
  8427
  8428					; Subtable entry
  8429
  8430	064414	271 04 0 00 000002 		ADDI	4,2			; point to next table entry
  8431	064415	261 17 0 00 130466 		PUT	[MLOADR]		; set up return address
  8432	064416	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save AC's
  8433
  8434	064423	200 04 0 00 000003 		MOVE	4,3			; get table address
  8435	064424	254 00 0 00 064405 		JRST	MLOAD0			; reentrant call to load
  8436	064425	255 00 0 00 000000 	MLOADR:	JFCL				; error - ignore
  8437	064426	254 00 0 00 064405 		JRST	MLOAD0			; continue
  8438
  8439					; Load bits 0-27
  8440
  8441	064427	135 01 0 00 130467 	MLOAD1:	LDB	1,[POINT 12,2,11]	; get actual CRAM load address
  8442	064430	202 01 0 00 035604 		MOVEM	1,CADDR			; save address
  8443	064431	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  8444	064432	660 01 0 00 000001 		TRO	1,1			; set bit 12 (for left 28 bits)
  8445	064433	202 01 0 00 134240'		MOVEM	1,SAVRAR#		; save address loaded
  8446	064434	260 17 0 00 044311*		GO	LDRAR			; load RAR with it
  8447
  8448	064435	200 01 0 00 000003 		MOVE	1,3			; get word 2 (has 'bad parity' flag)
  8449	064436	621 02 0 00 777700 		TLZ	2,777700		; now AC2 has CRAM bits 0-23 
  8450	064437	246 02 0 00 000006 		LSHC	2,6			; now get bits 0-30 in AC2 (left half)
  8451	064440	242 03 0 00 777772 		LSH	3,-6			; right justify AC3 (right half)
  8452	064441	622 03 0 00 000002 		TRZE	3,2			; bit 59 set?
  8453	064442	660 03 0 00 000001 		TRO	3,1			; yes - set rightmost bit
  8454	064443	260 17 0 00 042551 		GO	CALPAR			; calculate parity
  8455	064444	200 01 0 00 000002 		MOVE	1,2			; get left 30 bits
  8456	064445	336 00 0 00 134176'		SKIPN	MVFLAG			; load?
  8457	064446	260 17 0 00 036255*		GO	LDCRAM			; yes - load it
  8458	064447	332 00 0 00 134176'		SKIPE	MVFLAG			; verify?
  8459						GO	[GO	RDCRAM		; yes - read CRAM
  8460							 MOVEM	1,CWORDL	; save it
  8461	064450	260 17 0 00 130470 			 RTN]
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 199
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0362

  8462
  8463					; Load bits 30-59
  8464
  8465	064451	200 01 0 00 134240'		MOVE	1,SAVRAR		; get RAR address (for left 30 bits)
  8466	064452	620 01 0 00 000001 		TRZ	1,1			; clear bit 12 (for right 30 bits)
  8467	064453	260 17 0 00 064434*		GO	LDRAR			; load address
  8468	064454	200 01 0 00 000003 		MOVE	1,3			; get right 30 bits
  8469	064455	336 00 0 00 134176'		SKIPN	MVFLAG			; load?
  8470	064456	260 17 0 00 064446*		GO	LDCRAM			; yes - load it
  8471	064457	336 00 0 00 134176'		SKIPN	MVFLAG			; load?
  8472	064460	254 00 0 00 064502 		JRST	MLOAD2			; yes - next location
  8473	064461	260 17 0 00 036277*		GO	RDCRAM			; yes - read CRAM
  8474	064462	202 01 0 00 035606 		MOVEM	1,CWORDR		; save it
  8475	064463	316 02 0 00 035605 		CAMN	2,CWORDL		; valid data?
  8476	064464	312 03 0 00 035606 		CAME	3,CWORDR
  8477	064465	334 00 0 00 000000 		SKIPA				; no - continue
  8478	064466	254 00 0 00 064502 		JRST	MLOAD2			; yes - next location
  8479	064467	350 01 0 00 134177'		AOS	1,MVNUM			; get error count
  8480	064470	303 01 0 00 000002 		CAILE	1,2			; more than 3 errors?
  8481	064471	254 00 0 00 064502 		JRST	MLOAD2			; yes - next location
  8482	064472	200 00 0 00 035604 		MOVE	CADDR			; get address
  8483	064473	202 00 0 01 064517 		MOVEM	MWBADR(1)		; save it
  8484	064474	202 02 0 01 064522 		MOVEM	2,MWBLCO(1)		; save left 30 bits (correct)
  8485	064475	202 03 0 01 064530 		MOVEM	3,MWBRCO(1)		; save right 30 bits (correct)
  8486	064476	200 02 0 00 035605 		MOVE	2,CWORDL		; get left 30 bits
  8487	064477	202 02 0 01 064525 		MOVEM	2,MWBLAC(1)		; save it (actual)
  8488	064500	200 02 0 00 035606 		MOVE	2,CWORDR		; get right 30 bits
  8489	064501	202 03 0 01 064533 		MOVEM	3,MWBRAC(1)		; save it (actual)
  8490
  8491					; Point to next microword
  8492
  8493	064502	350 00 0 00 134173'	MLOAD2:	AOS	MLNUM			; increment word count
  8494	064503	271 04 0 00 000002 		ADDI	4,2			; increment by 2
  8495	064504	254 00 0 00 064405 		JRST	MLOAD0			; loop till done
  8496
  8497					; Done - return count of words loaded
  8498
  8499	064505	337 00 0 00 134177'	MLOADX:	SKIPG	MVNUM			; any verify errors?
  8500	064506	350 00 0 17 777773 		AOS	-5(P)			; no - set up RTN+2
  8501	064507	332 00 0 00 134200'		SKIPE	MVREP			; report errors?
  8502	064510	260 17 0 00 064536 		GO	MVPNT			; yes - print errors
  8503	064511	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8504
  8505	064516	263 17 0 00 000000 		RTN				; return
  8506
  8507	064517				MWBADR:	BLOCK	3			; CRAM addresses
  8508	064522				MWBLCO:	BLOCK	3			; left correct
  8509	064525				MWBLAC:	BLOCK	3			; left actual
  8510	064530				MWBRCO:	BLOCK	3			; right correct
  8511	064533				MWBRAC:	BLOCK	3			; right actual
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 200
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0363

  8512
  8513					;#********************************************************************
  8514					;* MVPNT - Print verify error data
  8515					;#********************************************************************
  8516
  8517	064536	335 00 0 00 134177'	MVPNT:	SKIPGE	MVNUM			; any errors to report?
  8518	064537	263 17 0 00 000000 		RTN				; no - return
  8519	064540	261 17 0 00 000000 		RPUT	(0,1,2,3,4,5,6)		; save some AC's
  8520
  8521	064547	350 01 0 00 134177'		AOS	1,MVNUM			; get correct error count 1..n
  8522	064550	200 00 0 00 000001 		MOVE	1
  8523	064551	037 00 0 00 130473 		TMSGC	<? >
  8524	064552	037 15 0 00 000000 		PNTDEC				; print it
  8525	064553	037 00 0 00 130474 		TMSG	<. CRAM verify errors:>
  8526	064554	037 00 0 00 130501 		TMSGC	<Addr    --- Correct ---       --- Actual ---      -- Discrepancy -->
  8527	064555	400 04 0 00 000000 		SETZ	4,			; pointer to error data
  8528	064556	200 00 0 04 064517 	MVPNT1:	MOVE	MWBADR(4)		; get address
  8529	064557	037 00 0 00 030242 		PCRL
  8530	064560	037 04 0 00 000000 		PNT4				; print it
  8531	064561	037 00 0 00 117042 		TMSG	< >
  8532	064562	200 02 0 04 064522 		MOVE	2,MWBLCO(4)		; get left half
  8533	064563	200 03 0 04 064530 		MOVE	3,MWBRCO(4)		; get right half
  8534	064564	260 17 0 00 064615 		GO	MVPNTW			; print it
  8535	064565	037 00 0 00 117042 		TMSG	< >
  8536	064566	200 02 0 04 064525 		MOVE	2,MWBLAC(4)		; get left half
  8537	064567	200 03 0 04 064533 		MOVE	3,MWBRAC(4)		; get right half
  8538	064570	260 17 0 00 064615 		GO	MVPNTW			; print it
  8539	064571	037 00 0 00 117042 		TMSG	< >
  8540	064572	200 02 0 04 064522 		MOVE	2,MWBLCO(4)		; get left half
  8541	064573	430 02 0 04 064525 		XOR	2,MWBLAC(4)		; xor actual data
  8542	064574	200 03 0 04 064530 		MOVE	3,MWBRCO(4)		; get right half
  8543	064575	430 03 0 04 064533 		XOR	3,MWBRAC(4)		; xor actual data
  8544	064576	260 17 0 00 064615 		GO	MVPNTW			; print it
  8545	064577	377 00 0 00 000001 		SOSG	1			; decrement error count - done?
  8546	064600	254 00 0 00 064605 		JRST	MVPNTX			; yes - exit
  8547	064601	350 00 0 00 000004 		AOS	4			; point to next word
  8548	064602	305 04 0 00 000003 		CAIGE	4,3			; 3 printed already?
  8549	064603	254 00 0 00 064556 		JRST	MVPNT1			; no - loop till done
  8550	064604	037 00 0 00 130463 		TMSGC	< ...>
  8551	064605	262 17 0 00 000006 	MVPNTX:	RGET	(6,5,4,3,2,1,0)		; yes - restore AC's
  8552
  8553	064614	263 17 0 00 000000 		RTN				; return
  8554
  8555	064615	242 03 0 00 000006 	MVPNTW:	LSH	3,^D6			; left justify the data
  8556	064616	246 02 0 00 000006 		LSHC	2,^D6			; left justify both words
  8557	064617	200 05 0 00 130517 		MOVE	5,[POINT 3,2]		; initial byte pointer
  8558	064620	201 06 0 00 000024 		MOVEI	6,^D20			; number of bytes to print
  8559	064621	134 00 0 00 000005 		ILDB	5			; get byte
  8560	064622	037 16 0 00 000003 		PNTOCS				; print it
  8561	064623	365 06 0 00 064621 		SOJGE	6,.-2			; loop till done
  8562	064624	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 201
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0364

  8563
  8564					;#********************************************************************
  8565					;* MLIST - List microcode of a test
  8566					;#********************************************************************
  8567
  8568	064625	261 17 0 00 000000 	MLIST:	RPUT	(0,1,2,3,4)		; save some AC's
  8569
  8570	064632	037 00 0 00 124742 		TMSGC	<ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK>
  8571	064633	200 04 0 00 000001 		MOVE	4,1			; get address of table in AC4
  8572	064634	200 02 0 04 000000 	MLIST0:	MOVE	2,(4)			; get first word
  8573	064635	316 02 0 00 124130 		CAMN	2,[-1]			; end of list?
  8574	064636	254 00 0 00 064657 		JRST	MLISTX			; yes - exit
  8575	064637	200 03 0 04 000001 		MOVE	3,1(4)			; get second word
  8576
  8577					; Print this CRAM entry
  8578
  8579	064640	037 00 0 00 030242 		PCRL				; start a new line
  8580	064641	135 00 0 00 130467 		LDB	[POINT 12,2,11]		; get cram load address
  8581	064642	001 04 0 00 000000 		PNTOCC	4,0			; print it
  8582	064643	037 00 0 00 124736 		TMSG	</ >
  8583	064644	200 01 0 00 000003 		MOVE	1,3			; get word 2 (it has 'bad parity' flag)
  8584	064645	135 02 0 00 130520 		LDB	2,[POINT 24,2,35]	; get CRAM bits 0-23
  8585	064646	246 02 0 00 000006 		LSHC	2,6			; now get bits 0-30 in AC2 (left half)
  8586	064647	242 03 0 00 777772 		LSH	3,-6			; right justify AC3 (right half)
  8587	064650	622 03 0 00 000002 		TRZE	3,2			; bit 59 set?
  8588	064651	660 03 0 00 000001 		TRO	3,1			; yes - set rightmost bit
  8589	064652	260 17 0 00 042551 		GO	CALPAR			; calculate parity
  8590	064653	260 17 0 00 042433 		GO	PNTCRM			; print it
  8591
  8592					; Point to next microword / Exit if Altmode typed / Exit when done
  8593
  8594	064654	271 04 0 00 000002 		ADDI	4,2			; increment by 2
  8595	064655	336 00 0 00 134143'		SKIPN	ALTF			; altmode typed?
  8596	064656	254 00 0 00 064634 		JRST	MLIST0			; no - loop till done
  8597	064657	037 00 0 00 030242 	MLISTX:	PCRL
  8598	064660	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8599
  8600	064665	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 202
DFNIA1	MAC	18-Feb-84 20:30		Microcode Handling Routines                                                        SEQ 0365

  8601
  8602					;#********************************************************************
  8603					;* TLOAD - Load microcode/verify it for a test
  8604					;
  8605					; Arguments:	AC1 - Contains address where microcode starts
  8606					;
  8607					; Function:	Issue a port clear to the port to ensure it is stopped.
  8608					;		Then call MLOADN to load the microcode, then call MVERFY
  8609					;		to verify it.  Abort on any error.
  8610					;
  8611					; Returns:	+1 - Error occurred loading/verifying microcode
  8612					;		+2 - Ok
  8613					;#********************************************************************
  8614
  8615	064666	332 00 0 00 134166'	TLOAD:	SKIPE	LDEBUG			; ucode load debug switch set?
  8616	064667	254 00 0 00 064676 		JRST	TLOADX			; yes - don't load ucode
  8617	064670	316 01 0 00 134250'		CAMN	1,TSLOAD		; already loaded?
  8618	064671	254 00 0 00 064676 		JRST	TLOADX			; yes - don't load ucode
  8619
  8620	064672	260 17 0 00 037725*		GO	IPACLR			; do a 'port clear'
  8621	064673	260 17 0 00 064353 		GO	MLOADN			; load it
  8622	064674	254 00 0 00 064700 		 JRST	TLOADE			; failed
  8623	064675	202 01 0 00 134250'		MOVEM	1,TSLOAD		; save microcode address
  8624	064676	350 00 0 17 000000 	TLOADX:	AOS	(P)			; set up RTN +2
  8625	064677	263 17 0 00 000000 		RTN				; exit
  8626
  8627	064700	474 15 0 00 000000 	TLOADE:	SETO	ERFLG,			; set error flag
  8628	064701	027 00 0 00 064707 		SCOPER	TLERR			; print error message
  8629	064702	255 00 0 00 000000 		JFCL				; don't allow test looping
  8630	064703	255 00 0 00 000000 		JFCL				; ignore altmode
  8631	064704	332 00 0 00 134172'		SKIPE	MDEBUG			; error message debug switch set?
  8632	064705	350 00 0 17 000000 		AOS	(P)			; yes - skip this error
  8633	064706	263 17 0 00 000000 		RTN				; exit
  8634
  8635	064707	160000	130521		TLERR:	MSG!TXALL![ASCIZ /Error loading test microcode - test aborted./]
  8636	064710	270000	064536			LAST!CALL!TXALL!MVPNT		; print verify errors
  8637
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 203
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0366

  8638						SUBTTL	NI Initialization Routines
  8639
  8640					;#********************************************************************
  8641					;* TPCB - Set up initial PCB
  8642					;#********************************************************************
  8643
  8644	064711	261 17 0 00 000000 	TPCB:	RPUT	(0,1,2,3,4)		; save AC's
  8645
  8646	064716	260 17 0 00 064402*		GO	ISTOP			; stop the port
  8647
  8648					; Handle the first 25 locations
  8649
  8650	064717	200 00 0 00 130532 	TPCB0:	MOVE	[IPCB,,PCB]		; build a BLT pointer
  8651	064720	251 00 0 00 072030 		BLT	PCB+^D24		; transfer the data
  8652	064721	332 00 0 00 030037 		SKIPE	USER			; user mode?
  8653	064722	402 00 0 00 072025 		SETZM	PCB+^D21		; yes - clear PI word
  8654
  8655					; Set up unknown protocol type free queue
  8656
  8657	064723	402 00 0 00 075000 		SETZM	UNKBEG			; clear first word
  8658	064724	200 00 0 00 130533 		MOVE	[UNKBEG,,UNKBEG+1]	; build a BLT pointer
  8659	064725	251 00 0 00 104617 		BLT	UNKEND			; clear the buffer
  8660	064726	120 00 0 00 130534 		DMOVE	[EXP QUNKF1,PCB+11]	; get correct addresses
  8661	064727	124 00 0 00 075000 		DMOVEM	QUNKF0			; save them
  8662	064730	120 00 0 00 130536 		DMOVE	[EXP QUNKF2,QUNKF0]	; get correct addresses
  8663	064731	124 00 0 00 076000 		DMOVEM	QUNKF1			; save them
  8664	064732	120 00 0 00 130540 		DMOVE	[EXP QUNKF3,QUNKF1]	; get correct addresses
  8665	064733	124 00 0 00 077000 		DMOVEM	QUNKF2			; save them
  8666	064734	120 00 0 00 130542 		DMOVE	[EXP QUNKF4,QUNKF2]	; get correct addresses
  8667	064735	124 00 0 00 100000 		DMOVEM	QUNKF3			; save them
  8668	064736	120 00 0 00 130544 		DMOVE	[EXP QUNKF5,QUNKF3]	; get correct addresses
  8669	064737	124 00 0 00 101000 		DMOVEM	QUNKF4			; save them
  8670	064740	120 00 0 00 130546 		DMOVE	[EXP QUNKF6,QUNKF4]	; get correct addresses
  8671	064741	124 00 0 00 102000 		DMOVEM	QUNKF5			; save them
  8672	064742	120 00 0 00 130550 		DMOVE	[EXP QUNKF7,QUNKF5]	; get correct addresses
  8673	064743	124 00 0 00 103000 		DMOVEM	QUNKF6			; save them
  8674	064744	120 00 0 00 130552 		DMOVE	[EXP PCB+11,QUNKF6]	; get correct addresses
  8675	064745	124 00 0 00 104000 		DMOVEM	QUNKF7			; save them
  8676
  8677					; Set up the PTT queue
  8678
  8679	064746	402 00 0 00 105070 		SETZM	PTTBEG			; clear first word
  8680	064747	200 00 0 00 130554 		MOVE	[PTTBEG,,PTTBEG+1]	; build a BLT pointer
  8681	064750	251 00 0 00 115307 		BLT	PTTEND			; clear the buffer
  8682	064751	476 00 0 00 105070 		SETOM	PTTFQ			; initialize interlock word
  8683	064752	400 01 0 00 000000 		SETZ	1,			; initial offset into PTT table
  8684	064753	400 02 0 00 000000 		SETZ	2,			; initial offset into initial table
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 204
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0367

  8685
  8686	064754	200 03 0 02 071110 	TPCB1:	MOVE	3,IPTAB(2)		; get PTT value
  8687	064755	242 03 0 00 000004 		LSH	3,4			; position properly
  8688	064756	661 03 0 00 400000 		TLO	3,400000		; set enable bit
  8689	064757	202 03 0 01 105000 		MOVEM	3,PTABLE(1)		; save PTT word
  8690	064760	201 03 0 00 105071 		MOVEI	3,PTTFQ+1		; get queue header address
  8691	064761	202 03 0 01 105001 		MOVEM	3,PTABLE+1(1)		; save it
  8692	064762	271 01 0 00 000003 		ADDI	1,3			; point to next location
  8693	064763	350 00 0 00 000002 		AOS	2			; set up next PTT value
  8694	064764	307 02 0 00 000017 		CAIG	2,17			; done yet?
  8695	064765	254 00 0 00 064754 		JRST	TPCB1			; no - loop till done
  8696
  8697	064766	120 00 0 00 130555 		DMOVE	[EXP PTTF0,PTTF17]	; get correct addresses
  8698	064767	124 00 0 00 105071 		DMOVEM	PTTFQ+1			; save them
  8699	064770	201 00 0 00 000275 		MOVEI	^D200-13		; get entry length
  8700	064771	202 00 0 00 105073 		MOVEM	PTTFQ+3			; save it
  8701
  8702	064772	120 00 0 00 130557 		DMOVE	[EXP PTTF1,PTTFQ+1]	; get correct addresses
  8703	064773	124 00 0 00 105074 		DMOVEM	PTTF0			; save them
  8704	064774	120 00 0 00 130561 		DMOVE	[EXP PTTF2,PTTF0]	; get correct addresses
  8705	064775	124 00 0 00 106000 		DMOVEM	PTTF1			; save them
  8706	064776	120 00 0 00 130563 		DMOVE	[EXP PTTF3,PTTF1]	; get correct addresses
  8707	064777	124 00 0 00 106310 		DMOVEM	PTTF2			; save them
  8708	065000	120 00 0 00 130565 		DMOVE	[EXP PTTF4,PTTF2]	; get correct addresses
  8709	065001	124 00 0 00 107000 		DMOVEM	PTTF3			; save them
  8710	065002	120 00 0 00 130567 		DMOVE	[EXP PTTF5,PTTF3]	; get correct addresses
  8711	065003	124 00 0 00 107310 		DMOVEM	PTTF4			; save them
  8712	065004	120 00 0 00 130571 		DMOVE	[EXP PTTF6,PTTF4]	; get correct addresses
  8713	065005	124 00 0 00 110000 		DMOVEM	PTTF5			; save them
  8714	065006	120 00 0 00 130573 		DMOVE	[EXP PTTF7,PTTF5]	; get correct addresses
  8715	065007	124 00 0 00 110310 		DMOVEM	PTTF6			; save them
  8716	065010	120 00 0 00 130575 		DMOVE	[EXP PTTF10,PTTF6]	; get correct addresses
  8717	065011	124 00 0 00 111000 		DMOVEM	PTTF7			; save them
  8718	065012	120 00 0 00 130577 		DMOVE	[EXP PTTF11,PTTF7]	; get correct addresses
  8719	065013	124 00 0 00 111310 		DMOVEM	PTTF10			; save them
  8720	065014	120 00 0 00 130601 		DMOVE	[EXP PTTF12,PTTF10]	; get correct addresses
  8721	065015	124 00 0 00 112000 		DMOVEM	PTTF11			; save them
  8722	065016	120 00 0 00 130603 		DMOVE	[EXP PTTF13,PTTF11]	; get correct addresses
  8723	065017	124 00 0 00 112310 		DMOVEM	PTTF12			; save them
  8724	065020	120 00 0 00 130605 		DMOVE	[EXP PTTF14,PTTF12]	; get correct addresses
  8725	065021	124 00 0 00 113000 		DMOVEM	PTTF13			; save them
  8726	065022	120 00 0 00 130607 		DMOVE	[EXP PTTF15,PTTF13]	; get correct addresses
  8727	065023	124 00 0 00 113310 		DMOVEM	PTTF14			; save them
  8728	065024	120 00 0 00 130611 		DMOVE	[EXP PTTF16,PTTF14]	; get correct addresses
  8729	065025	124 00 0 00 114000 		DMOVEM	PTTF15			; save them
  8730	065026	120 00 0 00 130613 		DMOVE	[EXP PTTF17,PTTF15]	; get correct addresses
  8731	065027	124 00 0 00 114310 		DMOVEM	PTTF16			; save them
  8732	065030	120 00 0 00 130615 		DMOVE	[EXP PTTFQ+1,PTTF16]	; get correct addresses
  8733	065031	124 00 0 00 115000 		DMOVEM	PTTF17			; save them
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 205
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0368

  8734
  8735					; Insert data pointer address in each free queue entry
  8736
  8737	065032	201 00 0 00 075013 		MOVEI	QUNKF0+13		; get data pointer address
  8738	065033	202 00 0 00 075012 		MOVEM	QUNKF0+12		; save it
  8739	065034	201 00 0 00 076013 		MOVEI	QUNKF1+13		; get data pointer address
  8740	065035	202 00 0 00 076012 		MOVEM	QUNKF1+12		; save it
  8741	065036	201 00 0 00 077013 		MOVEI	QUNKF2+13		; get data pointer address
  8742	065037	202 00 0 00 077012 		MOVEM	QUNKF2+12		; save it
  8743	065040	201 00 0 00 100013 		MOVEI	QUNKF3+13		; get data pointer address
  8744	065041	202 00 0 00 100012 		MOVEM	QUNKF3+12		; save it
  8745	065042	201 00 0 00 101013 		MOVEI	QUNKF4+13		; get data pointer address
  8746	065043	202 00 0 00 101012 		MOVEM	QUNKF4+12		; save it
  8747	065044	201 00 0 00 102013 		MOVEI	QUNKF5+13		; get data pointer address
  8748	065045	202 00 0 00 102012 		MOVEM	QUNKF5+12		; save it
  8749	065046	201 00 0 00 103013 		MOVEI	QUNKF6+13		; get data pointer address
  8750	065047	202 00 0 00 103012 		MOVEM	QUNKF6+12		; save it
  8751	065050	201 00 0 00 104013 		MOVEI	QUNKF7+13		; get data pointer address
  8752	065051	202 00 0 00 104012 		MOVEM	QUNKF7+12		; save it
  8753
  8754	065052	201 00 0 00 105107 		MOVEI	PTTF0+13		; get data pointer address
  8755	065053	202 00 0 00 105106 		MOVEM	PTTF0+12		; save it
  8756	065054	201 00 0 00 106013 		MOVEI	PTTF1+13		; get data pointer address
  8757	065055	202 00 0 00 106012 		MOVEM	PTTF1+12		; save it
  8758	065056	201 00 0 00 106323 		MOVEI	PTTF2+13		; get data pointer address
  8759	065057	202 00 0 00 106322 		MOVEM	PTTF2+12		; save it
  8760	065060	201 00 0 00 107013 		MOVEI	PTTF3+13		; get data pointer address
  8761	065061	202 00 0 00 107012 		MOVEM	PTTF3+12		; save it
  8762	065062	201 00 0 00 107323 		MOVEI	PTTF4+13		; get data pointer address
  8763	065063	202 00 0 00 107322 		MOVEM	PTTF4+12		; save it
  8764	065064	201 00 0 00 110013 		MOVEI	PTTF5+13		; get data pointer address
  8765	065065	202 00 0 00 110012 		MOVEM	PTTF5+12		; save it
  8766	065066	201 00 0 00 110323 		MOVEI	PTTF6+13		; get data pointer address
  8767	065067	202 00 0 00 110322 		MOVEM	PTTF6+12		; save it
  8768	065070	201 00 0 00 111013 		MOVEI	PTTF7+13		; get data pointer address
  8769	065071	202 00 0 00 111012 		MOVEM	PTTF7+12		; save it
  8770	065072	201 00 0 00 111323 		MOVEI	PTTF10+13		; get data pointer address
  8771	065073	202 00 0 00 111322 		MOVEM	PTTF10+12		; save it
  8772	065074	201 00 0 00 112013 		MOVEI	PTTF11+13		; get data pointer address
  8773	065075	202 00 0 00 112012 		MOVEM	PTTF11+12		; save it
  8774	065076	201 00 0 00 112323 		MOVEI	PTTF12+13		; get data pointer address
  8775	065077	202 00 0 00 112322 		MOVEM	PTTF12+12		; save it
  8776	065100	201 00 0 00 113013 		MOVEI	PTTF13+13		; get data pointer address
  8777	065101	202 00 0 00 113012 		MOVEM	PTTF13+12		; save it
  8778	065102	201 00 0 00 113323 		MOVEI	PTTF14+13		; get data pointer address
  8779	065103	202 00 0 00 113322 		MOVEM	PTTF14+12		; save it
  8780	065104	201 00 0 00 114013 		MOVEI	PTTF15+13		; get data pointer address
  8781	065105	202 00 0 00 114012 		MOVEM	PTTF15+12		; save it
  8782	065106	201 00 0 00 114323 		MOVEI	PTTF16+13		; get data pointer address
  8783	065107	202 00 0 00 114322 		MOVEM	PTTF16+12		; save it
  8784	065110	201 00 0 00 115013 		MOVEI	PTTF17+13		; get data pointer address
  8785	065111	202 00 0 00 115012 		MOVEM	PTTF17+12		; save it
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 206
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0369

  8786
  8787					; Next convert all of the virtual addresses to physical
  8788
  8789	065112	474 03 0 00 000000 	TPCB2:	SETO	3,			; initialize pointer to list
  8790	065113	350 00 0 00 000003 	TPCB3:	AOS	3			; point to next address
  8791	065114	335 01 0 03 065312 		SKIPGE	1,ADRVIR(3)		; done yet?
  8792	065115	254 00 0 00 065123 		JRST	TPCB4			; yes - continue
  8793	065116	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  8794	065117	257 01 0 01 000000 		MAP	1,(1)			; no - map to physical
  8795	065120	621 01 0 00 777000 		TLZ	1,777000		; get rid of extraneous bits
  8796	065121	202 01 0 03 065470 		MOVEM	1,ADRPHY(3)		; save physical address
  8797	065122	254 00 0 00 065113 		JRST	TPCB3			; loop till done
  8798
  8799					; Finally, ensure that each address in all of the queues is indeed
  8800					; a physical address
  8801
  8802	065123	474 03 0 00 000000 	TPCB4:	SETO	3,			; initialize address pointer
  8803	065124	350 00 0 00 000003 	TPCB5:	AOS	3			; point to next address
  8804	065125	335 02 0 03 065145 		SKIPGE	2,ADRQUE(3)		; get location of address - zero?
  8805	065126	254 00 0 00 065135 		JRST	TPCB6			; yes - exit
  8806	065127	200 01 0 02 000000 		MOVE	1,(2)			; get address in that location
  8807	065130	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  8808	065131	257 01 0 01 000000 		MAP	1,(1)			; no - map to physical
  8809	065132	621 01 0 00 777000 		TLZ	1,777000		; get rid of extraneous bits
  8810	065133	202 01 0 02 000000 		MOVEM	1,(2)			; save physical address
  8811	065134	254 00 0 00 065124 		JRST	TPCB5			; loop till done
  8812
  8813					; Set up multicast table
  8814
  8815	065135	200 00 0 00 130617 	TPCB6:	MOVE	[IMTAB,,MTABLE]		; get BLT pointer
  8816	065136	251 00 0 00 115357 		BLT	MTABLE+37		; copy the data
  8817
  8818					; Done - exit
  8819
  8820	065137	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8821
  8822	065144	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0370

  8823
  8824					; Table of locations, the contents of which contain virtual
  8825					; addresses, which must be translated to physical
  8826
  8827	065145	000000	072001		ADRQUE:	EXP	PCB+1,PCB+2,PCB+5,PCB+6,PCB+11,PCB+12,PCB+15,PCB+16,PCB+24
  8828	065146	000000	072002
  8829	065147	000000	072005
  8830	065150	000000	072006
  8831	065151	000000	072011
  8832	065152	000000	072012
  8833	065153	000000	072015
  8834	065154	000000	072016
  8835	065155	000000	072024
  8836	065156	000000	072030			EXP	PCB+30
  8837	065157	000000	075000			EXP	QUNKF0,QUNKF0+1,QUNKF1,QUNKF1+1,QUNKF2,QUNKF2+1,QUNKF3,QUNKF3+1
  8838	065160	000000	075001
  8839	065161	000000	076000
  8840	065162	000000	076001
  8841	065163	000000	077000
  8842	065164	000000	077001
  8843	065165	000000	100000
  8844	065166	000000	100001
  8845	065167	000000	101000			EXP	QUNKF4,QUNKF4+1,QUNKF5,QUNKF5+1,QUNKF6,QUNKF6+1,QUNKF7,QUNKF7+1
  8846	065170	000000	101001
  8847	065171	000000	102000
  8848	065172	000000	102001
  8849	065173	000000	103000
  8850	065174	000000	103001
  8851	065175	000000	104000
  8852	065176	000000	104001
  8853	065177	000000	105001			EXP	PTABLE+1,PTABLE+4,PTABLE+7,PTABLE+12,PTABLE+15,PTABLE+20
  8854	065200	000000	105004
  8855	065201	000000	105007
  8856	065202	000000	105012
  8857	065203	000000	105015
  8858	065204	000000	105020
  8859	065205	000000	105023			EXP	PTABLE+23,PTABLE+26,PTABLE+31,PTABLE+34,PTABLE+37,PTABLE+42
  8860	065206	000000	105026
  8861	065207	000000	105031
  8862	065210	000000	105034
  8863	065211	000000	105037
  8864	065212	000000	105042
  8865	065213	000000	105045			EXP	PTABLE+45,PTABLE+50,PTABLE+53,PTABLE+56
  8866	065214	000000	105050
  8867	065215	000000	105053
  8868	065216	000000	105056
  8869	065217	000000	105071			EXP	PTTFQ+1,PTTFQ+2
  8870	065220	000000	105072
  8871	065221	000000	105074			EXP	PTTF0,PTTF0+1,PTTF1,PTTF1+1,PTTF2,PTTF2+1,PTTF3,PTTF3+1
  8872	065222	000000	105075
  8873	065223	000000	106000
  8874	065224	000000	106001
  8875	065225	000000	106310
  8876	065226	000000	106311
  8877	065227	000000	107000
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207-1
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0371

  8878	065230	000000	107001
  8879	065231	000000	107310			EXP	PTTF4,PTTF4+1,PTTF5,PTTF5+1,PTTF6,PTTF6+1,PTTF7,PTTF7+1
  8880	065232	000000	107311
  8881	065233	000000	110000
  8882	065234	000000	110001
  8883	065235	000000	110310
  8884	065236	000000	110311
  8885	065237	000000	111000
  8886	065240	000000	111001
  8887	065241	000000	111310			EXP	PTTF10,PTTF10+1,PTTF11,PTTF11+1,PTTF12,PTTF12+1,PTTF13,PTTF13+1
  8888	065242	000000	111311
  8889	065243	000000	112000
  8890	065244	000000	112001
  8891	065245	000000	112310
  8892	065246	000000	112311
  8893	065247	000000	113000
  8894	065250	000000	113001
  8895	065251	000000	113310			EXP	PTTF14,PTTF14+1,PTTF15,PTTF15+1,PTTF16,PTTF16+1,PTTF17,PTTF17+1
  8896	065252	000000	113311
  8897	065253	000000	114000
  8898	065254	000000	114001
  8899	065255	000000	114310
  8900	065256	000000	114311
  8901	065257	000000	115000
  8902	065260	000000	115001
  8903	065261	000000	075012			EXP	QUNKF0+12,QUNKF1+12,QUNKF2+12,QUNKF3+12,QUNKF4+12,QUNKF5+12
  8904	065262	000000	076012
  8905	065263	000000	077012
  8906	065264	000000	100012
  8907	065265	000000	101012
  8908	065266	000000	102012
  8909	065267	000000	103012			EXP	QUNKF6+12,QUNKF7+12
  8910	065270	000000	104012
  8911	065271	000000	105106			EXP	PTTF0+12,PTTF1+12,PTTF2+12,PTTF3+12,PTTF4+12,PTTF5+12
  8912	065272	000000	106012
  8913	065273	000000	106322
  8914	065274	000000	107012
  8915	065275	000000	107322
  8916	065276	000000	110012
  8917	065277	000000	110322			EXP	PTTF6+12,PTTF7+12,PTTF10+12,PTTF11+12,PTTF12+12
  8918	065300	000000	111012
  8919	065301	000000	111322
  8920	065302	000000	112012
  8921	065303	000000	112322
  8922	065304	000000	113012			EXP	PTTF13+12,PTTF14+12,PTTF15+12,PTTF16+12,PTTF17+12
  8923	065305	000000	113322
  8924	065306	000000	114012
  8925	065307	000000	114322
  8926	065310	000000	115012
  8927	065311	777777	777777			-1
  8928
  8929					; Table of virtual addresses
  8930
  8931	065312	000000	072001		ADRVIR:	EXP	PCB+1,PCB+5,PCB+11,PTABLE,MTABLE,PCB,PACKET+14,PACKET+20
  8932	065313	000000	072005
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207-2
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0372

  8933	065314	000000	072011
  8934	065315	000000	105000
  8935	065316	000000	115320
  8936	065317	000000	072000
  8937	065320	000000	072130
  8938	065321	000000	072134
  8939	065322	000000	075000			EXP	QUNKF0,QUNKF1,QUNKF2,QUNKF3,QUNKF4,QUNKF5,QUNKF6,QUNKF7
  8940	065323	000000	076000
  8941	065324	000000	077000
  8942	065325	000000	100000
  8943	065326	000000	101000
  8944	065327	000000	102000
  8945	065330	000000	103000
  8946	065331	000000	104000
  8947	065332	000000	105074			EXP	PTTF0,PTTF1,PTTF2,PTTF3,PTTF4,PTTF5,PTTF6,PTTF7,PTTFQ,PTTFQ+1
  8948	065333	000000	106000
  8949	065334	000000	106310
  8950	065335	000000	107000
  8951	065336	000000	107310
  8952	065337	000000	110000
  8953	065340	000000	110310
  8954	065341	000000	111000
  8955	065342	000000	105070
  8956	065343	000000	105071
  8957	065344	000000	111310			EXP	PTTF10,PTTF11,PTTF12,PTTF13,PTTF14,PTTF15,PTTF16,PTTF17,0
  8958	065345	000000	112000
  8959	065346	000000	112310
  8960	065347	000000	113000
  8961	065350	000000	113310
  8962	065351	000000	114000
  8963	065352	000000	114310
  8964	065353	000000	115000
  8965	065354	000000	000000
  8966
  8967	065355	000000	075013			EXP	QUNKF0+13,QUNKF1+13,QUNKF2+13,QUNKF3+13,QUNKF4+13,QUNKF5+13
  8968	065356	000000	076013
  8969	065357	000000	077013
  8970	065360	000000	100013
  8971	065361	000000	101013
  8972	065362	000000	102013
  8973	065363	000000	103013			EXP	QUNKF6+13,QUNKF7+13,PTTF0+13,PTTF1+13,PTTF2+13,PTTF3+13
  8974	065364	000000	104013
  8975	065365	000000	105107
  8976	065366	000000	106013
  8977	065367	000000	106323
  8978	065370	000000	107013
  8979	065371	000000	107323			EXP	PTTF4+13,PTTF5+13,PTTF6+13,PTTF7+13,PTTF10+13,PTTF11+13
  8980	065372	000000	110013
  8981	065373	000000	110323
  8982	065374	000000	111013
  8983	065375	000000	111323
  8984	065376	000000	112013
  8985	065377	000000	112323			EXP	PTTF12+13,PTTF13+13,PTTF14+13,PTTF15+13,PTTF16+13,PTTF17+13
  8986	065400	000000	113013
  8987	065401	000000	113323
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207-3
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0373

  8988	065402	000000	114013
  8989	065403	000000	114323
  8990	065404	000000	115013
  8991
  8992	065405	000000	075014			EXP	QUNKF0+14,QUNKF1+14,QUNKF2+14,QUNKF3+14,QUNKF4+14,QUNKF5+14
  8993	065406	000000	076014
  8994	065407	000000	077014
  8995	065410	000000	100014
  8996	065411	000000	101014
  8997	065412	000000	102014
  8998	065413	000000	103014			EXP	QUNKF6+14,QUNKF7+14,PTTF0+14,PTTF1+14,PTTF2+14,PTTF3+14
  8999	065414	000000	104014
  9000	065415	000000	105110
  9001	065416	000000	106014
  9002	065417	000000	106324
  9003	065420	000000	107014
  9004	065421	000000	107324			EXP	PTTF4+14,PTTF5+14,PTTF6+14,PTTF7+14,PTTF10+14,PTTF11+14
  9005	065422	000000	110014
  9006	065423	000000	110324
  9007	065424	000000	111014
  9008	065425	000000	111324
  9009	065426	000000	112014
  9010	065427	000000	112324			EXP	PTTF12+14,PTTF13+14,PTTF14+14,PTTF15+14,PTTF16+14,PTTF17+14
  9011	065430	000000	113014
  9012	065431	000000	113324
  9013	065432	000000	114014
  9014	065433	000000	114324
  9015	065434	000000	115014
  9016
  9017	065435	000000	075020			EXP	QUNKF0+20,QUNKF1+20,QUNKF2+20,QUNKF3+20,QUNKF4+20,QUNKF5+20
  9018	065436	000000	076020
  9019	065437	000000	077020
  9020	065440	000000	100020
  9021	065441	000000	101020
  9022	065442	000000	102020
  9023	065443	000000	103020			EXP	QUNKF6+20,QUNKF7+20,PTTF0+20,PTTF1+20,PTTF2+20,PTTF3+20
  9024	065444	000000	104020
  9025	065445	000000	105114
  9026	065446	000000	106020
  9027	065447	000000	106330
  9028	065450	000000	107020
  9029	065451	000000	107330			EXP	PTTF4+20,PTTF5+20,PTTF6+20,PTTF7+20,PTTF10+20,PTTF11+20
  9030	065452	000000	110020
  9031	065453	000000	110330
  9032	065454	000000	111020
  9033	065455	000000	111330
  9034	065456	000000	112020
  9035	065457	000000	112330			EXP	PTTF12+20,PTTF13+20,PTTF14+20,PTTF15+20,PTTF16+20,PTTF17+20
  9036	065460	000000	113020
  9037	065461	000000	113330
  9038	065462	000000	114020
  9039	065463	000000	114330
  9040	065464	000000	115020
  9041	065465	000000	072030			EXP	PCB+30,PCB+31
  9042	065466	000000	072031
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207-4
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0374

  9043	065467	777777	777777			-1
  9044
  9045					; Table of physical addresses
  9046
  9047	065470	000000	072001		ADRPHY:	EXP	PCB+1,PCB+5,PCB+11,PTABLE,MTABLE,PCB,PACKET+14,PACKET+20
  9048	065471	000000	072005
  9049	065472	000000	072011
  9050	065473	000000	105000
  9051	065474	000000	115320
  9052	065475	000000	072000
  9053	065476	000000	072130
  9054	065477	000000	072134
  9055	065500	000000	075000			EXP	QUNKF0,QUNKF1,QUNKF2,QUNKF3,QUNKF4,QUNKF5,QUNKF6,QUNKF7
  9056	065501	000000	076000
  9057	065502	000000	077000
  9058	065503	000000	100000
  9059	065504	000000	101000
  9060	065505	000000	102000
  9061	065506	000000	103000
  9062	065507	000000	104000
  9063	065510	000000	105074			EXP	PTTF0,PTTF1,PTTF2,PTTF3,PTTF4,PTTF5,PTTF6,PTTF7,PTTFQ,PTTFQ+1
  9064	065511	000000	106000
  9065	065512	000000	106310
  9066	065513	000000	107000
  9067	065514	000000	107310
  9068	065515	000000	110000
  9069	065516	000000	110310
  9070	065517	000000	111000
  9071	065520	000000	105070
  9072	065521	000000	105071
  9073	065522	000000	111310			EXP	PTTF10,PTTF11,PTTF12,PTTF13,PTTF14,PTTF15,PTTF16,PTTF17,0
  9074	065523	000000	112000
  9075	065524	000000	112310
  9076	065525	000000	113000
  9077	065526	000000	113310
  9078	065527	000000	114000
  9079	065530	000000	114310
  9080	065531	000000	115000
  9081	065532	000000	000000
  9082
  9083	065533	000000	075013			EXP	QUNKF0+13,QUNKF1+13,QUNKF2+13,QUNKF3+13,QUNKF4+13,QUNKF5+13
  9084	065534	000000	076013
  9085	065535	000000	077013
  9086	065536	000000	100013
  9087	065537	000000	101013
  9088	065540	000000	102013
  9089	065541	000000	103013			EXP	QUNKF6+13,QUNKF7+13,PTTF0+13,PTTF1+13,PTTF2+13,PTTF3+13
  9090	065542	000000	104013
  9091	065543	000000	105107
  9092	065544	000000	106013
  9093	065545	000000	106323
  9094	065546	000000	107013
  9095	065547	000000	107323			EXP	PTTF4+13,PTTF5+13,PTTF6+13,PTTF7+13,PTTF10+13,PTTF11+13
  9096	065550	000000	110013
  9097	065551	000000	110323
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207-5
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0375

  9098	065552	000000	111013
  9099	065553	000000	111323
  9100	065554	000000	112013
  9101	065555	000000	112323			EXP	PTTF12+13,PTTF13+13,PTTF14+13,PTTF15+13,PTTF16+13,PTTF17+13
  9102	065556	000000	113013
  9103	065557	000000	113323
  9104	065560	000000	114013
  9105	065561	000000	114323
  9106	065562	000000	115013
  9107
  9108	065563	000000	075014			EXP	QUNKF0+14,QUNKF1+14,QUNKF2+14,QUNKF3+14,QUNKF4+14,QUNKF5+14
  9109	065564	000000	076014
  9110	065565	000000	077014
  9111	065566	000000	100014
  9112	065567	000000	101014
  9113	065570	000000	102014
  9114	065571	000000	103014			EXP	QUNKF6+14,QUNKF7+14,PTTF0+14,PTTF1+14,PTTF2+14,PTTF3+14
  9115	065572	000000	104014
  9116	065573	000000	105110
  9117	065574	000000	106014
  9118	065575	000000	106324
  9119	065576	000000	107014
  9120	065577	000000	107324			EXP	PTTF4+14,PTTF5+14,PTTF6+14,PTTF7+14,PTTF10+14,PTTF11+14
  9121	065600	000000	110014
  9122	065601	000000	110324
  9123	065602	000000	111014
  9124	065603	000000	111324
  9125	065604	000000	112014
  9126	065605	000000	112324			EXP	PTTF12+14,PTTF13+14,PTTF14+14,PTTF15+14,PTTF16+14,PTTF17+14
  9127	065606	000000	113014
  9128	065607	000000	113324
  9129	065610	000000	114014
  9130	065611	000000	114324
  9131	065612	000000	115014
  9132
  9133	065613	000000	075020			EXP	QUNKF0+20,QUNKF1+20,QUNKF2+20,QUNKF3+20,QUNKF4+20,QUNKF5+20
  9134	065614	000000	076020
  9135	065615	000000	077020
  9136	065616	000000	100020
  9137	065617	000000	101020
  9138	065620	000000	102020
  9139	065621	000000	103020			EXP	QUNKF6+20,QUNKF7+20,PTTF0+20,PTTF1+20,PTTF2+20,PTTF3+20
  9140	065622	000000	104020
  9141	065623	000000	105114
  9142	065624	000000	106020
  9143	065625	000000	106330
  9144	065626	000000	107020
  9145	065627	000000	107330			EXP	PTTF4+20,PTTF5+20,PTTF6+20,PTTF7+20,PTTF10+20,PTTF11+20
  9146	065630	000000	110020
  9147	065631	000000	110330
  9148	065632	000000	111020
  9149	065633	000000	111330
  9150	065634	000000	112020
  9151	065635	000000	112330			EXP	PTTF12+20,PTTF13+20,PTTF14+20,PTTF15+20,PTTF16+20,PTTF17+20
  9152	065636	000000	113020
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 207-6
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0376

  9153	065637	000000	113330
  9154	065640	000000	114020
  9155	065641	000000	114330
  9156	065642	000000	115020
  9157	065643	000000	072030			EXP	PCB+30,PCB+31
  9158	065644	000000	072031
  9159	065645	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 208
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0377

  9160
  9161					;#********************************************************************
  9162					;* TIDLE - Start the port and wait for IDLE bit to set in CSR
  9163					;
  9164					; Return:  +1 - Error - never reached idle loop
  9165					;	   +2 - Succeeded
  9166					;#********************************************************************
  9167
  9168	065646	261 17 0 00 000000 	TIDLE:	RPUT	(0,1,2)			; save AC's
  9169
  9170	065651	260 17 0 00 064672*		GO	IPACLR			; clear port
  9171
  9172					; Set up initial CCW list
  9173
  9174	065652	260 17 0 00 033772*		GO	CHINIT			; initialize software
  9175
  9176					; Start it up
  9177
  9178	065653	400 01 0 00 000000 		SETZ	1,			; clear data
  9179	065654	260 17 0 00 064453*		GO	LDRAR			; clear RAR contents
  9180	065655	201 01 0 00 000010 		MOVEI	1,MPRUN			; get 'MPRun' bit
  9181	065656	336 00 0 00 030037 		SKIPN	USER			; user mode?
  9182	065657	660 01 0 00 000004 		TRO	1,4			; no - set PIA bits
  9183	065660	260 17 0 00 044315*		GO	LDCSR			; start up the port
  9184	065661	005 00 0 00 000144 		DELAY	^D100			; wait of 100 milliseconds
  9185	065662	260 17 0 00 042337*		GO	RDCSR			; read CSR register
  9186	065663	254 00 0 00 065666 		JRST	TIDLEE			; error - exit
  9187	065664	602 01 0 00 000010 		TRNE	1,MPRUN			; still running?
  9188	065665	350 00 0 17 777775 		AOS	-3(P)			; yes - set up proper return
  9189	065666	262 17 0 00 000002 	TIDLEE:	RGET	(2,1,0)			; restore AC's
  9190
  9191	065671	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 209
DFNIA1	MAC	18-Feb-84 20:30		NI Initialization Routines                                                         SEQ 0378

  9192
  9193					;#********************************************************************
  9194					;* RDADDR - Read NI physical address register (ROM)
  9195					;#********************************************************************
  9196
  9197	065672	261 17 0 00 000000 	RDADDR:	RPUT	(0,1,2)			; save AC's
  9198
  9199	065675	201 02 0 00 000007 		MOVEI	2,7			; initialize address
  9200
  9201	065676	201 01 0 00 000005 	RDADD0:	MOVEI	1,5			; set up to write address
  9202	065677	350 00 0 00 000002 		AOS	2			; point to next address
  9203	065700	260 17 0 00 040126 		GO	WRTPLI			; set up to read physical addr register
  9204	065701	260 17 0 00 040054 		GO	RDBF			; read byte
  9205						XCT	[DPB	1,[POINT 8,SADDR,31]
  9206							 DPB	1,[POINT 8,SADDR,23]
  9207							 DPB	1,[POINT 8,SADDR,15]
  9208							 DPB	1,[POINT 8,SADDR,7]
  9209							 DPB	1,[POINT 8,SADDR+1,31]
  9210	065702	256 00 0 02 130610 			 DPB	1,[POINT 8,SADDR+1,23]]-10(2)
  9211	065703	305 02 0 00 000015 		CAIGE	2,15			; done yet?
  9212	065704	254 00 0 00 065676 		JRST	RDADD0			; no - loop till done
  9213
  9214	065705	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9215
  9216	065710	263 17 0 00 000000 		RTN				; return
  9217
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 210
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0379

  9218						SUBTTL	Packet Handling Routines
  9219
  9220					;#********************************************************************
  9221					; Routines for building packets, etc:
  9222					;
  9223					; BPACK - Build a packet
  9224					;   ITEXT - get text length + text
  9225					;   ICRC - get text len + text + CRC
  9226					;   IREGW - Set up to write a register
  9227					;   IREGR - Set up to read a register
  9228					;
  9229					; RWAIT - Wait for a response (by CSR bit 'RspQAvail' bit being set.
  9230					; INSQUE - Insert a packet into a queue
  9231					; CHKRSP - Check if a response queue entry
  9232					;   CHKINT - Check/set up interlock for queue
  9233					;   CONVIR - Convert physical address to virtual
  9234					;   GETQUE - Remove a queue entry from the beginning of a queue
  9235					;   PUTQUE - Insert a queue entry on the end of a queue
  9236					;   SHUTRQ - Turn off RESQAV bit in CSR register
  9237					;
  9238					; Arguments:	OP - Contains the op code
  9239					;		TFMFLG - Format flag (0-COMPAT,1-HIDEN)
  9240					;		TBSDFL - BSD style datagram flag (0-no,1-yes)
  9241					;		TRSFLG - Response packet is requested flag (0-no,1-yes)
  9242					;		TPDFLG - Pad flag (0-no,1-yes)
  9243					;		TDEST - Destination address
  9244					;		TBYTE -  Length of text portion (in bytes)
  9245					;		TPAT -   Data pattern
  9246					;		TREGN -  Register number (to read or write)
  9247					;		TREGD -  Register data (read or written)
  9248					;#********************************************************************
  9249
  9250	065711	000000	000000		TFMFLG:	0			; format flag (0-COMPAT,1-HIDEN)
  9251	065712	000000	000000		TBSDFL:	0			; BSD style flag (0-no,1-yes)
  9252	065713	000000	000000		TRSFLG:	0			; response packet requested flag (0-no,1-yes)
  9253	065714	000000	000000		TPDFLG:	0			; pad flag
  9254
  9255	065715	000000	000000		TDEST:	0			; destination address
  9256	065716	000000	000000			0
  9257
  9258	065717	000000	000000		TPTTVL:	0			; PTT value
  9259
  9260	065720	000000	000000		TBYTE:	0			; length of text portion (in bytes)
  9261	065721	000000	000000		TWORD:	0			; calculated text length (in words)
  9262	065722	000000	000000		TPAT:	0			; data pattern
  9263	065723	000000	000000		TREGN:	0			; register number (to read or write)
  9264	065724	000000	000000		TREGD:	0			; register data (read or written)
  9265
  9266	065725	000000	000000		TAMC:	0			; AMC bit
  9267	065726	000000	000000		TH4000:	0			; H4000 mode
  9268	065727	000000	000000		TPRMSC:	0			; PRMSC bit
  9269	065730	000000	000000		TRETRY:	0			; retry count
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 211
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0380

  9270
  9271					;#********************************************************************
  9272					;* BPACK - Build a packet
  9273					;#********************************************************************
  9274
  9275	065731	476 00 0 00 134164'	BPACKN:	SETOM	INHCRC#			; set 'inhibit CRC calc' flag
  9276	065732	334 00 0 00 000000 		SKIPA				; continue
  9277	065733	402 00 0 00 134164'	BPACK:	SETZM	INHCRC			; clear 'inhibit CRC calc' flag
  9278	065734	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save AC's
  9279
  9280
  9281					; Initialize packet to 0's
  9282
  9283	065741	402 00 0 00 072114 		SETZM	PACKET			; clear first word
  9284	065742	200 00 0 00 127177 		MOVE	[PACKET,,PACKET+1]	; build BLT pointer
  9285	065743	251 00 0 00 072733 		BLT	PACKET+^D399		; clear the packet buffer
  9286
  9287					; Insert flags
  9288
  9289	065744	400 02 0 00 000000 		SETZ	2,			; initialize flags
  9290	065745	332 00 0 00 065713 		SKIPE	TRSFLG			; always generate response?
  9291	065746	660 02 0 00 000001 		TRO	2,1			; yes - set response flag
  9292	065747	302 11 0 00 000001 		CAIE	OP,DGSNT		; datagram?
  9293	065750	254 00 0 00 065763 		JRST	BPACK0			; no - continue
  9294	065751	336 00 0 00 134164'		SKIPN	INHCRC			; inhibit CRC?
  9295	065752	660 02 0 00 000100 		TRO	2,100			; no - set 'CRC included' flag
  9296	065753	332 00 0 00 065712 		SKIPE	TBSDFL			; BSD style datagram?
  9297	065754	336 00 0 00 065711 		SKIPN	TFMFLG			; yes - HIDEN format?
  9298	065755	334 00 0 00 000000 		SKIPA				; no - continue
  9299	065756	660 02 0 00 000200 		TRO	2,200			; yes - set HIDEN flag
  9300	065757	332 00 0 00 065712 		SKIPE	TBSDFL			; BSD style datagram?
  9301	065760	660 02 0 00 000010 		TRO	2,10			; yes - set the flag
  9302	065761	332 00 0 00 065714 		SKIPE	TPDFLG			; pad flag set?
  9303	065762	660 02 0 00 000040 		TRO	2,40			; yes - set PAD bit
  9304	065763	137 02 0 00 127200 	BPACK0:	DPB	2,[POINT 8,PACKET+3,15]	; store in packet
  9305
  9306					; Insert OP code
  9307
  9308	065764	260 17 0 00 070207 		GO	DECOPC			; decode op code
  9309						JRST	[TMSGC	<? Illegal op code specified - >
  9310							 MOVE	OP
  9311							 PNTOCS
  9312	065765	254 00 0 00 130635 			 JRST	BPACKX]
  9313	065766	137 11 0 00 127201 		DPB	OP,[POINT 8,PACKET+3,23]; insert op code
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 212
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0381

  9314
  9315					; Build rest of packet
  9316
  9317						XCT	[GO	BPAK1		; 1-SNDDG
  9318							 JFCL			; 2-LDMCAT
  9319							 JFCL			; 3-LDPTT
  9320							 GO	BPAK4		; 4-RCCNT
  9321							 GO	BPAK6		; 6-WRPLI
  9322							 GO	BPAK7		; 7-RDPLI
  9323							 JFCL			; 10-RDNSA
  9324							 GO	BPAK11		; 11-WRNSA
  9325	065767	256 00 0 01 130641 			 JFCL](1)
  9326
  9327					; Exit
  9328
  9329	065770	262 17 0 00 000004 	BPACKX:	RGET	(4,3,2,1,0)		; restore AC's
  9330
  9331	065775	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 213
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0382

  9332
  9333					;#********************************************************************
  9334					;* BPAK1 - Build packet for DGSNT command
  9335					;#********************************************************************
  9336
  9337	065776	402 00 0 00 000000*	BPAK1:	SETZM	CRCSAV			; clear saved CRC data
  9338	065777	476 00 0 00 000000*		SETOM	CRCOFF			; init CRC table offset
  9339	066000	200 00 0 00 065717 		MOVE	TPTTVL			; get PTT value
  9340	066001	137 00 0 00 130652 		DPB	[POINT 16,PACKET+5,31]	; insert in packet
  9341	066002	201 00 0 00 105071 		MOVEI	PTTFQ+1			; get header address
  9342	066003	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  9343	066004	257 00 0 00 105071 		MAP	PTTFQ+1			; no - map to physical
  9344	066005	621 00 0 00 777000 		TLZ	777000			; get rid of extraneous bits
  9345	066006	202 00 0 00 072122 		MOVEM	PACKET+6		; insert in packet
  9346	066007	120 00 0 00 065715 		DMOVE	TDEST			; get destination address
  9347	066010	124 00 0 00 072123 		DMOVEM	PACKET+7		; save it
  9348	066011	332 00 0 00 065712 		SKIPE	TBSDFL			; BSD style datagram?
  9349	066012	254 00 0 00 066024 		JRST	BPAK1A			; yes - go handle
  9350
  9351					; Non BSD style format
  9352
  9353	066013	201 01 0 00 072125 		MOVEI	1,PACKET+11		; address of text
  9354	066014	260 17 0 00 066211 		GO	ITEXT			; insert text
  9355	066015	200 00 0 00 065720 		MOVE	TBYTE			; get byte count
  9356	066016	336 00 0 00 134164'		SKIPN	INHCRC			; inhibit CRC?
  9357	066017	271 00 0 00 000004 		ADDI	4			; no - add 4 more bytes for CRC
  9358	066020	202 00 0 00 072120 		MOVEM	PACKET+4		; save it
  9359	066021	201 01 0 00 072125 		MOVEI	1,PACKET+11		; address of text
  9360	066022	260 17 0 00 066250 		GO	ICRC			; calculate CRC
  9361	066023	263 17 0 00 000000 		RTN				; return
  9362
  9363					; BSD style format
  9364
  9365	066024	201 00 0 00 072130 	BPAK1A:	MOVEI	PACKET+14		; get base address
  9366	066025	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  9367	066026	257 00 0 00 072130 		MAP	PACKET+14		; no - map to physical
  9368	066027	621 00 0 00 777000 		TLZ	777000			; get rid of extraneous bits
  9369	066030	202 00 0 00 072125 		MOVEM	PACKET+11		; save it
  9370	066031	201 00 0 00 072134 		MOVEI	PACKET+20		; get segment base address
  9371	066032	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
  9372	066033	257 00 0 00 072134 		MAP	PACKET+20		; no - map to physical
  9373	066034	621 00 0 00 777000 		TLZ	777000			; get rid of extraneous bits
  9374	066035	202 00 0 00 072130 		MOVEM	PACKET+14		; save it
  9375	066036	332 01 0 00 065711 		SKIPE	1,TFMFLG		; get format flag
  9376	066037	201 01 0 00 000001 		MOVEI	1,1			; get HIDEN bits
  9377	066040	137 01 0 00 130653 		DPB	1,[POINT 1,PACKET+14,6]	; save packing mode bit
  9378	066041	201 01 0 00 072134 		MOVEI	1,PACKET+20		; address of text
  9379	066042	260 17 0 00 066211 		GO	ITEXT			; insert text
  9380	066043	200 00 0 00 065720 		MOVE	TBYTE			; get byte count
  9381	066044	336 00 0 00 134164'		SKIPN	INHCRC			; inhibit CRC?
  9382	066045	271 00 0 00 000004 		ADDI	4			; no - add 4 more bytes for CRC
  9383	066046	202 00 0 00 072132 		MOVEM	PACKET+16		; save it
  9384	066047	202 00 0 00 072120 		MOVEM	PACKET+4		; save it
  9385	066050	201 01 0 00 072134 		MOVEI	1,PACKET+20		; address of text
  9386	066051	260 17 0 00 066250 		GO	ICRC			; calculate CRC
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 213-1
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0383

  9387	066052	263 17 0 00 000000 		RTN				; return
  9388
  9389
  9390					;#********************************************************************
  9391					;* BPAK4 - Build packet for RCCNT command
  9392					;#********************************************************************
  9393
  9394	066053	332 00 0 00 115611 	BPAK4:	SKIPE	PMODE			; normal test?
  9395	066054	263 17 0 00 000000 		RTN				; yes - exit
  9396	066055	476 00 0 00 040510*		SETOM	ARGFLG			; initialize to accept arguments
  9397	066056	260 17 0 00 035723*		GO	CLRBUF			; clear input buffer
  9398	066057	400 01 0 00 000000 		SETZ	1,			; clear AC1
  9399	066060	200 00 0 00 130660 		MOVE	[FMSGC	<Clear counters?>]
  9400	066061	260 17 0 00 000000*		GO	TTYYES			; ask question
  9401	066062	334 00 0 00 000000 		SKIPA				; no - continue
  9402	066063	200 01 0 00 130661 		MOVE	1,[1B14]		; yes - get a 1 for clear counters
  9403	066064	436 01 0 00 072117 		IORM	1,PACKET+3		; save data
  9404	066065	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 214
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0384

  9405
  9406					;#********************************************************************
  9407					;* BPAK6 - Build packet for WRPLI command
  9408					;#********************************************************************
  9409
  9410	066066	332 00 0 00 115611 	BPAK6:	SKIPE	PMODE			; normal test?
  9411	066067	254 00 0 00 066107 		JRST	BPAK6B			; yes - continue
  9412	066070	476 00 0 00 066055*	BPAK6A:	SETOM	ARGFLG			; initialize to accept arguments
  9413	066071	260 17 0 00 066056*		GO	CLRBUF			; clear input buffer
  9414	066072	037 01 0 00 130662 		FMSGC	<Register number,data? >
  9415						MOVE	1,[FMSGCD <Register n,data, where n:
  9416					1-RcXmBf   5-RRcAtn  11-WXmtBf
  9417					2-WFBLst   6-EnaLnk  12-WtReg
  9418					3-WRBfAd   7-DsaLnk  13-ClrRBf
  9419	066073	200 01 0 00 130725 	4-XmtAct  10-WtAdrs>]
  9420	066074	260 17 0 00 041534*		GO	.OARG			; get argument
  9421						JRST	[GO	FIOFF		; error - shut off file input
  9422	066075	254 00 0 00 130726 			 JRST	BPAK6A]		;   and exit
  9423						JRST	[GO	FIOFF		; missing argument - shut off file
  9424	066076	254 00 0 00 117055 			 RTN]			;   input and exit
  9425	066077	200 00 0 00 042074*		MOVE	ARGUM			; get argument
  9426	066100	202 00 0 00 065723 		MOVEM	TREGN			; save it
  9427						MOVN	1,[FMSGCD <Register n,data, where n:
  9428					1-RcXmBf   5-RRcAtn  11-WXmtBf
  9429					2-WFBLst   6-EnaLnk  12-WtReg
  9430					3-WRBfAd   7-DsaLnk  13-ClrRBf
  9431	066101	210 01 0 00 130725 	4-XmtAct  10-WtAdrs>]
  9432	066102	260 17 0 00 066074*		GO	.OARG			; get argument
  9433						JRST	[GO	FIOFF		; error - shut off file input
  9434	066103	254 00 0 00 130726 			 JRST	BPAK6A]		;   and exit
  9435						JRST	[GO	FIOFF		; missing argument - shut off file
  9436	066104	254 00 0 00 117055 			 RTN]			;   input and exit
  9437	066105	200 00 0 00 066077*		MOVE	ARGUM			; get argument
  9438	066106	202 00 0 00 065724 		MOVEM	TREGD			; save it
  9439	066107	402 00 0 00 072120 	BPAK6B:	SETZM	PACKET+4		; clear word
  9440	066110	200 00 0 00 065723 		MOVE	TREGN			; get register number
  9441	066111	137 00 0 00 130730 		DPB	[POINT 4,PACKET+4,23]	; store in packet
  9442	066112	200 00 0 00 065724 		MOVE	TREGD			; get register data
  9443	066113	137 00 0 00 130731 		DPB	[POINT 8,PACKET+4,35]	; store in packet
  9444	066114	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 215
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0385

  9445
  9446					;#********************************************************************
  9447					;* BPAK7 - Build packet for RDPLI command
  9448					;#********************************************************************
  9449
  9450	066115	332 00 0 00 115611 	BPAK7:	SKIPE	PMODE			; normal test?
  9451	066116	254 00 0 00 066130 		JRST	BPAK7B			; yes - continue
  9452	066117	476 00 0 00 066070*	BPAK7A:	SETOM	ARGFLG			; initialize to accept arguments
  9453	066120	260 17 0 00 066071*		GO	CLRBUF			; clear input buffer
  9454	066121	037 01 0 00 130732 		FMSGC	<Register number? >
  9455						MOVN	1,[FMSGCD <Register number n, where n:
  9456					1-RdReg   4-RdXSta
  9457					2-RRecBf  5-RdRSta
  9458	066122	210 01 0 00 130757 	3-RUBLst>]
  9459	066123	260 17 0 00 066102*		GO	.OARG			; get argument
  9460						JRST	[GO	FIOFF		; error - shut off file input
  9461	066124	254 00 0 00 130760 			 JRST	BPAK7A]		;   and exit
  9462						JRST	[GO	FIOFF		; missing argument - shut off file
  9463	066125	254 00 0 00 117055 			 RTN]			;   input and exit
  9464	066126	200 00 0 00 066105*		MOVE	ARGUM			; get argument
  9465	066127	202 00 0 00 065723 		MOVEM	TREGN			; save it
  9466	066130	200 00 0 00 065723 	BPAK7B:	MOVE	TREGN			; get register number
  9467	066131	402 00 0 00 072120 		SETZM	PACKET+4		; clear word
  9468	066132	137 00 0 00 130730 		DPB	[POINT 4,PACKET+4,23]	; store in packet
  9469	066133	263 17 0 00 000000 		RTN				; return
  9470
  9471
  9472					;#********************************************************************
  9473					;* BPAK11 - Build packet for WRNSA command
  9474					;#********************************************************************
  9475
  9476	066134	332 00 0 00 115611 	BPAK11:	SKIPE	PMODE			; normal test?
  9477	066135	254 00 0 00 066173 		JRST	BPK11B			; yes - continue
  9478	066136	476 00 0 00 066117*	BPK11A:	SETOM	ARGFLG			; initialize to accept arguments
  9479	066137	402 00 0 00 065725 		SETZM	TAMC
  9480	066140	402 00 0 00 065726 		SETZM	TH4000
  9481	066141	402 00 0 00 065727 		SETZM	TPRMSC
  9482	066142	402 00 0 00 065730 		SETZM	TRETRY
  9483	066143	260 17 0 00 066120*		GO	CLRBUF			; clear input buffer
  9484	066144	037 01 0 00 130762 		FMSGC	<AMC,H4000 Mode,PRMSC Mode,#retries? >
  9485
  9486	066145	200 01 0 00 131005 		MOVE	1,[FMSGCD <AMC,H4000 Mode,PRMSC Mode,#retries (0-Off,1-On)>]
  9487	066146	260 17 0 00 066123*		GO	.OARG			; get argument
  9488						JRST	[GO	FIOFF		; error - shut off file input
  9489	066147	254 00 0 00 131006 			 JRST	BPK11A]		;   and exit
  9490	066150	254 00 0 00 066173 		JRST	BPK11B			; no more arguments - continue
  9491	066151	200 00 0 00 066126*		MOVE	ARGUM			; get argument
  9492	066152	202 00 0 00 065725 		MOVEM	TAMC			; save it
  9493
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 216
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0386

  9494	066153	260 17 0 00 066146*		GO	.OARG			; get argument
  9495						JRST	[GO	FIOFF		; error - shut off file input
  9496	066154	254 00 0 00 131006 			 JRST	BPK11A]		;   and exit
  9497	066155	254 00 0 00 066173 		JRST	BPK11B			; no more arguments - continue
  9498	066156	200 00 0 00 066151*		MOVE	ARGUM			; get argument
  9499	066157	202 00 0 00 065726 		MOVEM	TH4000			; save it
  9500
  9501	066160	260 17 0 00 066153*		GO	.OARG			; get argument
  9502						JRST	[GO	FIOFF		; error - shut off file input
  9503	066161	254 00 0 00 131006 			 JRST	BPK11A]		;   and exit
  9504	066162	254 00 0 00 066173 		JRST	BPK11B			; no more arguments - continue
  9505	066163	200 00 0 00 066156*		MOVE	ARGUM			; get argument
  9506	066164	202 00 0 00 065727 		MOVEM	TPRMSC			; save it
  9507
  9508	066165	210 01 0 00 131005 		MOVN	1,[FMSGCD <AMC,H4000 Mode,PRMSC Mode,#retries (0-Off,1-On)>]
  9509	066166	260 17 0 00 066160*		GO	.OARG			; get argument
  9510						JRST	[GO	FIOFF		; error - shut off file input
  9511	066167	254 00 0 00 131006 			 JRST	BPK11A]		;   and exit
  9512	066170	254 00 0 00 066173 		JRST	BPK11B			; no more arguments - continue
  9513	066171	200 00 0 00 066163*		MOVE	ARGUM			; get argument
  9514	066172	202 00 0 00 065730 		MOVEM	TRETRY			; save it
  9515
  9516					; Build the packet now
  9517
  9518	066173	120 00 0 00 033704 	BPK11B:	DMOVE	SADDR			; get our station address
  9519	066174	124 00 0 00 072120 		DMOVEM	PACKET+4		; save it
  9520	066175	402 00 0 00 072122 		SETZM	PACKET+6		; clear special bits
  9521	066176	200 00 0 00 065725 		MOVE	TAMC			; get AMC bit
  9522	066177	137 00 0 00 131010 		DPB	[POINT 1,PACKET+6,33]	; save it
  9523	066200	200 00 0 00 065726 		MOVE	TH4000			; get TH4000 bit
  9524	066201	137 00 0 00 131011 		DPB	[POINT 1,PACKET+6,34]	; save it
  9525	066202	200 00 0 00 065727 		MOVE	TPRMSC			; get PRMSC bit
  9526	066203	137 00 0 00 131012 		DPB	[POINT 1,PACKET+6,35]	; save it
  9527	066204	201 00 0 00 000001 		MOVEI	1			; get ACRC bit (force it always)
  9528	066205	137 00 0 00 131013 		DPB	[POINT 1,PACKET+6,32]	; save it
  9529	066206	200 00 0 00 065730 		MOVE	TRETRY			; get retry count allowed
  9530	066207	202 00 0 00 072123 		MOVEM	PACKET+7		; save it
  9531	066210	263 17 0 00 000000 		RTN
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 217
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0387

  9532
  9533					;#********************************************************************
  9534					;* ITEXT - get text length + text
  9535					;
  9536					; Given:  AC1 - Text starting address
  9537					;	  TBYTE - Byte count
  9538					;	  TFMFLG - 0-Compat / 1-HIDEN
  9539					;#********************************************************************
  9540
  9541					; First ensure byte count and word counts are in range ...
  9542
  9543	066211	261 17 0 00 000000 	ITEXT:	RPUT	(0,1,2,3)		; save AC's
  9544
  9545	066215	336 00 0 00 065720 		SKIPN	TBYTE			; byte count given?
  9546						JRST	[MOVE	TWORD		; no - get word count
  9547	066216	254 00 0 00 131014 			 JRST	ITEXT0]		;   and continue
  9548	066217	200 00 0 00 065720 		MOVE	TBYTE			; get length in bytes
  9549	066220	332 00 0 00 065711 		SKIPE	TFMFLG			; HIDEN format?
  9550						JRST	[LSH	1		; yes - multiply by 2 and
  9551							 IDIVI	9		;   divide by 9 to calculate
  9552							 SKIPE	1		;   word count - and ensure
  9553							 AOS			;   that it is an even number
  9554							 TRZ	1		;   of words
  9555	066221	254 00 0 00 131016 			 JRST	ITEXT0]
  9556	066222	231 00 0 00 000004 		IDIVI	4			; COMPAT - calculate word count
  9557	066223	332 00 0 00 000001 		SKIPE	1			; remainder?
  9558	066224	350 00 0 00 000000 		AOS				; yes - increment word count
  9559	066225	202 00 0 00 065721 	ITEXT0:	MOVEM	TWORD			; save word count
  9560	066226	332 00 0 00 065711 		SKIPE	TFMFLG			; HIDEN format?
  9561						GO	[LSH	-1		; yes - divide by 2 and
  9562							 IMULI	9		;   multiply by 9 to calculate
  9563	066227	260 17 0 00 131024 			 RTN]			;   byte count
  9564	066230	336 00 0 00 065711 		SKIPN	TFMFLG			; HIDEN format?	
  9565	066231	242 00 0 00 000002 		LSH	2			; no - calculate bytes
  9566	066232	202 00 0 00 065720 		MOVEM	TBYTE			; save byte count
  9567
  9568					; Now insert data pattern
  9569
  9570	066233	200 14 0 00 065722 		MOVE	PAT,TPAT		; get data pattern
  9571	066234	200 02 0 00 065721 		MOVE	2,TWORD			; word count
  9572	066235	303 02 0 00 000574 		CAILE	2,^D380			; word count in proper range?
  9573	066236	201 00 0 00 000574 		MOVEI	^D380			; no - limit to maximum length
  9574	066237	200 03 0 17 777776 		MOVE	3,-2(P)			; buffer address
  9575	066240	260 17 0 00 000000*		GO	BUFGEN			; generate buffer contents
  9576
  9577					; Exit after testing for additional routine
  9578
  9579	066241	332 00 0 00 134254'		SKIPE	TXADDL			; routine specified for addl data?
  9580	066242	260 17 1 00 134254'		GO	@TXADDL			; yes - call it
  9581	066243	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  9582
  9583	066247	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 218
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0388

  9584
  9585					;#********************************************************************
  9586					;* ICRC - Calculate CRC
  9587					;
  9588					; Given:  AC1 - Address of text data
  9589					;#********************************************************************
  9590
  9591	066250	332 00 0 00 134164'	ICRC:	SKIPE	INHCRC			; inhibit CRC calculation?
  9592	066251	263 17 0 00 000000 		RTN				; yes - return
  9593	066252	261 17 0 00 000001 		RPUT	(1,2,3,4,5,6,7,10)	; no - save AC's
  9594
  9595	066262	332 04 0 00 065776*		SKIPE	4,CRCSAV		; get precalculated CRC - valid?
  9596						JRST	[ADD	1,TWORD		; yes - save it and exit
  9597							 MOVEM	4,(1)
  9598	066263	254 00 0 00 131027 			 JRST	ICRCY]
  9599
  9600					; Calculate CRC of destination
  9601
  9602	066264	474 04 0 00 000000 		SETO	4,			; initial CRC value
  9603	066265	135 02 0 00 131032 		LDB	2,[POINT 8,PACKET+7,31]	; get byte 0
  9604	066266	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9605	066267	135 02 0 00 131033 		LDB	2,[POINT 8,PACKET+7,23]	; get byte 1
  9606	066270	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9607	066271	135 02 0 00 131034 		LDB	2,[POINT 8,PACKET+7,15]	; get byte 2
  9608	066272	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9609	066273	135 02 0 00 131035 		LDB	2,[POINT 8,PACKET+7,7]	; get byte 3
  9610	066274	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9611	066275	135 02 0 00 131036 		LDB	2,[POINT 8,PACKET+10,31]; get byte 4
  9612	066276	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9613	066277	135 02 0 00 131037 		LDB	2,[POINT 8,PACKET+10,23]; get byte 5
  9614	066300	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9615
  9616					; Calculate CRC of source
  9617
  9618	066301	135 02 0 00 123053 		LDB	2,[POINT 8,SADDR,31]	; get byte 0
  9619	066302	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9620	066303	135 02 0 00 123054 		LDB	2,[POINT 8,SADDR,23]	; get byte 1
  9621	066304	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9622	066305	135 02 0 00 123055 		LDB	2,[POINT 8,SADDR,15]	; get byte 2
  9623	066306	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9624	066307	135 02 0 00 123056 		LDB	2,[POINT 8,SADDR,7]	; get byte 3
  9625	066310	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9626	066311	135 02 0 00 123057 		LDB	2,[POINT 8,SADDR+1,31]	; get byte 4
  9627	066312	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9628	066313	135 02 0 00 123060 		LDB	2,[POINT 8,SADDR+1,23]	; get byte 5
  9629	066314	260 17 0 00 066443 		GO	CRCCAL			; calculate
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 219
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0389

  9630
  9631					; Calculate CRC of protocol type bytes
  9632
  9633	066315	135 02 0 00 131040 		LDB	2,[POINT 8,PACKET+5,31]	; get type byte 1
  9634	066316	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9635	066317	135 02 0 00 131041 		LDB	2,[POINT 8,PACKET+5,23]	; get type byte 2
  9636	066320	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9637
  9638					; Include 2 length bytes if pad flag is set
  9639
  9640	066321	336 00 0 00 065714 		SKIPN	TPDFLG			; pad flag set?
  9641	066322	254 00 0 00 066333 		JRST	ICRC0			; no - continue
  9642	066323	201 00 0 00 000004 		MOVEI	4			; ensure the length includes
  9643	066324	272 00 0 00 065720 		ADDM	TBYTE			;   4 bytes for CRC
  9644	066325	135 02 0 00 131042 		LDB	2,[POINT 8,TBYTE,35]	; get low order length
  9645	066326	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9646	066327	135 02 0 00 131043 		LDB	2,[POINT 8,TBYTE,27]	; get high order length
  9647	066330	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9648	066331	201 00 0 00 000004 		MOVEI	4			; restore the length
  9649	066332	276 00 0 00 065720 		SUBM	TBYTE			;   ...
  9650
  9651					; Calculate CRC of data, depending on packet format
  9652
  9653	066333	200 06 0 17 777771 	ICRC0:	MOVE	6,-7(P)			; get address of 1st word
  9654	066334	200 07 0 00 065721 		MOVE	7,TWORD			; get word count
  9655	066335	332 00 0 00 065711 		SKIPE	TFMFLG			; HIDEN format?
  9656	066336	254 00 0 00 066354 		JRST	ICRC2			; yes - go handle it
  9657
  9658					; Loop through all the bytes (COMPAT mode)
  9659
  9660	066337	322 07 0 00 066410 	ICRC1:	JUMPE	7,ICRC3			; exit if already done
  9661	066340	200 10 0 06 000000 		MOVE	10,(6)			; get data word
  9662	066341	135 02 0 00 131044 		LDB	2,[POINT 8,10,7]	; get byte 1
  9663	066342	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9664	066343	135 02 0 00 131045 		LDB	2,[POINT 8,10,15]	; get byte 2
  9665	066344	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9666	066345	135 02 0 00 131046 		LDB	2,[POINT 8,10,23]	; get byte 3
  9667	066346	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9668	066347	135 02 0 00 131047 		LDB	2,[POINT 8,10,31]	; get byte 4
  9669	066350	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9670	066351	350 00 0 00 000006 		AOS	6			; point to next word
  9671	066352	367 07 0 00 066337 		SOJG	7,ICRC1			; loop till done
  9672	066353	254 00 0 00 066410 		JRST	ICRC3			; continue
  9673
  9674					; Loop through all the bytes (HIDEN mode)
  9675
  9676	066354	322 07 0 00 066410 	ICRC2:	JUMPE	7,ICRC3			; exit if already done
  9677	066355	200 10 0 06 000000 		MOVE	10,(6)			; get 1st data word
  9678	066356	135 02 0 00 131044 		LDB	2,[POINT 8,10,7]	; get byte 1
  9679	066357	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9680	066360	135 02 0 00 131045 		LDB	2,[POINT 8,10,15]	; get byte 2
  9681	066361	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 220
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0390

  9682	066362	135 02 0 00 131046 		LDB	2,[POINT 8,10,23]	; get byte 3
  9683	066363	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9684	066364	135 02 0 00 131047 		LDB	2,[POINT 8,10,31]	; get byte 4
  9685	066365	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9686	066366	135 02 0 00 131050 		LDB	2,[POINT 4,10,35]	; get byte 5 (1st half)
  9687	066367	242 02 0 00 000004 		LSH	2,4			; position properly
  9688	066370	350 00 0 00 000006 		AOS	6			; point to next word
  9689	066371	200 10 0 06 000000 		MOVE	10,(6)			; get 2nd data word
  9690	066372	370 00 0 00 000007 		SOS	7			; decrement word count
  9691	066373	135 00 0 00 131051 		LDB	[POINT 4,10,3]		; get byte 5 (2nd half)
  9692	066374	434 02 0 00 000000 		IOR	2,0			; include with 1st half
  9693	066375	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9694	066376	135 02 0 00 131052 		LDB	2,[POINT 8,10,11]	; get byte 6
  9695	066377	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9696	066400	135 02 0 00 131053 		LDB	2,[POINT 8,10,19]	; get byte 7
  9697	066401	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9698	066402	135 02 0 00 131054 		LDB	2,[POINT 8,10,27]	; get byte 8
  9699	066403	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9700	066404	135 02 0 00 131055 		LDB	2,[POINT 8,10,35]	; get byte 9
  9701	066405	260 17 0 00 066443 		GO	CRCCAL			; calculate for this byte
  9702	066406	350 00 0 00 000006 		AOS	6			; point to next word
  9703	066407	367 07 0 00 066354 		SOJG	7,ICRC2			; loop till done
  9704
  9705					; Include 44 extra bytes if pad flag is set and length < 46 bytes
  9706					; (including CRC)
  9707
  9708	066410	336 00 0 00 065714 	ICRC3:	SKIPN	TPDFLG			; pad flag set?
  9709	066411	254 00 0 00 066424 		JRST	ICRCX			; no - continue
  9710	066412	200 00 0 00 065720 		MOVE	TBYTE			; get byte count
  9711	066413	301 00 0 00 000052 		CAIL	^D42			; less than 42 bytes?
  9712	066414	254 00 0 00 066424 		JRST	ICRCX			; no - continue
  9713	066415	261 17 0 00 000006 		PUT	6			; save AC6
  9714	066416	201 06 0 00 000054 		MOVEI	6,^D44			; get additional bytes
  9715	066417	400 02 0 00 000000 	ICRC4:	SETZ	2,			; get 0 byte
  9716	066420	260 17 0 00 066443 		GO	CRCCAL			; calculate
  9717	066421	367 06 0 00 066417 		SOJG	6,ICRC4			; loop till done
  9718	066422	262 17 0 00 000006 		GET	6			; restore AC6
  9719	066423	271 06 0 00 000013 		ADDI	6,^D11			; allow for an additional 11 words
  9720
  9721					; Done - just do final XOR and save in text
  9722
  9723	066424	430 04 0 00 124130 	ICRCX:	XOR	4,[-1]			; final XOR
  9724	066425	260 17 0 00 066457 		GO	CRCFIX			; swap bits properly
  9725	066426	242 04 0 00 000004 		LSH	4,4			; position in bits 0-31
  9726	066427	202 04 0 06 000000 		MOVEM	4,(6)			; save in buffer
  9727	066430	331 01 0 00 065777*		SKIPL	1,CRCOFF		; get offset value
  9728	066431	202 04 0 01 000000*		MOVEM	4,CRCTAB(1)		; save CRC value
  9729	066432	262 17 0 00 000010 	ICRCY:	RGET	(10,7,6,5,4,3,2,1)	; restore AC's
  9730
  9731	066442	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 221
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0391

  9732
  9733					;#********************************************************************
  9734					;* CRCCAL - Calculate CRC (cumulative) for 8 bits
  9735					;
  9736					; Given:   AC2 - data byte	Uses:	AC1,AC3,AC5 without saving or
  9737					;	   AC4 - result			restoring.
  9738					;
  9739					; Returns: AC4 - updated result
  9740					;#********************************************************************
  9741
  9742	066443	201 01 0 00 000010 	CRCCAL:	MOVEI	1,8			; do this 8 times
  9743	066444	400 03 0 00 000000 		SETZ	3,			; clear AC3
  9744	066445	246 02 0 00 777777 	CRCCA0:	LSHC	2,-1			; get a bit (into AC3)
  9745	066446	135 05 0 00 131056 		LDB	5,[POINT 1,3,0]		; get data bit
  9746	066447	602 04 0 00 000001 		TRNE	4,1			; leftmost bit set?
  9747	066450	431 05 0 00 000001 		XORI	5,1			; yes - XOR with data bit
  9748	066451	242 04 0 00 777777 		LSH	4,-1			; right shift 1 bit
  9749	066452	332 00 0 00 000005 		SKIPE	5			; data bit result non-zero?
  9750	066453	430 04 0 00 131057 		XOR	4,[15556,,101440]	; yes - XOR 1's with CRC
  9751	066454	137 05 0 00 131060 		DPB	5,[POINT 1,4,4]		; also insert result bit
  9752	066455	367 01 0 00 066445 		SOJG	1,CRCCA0		; loop till done
  9753	066456	263 17 0 00 000000 		RTN				; return
  9754
  9755
  9756					;#********************************************************************
  9757					;* CRCFIX - Adjust properly
  9758					;#********************************************************************
  9759
  9760	066457	261 17 0 00 000002 	CRCFIX:	RPUT	(2,3)			; save AC's
  9761
  9762	066461	400 03 0 00 000000 		SETZ	3,			; clear result
  9763	066462	135 02 0 00 131061 		LDB	2,[POINT 8,4,11]	; get byte 1
  9764	066463	137 02 0 00 131062 		DPB	2,[POINT 8,3,35]	; save it
  9765	066464	135 02 0 00 131063 		LDB	2,[POINT 8,4,19]	; get byte 2
  9766	066465	137 02 0 00 131064 		DPB	2,[POINT 8,3,27]	; save it
  9767	066466	135 02 0 00 131065 		LDB	2,[POINT 8,4,27]	; get byte 3
  9768	066467	137 02 0 00 131066 		DPB	2,[POINT 8,3,19]	; save it
  9769	066470	135 02 0 00 131067 		LDB	2,[POINT 8,4,35]	; get byte 4
  9770	066471	137 02 0 00 131070 		DPB	2,[POINT 8,3,11]	; save it
  9771	066472	200 04 0 00 000003 		MOVE	4,3			; get into AC4
  9772	066473	262 17 0 00 000003 		RGET	(3,2)			; restore AC's
  9773
  9774	066475	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 222
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0392

  9775
  9776					;#********************************************************************
  9777					;* RWAIT - Wait for a response (by CSR bit 'RspQAvail' bit being set.
  9778					;
  9779					;  Return:  +1 - Timeout after 1/2 second
  9780					;	    +2 - Ok	
  9781					;#********************************************************************
  9782
  9783	066476	350 00 0 17 000000 	RWAIT:	AOS	(P)			; setup ret+2
  9784	066477	261 17 0 00 000000 		RPUT	(0,1,2)			; save AC's
  9785
  9786	066502	201 02 0 00 000012 		MOVEI	2,^D10			; check up to 10 times
  9787	066503	260 17 0 00 065662*	RWAIT0:	GO	RDCSR			; read CSR
  9788	066504	255 00 0 00 000000 		JFCL				; ignore error
  9789	066505	602 01 0 00 000200 		TRNE	1,RESQAV		; response queue available bit set?
  9790	066506	254 00 0 00 066512 		JRST	RWAITX			; yes - exit
  9791	066507	005 00 0 00 000001 		DELAY	1			; wait 1 millisecond
  9792	066510	367 02 0 00 066503 		SOJG	2,RWAIT0		; no - loop till done
  9793	066511	370 00 0 17 777775 		SOS	-3(P)			; failed, setup ret+1
  9794	066512	262 17 0 00 000002 	RWAITX:	RGET	(2,1,0)			; restore AC's
  9795
  9796	066515	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 223
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0393

  9797
  9798					;#********************************************************************
  9799					;* CHKINT - Check/set up interlock for queue
  9800					;
  9801					; This routine tries to gain control of the specified queue.  If it
  9802					; cannot, it returns with an error condition.  If it can, it builds
  9803					; a list of entries in the queue, with  the  virtual address of the
  9804					; beginning of each queue entry.  Other routines access  the  queue
  9805					; via the addresses given in the entry list.
  9806					;
  9807					; Only one queue can be dealt with at a time, since there  is  only
  9808					; one list of queue entries.
  9809					;
  9810					; Given:   Q - Contains cmd queue number
  9811					;
  9812					; Return: +1 - Error, couldn't get access to queue in 1 second
  9813					;	  +2 - Ok
  9814					;#********************************************************************
  9815
  9816	066516	261 17 0 00 000000 	CHKINT:	RPUT	(0,1,2,3)		; save AC's
  9817
  9818	066522	201 01 0 00 000001 		MOVEI	1,1			; set up a wait of 1 ms
  9819	066523	332 00 0 00 030037 		SKIPE	USER			; user mode?
  9820	066524	104 00 0 00 000167 		DISMS				; yes - wait
  9821	066525	402 00 0 00 066650 		SETZM	NUMENT			; clear entry count
  9822						MOVE	1,[PCB+0		; CmdQ
  9823							   PCB+4		; RspQ
  9824							   PCB+10		; UnkFQ
  9825	066526	200 01 0 13 131071 			   PTTFQ](Q)		; PttFQ
  9826	066527	201 02 0 00 000764 		MOVEI	2,^D500			; do this up to 500 times
  9827	066530	356 00 0 01 000000 	CHKIN0:	AOSN	(1)			; available yet?
  9828	066531	254 00 0 00 066535 		JRST	CHKIN1			; yes - continue
  9829	066532	005 00 0 00 000001 		DELAY	1			; wait 1 millisecond
  9830	066533	367 02 0 00 066530 		SOJG	2,CHKIN0		; loop till done
  9831	066534	254 00 0 00 066556 		JRST	CHKINX			; exit
  9832	066535	350 00 0 17 777774 	CHKIN1:	AOS	-4(P)			; set up good return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 224
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0394

  9833
  9834					; Now search through the queue and build a queue entry list
  9835
  9836	066536	350 00 0 00 000001 		AOS	1			; point to FLINK
  9837	066537	201 00 0 01 000000 		MOVEI	(1)			; get address of FLINK of queue
  9838	066540	202 00 0 00 066651 		MOVEM	TOPADR			; save it
  9839	066541	201 02 0 00 066563 		MOVEI	2,LENTRY		; next address in list
  9840	066542	400 03 0 00 000000 		SETZ	3,			; init last entry address
  9841	066543	402 00 0 02 000000 	CHKIN2:	SETZM	(2)			; set up end of list
  9842	066544	200 01 0 01 000000 		MOVE	1,(1)			; get FLINK address
  9843	066545	260 17 0 00 066652 		GO	CONVIR			; convert to virtual
  9844	066546	316 01 0 00 066651 		CAMN	1,TOPADR		; points to start of list?
  9845	066547	254 00 0 00 066555 		JRST	CHKIN3			; yes - done
  9846	066550	202 01 0 02 000000 		MOVEM	1,(2)			; save address
  9847	066551	202 01 0 00 000003 		MOVEM	1,3			; save for last entry address
  9848	066552	350 00 0 00 000002 		AOS	2			; point to next list entry
  9849	066553	350 00 0 00 066650 		AOS	NUMENT			; increment entry count
  9850	066554	254 00 0 00 066543 		JRST	CHKIN2			; loop till done
  9851	066555	202 03 0 00 066647 	CHKIN3:	MOVEM	3,LASENT		; save it
  9852
  9853					; Done - exit
  9854
  9855	066556	262 17 0 00 000003 	CHKINX:	RGET	(3,2,1,0)		; restore AC's
  9856
  9857	066562	263 17 0 00 000000 		RTN				; return
  9858
  9859					; List of queue entries (ended with a zero)
  9860
  9861	066563	000000	000000		LENTRY:	0				; address of PCB FLINK entry
  9862	066564					BLOCK	^D50			; up to 50 queue entries
  9863	066646	000000	000000			0				; end of list
  9864	066647	000000	000000		LASENT:	0				; last entry in list
  9865	066650	000000	000000		NUMENT:	0				; entry count
  9866	066651	000000	000000		TOPADR:	0				; address of FLINK in queue header
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 225
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0395

  9867
  9868					;#********************************************************************
  9869					;* CONVIR - Convert physical address to virtual
  9870					;
  9871					; This routine searches through PHYTAB to find the physical address
  9872					; matching the one given here.  Then the virtual address is  gotten
  9873					; from the corresponding entry in VIRTAB.
  9874					;
  9875					; Given:  AC1 - Contains a physical address
  9876					;
  9877					; Return: AC1 - Contains the virtual address
  9878					;#********************************************************************
  9879
  9880	066652	261 17 0 00 000000 	CONVIR:	RPUT	(0,2)			; save AC's
  9881
  9882	066654	621 01 0 00 777700 		TLZ	1,777700		; clear all but address bits
  9883	066655	474 02 0 00 000000 		SETO	2,			; initialize address pointer
  9884	066656	350 00 0 00 000002 	CONVI0:	AOS	2			; point to next address
  9885	066657	335 00 0 02 065470 		SKIPGE	ADRPHY(2)		; end of list?
  9886	066660	254 00 0 00 066667 		JRST	CONVIE			; yes - error - go handle
  9887	066661	312 01 0 02 065470 		CAME	1,ADRPHY(2)		; address match?
  9888	066662	254 00 0 00 066656 		JRST	CONVI0			; no - loop till done
  9889	066663	200 01 0 02 065312 	CONVIX:	MOVE	1,ADRVIR(2)		; yes - get virtual address
  9890	066664	262 17 0 00 000002 		RGET	(2,0)			; restore AC's
  9891
  9892	066666	263 17 0 00 000000 		RTN				; return
  9893
  9894					; Unrecognized address
  9895
  9896	066667	037 00 0 00 131075 	CONVIE:	TMSGC	<? PCB or queue entries are no longer valid>
  9897	066670	037 00 0 00 131106 		TMSGC	<? Address >
  9898	066671	200 00 0 00 000001 		MOVE	1
  9899	066672	037 10 0 00 000000 		PNTADR
  9900	066673	037 00 0 00 131111 		TMSG	< not recognized as a physical address of a queue entry>
  9901	066674	037 00 0 00 131124 		TMSGC	<? CONVIR called from address - >
  9902	066675	200 00 0 17 777776 		MOVE	-2(P)
  9903	066676	037 10 0 00 000000 		PNTADR	
  9904	066677	260 17 0 00 000000*		GO	FFF
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 226
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0396

  9905
  9906					;#********************************************************************
  9907					;* INSQUE - Insert a packet into a queue
  9908					;
  9909					; PACKET - 256 word queue entry which can be copied directly into
  9910					;	   the command queue entry
  9911					;
  9912					; Return: +1 - Error, PTT value illegal (This return will never be taken)
  9913					;	  +2 - Error, out of room (or interlock failed)
  9914					;	  +2 - Ok
  9915					;#********************************************************************
  9916
  9917	066700	000000	000000		IQFUL:	0				; debug - number of times freeq empty
  9918	066701	000000	000000		IQFMIN:	0				; debug - minimum entries on free queue
  9919	066702	000000	000000		IQCMAX:	0				; debug - maximum entries on cmd queue
  9920
  9921	066703	261 17 0 00 000000 	INSQUE:	RPUT	(0,1,2,3)		; save AC's
  9922
  9923	066707	260 17 0 00 067164 		GO	PTCHKP			; check for a matching PTT value?
  9924	066710	201 13 0 00 000002 		MOVEI	Q,2			; no - set to Unk PT free queue
  9925
  9926					; Get control of free queue
  9927
  9928	066711	260 17 0 00 066516 		GO	CHKINT			; check interlock word
  9929	066712	254 00 0 00 066760 		JRST	INSQE2			; failed - exit
  9930	066713	336 00 0 00 066647 		SKIPN	LASENT			; queue empty?
  9931						JRST	[XCT  [SETOM PCB+10	; yes - error - out of room
  9932							       SETOM PTTFQ]-2(Q);   reset interlock and exit
  9933							 AOS   IQFUL
  9934	066714	254 00 0 00 131133 			 JRST  INSQE2]
  9935	066715	200 00 0 00 066650 		MOVE	NUMENT			; debug - get number of entries
  9936	066716	315 00 0 00 066701 		CAMGE	IQFMIN			; debug - more than minimum?
  9937	066717	202 00 0 00 066701 		MOVEM	IQFMIN			; debug - yes - save it
  9938
  9939					; Remove a free queue entry from the queue
  9940
  9941	066720	260 17 0 00 066766 		GO	GETQUE			; get an entry
  9942	066721	255 00 0 00 000000 		JFCL				; error - ignore
  9943	066722	202 01 0 00 134202'		MOVEM	1,NEWENT#		; save address of new entry
  9944	066723	200 02 0 00 066651 		MOVE	2,TOPADR		; get PCB address
  9945	066724	370 00 0 00 000002 		SOS	2			; point to interlock address
  9946	066725	476 00 0 02 000000 		SETOM	(2)			; reset interlock
  9947	066726	200 02 0 00 000001 		MOVE	2,1			; get address of entry into AC2
  9948	066727	271 01 0 00 000002 		ADDI	1,2			; build BLT pointer to move the
  9949	066730	505 01 0 00 072116 		HRLI	1,PACKET+2		;   packet into the queue entry 
  9950	066731	306 13 0 00 000003 		CAIN	Q,3			; PT free queue?
  9951	066732	251 01 0 02 000307 		BLT	1,^D199(2)		; yes - do the BLT
  9952	066733	306 13 0 00 000002 		CAIN	Q,2			; Unk PT free queue?
  9953	066734	251 01 0 02 000617 		BLT	1,^D399(2)		; yes - do the BLT
  9954
  9955					; Get flags/opcode and handle BSD modifications (BSD base address ...)
  9956
  9957	066735	135 01 0 00 127201 		LDB	1,[POINT 8,PACKET+3,23]	; get op code
  9958	066736	135 02 0 00 127200 		LDB	2,[POINT 8,PACKET+3,15]	; get flags
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 227
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0397

  9959	066737	306 01 0 00 000001 		CAIN	1,SNDDG			; datagram?
  9960	066740	606 02 0 00 000010 		TRNN	2,10			; yes - pad flag set?
  9961	066741	334 00 0 00 000000 		SKIPA				; no - continue
  9962						GO	[MOVE	2,NEWENT	; yes - get BSD base address
  9963							 ADDI	2,14		;   ...
  9964							 MOVE	1,2		; get into AC1
  9965							 SKIPN	UDEBUG		; debug mode?
  9966							 MAP	1,(2)		; no - convert to physical
  9967							 TLZ	1,777000	; get rid of extraneous bits
  9968							 MOVEM	1,-3(2)		; save it
  9969							 ADDI	2,4		; get segment base address
  9970							 MOVE	1,2		; get into AC1
  9971							 SKIPN	UDEBUG		; debug mode?
  9972							 MAP	1,(2)		; no - convert to physical
  9973							 TLZ	1,777000	; get rid of extraneous bits
  9974							 HLLZ	PACKET+14	; get non-address bits
  9975							 TLZ	77		;   ...
  9976							 IOR	1,		; include segment base address
  9977							 MOVEM	1,-4(2)		; save it
  9978	066742	260 17 0 00 131136 			 RTN]			; exit
  9979
  9980					; Get control of Command Queue
  9981
  9982	066743	400 13 0 00 000000 		SETZ	Q,			; get cmd queue number
  9983	066744	260 17 0 00 066516 		GO	CHKINT			; check interlock word
  9984	066745	254 00 0 00 066760 		JRST	INSQE2			; failed - exit
  9985	066746	200 00 0 00 066650 		MOVE	NUMENT			; debug - get number of entries
  9986	066747	313 00 0 00 066702 		CAMLE	IQCMAX			; debug - less than maximum?
  9987	066750	202 00 0 00 066702 		MOVEM	IQCMAX			; debug - yes - save it
  9988
  9989					; Insert this at the end of the command queue
  9990
  9991	066751	200 01 0 00 134202'		MOVE	1,NEWENT		; get address of new entry
  9992	066752	260 17 0 00 067022 		GO	PUTQUE			; insert in queue
  9993
  9994					; Reset interlock and update statistics
  9995
  9996	066753	200 02 0 00 066651 		MOVE	2,TOPADR		; get PCB address
  9997	066754	370 00 0 00 000002 		SOS	2			; point to interlock address
  9998	066755	476 00 0 02 000000 		SETOM	(2)			; reset interlock
  9999	066756	260 17 0 00 043461 		GO	SUPDAT			; update statistics (sent)
 10000
 10001					; Done - exit
 10002
 10003	066757	350 00 0 17 777774 		AOS	-4(P)			; set up proper return
 10004	066760	350 00 0 17 777774 	INSQE2:	AOS	-4(P)			; set up proper return +3
 10005	066761	262 17 0 00 000003 	INSQE1:	RGET	(3,2,1,0)		; restore AC's
 10006
 10007	066765	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 228
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0398

 10008
 10009					;#********************************************************************
 10010					;* GETQUE - Remove a queue entry from the beginning of a queue
 10011					;
 10012					; This routine removes the entry and adjusts the PCB and next
 10013					; entry links so that the queue is correct.
 10014					;
 10015					; Given:  LENTRY - Contains a list of queue entries (virtual addresses)
 10016					;	  TOPADR - Address of FLINK of queue header
 10017					;	  NUMENT - Number of entries in the queue
 10018					;	  LASENT - Last entry in the queue
 10019					;
 10020					; Return: AC1 - Address of entry obtained (virtual)
 10021					;	  +1 - No entry found
 10022					;	  +2 - An entry was found
 10023					;#********************************************************************
 10024
 10025	066766	336 00 0 00 066650 	GETQUE:	SKIPN	NUMENT			; empty list?
 10026	066767	263 17 0 00 000000 		RTN				; yes - return
 10027	066770	350 00 0 17 000000 		AOS	(P)			; no - set up proper return
 10028	066771	261 17 0 00 000000 		RPUT	(0,2)			; save AC's
 10029
 10030	066773	200 02 0 00 066650 		MOVE	2,NUMENT		; get number of entries
 10031	066774	303 02 0 00 000001 		CAILE	2,1			; more than one?
 10032	066775	254 00 0 00 067006 		JRST	GETQU0			; yes - go handle
 10033
 10034					; Only one entry in the list
 10035
 10036						MOVE	1,[PCB+1		; get address of FLINK in PCB
 10037							   PCB+5
 10038							   PCB+11
 10039	066776	200 01 0 13 131157 			   PTTFQ+1](Q)
 10040	066777	200 02 0 00 000001 		MOVE	2,1			; get into AC2 also
 10041	067000	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
 10042	067001	257 02 0 02 000000 		MAP	2,(2)			; no - map to physical
 10043	067002	621 02 0 00 777000 		TLZ	2,777000		; get rid of extraneous bits
 10044	067003	202 02 0 01 000000 		MOVEM	2,(1)			; set up new FLINK address
 10045	067004	202 02 0 01 000001 		MOVEM	2,1(1)			; set up new BLINK address
 10046	067005	254 00 0 00 067016 		JRST	GETQUX			; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 229
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0399

 10047
 10048					; Multiple entries in the list
 10049
 10050	067006	200 01 0 00 066563 	GETQU0:	MOVE	1,LENTRY		; get address of 1st entry
 10051	067007	200 01 0 01 000001 		MOVE	1,1(1)			; get BLINK of 1st entry
 10052	067010	200 02 0 00 066564 		MOVE	2,LENTRY+1		; get address of 2nd entry
 10053	067011	202 01 0 02 000001 		MOVEM	1,1(2)			; set up BLINK of 2nd entry
 10054	067012	200 01 0 00 066563 		MOVE	1,LENTRY		; get address of 1st entry
 10055	067013	200 01 0 01 000000 		MOVE	1,(1)			; get FLINK of 1st entry
 10056						MOVE	2,[PCB+1		; get address of FLINK in PCB
 10057							   PCB+5
 10058							   PCB+11
 10059	067014	200 02 0 13 131157 			   PTTFQ+1](Q)
 10060	067015	202 01 0 02 000000 		MOVEM	1,(2)			; set up new FLINK in PCB
 10061
 10062					; Exit
 10063
 10064	067016	200 01 0 00 066563 	GETQUX:	MOVE	1,LENTRY		; get address of entry
 10065	067017	262 17 0 00 000002 		RGET	(2,0)			; restore AC's
 10066
 10067	067021	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 230
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0400

 10068
 10069					;#********************************************************************
 10070					;* PUTQUE - Insert an entry onto the specified queue
 10071					;
 10072					; Given:  AC1 - contains address of entry
 10073					;	  Q - Contains the queue to put entry back on:
 10074					;		0 - Cmd queue
 10075					;		1 - Rsp queue
 10076					;		2 - UnkF queue
 10077					;		3 - PttF queue
 10078					;#********************************************************************
 10079
 10080	067022	261 17 0 00 000000 	PUTQUE:	RPUT	(0,1,2,3)		; save AC's
 10081
 10082
 10083					; Check for data pointer if a free queue entry
 10084
 10085	067026	307 13 0 00 000001 		CAIG	Q,1			; CMD or RSP queue?
 10086	067027	254 00 0 00 067037 		JRST	PUTQU0			; yes - continue
 10087	067030	200 01 0 00 134202'		MOVE	1,NEWENT		; get address of new entry
 10088	067031	271 01 0 00 000013 		ADDI	1,13			; get address of start of text
 10089	067032	200 02 0 00 000001 		MOVE	2,1			; get into AC2
 10090	067033	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
 10091	067034	257 02 0 01 000000 		MAP	2,(1)			; map to physical
 10092	067035	621 02 0 00 777000 		TLZ	2,777000		; get rid of extraneous bits
 10093	067036	202 02 0 01 777777 		MOVEM	2,-1(1)			; save it
 10094	067037	200 03 0 00 134202'	PUTQU0:	MOVE	3,NEWENT		; get address of new entry
 10095	067040	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
 10096	067041	257 03 0 03 000000 		MAP	3,(3)			; map to physical
 10097	067042	621 03 0 00 777000 		TLZ	3,777000		; get rid of extraneous bits
 10098
 10099					; Insert at the end of the specified queue
 10100
 10101	067043	332 00 0 00 066650 		SKIPE	NUMENT			; queue currently empty?
 10102	067044	254 00 0 00 067055 		JRST	PUTQU1			; no - continue
 10103
 10104					; Empty queue - insert entry
 10105
 10106						MOVE	1,[PCB+1		; get address of FLINK in PCB
 10107							   PCB+5
 10108							   PCB+11
 10109	067045	200 01 0 13 131157 			   PTTFQ+1](Q)
 10110	067046	200 02 0 01 000000 		MOVE	2,(1)			; get FLINK
 10111	067047	202 03 0 01 000000 		MOVEM	3,(1)			; set up new FLINK in PCB
 10112	067050	202 03 0 01 000001 		MOVEM	3,1(1)			; set up new BLINK in PCB
 10113	067051	200 03 0 00 134202'		MOVE	3,NEWENT		; get address of new entry
 10114	067052	202 02 0 03 000000 		MOVEM	2,(3)			; set up FLINK of new entry
 10115	067053	202 02 0 03 000001 		MOVEM	2,1(3)			; set up BLINK of new entry
 10116	067054	254 00 0 00 067073 		JRST	PUTQUX			; done - continue
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 231
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0401

 10117
 10118					; Queue is not empty - insert entry
 10119
 10120	067055	200 02 0 00 066647 	PUTQU1:	MOVE	2,LASENT		; get address of last entry
 10121	067056	200 01 0 02 000000 		MOVE	1,(2)			; get FLINK of last entry
 10122	067057	202 03 0 02 000000 		MOVEM	3,(2)			; set up new FLINK of last entry
 10123	067060	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
 10124	067061	257 02 0 02 000000 		MAP	2,(2)			; no - map to physical
 10125	067062	621 02 0 00 777000 		TLZ	2,777000		; get rid of extraneous bits
 10126	067063	200 03 0 00 134202'		MOVE	3,NEWENT		; get address of new entry
 10127	067064	202 01 0 03 000000 		MOVEM	1,(3)			; set up FLINK of new entry
 10128	067065	202 02 0 03 000001 		MOVEM	2,1(3)			; set up BLINK of new entry
 10129	067066	336 00 0 00 134255'		SKIPN	UDEBUG			; debug mode?
 10130	067067	257 03 0 03 000000 		MAP	3,(3)			; no - map to physical
 10131	067070	621 03 0 00 777000 		TLZ	3,777000		; get rid of extraneous bits
 10132						MOVE	1,[PCB+0		; CmdQ
 10133							   PCB+4		; RspQ
 10134							   PCB+10		; UnkFQ
 10135	067071	200 01 0 13 131071 			   PTTFQ](Q)		; PttFQ
 10136	067072	202 03 0 01 000002 		MOVEM	3,2(1)			; set up new BLINK in PCB
 10137
 10138					; Done - exit
 10139
 10140	067073	262 17 0 00 000003 	PUTQUX:	RGET	(3,2,1,0)		; restore AC's
 10141
 10142	067077	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 232
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0402

 10143
 10144					;#********************************************************************
 10145					;* CHKRSP - Check if a response queue entry
 10146					;
 10147					; Return:  +1 - No entry
 10148					;	   +2 - Found an entry(ies)
 10149					;#********************************************************************
 10150
 10151	067100	352 00 0 00 072004 	CHKRSP:	AOSE	PCB+4			; check interlock for rsp queue
 10152	067101	263 17 0 00 000000 		RTN				; return - queue is in use already
 10153	067102	261 17 0 00 000000 		RPUT	(0,1,2,Q)		; save AC's
 10154
 10155	067106	476 00 0 00 072004 		SETOM	PCB+4			; reset interlock
 10156	067107	201 13 0 00 000001 		MOVEI	Q,1			; set up for response queue
 10157	067110	260 17 0 00 066516 		GO	CHKINT			; check interlock word
 10158	067111	254 00 0 00 067144 		JRST	CHKRSX			; failed - exit
 10159
 10160					; Remove response queue packet from the response queue and reset
 10161					; interlock.  Also, copy it to 'RSPONS'.
 10162
 10163	067112	260 17 0 00 066766 		GO	GETQUE			; get a queue entry
 10164						JRST	[GO	SHUTRQ		; empty - reset the response queue
 10165							 SETOM	PCB+4		;   available bit, then reset the
 10166	067113	254 00 0 00 131163 			 JRST	CHKRSX]		;   interlock word and exit
 10167	067114	202 01 0 00 134202'		MOVEM	1,NEWENT		; got an entry - save address
 10168	067115	476 00 0 00 134225'		SETOM	RQAFLG			; set rsp queue available flag
 10169	067116	350 00 0 17 777774 		AOS	-4(P)			; set up proper return
 10170	067117	260 17 0 00 067274 		GO	SHUTRQ			; reset 'RSPQAV' bit
 10171	067120	476 00 0 00 072004 		SETOM	PCB+4			; reset interlock word
 10172	067121	504 00 0 00 134202'		HRL	NEWENT			; build a BLT pointer
 10173	067122	541 00 0 00 073000 		HRRI	RSPONS
 10174	067123	251 00 0 00 073307 		BLT	RSPONS+^D199		; copy into 'RSPONS'
 10175	067124	135 02 0 00 127162 		LDB	2,[POINT 8,RSPONS+3,23]	; get opcode
 10176	067125	306 02 0 00 000004 		CAIN	2,CNTRC			; CNTRC packet?
 10177						GO	[MOVE	2,[PCB+^D25,,RSPONS+4] ; yes - copy the counters data
 10178							 BLT	2,RSPONS+^D53	;   to the response buffer area
 10179	067126	260 17 0 00 131167 			 RTN]
 10180	067127	402 00 0 01 000000 		SETZM	(1)			; clear first word
 10181	067130	504 00 0 00 000001 		HRL	1			; build a BLT pointer
 10182	067131	540 00 0 00 000001 		HRR	1			;  ...
 10183	067132	350 00 0 00 000000 		AOS				;  ...
 10184	067133	251 00 0 01 000307 		BLT	^D199(1)		; clear remainder of packet
 10185
 10186					; Determine which queue (PTT or UNK free queues) to put entry back on, and
 10187					; put packet back in the free queue
 10188
 10189	067134	260 17 0 00 067223 		GO	CHKQUE			; check if PTT or UNK queue
 10190	067135	202 13 0 00 134227'		MOVEM	Q,RSPQUE#		; save queue number
 10191	067136	260 17 0 00 066516 		GO	CHKINT			; check interlock word
 10192	067137	334 00 0 00 000000 		SKIPA				; failed - continue
 10193	067140	260 17 0 00 067022 		GO	PUTQUE			; insert back on queue
 10194						MOVE	1,[PCB+0		; get address of interlock word
 10195							   PCB+4
 10196							   PCB+10
 10197	067141	200 01 0 13 131071 			   PTTFQ](Q)
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 232-1
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0403

 10198	067142	476 00 0 01 000000 		SETOM	(1)			; reset interlock
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 233
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0404

 10199
 10200					; Update statistics
 10201
 10202	067143	260 17 0 00 043511 		GO	RUPDAT			; update statistics (received)
 10203
 10204					; Exit
 10205
 10206	067144	262 17 0 00 000013 	CHKRSX:	RGET	(Q,2,1,0)		; restore AC's
 10207
 10208	067150	263 17 0 00 000000 		RTN				; return
 10209
 10210
 10211					;#********************************************************************
 10212					;* CHKRQV - Check for response queue available
 10213					;#********************************************************************
 10214
 10215	067151	332 00 0 00 134225'	CHKRQV:	SKIPE	RQAFLG			; rsp queue available flag set?
 10216	067152	263 17 0 00 000000 		RTN				; yes - return and process next entry
 10217	067153	261 17 0 00 000001 		PUT	1			; save AC1
 10218	067154	260 17 0 00 066503*		GO	RDCSR			; read CSR
 10219	067155	400 01 0 00 000000 		SETZ	1,			; error - ignore
 10220	067156	602 01 0 00 000200 		TRNE	1,RESQAV		; rsp queue available bit set?
 10221	067157	476 00 0 00 134225'		SETOM	RQAFLG			; yes - set flag
 10222	067160	606 01 0 00 000200 		TRNN	1,RESQAV		; rsp queue available bit set?
 10223	067161	350 00 0 17 777777 		AOS	-1(P)			; no - take skip return
 10224	067162	262 17 0 00 000001 		GET	1			; restore AC1
 10225	067163	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 234
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0405

 10226
 10227					;#********************************************************************
 10228					;* PTCHKP - Check type of packet and for matching PTT value
 10229					;
 10230					; Given:  PACKET - Contains packet to check
 10231					;
 10232					; Returns:  +1 - PTT value error
 10233					;	    +2 - Ok, Q has proper queue number
 10234					;#********************************************************************
 10235
 10236	067164	261 17 0 00 000000 	PTCHKP:	RPUT	(0,1,2,3)		; save AC's
 10237
 10238	067170	200 00 0 00 072117 		MOVE	PACKET+3		; get op code word
 10239	067171	202 00 0 00 134236'		MOVEM	SAVOPW#			; save it
 10240	067172	200 00 0 00 072121 		MOVE	PACKET+5		; get PTT value word
 10241	067173	202 00 0 00 134237'		MOVEM	SAVPTT#			; save it
 10242	067174	201 13 0 00 000002 		MOVEI	Q,2			; point to UnkFQ
 10243	067175	135 00 0 00 131172 		LDB	[POINT 8,SAVOPW,23] 	; get opcode
 10244	067176	332 00 0 00 134255'		SKIPE	UDEBUG			; debug mode?
 10245	067177	254 00 0 00 067202 		JRST	.+3			; yes - continue
 10246	067200	302 00 0 00 000001 		CAIE	SNDDG			; SNDDG?
 10247	067201	254 00 0 00 067215 		JRST	PTCHKX			; no - exit
 10248
 10249					; Check for matching PTT value
 10250
 10251	067202	135 00 0 00 131173 		LDB	[POINT 16,SAVPTT,31]	; get pt value
 10252	067203	201 01 0 00 105000 		MOVEI	1,PTABLE		; initial address in pt table
 10253	067204	200 02 0 01 000000 	PTCHK0:	MOVE	2,(1)			; get value word
 10254	067205	135 03 0 00 131174 		LDB	3,[POINT 16,2,31]	; get pt value
 10255	067206	316 00 0 00 000003 		CAMN	3			; same as desired?
 10256	067207	254 00 0 00 067214 		JRST	PTCHK1			; yes - exit
 10257	067210	271 01 0 00 000003 		ADDI	1,3			; point to next entry
 10258	067211	305 01 0 00 105055 		CAIGE	1,PTABLE+55		; done yet?
 10259	067212	254 00 0 00 067204 		JRST	PTCHK0			; no - loop till done
 10260	067213	254 00 0 00 067216 		JRST	PTCHKY			; yes - continue
 10261
 10262					; Exit
 10263
 10264	067214	201 13 0 00 000003 	PTCHK1:	MOVEI	Q,3			; found PTT value - set queue number
 10265	067215	350 00 0 17 777774 	PTCHKX:	AOS	-4(P)			; set up proper return
 10266	067216	262 17 0 00 000003 	PTCHKY:	RGET	(3,2,1,0)		; restore AC's
 10267
 10268	067222	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 235
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0406

 10269
 10270					;#********************************************************************
 10271					;* CHKQUE - Determine which queue to insert entry back on
 10272					;
 10273					; Given:    NEWENT - Contains address of packet
 10274					; Returns:  Q - Contains queue to put entry back on
 10275					;#********************************************************************
 10276
 10277	067223	261 17 0 00 000000 	CHKQUE:	RPUT	(0,1)			; save AC's
 10278
 10279	067225	201 01 0 00 067242 		MOVEI	1,CHKTAB-1		; get entry table address
 10280	067226	350 00 0 00 000001 	CHKQU0:	AOS	1			; increment table pointer
 10281	067227	200 00 0 01 000000 		MOVE	(1)			; get address
 10282	067230	321 00 0 00 067234 		JUMPL	CHKQUX			; end of list? yes - exit
 10283	067231	621 00 0 00 777777 		TLZ	777777			; clear left half
 10284	067232	312 00 0 00 134202'		CAME	NEWENT			; match expected?
 10285	067233	254 00 0 00 067226 		JRST	CHKQU0			; no - keep looping
 10286	067234	554 13 0 01 000000 	CHKQUX:	HLRZ	Q,(1)			; yes - get queue number
 10287	067235	301 13 0 00 000002 		CAIL	Q,2			; valid queue number?
 10288	067236	303 13 0 00 000003 		CAILE	Q,3
 10289						GO	[FMSGC	<? Unrecognized packet address - >
 10290							 MOVE	NEWENT
 10291							 PNTHWF
 10292							 MOVEI	Q,2
 10293	067237	260 17 0 00 131204 			 RTN]
 10294	067240	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
 10295
 10296	067242	263 17 0 00 000000 		RTN				; return
 10297
 10298	067243	000003	105074		CHKTAB:	EXP	3B17!PTTF0,3B17!PTTF1,3B17!PTTF2,3B17!PTTF3,3B17!PTTF4
 10299	067244	000003	106000
 10300	067245	000003	106310
 10301	067246	000003	107000
 10302	067247	000003	107310
 10303	067250	000003	110000			EXP	3B17!PTTF5,3B17!PTTF6,3B17!PTTF7,3B17!PTTF10,3B17!PTTF11
 10304	067251	000003	110310
 10305	067252	000003	111000
 10306	067253	000003	111310
 10307	067254	000003	112000
 10308	067255	000003	112310			EXP	3B17!PTTF12,3B17!PTTF13,3B17!PTTF14,3B17!PTTF15,3B17!PTTF16
 10309	067256	000003	113000
 10310	067257	000003	113310
 10311	067260	000003	114000
 10312	067261	000003	114310
 10313	067262	000003	115000			EXP	3B17!PTTF17
 10314	067263	000002	075000			EXP	2B17!QUNKF0,2B17!QUNKF1,2B17!QUNKF2,2B17!QUNKF3,2B17!QUNKF4
 10315	067264	000002	076000
 10316	067265	000002	077000
 10317	067266	000002	100000
 10318	067267	000002	101000
 10319	067270	000002	102000			EXP	2B17!QUNKF5,2B17!QUNKF6,2B17!QUNKF7
 10320	067271	000002	103000
 10321	067272	000002	104000
 10322	067273	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 236
DFNIA1	MAC	18-Feb-84 20:30		Packet Handling Routines                                                           SEQ 0407

 10323
 10324					;#********************************************************************
 10325					;* SHUTRQ - Turn off response queue available
 10326					;#********************************************************************
 10327
 10328	067274	261 17 0 00 000001 	SHUTRQ:	PUT	1			; save AC1
 10329	067275	260 17 0 00 067154*		GO	RDCSR			; read CSR
 10330	067276	254 00 0 00 067303 		JRST	SHUTRX			; error - exit
 10331	067277	621 01 0 00 777777 		TLZ	1,777777		; clear left half
 10332	067300	620 01 0 00 000400 		TRZ	1,CMDQAV		; clear this bit
 10333	067301	660 01 0 00 000200 		TRO	1,RESQAV		; set the bit
 10334	067302	260 17 0 00 065660*		GO	LDCSR			; write the CSR register
 10335	067303	262 17 0 00 000001 	SHUTRX:	GET	1			; restore AC1
 10336	067304	263 17 0 00 000000 		RTN				; return
 10337
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 237
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0408

 10338						SUBTTL	Queue Print Routines
 10339
 10340					;#********************************************************************
 10341					;* PQUEUE - Print a set of queue entries
 10342					;
 10343					; Q - Queue to print -  0 - Cmd Queue
 10344					;			1 - Rsp Queue
 10345					;			2 - Unk Free Queue
 10346					;			3 - Ptt Free Queue
 10347					;			4 - Pt table
 10348					;			5 - Multi-Cast Table
 10349					; PK - Address of packet
 10350					;#********************************************************************
 10351
 10352	067305	261 17 0 00 000000 	PQUEUE:	RPUT	(0,1,2,3,4)		; save AC's
 10353
 10354						XCT	[JFCL			; dispatch on queue type
 10355							 JFCL
 10356							 JFCL
 10357							 JFCL
 10358							 JRST	PQUEUP
 10359	067312	256 00 0 13 131211 			 JRST	PQUEUM](Q)
 10360						MOVE	PK,[PCB+0		; get address of beginning of queue
 10361							    PCB+4
 10362							    PCB+10
 10363	067313	200 12 0 13 131071 			    PTTFQ](Q)
 10364	067314	200 04 0 00 000012 		MOVE	4,PK			; get into AC4 also
 10365	067315	260 17 0 00 066516 		GO	CHKINT			; obtain queue ownership
 10366						GO	[GO	ISTOP		; failed - stop the port,
 10367							 SETOM	(PK)		;   clear the interlock word,
 10368							 GO	CHKINT		;   obtain the queue again,
 10369							 JFCL			;   and continue
 10370	067316	260 17 0 00 131217 			 RTN]
 10371						XCT	[TMSGC	<CmdQ > 	; print name of queue
 10372							 TMSGC	<RspQ >
 10373							 TMSGC	<UnkFQ>
 10374	067317	256 00 0 13 131234 			 TMSGC	<PttFQ>](Q)
 10375	067320	037 00 0 00 130125 		TMSG	< (>
 10376	067321	200 01 0 00 000012 		MOVE	1,PK			; get address
 10377	067322	260 17 0 00 070544 		GO	LINKV			; print offset
 10378	067323	037 00 0 00 131240 		TMSG	<): Flink = >
 10379	067324	350 00 0 00 000012 		AOS	PK			; point to FLINK
 10380	067325	200 01 0 12 000000 		MOVE	1,(PK)			; get FLINK
 10381	067326	260 17 0 00 070537 		GO	LINKP			; print it
 10382	067327	037 00 0 00 131243 		TMSG	<  Blink = >
 10383	067330	200 01 0 12 000001 		MOVE	1,1(PK)			; get BLINK
 10384	067331	260 17 0 00 070537 		GO	LINKP			; print it
 10385	067332	336 00 0 00 066650 		SKIPN	NUMENT			; queue empty?
 10386	067333	037 00 0 00 131246 		TMSGC	< Queue is empty>	; yes - print message
 10387	067334	201 03 0 00 066562 		MOVEI	3,LENTRY-1		; init entry pointer
 10388	067335	336 00 0 00 066650 		SKIPN	NUMENT			; queue empty?
 10389	067336	254 00 0 00 067345 		JRST	PQUEUX			; yes - exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 238
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0409

 10390
 10391					; Print the queue entry
 10392
 10393	067337	350 00 0 00 000003 	PQUEU0:	AOS	3			; point to next entry
 10394	067340	336 00 0 03 000000 		SKIPN	(3)			; non-zero queue entry?
 10395	067341	254 00 0 00 067345 		JRST	PQUEUX			; no - done with queue - exit
 10396	067342	200 12 0 03 000000 		MOVE	PK,(3)			; get address of queue entry
 10397						XCT	[GO	PPAKC		; print CmdQ entry
 10398							 GO	PPAKR		; print RspQ entry
 10399							 GO	PPAKF		; print UnkFQ entry
 10400	067343	256 00 0 13 131252 			 GO	PPAKF](Q)	; print PttFQ entry
 10401	067344	254 00 0 00 067337 		JRST	PQUEU0			; loop till done
 10402	067345	476 00 0 04 000000 	PQUEUX:	SETOM	(4)			; reset interlock
 10403	067346	262 17 0 00 000004 	PQUEUY:	RGET	(4,3,2,1,0)		; restore AC's
 10404
 10405	067353	263 17 0 00 000000 		RTN				; return
 10406
 10407					; Print Pt table
 10408
 10409	067354	037 00 0 00 131256 	PQUEUP:	TMSGC	<** Protocol Type Table **>
 10410	067355	037 00 0 00 131264 		TMSGC	<  N  Ena   Type   Address>
 10411	067356	037 00 0 00 131272 		TMSGC	<  -  ---   ----   ------->
 10412	067357	400 03 0 00 000000 		SETZ	3,			; initialize entry count
 10413	067360	201 04 0 00 105000 		MOVEI	4,PTABLE		; initialize pointer to table
 10414	067361	037 00 0 00 030242 	PQUEP0:	PCRL
 10415	067362	001 03 0 00 000003 		PNTOCC	3,3			; print address number
 10416	067363	331 00 0 04 000000 		SKIPL	(4)			; enable bit set?
 10417	067364	037 00 0 00 131300 		TMSG	<   N >			; no - print such
 10418	067365	335 00 0 04 000000 		SKIPGE	(4)			; enable bit set?
 10419	067366	037 00 0 00 131302 		TMSG	<   Y >			; yes - print such
 10420	067367	200 02 0 04 000000 		MOVE	2,(4)			; get first word
 10421	067370	135 00 0 00 131174 		LDB	[POINT 16,2,31]		; get type value
 10422	067371	001 07 0 00 000000 		PNTOCC	7,0			; print it
 10423	067372	037 00 0 00 131304 		TMSG	<   >
 10424	067373	200 01 0 04 000001 		MOVE	1,1(4)			; get header address
 10425	067374	260 17 0 00 070537 		GO	LINKP			; print it
 10426	067375	271 04 0 00 000003 		ADDI	4,3			; point to next entry
 10427	067376	305 04 0 00 105060 		CAIGE	4,PTABLE+60		; done yet?
 10428	067377	254 00 0 00 067361 		JRST	PQUEP0			; no - loop till done
 10429	067400	254 00 0 00 067346 		JRST	PQUEUY			; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 239
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0410

 10430
 10431					; Print Multi-cast table
 10432
 10433	067401	037 00 0 00 131305 	PQUEUM:	TMSGC	<** Multi-Cast Table **>
 10434	067402	037 00 0 00 131312 		TMSGC	<  N Ena  Bt0 BT1 BT2 BT3 BT4 BT5>
 10435	067403	037 00 0 00 131321 		TMSGC	<  - ---  --- --- --- --- --- --->
 10436	067404	400 03 0 00 000000 		SETZ	3,			; initialize entry count
 10437	067405	201 04 0 00 115320 		MOVEI	4,MTABLE		; initialize pointer to table
 10438	067406	037 00 0 00 030242 	PQUEM0:	PCRL
 10439	067407	001 03 0 00 000003 		PNTOCC	3,3			; print address number
 10440	067410	331 00 0 04 000001 		SKIPL	1(4)			; enable bit set?
 10441	067411	037 00 0 00 131330 		TMSG	<  N   >		; no - print such
 10442	067412	335 00 0 04 000001 		SKIPGE	1(4)			; enable bit set?
 10443	067413	037 00 0 00 131332 		TMSG	<  Y   >		; yes - print such
 10444	067414	200 02 0 04 000000 		MOVE	2,(4)			; get first word
 10445	067415	135 00 0 00 131334 		LDB	[POINT 8,2,31]		; get byte 0
 10446	067416	037 03 0 00 000000 		PNT3				; print it
 10447	067417	135 00 0 00 131335 		LDB	[POINT 8,2,23]		; get byte 1
 10448	067420	037 03 0 00 000000 		PNT3				; print it
 10449	067421	135 00 0 00 131336 		LDB	[POINT 8,2,15]		; get byte 2
 10450	067422	037 03 0 00 000000 		PNT3				; print it
 10451	067423	135 00 0 00 131337 		LDB	[POINT 8,2,7]		; get byte 3
 10452	067424	037 03 0 00 000000 		PNT3				; print it
 10453	067425	200 02 0 04 000001 		MOVE	2,1(4)			; get second word
 10454	067426	135 00 0 00 131334 		LDB	[POINT 8,2,31]		; get byte 4
 10455	067427	037 03 0 00 000000 		PNT3				; print it
 10456	067430	135 00 0 00 131335 		LDB	[POINT 8,2,23]		; get byte 5
 10457	067431	037 03 0 00 000000 		PNT3				; print it
 10458	067432	271 04 0 00 000002 		ADDI	4,2			; point to next entry
 10459	067433	305 04 0 00 115360 		CAIGE	4,MTABLE+40		; done yet?
 10460	067434	254 00 0 00 067406 		JRST	PQUEM0			; no - loop till done
 10461	067435	254 00 0 00 067346 		JRST	PQUEUY			; exit
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 240
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0411

 10462
 10463					;#********************************************************************
 10464					;* PPAKC - Print a command queue entry
 10465					;#********************************************************************
 10466
 10467	067436	261 17 0 00 000000 	PPAKC:	RPUT	(0,1)			; save AC's
 10468
 10469	067440	476 00 0 00 134146'		SETOM	CMDPAK#			; set command packet flag
 10470	067441	402 00 0 00 134226'		SETZM	RSPPAK#			; clear response packet flag
 10471	067442	037 00 0 00 131340 		TMSGC	< -------------------->
 10472	067443	037 00 0 00 125342 		TMSGC	< >
 10473	067444	200 01 0 00 000012 		MOVE	1,PK			; get address
 10474	067445	260 17 0 00 070537 		GO	LINKP
 10475	067446	037 00 0 00 131345 		TMSG	</ (CmdQ Entry) - >
 10476
 10477					; Print op code
 10478
 10479	067447	200 01 0 12 000003 	PPAKC0:	MOVE	1,3(PK)			; get status word
 10480	067450	135 11 0 00 131351 		LDB	OP,[POINT 8,1,23]	; get op code
 10481	067451	260 17 0 00 070134 		GO	OPCPNT			; print op code
 10482
 10483					; Now print remainder of queue entry with regard to packet type
 10484
 10485	067452	261 17 0 00 000002 	PPAKCC:	PUT	2			; save AC2 
 10486	067453	260 17 0 00 070207 		GO	DECOPC			; decode op code
 10487	067454	201 01 0 00 000011 		MOVEI	1,11			; error - set offset to 11
 10488	067455	261 17 0 00 000003 		RPUT	(3,4)			; save AC's
 10489
 10490						XCT	[GO	PACK1		; 1-SNDDG
 10491							 GO	PACK2		; 2-LDMCAT
 10492							 GO	PACK3		; 3-LDPTT
 10493							 GO	PACK4		; 4-RCCNT
 10494							 GO	PACK6		; 6-WRPLI
 10495							 GO	PACK7		; 7-RDPLI
 10496							 GO	PACK10		; 10-RDNSA
 10497							 GO	PACK11		; 11-WRNSA
 10498							 GO	PACK5		; 5-DGRCV
 10499	067457	256 00 0 01 131352 			 GO	PACKG](1)	; 12-Misc
 10500	067460	262 17 0 00 000004 		RGET	(4,3,2)			; restore AC's
 10501
 10502	067463	262 17 0 00 000001 	PPAKCX:	RGET	(1,0)			; restore AC's
 10503
 10504	067465	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 241
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0412

 10505
 10506					;#********************************************************************
 10507					;* PPAKR - Print a response queue entry
 10508					;#********************************************************************
 10509
 10510	067466	261 17 0 00 000000 	PPAKR:	RPUT	(0,1)			; save AC's
 10511
 10512	067470	402 00 0 00 134146'		SETZM	CMDPAK			; clear command packet flag
 10513	067471	476 00 0 00 134226'		SETOM	RSPPAK			; set response packet flag
 10514	067472	037 00 0 00 131340 		TMSGC	< -------------------->
 10515	067473	037 00 0 00 125342 		TMSGC	< >
 10516	067474	200 01 0 00 000012 		MOVE	1,PK			; get address
 10517	067475	260 17 0 00 070537 		GO	LINKP
 10518	067476	037 00 0 00 131364 		TMSG	</ (RspQ Entry) - >
 10519	067477	254 00 0 00 067447 		JRST	PPAKC0
 10520
 10521
 10522					;#********************************************************************
 10523					;* PPAKF - Print a free queue entry
 10524					;
 10525					; PK - Address of packet
 10526					; Q - Cmd queue number
 10527					;#********************************************************************
 10528
 10529	067500	261 17 0 00 000000 	PPAKF:	RPUT	(0,1)			; save AC's
 10530
 10531	067502	037 00 0 00 125342 		TMSGC	< >
 10532	067503	200 01 0 00 000012 		MOVE	1,PK			; get address
 10533	067504	260 17 0 00 070537 		GO	LINKP
 10534	067505	037 00 0 00 131370 		TMSG	</ Flink = >
 10535	067506	200 01 0 12 000000 		MOVE	1,(PK)			; get FLINK
 10536	067507	260 17 0 00 070537 		GO	LINKP			; print it
 10537	067510	037 00 0 00 131243 		TMSG	<  Blink = >
 10538	067511	200 01 0 12 000001 		MOVE	1,1(PK)			; get BLINK
 10539	067512	260 17 0 00 070537 		GO	LINKP			; print it
 10540	067513	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
 10541
 10542	067515	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 242
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0413

 10543
 10544					;#********************************************************************
 10545					;* PACK1 - Print a packet - SNDDG command / DGSNT response
 10546					;
 10547					; BSD style packet format:
 10548					;
 10549					;   PACKET+11/ BSD Base Address (PACKET+14)
 10550					;
 10551					;   PACKET+14/ Packing Mode/Segment Base Address (PACKET+20)
 10552					;   PACKET+15/ Next BSD Address (0)
 10553					;   PACKET+16/ Segment Length (n)
 10554					;   PACKET+17/ 0
 10555					;
 10556					;   PACKET+20/ Data+0
 10557					;   PACKET+21/ Data+1
 10558					;    ...       ...
 10559					;#********************************************************************
 10560
 10561	067516	260 17 0 00 070237 	PACK1:	GO	PHEAD			; print header data
 10562	067517	037 00 0 00 131373 		TMSGC	< Text Length:  >
 10563	067520	200 00 0 12 000004 		MOVE	4(PK)			; get length word
 10564	067521	037 15 0 00 000000 		PNTDEC				; print it
 10565	067522	037 00 0 00 131377 		TMSG	<. (bytes)>
 10566	067523	200 00 0 12 000003 		MOVE	3(PK)			; get status word
 10567	067524	603 00 0 00 000040 		TLNE	40			; BSD style?
 10568	067525	254 00 0 00 067545 		JRST	PACK1A			; yes - go handle
 10569
 10570					; Non-BSD style
 10571
 10572	067526	037 00 0 00 131401 		TMSGC	< PTT Value:  >
 10573	067527	200 00 0 12 000005 		MOVE	5(PK)			; get PTT word
 10574	067530	135 00 0 00 131405 	 	LDB	[POINT 16,0,31]		; get PTT value
 10575	067531	037 16 0 00 000003 		PNTOCS				; print it
 10576	067532	037 00 0 00 131406 		TMSGC	< FREEQ Header Addr:  >
 10577	067533	200 01 0 12 000006 		MOVE	1,6(PK)			; get FREEQ address
 10578	067534	260 17 0 00 070537 		GO	LINKP			; print it out
 10579	067535	037 00 0 00 131413 		TMSGC	< Destination Addr:  >
 10580	067536	120 01 0 12 000007 		DMOVE	1,7(PK)			; get destination address
 10581	067537	260 17 0 00 070261 		GO	PADDR			; print address
 10582	067540	201 01 0 12 000011 		MOVEI	1,11(PK)		; get text address
 10583	067541	200 02 0 12 000004 		MOVE	2,4(PK)			; get length word
 10584	067542	400 04 0 00 000000 		SETZ	4,			; set packing mode to COMPAT
 10585	067543	260 17 0 00 070431 		GO	PTEXT			; print text data
 10586	067544	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 243
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0414

 10587
 10588					; BSD style
 10589
 10590	067545	037 00 0 00 131401 	PACK1A:	TMSGC	< PTT Value:  >
 10591	067546	200 00 0 12 000005 		MOVE	5(PK)			; get PTT word
 10592	067547	135 00 0 00 131405 		LDB	[POINT 16,0,31]		; get PTT value
 10593	067550	037 16 0 00 000003 		PNTOCS				; print it
 10594	067551	037 00 0 00 131406 		TMSGC	< FREEQ Header Addr:  >
 10595	067552	200 01 0 12 000006 		MOVE	1,6(PK)			; get FREEQ address
 10596	067553	260 17 0 00 070537 		GO	LINKP			; print it out
 10597	067554	037 00 0 00 131413 		TMSGC	< Destination Addr:  >
 10598	067555	120 01 0 12 000007 		DMOVE	1,7(PK)			; get destination address
 10599	067556	260 17 0 00 070261 		GO	PADDR			; print address
 10600	067557	037 00 0 00 131420 		TMSGC	< BSD Base Addr:  >
 10601	067560	200 01 0 12 000011 		MOVE	1,11(PK)		; get BSD base address
 10602	067561	260 17 0 00 070537 		GO	LINKP			; print it out
 10603	067562	201 03 0 12 000014 		MOVEI	3,14(PK)		; get BSD segment address
 10604	067563	201 01 0 00 000001 		MOVEI	1,1			; get segment number
 10605	067564	260 17 0 00 070475 		GO	PBSD			; print data
 10606	067565	263 17 0 00 000000 		RTN				; return
 10607
 10608
 10609					;#********************************************************************
 10610					;* PACK2 - Print a packet - LDMCAT command / MCATLD response
 10611					;#********************************************************************
 10612
 10613	067566	260 17 0 00 070237 	PACK2:	GO	PHEAD			; print header data
 10614	067567	263 17 0 00 000000 		RTN				; return
 10615
 10616
 10617					;#********************************************************************
 10618					;* PACK3 - Print a packet - LDPTT command / PTTLD response
 10619					;#********************************************************************
 10620
 10621	067570	260 17 0 00 070237 	PACK3:	GO	PHEAD			; print header data
 10622	067571	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 244
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0415

 10623
 10624					;#********************************************************************
 10625					;* PACK4 - Print a packet - RCCNT command / CNTRC response
 10626					;#********************************************************************
 10627
 10628	067572	260 17 0 00 070237 	PACK4:	GO	PHEAD			; print header data
 10629	067573	336 00 0 00 134226'		SKIPN	RSPPAK			; response packet?
 10630	067574	263 17 0 00 000000 		RTN				; no - return
 10631
 10632	067575	201 04 0 12 000003 	CNTPNT:	MOVEI	4,3(PK)			; get address of start of counters
 10633	067576	400 05 0 00 000000 		SETZ	5,			; initialize counters
 10634	067577	335 00 0 05 067677 	PACK4B:	SKIPGE	PACK4T(5)		; done printing?
 10635	067600	263 17 0 00 000000 		RTN				; yes - exit
 10636	067601	606 05 0 00 000001 		TRNN	5,1			; multiple of 2?
 10637	067602	037 00 0 00 125342 		TMSGC	< >			; yes - next line
 10638	067603	350 00 0 00 000004 		AOS	4			; point to next data item
 10639	067604	550 02 0 05 067677 		HRRZ	2,PACK4T(5)
 10640	067605	307 02 0 00 000003 		CAIG	2,3			; special text?
 10641						XCT	[JRST	[SOS	4	; yes - handle it
 10642								 JRST	PACK4C]
 10643							 JRST	PACK4D
 10644							 JRST	PACK4E
 10645	067606	256 00 0 02 131426 			 JRST	PACK4G](2)
 10646	067607	256 00 0 05 067677 		XCT	PACK4T(5)		; no - print text
 10647	067610	200 00 0 04 000000 		MOVE	(4)			; get counter data
 10648	067611	010 15 0 00 000000 		PNTDCL	15,			; print it
 10649	067612	350 00 0 00 000005 	PACK4C:	AOS	5
 10650	067613	254 00 0 00 067577 		JRST	PACK4B			; loop till done
 10651
 10652					; Rcv/Xmt failure bit masks
 10653
 10654	067614	037 00 0 00 131432 	PACK4D:	TMSGC	< Xmt Fail BitMask = >
 10655	067615	201 02 0 00 067660 		MOVEI	2,PACK4X		; get xmt failure bit mask table addr
 10656	067616	254 00 0 00 067621 		JRST	.+3			; continue
 10657	067617	037 00 0 00 131437 	PACK4E:	TMSGC	< Rcv Fail BitMask = >
 10658	067620	201 02 0 00 067671 		MOVEI	2,PACK4Y		; get rcv failure bit mask table addr
 10659	067621	200 00 0 04 000000 		MOVE	(4)			; get counter data
 10660	067622	037 13 0 00 000000 		PNTHW				; print it
 10661	067623	402 00 0 00 134210'		SETZM	NUMPNT#			; clear number printed?
 10662	067624	336 00 0 02 000000 	PACK4F:	SKIPN	(2)			; done yet?
 10663	067625	254 00 0 00 067612 		JRST	PACK4C			; yes - exit
 10664	067626	550 00 0 02 000000 		HRRZ	(2)			; get bit mask
 10665	067627	554 01 0 02 000000 		HLRZ	1,(2)			; get text address
 10666	067630	350 00 0 00 000002 		AOS	2			; point to next entry
 10667	067631	616 00 0 04 000000 		TDNN	(4)			; bit set?
 10668	067632	254 00 0 00 067624 		JRST	PACK4F			; no - continue
 10669	067633	350 03 0 00 134210'		AOS	3,NUMPNT		; increment print count
 10670	067634	306 03 0 00 000003 		CAIN	3,3			; end of 1st line?
 10671	067635	037 00 0 00 131444 		TMSGC	<    >
 10672	067636	306 03 0 00 000006 		CAIN	3,6			; end of 2nd line?
 10673	067637	037 00 0 00 131444 		TMSGC	<    >
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 245
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0416

 10674	067640	306 03 0 00 000011 		CAIN	3,9			; end of 3rd line?
 10675	067641	037 00 0 00 131444 		TMSGC	<    >
 10676	067642	256 00 0 01 000000 		XCT	(1)			; yes - print text
 10677	067643	254 00 0 00 067624 		JRST	PACK4F			; loop till done
 10678
 10679	067644	336 00 0 05 067700 	PACK4G:	SKIPN	PACK4T+1(5)		; done with this section?
 10680						JRST	[SOS	4		; yes - continue with other
 10681	067645	254 00 0 00 131424 			 JRST	PACK4C]
 10682	067646	256 00 0 05 067700 		XCT	PACK4T+1(5)		; print text
 10683	067647	554 00 0 04 000000 		HLRZ	(4)			; get counter data
 10684	067650	010 15 0 00 000000 		PNTDCL	15,			; print it
 10685	067651	256 00 0 05 067700 		XCT	PACK4T+1(5)		; print text
 10686	067652	550 00 0 04 000000 		HRRZ	(4)			; get counter data
 10687	067653	010 15 0 00 000000 		PNTDCL	15,			; print it
 10688	067654	037 00 0 00 125342 		TMSGC	< >			; next line
 10689	067655	271 05 0 00 000002 		ADDI	5,2			; point to next text sequence
 10690	067656	350 00 0 00 000004 		AOS	4			; point to next data item
 10691	067657	254 00 0 00 067644 		JRST	PACK4G			; loop till done
 10692
 10693					; Xmt failure bit mask table
 10694
 10695	067660	131451	004000		PACK4X:	[TMSG <(Lost carrier)>],,1B24
 10696	067661	131455	002000			[TMSG <(XmtBuf PE)>],,1B25
 10697	067662	131464	001000			[TMSG <(Remote failure to defer)>],,1B26
 10698	067663	131471	000400			[TMSG <(Frame too long)>],,1B27
 10699	067664	131475	000200			[TMSG <(Open circuit)>],,1B28
 10700	067665	131502	000100			[TMSG <(Short circuit)>],,1B29
 10701	067666	131510	000040			[TMSG <(Carrier check failed)>],,1B30
 10702	067667	131516	000020			[TMSG <(Excessive collisions)>],,1B31
 10703	067670	000000	000000			0
 10704
 10705					; Rcv failure bit mask table
 10706
 10707	067671	131522	000400		PACK4Y:	[TMSG <(Free list PE)>],,1B27
 10708	067672	131526	000200			[TMSG <(Data overrun)>],,1B28
 10709	067673	131471	000100			[TMSG <(Frame too long)>],,1B29
 10710	067674	131533	000040			[TMSG <(Framing error)>],,1B30
 10711	067675	131540	000020			[TMSG <(Block check error)>],,1B31
 10712	067676	000000	000000			0
 10713
 10714					; Counters table
 10715
 10716	067677	037 00 0 00 131541 	PACK4T:	TMSG	<Bytes Rcvd       = >		; 4
 10717	067700	037 00 0 00 131545 		TMSG	<Bytes Xmtd       = >		; 5
 10718	067701	037 00 0 00 131551 		TMSG	<Frames Rcvd      = >		; 6
 10719	067702	037 00 0 00 131555 		TMSG	<Frames Xmtd      = >		; 7
 10720	067703	037 00 0 00 131561 		TMSG	<MC Bytes Rcvd    = >		; 10
 10721	067704	037 00 0 00 131565 		TMSG	<MC Frames Rcvd   = >		; 11
 10722	067705	037 00 0 00 131571 		TMSG	<Frames Deferred  = >		; 12
 10723	067706	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 246
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0417

 10724	067707	037 00 0 00 131575 		TMSG	<Sngle Collisions = >		; 13
 10725	067710	037 00 0 00 131601 		TMSG	<Multi Collisions = >		; 14
 10726	067711	037 00 0 00 131605 		TMSG	<Xmit Failures    = >		; 15
 10727	067712	000000	000001			1					; 16 XFBM
 10728	067713	037 00 0 00 131611 		TMSG	<Coll.Det.Failed  = >		; 17
 10729	067714	000000	000000			0
 10730	067715	037 00 0 00 131615 		TMSG	<Rcv Failures     = >		; 20
 10731	067716	000000	000002			2					; 21 RFBM
 10732	067717	037 00 0 00 131621 		TMSG	<Discarded unknwn = >		; 22
 10733	067720	037 00 0 00 131625 		TMSG	<Discarded PT 1   = >		; 23
 10734	067721	037 00 0 00 131631 		TMSG	<Discarded PT 2   = >		; 24
 10735	067722	037 00 0 00 131635 		TMSG	<Discarded PT 3   = >		; 25
 10736	067723	037 00 0 00 131641 		TMSG	<Discarded PT 4   = >		; 26
 10737	067724	037 00 0 00 131645 		TMSG	<Discarded PT 5   = >		; 27
 10738	067725	037 00 0 00 131651 		TMSG	<Discarded PT 6   = >		; 30
 10739	067726	037 00 0 00 131655 		TMSG	<Discarded PT 7   = >		; 31
 10740	067727	037 00 0 00 131661 		TMSG	<Discarded PT 8   = >		; 32
 10741	067730	037 00 0 00 131665 		TMSG	<Discarded PT 9   = >		; 33
 10742	067731	037 00 0 00 131671 		TMSG	<Discarded PT 10  = >		; 34
 10743	067732	037 00 0 00 131675 		TMSG	<Discarded PT 11  = >		; 35
 10744	067733	037 00 0 00 131701 		TMSG	<Discarded PT 12  = >		; 36
 10745	067734	037 00 0 00 131705 		TMSG	<Discarded PT 13  = >		; 37
 10746	067735	037 00 0 00 131711 		TMSG	<Discarded PT 14  = >		; 40
 10747	067736	037 00 0 00 131715 		TMSG	<Discarded PT 15  = >		; 41
 10748	067737	037 00 0 00 131721 		TMSG	<Discarded PT 16  = >		; 42
 10749	067740	037 00 0 00 131725 		TMSG	<Unrec Frame Dest = >		; 43
 10750	067741	037 00 0 00 131731 		TMSG	<Data Overrun     = >		; 44
 10751	067742	037 00 0 00 131735 		TMSG	<Sys Buff Unavail = >		; 45
 10752	067743	037 00 0 00 131741 		TMSG	<Usr Buff Unavail = >		; 46
 10753	067744	000000	000000			0
 10754	067745	000000	000003			3
 10755	067746	037 00 0 00 131745 		TMSG	<PLI Reg Read PE  = >		; 47
 10756	067747	037 00 0 00 131751 		TMSG	<PLI PE           = >		; 47
 10757	067750	037 00 0 00 131755 		TMSG	<Mover PE         = >		; 50
 10758	067751	037 00 0 00 131761 		TMSG	<CBUS PE          = >		; 50
 10759	067752	037 00 0 00 131765 		TMSG	<EBUS PE          = >		; 51
 10760	067753	037 00 0 00 131771 		TMSG	<EBUS QUE PE      = >		; 51
 10761	067754	037 00 0 00 131775 		TMSG	<Channel Error    = >		; 52
 10762	067755	037 00 0 00 132001 		TMSG	<Spur Chan Error  = >		; 52
 10763	067756	037 00 0 00 132005 		TMSG	<Spur Xmt Atn Err = >		; 53
 10764	067757	037 00 0 00 132011 		TMSG	<CBUS Req Tmo Err = >		; 53
 10765	067760	037 00 0 00 132015 		TMSG	<EBUS Req Tmo Err = >		; 54
 10766	067761	037 00 0 00 132021 		TMSG	<CSR Grnt Tmo Err = >		; 54
 10767	067762	037 00 0 00 132025 		TMSG	<Used Buffer PE   = >		; 55
 10768	067763	037 00 0 00 132031 		TMSG	<Xmt Buffer PE    = >		; 55
 10769	067764	000000	000000			0
 10770	067765	037 00 0 00 132035 		TMSG	<Rsvd for ucode   = >		; 56
 10771	067766	037 00 0 00 132035 		TMSG	<Rsvd for ucode   = >		; 57
 10772	067767	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 247
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0418

 10773
 10774					;#********************************************************************
 10775					;* PACK5 - Print a packet - DGRCV response
 10776					;#********************************************************************
 10777
 10778	067770	260 17 0 00 070237 	PACK5:	GO	PHEAD			; print header data
 10779	067771	037 00 0 00 131373 		TMSGC	< Text Length:  >
 10780	067772	200 00 0 12 000004 		MOVE	4(PK)			; get length word
 10781	067773	037 15 0 00 000000 		PNTDEC				; print it
 10782	067774	037 00 0 00 131377 		TMSG	<. (bytes)>
 10783	067775	037 00 0 00 131413 		TMSGC	< Destination Addr:  >
 10784	067776	120 01 0 12 000005 		DMOVE	1,5(PK)			; get destination address
 10785	067777	260 17 0 00 070261 		GO	PADDR			; print address
 10786	070000	037 00 0 00 132041 		TMSGC	< Source Addr:  >
 10787	070001	120 01 0 12 000007 		DMOVE	1,7(PK)			; get source address
 10788	070002	260 17 0 00 070261 		GO	PADDR			; print address
 10789	070003	037 00 0 00 131401 		TMSGC	< PTT Value:  >
 10790	070004	200 00 0 12 000011 		MOVE	11(PK)			; get PTT word
 10791	070005	135 00 0 00 131405 		LDB	[POINT 16,0,31]		; get PTT value
 10792	070006	037 16 0 00 000003 		PNTOCS				; print it
 10793	070007	037 00 0 00 132045 		TMSGC	< Data Pointer:  >
 10794	070010	200 01 0 12 000012 		MOVE	1,12(PK)		; get text pointer
 10795	070011	260 17 0 00 070537 		GO	LINKP			; print it
 10796	070012	201 01 0 12 000013 		MOVEI	1,13(PK)		; get text address
 10797	070013	200 02 0 12 000004 		MOVE	2,4(PK)			; get length word
 10798	070014	400 04 0 00 000000 		SETZ	4,			; set packing mode to COMPAT
 10799	070015	260 17 0 00 070431 		GO	PTEXT			; print text data
 10800	070016	263 17 0 00 000000 		RTN				; return
 10801
 10802
 10803					;#********************************************************************
 10804					;* PACK6 - Print a packet - WRPLI command / PLIWR response
 10805					;#********************************************************************
 10806
 10807	070017	260 17 0 00 070237 	PACK6:	GO	PHEAD			; print header data
 10808	070020	037 00 0 00 132051 		TMSGC	< Control Bits = >
 10809	070021	200 01 0 12 000004 		MOVE	1,4(PK)			; get word
 10810	070022	135 00 0 00 132055 		LDB	[POINT 4,1,23]		; get bits
 10811	070023	037 16 0 00 000003 		PNTOCS
 10812	070024	037 00 0 00 132056 		TMSGC	< PLI Data = >
 10813	070025	135 00 0 00 125343 		LDB	[POINT 8,1,35]		; get bits
 10814	070026	037 16 0 00 000003 		PNTOCS				; print
 10815	070027	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 248
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0419

 10816
 10817					;#********************************************************************
 10818					;* PACK7 - Print a packet - RDPLI command / PLIRD response
 10819					;#********************************************************************
 10820
 10821	070030	260 17 0 00 070237 	PACK7:	GO	PHEAD			; print header data
 10822	070031	037 00 0 00 132051 		TMSGC	< Control Bits = >
 10823	070032	200 01 0 12 000004 		MOVE	1,4(PK)			; get word
 10824	070033	135 00 0 00 132055 		LDB	[POINT 4,1,23]		; get bits
 10825	070034	037 16 0 00 000003 		PNTOCS				; print
 10826	070035	037 00 0 00 132056 		TMSGC	< PLI Data = >
 10827	070036	135 00 0 00 125343 		LDB	[POINT 8,1,35]		; get bits
 10828	070037	037 16 0 00 000003 		PNTOCS				; print
 10829	070040	263 17 0 00 000000 		RTN				; return
 10830
 10831
 10832					;#********************************************************************
 10833					;* PACK10 - Print a packet - RDNSA command / NSARD response
 10834					;#********************************************************************
 10835
 10836	070041	260 17 0 00 070237 	PACK10:	GO	PHEAD			; print header data
 10837	070042	332 00 0 00 134146'		SKIPE	CMDPAK			; command packet?
 10838	070043	263 17 0 00 000000 		RTN				; yes - exit
 10839
 10840					; Response packet NSARD
 10841
 10842	070044	037 00 0 00 132061 		TMSGC	< NI Address:  >
 10843	070045	120 01 0 12 000004 		DMOVE	1,4(PK)			; get destination address
 10844	070046	260 17 0 00 070261 		GO	PADDR			; print address
 10845	070047	120 01 0 12 000006 		DMOVE	1,6(PK)			; get special word
 10846	070050	037 00 0 00 132065 		TMSGC	< AMC = >
 10847	070051	135 00 0 00 132067 		LDB	[POINT 1,1,33]		; get AMC bit
 10848	070052	037 16 0 00 000003 		PNTOCS				; print it
 10849	070053	037 00 0 00 132070 		TMSG	<, H4000 Mode = >
 10850	070054	135 00 0 00 132074 		LDB	[POINT 1,1,34]		; get H4000 MODE bit
 10851	070055	037 16 0 00 000003 		PNTOCS				; print it
 10852	070056	037 00 0 00 132075 		TMSG	<, PRMSC Mode = >
 10853	070057	135 00 0 00 132101 		LDB	[POINT 1,1,35]		; get PRMSC MODE bit
 10854	070060	037 16 0 00 000003 		PNTOCS				; print it
 10855	070061	037 00 0 00 132102 		TMSGC	< UCode Version = > 
 10856	070062	135 00 0 00 131335 		LDB	[POINT 8,2,23]		; get UCode Version
 10857	070063	037 16 0 00 000003 		PNTOCS				; print it
 10858	070064	037 00 0 00 132106 		TMSG	<, # MCAT = >
 10859	070065	135 00 0 00 132111 		LDB	[POINT 6,2,29]		; get # MCAT
 10860	070066	037 16 0 00 000003 		PNTOCS				; print it
 10861	070067	037 00 0 00 132112 		TMSG	<, # PTT = >
 10862	070070	135 00 0 00 127603 		LDB	[POINT 6,2,35]		; get # PTT
 10863	070071	037 16 0 00 000003 		PNTOCS				; print it
 10864	070072	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 249
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0420

 10865
 10866					;#********************************************************************
 10867					;* PACK11 - Print a packet - WRNSA command / NSAWR response
 10868					;#********************************************************************
 10869
 10870	070073	260 17 0 00 070237 	PACK11:	GO	PHEAD			; print header data
 10871	070074	037 00 0 00 132061 		TMSGC	< NI Address:  >
 10872	070075	120 01 0 12 000004 		DMOVE	1,4(PK)			; get destination address
 10873	070076	260 17 0 00 070261 		GO	PADDR			; print address
 10874	070077	120 01 0 12 000006 		DMOVE	1,6(PK)			; get special word
 10875	070100	037 00 0 00 132065 		TMSGC	< AMC = >
 10876	070101	135 00 0 00 132067 		LDB	[POINT 1,1,33]		; get AMC bit
 10877	070102	037 16 0 00 000003 		PNTOCS				; print it
 10878	070103	037 00 0 00 132070 		TMSG	<, H4000 Mode = >
 10879	070104	135 00 0 00 132074 		LDB	[POINT 1,1,34]		; get H4000 MODE bit
 10880	070105	037 16 0 00 000003 		PNTOCS				; print it
 10881	070106	037 00 0 00 132075 		TMSG	<, PRMSC Mode = >
 10882	070107	135 00 0 00 132101 		LDB	[POINT 1,1,35]		; get PRMSC MODE bit
 10883	070110	037 16 0 00 000003 		PNTOCS				; print it
 10884	070111	037 00 0 00 132115 		TMSGC	< # Retries Allowed = > 
 10885	070112	135 00 0 00 132122 		LDB	[POINT 12,2,35]		; get # Retries Allowed
 10886	070113	037 16 0 00 000003 		PNTOCS				; print it
 10887	070114	263 17 0 00 000000 		RTN				; return
 10888
 10889
 10890					;#********************************************************************
 10891					;* PACKG - Print a general type packet (unrecognized)
 10892					;#********************************************************************
 10893
 10894	070115	260 17 0 00 070237 	PACKG:	GO	PHEAD			; print header data
 10895	070116	037 00 0 00 132123 		TMSGC	< Packet Data:>		; print heading
 10896	070117	201 01 0 12 000005 		MOVEI	1,5(PK)			; get address to start
 10897	070120	201 02 0 00 000005 		MOVEI	2,5			; initialize word number
 10898	070121	200 03 0 00 033706 		MOVE	3,DSPRIN		; get words to print
 10899	070122	037 00 0 00 132127 	PMISC0:	TMSGC	< +>			; print word count
 10900	070123	200 00 0 00 000002 		MOVE	2			; get word number
 10901	070124	037 16 0 00 000003 		PNTOCS				; print it
 10902	070125	037 00 0 00 124736 		TMSG	</ >
 10903	070126	200 00 0 01 000000 		MOVE	(1)			; get packet data
 10904	070127	037 13 0 00 000000 		PNTHW				; print it
 10905	070130	350 00 0 00 000001 		AOS	1			; point to next word
 10906	070131	350 00 0 00 000002 		AOS	2			; increment word count
 10907	070132	367 03 0 00 070122 		SOJG	3,PMISC0		; done yet? no - loop till done
 10908	070133	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 250
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0421

 10909
 10910					;#********************************************************************
 10911					;* OPCPNT - Print opcode of command packet
 10912					;
 10913					; OP - Contains opcode
 10914					;#********************************************************************
 10915
 10916	070134	261 17 0 00 000000 	OPCPNT:	RPUT	(0,1)			; save AC's
 10917
 10918	070136	200 00 0 00 000011 		MOVE	OP			; get op code
 10919	070137	037 16 0 00 000003 		PNTOCS				; print it
 10920	070140	037 00 0 00 117115 		TMSG	<->
 10921	070141	201 01 0 00 070163 		MOVEI	1,CMDOPC-1		; get cmd packet table
 10922	070142	336 00 0 00 134146'		SKIPN	CMDPAK			; command packet?
 10923	070143	201 01 0 00 070174 		MOVEI	1,RSPOPC-1		; no - get rsp packet table
 10924	070144	350 00 0 00 000001 	OPCPN0:	AOS	1			; point to next entry
 10925	070145	554 00 0 01 000000 		HLRZ	(1)			; get entry
 10926	070146	322 00 0 00 070155 		JUMPE	OPCPNE			; done? yes - error
 10927	070147	312 00 0 00 000011 		CAME	OP			; correct?
 10928	070150	254 00 0 00 070144 		JRST	OPCPN0			; no - look at next entry
 10929	070151	550 01 0 01 000000 		HRRZ	1,(1)			; get address of message
 10930	070152	200 01 0 01 000000 		MOVE	1,(1)			; get message
 10931	070153	256 00 0 00 000001 		XCT	1			; print it
 10932	070154	254 00 0 00 070161 		JRST	OPCPNX			; exit
 10933	070155	037 00 0 00 132130 	OPCPNE:	TMSG	<??>
 10934	070156	200 00 0 00 000011 		MOVE	OP
 10935	070157	037 16 0 00 000003 		PNTOCS
 10936	070160	037 00 0 00 132130 		TMSG	<??>
 10937	070161	262 17 0 00 000001 	OPCPNX:	RGET	(1,0)			; restore AC's
 10938
 10939	070163	263 17 0 00 000000 		RTN				; return
 10940
 10941					; Table of cmd/rsp opcodes
 10942
 10943	070164	000001	132133		CMDOPC:	SNDDG,,[TMSG <SNDDG>]
 10944	070165	000002	132136			LDMCAT,,[TMSG <LDMCAT>]
 10945	070166	000003	132141			LDPTT,,[TMSG <LDPTT>]
 10946	070167	000004	132144			RCCNT,,[TMSG <RCCNT>]
 10947	070170	000006	132147			WRPLI,,[TMSG <WRTPLI>]
 10948	070171	000007	132152			RDPLI,,[TMSG <RDPLI>]
 10949	070172	000010	132155			RDNSA,,[TMSG <RDNSA>]
 10950	070173	000011	132160			WRNSA,,[TMSG <WRTNSA>]
 10951	070174	000000	000000			0
 10952
 10953	070175	000001	132163		RSPOPC:	DGSNT,,[TMSG <DGSNT>]
 10954	070176	000002	132166			MCATLD,,[TMSG <MCATLD>]
 10955	070177	000003	132171			PTTLD,,[TMSG <PTTLD>]
 10956	070200	000004	132174			CNTRC,,[TMSG <CNTRC>]
 10957	070201	000005	132177			DGRCV,,[TMSG <DGRCV>]
 10958	070202	000006	132202			PLIWR,,[TMSG <PLIWRT>]
 10959	070203	000007	132205			PLIRD,,[TMSG <PLIRD>]
 10960	070204	000010	132210			NSARD,,[TMSG <NSARD>]
 10961	070205	000011	132213			NSAWR,,[TMSG <NSAWRT>]
 10962	070206	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 251
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0422

 10963
 10964					;#********************************************************************
 10965					;* DECOPC - Decode op code
 10966					;
 10967					; Given:  OP - Contains op code to decode
 10968					;
 10969					; Returns:  AC1 - Contains offset address of opcode (0..n)
 10970					;	    AC2 - Contains 0 - Sent
 10971					;			   1 - Received (as a response ...)
 10972					;			   2 - Received (from another port)
 10973					;	    +1 - No match
 10974					;	    +2 - Match
 10975					;#********************************************************************
 10976
 10977	070207	261 17 0 00 000000 	DECOPC:	PUT	0			; save AC0
 10978	070210	201 01 0 00 070224 		MOVEI	1,DECTAB-1		; initialize table address
 10979	070211	350 00 0 00 000001 	DECOP0:	AOS	1			; point to next entry
 10980	070212	336 00 0 01 000000 		SKIPN	(1)			; end of list?
 10981	070213	254 00 0 00 070223 		JRST	DECOPX			; yes - exit +1 (error)
 10982	070214	550 00 0 01 000000 		HRRZ	(1)			; get op code
 10983	070215	312 00 0 00 000011 		CAME	OP			; match?
 10984	070216	254 00 0 00 070211 		JRST	DECOP0			; no - loop till done
 10985	070217	200 02 0 01 000000 		MOVE	2,(1)			; get data
 10986	070220	135 01 0 00 132214 		LDB	1,[POINT 15,2,17]	; get offset
 10987	070221	135 02 0 00 132215 		LDB	2,[POINT 3,2,2]		; get type
 10988	070222	350 00 0 17 777777 		AOS	-1(P)			; set up return +2
 10989	070223	262 17 0 00 000000 	DECOPX:	GET	0			; restore AC0
 10990	070224	263 17 0 00 000000 		RTN				; exit
 10991
 10992					; Table of op codes
 10993
 10994	070225	000000	000001		DECTAB:	0B2!0B17!SNDDG			; 0
 10995	070226	000001	000002			0B2!1B17!LDMCAT			; 1
 10996	070227	000002	000003			0B2!2B17!LDPTT			; 2
 10997	070230	000003	000004			0B2!3B17!RCCNT			; 3
 10998	070231	000004	000006			0B2!4B17!WRPLI			; 4
 10999	070232	000005	000007			0B2!5B17!RDPLI			; 5
 11000	070233	000006	000010			0B2!6B17!RDNSA			; 6
 11001	070234	000007	000011			0B2!7B17!WRNSA			; 7
 11002	070235	200010	000005			2B2!10B17!DGRCV			; 10
 11003	070236	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 252
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0423

 11004
 11005					;#********************************************************************
 11006					;* PHEAD - Print header info of a packet
 11007					;#********************************************************************
 11008
 11009	070237	261 17 0 00 000000 	PHEAD:	RPUT	(0,1)			; save AC's
 11010
 11011
 11012					; Print Flink/Blink
 11013
 11014	070241	037 00 0 00 132216 		TMSGC	< Flink = >
 11015	070242	200 01 0 12 000000 		MOVE	1,(PK)			; get FLINK
 11016	070243	260 17 0 00 070537 		GO	LINKP			; print it
 11017	070244	037 00 0 00 132221 		TMSG	< / Blink = >
 11018	070245	200 01 0 12 000001 		MOVE	1,1(PK)			; get BLINK
 11019	070246	260 17 0 00 070537 		GO	LINKP			; print it
 11020	070247	037 00 0 00 132224 		TMSGC	< Status Word:  >
 11021	070250	200 00 0 12 000003 		MOVE	3(PK)			; get status word
 11022	070251	037 13 0 00 000000 		PNTHW				; print it
 11023	070252	037 00 0 00 132230 		TMSGC	<   OpCode = >
 11024	070253	260 17 0 00 070134 		GO	OPCPNT			; print OP CODE
 11025	070254	260 17 0 00 070360 		GO	PFLAGS
 11026	070255	260 17 0 00 070276 		GO	PSTATS
 11027	070256	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
 11028
 11029	070260	263 17 0 00 000000 		RTN				; return
 11030
 11031
 11032					;#********************************************************************
 11033					;* PADDR - Print 6 byte source/destination address
 11034					;
 11035					; AC1,AC2 - Contain the address to print
 11036					;#********************************************************************
 11037
 11038	070261	135 00 0 00 132233 	PADDR:  LDB	[POINT 8,1,31]		; get byte 0
 11039	070262	037 03 0 00 000000 		PNT3				; print it
 11040	070263	135 00 0 00 131351 		LDB	[POINT 8,1,23]		; get byte 1
 11041	070264	037 03 0 00 000000 		PNT3				; print it
 11042	070265	135 00 0 00 132234 		LDB	[POINT 8,1,15]		; get byte 2
 11043	070266	037 03 0 00 000000 		PNT3				; print it
 11044	070267	135 00 0 00 132235 		LDB	[POINT 8,1,7]		; get byte 3
 11045	070270	037 03 0 00 000000 		PNT3				; print it
 11046	070271	135 00 0 00 131334 		LDB	[POINT 8,2,31]		; get byte 4
 11047	070272	037 03 0 00 000000 		PNT3				; print it
 11048	070273	135 00 0 00 131335 		LDB	[POINT 8,2,23]		; get byte 5
 11049	070274	037 03 0 00 000000 		PNT3				; print it
 11050	070275	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 253
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0424

 11051
 11052					;#********************************************************************
 11053					;* PSTATS - Print status field
 11054					;#********************************************************************
 11055
 11056	070276	261 17 0 00 000000 	PSTATS:	RPUT	(0,1,2,3)		; save AC's
 11057
 11058	070302	037 00 0 00 132236 		TMSGC	<   Status >
 11059	070303	200 01 0 12 000003 		MOVE	1,3(PK)			; get word
 11060	070304	135 01 0 00 132235 		LDB	1,[POINT 8,1,7]		; get status byte
 11061	070305	200 00 0 00 000001 		MOVE	1			; get octal
 11062	070306	037 03 0 00 000000 		PNT3				; print it
 11063	070307	037 00 0 00 126465 		TMSG	<= >
 11064	070310	606 01 0 00 000001 		TRNN	1,1			; any error?
 11065						JRST	[TMSG	<No Error>	; no - print no error
 11066	070311	254 00 0 00 132243 			 JRST	PSTATX]		;   and exit
 11067
 11068					; Error byte
 11069
 11070	070312	135 02 0 00 132245 	PSTAT0:	LDB	2,[POINT 5,1,34]	; get error bits
 11071	070313	201 01 0 00 070334 		MOVEI	1,STATAB-1		; initialize table address
 11072	070314	350 00 0 00 000001 	PSTAT1:	AOS	1			; point to next entry
 11073	070315	337 00 0 01 000000 		SKIPG	(1)			; end of list?
 11074	070316	254 00 0 00 070325 		JRST	PSTAT2			; yes - print unrecognized
 11075	070317	554 00 0 01 000000 		HLRZ	(1)			; get error code
 11076	070320	312 00 0 00 000002 		CAME	2			; match?
 11077	070321	254 00 0 00 070314 		JRST	PSTAT1			; no - keep looking
 11078	070322	550 01 0 01 000000 		HRRZ	1,(1)			; get address of text to print
 11079	070323	256 00 0 01 000000 		XCT	(1)			; print it
 11080	070324	254 00 0 00 070330 		JRST	PSTATX			; exit
 11081
 11082					; Not recognized
 11083
 11084	070325	037 00 0 00 132246 	PSTAT2:	TMSG	< ? Invalid error code - >
 11085	070326	200 00 0 00 000002 		MOVE	2
 11086	070327	037 16 0 00 000003 		PNTOCS
 11087
 11088					; Exit
 11089
 11090	070330	262 17 0 00 000003 	PSTATX:	RGET	(3,2,1,0)		; done - restore AC's
 11091
 11092	070334	263 17 0 00 000000 		RTN				;  and return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 254
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0425

 11093
 11094					; Status error table
 11095
 11096	070335	000000	132260		STATAB:	0,,[TMSG <Excessive collisions>]
 11097	070336	000001	132266			1,,[TMSG <Carrier check failed>]
 11098	070337	000002	132275			2,,[TMSG <Collision detect check failed>]
 11099	070340	000003	132301			3,,[TMSG <Short circuit>]
 11100	070341	000004	132305			4,,[TMSG <Open circuit>]
 11101	070342	000005	132311			5,,[TMSG <Frame too long>]
 11102	070343	000006	132323			6,,[TMSG <Remove failure to deter (late collision)>]
 11103	070344	000007	132332			7,,[TMSG <Block check error (CRC error)>]
 11104	070345	000010	132336			10,,[TMSG <Framing error>]
 11105	070346	000011	132342			11,,[TMSG <Data overrun>]
 11106	070347	000012	132351			12,,[TMSG <Unrecognized protocol type>]
 11107	070350	000013	132356			13,,[TMSG <Frame too short>]
 11108
 11109	070351	000031	132364			31,,[TMSG <Queue length violation>]
 11110	070352	000032	132372			32,,[TMSG <Illegal PLI function>]
 11111	070353	000033	132400			33,,[TMSG <Unrecognized command>]
 11112	070354	000034	132406			34,,[TMSG <Buffer length violation>]
 11113	070355	000035	132413			35,,[TMSG <Free buffer list PE>]
 11114	070356	000036	132420			36,,[TMSG <Transmit buffer PE>]
 11115	070357	777777	777777			-1
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 255
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0426

 11116
 11117					;#********************************************************************
 11118					;* PFLAGS - Print flags field (AC1 contains status byte (right justified))
 11119					;#********************************************************************
 11120
 11121	070360	261 17 0 00 000000 	PFLAGS:	RPUT	(0,1,2,3)		; save AC's
 11122
 11123	070364	200 01 0 12 000003 		MOVE	1,3(PK)			; get word
 11124	070365	135 01 0 00 132234 		LDB	1,[POINT 8,1,15]	; get flags byte
 11125	070366	037 00 0 00 132421 		TMSGC	<   Flags  >
 11126	070367	200 00 0 00 000001 		MOVE	1			; get octal
 11127	070370	037 03 0 00 000000 		PNT3
 11128	070371	037 00 0 00 126465 		TMSG	<= >
 11129	070372	200 01 0 12 000003 		MOVE	1,3(PK)			; get word
 11130	070373	135 00 0 00 131351 		LDB	[POINT 8,1,23]		; get op code
 11131	070374	135 01 0 00 132234 		LDB	1,[POINT 8,1,15]	; get flags byte
 11132	070375	302 00 0 00 000001 		CAIE	DGSNT			; datagram sent or
 11133	070376	306 00 0 00 000005 		CAIN	DGRCV			;   received?
 11134	070377	334 00 0 00 000000 		SKIPA				; yes - continue
 11135	070400	254 00 0 00 070416 		JRST	PFLAG0			; no - just print response bit
 11136
 11137					; Datagram
 11138
 11139	070401	135 02 0 00 132424 		LDB	2,[POINT 1,1,28]	; get bits
 11140						XCT	[TMSG	<COMPAT mode>	; print
 11141	070402	256 00 0 02 132433 			 TMSG	<HIDEN mode>](2)
 11142	070403	037 00 0 00 132435 		TMSG	<, ICRC=>		; print 'include CRC' flag
 11143	070404	135 00 0 00 132437 		LDB	[POINT 1,1,29]
 11144	070405	037 16 0 00 000003 		PNTOCS
 11145	070406	037 00 0 00 132440 		TMSG	<, PAD=>		; print 'PAD' flag
 11146	070407	135 00 0 00 132442 		LDB	[POINT 1,1,30]
 11147	070410	037 16 0 00 000003 		PNTOCS
 11148	070411	037 00 0 00 132443 		TMSG	<, BSD=>		; print 'BSD' flag
 11149	070412	135 00 0 00 132445 		LDB	[POINT 1,1,32]
 11150	070413	037 16 0 00 000003 		PNTOCS
 11151	070414	037 00 0 00 132446 		TMSG	<,  >
 11152	070415	254 00 0 00 070421 		JRST	PFLAG1
 11153
 11154					; Non-datagram
 11155
 11156	070416	037 00 0 00 132447 	PFLAG0:	TMSG	<ClrCntr=>
 11157	070417	135 02 0 00 132074 		LDB	2,[POINT 1,1,34] 	; get bits
 11158						XCT	[TMSG	<No,  >		; print
 11159	070420	256 00 0 02 132455 			 TMSG	<Yes,  >](2)
 11160
 11161					; Common to either datagram or non-datagram
 11162
 11163	070421	037 00 0 00 132457 	PFLAG1:	TMSG	<Rsp requested=>
 11164	070422	135 02 0 00 132101 		LDB	2,[POINT 1,1,35] 	; get bits
 11165						XCT	[TMSG	<No>		; print
 11166	070423	256 00 0 02 132464 			 TMSG	<Yes>](2)
 11167	070424	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
 11168
 11169	070430	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 256
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0427

 11170
 11171					;#********************************************************************
 11172					;* PTEXT - Print text data in a datagram
 11173					;
 11174					; AC1 - Contains text address
 11175					; AC2 - Contains text length (in bytes)
 11176					; AC4 - Contains packing mode 0-COMPAT / 1-HIDEN
 11177					;#********************************************************************
 11178
 11179	070431	200 03 0 00 132466 	PTEXT:	MOVE	3,[POINT 8,0]		; get initial byte pointer
 11180	070432	434 03 0 00 000001 		IOR	3,1			; include in byte pointer
 11181	070433	200 00 0 00 033706 		MOVE	DSPRIN			; get max length to print
 11182	070434	242 00 0 00 000002 		LSH	2			; calculate max bytes
 11183	070435	315 00 0 00 000002 		CAMGE	2			; exceed maximum?
 11184	070436	200 02 0 00 000000 		MOVE	2,0			; yes - limit to maximum
 11185	070437	326 04 0 00 070452 		JUMPN	4,PTEXT1		; HIDEN mode? yes - go handle
 11186
 11187					; COMPAT mode
 11188	
 11189	070440	037 00 0 00 132467 	PTEXT0:	TMSGC	< Text:  +0/ >
 11190	070441	400 01 0 00 000000 		SETZ	1,			; clear byte count
 11191	070442	134 00 0 00 000003 		ILDB	3			; get byte to print
 11192	070443	037 03 0 00 000000 		PNT3				; print it
 11193	070444	350 00 0 00 000001 		AOS	1			; increment byte count
 11194	070445	367 02 0 00 070447 		SOJG	2,.+2			; done yet? no - continue
 11195	070446	263 17 0 00 000000 		RTN				; yes - return
 11196	070447	606 01 0 00 000007 		TRNN	1,7			; end of line?
 11197						GO	[TMSGC	<        +>	; yes - start a new line
 11198							 MOVE	1
 11199							 LSH	-2
 11200							 PNTOCS
 11201							 TMSG	</ >
 11202	070450	260 17 0 00 132475 			 RTN]
 11203	070451	254 00 0 00 070442 		JRST	PTEXT0+2		; loop till done
 11204
 11205					; HIDEN mode
 11206
 11207	070452	037 00 0 00 132467 	PTEXT1:	TMSGC	< Text:  +0/ >
 11208	070453	402 00 0 00 134257'		SETZM	WORCNT#			; clear word count
 11209	070454	201 00 0 00 000011 	PTEXT2:	MOVEI	9			; get bytes per line
 11210	070455	202 00 0 00 134167'		MOVEM	LINCNT#			; set up byte count
 11211	070456	120 03 0 01 000000 		DMOVE	3,(1)			; get 2 words to print
 11212	070457	135 00 0 00 132503 	PTEXT3:	LDB	[POINT 8,3,7]		; get byte to print
 11213	070460	037 03 0 00 000000 		PNT3				; print it
 11214	070461	246 03 0 00 000010 		LSHC	3,8			; left shift 8 bits
 11215	070462	363 02 0 00 117037 		SOJLE	2,[RTN]			; byte count exhausted? yes - exit
 11216	070463	373 00 0 00 134167'		SOSLE	LINCNT			; line byte count exhausted?
 11217	070464	254 00 0 00 070457 		JRST	PTEXT3			; no - loop till done
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 257
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0428

 11218	070465	037 00 0 00 132472 		TMSGC	<        +>		; print new line
 11219	070466	350 00 0 00 134257'		AOS	WORCNT			; increment word count
 11220	070467	350 00 0 00 134257'		AOS	WORCNT			; increment word count
 11221	070470	200 00 0 00 134257'		MOVE	WORCNT			; get word count
 11222	070471	037 16 0 00 000003 		PNTOCS				; print it
 11223	070472	037 00 0 00 124736 		TMSG	</ >
 11224	070473	271 01 0 00 000002 		ADDI	1,2			; increment word address
 11225	070474	254 00 0 00 070454 		JRST	PTEXT2			; keep looping
 11226
 11227
 11228					;#********************************************************************
 11229					;* PBSD - Print BSD segment
 11230					;
 11231					; AC1 - Contains segment number
 11232					; AC3 - Contains address of start of segment
 11233					;#********************************************************************
 11234
 11235	070475	261 17 0 00 000000 	PBSD:	RPUT	(0,1,2,3,4)		; save AC's
 11236
 11237	070502	037 00 0 00 132504 		TMSGC	< Segment #>
 11238	070503	200 00 0 00 000001 		MOVE	1
 11239	070504	037 16 0 00 000003 		PNTOCS
 11240	070505	037 00 0 00 131412 		TMSG	<:  >
 11241	070506	200 02 0 03 000000 		MOVE	2,(3)			; get first word
 11242	070507	135 04 0 00 132507 		LDB	4,[POINT 1,2,6]		; get packing mode
 11243						XCT	[TMSG	<COMPAT>	; print it
 11244	070510	256 00 0 04 132514 			 TMSG	<HIDEN>](4)
 11245	070511	037 00 0 00 132516 		TMSG	<, BaseAdr = >
 11246	070512	135 01 0 00 130520 		LDB	1,[POINT 24,2,35]	; get address
 11247	070513	260 17 0 00 070537 		GO	LINKP			; print it
 11248	070514	037 00 0 00 132521 		TMSG	<, NextAdr = >
 11249	070515	200 01 0 03 000001 		MOVE	1,1(3)			; get 2nd word
 11250	070516	260 17 0 00 070544 		GO	LINKV			; print it
 11251	070517	037 00 0 00 132524 		TMSG	<, Length = >
 11252	070520	200 00 0 03 000002 		MOVE	2(3)			; get length
 11253	070521	037 15 0 00 000000 		PNTDEC				; print it
 11254	070522	037 00 0 00 131377 		TMSG	<. (bytes)>
 11255	070523	135 01 0 00 130520 		LDB	1,[POINT 24,2,35]	; get address
 11256	070524	260 17 0 00 066652 		GO	CONVIR			; convert to virtual
 11257	070525	306 13 0 00 000001 		CAIN	Q,1			; response queue?
 11258	070526	201 01 0 00 073020 		MOVEI	1,RSPONS+20		; yes - use different address
 11259	070527	200 02 0 03 000002 		MOVE	2,2(3)			; get length	
 11260	070530	260 17 0 00 070431 		GO	PTEXT			; print text data
 11261	070531	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
 11262
 11263	070536	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 258
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0429

 11264
 11265					;#********************************************************************
 11266					;* LINKP - Print FLINK/BLINK data in symbolic format
 11267					;
 11268					; Given:  AC1 - Contains the LINK data (physical address)
 11269					;#********************************************************************
 11270
 11271	070537	261 17 0 00 000000 	LINKP:	RPUT	(0,1,2)			; save AC's
 11272
 11273	070542	260 17 0 00 066652 		GO	CONVIR			; convert to virtual address
 11274	070543	254 00 0 00 070547 		PJRST	LINKG			; continue
 11275
 11276
 11277					;#********************************************************************
 11278					;* LINKV - Print FLINK/BLINK data in symbolic format
 11279					;
 11280					; Given:  AC1 - Contains the LINK data (virtual address)
 11281					;#********************************************************************
 11282
 11283	070544	261 17 0 00 000000 	LINKV:	RPUT	(0,1,2)			; save AC's
 11284
 11285	070547	200 00 0 00 000001 	LINKG:	MOVE	1			; get into AC0
 11286	070550	201 02 0 00 070567 		MOVEI	2,LINTAB		; get table address
 11287	070551	554 01 0 02 000000 	LINKV0:	HLRZ	1,(2)			; get virtual address
 11288	070552	322 01 0 00 070557 		JUMPE	1,LINKV1		; not found? yes - go print octal
 11289	070553	316 00 0 00 000001 		CAMN	1			; correct one?
 11290	070554	254 00 0 00 070561 		JRST	LINKV2			; yes - continue
 11291	070555	350 00 0 00 000002 		AOS	2			; point to next address
 11292	070556	254 00 0 00 070551 		JRST	LINKV0	
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 259
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0430

 11293
 11294	070557	037 16 0 00 000003 	LINKV1:	PNTOCS				; print it
 11295	070560	254 00 0 00 070563 		JRST	LINKVX			; exit
 11296
 11297	070561	550 02 0 02 000000 	LINKV2:	HRRZ	2,(2)			; get address
 11298	070562	256 00 0 02 000000 		XCT	(2)			; print text
 11299
 11300	070563	262 17 0 00 000002 	LINKVX:	RGET	(2,1,0)			; restore AC's
 11301
 11302	070566	263 17 0 00 000000 		RTN				; return
 11303
 11304					; Virtual address translation table
 11305
 11306	070567	072000	132531		LINTAB:	   PCB,,[TMSG <PCB   >]
 11307	070570	072001	132534			 PCB+1,,[TMSG <PCB+1 >]
 11308	070571	072004	132537			 PCB+4,,[TMSG <PCB+4 >]
 11309	070572	072005	132542			 PCB+5,,[TMSG <PCB+5 >]
 11310	070573	072010	132545			PCB+10,,[TMSG <PCB+10>]
 11311	070574	072011	132550			PCB+11,,[TMSG <PCB+11>]
 11312	070575	072031	132553			PCB+31,,[TMSG <PCB+31>]
 11313	070576	105000	132556			PTABLE,,[TMSG <PTABLE>]
 11314	070577	115320	132561			MTABLE,,[TMSG <MTABLE>]
 11315	070600	105070	132564			 PTTFQ,,[TMSG <PTTFQ >]
 11316	070601	105071	132567		       PTTFQ+1,,[TMSG <PTTFQ+1>]
 11317	070602	105074	132572			 PTTF0,,[TMSG <PTTF0 >]
 11318	070603	106000	132575			 PTTF1,,[TMSG <PTTF1 >]
 11319	070604	106310	132600			 PTTF2,,[TMSG <PTTF2 >]
 11320	070605	107000	132603			 PTTF3,,[TMSG <PTTF3 >]
 11321	070606	107310	132606			 PTTF4,,[TMSG <PTTF4 >]
 11322	070607	110000	132611			 PTTF5,,[TMSG <PTTF5 >]
 11323	070610	110310	132614			 PTTF6,,[TMSG <PTTF6 >]
 11324	070611	111000	132617			 PTTF7,,[TMSG <PTTF7 >]
 11325	070612	111310	132622			 PTTF10,,[TMSG <PTTF10>]
 11326	070613	112000	132625			 PTTF11,,[TMSG <PTTF11>]
 11327	070614	112310	132630			 PTTF12,,[TMSG <PTTF12>]
 11328	070615	113000	132633			 PTTF13,,[TMSG <PTTF13>]
 11329	070616	113310	132636			 PTTF14,,[TMSG <PTTF14>]
 11330	070617	114000	132641			 PTTF15,,[TMSG <PTTF15>]
 11331	070620	114310	132644			 PTTF16,,[TMSG <PTTF16>]
 11332	070621	115000	132647			 PTTF17,,[TMSG <PTTF17>]
 11333	070622	075000	132652			QUNKF0,,[TMSG <QUNKF0>]
 11334	070623	076000	132655			QUNKF1,,[TMSG <QUNKF1>]
 11335	070624	077000	132660			QUNKF2,,[TMSG <QUNKF2>]
 11336	070625	100000	132663			QUNKF3,,[TMSG <QUNKF3>]
 11337	070626	101000	132666			QUNKF4,,[TMSG <QUNKF4>]
 11338	070627	102000	132671			QUNKF5,,[TMSG <QUNKF5>]
 11339	070630	103000	132674			QUNKF6,,[TMSG <QUNKF6>]
 11340	070631	104000	132677			QUNKF7,,[TMSG <QUNKF7>]
 11341	070632	072114	132702			PACKET,,[TMSG <PACKET>]
 11342	070633	072127	132705			PACKET+13,,[TMSG <PACKET+13>]
 11343	070634	072130	132710			PACKET+14,,[TMSG <PACKET+14>]
 11344	070635	072134	132713			PACKET+20,,[TMSG <PACKET+20>]
 11345
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 260
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0431

 11346	070636	105107	132716			 PTTF0+13,,[TMSG <PTTF0+13 >]
 11347	070637	106013	132721			 PTTF1+13,,[TMSG <PTTF1+13 >]
 11348	070640	106323	132724			 PTTF2+13,,[TMSG <PTTF2+13 >]
 11349	070641	107013	132727			 PTTF3+13,,[TMSG <PTTF3+13 >]
 11350	070642	107323	132732			 PTTF4+13,,[TMSG <PTTF4+13 >]
 11351	070643	110013	132735			 PTTF5+13,,[TMSG <PTTF5+13 >]
 11352	070644	110323	132740			 PTTF6+13,,[TMSG <PTTF6+13 >]
 11353	070645	111013	132743			 PTTF7+13,,[TMSG <PTTF7+13 >]
 11354	070646	111323	132746			 PTTF10+13,,[TMSG <PTTF10+13>]
 11355	070647	112013	132751			 PTTF11+13,,[TMSG <PTTF11+13>]
 11356	070650	112323	132754			 PTTF12+13,,[TMSG <PTTF12+13>]
 11357	070651	113013	132757			 PTTF13+13,,[TMSG <PTTF13+13>]
 11358	070652	113323	132762			 PTTF14+13,,[TMSG <PTTF14+13>]
 11359	070653	114013	132765			 PTTF15+13,,[TMSG <PTTF15+13>]
 11360	070654	114323	132770			 PTTF16+13,,[TMSG <PTTF16+13>]
 11361	070655	115013	132773			 PTTF17+13,,[TMSG <PTTF17+13>]
 11362	070656	075013	132776			QUNKF0+13,,[TMSG <QUNKF0+13>]
 11363	070657	076013	133001			QUNKF1+13,,[TMSG <QUNKF1+13>]
 11364	070660	077013	133004			QUNKF2+13,,[TMSG <QUNKF2+13>]
 11365	070661	100013	133007			QUNKF3+13,,[TMSG <QUNKF3+13>]
 11366	070662	101013	133012			QUNKF4+13,,[TMSG <QUNKF4+13>]
 11367	070663	102013	133015			QUNKF5+13,,[TMSG <QUNKF5+13>]
 11368	070664	103013	133020			QUNKF6+13,,[TMSG <QUNKF6+13>]
 11369	070665	104013	133023			QUNKF7+13,,[TMSG <QUNKF7+13>]
 11370
 11371	070666	105110	133026			 PTTF0+14,,[TMSG <PTTF0+14 >]
 11372	070667	106014	133031			 PTTF1+14,,[TMSG <PTTF1+14 >]
 11373	070670	106324	133034			 PTTF2+14,,[TMSG <PTTF2+14 >]
 11374	070671	107014	133037			 PTTF3+14,,[TMSG <PTTF3+14 >]
 11375	070672	107324	133042			 PTTF4+14,,[TMSG <PTTF4+14 >]
 11376	070673	110014	133045			 PTTF5+14,,[TMSG <PTTF5+14 >]
 11377	070674	110324	133050			 PTTF6+14,,[TMSG <PTTF6+14 >]
 11378	070675	111014	133053			 PTTF7+14,,[TMSG <PTTF7+14 >]
 11379	070676	111324	133056			 PTTF10+14,,[TMSG <PTTF10+14>]
 11380	070677	112014	133061			 PTTF11+14,,[TMSG <PTTF11+14>]
 11381	070700	112324	133064			 PTTF12+14,,[TMSG <PTTF12+14>]
 11382	070701	113014	133067			 PTTF13+14,,[TMSG <PTTF13+14>]
 11383	070702	113324	133072			 PTTF14+14,,[TMSG <PTTF14+14>]
 11384	070703	114014	133075			 PTTF15+14,,[TMSG <PTTF15+14>]
 11385	070704	114324	133100			 PTTF16+14,,[TMSG <PTTF16+14>]
 11386	070705	115014	133103			 PTTF17+14,,[TMSG <PTTF17+14>]
 11387	070706	075014	133106			QUNKF0+14,,[TMSG <QUNKF0+14>]
 11388	070707	076014	133111			QUNKF1+14,,[TMSG <QUNKF1+14>]
 11389	070710	077014	133114			QUNKF2+14,,[TMSG <QUNKF2+14>]
 11390	070711	100014	133117			QUNKF3+14,,[TMSG <QUNKF3+14>]
 11391	070712	101014	133122			QUNKF4+14,,[TMSG <QUNKF4+14>]
 11392	070713	102014	133125			QUNKF5+14,,[TMSG <QUNKF5+14>]
 11393	070714	103014	133130			QUNKF6+14,,[TMSG <QUNKF6+14>]
 11394	070715	104014	133133			QUNKF7+14,,[TMSG <QUNKF7+14>]
 11395
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 261
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0432

 11396	070716	105114	133136			 PTTF0+20,,[TMSG <PTTF0+20 >]
 11397	070717	106020	133141			 PTTF1+20,,[TMSG <PTTF1+20 >]
 11398	070720	106330	133144			 PTTF2+20,,[TMSG <PTTF2+20 >]
 11399	070721	107020	133147			 PTTF3+20,,[TMSG <PTTF3+20 >]
 11400	070722	107330	133152			 PTTF4+20,,[TMSG <PTTF4+20 >]
 11401	070723	110020	133155			 PTTF5+20,,[TMSG <PTTF5+20 >]
 11402	070724	110330	133160			 PTTF6+20,,[TMSG <PTTF6+20 >]
 11403	070725	111020	133163			 PTTF7+20,,[TMSG <PTTF7+20 >]
 11404	070726	111330	133166			 PTTF10+20,,[TMSG <PTTF10+20>]
 11405	070727	112020	133171			 PTTF11+20,,[TMSG <PTTF11+20>]
 11406	070730	112330	133174			 PTTF12+20,,[TMSG <PTTF12+20>]
 11407	070731	113020	133177			 PTTF13+20,,[TMSG <PTTF13+20>]
 11408	070732	113330	133202			 PTTF14+20,,[TMSG <PTTF14+20>]
 11409	070733	114020	133205			 PTTF15+20,,[TMSG <PTTF15+20>]
 11410	070734	114330	133210			 PTTF16+20,,[TMSG <PTTF16+20>]
 11411	070735	115020	133213			 PTTF17+20,,[TMSG <PTTF17+20>]
 11412	070736	075020	133216			QUNKF0+20,,[TMSG <QUNKF0+20>]
 11413	070737	076020	133221			QUNKF1+20,,[TMSG <QUNKF1+20>]
 11414	070740	077020	133224			QUNKF2+20,,[TMSG <QUNKF2+20>]
 11415	070741	100020	133227			QUNKF3+20,,[TMSG <QUNKF3+20>]
 11416	070742	101020	133232			QUNKF4+20,,[TMSG <QUNKF4+20>]
 11417	070743	102020	133235			QUNKF5+20,,[TMSG <QUNKF5+20>]
 11418	070744	103020	133240			QUNKF6+20,,[TMSG <QUNKF6+20>]
 11419	070745	104020	133243			QUNKF7+20,,[TMSG <QUNKF7+20>]
 11420	070746	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 262
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0433

 11421
 11422					;#********************************************************************
 11423					;* PPCB - Print current data in the PCB
 11424					;
 11425					; Addresses are printed are symbolic.
 11426					;#********************************************************************
 11427
 11428	070747	261 17 0 00 000000 	PPCB:	RPUT	(0,1,2,3,4)		; save AC's
 11429
 11430	070754	037 00 0 00 133244 		TMSGC	<PCB:>
 11431	070755	037 00 0 00 133246 		TMSGC	< PCB Base Addr:>
 11432	070756	200 01 0 00 072024 		MOVE	1,PCB+^D20		; get address
 11433	070757	260 17 0 00 066652 		GO	CONVIR			; convert to virtual
 11434	070760	001 07 0 00 000001 		PNTOCC	7,1			; print it
 11435	070761	037 00 0 00 133252 		TMSGC	< PI Level:  >
 11436	070762	001 12 0 00 072025 		PNTOCC	12,PCB+^D21		; print PI level
 11437	070763	037 00 0 00 133255 		TMSGC	< Int Vector:>
 11438	070764	001 12 0 00 072026 		PNTOCC	12,PCB+^D22		; print int vector assignment
 11439	070765	037 00 0 00 133260 		TMSGC	< CCW:    >
 11440	070766	200 00 0 00 072027 		MOVE	PCB+^D23		; get CCW
 11441	070767	037 13 0 00 000000 		PNTHW				; print it
 11442	070770	037 00 0 00 133263 		TMSGC	< Counters Address: >
 11443	070771	200 01 0 00 072030 		MOVE	1,PCB+^D24		; get counters address
 11444	070772	260 17 0 00 066652 		GO	CONVIR			; convert to virtual
 11445	070773	001 11 0 00 000001 		PNTOCC	11,1			; print it
 11446	070774	037 00 0 00 133270 		TMSGC	< --------------->
 11447	070775	037 00 0 00 133274 		TMSGC	< PTT Address:>
 11448	070776	200 01 0 00 072015 		MOVE	1,PCB+^D13		; get address
 11449	070777	260 17 0 00 066652 		GO	CONVIR			; convert to virtual
 11450	071000	001 11 0 00 000001 		PNTOCC	11,1			; print it
 11451	071001	037 00 0 00 133300 		TMSGC	< MCT Address:>
 11452	071002	200 01 0 00 072016 		MOVE	1,PCB+^D14		; get address
 11453	071003	260 17 0 00 066652 		GO	CONVIR			; convert to virtual
 11454	071004	001 11 0 00 000001 		PNTOCC	11,1			; print it
 11455	071005	037 00 0 00 133270 		TMSGC	< --------------->
 11456	071006	037 00 0 00 133304 		TMSGC	< Logout 0:  >
 11457	071007	200 00 0 00 072020 		MOVE	PCB+^D16
 11458	071010	037 13 0 00 000000 		PNTHW
 11459	071011	037 00 0 00 133307 		TMSGC	< Logout 1:  >
 11460	071012	200 00 0 00 072021 		MOVE	PCB+^D17
 11461	071013	037 13 0 00 000000 		PNTHW
 11462	071014	037 00 0 00 133312 		TMSGC	< Logout 2:  >
 11463	071015	200 00 0 00 072022 		MOVE	PCB+^D18
 11464	071016	037 13 0 00 000000 		PNTHW
 11465	071017	037 00 0 00 133315 		TMSGC	< Logout 3:  >
 11466	071020	200 00 0 00 072023 		MOVE	PCB+^D19
 11467	071021	037 13 0 00 000000 		PNTHW
 11468	071022	037 00 0 00 133270 		TMSGC	< --------------->
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 263
DFNIA1	MAC	18-Feb-84 20:30		Queue Print Routines                                                               SEQ 0434

 11469
 11470					; Print queues
 11471
 11472	071023	037 00 0 00 133320 	PPCBD:	TMSGC	< # Queue  PCB Addr  Interlock  Flink  Blink>
 11473	071024	037 00 0 00 133332 		TMSGC	< - -----  --------  ---------  -----  ----->
 11474	071025	400 04 0 00 000000 		SETZ	4,			; initialize pointer into PCB
 11475	071026	400 03 0 00 000000 		SETZ	3,			; initialize queue number
 11476	071027	037 00 0 00 125342 	PPCB0:	TMSGC	< >			; start a new line
 11477	071030	200 00 0 00 000003 		MOVE	3			; get queue number
 11478	071031	037 16 0 00 000003 		PNTOCS				; print it
 11479	071032	037 00 0 00 117042 		TMSG	< >
 11480						XCT	[TMSG	<CmdQ >		; print type of queue
 11481							 TMSG	<RspQ >
 11482	071033	256 00 0 03 133352 			 TMSG	<UnkFQ>](3)
 11483	071034	037 00 0 00 133355 		TMSG	<   PCB+>
 11484	071035	001 02 0 00 000004 		PNTOCC	2,4			; print PCB offset
 11485	071036	001 11 0 04 072000 		PNTOCC	11,PCB(4)		; print interlock
 11486	071037	037 00 0 00 125215 		TMSG	<     >
 11487	071040	200 01 0 04 072001 		MOVE	1,PCB+1(4)		; get flink
 11488	071041	260 17 0 00 070537 		GO	LINKP			; print it
 11489	071042	037 00 0 00 127515 		TMSG	<  >
 11490	071043	200 01 0 04 072002 		MOVE	1,PCB+2(4)		; get flink
 11491	071044	260 17 0 00 070537 		GO	LINKP			; print it
 11492	071045	271 04 0 00 000004 		ADDI	4,4			; point to next queue location
 11493	071046	350 00 0 00 000003 		AOS	3			; point to next queue number
 11494	071047	305 03 0 00 000003 		CAIGE	3,3			; done yet?
 11495	071050	254 00 0 00 071027 		JRST	PPCB0			; no - loop till done
 11496	071051	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
 11497
 11498	071056	263 17 0 00 000000 		RTN				; return
 11499
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 264
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0435

 11500						SUBTTL	Port Control Block and Data Areas
 11501
 11502					;#********************************************************************
 11503					;* IPCB - PCB initial data
 11504					;#********************************************************************
 11505
 11506	071057	777777	777777		IPCB:	-1				; PCB+0
 11507	071060	000000	072001			PCB+1				; ..  1
 11508	071061	000000	072001			PCB+1				; ..  2
 11509	071062	000000	000000			0				; ..  3
 11510
 11511	071063	777777	777777			-1				; ..  4
 11512	071064	000000	072005			PCB+5				; ..  5
 11513	071065	000000	072005			PCB+5				; ..  6
 11514	071066	000000	000000			0				; ..  7
 11515
 11516	071067	777777	777777			-1				; .. 10
 11517	071070	000000	075000			QUNKF0				; .. 11
 11518	071071	000000	104000			QUNKF7				; .. 12
 11519	071072	000000	000605			^D400-13			; .. 13
 11520	071073	000000	000000			0				; .. 14
 11521
 11522	071074	000000	105000			PTABLE				; .. 15
 11523	071075	000000	115320			MTABLE				; .. 16
 11524	071076	000000	000000			0				; .. 17
 11525
 11526	071077	000000	000000			0				; .. 20
 11527	071100	000000	000000			0				; .. 21
 11528	071101	000000	000000			0				; .. 22
 11529	071102	000000	000000			0				; .. 23
 11530
 11531	071103	000000	072000			PCB				; .. 24
 11532	071104	000000	000004			4				; .. 25
 11533	071105	000000	000000			0				; .. 26
 11534	071106	000000	000000			0				; .. 27
 11535	071107	000000	072031			PCB+31				; .. 30
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 265
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0436

 11536
 11537					;#********************************************************************
 11538					;* IPTAB - PTABLE initial data
 11539					;#********************************************************************
 11540
 11541	071110	000000	000000		IPTAB:	EXP	0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17
 11542	071111	000000	000001
 11543	071112	000000	000002
 11544	071113	000000	000003
 11545	071114	000000	000004
 11546	071115	000000	000005
 11547	071116	000000	000006
 11548	071117	000000	000007
 11549	071120	000000	000010
 11550	071121	000000	000011
 11551	071122	000000	000012
 11552	071123	000000	000013
 11553	071124	000000	000014
 11554	071125	000000	000015
 11555	071126	000000	000016
 11556	071127	000000	000017
 11557
 11558
 11559					;#********************************************************************
 11560					;* IMTAB - MTABLE initial data
 11561					;#********************************************************************
 11562
 11563	071130	000000	000060		IMTAB:	EXP	1B30!1B31,1B0		; 0
 11564	071131	400000	000000
 11565	071132	000000	000120			EXP	2B30!1B31,1B0		; 1
 11566	071133	400000	000000
 11567	071134	000000	000160			EXP	3B30!1B31,1B0		; 2
 11568	071135	400000	000000
 11569	071136	000000	000220			EXP	4B30!1B31,1B0		; 3
 11570	071137	400000	000000
 11571	071140	000000	000260			EXP	5B30!1B31,1B0		; 4
 11572	071141	400000	000000
 11573	071142	000000	000320			EXP	6B30!1B31,1B0		; 5
 11574	071143	400000	000000
 11575	071144	000000	000360			EXP	7B30!1B31,1B0		; 6
 11576	071145	400000	000000
 11577	071146	000000	000420			EXP	10B30!1B31,1B0		; 7
 11578	071147	400000	000000
 11579	071150	000000	000460			EXP	11B30!1B31,1B0		; 10
 11580	071151	400000	000000
 11581	071152	000000	000520			EXP	12B30!1B31,1B0		; 11
 11582	071153	400000	000000
 11583	071154	000000	000560			EXP	13B30!1B31,1B0		; 12
 11584	071155	400000	000000
 11585	071156	000000	000620			EXP	14B30!1B31,1B0		; 13
 11586	071157	400000	000000
 11587	071160	000000	000660			EXP	15B30!1B31,1B0		; 14
 11588	071161	400000	000000
 11589	071162	000000	000720			EXP	16B30!1B31,1B0		; 15
 11590	071163	400000	000000
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 265-1
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0437

 11591	071164	000000	000760			EXP	17B30!1B31,1B0		; 16
 11592	071165	400000	000000
 11593	071166	000000	001020			EXP	20B30!1B31,1B0		; 17
 11594	071167	400000	000000
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 266
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0438

 11595
 11596					;#********************************************************************
 11597					;* PCB - Port Control Block
 11598					;#********************************************************************
 11599
 11600	072000				LOC	<.+1000>&777000			; align to a page boundary
 11601
 11602	072000	777777	777777		PCB:	-1				; INTLK for Cmd Queue
 11603	072001	000000	072001			PCB+1				; FLINK
 11604	072002	000000	072001			PCB+1				; BLINK
 11605	072003	000000	000000			0				; reserved
 11606
 11607	072004	777777	777777			-1				; INTLK for Rsp Queue
 11608	072005	000000	072005			PCB+5				; FLINK
 11609	072006	000000	072005			PCB+5				; BLINK
 11610	072007	000000	000000			0				; reserved
 11611
 11612	072010	777777	777777			-1				; INTLK for Unknown Protocol Free Queue
 11613	072011	000000	075000			QUNKF0				; FLINK
 11614	072012	000000	104000			QUNKF7				; BLINK
 11615	072013	000000	000620			^D400				; entry length
 11616	072014	000000	000000			0				; reserved
 11617
 11618	072015	000000	105000			PTABLE				; Protocol Type Table address
 11619	072016	000000	115320			MTABLE				; Multi-cast Address Table address
 11620	072017	000000	000000			0				; reserved
 11621
 11622	072020	000000	000000			0				; Error logout 0
 11623	072021	000000	000000			0				; Error logout 1
 11624	072022	000000	000000			0				; Error logout 2
 11625	072023	000000	000000			0				; Error logout 3
 11626
 11627	072024	000000	072000			PCB				; PCB base address
 11628	072025	000000	000004			4				; PIA interrupt level
 11629	072026	000000	000000			0				; interrupt vector
 11630	072027	000000	000000			0				; CCW command word
 11631	072030	000000	072031			PCB+31				; reserved to port
 11632	072031					BLOCK	^D50			; 50 words for counters
 11633
 11634					; Data areas
 11635
 11636	072114				LOC	<.+4>&777774			; align to 4 word boundary
 11637
 11638	072114				PACKET:	BLOCK	^D400			; packet being built
 11639
 11640	073000				LOC	<.+1000>&777000			; align to a page boundary
 11641
 11642	073000				RSPONS:	BLOCK	^D400			; response packet
 11643	073620				SAVPKT:	BLOCK	^D400			; saved packet data
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 267
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0439

 11644
 11645					;#********************************************************************
 11646					;* Command/Unknown protocol queues
 11647					;#********************************************************************
 11648
 11649	075000				LOC	<.+1000>&777000			; align to a page boundary
 11650
 11651					; Unknown protocol type free queue
 11652
 11653	075000				UNKBEG:
 11654	075000	000000	076000		QUNKF0:	QUNKF1				; FLINK
 11655	075001	000000	072011			PCB+11				; BLINK
 11656	075002					BLOCK	^D398			; remainder of entry
 11657
 11658	076000				LOC	<.+1000>&777000			; align to a page boundary
 11659
 11660	076000	000000	077000		QUNKF1:	QUNKF2				; FLINK
 11661	076001	000000	075000			QUNKF0				; BLINK
 11662	076002					BLOCK	^D398			; remainder of entry
 11663
 11664	077000				LOC	<.+1000>&777000			; align to a page boundary
 11665
 11666	077000	000000	100000		QUNKF2:	QUNKF3				; FLINK
 11667	077001	000000	076000			QUNKF1				; BLINK
 11668	077002					BLOCK	^D398			; remainder of entry
 11669
 11670	100000				LOC	<.+1000>&777000			; align to a page boundary
 11671
 11672	100000	000000	101000		QUNKF3:	QUNKF4				; FLINK
 11673	100001	000000	077000			QUNKF2				; BLINK
 11674	100002					BLOCK	^D398			; remainder of entry
 11675
 11676	101000				LOC	<.+1000>&777000			; align to a page boundary
 11677
 11678	101000	000000	102000		QUNKF4:	QUNKF5				; FLINK
 11679	101001	000000	100000			QUNKF3				; BLINK
 11680	101002					BLOCK	^D398			; remainder of entry
 11681
 11682	102000				LOC	<.+1000>&777000			; align to a page boundary
 11683
 11684	102000	000000	103000		QUNKF5:	QUNKF6				; FLINK
 11685	102001	000000	101000			QUNKF4				; BLINK
 11686	102002					BLOCK	^D398			; remainder of entry
 11687
 11688	103000				LOC	<.+1000>&777000			; align to a page boundary
 11689
 11690	103000	000000	104000		QUNKF6:	QUNKF7				; FLINK
 11691	103001	000000	102000			QUNKF5				; BLINK
 11692	103002					BLOCK	^D398			; remainder of entry
 11693
 11694	104000				LOC	<.+1000>&777000			; align to a page boundary
 11695
 11696	104000	000000	072011		QUNKF7:	PCB+11				; FLINK
 11697	104001	000000	103000			QUNKF6				; BLINK
 11698	104002					BLOCK	^D397			; remainder of entry
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 267-1
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0440

 11699	104617	000000	000000		UNKEND:	0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 268
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0441

 11700
 11701					;#********************************************************************
 11702					;* PTABLE - Protocol type free queues
 11703					;#********************************************************************
 11704
 11705	105000				LOC	<.+1000>&777000			; align to a page boundary
 11706
 11707	105000	400000	000000		PTABLE:	400000,,0			; Enable/Protocol type value 0
 11708	105001	000000	105071			PTTFQ+1				; FreeQ 0 queue header address
 11709	105002	000000	000000			0				; reserved
 11710
 11711	105003	400000	000020			400000,,20			; Enable/Protocol type value 1
 11712	105004	000000	105071			PTTFQ+1				; FreeQ 1 queue header address
 11713	105005	000000	000000			0				; reserved
 11714
 11715	105006	400000	000040			400000,,40			; Enable/Protocol type value 2
 11716	105007	000000	105071			PTTFQ+1				; FreeQ 2 queue header address
 11717	105010	000000	000000			0				; reserved
 11718
 11719	105011	400000	000060			400000,,60			; Enable/Protocol type value 3
 11720	105012	000000	105071			PTTFQ+1				; FreeQ 3 queue header address
 11721	105013	000000	000000			0				; reserved
 11722
 11723	105014	400000	000100			400000,,100			; Enable/Protocol type value 4
 11724	105015	000000	105071			PTTFQ+1				; FreeQ 4 queue header address
 11725	105016	000000	000000			0				; reserved
 11726
 11727	105017	400000	000120			400000,,120			; Enable/Protocol type value 5
 11728	105020	000000	105071			PTTFQ+1				; FreeQ 5 queue header address
 11729	105021	000000	000000			0				; reserved
 11730
 11731	105022	400000	000140			400000,,140			; Enable/Protocol type value 6
 11732	105023	000000	105071			PTTFQ+1				; FreeQ 6 queue header address
 11733	105024	000000	000000			0				; reserved
 11734
 11735	105025	400000	000160			400000,,160			; Enable/Protocol type value 7
 11736	105026	000000	105071			PTTFQ+1				; FreeQ 7 queue header address
 11737	105027	000000	000000			0				; reserved
 11738
 11739	105030	400000	000200			400000,,200			; Enable/Protocol type value 10
 11740	105031	000000	105071			PTTFQ+1				; FreeQ 10 queue header address
 11741	105032	000000	000000			0				; reserved
 11742
 11743	105033	400000	000220			400000,,220			; Enable/Protocol type value 11
 11744	105034	000000	105071			PTTFQ+1				; FreeQ 11 queue header address
 11745	105035	000000	000000			0				; reserved
 11746
 11747	105036	400000	000240			400000,,240			; Enable/Protocol type value 12
 11748	105037	000000	105071			PTTFQ+1				; FreeQ 12 queue header address
 11749	105040	000000	000000			0				; reserved
 11750
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 269
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0442

 11751	105041	400000	000260			400000,,260			; Enable/Protocol type value 13
 11752	105042	000000	105071			PTTFQ+1				; FreeQ 13 queue header address
 11753	105043	000000	000000			0				; reserved
 11754
 11755	105044	400000	000300			400000,,300			; Enable/Protocol type value 14
 11756	105045	000000	105071			PTTFQ+1				; FreeQ 14 queue header address
 11757	105046	000000	000000			0				; reserved
 11758
 11759	105047	400000	000320			400000,,320			; Enable/Protocol type value 15
 11760	105050	000000	105071			PTTFQ+1				; FreeQ 15 queue header address
 11761	105051	000000	000000			0				; reserved
 11762
 11763	105052	400000	000340			400000,,340			; Enable/Protocol type value 16
 11764	105053	000000	105071			PTTFQ+1				; FreeQ 16 queue header address
 11765	105054	000000	000000			0				; reserved
 11766
 11767	105055	400000	000360			400000,,360			; Enable/Protocol type value 17
 11768	105056	000000	105071			PTTFQ+1				; FreeQ 17 queue header address
 11769	105057	000000	000000			0				; reserved
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 270
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0443

 11770
 11771					; Protocol table queue
 11772
 11773	105070				LOC	<.+10>&777770			; align to 8 word boundary
 11774
 11775	105070				PTTBEG:
 11776	105070	777777	777777		PTTFQ:	-1				; interlock word
 11777	105071	000000	105074			PTTF0				; FLINK
 11778	105072	000000	115000			PTTF17				; BLINK
 11779	105073	000000	000310			^D200				; entry length
 11780
 11781	105074	000000	106000		PTTF0:	PTTF1				; FLINK
 11782	105075	000000	105071			PTTFQ+1				; BLINK
 11783	105076					BLOCK	^D198			; remainder of entry
 11784
 11785	106000				LOC	<.+1000>&777000			; align to a page boundary
 11786
 11787	106000	000000	106310		PTTF1:	PTTF2				; FLINK
 11788	106001	000000	105074			PTTF0				; BLINK
 11789	106002					BLOCK	^D198			; remainder of entry
 11790
 11791	106310	000000	107000		PTTF2:	PTTF3				; FLINK
 11792	106311	000000	106000			PTTF1				; BLINK
 11793	106312					BLOCK	^D198			; remainder of entry
 11794
 11795	107000				LOC	<.+1000>&777000			; align to a page boundary
 11796
 11797	107000	000000	107310		PTTF3:	PTTF4				; FLINK
 11798	107001	000000	106310			PTTF2				; BLINK
 11799	107002					BLOCK	^D198			; remainder of entry
 11800
 11801	107310	000000	110000		PTTF4:	PTTF5				; FLINK
 11802	107311	000000	107000			PTTF3				; BLINK
 11803	107312					BLOCK	^D198			; remainder of entry
 11804
 11805	110000				LOC	<.+1000>&777000			; align to a page boundary
 11806
 11807	110000	000000	110310		PTTF5:	PTTF6				; FLINK
 11808	110001	000000	107310			PTTF4				; BLINK
 11809	110002					BLOCK	^D198			; remainder of entry
 11810
 11811	110310	000000	111000		PTTF6:	PTTF7				; FLINK
 11812	110311	000000	110000			PTTF5				; BLINK
 11813	110312					BLOCK	^D198			; remainder of entry
 11814
 11815	111000				LOC	<.+1000>&777000			; align to a page boundary
 11816
 11817	111000	000000	111310		PTTF7:	PTTF10				; FLINK
 11818	111001	000000	110310			PTTF6				; BLINK
 11819	111002					BLOCK	^D198			; remainder of entry
 11820
 11821	111310	000000	112000		PTTF10:	PTTF11				; FLINK
 11822	111311	000000	111000			PTTF7				; BLINK
 11823	111312					BLOCK	^D198			; remainder of entry
 11824
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 270-1
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0444

 11825	112000				LOC	<.+1000>&777000			; align to a page boundary
 11826
 11827	112000	000000	112310		PTTF11:	PTTF12				; FLINK
 11828	112001	000000	111310			PTTF10				; BLINK
 11829	112002					BLOCK	^D198			; remainder of entry
 11830
 11831	112310	000000	113000		PTTF12:	PTTF13				; FLINK
 11832	112311	000000	112000			PTTF11				; BLINK
 11833	112312					BLOCK	^D198			; remainder of entry
 11834
 11835	113000				LOC	<.+1000>&777000			; align to a page boundary
 11836
 11837	113000	000000	113310		PTTF13:	PTTF14				; FLINK
 11838	113001	000000	112310			PTTF12				; BLINK
 11839	113002					BLOCK	^D198			; remainder of entry
 11840
 11841	113310	000000	114000		PTTF14:	PTTF15				; FLINK
 11842	113311	000000	113000			PTTF13				; BLINK
 11843	113312					BLOCK	^D198			; remainder of entry
 11844
 11845	114000				LOC	<.+1000>&777000			; align to a page boundary
 11846
 11847	114000	000000	114310		PTTF15:	PTTF16				; FLINK
 11848	114001	000000	113310			PTTF14				; BLINK
 11849	114002					BLOCK	^D198			; remainder of entry
 11850
 11851	114310	000000	115000		PTTF16:	PTTF17				; FLINK
 11852	114311	000000	114000			PTTF15				; BLINK
 11853	114312					BLOCK	^D198			; remainder of entry
 11854
 11855	115000				LOC	<.+1000>&777000			; align to a page boundary
 11856
 11857	115000	000000	105071		PTTF17:	PTTFQ+1				; FLINK
 11858	115001	000000	114310			PTTF16				; BLINK
 11859	115002					BLOCK	^D197			; remainder of entry
 11860	115307	000000	000000		PTTEND:	0
 11861
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 271
DFNIA1	MAC	18-Feb-84 20:30		Port Control Block and Data Areas                                                  SEQ 0445

 11862
 11863					;#********************************************************************
 11864					;* MTABLE - Table of multi-cast addresses
 11865					;#********************************************************************
 11866
 11867	115320				LOC	<.+10>&777770			; align to 8 word boundary
 11868
 11869	115320				MTABLE:
 11870	115320	000000	000060		MCAT0:	EXP	1B30!1B31,1B0
 11871	115321	400000	000000
 11872	115322	000000	000120		MCAT1:	EXP	2B30!1B31,1B0
 11873	115323	400000	000000
 11874	115324	000000	000160		MCAT2:	EXP	3B30!1B31,1B0
 11875	115325	400000	000000
 11876	115326	000000	000220		MCAT3:	EXP	4B30!1B31,1B0
 11877	115327	400000	000000
 11878	115330	000000	000260		MCAT4:	EXP	5B30!1B31,1B0
 11879	115331	400000	000000
 11880	115332	000000	000320		MCAT5:	EXP	6B30!1B31,1B0
 11881	115333	400000	000000
 11882	115334	000000	000360		MCAT6:	EXP	7B30!1B31,1B0
 11883	115335	400000	000000
 11884	115336	000000	000420		MCAT7:	EXP	10B30!1B31,1B0
 11885	115337	400000	000000
 11886	115340	000000	000460		MCAT10:	EXP	11B30!1B31,1B0
 11887	115341	400000	000000
 11888	115342	000000	000520		MCAT11:	EXP	12B30!1B31,1B0
 11889	115343	400000	000000
 11890	115344	000000	000560		MCAT12:	EXP	13B30!1B31,1B0
 11891	115345	400000	000000
 11892	115346	000000	000620		MCAT13:	EXP	14B30!1B31,1B0
 11893	115347	400000	000000
 11894	115350	000000	000660		MCAT14:	EXP	15B30!1B31,1B0
 11895	115351	400000	000000
 11896	115352	000000	000720		MCAT15:	EXP	16B30!1B31,1B0
 11897	115353	400000	000000
 11898	115354	000000	000760		MCAT16:	EXP	17B30!1B31,1B0
 11899	115355	400000	000000
 11900	115356	000000	001020		MCAT17:	EXP	20B30!1B31,1B0
 11901	115357	400000	000000
 11902
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 272
DFNIA1	MAC	18-Feb-84 20:30		SPEAR Reporting                                                                    SEQ 0446

 11903						SUBTTL	SPEAR Reporting
 11904
 11905					;#********************************************************************
 11906					;* SPREP1 - Print initial SPEAR report 'diagnostic started'
 11907					;#********************************************************************
 11908
 11909	115360	332 00 0 00 134255'	SPREP1:	SKIPE	UDEBUG			; debug mode?
 11910	115361	263 17 0 00 000000 		RTN				; yes - return
 11911	115362	332 00 0 00 030037 		SKIPE	USER			; exec mode?
 11912	115363	332 00 0 00 134244'		SKIPE	SPEAR1			; already done?
 11913	115364	263 17 0 00 000000 		RTN				; yes - return
 11914
 11915					; Check switches first
 11916
 11917	115365	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
 11918
 11919	115367	260 17 0 00 042614*		GO	SWITT			; get program switches
 11920	115370	602 00 0 00 004000 		TRNE	DSPEAR			; SPEAR reporting disabled?
 11921	115371	254 00 0 00 115402 		JRST	SPRE1X			; yes - exit
 11922
 11923					; Get PPN and build entry / get time and insert it
 11924
 11925	115372	260 17 0 00 115564 	SPCHK1:	GO	GETPPN			; get user's PPN
 11926	115373	202 01 0 00 115417 		MOVEM	1,SENT10+11+1		; save in SPEAR entry block
 11927	115374	104 00 0 00 000227 		GTAD				; get time and day
 11928	115375	202 01 0 00 115413 		MOVEM	1,SENT10+5+1		; save it
 11929
 11930					; Make the entry
 11931
 11932	115376	201 01 0 00 115405 		MOVEI	1,SENT10		; get address of argument block
 11933	115377	201 02 0 00 000013 		MOVEI	2,^D10+1		; get length
 11934	115400	104 00 0 00 000527 	S1:	SYERR				; write to SYSERR file
 11935
 11936					; Exit
 11937
 11938	115401	476 00 0 00 134244'		SETOM	SPEAR1			; set 'SPEAR initial msg done' flag
 11939	115402	262 17 0 00 000001 	SPRE1X:	RGET	(1,0)			; restore AC's
 11940
 11941	115404	263 17 0 00 000000 		RTN				; return
 11942
 11943					; SPEAR entry block 10
 11944
 11945	115405	250000	000000		SENT10:	250000,,0			; event type
 11946	115406	000000	000000			0				; zero
 11947	115407	000000	000000			0				; zero
 11948	115410	000000	000000			0				; zero
 11949	115411	000000	000000			0				; (for Release 6.0 or later)
 11950	115412	000000	020002			20002				; time of occurence block
 11951	115413	000000	000000			0				; time
 11952	115414	000000	100004			0,,100004			; 4 words, type 10 code
 11953	115415	44 46 56 51 41 00 		SIXBIT	/DFNIA/			; diagnostic name
 11954	115416	000000	000002			MCNVER,,DECVER			; diagnostic version
 11955	115417	000000	000000			0				; user PPN
 11956	115420	000000	000000			0
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 273
DFNIA1	MAC	18-Feb-84 20:30		SPEAR Reporting                                                                    SEQ 0447

 11957
 11958					;#********************************************************************
 11959					;* SPREP2 - Print error or successful completion SPEAR report
 11960					;#********************************************************************
 11961
 11962	115421	336 00 0 00 134255'	SPREP2:	SKIPN	UDEBUG			; debug mode?
 11963	115422	336 00 0 00 030037 		SKIPN	USER			; exec mode?
 11964	115423	263 17 0 00 000000 		RTN				; yes - return
 11965
 11966					; First check if anything should be reported now
 11967
 11968	115424	261 17 0 00 000000 		PUT	0			; save AC0
 11969	115425	200 00 0 00 134245'		MOVE	SPEAR2			; get reporting flag
 11970	115426	322 00 0 00 115432 		JUMPE	SPRE2A			; nothing yet? yes - continue
 11971	115427	316 00 0 00 124130 		CAMN	[-1]			; already reported an error?
 11972						JRST	[GET			; yes - exit
 11973	115430	254 00 0 00 133357 			 RTN]
 11974						JUMPE	ERFLG,[GET		; error this time? no - exit
 11975	115431	322 15 0 00 133357 			       RTN]
 11976
 11977					; Check switches
 11978
 11979	115432	261 17 0 00 000001 	SPRE2A:	RPUT	(1,2,3,4)		; save AC's
 11980
 11981	115436	260 17 0 00 115367*		GO	SWITT			; get program switches
 11982	115437	602 00 0 00 004000 		TRNE	DSPEAR			; SPEAR reporting disabled?
 11983	115440	254 00 0 00 115514 		JRST	SPRE2X			; yes - exit
 11984
 11985					; Initialize entry
 11986
 11987	115441	402 00 0 00 115536 	SPCHK2:	SETZM	SENT11+^D11+1		; clear test number
 11988	115442	402 00 0 00 115540 		SETZM	SENT11+^D13+1		; clear test description length
 11989	115443	201 02 0 00 000003 		MOVEI	2,3			; set block length to 3 words
 11990	115444	137 02 0 00 133361 		DPB	2,[POINT 9,SEN11L,35]	; save length
 11991	115445	322 15 0 00 115500 		JUMPE	ERFLG,SPRE2C		; error? no - continue
 11992
 11993					; Insert test name
 11994
 11995	115446	200 01 0 00 133362 		MOVE	1,[SIXBIT /TST0  /]	; get SIXBIT 'TST'
 11996	115447	135 00 0 00 133363 		LDB	[POINT 3,TSTNUM,29]	; get digit 1
 11997	115450	271 00 0 00 000020 		ADDI	20			; convert to SIXBIT
 11998	115451	137 00 0 00 133364 		DPB	[POINT 6,1,23]		; save it
 11999	115452	135 00 0 00 133365 		LDB	[POINT 3,TSTNUM,32]	; get digit 2
 12000	115453	271 00 0 00 000020 		ADDI	20			; convert to SIXBIT
 12001	115454	137 00 0 00 133366 		DPB	[POINT 6,1,29]		; save it
 12002	115455	135 00 0 00 133367 		LDB	[POINT 3,TSTNUM,35]	; get digit 3
 12003	115456	271 00 0 00 000020 		ADDI	20			; convert to SIXBIT
 12004	115457	137 00 0 00 133370 		DPB	[POINT 6,1,35]		; save it
 12005	115460	202 01 0 00 115536 		MOVEM	1,SENT11+^D11+1		; save test number
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 274
DFNIA1	MAC	18-Feb-84 20:30		SPEAR Reporting                                                                    SEQ 0448

 12006
 12007					; Insert test description
 12008
 12009	115461	200 01 0 00 115576 		MOVE	1,TSTNUM		; get test number
 12010	115462	550 01 0 01 032120 		HRRZ	1,TSTNAM(1)		; get address of test description
 12011	115463	474 02 0 00 000000 		SETO	2,			; initialize character count
 12012	115464	200 03 0 00 133371 		MOVE	3,[POINT 7,0]		; get initial byte pointer
 12013	115465	540 03 0 00 000001 		HRR	3,1			; insert address
 12014	115466	200 04 0 00 133372 		MOVE	4,[POINT 7,SENT11+^D13+1];get initial byte pointer
 12015	115467	134 00 0 00 000003 	SPRE2B:	ILDB	3			; get a byte
 12016	115470	136 00 0 00 000004 		IDPB	4			; save it
 12017	115471	350 00 0 00 000002 		AOS	2			; increment byte count
 12018	115472	326 00 0 00 115467 		JUMPN	SPRE2B			; loop till done
 12019
 12020					; Insert block length ...
 12021
 12022	115473	231 02 0 00 000005 		IDIVI	2,5			; calculate number of words
 12023	115474	332 00 0 00 000003 		SKIPE	3			; remainder?
 12024	115475	350 00 0 00 000002 		AOS	2			; yes - add in partial word
 12025	115476	271 02 0 00 000003 		ADDI	2,3			; calculate subtotal
 12026	115477	137 02 0 00 133361 		DPB	2,[POINT 9,SEN11L,35]	; save length
 12027
 12028					; Add time and day
 12029
 12030	115500	104 00 0 00 000227 	SPRE2C:	GTAD				; get time and day
 12031	115501	202 01 0 00 115530 		MOVEM	1,SENT11+5+1		; save it
 12032
 12033					; Get PPN and build entry / get time and insert it
 12034
 12035	115502	260 17 0 00 115564 		GO	GETPPN			; get user's PPN
 12036	115503	202 01 0 00 115534 		MOVEM	1,SEN11L-1		; save in SPEAR entry block
 12037
 12038					; Make the SPEAR entry
 12039
 12040	115504	201 01 0 00 115522 		MOVEI	1,SENT11		; get address of argument block
 12041	115505	135 02 0 00 133361 		LDB	2,[POINT 9,SEN11L,35]	; get length
 12042	115506	271 02 0 00 000013 		ADDI	2,^D10+1		; calculate total block length
 12043	115507	104 00 0 00 000527 	S2:	SYERR				; write to SYSERR file
 12044
 12045					; Exit
 12046
 12047	115510	200 00 0 00 124130 		MOVE	[-1]			; get flag for 'Error message'
 12048	115511	336 00 0 00 000015 		SKIPN	ERFLG			; error flag set?
 12049	115512	200 00 0 00 125204 		MOVE	[-2]			; no - get flag for 'Final message'
 12050	115513	202 00 0 00 134245'		MOVEM	SPEAR2			; set 'SPEAR err/fin msg done' flag
 12051	115514	262 17 0 00 000004 	SPRE2X:	RGET	(4,3,2,1,0)		; restore AC's
 12052
 12053	115521	263 17 0 00 000000 		RTN				; return
 12054
 12055					; SPEAR entry block 11
 12056
 12057	115522	250000	000000		SENT11:	250000,,0			; event type
 12058	115523	000000	000000			0				; zero
 12059	115524	000000	000000			0				; zero
 12060	115525	000000	000000			0				; zero
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 274-1
DFNIA1	MAC	18-Feb-84 20:30		SPEAR Reporting                                                                    SEQ 0449

 12061	115526	000000	000000			0				; (for Release 6.0 or later)
 12062	115527	000000	020002			20002				; time of occurence block
 12063	115530	000000	000000			0				; time
 12064
 12065	115531	000000	100004			0,,100004			; 4 words, type 10 code
 12066	115532	44 46 56 51 41 00 		SIXBIT /DFNIA/			; diagnostic name
 12067	115533	000000	000002			MCNVER,,DECVER			; diagnostic version
 12068	115534	000000	000000			0				; user PPN
 12069
 12070	115535	000000	110000		SEN11L:	0,,110000			; type 11 code
 12071	115536	000000	000000			0				; failing test name
 12072	115537	000000	000003			3				; failing test description offset
 12073	115540					BLOCK	^D20			; ASCII test description
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 275
DFNIA1	MAC	18-Feb-84 20:30		SPEAR Reporting                                                                    SEQ 0450

 12074
 12075					;#********************************************************************
 12076					;* GETPPN - Find out PPN number
 12077					;#********************************************************************
 12078
 12079	115564	261 17 0 00 000002 	GETPPN:	RPUT	(2,3)			; save AC's
 12080
 12081	115566	474 01 0 00 000000 		SETO	1,			; indicate current job
 12082	115567	200 02 0 00 133373 		MOVE	2,[-1,,1]		; place 1 word into AC1
 12083	115570	201 03 0 00 000003 		MOVEI	3,3			; point to connected directory number
 12084	115571	104 00 0 00 000507 		GETJI				; get job information
 12085	115572	400 01 0 00 000000 		SETZ	1,			; error - just clear AC1
 12086	115573	262 17 0 00 000003 		RGET	(3,2)			; restore AC's
 12087
 12088	115575	263 17 0 00 000000 		RTN				; return
 12089
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 276
DFNIA1	MAC	18-Feb-84 20:30		Miscellaneous Test Variables                                                       SEQ 0451

 12090						SUBTTL	Miscellaneous Test Variables
 12091
 12092					;#*********************************************************************
 12093					; Current Test Data
 12094					;#*********************************************************************
 12095
 12096	115576	000 00 0 00 000000 	TSTNUM:	Z				; current test number (1-n)
 12097	115577	000 00 0 00 000000 	TSTSUB:	Z				; current subtest number
 12098	115600	000 00 0 00 000000 	TSTPC:	Z				; current test PC
 12099	115601	000 00 0 00 000000 	TSTFLG:	Z				; current test flags
 12100	115602	000 00 0 00 000000 	TSTMSK:	Z				; mask to determine what test to run
 12101	115603	000 00 0 00 000000 	TSTREP:	Z				; number of test repetitions done
 12102	115604	000 00 0 00 000000 	TSTREQ:	Z				; number of test repetitions requested
 12103	115605	000 00 0 00 000000 	TSTMUL:	Z				; multiple test flag
 12104	115606	000 00 0 00 000000 	TSTOFF:	Z				; relocatable offset of test module
 12105	115607	000 00 0 00 000000 	TSTREL:	Z				; reliability mode repeat count
 12106	115610	000 00 0 00 000000 	TSTCNT:	Z				; reliability mode repeat count
 12107
 12108	115611	000 00 0 00 000000 	PMODE:	Z				; program mode
 12109
 12110	115612	056400	000000		NIPORT:	56400,,0			; NI port controller number
 12111
 12112
 12113					;#********************************************************************
 12114					; BUFF - Buffer area
 12115					;#********************************************************************
 12116
 12117	115613				BUFF:	BLOCK	^D512
 12118
 12119
 12120					;#********************************************************************
 12121					; PATCH - Patch Area
 12122					;#********************************************************************
 12123
 12124	116613				PATCH0:
 12125	116613				PATCH:	BLOCK	100			; patch area
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 277
DFNIA1	MAC	18-Feb-84 20:30		Miscellaneous Test Variables                                                       SEQ 0452

 12126
 12127					;#********************************************************************
 12128					;* Special code to test SPEAR entries
 12129					;#********************************************************************
 12130
 12131	116713	200 00 0 00 117045 	STEST:	MOVE	[JFCL]			; get noop
 12132	116714	202 00 0 00 115400 		MOVEM	S1			; delete SYERR call #1
 12133	116715	202 00 0 00 115507 		MOVEM	S2			; delete SYERR call #2
 12134	116716	260 17 0 00 116722 		GO	.+4			; do it
 12135	116717	201 01 0 00 115405 		MOVEI	1,SENT10		; get address to print
 12136	116720	260 17 0 00 116755 		GO	STESTP			; print it
 12137	116721	254 00 0 00 116725 		JRST	STEST0			; continue
 12138	116722	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
 12139
 12140	116724	254 00 0 00 115372 		JRST	SPCHK1			; check entry type 1
 12141
 12142	116725	260 17 0 00 116731 	STEST0:	GO	.+4			; do it
 12143	116726	201 01 0 00 115522 		MOVEI	1,SENT11		; get address to print
 12144	116727	260 17 0 00 116755 		GO	STESTP			; print it
 12145	116730	254 00 0 00 116740 		JRST	STEST1			; continue
 12146	116731	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save AC's
 12147
 12148	116736	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
 12149	116737	254 00 0 00 115441 		JRST	SPCHK2			; check entry type 2 (no error)
 12150
 12151	116740	260 17 0 00 116744 	STEST1:	GO	.+4			; do it
 12152	116741	201 01 0 00 115522 		MOVEI	1,SENT11		; get address to print
 12153	116742	260 17 0 00 116755 		GO	STESTP			; print it
 12154	116743	254 00 0 00 030007 		JRST	SRTDDT			; continue
 12155	116744	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save AC's
 12156
 12157	116751	474 15 0 00 000000 		SETO	ERFLG,			; set error flag
 12158	116752	201 00 0 00 000012 		MOVEI	12			; get test number
 12159	116753	202 00 0 00 115576 		MOVEM	TSTNUM			; save it
 12160	116754	254 00 0 00 115441 		JRST	SPCHK2			; check entry type 2 (error)
 12161
 12162	116755	037 00 0 00 133374 	STESTP:	TMSGCD	<Buffer:>
 12163	116756	505 01 0 00 777753 		HRLI	1,-25			; build AOBJN word
 12164	116757	200 00 0 01 000000 		MOVE	(1)			; get data
 12165	116760	037 13 0 00 000000 		PNTHW				; print
 12166	116761	037 00 0 00 030242 		PCRL
 12167	116762	253 01 0 00 116757 		AOBJN	1,STESTP+2		; loop till done
 12168	116763	263 17 0 00 000000 		RTN				; return
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 278
DFNIA1	MAC	18-Feb-84 20:30		Miscellaneous Test Variables                                                       SEQ 0453

 12169
 12170					;#********************************************************************
 12171					;* Special code to produce an EXE version
 12172					;
 12173					; To produce a standard DFCIA.EXE, just type EXE$G in DDT, then ^Z,
 12174					; then CSAVE DFCIA.EXE.  Non-DIAG version type EXEN$G.
 12175					;#********************************************************************
 12176
 12177	116764	200 00 0 00 122777 	EXEN:	MOVE	[SKIPA]
 12178	116765	202 00 0 00 000000*		MOVEM	REQ1
 12179	116766	202 00 0 00 000000*		MOVEM	REQ2
 12180	116767	202 00 0 00 000000*		MOVEM	REL
 12181	116770	200 00 0 00 133377 		MOVE	[10,,140]
 12182	116771	334 00 0 00 000000 		SKIPA	
 12183	116772	200 00 0 00 130661 	EXE:	MOVE	[10,,0]
 12184	116773	202 00 0 00 030046 		MOVEM	CONSW
 12185	116774	200 00 0 00 133400 		MOVE	[SETOM $$TOGG]
 12186	116775	202 00 0 00 030642 		MOVEM	START+31
 12187	116776	201 00 0 00 030000 		MOVEI	30000
 12188	116777	542 00 0 00 000120 		HRRM	.JBSA
 12189	117000	402 00 0 00 030056 		SETZM	$ONETM
 12190	117001	402 00 0 00 000000*		SETZM	HAVIPA
 12191	117002	402 00 0 00 000000*		SETZM	LOCDON
 12192	117003	402 00 0 00 000016 		SETZM	MBCN
 12193	117004	402 00 0 00 044330 		SETZM	CNAME
 12194	117005	254 00 0 00 030007 		JRST	SRTDDT
 12195
 12196	117006	201 01 0 00 000004 	P7:	MOVEI	1,4
 12197	117007	254 00 0 00 117015 		JRST	PG
 12198	117010	201 01 0 00 000003 	P5:	MOVEI	1,3
 12199	117011	254 00 0 00 117015 		JRST	PG
 12200	117012	201 01 0 00 000002 	P3:	MOVEI	1,2
 12201	117013	334 00 0 00 000000 		SKIPA
 12202	117014	201 01 0 00 000001 	P1:	MOVEI	1,1
 12203					PG:	MOVE	1,[0
 12204							   54400,,0
 12205							   55400,,0
 12206							   56400,,0
 12207	117015	200 01 0 01 133401 			   57400,,0](1)
 12208	117016	202 01 0 00 115612 		MOVEM	1,NIPORT
 12209	117017	254 00 0 00 030007 		JRST	SRTDDT
 12210
 12211
 12212					;#********************************************************************
 12213					; End of Mainline Module
 12214					;#********************************************************************
 12215
 12216	117020				D1LIT:	XLIST
 12217
NO ERRORS DETECTED

PROGRAM BREAK IS 134262
ABSOLUTE BREAK IS 134142
CPU TIME USED 01:46.914
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page 278-1
DFNIA1	MAC	18-Feb-84 20:30		Miscellaneous Test Variables                                                       SEQ 0454

130P CORE USED
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page S-1
DFNIA1	MAC	18-Feb-84 20:30		SYMBOL TABLE                                                                       SEQ 0455

AADDR		000000	ext	CHKQUE		067223		CWORDR		035606	int	DDALU		036412		
ABORT		400000	spd	CHKQUX		067234		D1LIT		117020		DDALU0		036416		
ADRPHY		065470		CHKRQV		067151	ent	DACRAM		035530		DDALUM		036570		
ADRQUE		065145		CHKRSP		067100	ent	DADDR		033702		DDALUX		036470		
ADRVIR		065312		CHKRSX		067144		DBCRAM		035525		DDCRAM		035522		
ALL	740000	000000	spd	CHKTAB		067243		DBPAC0		041435		DDCSR		033723		
ALTCHK	007000	000000		CLRBUF		124161	ext	DBPACK		041376		DDEBU1		035447		
ALTF		134143'	int	CLREBU		064403	ext	DBPACP		041432		DDEBUF		035443		
ALTMGO		030063		CMD0		032235		DBREA0		040457		DDEBUG		134151'	int	
ALUFR		036606		CMD1		032264		DBREAK		040455		DDLOC0		036717		
ALUTO		036607		CMD1A		032276		DC1ST		134150'		DDLOCM		037063		
ANEXT		035611		CMD2		032300		DCBR0		040552		DDLOCS		036713		
ARGFLG		066136	ext	CMDOPC		070164	ent	DCBR1		040563		DDLOCX		036764		
ARGUM		127172	ext	CMDPAK		134146'		DCBRK		040533		DDNEX0		040267		
BEGIN		030000		CMDQAV		000400	spd	DCCOD1		041063		DDNEX1		040276		
BONETM		134144'		CMDQUE		032314		DCCOD2		041107		DDNEX2		040303		
BPACK		065733	ent	CMDQUU		032317		DCCOD3		041111		DDNEX3		040310		
BPACK0		065763		CNAME		044330		DCCOD4		041117		DDNEX4		040313		
BPACKN		065731	ent	CNTPNT		067575	ent	DCCOD5		041121		DDNEX5		040316		
BPACKX		065770		CNTRC		000004	spd	DCCOD6		041127		DDNEX6		040321		
BPAK1		065776		CONPN0		043105		DCCODE		041055		DDNEXT		040241		
BPAK11		066134		CONPNT		043073	ent	DCLEAR		033745		DDPLI		037310		
BPAK1A		066024		CONPNX		043117		DCMAR0		037200		DDPLI0		037320		
BPAK4		066053		CONSW		030046		DCMAR1		037211		DDPLI1		037350		
BPAK6		066066		CONTBL		043151	int	DCMAR2		037226		DDPLIM		037367		
BPAK6A		066070		CONVI0		066656		DCMARK		037161		DDPLIX		037364		
BPAK6B		066107		CONVIE		066667		DCODPB		036053		DDPLM2		037373		
BPAK7		066115		CONVIR		066652	ent	DCOLDB		036031		DDPMU0		040353		
BPAK7A		066117		CONVIX		066663		DCOM0		035562		DDPMUL		040347		
BPAK7B		066130		CONVR0		042214		DCOM1		035577		DDPPA0		040376		
BPK11A		066136		CONVRE		042222		DCOM3A		035753		DDPPAK		040372		
BPK11B		066173		CONVRR		042207		DCOMA0		035726		DDPPT0		040330		
BSDFLG		033700		CONVRX		042223		DCOMA1		035731		DDPPTT		040324		
BUFCOM		000000	ext	CONVSX		122776	ext	DCOMA2		035750		DDRAR		035475		
BUFF		115613	int	CRAMFR		035602		DCOMA3		035751		DDTAB		040246		
BUFGEN		066240	ext	CRAMTO		035603		DCOMA4		035770		DDUMP		037533	int	
CADDR		035604	int	CRCCA0		066445		DCOMA5		035772		DDUMP0		037566		
CALL	200000	000000	spd	CRCCAL		066443		DCOMAA		035740		DDUMPM		037651		
CALMAR		134145'		CRCFIX		066457		DCOMAG		035712		DDUMPX		037643		
CALPAR		042551	ent	CRCOFF		066430	ext	DCOMAL		035707		DEALU		036304		
CBASE		030657	ext	CRCSAV		066262	ext	DCOMAX		035775		DEALU0		036325		
CCMIC		041173		CRCTAB		066431	ext	DCOMDB		035702		DEALU1		036345		
CCTAB1		041133		CSHFLG		030506		DCOMDE		035612		DEALUM		036565		
CCTAB3		041153		CSHMEM		030507		DCOMEX		036160		DEALUX		036405		
CCWPNT		041255	ext	CSREN0		042641		DCOMEZ		036201		DEBALU		036343		
CHINIT		065652	ext	CSREN1		042655		DCOMGO		035541		DEBEBU		035425		
CHKARG		120731	ext	CSREN2		042656		DCOML0		036206		DEBELO		036647		
CHKCSR		000000	ext	CSRENB		042666		DCOMLI		036204		DEBLAR		035460		
CHKIN0		066530		CSRENG		042627	ent	DCOMLX		036226		DEBSTK		040420		
CHKIN1		066535		CSRENS		134147'		DCOMP	000040	000000	spd	DEBTIM		042011	ext	
CHKIN2		066543		CSRENX		042660		DCOMSG		036007		DEBUG1		002000	spd	
CHKIN3		066555		CSRPNT		042605	ent	DCOMZE		036142		DEBUG2		001000	spd	
CHKINT		066516	ent	CSRPNX		042622		DCONF		042260		DEBUG3		000400	spd	
CHKINX		066556		CURTIM		042045	ext	DCONT		035405		DEBUG4		000200	spd	
CHKQU0		067226		CWORDL		035605	int	DCWPNT		041252		DEBUG6		000040	spd	
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page S-2
DFNIA1	MAC	18-Feb-84 20:30		SYMBOL TABLE                                                                       SEQ 0456

DECOP0		070211		DHELP1		032712		DSDAD1		033467		DSPCB2		033134		
DECOPC		070207		DIINIT		041353		DSDAD2		033472		DSPEAR		004000	spd	
DECOPX		070223		DIPRIN		041277		DSDADL		033511		DSPNT1		033566		
DECRAM		035517		DIQUEU		041453		DSDATA		033667		DSPNT2		033567		
DECSR		033713		DISGO		031205		DSEBU1		033113		DSPRIN		033706	int	
DECTAB		070225		DISLIS		031131		DSEBU2		033114		DSPTT1		033546		
DECVER		000002	spd	DISMS	104000	000167	int	DSET		032737		DSPTT2		033547		
DECYN		033357	ext	DISP0		030772		DSETAD		033024		DSRES1		033302		
DEEBUF		035422		DISP0A		031052		DSETBS		033333		DSRES2		033303		
DELAR		035455		DISP0B		031054		DSETCS		033045		DSSAD2		033520		
DELAY	005000	000000		DISP1		031062		DSETDA		033413		DSSCLR		034130		
DELOC0		036631		DISP2		031117		DSETEB		033102		DSSPN0		034117		
DELOC1		036652		DISPAT		030766		DSETFN		033142		DSSPNT		034106		
DELOCM		037056		DISPD		031106		DSETFO		033311		DSST0		034053		
DELOCS		036610		DISPE		031114		DSETHE		033655		DSST1		034067		
DELOCX		036706		DISPR		031100		DSETHL		033663		DSSTEP		034037		
DENE0		040166		DISPX		031120		DSETIN		033574		DSSTX		034073		
DENEX0		040222		DISQUE		031124		DSETLN		033373		DSSUM		033707		
DENEX1		040226		DISQUU		031127		DSETPA		033173		DSSUM1		033620		
DENEX2		040232		DLBR0		040616		DSETPC		033122		DSSUM2		033621		
DENEX3		040236		DLBR1		040631		DSETPD		033353		DSTAR0		033773		
DENEXT		040157		DLBR2		040650		DSETPL		033233		DSTART		033765		
DEPLI		037400		DLBRK		040577		DSETPP		033252		DSTOP		034014		
DEPLI0		037425		DLBRX		040656		DSETPR		033062		DSTOP1		034027		
DEPLI1		037437		DLCRAM		035536		DSETPT		033554		DSTPAT		033674		
DEPLIM		037475		DLGPNT		041260		DSETPV		033537		DSWIT		041266		
DEPLIX		037471		DLIST		040701		DSETPX		033266		DTRAC0		034041		
DERBUF		037526		DLMAR0		037251		DSETRE		033270		DTRACE		034034		
DESTA0		040431		DLMAR1		037264		DSETSA		033513		DTRANS		041045		
DESTAK		040415		DLMAR2		037300		DSETSU		033611		DTRFLG		134153'		
DESTAX		040446		DLMARK		037232		DSETUP		030706	ext	DWATC0		041572		
DESTAY		040447		DLMARX		037306		DSETWH		033626		DWATC1		041667		
DESTKM		040452		DLOAD		040660		DSFNM0		033156		DWATC2		041750		
DETAB		040204		DMARK		037103		DSFNM1		033162		DWATC3		042017		
DETBUF		037521		DMARK0		037105		DSFNM2		033163		DWATC4		042027		
DEVREL		031353	ext	DPINIT		041361		DSFOR1		033323		DWATC5		042032		
DEVREQ		030717	ext	DPLIH		037517		DSFOR2		033324		DWATC6		042043		
DFEXA0		041020		DPPCB		041464		DSFORL		033330		DWATC7		042050		
DFEXAM		041010		DPQUE0		041515		DSIDLE		041366		DWATC8		042120		
DFEXAX		041043		DPQUEU		041472		DSINIT		033752		DWATC9		042126		
DFILLN		041204		DRBR0		040512		DSINT		033710		DWATCA		042134		
DFILLP		041230		DRBRK		040510		DSINT1		033603		DWATCH		041531		
DFILN0		041215		DRCRAM		036263	ent	DSINT2		033604		DWATCQ		041567		
DFILP0		041241		DRESET		033740		DSLEN1		033405		DWATCX		042142		
DFLAG		134152'		DRMAR0		037134		DSLEN2		033406		DWATCY		042145		
DFLIS0		040764		DRMARK		037132		DSPAD1		033364		DWATLP		041712		
DFLIST		040753		DSADD1		033037		DSPAD2		033365		DWCRAM		036231	ent	
DFLISX		041006		DSADD2		033040		DSPAR1		033073		DWORDL		134154'		
DFLOAD		040714		DSADDR		033666		DSPAR2		033074		DWORDR		134155'		
DFVER0		040750		DSBSD1		033344		DSPAT		033673		DZALU		036473		
DFVERF		040737		DSBSD2		033345		DSPAT1		033220		DZALU0		036514		
DGRCV		000005	spd	DSBYTE		033672		DSPAT2		033221		DZALU1		036534		
DGSNT		000001	spd	DSCSR1		033054		DSPAT3		033231		DZALUM		036603		
DHELP		032645		DSCSR2		033055		DSPATX		033214		DZALUX		036562		
DHELP0		032657		DSDAD0		033433		DSPCB1		033133		DZCRAM		035533		
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page S-3
DFNIA1	MAC	18-Feb-84 20:30		SYMBOL TABLE                                                                       SEQ 0457

DZCSR		033732		GETJI	104000	000507	int	LASARG		033626	ext	MLNUM		134173'	int	
DZEBUF		035436		GETLOG		041263	ext	LASENT		066647		MLOAD0		064405		
DZLOC0		037010		GETPPN		115564		LAST	010000	000000	spd	MLOAD1		064427		
DZLOC1		037030		GETQU0		067006		LDCRAM		064456	ext	MLOAD2		064502		
DZLOCM		037076		GETQUE		066766	ent	LDCSR		127311	ext	MLOADN		064353	ent	
DZLOCS		036767		GETQUX		067016		LDEBUF		035453	ext	MLOADR		064425		
DZLOCX		037053		GO	260740	000000		LDEBUG		134166'	int	MLOADX		064505		
DZRAR		035507		GTAD	104000	000227	int	LDMCAT		000002	spd	MLOADY		064355	ent	
EADDR		000000	ext	HALT	254200	000000		LDPTT		000003	spd	MONTYP		030516		
ECODE		064334		HAVIPA		117001	ext	LDRAR		065654	ext	MPRUN		000010	spd	
ECOMP	000020	000000	spd	ICRC		066250		LENTRY		066563		MSG	100000	000000	spd	
EDEBUG		134156'	int	ICRC0		066333		LINCNT		134167'		MTABLE		115320	int	
ENABLE		030710	ext	ICRC1		066337		LINKG		070547		MULFLG		134174'		
ENATST		134157'		ICRC2		066354		LINKP		070537		MULINI		134175'		
ENDFIX		030577		ICRC3		066410		LINKV		070544		MVCOM		064366		
ENDUUO	037500	000004		ICRC4		066417		LINKV0		070551		MVFLAG		134176'		
EOPUUO	037700	000004		ICRCX		066424		LINKV1		070557		MVNUM		134177'		
EPLIH		037520		ICRCY		066432		LINKV2		070561		MVPNT		064536	ent	
ERESET		033743	ext	ICWA0		037767	ext	LINKVX		070563		MVPNT1		064556		
ERFLG		000015		IGNFLG		134163'		LINTAB		070567		MVPNTW		064615		
ERRPC		030052		IMTAB		071130		LOCDON		117002	ext	MVPNTX		064605		
EXE		116772		INHCRC		134164'		LOCFR		037101		MVREP		134200'		
EXEN		116764		INITPD		031344	ext	LOCPHY		030707	ext	MWBADR		064517		
FFF		066677	ext	INITPI		041356	ext	LOCTO		037102		MWBLAC		064525		
FFLAG		044331		INSQE1		066761		LOGPNT		041264	ext	MWBLCO		064522		
FGETW		044034	ext	INSQE2		066760		LOOFLG		134170'		MWBRAC		064533		
FINCMD		124131	ext	INSQUE		066703	ent	LOOP	100000	000000	spd	MWBRCO		064530		
FINECH		134160'	int	INTAPR		041342	ext	LOOPGM		040000	spd	MWDQUE		036120		
FINPUT		134161'	int	INTCON		041337	ext	LOOPTS		020000	spd	NCHAR		134201'		
FIOFF		131006	ext	INTCSR		041345	ext	MAPNEW		030143		NEWENT		134202'	int	
FLDLIS		036075		INTEND		120675	ext	MAXTST		000027	spd	NIA	200000	000000	spd	
FLOADB		044010		INTNUM		120676	ext	MBCN		000016		NIPORT		115612		
FLOADC		044074		INTPC		041325	ext	MCAT0		115320		NPACKL		134203'		
FLODB0		044024		INTTIM		041330	ext	MCAT1		115322		NPACKO		134204'		
FLODB1		044034		INTTYP		041350	ext	MCAT10		115340		NPACKQ		134205'		
FLODB2		044052		INTUSE		041333	ext	MCAT11		115342		NPACKR		134206'		
FLODBE		044066		IPACLR		065651	ext	MCAT12		115344		NPACKS		134207'		
FLODBX		044065		IPASRT		035410	ext	MCAT13		115346		NSARD		000010	spd	
FLODC0		044114		IPASST		040437	ext	MCAT14		115350		NSAWR		000011	spd	
FLODCX		044137		IPASTP		034017	ext	MCAT15		115352		NUMENT		066650	int	
FLONOP		044147		IPCB		071057		MCAT16		115354		NUMPNT		134210'		
FMTTYP		134162'		IPRIN0		041305		MCAT17		115356	int	OP		000011		
FNAME		044324		IPRINI		041316		MCAT2		115324		OPCPN0		070144		
FOARG		000000	ext	IPRINT		041302	ent	MCAT3		115326		OPCPNE		070155		
FORPNT		032032	ext	IPRINX		041312		MCAT4		115330		OPCPNT		070134	ent	
FORSEL		033677		IPTAB		071110		MCAT5		115332		OPCPNX		070161		
FSELEC	037240	000004		IQCMAX		066702		MCAT6		115334		OPRSEL		000010	spd	
FUERR		044231		IQFMIN		066701		MCAT7		115336		P		000017		
FUERR0		044254		IQFUL		066700		MCATLD		000002	spd	P1		117014		
FUNCT	040000	000000	spd	ISTOP		131217	ext	MCNVER		000000	spd	P3		117012		
FVERF0		044164		ITERAT		000005	spd	MCPUS		134171'		P5		117010		
FVERF1		044207		ITEXT		066211		MDEBUG		134172'	int	P7		117006		
FVERFC		044152		ITEXT0		066225		MLIST		064625		PACK1		067516		
FVERFE		044223		ITRCNT		030024		MLIST0		064634		PACK10		070041		
GET	262740	000000		LARG2		134165'		MLISTX		064657		PACK11		070073		
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page S-4
DFNIA1	MAC	18-Feb-84 20:30		SYMBOL TABLE                                                                       SEQ 0458

PACK1A		067545		PLOG		037755		PSPF	037040	000040		QUNKF7		104000		
PACK2		067566		PLOG0		040001		PSTAT0		070312		RALUB		134217'		
PACK3		067570		PLOGM		040017		PSTAT1		070314		RALUE		134220'		
PACK4		067572		PMISC0		070122		PSTAT2		070325		RANCNT		134221'		
PACK4B		067577		PMODE		115611	int	PSTATS		070276		RANDBS		030022		
PACK4C		067612		PNT1	037040	000000		PSTATX		070330		RANGEN		031606		
PACK4D		067614		PNT2	037100	000000		PTABLE		105000	int	RANNUM		134222'		
PACK4E		067617		PNT3	037140	000000		PTCHK0		067204		RCCNT		000004	spd	
PACK4F		067624		PNT4	037200	000000		PTCHK1		067214		RDADD0		065676		
PACK4G		067644		PNT4F	037200	000001		PTCHKP		067164		RDADDR		065672	ent	
PACK4T		067677	ent	PNTADR	037400	000000		PTCHKX		067215		RDBF		040054		
PACK4X		067660		PNTCI	037000	000000		PTCHKY		067216		RDBUF1		037675		
PACK4Y		067671		PNTCIF	037040	000000		PTEXT		070431		RDBUF2		037722		
PACK5		067770		PNTCRM		042433		PTEXT0		070440		RDBUF3		037740		
PACK6		070017		PNTDCC	003000	000000		PTEXT1		070452		RDBUFR		037713		
PACK7		070030		PNTDCF	037640	000001		PTEXT2		070454		RDBUFT		037656		
PACKET		072114	int	PNTDCL	010000	000000		PTEXT3		070457		RDBUFX		037746		
PACKG		070115		PNTDEC	037640	000000		PTIME		127314	ext	RDCRAM		130470	ext	
PADDR		070261		PNTENB		030220		PTTBEG		105070		RDCSR		127306	ext	
PADFLG		033701		PNTHST		035340		PTTEND		115307		RDEBUF		040117	ext	
PAG		000010	spd	PNTHW	037540	000000		PTTF0		105074		RDLAR		041101	ext	
PARFLG		033670	int	PNTHWF	037540	000001		PTTF1		106000		RDNSA		000010	spd	
PASCNT		030047		PNTMSF	037040	000000		PTTF10		111310		RDPLI		000007	spd	
PASPNT		030747		PNTMSG	037000	000000		PTTF11		112000		REL		116767	ext	
PAT		000014		PNTOCC	001000	000000		PTTF12		112310		RELIAB		000400	spd	
PAT1		134211'		PNTOCF	037740	000003		PTTF13		113000		REQ1		116765	ext	
PAT2		134212'		PNTOCS	037700	000003		PTTF14		113310		REQ2		116766	ext	
PATCH		116613		PNTRS0		042233		PTTF15		114000		RESCR0		042763		
PATCH0		116613		PNTRS1		042251		PTTF16		114310		RESCRM		042752		
PATPNT		033257	ext	PNTRS2		042252		PTTF17		115000		RESQAV		000200	spd	
PBSD		070475		PNTRSP		042227	ent	PTTF2		106310		RFROM		035610		
PCB		072000	int	PNTRSX		042253		PTTF3		107000		RLOCB		134223'		
PCBFLG		033675		PNTSIX	037000	000002		PTTF4		107310		RLOCE		134224'		
PCMD		134213'		PNTSXF	037040	000002		PTTF5		110000		RQAFLG		134225'	int	
PCRL	037000	030242		PNTWD		042527		PTTF6		110310		RRDBF		040101		
PCRL2	037000	030243		PORT	400000	000000	spd	PTTF7		111000		RSPFLG		033676		
PCRLF	037040	030242		PPAKC		067436	ent	PTTFQ		105070	int	RSPONS		073000	int	
PDSABL		000040	spd	PPAKC0		067447		PTTLD		000003	spd	RSPOPC		070175		
PENABL		000020	spd	PPAKCC		067452		PTTVAL		033712		RSPPAK		134226'		
PFLAG0		070416		PPAKCX		067463		PUT	261740	000000		RSPQUE		134227'	ent	
PFLAG1		070421		PPAKF		067500	ent	PUTQU0		067037		RSTART		200000	spd	
PFLAGS		070360		PPAKR		067466	ent	PUTQU1		067055		RTN	263740	000000		
PFORCE	037040	000026		PPCB		070747	ent	PUTQUE		067022	ent	RTO		035607		
PG		117015		PPCB0		071027		PUTQUX		067073		RUNTME		042044	ext	
PGMINT	265000	030011		PPCBD		071023	ent	PVPAGI		030511		RUPDA1		043535		
PGMNAM		030600	int	PQUEM0		067406		Q		000013		RUPDA2		043542		
PHEAD		070237		PQUEP0		067361		QARG1		134215'		RUPDA3		043555		
PJRST	254000	000000		PQUEU0		067337		QARG2		134216'		RUPDAT		043511	ent	
PK		000012		PQUEUE		067305	ent	QUNKF0		075000		RUPDAX		043563		
PLICTL		037514		PQUEUM		067401		QUNKF1		076000		RWAIT		066476	ent	
PLIDAT		037515		PQUEUP		067354		QUNKF2		077000		RWAIT0		066503		
PLINUM		134214'		PQUEUX		067345		QUNKF3		100000		RWAITX		066512		
PLIRD		000007	spd	PQUEUY		067346		QUNKF4		101000		S1		115400		
PLIREP		037516		PRSFLG		033671		QUNKF5		102000		S2		115507		
PLIWR		000006	spd	PSP	037000	000040		QUNKF6		103000		SADDR		033704	int	
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page S-5
DFNIA1	MAC	18-Feb-84 20:30		SYMBOL TABLE                                                                       SEQ 0459

SANCH0		042162		SPCHK2		115441		TDEST		065715	int	TST26		000000	ext	
SANCHE		042202		SPEAR1		134244'		TFLER1		043750		TST27		000000	ext	
SANCHK		042150		SPEAR2		134245'	int	TFLER2		043760		TST3		000000	ext	
SANCHX		042173		SPRE1X		115402		TFLER3		043770		TST4		000000	ext	
SANFLG		033711		SPRE2A		115432		TFLER4		044000		TST5		000000	ext	
SAVAD1		134230'		SPRE2B		115467		TFLOAD		043715	ent	TST6		000000	ext	
SAVAD2		134231'		SPRE2C		115500		TFLOAE		043743		TST7		000000	ext	
SAVCMD		134232'		SPRE2X		115514		TFLOAX		043741		TSTAL0		032012		
SAVCO1		043134		SPREP1		115360		TFMFLG		065711	int	TSTALT		032003		
SAVCO2		043147		SPREP2		115421	int	TH4000		065726	int	TSTCNT		115610		
SAVCON		043124		SREPO0		043603		TIDLE		065646	ent	TSTCON		031366		
SAVCR0		042737		SREPO1		043621		TIDLEE		065666		TSTD0		031675		
SAVCRL		042777		SREPO2		043626		TLERR		064707		TSTD1		031703		
SAVCRM		042730		SREPOR		043571		TLOAD		064666	ent	TSTD2		031715		
SAVEP		134233'		SREPOX		043651		TLOADE		064700		TSTD3		031716		
SAVFLD		134234'		SRTDDT		030007		TLOADX		064676		TSTD4		031721		
SAVHST		035357		SSADRL		034340		TMP1		134247'		TSTD5		031730		
SAVNUM		134235'		SSADRN		034540		TOPADR		066651		TSTD6		031735		
SAVOPW		134236'		SSCSRL		034740		TPAT		065722	int	TSTD7		031752		
SAVPKT		073620		SSCSRN		035140		TPCB		064711	ent	TSTD8		031761		
SAVPTT		134237'		SSLOC		034137		TPCB0		064717		TSTD9		031770		
SAVRAR		134240'		SSNUM		034140		TPCB1		064754		TSTDDT		031337		
SB		030610		STARCV		043676	int	TPCB2		065112		TSTDEB		032231		
SCOOFF		042371	ext	START		030611	ent	TPCB3		065113		TSTDIA		031332		
SCOPE1		000000	ext	STARTA		030722	ent	TPCB4		065123		TSTDIS		031655		
SCOPER	027000	000000		STARTB		030746		TPCB5		065124		TSTDL0		031462		
SCOSW		000000	ext	STASNT		043665	int	TPCB6		065135		TSTDS0		031436		
SDATA		042374	ext	STATAB		070335		TPDFLG		065714	int	TSTDSA		031425		
SELLAR		040000	spd	STATB		043665		TPRMSC		065727	int	TSTDSL		031455		
SEN11L		115535		STATE		043714	spd	TPTTVL		065717	int	TSTEBF		200000	spd	
SENT10		115405		STCLOK		030660	ext	TRACE		042350	ent	TSTEN0		031434		
SENT11		115522		STEST		116713		TRACET		400000	spd	TSTENA		031431		
SETDS0		042337		STEST0		116725		TREGD		065724	int	TSTEND		042406	ent	
SETDSA		042324	ent	STEST1		116740		TREGN		065723	int	TSTEOP		032021		
SETDSX		042345		STESTP		116755		TRETRY		065730	int	TSTEXE		031260		
SETEBU		035450	ext	STIME		134246'		TREX		042366		TSTFLG		115601	int	
SETEN0		042274		STRT1		030651		TREXX		042402		TSTHL0		031405		
SETEN1		042303		SUPDA0		043472		TRSFLG		065713	int	TSTHLC		031413		
SETEN2		042310		SUPDAT		043461	ent	TSLOAD		134250'	int	TSTHLL		031420		
SETEN3		042317		SWCHPT		000000	ext	TST1		000000	ext	TSTHLP		031373		
SETENA		042264	ent	SWCOM		041274	ext	TST10		000000	ext	TSTHLT		031350		
SETENE		042320		SWITT		115436	ext	TST11		000000	ext	TSTL1		134251'		
SETLAR		037447	ext	SWPTAB		030525		TST12		000000	ext	TSTL2		134252'		
SETVEC		041357	ext	SWRGT		030634	ext	TST13		000000	ext	TSTLI0		031310		
SHUTRQ		067274		SWSTP		000125	spd	TST14		000000	ext	TSTLI1		031317		
SHUTRX		067303		SWSTT		000027	spd	TST15		000000	ext	TSTLIS		031266		
SINCYC		020000	spd	SYERR	104000	000527	int	TST16		000000	ext	TSTLIX		031330		
SLAST		035371	ext	SZERO		043661		TST17		000000	ext	TSTMAX		032067		
SLDATA		134241'		T2M		000000	ext	TST2		000000	ext	TSTMIC		032070		
SNARKF		000000	ext	T3M		000000	ext	TST20		000000	ext	TSTMSK		115602	int	
SNDDG		000001	spd	TAKFIL		031561	int	TST21		000000	ext	TSTMUL		115605		
SNDFLG		134242'		TAMC		065725	int	TST22		000000	ext	TSTNAM		032120	int	
SNDTIM		134243'		TBSDFL		065712	int	TST23		000000	ext	TSTNUM		115576	int	
SNEXT		042373	ext	TBYTE		065720	int	TST24		000000	ext	TSTOFF		115606	int	
SPCHK1		115372		TDENA	000100	000000	spd	TST25		000000	ext	TSTPC		115600	int	
DFNIA (Port Functional Diagnostic)	MACRO %53A(1152) 19:59 24-Sep-84 Page S-6
DFNIA1	MAC	18-Feb-84 20:30		SYMBOL TABLE                                                                       SEQ 0460

TSTPN0		042422		$GARG		000000		.MB		000017	spd	.RS0A	400000	000000	spd	
TSTPNT		042411	ent	$ONETM		030056		.MCCER		000037	spd	.RS0B	300000	000000	spd	
TSTPNX		042430		$TTCHR		030231		.MCCPP		000037	spd	.RSD0	700000	000000	spd	
TSTPRI		031477		$TWCNT		030225		.MCENA		000001	spd	.RSELC		004000	spd	
TSTRA0		031641		%ADDR		000057	spd	.MCJP		000017	spd	.RSELE		005000	spd	
TSTRAA		031647		%ML	005600	000000	spd	.MCONT		000017	spd	.RSELM		002000	spd	
TSTRAN		031626		%MR		000340	spd	.MCRTN		000017	spd	.RSELP		001000	spd	
TSTREL		115607		.CGOT		041272	ext	.MCRY		000001	spd	.RSKCN		240000	spd	
TSTREP		115603	int	.CLOSE		031354	ext	.MD		000007	spd	.RSWIT		030635	ext	
TSTREQ		115604		.COMM		035763	ext	.MJ		007777	spd	.SARG		033417	ext	
TSTRES		032151		.CONI		000000	ext	.MJMAP		000017	spd	.SBSNT		000001	spd	
TSTSAV		134253'		.CONO		000000	ext	.MLDCT		000017	spd	.SPSNT		000000	spd	
TSTSP0		031604		.DARG		041504	ext	.MLDLM		000037	spd	.STCMD		032751		
TSTSPC		031563		.DATAI		040004	ext	.MMGC		001777	spd	.STDIS		032777		
TSTSSW		031516		.DATAO		037777	ext	.MOENA		000001	spd	.STERR		000002	spd	
TSTSUB		115577	int	.DBCMD		032322		.MOR		000007	spd	.SWCHP		120733	ext	
TSTSWI		031504		.DBDIS		032474		.MPLUS		000007	spd	
TSTSWP		031511		.HLCMD		032665		.MRDLM		000037	spd	
TSTTA0		031544		.INPNT		041751	ext	.MRPCT		000017	spd	
TSTTAB		032037	int	.INWD1		031042	ext	.MS0A		000007	spd	
TSTTAK		031527		.ISWT		120726	ext	.MS0B		000007	spd	
TSTTAN		031525		.JBSA		000120	spd	.MSD0		000007	spd	
TSTZER		031361		.LA		000000	spd	.MSELC		000007	spd	
TTALTM	037340	000003		.LADDR	000100	000000	spd	.MSELE		000007	spd	
TTIDEC	037200	000003		.LAND		000000	spd	.MSELM		000007	spd	
TTNBRF		030510		.LB		000000	spd	.MSELP		000007	spd	
TTSIXB	037400	000003		.LCCER		000000	spd	.MSKCN		000037	spd	
TTYYES		066061	ext	.LCCPP		000000	spd	.OARG		066166	ext	
TWORD		065721	int	.LCENA		000000	spd	.RA	000010	000000	spd	
TXADDL		134254'	int	.LCJP		000000	spd	.RAND	040000	000000	spd	
TXALL	060000	000000	spd	.LCONT		000000	spd	.RB		400000	spd	
TXTINH		000200	spd	.LCRTN		000000	spd	.RBRCV		000001	spd	
UCODE		044333		.LCRY		000000	spd	.RCCER		100000	spd	
UDEBUG		134255'	int	.LD		000000	spd	.RCCPP		150000	spd	
ULEN		044332		.LJ		010000	spd	.RCENA	000400	000000	spd	
UNAME		044326		.LJMAP		000000	spd	.RCJP		000060	spd	
UNKBEG		075000		.LLDCT		000000	spd	.RCONT		000340	spd	
UNKEND		104617		.LLDLM		000000	spd	.RCRTN		000240	spd	
USER		030037		.LMGC		000001	spd	.RCRY		000400	spd	
USRION		030711	ext	.LOENA		002000	spd	.RD	001000	000000	spd	
UVERR		064333		.LOR		000000	spd	.RESET		030651	ext	
UVERSN		134256'	int	.LPLUS		000000	spd	.RJ		000000	spd	
WORCNT		134257'		.LRDLM		000000	spd	.RJMAP		000040	spd	
WRDERR		000000	ext	.LRPCT		000000	spd	.RLDCT		000300	spd	
WRNSA		000011	spd	.LS0A		000000	spd	.RLDLM		230000	spd	
WRPLI		000006	spd	.LS0B		000000	spd	.RMGC		000000	spd	
WRTPLI		040126		.LSD0		000000	spd	.ROENA		000000	spd	
XXW		134260'		.LSELC		000000	spd	.ROR	030000	000000	spd	
XXX		134261'		.LSELE		000000	spd	.RPLUS		000000	spd	
ZCOUN0		044303		.LSELM		000000	spd	.RPRCV		000000	spd	
ZCOUNT		044300		.LSELP		000000	spd	.RRCRC		000003	spd	
$$TOGG		030521		.LSKCN		000000	spd	.RRDLM		220000	spd	
$ARG2		000001		.LSWIT		000000	ext	.RRERR		000002	spd	
$B		000064		.MA		000017	spd	.RREXP		000004	sin	
$CHR	000043	575664		.MAND		000007	spd	.RRPCT		000220	spd	
AADDR	    75#
ABORT	   236	  1184                                                                                                     SEQ 0461
ADRPHY	  7059	  7061	  8796	  9047#	  9885	  9887
ADRQUE	  8804	  8827#
ADRVIR	  7065	  8791	  8931#	  9889
ALL	   613
ALTF	    38	   229	   309#	   309	   323	   327	  1159	  1202	  1547	  1551	  3414	  3471	  3561	  3873
	  3902	  3996	  4050	  4293	  4347	  5087	  5096	  5105	  5118	  5125	  5130	  5138	  5428	  6113
	  6148	  6605	  6674	  7338	  8595
ALTMGO	   326	   994	  1041	  1077	  1160	  1163	  1550	  3474	  3565
ALUFR	  3969	  4009	  4083	  4148	  4187	  4257#
ALUTO	  3971	  4011	  4085	  4150	  4189	  4258#
ANEXT	  3465#	  3535	  3657	  3851	  3877	  3905	  4047	  4114	  4132	  4210	  4351	  4403	  4404	  4425
	  4509	  4848	  4929	  5453	  5460	  5467	  5474	  5513	  5520	  5528	  5536	  5542	  5548	  5554
	  5587	  5588	  5622	  5623	  5657	  5658
ARGFLG	    87#	   403	   406	   837	  1003	  1011	  1083	  1091	  1105	  1581	  1584	  3486	  4130	  4423
	  4558	  4601	  5727	  5774	  9396	  9412	  9452	  9478
ARGUM	    87#	   647	   654	   763	   765	   848	   950	   956	  1009	  1089	  1956	  1958	  2141	  2204
	  2229	  2319	  2325	  2350	  2365	  2395	  2404	  2463	  2537	  2566	  2569	  2587	  2593	  2599
	  2605	  2612	  2675	  2694	  2719	  2738	  2879	  2962	  3044	  3045	  3050	  3118	  3123	  3263
	  3277	  3316	  3396	  3406	  3493	  3501	  3509	  3517	  3525	  3980	  3988	  4077	  4092	  4133
	  4159	  4167	  4277	  4285	  4375	  4389	  4426	  4452	  4460	  4569	  4612	  4657	  4667	  4730
	  4740	  4811	  4826	  4834	  4835	  4905	  4913	  4925	  4926	  5409	  5410	  5415	  5420	  5429
	  5523	  5531	  5537	  5543	  5549	  5555	  5570	  5585	  5605	  5620	  5640	  5655	  5738	  5785
	  5826	  5836	  5894	  5904	  5974	  6005	  6167	  6280	  6308	  6466	  6577	  6591	  6619	  6620
	  6772	  6781	  6826	  6837	  6851	  6853	  6914	  6943	  9425	  9437	  9464	  9491	  9498	  9505
	  9513
BEGIN	 12217
BONETM	   137#	   137	   139	   376
BPACK	    46	  6493	  9277#
BPACK0	  9293	  9304#
BPACKN	    46	  9275#
BPACKX	  9312	  9329#
BPAK1	  9317	  9337#
BPAK11	  9324	  9476#
BPAK1A	  9349	  9365#
BPAK4	  9320	  9394#
BPAK6	  9321	  9410#
BPAK6A	  9412#	  9422	  9434
BPAK6B	  9411	  9439#
BPAK7	  9322	  9450#
BPAK7A	  9452#	  9461
BPAK7B	  9451	  9466#
BPK11A	  9478#	  9489	  9496	  9503	  9511
BPK11B	  9477	  9490	  9497	  9504	  9512	  9518#
BSDFLG	  2492	  2494	  2499	  2501	  2837#	  6478
BUFCOM	    88#
BUFF	    49	 12117#
BUFGEN	    88#	  9575
CADDR	    26	  3457#	  3482	  3547	  3551	  3844	  3862	  3893	  3897	  3918	  3930	  3946	  3953	  4581
	  4624	  4693	  4768	  5750	  5797	  5862	  5932	  6103	  6110	  6137	  6144	  6284	  6309	  6312
	  7533	  7555	  8060	  8144	  8210	  8226	  8241	  8251	  8442	  8482
CALL	  8636
CALMAR	  7390#	  7390	  7392	  7416
CALPAR	    25	  3926	  5758	  5939	  7388#	  8454	  8589                                                             SEQ 0462
CBASE	    78#	   170
CCMIC	  6191	  6192	  6259#
CCTAB1	  6217	  6226	  6238#
CCTAB3	  6204	  6206	  6216	  6225	  6255#
CCWPNT	    78#	  6329
CHINIT	    78#	  2957	  9174
CHKARG	    87#	   697	   708	   722	   737	   748	   873	   900	   910	   916	   927	  1510	  1789	  1864
	  1876	  1883	  1911	  1916	  2645	  2784	  2860	  2889	  2901	  2911	  2922	  2993	  3142	  3216
	  3238	  3261	  3287	  3326	  5044	  5058	  5511	  5668	  6025	  6068	  6091	  6126	  6177	  6327
	  6339	  6351	  6365	  6423	  6435	  6446	  6532	  6559	  7111
CHKCSR	    74#
CHKIN0	  9827#	  9830
CHKIN1	  9828	  9832#
CHKIN2	  9841#	  9850
CHKIN3	  9845	  9851#
CHKINT	    46	  6923	  6957	  6968	  7023	  9816#	  9928	  9983	 10157	 10191	 10365	 10368
CHKINX	  9831	  9855#
CHKQU0	 10280#	 10285
CHKQUE	 10189	 10277#
CHKQUX	 10282	 10286#
CHKRQV	    46	  6750	 10215#
CHKRSP	    46	  6751	 10151#
CHKRSX	 10158	 10166	 10206#
CHKTAB	 10279	 10298#
CLRBUF	    84#	   334	  1544	  3569	  3616	  3636	  9397	  9413	  9453	  9483
CLREBU	    74#	  8415
CMD0	  1516#	  1549	  1574	  1593	  1595	  1601
CMD1	  1545#	  1561	  1566	  1579
CMD1A	  1563#	  1578
CMD2	  1562	  1576#
CMDOPC	    47	 10921	 10943#
CMDPAK	  7093	 10469#	 10469	 10512	 10837	 10922
CMDQAV	  6939	 10332
CMDQUE	  1569	  1599#
CMDQUU	  1600	  1603#
CNAME	  2329	  3533	  3655	  3846	  6040	  6052	  6291	  6316	  8029	  8114	  8157	  8350#	  8423	 12193
CNTPNT	    30	 10632#
CNTRC	 10176	 10956
CONPN0	  7592#	  7604
CONPNT	    47	   750	  7112	  7574#
CONPNX	  7597	  7608#
CONSW	 12184
CONTBL	    48	   158	   159	   160	  7591	  7629	  7630	  7633	  7634	  7643	  7648#
CONVI0	  9884#	  9888
CONVIE	  9886	  9896#
CONVIR	    47	  6754	  9843	  9880#	 11256	 11273	 11433	 11444	 11449	 11453
CONVIX	  9889#
CONVR0	  7058#	  7062
CONVRE	  7060	  7064#
CONVRR	  7030	  7053#
CONVRX	  7065#
CONVSX	    85#	   421	  2570	  3626
CRAMFR	  3388	  3397	  3411	  3422	  3433	  3455#	  3481	  3534	  3546	  3550	  3566	  3656	  3843	  3850     SEQ 0463
	  3861	  3876	  3892	  3904	  5455	  5515
CRAMTO	  3386	  3398	  3407	  3417	  3435	  3456#	  3536	  3658	  3852	  3878	  3906	  5454	  5514
CRCCA0	  9744#	  9752
CRCCAL	  9604	  9606	  9608	  9610	  9612	  9614	  9619	  9621	  9623	  9625	  9627	  9629	  9634	  9636
	  9645	  9647	  9663	  9665	  9667	  9669	  9679	  9681	  9683	  9685	  9693	  9695	  9697	  9699
	  9701	  9716	  9742#
CRCFIX	  9724	  9760#
CRCOFF	    69#	  9338	  9727
CRCSAV	    69#	  9337	  9595
CRCTAB	    69#	  9728
CSHFLG	   126
CSHMEM	   127
CSREN0	  7458#	  7472
CSREN1	  7463	  7470#
CSREN2	  7460	  7471#
CSRENB	  7470	  7481#
CSRENG	    30	  7437	  7451#
CSRENS	  7453#	  7453	  7497	  7517
CSRENX	  7458	  7473#
CSRPNT	    30	  2864	  2979	  3009	  3229	  5079	  6168	  6887	  7427#
CSRPNX	  7434	  7438#
CURTIM	    84#	  1049	  6656	  6693	  6743	  6908
CWORDL	    26	  3459#	  3479	  3528	  3544	  3688	  3690	  3692	  3694	  3696	  3698	  3727	  3729	  3731
	  3733	  3735	  3737	  3841	  3868	  3899	  3922	  3951	  4582	  4585	  4625	  4628	  4694	  4697
	  4769	  5751	  5756	  5759	  5798	  5863	  5933	  5937	  5940	  6282	  6288	  6310	  6313	  7535
	  7557	  8062	  8064	  8147	  8219	  8231	  8245	  8253	  8460	  8475	  8486
CWORDR	    26	  3460#	  3480	  3531	  3545	  3700	  3702	  3704	  3706	  3708	  3710	  3712	  3714	  3716
	  3718	  3720	  3722	  3739	  3741	  3743	  3745	  3747	  3749	  3751	  3753	  3755	  3757	  3759
	  3761	  3842	  3869	  3900	  3923	  3958	  4583	  4586	  4588	  4626	  4629	  4631	  4695	  4698
	  4701	  4770	  4772	  5752	  5757	  5760	  5799	  5864	  5934	  5938	  6283	  6289	  6311	  6314
	  8066	  8151	  8234	  8474	  8476	  8488
D1LIT	 12216#
DACRAM	  1827	  3362#
DADDR	  2557	  2577	  2616	  2620	  2622	  2624	  2626	  2628	  2630	  2840#	  6484
DBCRAM	  1826	  3354#
DBPAC0	  6501#	  6506	  6508	  6525
DBPACK	  1895	  6460#
DBPACP	  6460	  6498#
DBREA0	  5734#	  5766
DBREAK	  1845	  5727#
DC1ST	  3444#	  3444	  3475	  3477	  3556	  3559
DCBR0	  5825	  5835	  5841#
DCBR1	  5862#	  5872
DCBRK	  1847	  5817#
DCCOD1	  6188#	  6207
DCCOD2	  6190	  6211#
DCCOD3	  6213#	  6218
DCCOD4	  6215	  6220#
DCCOD5	  6222#	  6227
DCCOD6	  6224	  6228#
DCCODE	  1858	  6176#
DCLEAR	  1806	  2910#
DCMAR0	  4656	  4666	  4672#                                                                                            SEQ 0464
DCMAR1	  4693#	  4708
DCMAR2	  4700	  4706#
DCMARK	  1842	  4648#
DCODPB	  3647	  3727#
DCOLDB	  3595	  3688#
DCOM0	  3395	  3405	  3411#	  5456	  5516
DCOM1	  3444#
DCOM3A	  3591	  3620#
DCOMA0	  3575#	  3606
DCOMA1	  3578#	  3642	  3650
DCOMA2	  3594	  3599#	  3619	  3639
DCOMA3	  3587	  3600#	  3603	  3622
DCOMA4	  3628	  3646#
DCOMA5	  3623	  3648#
DCOMAA	  3588#	  3614
DCOMAG	  3548	  3556#
DCOMAL	  3449	  3550#	  3663
DCOMAX	  3580	  3610	  3654#
DCOMDB	  3448	  3544#	  3662
DCOMDE	  3447	  3471#	  3537
DCOMEX	  3446	  3861#	  3879
DCOMEZ	  3875	  3880#
DCOMGO	  3340	  3348	  3356	  3364	  3372	  3380	  3385#
DCOML0	  3892#	  3907
DCOMLI	  3451	  3890#
DCOMLX	  3903	  3908#
DCOMP	  7134	  7179
DCOMSG	  3599	  3667#
DCOMZE	  3450	  3841#	  3853
DCONF	  7110#
DCONT	  1810	  3215#
DCWPNT	  1888	  6326#
DDALU	  1833	  4071#
DDALU0	  4077#	  4134	  5524
DDALUM	  4105	  4109	  4110	  4237#
DDALUX	  4131	  4138#
DDCRAM	  1825	  3346#
DDCSR	  1802	  2873#
DDEBU1	  3264	  3272#
DDEBUF	  1818	  3266#
DDEBUG	    17	   112#	   112	   179	   189	   343	   353	  1527	  1536
DDLOC0	  4375#	  4427	  5532
DDLOCM	  4402	  4405	  4529#
DDLOCS	  1837	  4369#
DDLOCX	  4424	  4431#
DDNEX0	  5490	  5491	  5492	  5493	  5494	  5495	  5510#
DDNEX1	  5496	  5497	  5498	  5520#
DDNEX2	  5499	  5500	  5501	  5528#
DDNEX3	  5502	  5503	  5536#
DDNEX4	  5504	  5542#
DDNEX5	  5505	  5548#
DDNEX6	  5506	  5554#
DDNEXT	  1799	  5482#                                                                                                    SEQ 0465
DDPLI	  1900	  4805#
DDPLI0	  4820#	  5538
DDPLI1	  4861#	  4875
DDPLIM	  4851	  4855	  4885#	  5388	  5389
DDPLIX	  4873	  4879#
DDPLM2	  4849	  4889#	  5386
DDPMU0	  5550	  5605#
DDPMUL	  1903	  5599#
DDPPA0	  5556	  5640#
DDPPAK	  1904	  5634#
DDPPT0	  5544	  5570#
DDPPTT	  1902	  5564#
DDRAR	  1822	  3307#
DDTAB	  5483	  5485	  5490#
DDUMP	    17	  1885	  5070#
DDUMP0	  5103#	  5109
DDUMPM	  5147	  5167#
DDUMPX	  5088	  5097	  5106	  5119	  5126	  5131	  5139	  5161#
DEALU	  1832	  3969#
DEALU0	  3979	  3987	  3993#	  5463
DEALU1	  4022#	  4055
DEALUM	  4025	  4034	  4035	  4231#
DEALUX	  4052	  4059#
DEBALU	  4017#	  5086
DEBEBU	  3240#	  5080
DEBELO	  4314#	  5117
DEBLAR	  3289#	  5081
DEBSTK	  5090	  5670#
DEBTIM	    85#	  6873
DEBUG1	   182	   346	  1529
DEBUG2	   184	   348	  1531
DEBUG3	   186	   350	  1533
DEBUG4	   188	   352	  1535
DEBUG6	   190	   354
DECOP0	 10979#	 10984
DECOPC	  6467	  6505	  7677	  7761	  9308	 10486	 10977#
DECOPX	 10981	 10989#
DECRAM	  1828	  3338#
DECSR	  1801	  2859#
DECTAB	 10978	 10994#
DECVER	     9	 11954	 12067
DECYN	    87#	  2249	  2272	  2296	  2438	  2490	  2514
DEEBUF	  1817	  3237#
DELAR	  1821	  3286#
DELOC0	  4276	  4284	  4290#	  5470
DELOC1	  4320#	  4353
DELOCM	  4331	  4332	  4521#
DELOCS	  1836	  4266#
DELOCX	  4349	  4357#
DENE0	  5419#	  5432
DENEX0	  5436	  5437	  5438	  5439	  5440	  5441	  5453#
DENEX1	  5442	  5443	  5444	  5460#
DENEX2	  5445	  5446	  5447	  5467#                                                                                    SEQ 0466
DENEX3	  5448	  5449	  5474#
DENEXT	  1798	  5409#
DEPLI	  1901	  4901#
DEPLI0	  4933#	  5476
DEPLI1	  4967#	  4992
DEPLIM	  4939	  4940	  5003#	  5332	  5333	  5358	  5359
DEPLIX	  4990	  4996#
DERBUF	  1906	  5057#
DESTA0	  5682#	  5702
DESTAK	  1859	  5667#
DESTAX	  5684	  5706#
DESTAY	  5691	  5694	  5707#
DESTKM	  5672	  5713#
DETAB	  5424	  5426	  5436#
DETBUF	  1905	  5043#
DEVREL	    79#	   699	   724
DEVREQ	    79#	   208
DFEXA0	  6133#	  6151
DFEXAM	  1855	  6125#
DFEXAX	  6133	  6149	  6153#
DFILLN	  1860	  6273#
DFILLP	  1861	  6301#
DFILN0	  6284#	  6292
DFILP0	  6312#	  6318
DFLAG	  3339#	  3339	  3347	  3355	  3363	  3371	  3379	  3445	  3592	  3660	  4013	  4095	  4191	  4310
	  4392	  4484	  4838	  4902	  5423	  5425	  5482	  5484	  5590	  5625	  5660
DFLIS0	  6099#	  6116
DFLIST	  1854	  6090#
DFLISX	  6099	  6114	  6118#
DFLOAD	  1852	  6024#
DFVER0	  6082#
DFVERF	  1853	  6067#
DGRCV	  6760	  6766	  6777	  6779	  7710	  7721	 10957	 11002	 11133
DGSNT	  6759	  7662	  7711	  9292	 10953	 11132
DHELP	  1787	  1948#
DHELP0	  1966#	  1970
DHELP1	  1966	  1995#
DIINIT	  1871	  6422#
DIPRIN	  1862	  6364#
DIQUEU	  1896	  6531#
DISGO	   457	   550#	   578
DISLIS	   411	   492#
DISP0	   317#	   321	   386	   391	   401	   438	   447	   453	   464	   471	  7044
DISP0A	   388#	   400
DISP0B	   387	   398#
DISP1	   410#
DISP2	   370	   414	   457#
DISPAT	   228	   309#
DISPD	   422	   442#
DISPE	   397	   445	   451#
DISPR	   425	   433#
DISPX	   429	   462#
DISQUE	   396	   469#                                                                                                    SEQ 0467
DISQUU	   470	   473#
DLBR0	  5893	  5903	  5909#
DLBR1	  5932#	  5960
DLBR2	  5941	  5955#
DLBRK	  1848	  5885#
DLBRX	  5957	  5961#
DLCRAM	  1829	  3378#
DLGPNT	  1889	  6338#
DLIST	  1851	  5999#
DLMAR0	  4729	  4739	  4745#
DLMAR1	  4768#	  4793
DLMAR2	  4774	  4788#
DLMARK	  1843	  4721#
DLMARX	  4790	  4794#
DLOAD	  1850	  5968#
DMARK	  1840	  4558#
DMARK0	  4565#	  4593
DPINIT	  1893	  6434#
DPLIH	  4805	  4820	  4831	  5027#
DPPCB	  1898	  6558#
DPQUE0	  6590	  6602#	  6612
DPQUEU	  1897	  6569#
DRBR0	  5781#	  5805
DRBRK	  1846	  5774#
DRCRAM	    25	  3552	  3866	  3894	  3944#	  4584	  4627	  4696	  4771	  5753	  5800	  5865	  5935	  7534
	  8218	  8252
DRESET	  1805	  2900#
DRMAR0	  4608#	  4636
DRMARK	  1841	  4601#
DSADD1	  2203	  2214#	  2759	  2928
DSADD2	  2215#
DSADDR	  2205	  2211	  2216	  2822#	  2924	  2952
DSBSD1	  2489	  2497#
DSBSD2	  2498#	  2768
DSBYTE	  2543	  2548	  2828#	  6486
DSCSR1	  2228	  2233#
DSCSR2	  2234#	  2760	  2929
DSDAD0	  2572	  2581#
DSDAD1	  2565	  2586	  2592	  2598	  2604	  2611	  2615#
DSDAD2	  2579	  2619#	  2770
DSDADL	  2567	  2637#
DSDATA	  2230	  2235	  2823#	  2926	  2965
DSEBU1	  2271	  2279#
DSEBU2	  2280#	  2762
DSET	  1795	  2131#
DSETAD	  2173	  2200#
DSETBS	  2183	  2486#
DSETCS	  2174	  2225#
DSETDA	  2185	  2557#
DSETEB	  2176	  2268#
DSETFN	  2178	  2315#
DSETFO	  2182	  2459#
DSETHE	  2193	  2783#                                                                                                    SEQ 0468
DSETHL	  2787	  2790#
DSETIN	  2190	  2715#
DSETLN	  2184	  2533#
DSETPA	  2179	  2346#
DSETPC	  2177	  2292#
DSETPD	  2188	  2510#
DSETPL	  2180	  2388#
DSETPP	  2394	  2403	  2412#	  2425
DSETPR	  2175	  2245#
DSETPT	  2189	  2690#
DSETPV	  2187	  2671#
DSETPX	  2423	  2426#
DSETRE	  2181	  2433#
DSETSA	  2186	  2644#
DSETSU	  2191	  2734#
DSETUP	    79#	   199
DSETWH	  2192	  2754#
DSFNM0	  2324	  2327#
DSFNM1	  2318	  2332#
DSFNM2	  2333#	  2764
DSFOR1	  2462	  2471#
DSFOR2	  2472#	  2767
DSFORL	  2464	  2478#
DSIDLE	  1894	  6445#
DSINIT	  1815	  2921#
DSINT	  2720	  2725	  2849#	  6876	  6982
DSINT1	  2718	  2723#
DSINT2	  2724#	  2775
DSLEN1	  2536	  2546#
DSLEN2	  2547#	  2769
DSPAD1	  2513	  2521#
DSPAD2	  2522#	  2773
DSPAR1	  2248	  2256#
DSPAR2	  2257#	  2761
DSPAT	  2356	  2374	  2391	  2830#	  6489
DSPAT1	  2349	  2372#
DSPAT2	  2373#	  2765
DSPAT3	  2377	  2381#
DSPATX	  2358	  2367#
DSPCB1	  2295	  2303#
DSPCB2	  2304#	  2763
DSPEAR	 11920	 11982
DSPNT1	  2693	  2703#
DSPNT2	  2704#	  2774
DSPRIN	    31	  2700	  2705	  2846#	  5189	  5190	  5231	  5232	 10898	 11181
DSPTT1	  2674	  2679#
DSPTT2	  2680#	  2772
DSRES1	  2437	  2446#
DSRES2	  2447#	  2766
DSSAD2	  2650#	  2771
DSSCLR	  1814	  2930	  3141#
DSSPN0	  3126#	  3133
DSSPNT	  1813	  3117#                                                                                                    SEQ 0469
DSST0	  3057#	  3097
DSST1	  3087#
DSSTEP	  1811	  3041#
DSSTX	  3071	  3076	  3096	  3101#
DSSUM	  2739	  2744	  2848#	  6657	  6744
DSSUM1	  2737	  2742#
DSSUM2	  2743#	  2776
DSTAR0	  2961#
DSTART	  1808	  2949#
DSTOP	  1809	  2992#
DSTOP1	  3002	  3007#
DSTPAT	  2366	  2379	  2831#
DSWIT	  1923	  1924	  1925	  1926	  1927	  1928	  1929	  1930	  1931	  1932	  1933	  1934	  1935	  1936
	  1937	  1938	  1939	  1940	  1941	  1942	  6350#
DTRAC0	  3039	  3044#
DTRACE	  1812	  3037#
DTRANS	  1857	  6161#
DTRFLG	  3038	  3041#	  3041	  3052	  3070	  3082	  3090
DWATC0	  6669#	  6872	  6875	  6889	  6895	  6910	  6920	  6925	  6930	  6933	  6935	  6955	  6959	  6962
	  6970	  6974	  6985	  6987	  6996	  7005
DWATC1	  6695	  6750#
DWATC2	  6746	  6757	  6770	  6783	  6788	  6815	  6817	  6837#
DWATC3	  6859	  6882#
DWATC4	  6861	  6893#
DWATC5	  6893	  6897#
DWATC6	  6863	  6906#
DWATC7	  6843	  6878	  6914#
DWATC8	  6846	  6978#
DWATC9	  6849	  6991#
DWATCA	  6865	  7000#
DWATCH	  1899	  6619#
DWATCQ	  6663#	  6867
DWATCX	  6673	  6675	  7009#
DWATCY	  6687	  7012#
DWATLP	  6773	  6776	  6787#
DWCRAM	    25	  3532	  3654	  3845	  3916#	  4591	  4634	  4704	  5764	  5803	  5868	  6290	  6315	  7558
	  8152
DWORDL	  8213#	  8213	  8220	  8229	  8243
DWORDR	  8217#	  8217	  8235
DZALU	  1834	  4148#
DZALU0	  4158	  4166	  4172#
DZALU1	  4200#	  4221
DZALUM	  4201	  4205	  4206	  4251#
DZALUX	  4218	  4225#
DZCRAM	  1830	  3370#
DZCSR	  1803	  2888#
DZEBUF	  1819	  3260#
DZLOC0	  4451	  4459	  4465#
DZLOC1	  4493#	  4511
DZLOCM	  4494	  4495	  4543#	  8320	  8321
DZLOCS	  1838	  4441#
DZLOCX	  4507	  4515#
DZRAR	  1823	  3325#                                                                                                    SEQ 0470
EADDR	    75#
ECODE	  8225	  8240	  8291	  8363#
ECOMP	  7149
EDEBUG	    18	   113#	   113	   180	   191	   344	   355	  1213	  6697
ENABLE	    78#	   201
ENATST	   830#	   830	   834#	   834	   861	   863
ENDFIX	    10
EPLIH	  4909	  4922	  5033#
ERESET	    74#	  2903
ERFLG	   333	   623	  1517	  7211	  7234	  7962	  8627	 11974	 11991	 12048	 12148	 12157
ERRPC	  7212
EXE	 12183#
EXEN	 12177#
FFF	    79#	  9904
FFLAG	  6027	  6070	  6093	  6128	  7935	  8035	  8045	  8079	  8108	  8115	  8126	  8200	  8257	  8352#
FGETW	    85#	  8057
FINCMD	    85#	   385	  1560	  3589
FINECH	    31	   132#	   132	   378	   379	   943	   945	  1553	  1554
FINPUT	    31	   131#	   131	   377	   384	   979	  1107	  1552	  1559	  3588
FIOFF	    85#	   324	   437	   452	   665	   674	   769	   839	   854	   961	  1201	  1548	  1573	  1592
	  1962	  2139	  2145	  2209	  2354	  2363	  2409	  2416	  2541	  2698	  2877	  2969	  2972	  2997
	  3000	  3063	  3066	  3220	  3223	  3243	  3270	  3275	  3311	  3415	  3420	  3424	  3472	  3491
	  3499	  3507	  3515	  3523	  3562	  3618	  3638	  3997	  4002	  4006	  4075	  4080	  4090	  4175
	  4180	  4184	  4294	  4299	  4303	  4373	  4379	  4387	  4468	  4473	  4477	  4560	  4572	  4603
	  4615	  4675	  4680	  4684	  4748	  4753	  4757	  4809	  4814	  4824	  4916	  5568	  5574	  5580
	  5603	  5609	  5615	  5638	  5644	  5650	  5690	  5693	  5729	  5741	  5776	  5788	  5844	  5849
	  5853	  5912	  5917	  5921	  5972	  5980	  5984	  6003	  6011	  6015	  6165	  6277	  6305	  6464
	  6471	  6539	  6546	  6549	  6575	  6580	  6594	  6599	  9421	  9423	  9433	  9435	  9460	  9462
	  9488	  9495	  9502	  9510
FLDLIS	  3633	  3766#
FLOADB	  6028	  6071	  6094	  6129	  7936	  8021#
FLOADC	  6053	  7951	  8105#
FLODB0	  8025	  8033#
FLODB1	  8057#	  8070
FLODB2	  8058	  8074#
FLODBE	  8036	  8044	  8093#
FLODBX	  8028	  8092#
FLODC0	  8142#	  8154
FLODCX	  8112	  8116	  8125	  8167#
FLONOP	  8161	  8175#
FMTTYP	   136#	   136
FNAME	  2326	  2328	  2334	  2337	  7970	  7973	  7979	  7982	  7988	  7991	  7997	  8000	  8024	  8027
	  8033	  8038	  8041	  8047	  8050	  8074	  8345#
FOARG	    85#
FORPNT	    85#	   153	   258	  1223
FORSEL	  2468	  2473	  2836#	  6480
FUERR	  6060	  6083	  8279#
FUERR0	  8295#	  8305
FUNCT	   617	  1235	  1236	  1244	  1245	  1246	  1247	  1248	  1249	  1250	  1251	  1252	  1253
FVERF0	  8206#	  8249
FVERF1	  8209	  8223	  8233	  8238	  8247	  8248#
FVERFC	  6059	  6082	  7954	  8197#
FVERFE	  8202	  8256	  8268#                                                                                            SEQ 0471
GETLOG	    78#	  6341
GETPPN	 11925	 12035	 12079#
GETQU0	 10032	 10050#
GETQUE	    47	  6963	  9941	 10025#	 10163
GETQUX	 10046	 10064#
HAVIPA	    79#	 12190
ICRC	  9360	  9386	  9591#
ICRC0	  9641	  9653#
ICRC1	  9660#	  9671
ICRC2	  9656	  9676#	  9703
ICRC3	  9660	  9672	  9676	  9708#
ICRC4	  9715#	  9717
ICRCX	  9709	  9712	  9723#
ICRCY	  9598	  9729#
ICWA0	    78#	  5264
IGNFLG	  6651#	  6651	  6768	  6774	  6825	  7000	  7001	  7003
IMTAB	  8815	 11563#
INHCRC	  9275#	  9275	  9277	  9294	  9356	  9381	  9591
INITPD	    76#	   712
INITPI	    76#	   226	   363	  6425
INSQE1	 10005#
INSQE2	  9929	  9934	  9984	 10004#
INSQUE	    46	  6544	  6813	  6931	  9921#
INTAPR	    77#	  6407
INTCON	    77#	  6404
INTCSR	    77#	  6410
INTEND	    77#	  1868
INTNUM	    77#	  1866	  1867	  1869	  6369	  6380	  6383	  7215
INTPC	    77#	  6394
INTTIM	    77#	  6397
INTTYP	    77#	  6385	  6413
INTUSE	    77#	  6400
IPACLR	    74#	  2913	  5222	  8620	  9170
IPASRT	    75#	  2967	  3218
IPASST	    75#	  3061	  5688
IPASTP	    75#	  2995
IPCB	  8650	 11506#
IPRIN0	  6369#	  6373
IPRINI	  6371	  6380#
IPRINT	    42	  6367#
IPRINX	  6370	  6374#
IPTAB	  8686	 11541#
IQCMAX	  1148	  9919#	  9986	  9987
IQFMIN	  1147	  9918#	  9936	  9937
IQFUL	  1145	  9917#	  9933
ISTOP	    74#	  2961	  3049	  3240	  3272	  3289	  3313	  3328	  3440	  4577	  4620	  4689	  4762	  5180
	  5678	  5746	  5793	  5858	  5926	  5986	  6033	  6076	  6279	  6307	  7011	  7042	  7530	  7550
	  7943	  8414	  8646	 10366
ITERAT	   192
ITEXT	  9354	  9379	  9543#
ITEXT0	  9547	  9555	  9559#
ITRCNT	   193
LARG2	  4093	  4123	  4390#	  4390	  4416                                                                             SEQ 0472
LASARG	    87#	  2367	  2754
LASENT	  9851	  9864#	  9930	 10120
LAST	  8636
LDCRAM	    73#	  3928	  3935	  8457	  8470
LDCSR	    73#	  2880	  2892	  3291	  3315	  3330	  4042	  4122	  4126	  4215	  4339	  4341	  4415	  4419
	  4502	  4504	  4865	  4867	  4971	  4973	  5154	  5156	  5262	  5284	  5340	  5342	  5366	  5368
	  5396	  5398	  6035	  6078	  6199	  6201	  6823	  6940	  7130	  7145	  7175	  7945	  8328	  8330
	  9183	 10334
LDEBUF	    73#	  3278
LDEBUG	    16	   111#	   111	   178	   187	   342	   351	  1526	  1534	  7947	  8615
LDMCAT	 10944	 10995
LDPTT	 10945	 10996
LDRAR	    73#	  3317	  3331	  3921	  3933	  3949	  3956	  4040	  4120	  4213	  4337	  4413	  4500	  4863
	  4969	  5152	  5260	  5338	  5364	  5394	  6197	  8326	  8446	  8467	  9179
LENTRY	  7028	  7032	  9839	  9861#	 10050	 10052	 10054	 10064	 10387
LINCNT	 11210#	 11210	 11216
LINKG	 11274	 11285#
LINKP	 10381	 10384	 10425	 10474	 10517	 10533	 10536	 10539	 10578	 10596	 10602	 10795	 11016	 11019
	 11247	 11271#	 11488	 11491
LINKV	 10377	 11250	 11283#
LINKV0	 11287#	 11292
LINKV1	 11288	 11294#
LINKV2	 11290	 11297#
LINKVX	 11295	 11300#
LINTAB	 11286	 11306#
LOCDON	    80#	 12191
LOCFR	  4266	  4306	  4381	  4401	  4441	  4480	  4549#
LOCPHY	    80#	   200
LOCTO	  4268	  4308	  4382	  4443	  4482	  4550#
LOGPNT	    78#	  6342
LOOFLG	  6650#	  6650	  6787	  6991	  6992	  6994
LOOP	   616	  1241	  1242	  1243	  1254
LOOPGM	   242
LOOPTS	   997
MAPNEW	   114
MAXTST	   419#	   424	   434	   638	   660	   662	   669	   671	   849	   851	   878	  1054	  1138	  5975
	  5977	  6006	  6008
MBCN	   198	   335	  1140	  1215	  1520	  5263	  6699	 12192
MCAT0	 11870#
MCAT1	 11872#
MCAT10	 11886#
MCAT11	 11888#
MCAT12	 11890#
MCAT13	 11892#
MCAT14	 11894#
MCAT15	 11896#
MCAT16	 11898#
MCAT17	    48	 11900#
MCAT2	 11874#
MCAT3	 11876#
MCAT4	 11878#
MCAT5	 11880#
MCAT6	 11882#                                                                                                            SEQ 0473
MCAT7	 11884#
MCATLD	 10954
MCNVER	     9	 11954	 12067
MCPUS	   122#	   122
MDEBUG	    15	   110#	   110	   177	   185	   341	   349	  1525	  1532	  7963	  8631
MLIST	  6017	  8568#
MLIST0	  8572#	  8596
MLISTX	  8574	  8597#
MLNUM	    26	  5990	  8403#	  8403	  8493
MLOAD0	  8420#	  8435	  8437	  8495
MLOAD1	  8426	  8441#
MLOAD2	  8472	  8478	  8481	  8493#
MLOADN	    25	  4036	  4111	  4207	  4333	  4406	  4496	  4856	  4941	  5148	  5254	  5334	  5360	  5390
	  5673	  6193	  8162	  8322	  8390#	  8621
MLOADR	  8431	  8436#
MLOADX	  8422	  8499#
MLOADY	    25	  5987	  8392#
MONTYP	   166
MPRUN	  4041	  4121	  4214	  4338	  4414	  4501	  4864	  4970	  5153	  5261	  5339	  5365	  5395	  6198
	  6684	  7127	  7142	  7170	  7172	  8327	  9180	  9187
MSG	  8635
MTABLE	    48	  5621	  8815	  8816	  8931	  9047	 10437	 10459	 11314	 11523	 11619	 11869#
MULFLG	   357#	   357	  1538	  3874	  3880	  3908	  4051	  4059	  4348	  4357	  5419	  5422	  7339
MULINI	   358#	   358	  1539	  3890	  5431
MVCOM	  8394	  8397	  8402#
MVFLAG	  8393#	  8393	  8396	  8456	  8458	  8469	  8471
MVNUM	  8402#	  8402	  8479	  8499	  8517	  8521
MVPNT	    25	  8502	  8517#	  8636
MVPNT1	  8528#	  8549
MVPNTW	  8534	  8538	  8544	  8555#
MVPNTX	  8546	  8551#
MVREP	  8390#	  8390	  8392	  8501
MWBADR	  8408	  8409	  8483	  8507#	  8528
MWBLAC	  8487	  8509#	  8536	  8541
MWBLCO	  8484	  8508#	  8532	  8540
MWBRAC	  8410	  8489	  8511#	  8537	  8543
MWBRCO	  8485	  8510#	  8533	  8542
MWDQUE	  3612	  3788#
NCHAR	  6644#	  6644	  6676	  6677	  6839	  6840
NEWENT	    48	  6965	  6971	  9943#	  9943	  9962	  9991	 10087	 10094	 10113	 10126	 10167	 10172	 10284
	 10290
NIA	   615	  1237	  1238	  1239	  1240
NIPORT	   198	   335	  1140	  1520	 12110#	 12208
NPACKL	  6648#	  6648	  6728	  6731	  6818
NPACKO	  6647#	  6647	  6735	  6738	  6771
NPACKQ	  6649#	  6649	  6721	  6724	  6767	  6778
NPACKR	  6646#	  6646	  6714	  6717	  6780
NPACKS	  6645#	  6645	  6707	  6710	  6942
NSARD	 10960
NSAWR	 10961
NUMENT	    48	  6819	  6928	  6936	  6960	  7026	  9821	  9849	  9865#	  9935	  9985	 10025	 10030	 10101
	 10385	 10388
NUMPNT	 10661#	 10661	 10669                                                                                             SEQ 0474
OP	  6466	  6499	  6501	  6502	  6515	  6758	  6759	  6760	  6766	  6777	  6779	  6797	  6798	  6947
	  7086	  7660	  7662	  7693	  7705	  7708	  7710	  7711	  7721	  7760	  7781	  9292	  9310	  9313
	 10480	 10918	 10927	 10934	 10983
OPCPN0	 10924#	 10928
OPCPNE	 10926	 10933#
OPCPNT	    47	  6831	  6948	  7087	 10481	 10916#	 11024
OPCPNX	 10932	 10937#
OPRSEL	   232	   312	   319	   322	   369	   463	  1099	  1204	  1211
P	   317	  1026	  1029	  1030	  1031	  1512	  5385	  5387	  7043	  7053	  7064	  7100	  7157	  7956
	  7964	  8092	  8110	  8111	  8124	  8169	  8170	  8267	  8399	  8500	  8624	  8632	  9188	  9574
	  9653	  9783	  9793	  9832	  9902	 10003	 10004	 10027	 10169	 10223	 10265	 10988
P1	 12202#
P3	 12200#
P5	 12198#
P7	 12196#
PACK1	 10490	 10561#
PACK10	 10496	 10836#
PACK11	 10497	 10870#
PACK1A	 10568	 10590#
PACK2	 10491	 10613#
PACK3	 10492	 10621#
PACK4	 10493	 10628#
PACK4B	 10634#	 10650
PACK4C	 10642	 10649#	 10663	 10681
PACK4D	 10643	 10654#
PACK4E	 10644	 10657#
PACK4F	 10662#	 10668	 10677
PACK4G	 10645	 10679#	 10691
PACK4T	    30	 10634	 10639	 10646	 10679	 10682	 10685	 10716#
PACK4X	 10655	 10695#
PACK4Y	 10658	 10707#
PACK5	 10498	 10778#
PACK6	 10494	 10807#
PACK7	 10495	 10821#
PACKET	    49	  5656	  6537	  6627	  6792	  6793	  6794	  6796	  6798	  6800	  6803	  6805	  6807	  6808
	  6809	  6916	  6917	  6918	  6947	  7660	  7664	  7679	  7689	  8931	  9047	  9283	  9284	  9285
	  9304	  9313	  9340	  9345	  9347	  9353	  9358	  9359	  9365	  9367	  9369	  9370	  9372	  9374
	  9377	  9378	  9383	  9384	  9385	  9403	  9439	  9441	  9443	  9467	  9468	  9519	  9520	  9522
	  9524	  9526	  9528	  9530	  9603	  9605	  9607	  9609	  9611	  9613	  9633	  9635	  9949	  9957
	  9958	  9974	 10238	 10240	 11341	 11342	 11343	 11344	 11638#
PACKG	 10499	 10894#
PADDR	  7586	  7602	 10581	 10599	 10785	 10788	 10844	 10873	 11038#
PADFLG	  2516	  2518	  2523	  2525	  2838#	  6482
PAG	  5267
PARFLG	    26	  2251	  2253	  2258	  2260	  2825#	  3925	  4589	  4590	  4592	  4632	  4633	  4635	  4702
	  4703	  4705	  5762	  5763	  5765	  5801	  5802	  5804	  5866	  5867	  5869	  7551	  7552	  7561
	  8140	  8141	  8155
PASCNT	   172	   248	   254	   371
PASPNT	   233	   248#
PAT	  2391	  2392	  2393	  2401	  2402	  2412	  2413	  2414	  2419	  2420	  2424	  9570
PAT1	  2392#	  2392	  2396#	  2396	  2401	  2407	  2412
PAT2	  2393#	  2393	  2402	  2405	  2406	  2424
PATCH	 12125#                                                                                                            SEQ 0475
PATCH0	 12124#
PATPNT	    88#	  2375	  2419
PBSD	 10605	 11235#
PCB	    55	  6753	  6755	  6926	  6961	  6966	  6973	  8650	  8651	  8653	  8660	  8674	  8827	  8836
	  8931	  9041	  9047	  9157	  9822	  9823	  9824	  9931	 10036	 10037	 10038	 10056	 10057	 10058
	 10106	 10107	 10108	 10132	 10133	 10134	 10151	 10155	 10165	 10171	 10177	 10194	 10195	 10196
	 10360	 10361	 10362	 11306	 11307	 11308	 11309	 11310	 11311	 11312	 11432	 11436	 11438	 11440
	 11443	 11448	 11452	 11457	 11460	 11463	 11466	 11485	 11487	 11490	 11507	 11508	 11512	 11513
	 11531	 11535	 11602#	 11603	 11604	 11608	 11609	 11627	 11631	 11655	 11696
PCBFLG	  2298	  2300	  2305	  2307	  2833#	  2956
PCMD	  1516#	  1516	  1580	  1588
PDSABL	  7127	  7172
PENABL	  7142
PFLAG0	 11135	 11156#
PFLAG1	 11152	 11163#
PFLAGS	 11025	 11121#
PG	 12197	 12199	 12203#
PGMNAM	    19	    94#
PHEAD	 10561	 10613	 10621	 10628	 10778	 10807	 10821	 10836	 10870	 10894	 11009#
PK	  7089	 10360	 10364	 10367	 10376	 10379	 10380	 10383	 10396	 10473	 10479	 10516	 10532	 10535
	 10538	 10563	 10566	 10573	 10577	 10580	 10582	 10583	 10591	 10595	 10598	 10601	 10603	 10632
	 10780	 10784	 10787	 10790	 10794	 10796	 10797	 10809	 10823	 10843	 10845	 10872	 10874	 10896
	 11015	 11018	 11021	 11059	 11123	 11129
PLICTL	  4816	  4847	  4904	  4918	  4928	  4938	  4946	  5021#
PLIDAT	  4827	  4850	  5022#
PLINUM	  4963#	  4963	  4977	  4979
PLIRD	 10959
PLIREP	  4836	  4874	  4903	  4927	  4991	  5023#	  5475
PLIWR	 10958
PLOG	  5137	  5159	  5251#
PLOG0	  5274#	  5282
PLOGM	  5253	  5294#
PMISC0	 10899#	 10907
PMODE	    38	   194	   356	  1121	  1537	  9394	  9410	  9450	  9476	 12108#
PNTCRM	  3901	  6112	  7267#	  8590
PNTENB	   152	   332	  1519
PNTHST	  3083	  3126	  3164#
PNTRS0	  7083#
PNTRS1	  7091	  7096#
PNTRS2	  7100#
PNTRSP	    46	  6775	  6782	  7078#
PNTRSX	  7101#
PNTWD	  3870	  6147	  7352#	  8300	  8303
PORT	   614	  1232	  1233	  1234
PPAKC	    54	 10397	 10467#
PPAKC0	 10479#	 10519
PPAKCC	  7095	 10485#
PPAKCX	 10502#
PPAKF	    54	 10399	 10400	 10529#
PPAKR	    54	 10398	 10510#
PPCB	    54	  5095	  6561	 11428#
PPCB0	 11476#	 11495
PPCBD	    54	  6902	 11472#                                                                                            SEQ 0476
PQUEM0	 10438#	 10460
PQUEP0	 10414#	 10428
PQUEU0	 10393#	 10401
PQUEUE	    54	  5103	  6603	 10352#
PQUEUM	 10359	 10433#
PQUEUP	 10358	 10409#
PQUEUX	 10389	 10395	 10402#
PQUEUY	 10403#	 10429	 10461
PRSFLG	  2274	  2276	  2281	  2283	  2826#	  3058
PSTAT0	 11070#
PSTAT1	 11072#	 11077
PSTAT2	 11074	 11084#
PSTATS	 11026	 11056#
PSTATX	 11066	 11080	 11090#
PTABLE	    48	  5586	  8689	  8691	  8853	  8859	  8865	  8931	  9047	 10252	 10258	 10413	 10427	 11313
	 11522	 11618	 11707#
PTCHK0	 10253#	 10259
PTCHK1	 10256	 10264#
PTCHKP	  6921	  9923	 10236#
PTCHKX	 10247	 10265#
PTCHKY	 10260	 10266#
PTEXT	 10585	 10799	 11179#	 11260
PTEXT0	 11189#	 11203
PTEXT1	 11185	 11207#
PTEXT2	 11209#	 11225
PTEXT3	 11212#	 11217
PTIME	    84#	  6829	  6885	  6900	  6945	  7084	  7795	  7826
PTTBEG	  8679	  8680	 11775#
PTTEND	  8681	 11860#
PTTF0	  8697	  8703	  8704	  8754	  8755	  8871	  8911	  8947	  8973	  8998	  9023	  9063	  9089	  9114
	  9139	 10298	 11317	 11346	 11371	 11396	 11777	 11781#	 11788
PTTF1	  8702	  8705	  8706	  8756	  8757	  8871	  8911	  8947	  8973	  8998	  9023	  9063	  9089	  9114
	  9139	 10298	 11318	 11347	 11372	 11397	 11781	 11787#	 11792
PTTF10	  8716	  8719	  8720	  8770	  8771	  8887	  8917	  8957	  8979	  9004	  9029	  9073	  9095	  9120
	  9145	 10303	 11325	 11354	 11379	 11404	 11817	 11821#	 11828
PTTF11	  8718	  8721	  8722	  8772	  8773	  8887	  8917	  8957	  8979	  9004	  9029	  9073	  9095	  9120
	  9145	 10303	 11326	 11355	 11380	 11405	 11821	 11827#	 11832
PTTF12	  8720	  8723	  8724	  8774	  8775	  8887	  8917	  8957	  8985	  9010	  9035	  9073	  9101	  9126
	  9151	 10308	 11327	 11356	 11381	 11406	 11827	 11831#	 11838
PTTF13	  8722	  8725	  8726	  8776	  8777	  8887	  8922	  8957	  8985	  9010	  9035	  9073	  9101	  9126
	  9151	 10308	 11328	 11357	 11382	 11407	 11831	 11837#	 11842
PTTF14	  8724	  8727	  8728	  8778	  8779	  8895	  8922	  8957	  8985	  9010	  9035	  9073	  9101	  9126
	  9151	 10308	 11329	 11358	 11383	 11408	 11837	 11841#	 11848
PTTF15	  8726	  8729	  8730	  8780	  8781	  8895	  8922	  8957	  8985	  9010	  9035	  9073	  9101	  9126
	  9151	 10308	 11330	 11359	 11384	 11409	 11841	 11847#	 11852
PTTF16	  8728	  8731	  8732	  8782	  8783	  8895	  8922	  8957	  8985	  9010	  9035	  9073	  9101	  9126
	  9151	 10308	 11331	 11360	 11385	 11410	 11847	 11851#	 11858
PTTF17	  8697	  8730	  8733	  8784	  8785	  8895	  8922	  8957	  8985	  9010	  9035	  9073	  9101	  9126
	  9151	 10313	 11332	 11361	 11386	 11411	 11778	 11851	 11857#
PTTF2	  8704	  8707	  8708	  8758	  8759	  8871	  8911	  8947	  8973	  8998	  9023	  9063	  9089	  9114
	  9139	 10298	 11319	 11348	 11373	 11398	 11787	 11791#	 11798
PTTF3	  8706	  8709	  8710	  8760	  8761	  8871	  8911	  8947	  8973	  8998	  9023	  9063	  9089	  9114
	  9139	 10298	 11320	 11349	 11374	 11399	 11791	 11797#	 11802                                             SEQ 0477
PTTF4	  8708	  8711	  8712	  8762	  8763	  8879	  8911	  8947	  8979	  9004	  9029	  9063	  9095	  9120
	  9145	 10298	 11321	 11350	 11375	 11400	 11797	 11801#	 11808
PTTF5	  8710	  8713	  8714	  8764	  8765	  8879	  8911	  8947	  8979	  9004	  9029	  9063	  9095	  9120
	  9145	 10303	 11322	 11351	 11376	 11401	 11801	 11807#	 11812
PTTF6	  8712	  8715	  8716	  8766	  8767	  8879	  8917	  8947	  8979	  9004	  9029	  9063	  9095	  9120
	  9145	 10303	 11323	 11352	 11377	 11402	 11807	 11811#	 11818
PTTF7	  8714	  8717	  8718	  8768	  8769	  8879	  8917	  8947	  8979	  9004	  9029	  9063	  9095	  9120
	  9145	 10303	 11324	 11353	 11378	 11403	 11811	 11817#	 11822
PTTFQ	    55	  6804	  6927	  7037	  8682	  8690	  8698	  8700	  8702	  8732	  8869	  8947	  9063	  9341
	  9343	  9825	  9932	 10039	 10059	 10109	 10135	 10197	 10363	 11315	 11316	 11708	 11712	 11716
	 11720	 11724	 11728	 11732	 11736	 11740	 11744	 11748	 11752	 11756	 11760	 11764	 11768	 11776#
	 11782	 11857
PTTLD	 10955
PTTVAL	  2676	  2681	  2853#	  6491
PUTQU0	 10086	 10094#
PUTQU1	 10102	 10120#
PUTQUE	    47	  6972	  9992	 10080#	 10193
PUTQUX	 10116	 10140#
PVPAGI	   115
Q	  5102	  5107	  5108	  6602	  6610	  6611	  6922	  6927	  6956	  6967	  7022	  7038	  7080	  7090
	  7101	  9825	  9924	  9932	  9950	  9952	  9982	 10039	 10059	 10085	 10109	 10135	 10155	 10156
	 10190	 10197	 10206	 10242	 10264	 10286	 10287	 10288	 10292	 10359	 10363	 10374	 10400	 11257
QARG1	  6582#	  6582	  6597	  6602	  6610
QARG2	  6583#	  6583	  6596#	  6596	  6611
QUNKF0	  8661	  8662	  8737	  8738	  8837	  8903	  8939	  8967	  8992	  9017	  9055	  9083	  9108	  9133
	 10314	 11333	 11362	 11387	 11412	 11517	 11613	 11654#	 11661
QUNKF1	  8660	  8663	  8664	  8739	  8740	  8837	  8903	  8939	  8967	  8992	  9017	  9055	  9083	  9108
	  9133	 10314	 11334	 11363	 11388	 11413	 11654	 11660#	 11667
QUNKF2	  8662	  8665	  8666	  8741	  8742	  8837	  8903	  8939	  8967	  8992	  9017	  9055	  9083	  9108
	  9133	 10314	 11335	 11364	 11389	 11414	 11660	 11666#	 11673
QUNKF3	  8664	  8667	  8668	  8743	  8744	  8837	  8903	  8939	  8967	  8992	  9017	  9055	  9083	  9108
	  9133	 10314	 11336	 11365	 11390	 11415	 11666	 11672#	 11679
QUNKF4	  8666	  8669	  8670	  8745	  8746	  8845	  8903	  8939	  8967	  8992	  9017	  9055	  9083	  9108
	  9133	 10314	 11337	 11366	 11391	 11416	 11672	 11678#	 11685
QUNKF5	  8668	  8671	  8672	  8747	  8748	  8845	  8903	  8939	  8967	  8992	  9017	  9055	  9083	  9108
	  9133	 10319	 11338	 11367	 11392	 11417	 11678	 11684#	 11691
QUNKF6	  8670	  8673	  8674	  8749	  8750	  8845	  8909	  8939	  8973	  8998	  9023	  9055	  9089	  9114
	  9139	 10319	 11339	 11368	 11393	 11418	 11684	 11690#	 11697
QUNKF7	  8672	  8675	  8751	  8752	  8845	  8909	  8939	  8973	  8998	  9023	  9055	  9089	  9114	  9139
	 10319	 11340	 11369	 11394	 11419	 11518	 11614	 11690	 11696#
RALUB	  3970#	  3970	  3981	  3993	  4004	  4008	  4023	  4053	  4082	  4104	  4149	  4160	  4172	  4182
	  4186	  4200	  4219	  5083	  5461	  5521
RALUE	  3972#	  3972	  3982	  3989	  3999	  4010	  4054	  4084	  4151	  4161	  4168	  4177	  4188	  4220
	  5085	  5462	  5522
RANCNT	  1046#	  1046	  1058	  1064
RANDBS	  1022
RANGEN	  1019#	  1055
RANNUM	  1021#	  1021	  1024	  1050
RCCNT	 10946	 10997
RDADD0	  9201#	  9212
RDADDR	    47	   222	  2575	  2647	  7576	  9197#
RDBF	  5191	  5329#	  9204
RDBUF1	  5191#	  5199                                                                                                     SEQ 0478
RDBUF2	  5216#	  5238
RDBUF3	  5233#	  5236
RDBUFR	  5063	  5129	  5209#
RDBUFT	  5049	  5124	  5178#
RDBUFX	  5218	  5242#
RDCRAM	    73#	  3950	  3957	  8459	  8473
RDCSR	    73#	   203	  2862	  2977	  5077	  6681	  6820	  6882	  6937	  7132	  7147	  7168	  7177	  9185
	  9787	 10218	 10329
RDEBUF	    73#	  3248	  4043	  4342	  4974	  5343	  5369
RDLAR	    73#	  3292	  4984	  6202
RDNSA	 10949	 11000
RDPLI	 10948	 10999
REL	    79#	 12180
RELIAB	  1129
REQ1	    79#	 12178
REQ2	    79#	 12179
RESCR0	  7555#	  7560
RESCRM	  4062	  4139	  4226	  4360	  4432	  4516	  4880	  4998	  5158	  5289	  5347	  5373	  5400	  5708
	  6233	  7548#
RESQAV	  9789	 10220	 10222	 10333
RFROM	  3387	  3434	  3463#
RLOCB	  4267#	  4267	  4278	  4290	  4301	  4305	  4316	  4320	  4326	  4330	  4350	  4442	  4453	  4465
	  4475	  4479	  4493	  4508	  5114	  5468	  5529
RLOCE	  4269#	  4269	  4279	  4286	  4296	  4307	  4352	  4444	  4454	  4461	  4470	  4481	  4510	  5116
	  5469	  5530
RQAFLG	    48	  6659#	  6659	  6752	  6756	 10168	 10215	 10221
RRDBF	  5233	  5355#
RSPFLG	  2433	  2440	  2443	  2448	  2450	  2835#	  6476
RSPONS	    49	  6758	  6764	  6765	  6799	  6801	  6806	  6808	  7086	  7089	  7618	  7708	  7713	  7723
	  7750	  7760	  7763	  7773	 10173	 10174	 10175	 10177	 10178	 11258	 11642#
RSPOPC	 10923	 10953#
RSPPAK	  7094	 10470#	 10470	 10513	 10629
RSPQUE	    46	 10190#	 10190
RSTART	  1172
RTO	  3385	  3436	  3462#
RUNTME	    84#	   260	  1048	  1225	  6655	  6692	  6704	  6907
RUPDA1	  7725	  7737#
RUPDA2	  7722	  7746#
RUPDA3	  7753	  7760#
RUPDAT	    30	  7703#	 10202
RUPDAX	  7733	  7741	  7781#
RWAIT	    46	  9783#
RWAIT0	  9787#	  9792
RWAITX	  9790	  9794#
S1	 11934#	 12132
S2	 12043#	 12133
SADDR	    50	   221	   223	  2576	  2651	  2653	  2655	  2657	  2659	  2661	  2843#	  6763	  7585	  7621
	  7622	  7665	  7666	  7714	  7715	  9205	  9206	  9207	  9208	  9209	  9210	  9518	  9618	  9620
	  9622	  9624	  9626	  9628
SANCH0	  7028#	  7036
SANCHE	  7031	  7035	  7041#
SANCHK	  6670	  7020#
SANCHX	  7025	  7027	  7037#                                                                                            SEQ 0479
SANFLG	  2851#
SAVAD1	  2558#	  2558	  2582	  2588	  2594	  2600	  2615
SAVAD2	  2559#	  2559	  2606	  2613
SAVCMD	  1512#	  1512
SAVCO1	  7629#	  7638
SAVCO2	  7635	  7643#
SAVCON	  7618#	  7777
SAVCR0	  7533#	  7538
SAVCRL	  7531	  7553	  7568#
SAVCRM	  4018	  4100	  4196	  4315	  4397	  4489	  4843	  4934	  5146	  5252	  5330	  5356	  5384	  5671
	  6183	  7528#
SAVEP	   317#	   317	  7043
SAVFLD	  3624#	  3624	  3625	  3632
SAVHST	  3068	  3077	  3185#
SAVNUM	  1120#	  1120	  1125
SAVOPW	 10239#	 10239	 10243
SAVPKT	  6627	  6628	  6916	 11643#
SAVPTT	 10241#	 10241	 10251
SAVRAR	  8445#	  8445	  8465
SB	   104#
SCOOFF	    88#	  7214
SCOPE1	    88#
SCOSW	    86#
SDATA	    75#	  2927	  2966	  3008	  3059	  3108	  3200	  3228	  5685	  7217
SELLAR	  3290	  6200
SEN11L	 11990	 12026	 12036	 12041	 12070#
SENT10	 11926	 11928	 11932	 11945#	 12135
SENT11	 11987	 11988	 12005	 12014	 12031	 12040	 12057#	 12143	 12152
SETDS0	  7177#	  7182
SETDSA	    30	  7010	  7166#
SETDSX	  7171	  7178	  7180	  7183#
SETEBU	    74#	  3241	  3273
SETEN0	  7132#	  7137
SETEN1	  7135	  7142#
SETEN2	  7147#	  7152
SETEN3	  7150	  7157#
SETENA	    30	  6450	  6635	  7122#
SETENE	  7133	  7138	  7148	  7158#
SETLAR	    74#	  4975
SETVEC	    76#	   227	   364	   713	  6426
SHUTRQ	 10164	 10170	 10328#
SHUTRX	 10330	 10335#
SINCYC	  4041	  4214
SLAST	    75#	  2964	  3102	  3194
SLDATA	  3060#	  3060	  3198
SNARKF	    79#
SNDDG	  6797	  9959	 10246	 10943	 10994
SNDFLG	  6652#	  6652	  6871	  6979	  6980
SNDTIM	  6653#	  6653	  6874	  6877	  6978
SNEXT	    75#	  2925	  2963	  3004	  3105	  3196	  5687	  5701	  7216
SPCHK1	 11925#	 12140
SPCHK2	 11987#	 12149	 12160
SPEAR1	   156#	   156	 11912	 11938                                                                                     SEQ 0480
SPEAR2	    38	   157#	   157	 11969	 12050
SPRE1X	 11921	 11939#
SPRE2A	 11970	 11979#
SPRE2B	 12015#	 12018
SPRE2C	 11991	 12030#
SPRE2X	 11983	 12051#
SPREP1	   217	 11909#
SPREP2	    38	   624	 11962#
SREPO0	  7802#	  7820
SREPO1	  7804	  7824#
SREPO2	  7833#	  7856
SREPOR	   902	  7789#
SREPOX	  7835	  7860#
SRTDDT	   711	  7045	 12154	 12194	 12209
SSADRL	  3153#	  3165	  3195
SSADRN	  3154#	  3168	  3197
SSCSRL	  3155#	  3199
SSCSRN	  3146	  3156#	  3171	  3201
SSLOC	  3081	  3124	  3144	  3145	  3151#	  3187	  3189	  3191
SSNUM	  3132	  3152#	  3174	  3188	  3193
STARCV	    32	  7731	  7748	  7838	  7900#
START	    21	   105#	   213	   729	  1173	 12186
STARTA	    21	   221#	   240	   243
STARTB	   230	   238	   244#
STASNT	    32	  7673	  7739	  7807	  7896#
STATAB	 11071	 11096#
STATB	  7869	  7870	  7895#
STATE	  7871	  7904#
STCLOK	    84#	   171
STEST	 12131#
STEST0	 12137	 12142#
STEST1	 12145	 12151#
STESTP	 12136	 12144	 12153	 12162#	 12167
STIME	  6658#	  6658	  6694	  6745	  6909
STRT1	   141	   164#
SUPDA0	  7672#
SUPDAT	    30	  7658#	  9999
SWCHPT	    86#
SWCOM	    86#	   931	  6356
SWITT	    86#	   181	   231	   234	   241	   311	   318	   345	   462	   996	  1098	  1127	  1171	  1182
	  1203	  1210	  1528	  7202	  7250	  7432	 11919	 11981
SWPTAB	   147
SWRGT	    86#	   145
SWSTP	  1921#	  6355
SWSTT	   578#	   930
SZERO	   155	   739	  7869#
T2M	    65#	  1261
T3M	    65#	  1262
TAKFIL	    38	   951	   957	   962	   965	   968	   973	   976	   984#
TAMC	    49	  9266#	  9479	  9492	  9521
TBSDFL	    50	  6479	  9251#	  9296	  9300	  9348
TBYTE	    50	  6487	  9260#	  9355	  9380	  9545	  9548	  9566	  9643	  9644	  9646	  9649	  9710
TDENA	   862	   864	   882	  7208	  7218                                                                             SEQ 0481
TDEST	    50	   224	  6485	  9255#	  9346
TFLER1	  7937	  7969#
TFLER2	  7937	  7978#
TFLER3	  7961	  7987#
TFLER4	  7961	  7996#
TFLOAD	    25	  7935#
TFLOAE	  7952	  7955	  7961#
TFLOAX	  7941	  7948	  7953	  7956#
TFMFLG	    50	  6481	  9250#	  9297	  9375	  9549	  9560	  9564	  9655
TH4000	    49	  9267#	  9480	  9499	  9523
TIDLE	    47	  6448	  6629	  9168#
TIDLEE	  9186	  9189#
TLERR	  8628	  8635#
TLOAD	    25	  8615#
TLOADE	  8622	  8627#
TLOADX	  8616	  8618	  8624#
TMP1	   832#	   832	   836#	   836	   844	  2320#	  2320	  2327
TOPADR	  9838	  9844	  9866#	  9944	  9996
TPAT	    49	  6490	  9262#	  9570
TPCB	    47	  6437	  8644#
TPCB0	  8650#
TPCB1	  8686#	  8695
TPCB2	  8789#
TPCB3	  8790#	  8797
TPCB4	  8792	  8802#
TPCB5	  8803#	  8811
TPCB6	  8805	  8815#
TPDFLG	    50	  6483	  9253#	  9302	  9640	  9708
TPRMSC	    49	  9268#	  9481	  9506	  9525
TPTTVL	    50	  6492	  9258#	  9339
TRACE	    30	  7197#
TRACET	  7203
TREGD	    49	  9264#	  9438	  9442
TREGN	    49	  9263#	  9426	  9440	  9465	  9466
TRETRY	    49	  9269#	  9482	  9514	  9529
TREX	  7204	  7211#
TREXX	  7219	  7224#
TRSFLG	    50	  6477	  9252#	  9290
TSLOAD	    38	   336#	   336	  5072	  7939	  7950	  8085	  8087	  8617	  8623
TST1	    59#	  1232
TST10	    59#	  1239
TST11	    59#	  1240
TST12	    59#	  1241
TST13	    60#	  1242
TST14	    60#	  1243
TST15	    60#	  1244
TST16	    60#	  1245
TST17	    60#	  1246
TST2	    59#	  1233
TST20	    60#	  1247
TST21	    60#	  1248
TST22	    60#	  1249
TST23	    60#	  1250                                                                                                     SEQ 0482
TST24	    61#	  1251
TST25	    61#	  1252
TST26	    61#	  1253
TST27	    61#	  1254
TST3	    59#	  1234
TST4	    59#	  1235
TST5	    59#	  1236
TST6	    59#	  1237
TST7	    59#	  1238
TSTAL0	  1195	  1200#
TSTALT	   993	  1076	  1193#
TSTCNT	  1136	  1167	 12106#
TSTCON	   560	   747#	  1880
TSTD0	  1084	  1095#
TSTD1	  1104#	  1112
TSTD2	  1106	  1109	  1115#
TSTD3	  1012	  1057	  1100	  1119#
TSTD4	  1125#	  1188
TSTD5	  1135#	  1175
TSTD6	  1140#	  1168
TSTD7	  1159#
TSTD8	  1169#
TSTD9	  1139	  1179#
TSTDDT	   571	   707#	  1793
TSTDEB	   569	  1509#
TSTDIA	   570	   696#	  1205
TSTDIS	   619	  1076#
TSTDL0	   877#	   883	   892
TSTDS0	   844#	   866
TSTDSA	   563	   830#
TSTDSL	   564	   872#
TSTEBF	  4041	  4340	  4972	  5341	  5367
TSTEN0	   833	   837#
TSTENA	   562	   834#
TSTEND	    36	  7233#
TSTEOP	  1181	  1210#
TSTEXE	   551	   552	   553	   554	   555	   613#
TSTFLG	    37	  1142	  1154	 12099#
TSTHL0	   773#	   777
TSTHLC	   766	   780#
TSTHLL	   773	   786#
TSTHLP	   573	   757#
TSTHLT	   572	   721#
TSTL1	   636#	   636	   637	   648	   659	   679	   683
TSTL2	   639#	   639	   649	   655	   667	   684
TSTLI0	   646	   653	   659#
TSTLI1	   679#	   687
TSTLIS	   565	   635#
TSTLIX	   685	   688#
TSTMAX	   419	  1255#
TSTMIC	  1259#	  5982	  6013
TSTMSK	    37	   618	  1152	 12100#
TSTMUL	  1002	  1045	  1081	  1153	  1174	  1180	 12103#                                                            SEQ 0483
TSTNAM	    37	  1286#	  7255	 12010
TSTNUM	    37	   427	   680	   856	   875	   877	   889	  1056	  1082	  1119	  1126	  1137	  7200	  7206
	  7233	  7244	  7254	 11996	 11999	 12002	 12009	 12096#	 12159
TSTOFF	    37	  7199	 12104#
TSTPC	    37	  1143	  1155	 12098#
TSTPN0	  7247	  7250#
TSTPNT	    36	   682	  7241#
TSTPNX	  7252	  7256#
TSTPRI	   558	   899#	  1873
TSTRA0	  1054#	  1059
TSTRAA	  1040	  1063#
TSTRAN	   556	  1040#
TSTREL	  1131	  1135	 12105#
TSTREP	    37	   995	  1042	  1078	  1179	  1194	  1197	  1220	 12101#
TSTREQ	  1001	  1010	  1044	  1079	  1080	  1090	  1104	  1115	  1187	 12102#
TSTRES	  1095	  1096	  1097	  1312#	  7234
TSTSAV	   402#	   402	   410	   442
TSTSP0	  1004	  1011#
TSTSPC	   428	   993#
TSTSSW	   580	   581	   582	   583	   584	   585	   586	   587	   588	   589	   590	   591	   592	   593
	   594	   595	   596	   597	   598	   599	   926#
TSTSUB	    37	   635	  7213	  7246	 12097#
TSTSWI	   575	   909#
TSTSWP	   576	   915#
TSTTA0	   949	   955	   961#
TSTTAB	    38	   419	   860	   865	   881	  1141	  1231#	  7201
TSTTAK	   567	   945#	  1796
TSTTAN	   568	   943#	  1797
TSTZER	   559	   736#	  1874
TTNBRF	  1113
TTYYES	    84#	  9400
TWORD	    50	  6488	  9261#	  9546	  9559	  9571	  9596	  9654
TXADDL	    20	   359#	   359	  1144	  1540	  9579	  9580
TXALL	  8635	  8636
TXTINH	  7251	  7433
UCODE	  6098	  6132	  8056	  8076	  8139	  8204	  8358#
UDEBUG	    14	   109#	   109	   176	   183	   206	   340	   347	  1524	  1530	  5266	  6451	  6630	  6636
	  6683	  6954	  8793	  8807	  9342	  9366	  9371	  9965	  9971	 10041	 10090	 10095	 10123	 10129
	 10244	 11909	 11962
ULEN	  6097	  6131	  8078	  8138	  8203	  8259	  8284	  8356#
UNAME	  6039	  6042	  6045	  8023	  8026	  8054	  8075	  8107	  8113	  8118	  8121	  8128	  8131	  8156
	  8199	  8348#
UNKBEG	  8657	  8658	 11653#
UNKEND	  8659	 11699#
USER	   235	  1169	  1183	  7128	  7143	  7173	  8652	  9181	  9819	 11911	 11963
USRION	    76#	   202
UVERR	  8205	  8221	  8236	  8255	  8279	  8287	  8292	  8362#
UVERSN	    26	  8055#	  8055	  8254	  8263
WORCNT	 11208#	 11208	 11219	 11220	 11221
WRDERR	    88#
WRNSA	 10950	 11001
WRPLI	 10947	 10998
WRTPLI	  5184	  5187	  5229	  5381#	  9203                                                                             SEQ 0484
XXW	   389#	   389	  1564#	  1564	  3601#	  3601
XXX	  1067#	  1067	  1791#	  1791	  7226
ZCOUN0	  8320#	  8333
ZCOUNT	  1878	  8088	  8317#
$$TOGG	   154	 12185
$ARG2	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
$B	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
$CHR	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
$GARG	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
$ONETM	   104	   121	   138	   140	 12189
$TTCHR	   392	   398	   404	  1567	  1576	  1582	  3570	  3584	  3604	  3620	  3648
$TWCNT	   390	  1565	  3602
%ADDR	  4231#	  4231	  4237#	  4237	  4239	  4239#	  4241	  4241#	  4243	  4243#	  4245	  4245#	  4251#	  4251
	  4521#	  4521	  4523	  4523#	  4529#	  4529	  4531	  4531#	  4533	  4533#	  4535	  4535#	  4537	  4537#
	  4543#	  4543	  4885#	  4885	  4887	  4887#	  4889	  4889#	  4891	  4891#	  5003#	  5003	  5005	  5005#
	  5007	  5007#	  5009	  5009#	  5011	  5011#	  5013	  5013#	  5015	  5015#	  5167#	  5167	  5169	  5169#
	  5294#	  5294	  5296	  5296#	  5298	  5298#	  5300	  5300#	  5303	  5303#	  5305	  5305#	  5307	  5307#
	  5309	  5309#	  5311	  5311#	  5313	  5313#	  5315	  5315#	  5317	  5317#	  5319	  5319#	  5321	  5321#
	  5713#	  5713	  6259#	  6259	  6261	  6261#	  6263	  6263#	  6265	  6265#	  8175#	  8175
%ML	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
%MR	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005     SEQ 0485
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
.CGOT	    87#	   929	  6354
.CLOSE	    84#	   725
.COMM	    87#	   412	   444	   767	  1590	  1960	  2143	  2465	  2568	  3634
.CONI	    76#
.CONO	    76#
.DARG	    87#	   644	   651	  1006	  1086	  2534	  2691	  2716	  2735	  3046	  3120	  4072	  4156	  4164
	  4274	  4282	  4370	  4449	  4457	  5412	  5565	  5600	  5635	  6461	  6572	  6588
.DATAI	    76#	  5277
.DATAO	    76#	  4124	  4417	  5272
.DBCMD	   443	  1589	  1630#
.DBDIS	   446	  1594	  1786#	  1921
.HLCMD	  1959	  1973#
.INPNT	    78#	  1545	  6838
.INWD1	    78#	   375
.ISWT	    86#	   912	  1913
.JBSA	 12188
.LA	  5303	  5313
.LADDR	  4231	  4237	  4251	  4521	  4529	  4543	  4885	  5003	  5167	  5294	  5713	  6259	  8175
.LAND	  4251	  4543
.LB	  5300	  5311	  5321
.LCCER	  4239	  4531	  5296	  5307	  5315
.LCCPP	  5011
.LCENA	  4239	  4531	  5011	  5296	  5307	  5315	  6261
.LCJP	  4239	  4531	  5011	  5296	  5307	  5315	  6261
.LCONT	  4243	  4535	  4887	  4889	  5005	  5007	  5009	  5311	  8175
.LCRTN	  5713
.LCRY	  5321
.LD	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5300	  5303
	  5307	  5309	  5311	  5313	  5315	  5317	  5321	  5713	  6259	  6261	  6263	  6265
.LJ	  4231	  4237	  4239	  4241	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4537	  4543	  4885
	  4891	  5003	  5011	  5013	  5015	  5167	  5169	  5294	  5296	  5298	  5300	  5303	  5305	  5307
	  5309	  5313	  5315	  5317	  5319	  5321	  6259	  6261	  6263	  6265
.LJMAP	  4231	  4237	  4241	  4245	  4251	  4521	  4523	  4529	  4533	  4537	  4543	  4885	  4891	  5003
	  5013	  5015	  5167	  5169	  5294	  5298	  5309	  5317	  5321	  6259	  6263	  6265
.LLDCT	  5300	  5305	  5319
.LLDLM	  4537	  4543
.LMGC	  4231	  4243	  4523	  4535	  4537	  4885	  4887	  4889	  5003	  5005	  5007	  5009	  5167	  5300
	  5303	  5305	  5311	  5313	  5319
.LOENA	  4231	  4523	  4537	  4543	  4887	  5009	  5303	  5313
.LOR	  4231	  4243	  4521	  4523	  4535	  4537	  4885	  4887	  5007	  5009	  5300	  5303	  5311	  5313
.LPLUS	  5321
.LRDLM	  4521
.LRPCT	  5303	  5313
.LS0A	  4231	  4251	  4523	  4537	  4543	  4887	  5009	  5303	  5313
.LS0B	  5321
.LSD0	  4243	  4521	  4535	  4885	  5007	  5300	  5311
.LSELC	  5167
.LSELE	  4231	  4243	  4523	  4535	  5009	  5300	  5303	  5305	  5311	  5313	  5319                             SEQ 0486
.LSELM	  4887	  5003	  5007
.LSELP	  4889	  5005
.LSKCN	  4885
.LSWIT	    86#
.MA	  5303	  5313
.MAND	  4251	  4543
.MB	  5300	  5311	  5321
.MCCER	  4239	  4531	  5296	  5307	  5315
.MCCPP	  5011
.MCENA	  4239	  4531	  5011	  5296	  5307	  5315	  6261
.MCJP	  4239	  4531	  5011	  5296	  5307	  5315	  6261
.MCONT	  4243	  4535	  4887	  4889	  5005	  5007	  5009	  5311	  8175
.MCRTN	  5713
.MCRY	  5321
.MD	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5300	  5303
	  5307	  5309	  5311	  5313	  5315	  5317	  5321	  5713	  6259	  6261	  6263	  6265
.MJ	  4231	  4237	  4239	  4241	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4537	  4543	  4885
	  4891	  5003	  5011	  5013	  5015	  5167	  5169	  5294	  5296	  5298	  5300	  5303	  5305	  5307
	  5309	  5313	  5315	  5317	  5319	  5321	  6259	  6261	  6263	  6265
.MJMAP	  4231	  4237	  4241	  4245	  4251	  4521	  4523	  4529	  4533	  4537	  4543	  4885	  4891	  5003
	  5013	  5015	  5167	  5169	  5294	  5298	  5309	  5317	  5321	  6259	  6263	  6265
.MLDCT	  5300	  5305	  5319
.MLDLM	  4537	  4543
.MMGC	  4231	  4243	  4523	  4535	  4537	  4885	  4887	  4889	  5003	  5005	  5007	  5009	  5167	  5300
	  5303	  5305	  5311	  5313	  5319
.MOENA	  4231	  4523	  4537	  4543	  4887	  5009	  5303	  5313
.MOR	  4231	  4243	  4521	  4523	  4535	  4537	  4885	  4887	  5007	  5009	  5300	  5303	  5311	  5313
.MPLUS	  5321
.MRDLM	  4521
.MRPCT	  5303	  5313
.MS0A	  4231	  4251	  4523	  4537	  4543	  4887	  5009	  5303	  5313
.MS0B	  5321
.MSD0	  4243	  4521	  4535	  4885	  5007	  5300	  5311
.MSELC	  5167
.MSELE	  4231	  4243	  4523	  4535	  5009	  5300	  5303	  5305	  5311	  5313	  5319
.MSELM	  4887	  5003	  5007
.MSELP	  4889	  5005
.MSKCN	  4885
.OARG	    87#	   845	  2201	  2226	  2347	  2360	  2389	  2399	  2584	  2590	  2596	  2602	  2609	  2672
	  2874	  2950	  3267	  3308	  3393	  3403	  3488	  3496	  3504	  3512	  3520	  3977	  3985	  4087
	  4384	  4566	  4609	  4654	  4664	  4727	  4737	  4806	  4821	  4832	  4910	  4923	  5577	  5612
	  5647	  5735	  5782	  5823	  5833	  5891	  5901	  5969	  6000	  6162	  6274	  6302	  6622	  9420
	  9432	  9459	  9487	  9494	  9501	  9509
.RA	  5303	  5313
.RAND	  4251	  4543
.RB	  5300	  5311	  5321
.RBRCV	  7776	  7847	  7888#
.RCCER	  4239	  4531	  5296	  5307	  5315
.RCCPP	  5011
.RCENA	  4239	  4531	  5011	  5296	  5307	  5315	  6261
.RCJP	  4239	  4531	  5011	  5296	  5307	  5315	  6261
.RCONT	  4243	  4535	  4887	  4889	  5005	  5007	  5009	  5311	  8175                                             SEQ 0487
.RCRTN	  5713
.RCRY	  5321
.RD	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5300	  5303
	  5307	  5309	  5311	  5313	  5315	  5317	  5321	  5713	  6259	  6261	  6263	  6265
.RESET	    85#	   164
.RJ	  4231	  4237	  4239	  4241	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4537	  4543	  4885
	  4891	  5003	  5011	  5013	  5015	  5167	  5169	  5294	  5296	  5298	  5300	  5303	  5305	  5307
	  5309	  5313	  5315	  5317	  5319	  5321	  6259	  6261	  6263	  6265
.RJMAP	  4231	  4237	  4241	  4245	  4251	  4521	  4523	  4529	  4533	  4537	  4543	  4885	  4891	  5003
	  5013	  5015	  5167	  5169	  5294	  5298	  5309	  5317	  5321	  6259	  6263	  6265
.RLDCT	  5300	  5305	  5319
.RLDLM	  4537	  4543
.RMGC	  4231	  4243	  4523	  4535	  4537	  4885	  4887	  4889	  5003	  5005	  5007	  5009	  5167	  5300
	  5303	  5305	  5311	  5313	  5319
.ROENA	  4231	  4523	  4537	  4543	  4887	  5009	  5303	  5313
.ROR	  4231	  4243	  4521	  4523	  4535	  4537	  4885	  4887	  5007	  5009	  5300	  5303	  5311	  5313
.RPLUS	  5321
.RPRCV	  7732	  7749	  7845	  7887#
.RRCRC	  7756	  7851	  7890#
.RRDLM	  4521
.RRERR	  7754	  7849	  7889#
.RREXP	    32	  7852	  7854	  7891#
.RRPCT	  5303	  5313
.RS0A	  4231	  4251	  4523	  4537	  4543	  4887	  5009	  5303	  5313
.RS0B	  5321
.RSD0	  4243	  4521	  4535	  4885	  5007	  5300	  5311
.RSELC	  5167
.RSELE	  4231	  4243	  4523	  4535	  5009	  5300	  5303	  5305	  5311	  5313	  5319
.RSELM	  4887	  5003	  5007
.RSELP	  4889	  5005
.RSKCN	  4885
.RSWIT	    86#	   146
.SARG	    87#	   760	   947	   953	  1953	  2136	  2246	  2269	  2293	  2316	  2322	  2435	  2460	  2487
	  2511	  2563
.SBSNT	  7692	  7816	  7882#
.SPSNT	  7674	  7814	  7881#
.STCMD	  2142	  2150#
.STDIS	  2147	  2173#
.STERR	  7740	  7818	  7883#
.SWCHP	    86#	   918	  1918
ALTCHK	   389	  1112	  1564	  3601
CALC	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537     SEQ 0488
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5167	  5169
	  5294	  5296	  5298	  5300	  5303	  5305	  5307	  5309	  5311	  5313	  5315	  5317	  5319	  5321
	  5713	  6259	  6261	  6263	  6265	  8175
CONCAT	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5167	  5169
	  5294	  5296	  5298	  5300	  5303	  5305	  5307	  5309	  5311	  5313	  5315	  5317	  5319	  5321
	  5713	  6259	  6261	  6263	  6265	  8175
DELAY	  5280	  7136	  7151	  7181	  9184	  9791	  9829
DISMS	  9820
ENDUUO	   239
EOPUUO	   244
FIELD	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5167	  5169
	  5294	  5296	  5298	  5300	  5303	  5305	  5307	  5309	  5311	  5313	  5315	  5317	  5319	  5321
	  5713	  6259	  6261	  6263	  6265	  8175
FMSG	   382	  1066	  1196	  1199	  1557	  3484	  3667	  3668	  3669	  3670	  3671	  3672	  3673	  3674
	  3675	  3676	  3677	  3678	  3679	  3680	  3681	  3682	  3683	  3684	  6516	  6517	  6518	  6519
	  6520	  6521	  6522	  6523	  6524	  7969	  7975	  7987	  7993
FMSGC	   433	   670	   850	   964	   972	  1063	  1110	  1193	  3476	  5976	  6007	  8037	  9399	  9414
	  9454	  9484	 10289
FMSGCD	   209	   313	   451	   643	   650	   661	   696	   707	   710	   721	   736	   747	   768	   831
	   835	   838	   872	   899	   909	   915	   926	   946	   952	  1005	  1085	  1509	  1572	  1591
	  1788	  1863	  1875	  1882	  1910	  1915	  1961	  2138	  2144	  2200	  2208	  2225	  2245	  2268
	  2292	  2315	  2321	  2346	  2353	  2359	  2362	  2369	  2388	  2398	  2408	  2415	  2434	  2459
	  2466	  2486	  2510	  2533	  2540	  2561	  2573	  2608	  2644	  2671	  2690	  2697	  2715	  2734
	  2756	  2783	  2859	  2873	  2876	  2888	  2900	  2910	  2921	  2949	  2968	  2971	  2976	  2992
	  2996	  2999	  3007	  3037	  3042	  3062	  3065	  3119	  3141	  3215	  3219	  3222	  3227	  3237
	  3242	  3260	  3266	  3269	  3274	  3286	  3307	  3310	  3325	  3392	  3402	  3413	  3419	  3423
	  3487	  3490	  3495	  3498	  3503	  3506	  3511	  3514	  3519	  3522	  3615	  3635	  3788	  3789
	  3790	  3791	  3804	  3805	  3806	  3807	  3826	  3833	  3834	  3835	  3976	  3984	  3995	  4001
	  4005	  4071	  4074	  4079	  4086	  4089	  4155	  4163	  4174	  4179	  4183	  4273	  4281	  4292
	  4298	  4302	  4369	  4372	  4378	  4383	  4386	  4448	  4456	  4467	  4472	  4476	  4559	  4565
	  4571	  4602	  4608	  4614	  4653	  4663	  4674	  4679	  4683	  4726	  4736	  4747	  4752	  4756
	  4808	  4813	  4823	  4915	  5027	  5033	  5043	  5057	  5411	  5510	  5564	  5567	  5573	  5576
	  5579	  5599	  5602	  5608	  5611	  5614	  5634	  5637	  5643	  5646	  5649	  5667	  5689	  5692
	  5728	  5734	  5740	  5775	  5781	  5787	  5822	  5832	  5843	  5848	  5852	  5890	  5900	  5911
	  5916	  5920	  5968	  5971	  5983	  5999	  6002	  6014	  6024	  6067	  6090	  6125	  6161	  6164
	  6176	  6273	  6276	  6301	  6304	  6326	  6338	  6350	  6364	  6422	  6434	  6445	  6449	  6452
	  6463	  6470	  6498	  6531	  6538	  6545	  6548	  6558	  6569	  6574	  6579	  6585	  6593	  6598
	  6621	  6632	  6638	  7110	  9415	  9427	  9455	  9486	  9508
FMSGD	   757	   970	   978	  1200	  1948	  2131	  3568	  3792	  3796	  3800	  3808	  3822	  3827	  8043
FSELEC	   963	  8034
GET	   389	  1032	  1034	  1067	  1564	  1791	  3177	  3202	  3204	  3601	  3936	  3938	  3959	  3961
	  4592	  4635	  4705	  5161	  5163	  5201	  5203	  5243	  5245	  5348	  5374	  5401	  5403	  5761
	  5765	  5804	  5869	  6357	  6374	  6376	  6633	  6639	  7012	  7014	  7038	  7040	  7066	  7068
	  7101	  7103	  7158	  7160	  7183	  7185	  7220	  7222	  7224	  7226	  7256	  7258	  7341	  7343
	  7367	  7369	  7418	  7420	  7438	  7440	  7473	  7475	  7539	  7541	  7561	  7562	  7564	  7608
	  7610	  7693	  7695	  7781	  7783	  7861	  7863	  7946	  8093	  8095	  8155	  8167	  8169	  8268
	  8270	  8309	  8311	  8334	  8336	  8503	  8505	  8551	  8553	  8598	  8600	  8820	  8822	  9189
	  9191	  9214	  9216	  9329	  9331	  9581	  9583	  9718	  9729	  9731	  9772	  9774	  9794	  9796
	  9855	  9857	  9890	  9892	 10005	 10007	 10065	 10067	 10140	 10142	 10206	 10208	 10224	 10266
	 10268	 10294	 10296	 10335	 10403	 10405	 10500	 10502	 10504	 10540	 10542	 10937	 10939	 10989
	 11027	 11029	 11090	 11092	 11167	 11169	 11261	 11263	 11300	 11302	 11496	 11498	 11939	 11941     SEQ 0489
	 11972	 11974	 12051	 12053	 12086	 12088
GETJI	 12084
GO	   155	   164	   171	   181	   199	   200	   201	   202	   203	   208	   217	   222	   226	   227
	   228	   231	   233	   234	   241	   260	   311	   318	   324	   334	   345	   363	   364	   380
	   385	   412	   421	   428	   437	   444	   446	   452	   457	   462	   619	   624	   644	   651
	   665	   674	   682	   697	   699	   708	   711	   712	   713	   722	   724	   725	   737	   739
	   748	   750	   760	   762	   767	   769	   839	   845	   854	   873	   885	   900	   902	   910
	   912	   916	   918	   927	   931	   947	   953	   961	   996	  1006	  1048	  1055	  1057	  1086
	  1098	  1127	  1155	  1171	  1181	  1182	  1201	  1203	  1210	  1214	  1225	  1510	  1528	  1544
	  1545	  1548	  1555	  1560	  1573	  1590	  1592	  1594	  1789	  1864	  1876	  1878	  1883	  1885
	  1911	  1913	  1916	  1918	  1953	  1955	  1960	  1962	  2136	  2139	  2143	  2145	  2147	  2201
	  2209	  2226	  2246	  2249	  2269	  2272	  2293	  2296	  2316	  2322	  2347	  2354	  2360	  2363
	  2367	  2389	  2399	  2409	  2416	  2435	  2438	  2460	  2465	  2487	  2490	  2511	  2514	  2534
	  2541	  2563	  2568	  2570	  2575	  2584	  2590	  2596	  2602	  2609	  2645	  2647	  2672	  2691
	  2698	  2716	  2735	  2754	  2759	  2760	  2761	  2762	  2763	  2764	  2765	  2766	  2767	  2768
	  2769	  2770	  2771	  2772	  2773	  2774	  2775	  2776	  2784	  2860	  2862	  2864	  2874	  2877
	  2880	  2889	  2892	  2901	  2903	  2911	  2913	  2922	  2928	  2929	  2930	  2950	  2957	  2961
	  2967	  2969	  2972	  2977	  2979	  2993	  2995	  2997	  3000	  3009	  3046	  3049	  3061	  3063
	  3066	  3068	  3077	  3083	  3120	  3126	  3142	  3216	  3218	  3220	  3223	  3229	  3238	  3240
	  3241	  3243	  3248	  3261	  3267	  3270	  3272	  3273	  3275	  3278	  3287	  3289	  3291	  3292
	  3308	  3311	  3313	  3315	  3317	  3326	  3328	  3330	  3331	  3393	  3403	  3415	  3420	  3424
	  3440	  3472	  3488	  3491	  3496	  3499	  3504	  3507	  3512	  3515	  3520	  3523	  3532	  3552
	  3562	  3569	  3589	  3595	  3616	  3618	  3626	  3634	  3636	  3638	  3647	  3654	  3845	  3866
	  3870	  3894	  3901	  3921	  3926	  3928	  3933	  3935	  3949	  3950	  3956	  3957	  3977	  3985
	  3997	  4002	  4006	  4018	  4036	  4040	  4042	  4043	  4062	  4072	  4075	  4080	  4087	  4090
	  4100	  4111	  4120	  4122	  4124	  4126	  4139	  4156	  4164	  4175	  4180	  4184	  4196	  4207
	  4213	  4215	  4226	  4274	  4282	  4294	  4299	  4303	  4315	  4325	  4333	  4337	  4339	  4341
	  4342	  4360	  4370	  4373	  4379	  4384	  4387	  4397	  4406	  4413	  4415	  4417	  4419	  4432
	  4449	  4457	  4468	  4473	  4477	  4489	  4496	  4500	  4502	  4504	  4516	  4560	  4566	  4572
	  4577	  4584	  4591	  4603	  4609	  4615	  4620	  4627	  4634	  4654	  4664	  4675	  4680	  4684
	  4689	  4696	  4704	  4727	  4737	  4748	  4753	  4757	  4762	  4771	  4780	  4806	  4809	  4814
	  4821	  4824	  4832	  4843	  4856	  4863	  4865	  4867	  4880	  4910	  4916	  4923	  4934	  4941
	  4969	  4971	  4973	  4974	  4975	  4984	  4998	  5044	  5049	  5058	  5063	  5077	  5079	  5080
	  5081	  5086	  5090	  5095	  5103	  5117	  5124	  5129	  5137	  5146	  5148	  5152	  5154	  5156
	  5158	  5159	  5180	  5184	  5187	  5191	  5222	  5229	  5233	  5252	  5254	  5260	  5262	  5272
	  5277	  5284	  5289	  5330	  5334	  5338	  5340	  5342	  5343	  5347	  5356	  5360	  5364	  5366
	  5368	  5369	  5373	  5384	  5390	  5394	  5396	  5398	  5400	  5412	  5427	  5511	  5565	  5568
	  5574	  5577	  5580	  5600	  5603	  5609	  5612	  5615	  5635	  5638	  5644	  5647	  5650	  5668
	  5671	  5673	  5678	  5688	  5690	  5693	  5708	  5729	  5735	  5741	  5746	  5753	  5758	  5764
	  5776	  5782	  5788	  5793	  5800	  5803	  5823	  5833	  5844	  5849	  5853	  5858	  5865	  5868
	  5891	  5901	  5912	  5917	  5921	  5926	  5935	  5939	  5947	  5969	  5972	  5980	  5984	  5986
	  5987	  6000	  6003	  6011	  6015	  6017	  6025	  6028	  6033	  6035	  6041	  6053	  6059	  6060
	  6068	  6071	  6076	  6078	  6082	  6083	  6091	  6094	  6112	  6126	  6129	  6147	  6162	  6165
	  6168	  6177	  6183	  6193	  6197	  6199	  6201	  6202	  6233	  6274	  6277	  6279	  6290	  6302
	  6305	  6307	  6315	  6327	  6329	  6339	  6341	  6342	  6351	  6356	  6365	  6371	  6423	  6425
	  6426	  6435	  6437	  6446	  6448	  6450	  6451	  6460	  6461	  6464	  6467	  6471	  6493	  6505
	  6511	  6532	  6539	  6544	  6546	  6549	  6559	  6561	  6572	  6575	  6580	  6588	  6594	  6599
	  6603	  6622	  6629	  6635	  6655	  6670	  6681	  6692	  6698	  6704	  6750	  6751	  6754	  6775
	  6782	  6813	  6820	  6823	  6828	  6829	  6831	  6838	  6882	  6885	  6887	  6893	  6900	  6907
	  6921	  6923	  6931	  6937	  6940	  6944	  6945	  6948	  6957	  6963	  6968	  6972	  7010	  7011
	  7023	  7030	  7042	  7084	  7087	  7111	  7112	  7130	  7132	  7145	  7147	  7168	  7175	  7177
	  7202	  7250	  7338	  7432	  7437	  7496	  7517	  7530	  7534	  7550	  7558	  7576	  7586	  7602
	  7663	  7677	  7679	  7689	  7712	  7761	  7763	  7773	  7777	  7795	  7826	  7936	  7943	  7945     SEQ 0490
	  7951	  7954	  8046	  8057	  8080	  8088	  8127	  8152	  8162	  8218	  8252	  8258	  8300	  8303
	  8322	  8326	  8328	  8330	  8394	  8397	  8414	  8415	  8446	  8454	  8457	  8459	  8467	  8470
	  8473	  8502	  8534	  8538	  8544	  8589	  8590	  8620	  8621	  8646	  9170	  9174	  9179	  9183
	  9185	  9203	  9204	  9308	  9317	  9320	  9321	  9322	  9324	  9354	  9360	  9379	  9386	  9397
	  9400	  9413	  9420	  9421	  9423	  9432	  9433	  9435	  9453	  9459	  9460	  9462	  9483	  9487
	  9488	  9494	  9495	  9501	  9502	  9509	  9510	  9561	  9575	  9580	  9604	  9606	  9608	  9610
	  9612	  9614	  9619	  9621	  9623	  9625	  9627	  9629	  9634	  9636	  9645	  9647	  9663	  9665
	  9667	  9669	  9679	  9681	  9683	  9685	  9693	  9695	  9697	  9699	  9701	  9716	  9724	  9787
	  9843	  9904	  9923	  9928	  9941	  9962	  9983	  9992	  9999	 10157	 10163	 10164	 10170	 10177
	 10189	 10191	 10193	 10202	 10218	 10289	 10329	 10334	 10365	 10366	 10368	 10377	 10381	 10384
	 10397	 10398	 10399	 10400	 10425	 10474	 10481	 10486	 10490	 10491	 10492	 10493	 10494	 10495
	 10496	 10497	 10498	 10499	 10517	 10533	 10536	 10539	 10561	 10578	 10581	 10585	 10596	 10599
	 10602	 10605	 10613	 10621	 10628	 10778	 10785	 10788	 10795	 10799	 10807	 10821	 10836	 10844
	 10870	 10873	 10894	 11016	 11019	 11024	 11025	 11026	 11197	 11247	 11250	 11256	 11260	 11273
	 11433	 11444	 11449	 11453	 11488	 11491	 11919	 11925	 11981	 12035	 12134	 12136	 12142	 12144
	 12151	 12153
GTAD	 11927	 12030
HALT	   212	   728
MFLD	  4231#	  4231	  4237#	  4237	  4239#	  4239	  4241#	  4241	  4243#	  4243	  4245#	  4245	  4251#	  4251
	  4521#	  4521	  4523#	  4523	  4529#	  4529	  4531#	  4531	  4533#	  4533	  4535#	  4535	  4537#	  4537
	  4543#	  4543	  4885#	  4885	  4887#	  4887	  4889#	  4889	  4891#	  4891	  5003#	  5003	  5005#	  5005
	  5007#	  5007	  5009#	  5009	  5011#	  5011	  5013#	  5013	  5015#	  5015	  5167#	  5167	  5169#	  5169
	  5294#	  5294	  5296#	  5296	  5298#	  5298	  5300#	  5300	  5303#	  5303	  5305#	  5305	  5307#	  5307
	  5309#	  5309	  5311#	  5311	  5313#	  5313	  5315#	  5315	  5317#	  5317	  5319#	  5319	  5321#	  5321
	  5713#	  5713	  6259#	  6259	  6261#	  6261	  6263#	  6263	  6265#	  6265	  8175#	  8175
MWORD	  4231	  4237	  4239	  4241	  4243	  4245	  4251	  4521	  4523	  4529	  4531	  4533	  4535	  4537
	  4543	  4885	  4887	  4889	  4891	  5003	  5005	  5007	  5009	  5011	  5013	  5015	  5167	  5169
	  5294	  5296	  5298	  5300	  5303	  5305	  5307	  5309	  5311	  5313	  5315	  5317	  5319	  5321
	  5713	  6259	  6261	  6263	  6265	  8175
PCRL	   261	   681	   688	   879	   886	  1226	  1546	  2214	  2218	  2233	  2237	  2256	  2279	  2303
	  2332	  2339	  2372	  2381	  2418	  2446	  2471	  2497	  2521	  2546	  2578	  2617	  2632	  2648
	  2663	  2679	  2683	  2703	  2723	  2742	  2865	  2980	  3010	  3089	  3110	  3176	  3252	  3863
	  3881	  3896	  3909	  4060	  4358	  4794	  4996	  5104	  5200	  5242	  5706	  5961	  6109	  6118
	  6143	  6153	  6169	  6228	  6330	  6412	  6562	  6604	  6742	  6888	  6894	  6915	  7009	  7096
	  7210	  7464	  7603	  7824	  7860	  8283	  8308	  8529	  8579	  8597	 10414	 10438	 12166
PCRL2	  2426
PCRLF	   320	   381	   436	   664	   673	   853	  1556	  3230	  3478	  3560	  3563	  3608	  3613	  3617
	  3637	  5979	  6010	  6503	  6512
PFORCE	   380	   469	   771	  1555	  1599	  1964	  2786
PGMINT	   165
PJRST	  5456	  5463	  5470	  5476	  5516	  5524	  5532	  5538	  5544	  5550	  5556	  6902	 11274
PNT1	  7273	  7276	  7281	  7284	  7287	  7290	  7293	  7305	  7308	  7329	  7332	  7335	  7498	  7521
PNT2	  1216	  5276	  6700
PNT3	  2621	  2623	  2625	  2627	  2629	  2631	  2652	  2654	  2656	  2658	  2660	  2662	  4983	  5193
	  5235	 10446	 10448	 10450	 10452	 10455	 10457	 11039	 11041	 11043	 11045	 11047	 11049	 11062
	 11127	 11192	 11213
PNT4	  3005	  3103	  3106	  3166	  3169	  3864	  6145	  7355	  7357	  7362	  7364	  7366	  8297	  8530
PNT4F	  3483	  3567
PNTADR	  9899	  9903
PNTCI	  6044	  7981	  7999	  8049	  8120	  8130
PNTCIF	   967	   975	  7972	  7990	  8040
PNTDCC	  7815	  7817	  7819	  7846	  7848	  7850	  7853	  7855
PNTDCF	  1065	  1198                                                                                                     SEQ 0491
PNTDCL	 10648	 10684	 10687
PNTDEC	   256	  1221	  2549	  2706	  2726	  2745	  5991	  6398	  6401	  6711	  6718	  6725	  6732	  6739
	  6983	  8082	  8260	  8285	  8288	  8524	 10564	 10781	 11253
PNTHW	  2380	  3109	  3172	  3251	  4045	  4344	  5279	  6405	  6408	  6411	  7431	 10660	 10904	 11022
	 11441	 11458	 11461	 11464	 11467	 12165
PNTHWF	 10291
PNTMSF	   209	   313	   382	   433	   451	   643	   650	   661	   670	   696	   707	   710	   721	   736
	   747	   759	   768	   831	   835	   838	   850	   872	   899	   909	   915	   926	   946	   952
	   964	   970	   972	   978	  1005	  1063	  1066	  1085	  1110	  1193	  1196	  1199	  1200	  1509
	  1557	  1572	  1591	  1788	  1863	  1875	  1882	  1910	  1915	  1952	  1961	  2135	  2138	  2144
	  2200	  2208	  2225	  2245	  2268	  2292	  2315	  2321	  2346	  2353	  2359	  2362	  2369	  2388
	  2398	  2408	  2415	  2434	  2459	  2466	  2486	  2510	  2533	  2540	  2561	  2573	  2608	  2644
	  2671	  2690	  2697	  2715	  2734	  2756	  2783	  2859	  2873	  2876	  2888	  2900	  2910	  2921
	  2949	  2968	  2971	  2976	  2992	  2996	  2999	  3007	  3037	  3042	  3062	  3065	  3119	  3141
	  3215	  3219	  3222	  3227	  3237	  3242	  3260	  3266	  3269	  3274	  3286	  3307	  3310	  3325
	  3392	  3402	  3413	  3419	  3423	  3476	  3484	  3487	  3490	  3495	  3498	  3503	  3506	  3511
	  3514	  3519	  3522	  3557	  3568	  3615	  3635	  3667	  3668	  3669	  3670	  3671	  3672	  3673
	  3674	  3675	  3676	  3677	  3678	  3679	  3680	  3681	  3682	  3683	  3684	  3788	  3789	  3790
	  3791	  3795	  3799	  3803	  3804	  3805	  3806	  3807	  3821	  3825	  3826	  3832	  3833	  3834
	  3835	  3976	  3984	  3995	  4001	  4005	  4071	  4074	  4079	  4086	  4089	  4155	  4163	  4174
	  4179	  4183	  4273	  4281	  4292	  4298	  4302	  4369	  4372	  4378	  4383	  4386	  4448	  4456
	  4467	  4472	  4476	  4559	  4565	  4571	  4602	  4608	  4614	  4653	  4663	  4674	  4679	  4683
	  4726	  4736	  4747	  4752	  4756	  4808	  4813	  4823	  4915	  5031	  5037	  5043	  5057	  5411
	  5510	  5564	  5567	  5573	  5576	  5579	  5599	  5602	  5608	  5611	  5614	  5634	  5637	  5643
	  5646	  5649	  5667	  5689	  5692	  5728	  5734	  5740	  5775	  5781	  5787	  5822	  5832	  5843
	  5848	  5852	  5890	  5900	  5911	  5916	  5920	  5968	  5971	  5976	  5983	  5999	  6002	  6007
	  6014	  6024	  6067	  6090	  6125	  6161	  6164	  6176	  6273	  6276	  6301	  6304	  6326	  6338
	  6350	  6364	  6422	  6434	  6445	  6449	  6452	  6463	  6470	  6498	  6516	  6517	  6518	  6519
	  6520	  6521	  6522	  6523	  6524	  6531	  6538	  6545	  6548	  6558	  6571	  6574	  6579	  6587
	  6593	  6598	  6621	  6632	  6638	  7110	  7969	  7975	  7987	  7993	  8037	  8043	  9399	  9414
	  9419	  9431	  9454	  9458	  9484	  9486	  9508	 10289
PNTMSG	   253	   257	   470	   786	   794	   812	   822	   888	  1214	  1219	  1222	  1287	  1288	  1289
	  1290	  1291	  1292	  1293	  1294	  1295	  1296	  1297	  1298	  1299	  1300	  1301	  1302	  1303
	  1304	  1305	  1306	  1307	  1308	  1309	  1600	  1995	  2010	  2015	  2019	  2029	  2034	  2039
	  2044	  2052	  2057	  2062	  2068	  2074	  2082	  2087	  2090	  2094	  2107	  2114	  2124	  2215
	  2234	  2257	  2259	  2261	  2280	  2282	  2284	  2304	  2306	  2308	  2333	  2336	  2373	  2378
	  2441	  2447	  2449	  2451	  2472	  2474	  2475	  2498	  2500	  2502	  2522	  2524	  2526	  2547
	  2550	  2619	  2650	  2680	  2704	  2707	  2724	  2727	  2743	  2746	  2758	  2787	  2863	  3003
	  3053	  3069	  3072	  3075	  3092	  3095	  3101	  3104	  3107	  3125	  3167	  3170	  3173	  3249
	  3293	  3296	  3300	  3865	  3891	  3898	  4022	  4027	  4030	  4323	  4325	  4328	  4764	  4781
	  4947	  4948	  4949	  4950	  4951	  4952	  4953	  4954	  4955	  4956	  4957	  4958	  4959	  4960
	  4961	  4962	  4978	  4981	  4987	  5076	  5082	  5089	  5094	  5101	  5113	  5123	  5128	  5135
	  5136	  5143	  5144	  5160	  5181	  5197	  5214	  5223	  5225	  5274	  5679	  5680	  5696	  5697
	  5698	  5699	  5700	  5928	  5948	  5989	  5992	  6041	  6047	  6096	  6111	  6146	  6211	  6220
	  6238	  6239	  6240	  6241	  6242	  6243	  6244	  6245	  6246	  6247	  6248	  6249	  6250	  6251
	  6252	  6253	  6293	  6319	  6384	  6386	  6387	  6388	  6389	  6390	  6391	  6392	  6393	  6396
	  6399	  6402	  6403	  6406	  6409	  6414	  6514	  6663	  6664	  6665	  6686	  6696	  6698	  6705
	  6709	  6712	  6716	  6719	  6723	  6726	  6730	  6733	  6737	  6740	  6814	  6816	  6821	  6828
	  6830	  6832	  6855	  6857	  6883	  6884	  6886	  6899	  6901	  6919	  6924	  6932	  6934	  6944
	  6946	  6949	  6958	  6969	  6981	  6984	  6986	  6993	  6995	  7002	  7004	  7024	  7041	  7083
	  7085	  7088	  7205	  7209	  7243	  7248	  7253	  7271	  7274	  7279	  7282	  7285	  7288	  7303
	  7306	  7311	  7312	  7313	  7314	  7315	  7316	  7317	  7318	  7319	  7320	  7321	  7322	  7323
	  7324	  7325	  7326	  7327	  7429	  7466	  7481	  7482	  7483	  7484	  7485	  7486	  7487	  7488     SEQ 0492
	  7489	  7490	  7491	  7492	  7493	  7494	  7495	  7496	  7502	  7503	  7504	  7505	  7506	  7507
	  7508	  7509	  7510	  7511	  7512	  7513	  7514	  7515	  7516	  7520	  7581	  7587	  7794	  7800
	  7811	  7812	  7813	  7825	  7831	  7842	  7843	  7844	  7978	  7984	  7996	  8002	  8046	  8052
	  8080	  8083	  8109	  8117	  8123	  8127	  8133	  8201	  8258	  8261	  8262	  8265	  8286	  8289
	  8290	  8296	  8298	  8301	  8307	  8523	  8525	  8526	  8531	  8535	  8539	  8550	  8570	  8582
	  9309	  9896	  9897	  9900	  9901	 10371	 10372	 10373	 10374	 10375	 10378	 10382	 10386	 10409
	 10410	 10411	 10417	 10419	 10423	 10433	 10434	 10435	 10441	 10443	 10471	 10472	 10475	 10514
	 10515	 10518	 10531	 10534	 10537	 10562	 10565	 10572	 10576	 10579	 10590	 10594	 10597	 10600
	 10637	 10654	 10657	 10671	 10673	 10675	 10688	 10695	 10696	 10697	 10698	 10699	 10700	 10701
	 10702	 10707	 10708	 10709	 10710	 10711	 10716	 10717	 10718	 10719	 10720	 10721	 10722	 10724
	 10725	 10726	 10728	 10730	 10732	 10733	 10734	 10735	 10736	 10737	 10738	 10739	 10740	 10741
	 10742	 10743	 10744	 10745	 10746	 10747	 10748	 10749	 10750	 10751	 10752	 10755	 10756	 10757
	 10758	 10759	 10760	 10761	 10762	 10763	 10764	 10765	 10766	 10767	 10768	 10770	 10771	 10779
	 10782	 10783	 10786	 10789	 10793	 10808	 10812	 10822	 10826	 10842	 10846	 10849	 10852	 10855
	 10858	 10861	 10871	 10875	 10878	 10881	 10884	 10895	 10899	 10902	 10920	 10933	 10936	 10943
	 10944	 10945	 10946	 10947	 10948	 10949	 10950	 10953	 10954	 10955	 10956	 10957	 10958	 10959
	 10960	 10961	 11014	 11017	 11020	 11023	 11058	 11063	 11065	 11084	 11096	 11097	 11098	 11099
	 11100	 11101	 11102	 11103	 11104	 11105	 11106	 11107	 11109	 11110	 11111	 11112	 11113	 11114
	 11125	 11128	 11140	 11141	 11142	 11145	 11148	 11151	 11156	 11158	 11159	 11163	 11165	 11166
	 11189	 11197	 11201	 11207	 11218	 11223	 11237	 11240	 11243	 11244	 11245	 11248	 11251	 11254
	 11306	 11307	 11308	 11309	 11310	 11311	 11312	 11313	 11314	 11315	 11316	 11317	 11318	 11319
	 11320	 11321	 11322	 11323	 11324	 11325	 11326	 11327	 11328	 11329	 11330	 11331	 11332	 11333
	 11334	 11335	 11336	 11337	 11338	 11339	 11340	 11341	 11342	 11343	 11344	 11346	 11347	 11348
	 11349	 11350	 11351	 11352	 11353	 11354	 11355	 11356	 11357	 11358	 11359	 11360	 11361	 11362
	 11363	 11364	 11365	 11366	 11367	 11368	 11369	 11371	 11372	 11373	 11374	 11375	 11376	 11377
	 11378	 11379	 11380	 11381	 11382	 11383	 11384	 11385	 11386	 11387	 11388	 11389	 11390	 11391
	 11392	 11393	 11394	 11396	 11397	 11398	 11399	 11400	 11401	 11402	 11403	 11404	 11405	 11406
	 11407	 11408	 11409	 11410	 11411	 11412	 11413	 11414	 11415	 11416	 11417	 11418	 11419	 11430
	 11431	 11435	 11437	 11439	 11442	 11446	 11447	 11451	 11455	 11456	 11459	 11462	 11465	 11468
	 11472	 11473	 11476	 11479	 11480	 11481	 11482	 11483	 11486	 11489	 12162
PNTOCC	  3897	  4783	  5224	  5701	  5950	  6110	  6515	  7270	  7278	  7296	  7299	  7302	  8581	 10415
	 10422	 10439	 11434	 11436	 11438	 11445	 11450	 11454	 11484	 11485
PNTOCF	   435	   663	   672	   852	  3596	  5978	  6009
PNTOCS	   890	  2217	  2236	  2682	  3074	  3094	  3175	  3295	  3299	  4029	  4327	  4980	  6395	  7207
	  7245	  7249	  8264	  8560	  9311	 10575	 10593	 10792	 10811	 10814	 10825	 10828	 10848	 10851
	 10854	 10857	 10860	 10863	 10877	 10880	 10883	 10886	 10901	 10919	 10935	 11086	 11144	 11147
	 11150	 11200	 11222	 11239	 11294	 11478
PNTSIX	  2335	  2338	  6043	  6046	  7980	  7983	  7998	  8001	  8048	  8051	  8119	  8122	  8129	  8132
PNTSXF	   966	   969	   974	   977	  7971	  7974	  7989	  7992	  8039	  8042
PSP	   891	  1217	  4784	  5951	  6701	  7291	  7294	  7297	  7300	  7309	  7330	  7333
PSPF	  3597
PUT	  1019	  1021	  3164	  3185	  3187	  3916	  3918	  3944	  3946	  4589	  4632	  4702	  5070	  5072
	  5178	  5180	  5209	  5211	  5345	  5371	  5381	  5383	  5754	  5762	  5801	  5866	  6353	  6367
	  6369	  6625	  6627	  6897	  6899	  7020	  7022	  7044	  7054	  7056	  7078	  7080	  7091	  7093
	  7122	  7124	  7166	  7168	  7197	  7199	  7241	  7243	  7267	  7269	  7352	  7354	  7388	  7390
	  7427	  7429	  7451	  7453	  7528	  7530	  7548	  7550	  7551	  7574	  7576	  7658	  7660	  7703
	  7705	  7789	  7791	  7942	  8021	  8023	  8105	  8107	  8140	  8197	  8199	  8281	  8283	  8317
	  8319	  8405	  8407	  8431	  8432	  8434	  8519	  8521	  8568	  8570	  8644	  8646	  9168	  9170
	  9197	  9199	  9278	  9280	  9543	  9545	  9593	  9595	  9713	  9760	  9762	  9784	  9786	  9816
	  9818	  9880	  9882	  9921	  9923	 10028	 10030	 10080	 10082	 10153	 10155	 10217	 10236	 10238
	 10277	 10279	 10328	 10352	 10354	 10467	 10469	 10485	 10488	 10490	 10510	 10512	 10529	 10531
	 10916	 10918	 10977	 11009	 11011	 11056	 11058	 11121	 11123	 11235	 11237	 11271	 11273	 11283
	 11285	 11428	 11430	 11917	 11919	 11968	 11979	 11981	 12079	 12081	 12138	 12140	 12146	 12148     SEQ 0493
	 12155	 12157
RGET	  1032	  3202	  3936	  3959	  5161	  5201	  5243	  5401	  6374	  6633	  6639	  7012	  7038	  7066
	  7101	  7158	  7183	  7220	  7224	  7256	  7341	  7367	  7418	  7438	  7473	  7539	  7562	  7608
	  7693	  7781	  7861	  8093	  8167	  8268	  8309	  8334	  8503	  8551	  8598	  8820	  9189	  9214
	  9329	  9581	  9729	  9772	  9794	  9855	  9890	 10005	 10065	 10140	 10206	 10266	 10294	 10403
	 10500	 10502	 10540	 10937	 11027	 11090	 11167	 11261	 11300	 11496	 11939	 12051	 12086
RPUT	  1019	  3185	  3916	  3944	  5070	  5178	  5209	  5381	  6367	  6625	  6897	  7020	  7054	  7078
	  7091	  7122	  7166	  7197	  7241	  7267	  7352	  7388	  7427	  7451	  7528	  7548	  7574	  7658
	  7703	  7789	  8021	  8105	  8197	  8281	  8317	  8405	  8432	  8519	  8568	  8644	  9168	  9197
	  9278	  9543	  9593	  9760	  9784	  9816	  9880	  9921	 10028	 10080	 10153	 10236	 10277	 10352
	 10467	 10488	 10510	 10529	 10916	 11009	 11056	 11121	 11235	 11271	 11283	 11428	 11917	 11979
	 12079	 12138	 12146	 12155
RTN	   225	   252	   262	   325	   383	   465	   550	   625	   645	   652	   666	   675	   689	   698
	   709	   715	   723	   738	   740	   749	   751	   761	   764	   770	   774	   778	   840	   846
	   847	   855	   874	   880	   887	   901	   903	   911	   913	   917	   919	   928	   932	   948
	   954	   971	   980	  1007	  1034	  1068	  1087	  1186	  1189	  1206	  1212	  1218	  1227	  1511
	  1558	  1786	  1790	  1792	  1865	  1870	  1877	  1879	  1884	  1886	  1912	  1914	  1917	  1919
	  1954	  1957	  1963	  1967	  1971	  2137	  2140	  2146	  2148	  2202	  2210	  2212	  2219	  2227
	  2231	  2238	  2247	  2250	  2252	  2254	  2262	  2270	  2273	  2275	  2277	  2285	  2294	  2297
	  2299	  2301	  2309	  2317	  2323	  2330	  2340	  2348	  2355	  2361	  2364	  2368	  2370	  2382
	  2390	  2400	  2410	  2417	  2427	  2436	  2439	  2442	  2444	  2452	  2461	  2467	  2469	  2476
	  2488	  2491	  2493	  2495	  2503	  2512	  2515	  2517	  2519	  2527	  2535	  2542	  2544	  2551
	  2564	  2574	  2585	  2591	  2597	  2603	  2610	  2633	  2646	  2664	  2673	  2677	  2684	  2692
	  2699	  2701	  2708	  2717	  2721	  2728	  2736	  2740	  2747	  2755	  2757	  2777	  2785	  2788
	  2861	  2866	  2875	  2878	  2881	  2890	  2893	  2902	  2904	  2912	  2914	  2923	  2931	  2951
	  2970	  2973	  2975	  2981	  2994	  2998	  3001	  3011	  3047	  3064	  3067	  3091	  3111	  3121
	  3129	  3134	  3143	  3147	  3178	  3204	  3217	  3221	  3224	  3226	  3231	  3239	  3244	  3253
	  3262	  3268	  3271	  3276	  3279	  3288	  3301	  3309	  3312	  3318	  3327	  3332	  3394	  3404
	  3416	  3421	  3425	  3473	  3489	  3492	  3497	  3500	  3505	  3508	  3513	  3516	  3521	  3524
	  3538	  3564	  3659	  3689	  3691	  3693	  3695	  3697	  3699	  3701	  3703	  3705	  3707	  3709
	  3711	  3713	  3715	  3717	  3719	  3721	  3723	  3728	  3730	  3732	  3734	  3736	  3738	  3740
	  3742	  3744	  3746	  3748	  3750	  3752	  3754	  3756	  3758	  3760	  3762	  3849	  3854	  3882
	  3910	  3938	  3961	  3978	  3986	  3998	  4003	  4007	  4063	  4073	  4076	  4081	  4088	  4091
	  4140	  4157	  4165	  4176	  4181	  4185	  4227	  4275	  4283	  4295	  4300	  4304	  4329	  4361
	  4371	  4374	  4380	  4385	  4388	  4433	  4450	  4458	  4469	  4474	  4478	  4517	  4561	  4567
	  4568	  4573	  4604	  4610	  4611	  4616	  4655	  4665	  4676	  4681	  4685	  4709	  4728	  4738
	  4749	  4754	  4758	  4782	  4795	  4807	  4810	  4815	  4822	  4825	  4833	  4881	  4911	  4917
	  4924	  4999	  5045	  5050	  5059	  5064	  5163	  5203	  5245	  5290	  5349	  5375	  5403	  5413
	  5430	  5512	  5566	  5569	  5575	  5578	  5581	  5591	  5601	  5604	  5610	  5613	  5616	  5626
	  5636	  5639	  5645	  5648	  5651	  5661	  5669	  5709	  5730	  5736	  5737	  5742	  5777	  5783
	  5784	  5789	  5824	  5834	  5845	  5850	  5854	  5873	  5892	  5902	  5913	  5918	  5922	  5949
	  5962	  5970	  5973	  5981	  5985	  5993	  6001	  6004	  6012	  6016	  6018	  6026	  6029	  6048
	  6054	  6061	  6069	  6072	  6084	  6092	  6095	  6119	  6127	  6130	  6154	  6163	  6166	  6170
	  6178	  6234	  6275	  6278	  6294	  6303	  6306	  6320	  6328	  6331	  6340	  6343	  6352	  6358
	  6366	  6376	  6415	  6424	  6427	  6436	  6438	  6447	  6453	  6454	  6462	  6465	  6472	  6494
	  6504	  6513	  6533	  6540	  6547	  6550	  6551	  6560	  6563	  6573	  6576	  6581	  6589	  6595
	  6600	  6606	  6609	  6613	  6623	  6634	  6640	  6702	  6824	  6833	  6941	  6950	  7014	  7040
	  7068	  7103	  7113	  7160	  7185	  7222	  7226	  7235	  7258	  7340	  7343	  7369	  7420	  7440
	  7475	  7499	  7519	  7522	  7541	  7564	  7610	  7624	  7632	  7639	  7644	  7668	  7681	  7691
	  7695	  7717	  7765	  7775	  7783	  7863	  7872	  7938	  7957	  7965	  7976	  7985	  7994	  8003
	  8053	  8084	  8095	  8134	  8171	  8266	  8270	  8280	  8311	  8336	  8398	  8400	  8404	  8461
	  8505	  8518	  8553	  8562	  8600	  8625	  8633	  8822	  9191	  9216	  9331	  9361	  9387	  9395
	  9404	  9424	  9436	  9444	  9463	  9469	  9531	  9563	  9583	  9592	  9731	  9753	  9774	  9796     SEQ 0494
	  9857	  9892	  9978	 10007	 10026	 10067	 10142	 10152	 10179	 10208	 10216	 10225	 10268	 10293
	 10296	 10336	 10370	 10405	 10504	 10542	 10586	 10606	 10614	 10622	 10630	 10635	 10800	 10815
	 10829	 10838	 10864	 10887	 10908	 10939	 10990	 11029	 11050	 11092	 11169	 11195	 11202	 11215
	 11263	 11302	 11498	 11910	 11913	 11941	 11964	 11973	 11975	 12053	 12088	 12168
SCOPER	  8628
SYERR	 11934	 12043
TMSG	   257	   888	  1214	  1219	  1222	  1287	  1288	  1289	  1290	  1291	  1292	  1293	  1294	  1295
	  1296	  1297	  1298	  1299	  1300	  1301	  1302	  1303	  1304	  1305	  1306	  1307	  1308	  1309
	  2215	  2234	  2257	  2280	  2304	  2333	  2336	  2373	  2378	  2447	  2472	  2498	  2522	  2547
	  2619	  2650	  2680	  2704	  2724	  2743	  3092	  3104	  3107	  3167	  3170	  3173	  3296	  3865
	  3898	  4027	  4030	  4323	  4328	  4981	  4987	  5082	  5089	  5094	  5113	  5123	  5128	  5225
	  6111	  6146	  6238	  6239	  6240	  6241	  6242	  6243	  6244	  6245	  6246	  6247	  6248	  6249
	  6250	  6251	  6252	  6253	  6396	  6399	  6402	  6406	  6409	  6514	  6698	  6705	  6712	  6719
	  6726	  6733	  6740	  6830	  6886	  6901	  6946	  7085	  7088	  7205	  7209	  7243	  7248	  7253
	  7271	  7274	  7279	  7282	  7285	  7288	  7303	  7306	  7311	  7312	  7313	  7314	  7315	  7316
	  7317	  7318	  7319	  7320	  7321	  7322	  7323	  7324	  7325	  7326	  7327	  7466	  7481	  7482
	  7483	  7484	  7485	  7486	  7487	  7488	  7489	  7490	  7491	  7492	  7493	  7494	  7495	  7496
	  7502	  7503	  7504	  7505	  7506	  7507	  7508	  7509	  7510	  7511	  7512	  7513	  7514	  7515
	  7516	  7520	  7796	  7827	  7978	  7984	  7996	  8002	  8286	  8289	  8298	  8301	  8525	  8531
	  8535	  8539	  8582	  9900	 10375	 10378	 10382	 10417	 10419	 10423	 10441	 10443	 10475	 10518
	 10534	 10537	 10565	 10695	 10696	 10697	 10698	 10699	 10700	 10701	 10702	 10707	 10708	 10709
	 10710	 10711	 10716	 10717	 10718	 10719	 10720	 10721	 10722	 10724	 10725	 10726	 10728	 10730
	 10732	 10733	 10734	 10735	 10736	 10737	 10738	 10739	 10740	 10741	 10742	 10743	 10744	 10745
	 10746	 10747	 10748	 10749	 10750	 10751	 10752	 10755	 10756	 10757	 10758	 10759	 10760	 10761
	 10762	 10763	 10764	 10765	 10766	 10767	 10768	 10770	 10771	 10782	 10849	 10852	 10858	 10861
	 10878	 10881	 10902	 10920	 10933	 10936	 10943	 10944	 10945	 10946	 10947	 10948	 10949	 10950
	 10953	 10954	 10955	 10956	 10957	 10958	 10959	 10960	 10961	 11017	 11063	 11065	 11084	 11096
	 11097	 11098	 11099	 11100	 11101	 11102	 11103	 11104	 11105	 11106	 11107	 11109	 11110	 11111
	 11112	 11113	 11114	 11128	 11140	 11141	 11142	 11145	 11148	 11151	 11156	 11158	 11159	 11163
	 11165	 11166	 11201	 11223	 11240	 11243	 11244	 11245	 11248	 11251	 11254	 11306	 11307	 11308
	 11309	 11310	 11311	 11312	 11313	 11314	 11315	 11316	 11317	 11318	 11319	 11320	 11321	 11322
	 11323	 11324	 11325	 11326	 11327	 11328	 11329	 11330	 11331	 11332	 11333	 11334	 11335	 11336
	 11337	 11338	 11339	 11340	 11341	 11342	 11343	 11344	 11346	 11347	 11348	 11349	 11350	 11351
	 11352	 11353	 11354	 11355	 11356	 11357	 11358	 11359	 11360	 11361	 11362	 11363	 11364	 11365
	 11366	 11367	 11368	 11369	 11371	 11372	 11373	 11374	 11375	 11376	 11377	 11378	 11379	 11380
	 11381	 11382	 11383	 11384	 11385	 11386	 11387	 11388	 11389	 11390	 11391	 11392	 11393	 11394
	 11396	 11397	 11398	 11399	 11400	 11401	 11402	 11403	 11404	 11405	 11406	 11407	 11408	 11409
	 11410	 11411	 11412	 11413	 11414	 11415	 11416	 11417	 11418	 11419	 11479	 11480	 11481	 11482
	 11483	 11486	 11489
TMSGC	   253	  2863	  3003	  3069	  3072	  3101	  3249	  3293	  3891	  4022	  4325	  4764	  4781	  4947
	  4948	  4949	  4950	  4951	  4952	  4953	  4954	  4955	  4956	  4957	  4958	  4959	  4960	  4961
	  4962	  4978	  5076	  5101	  5135	  5136	  5143	  5144	  5181	  5197	  5211	  5223	  5274	  5679
	  5680	  5696	  5697	  5698	  5699	  5700	  5928	  5948	  5989	  6041	  6096	  6211	  6220	  6384
	  6386	  6387	  6388	  6389	  6390	  6391	  6392	  6393	  6403	  6663	  6664	  6696	  6709	  6716
	  6723	  6730	  6737	  6828	  6884	  6899	  6944	  6981	  7083	  7429	  7794	  7811	  7812	  7813
	  7825	  7842	  7843	  7844	  8046	  8080	  8117	  8127	  8258	  8262	  8290	  8296	  8307	  8523
	  8526	  8550	  8570	  9309	  9896	  9897	  9901	 10371	 10372	 10373	 10374	 10386	 10409	 10410
	 10411	 10433	 10434	 10435	 10471	 10472	 10514	 10515	 10531	 10562	 10572	 10576	 10579	 10590
	 10594	 10597	 10600	 10637	 10654	 10657	 10671	 10673	 10675	 10688	 10779	 10783	 10786	 10789
	 10793	 10808	 10812	 10822	 10826	 10842	 10846	 10855	 10871	 10875	 10884	 10895	 10899	 11014
	 11020	 11023	 11058	 11125	 11189	 11197	 11207	 11218	 11237	 11430	 11431	 11435	 11437	 11439
	 11442	 11446	 11447	 11451	 11455	 11456	 11459	 11462	 11465	 11468	 11472	 11473	 11476
TMSGCD	   786	  1995	  2441	  2758	  3053	  3125	  5160	  6293	  6319	  6414	  6665	  6686	  6814	  6816     SEQ 0495
	  6821	  6855	  6857	  6883	  6919	  6924	  6932	  6934	  6958	  6969	  6986	  6993	  6995	  7002
	  7004	  7024	  7041	  8109	  8201	 12162
TMSGD	   788	   796	   814	  1997	  2012	  2017	  2021	  2031	  2036	  2041	  2046	  2054	  2059	  2064
	  2070	  2076	  2084	  2089	  2092	  2096	  2109	  2116	  2259	  2261	  2282	  2284	  2306	  2308
	  2449	  2451	  2474	  2475	  2500	  2502	  2524	  2526	  2550	  2707	  2727	  2746	  3075	  3095
	  3300	  5992	  6047	  6832	  6949	  6984	  7577	  7587	  8052	  8083	  8123	  8133	  8261	  8265
TTALTM	   686	  1161	  2421	  3087	  3127	  3847	  3871	  4048	  4216	  4345	  4505	  4788	  4871	  4988
	  5237	  5955	  6115	  6150	  6372	  6607	  6671	  7336
TTIDEC	  1111
TTSIXB	   388	  1563	  3600
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 1
DFNIA2	MAC	 8-Jun-83 15:52		Test Module DFNIA2.MAC                                                             SEQ 0496

     1						SUBTTL	Test Module DFNIA2.MAC
     2
     3						SALL
     4
     5						SEARCH	DFNIA,MONSYM
     6
     7					; Tests 1-3
     8
     9						ENTRY	TST1,TST2,TST3
    10						ENTRY	T2M,T3M
    11
    12					; Miscellaneous routines
    13
    14						ENTRY	MSTART,MWAIT,MPRINT
    15						INTERN	SAVCSR,SAVLAR,SAVEBU,SAVCOD
    16
    17					; EXTERN's located in DFNIA1.MAC
    18
    19						EXTERN	UDEBUG,DDEBUG,BUFF,CSRPNT,TRACE,TSTSUB,TLOAD,TFLOAD,PCB
    20						EXTERN	TFMFLG,TRSFLG,TBYTE,TWORD,TPAT,TREGN,TREGD,PACKET
    21						EXTERN	TSLOAD,TSTTAB
    22
    23					; EXTERN's located in DFNIAI.MAC (Port Handling Routines module)
    24
    25						EXTERN	LDEBUF,LDRAR,LDCRAM,LDCSR,RDEBUF,RDLAR,RDCRAM,RDCSR
    26						EXTERN	ERESET,IPACLR,.DATAI,.DATAO,CHINIT
    27
    28					; EXTERN's located in DFNIAU.MAC (Utility Routines module)
    29
    30						EXTERN	BUFGEN,SCOSW
    31
    32					;#********************************************************************
    33					; Z2 - Address for use in DDT
    34					;#********************************************************************
    35
    36	000000'				Z2:					; address of 00000'
    37
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 2
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0497

    38						SUBTTL	Port Modules
    39
    40					;#********************************************************************
    41					;* TEST 1 - Port Hardware Test 1
    42					;
    43					; Description:  This test verifies the major data paths in  the 3
    44					;		port modules.  Data patterns are written  to  the
    45					;		CSR register, EBUF, and CRAM and  read  back  and
    46					;		verified.
    47					;
    48					; Procedure:	KL> Read/write data patterns to CSR register
    49					;		KL> Verify the results
    50					;		KL> Read/write data patterns to EBUF
    51					;		KL> Verify the results
    52					;		KL> Read/write data patterns to CRAM each location
    53					;		KL> Verify the results
    54					;
    55					; FRU:		EBUS/MPROC/CBUS Modules
    56					;#********************************************************************
    57
    58					; Initialization
    59
    60	000000'	201 00 0 00 000000'	TST1:	MOVEI	Z2			; get address of module start
    61	000001'	260 17 0 00 000000*		GO	TRACE			; handle trace output
    62	000002'	476 00 0 00 000000*		SETOM	TSLOAD			; reset microcode loaded flag
    63
    64					;#*******************************************************************
    65					; First read/write the CSR register
    66					;#*******************************************************************
    67
    68	000003'	400 06 0 00 000000 		SETZ	6,			; clear bit table pointer
    69
    70					; First, set the bit
    71
    72	000004'	350 00 0 00 000000*	TA1:	AOS	TSTSUB			; increment subtest number
    73	000005'	336 01 0 06 000245'		SKIPN	1,TA1PAT(6)		; get bit to write
    74	000006'	254 00 0 00 000045'		JRST	TB1			; zero - end of this segment
    75	000007'	260 17 0 00 000000*		GO	ERESET			; do an EBUS reset
    76	000010'	202 01 0 00 003206'		MOVEM	1,SAVCS1#		; save data
    77	000011'	260 17 0 00 000000*		GO	LDCSR			; write data
    78	000012'	260 17 0 00 000000*		GO	RDCSR			; read CSR
    79	000013'	255 00 0 00 000000 		JFCL				; ignore error
    80	000014'	202 01 0 00 003210'		MOVEM	1,SAVCS3#		; save data
    81	000015'	200 00 0 06 000246'		MOVE	TA1PAT+1(6)		; get correct data
    82	000016'	202 00 0 00 003207'		MOVEM	SAVCS2#			; save data
    83	000017'	312 00 0 00 000001 		CAME	1			; actual same as correct?
    84	000020'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
    85	000021'	027 00 0 00 000127'		SCOPER	MA1			; print error message
    86	000022'	255 00 0 00 000000 		JFCL				; loop on error
    87	000023'	254 00 0 00 000126'		JRST	TX1			; altmode exit
    88	000024'	326 15 0 00 000126'		JUMPN	ERFLG,TX1		; error? yes - exit
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 3
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0498

    89
    90					; Then, clear the bit
    91
    92	000025'	350 00 0 00 000004*		AOS	TSTSUB			; point to next subtest
    93	000026'	403 01 0 00 003206'		SETZB	1,SAVCS1		; zero
    94	000027'	260 17 0 00 000011*		GO	LDCSR			; clear the bit
    95	000030'	260 17 0 00 000012*		GO	RDCSR			; read CSR
    96	000031'	255 00 0 00 000000 		JFCL				; ignore error
    97	000032'	202 01 0 00 003210'		MOVEM	1,SAVCS3		; save data
    98	000033'	200 00 0 06 000247'		MOVE	TA1PAT+2(6)		; get correct data
    99	000034'	202 00 0 00 003207'		MOVEM	SAVCS2			; save data
   100	000035'	312 00 0 00 000001 		CAME	1			; actual same as correct?
   101	000036'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   102	000037'	027 00 0 00 000127'		SCOPER	MA1			; print error message
   103	000040'	255 00 0 00 000000 		JFCL				; loop on error
   104	000041'	254 00 0 00 000126'		JRST	TX1			; altmode exit
   105	000042'	326 15 0 00 000126'		JUMPN	ERFLG,TX1		; error? yes - exit
   106
   107					; Increment bit table pointer
   108
   109	000043'	271 06 0 00 000003 		ADDI	6,3			; point to next entry
   110	000044'	254 00 0 00 000004'		JRST	TA1			; repeat this segment
   111
   112					;#********************************************************************
   113					; Next, read/write the EBUF
   114					;#********************************************************************
   115
   116	000045'	400 06 0 00 000000 	TB1:	SETZ	6,			; clear bit table pointer
   117
   118					; First, get the data pattern to write
   119
   120	000046'	350 00 0 00 000025*	TC1:	AOS	TSTSUB			; set up subtest number
   121	000047'	200 01 0 06 000333'		MOVE	1,TC1PAT(6)		; get pattern to write
   122	000050'	306 01 0 00 000377 		CAIN	1,377			; end of table?
   123	000051'	254 00 0 00 000072'		JRST	TD1			; yes - end of this segment
   124
   125					; First test segment - verify EBUF write/read correctly
   126
   127	000052'	202 01 0 00 003211'		MOVEM	1,SAVEB1#		; save data
   128	000053'	260 17 0 00 000007*		GO	ERESET			; do an EBUS Reset
   129	000054'	201 01 0 00 200000 		MOVEI	1,TSTEBF		; get 'DIAG Test EBUF' bit
   130	000055'	260 17 0 00 000027*		GO	LDCSR			; write to CSR
   131	000056'	200 01 0 00 003211'		MOVE	1,SAVEB1		; get data pattern
   132	000057'	260 17 0 00 000000*		GO	LDEBUF			; write to EBUF
   133	000060'	260 17 0 00 000000*		GO	RDEBUF			; write to EBUF
   134	000061'	202 01 0 00 003212'		MOVEM	1,SAVEB2#		; save EBUF data
   135	000062'	312 01 0 00 003211'		CAME	1,SAVEB1		; correct?
   136	000063'	474 15 0 00 000000 		SETO	ERFLG,			; no - flag error
   137	000064'	027 00 0 00 000155'		SCOPER	MC1			; print error message
   138	000065'	255 00 0 00 000000 		JFCL				; loop on error
   139	000066'	254 00 0 00 000126'		JRST	TX1			; altmode exit
   140	000067'	326 15 0 00 000126'		JUMPN	ERFLG,TX1		; error? yes - exit
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 4
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0499

   141
   142					; Increment data pattern pointer
   143
   144	000070'	350 00 0 00 000006 		AOS	6			; point to next data pattern
   145	000071'	254 00 0 00 000046'		JRST	TC1			; repeat this segment
   146
   147					;#********************************************************************
   148					; Now read/write the CRAM
   149					;#********************************************************************
   150
   151	000072'	474 07 0 00 000000 	TD1:	SETO	7,			; initialize CRAM address
   152
   153					; First set up RAR to correct address (left half of CRAM)
   154
   155	000073'	350 00 0 00 000007 	TE1:	AOS	7			; point to next CRAM location
   156	000074'	303 07 0 00 017777 		CAILE	7,17777			; done yet?
   157	000075'	254 00 0 00 000126'		JRST	TX1			; yes - exit
   158	000076'	260 17 0 00 000000*		GO	IPACLR			; do a port clear
   159	000077'	200 01 0 00 000007 		MOVE	1,7			; get address
   160	000100'	202 01 0 00 003205'		MOVEM	1,SAVCRA#		; save CRAM address
   161	000101'	260 17 0 00 000000*		GO	LDRAR			; write it to RAR register
   162
   163					; Next, get the data pattern to write
   164
   165	000102'	400 06 0 00 000000 		SETZ	6,			; clear bit table pointer
   166	000103'	200 01 0 06 000450'	TF1:	MOVE	1,TD1PAT(6)		; get pattern to write
   167	000104'	621 01 0 00 770000 		TLZ	1,770000		; clear unused bits
   168	000105'	202 01 0 00 003203'		MOVEM	1,SAVCR1#		; save data
   169	000106'	306 01 0 00 000377 		CAIN	1,377			; end of table?
   170	000107'	254 00 0 00 000073'		JRST	TE1			; yes - end of segment
   171
   172					; Now write/read the location
   173
   174	000110'	350 00 0 00 000046*		AOS	TSTSUB			; set up subtest number
   175	000111'	260 17 0 00 000000*		GO	LDCRAM			; write CRAM
   176	000112'	260 17 0 00 000000*		GO	RDCRAM			; read CRAM
   177	000113'	621 01 0 00 770000 		TLZ	1,770000		; clear unused bits
   178	000114'	202 01 0 00 003204'		MOVEM	1,SAVCR2#		; save CRAM data
   179	000115'	312 01 0 00 003203'		CAME	1,SAVCR1		; correct?
   180	000116'	474 15 0 00 000000 		SETO	ERFLG,			; no - flag error
   181	000117'	027 00 0 00 000176'		SCOPER	MD1			; print error message
   182	000120'	255 00 0 00 000000 		JFCL				; loop on error
   183	000121'	254 00 0 00 000126'		JRST	TX1			; altmode exit
   184	000122'	326 15 0 00 000126'		JUMPN	ERFLG,TX1		; error? yes - exit
   185
   186					; Increment data pattern pointer
   187
   188	000123'	350 00 0 00 000006 		AOS	6			; point to next data pattern
   189	000124'	336 00 0 00 000000*		SKIPN	UDEBUG			; debug mode?
   190	000125'	254 00 0 00 000103'		JRST	TF1			; no - repeat this segment
   191
   192					; End of test
   193
   194	000126'	263 17 0 00 000000 	TX1:	RTN			; return
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 5
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0500

   195
   196					;#********************************************************************
   197					; Error Messages
   198					;#********************************************************************
   199
   200					; Error messages (CSR Read/Write)
   201
   202	000127'	240000	000132'		MA1:	CALL!TXNOT!MA1PNT
   203	000130'	260000	000137'			CALL!TXALL!M1CSR
   204	000131'	170000	002636'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   205
   206	000132'	037 00 0 00 002642'	MA1PNT:	TMSGC	<Write CSR '>
   207	000133'	200 00 0 00 003206'		MOVE	SAVCS1
   208	000134'	037 16 0 00 000003 		PNTOCS
   209	000135'	037 00 0 00 002645'		TMSG	<', then read CSR, verify result.>
   210	000136'	263 17 0 00 000000 		RTN
   211
   212	000137'	200 01 0 00 000000*	M1CSR:	MOVE	1,SCOSW			; get switches
   213	000140'	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
   214	000141'	037 00 0 00 002654'		TMSGC	<CSR (C):  >		; yes 
   215	000142'	607 01 0 00 000200 		TLNN	1,TXTINH		; inhibit text?
   216	000143'	037 00 0 00 002657'		TMSGC	<CSR (Correct):  >	; no 
   217	000144'	200 00 0 00 003207'		MOVE	SAVCS2			; get CSR data written
   218	000145'	037 13 0 00 000000 		PNTHW
   219	000146'	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
   220	000147'	037 00 0 00 002663'		TMSGC	<    (A):  >		; yes 
   221	000150'	607 01 0 00 000200 		TLNN	1,TXTINH		; inhibit text?
   222	000151'	037 00 0 00 002666'		TMSGC	<     (Actual):  >	; no
   223	000152'	200 00 0 00 003210'		MOVE	SAVCS3			; get CSR data
   224	000153'	037 13 0 00 000000 		PNTHW				; print it
   225	000154'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 6
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0501

   226
   227					; Error messages (EBUF Read/Write)
   228
   229	000155'	140000	002672'		MC1:	MSG!TXNOT![ASCIZ /EBUF data loopback failed./]
   230	000156'	260000	000160'			CALL!TXALL!M1EBUF
   231	000157'	170000	002636'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   232
   233	000160'	200 01 0 00 000137*	M1EBUF:	MOVE	1,SCOSW			; get switches
   234	000161'	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
   235	000162'	037 00 0 00 002700'		TMSGC	<EBUF (C):  >		; yes 
   236	000163'	607 01 0 00 000200 		TLNN	1,TXTINH		; inhibit text?
   237	000164'	037 00 0 00 002703'		TMSGC	<EBUF (Correct):  >	; no 
   238	000165'	200 00 0 00 003211'		MOVE	SAVEB1			; get EBUF data written
   239	000166'	037 13 0 00 000000 		PNTHW
   240	000167'	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
   241	000170'	037 00 0 00 002707'		TMSGC	<     (A):  >		; yes 
   242	000171'	607 01 0 00 000200 		TLNN	1,TXTINH		; inhibit text?
   243	000172'	037 00 0 00 002712'		TMSGC	<      (Actual):  >	; no
   244	000173'	200 00 0 00 003212'		MOVE	SAVEB2			; get EBUF data
   245	000174'	037 13 0 00 000000 		PNTHW
   246	000175'	263 17 0 00 000000 		RTN
   247
   248					; Error messages (CRAM Read/Write)
   249
   250	000176'	140000	002716'		MD1:	MSG!TXNOT![ASCIZ ^CRAM write/read failed.^]
   251	000177'	260000	000201'			CALL!TXALL!M1CRAM
   252	000200'	170000	002636'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   253
   254	000201'	200 01 0 00 000160*	M1CRAM:	MOVE	1,SCOSW			; get switches
   255	000202'	037 00 0 00 002723'		TMSGC	<CRAM Loc: >
   256	000203'	200 00 0 00 003205'		MOVE	SAVCRA			; get address
   257	000204'	242 00 0 00 777777 		LSH	-1			; position correctly
   258	000205'	037 04 0 00 000000 		PNT4				; print it
   259	000206'	200 00 0 00 003205'		MOVE	SAVCRA			; get address
   260	000207'	606 00 0 00 000001 		TRNN	1			; left half?
   261	000210'	037 00 0 00 002726'		TMSG	<(left)>		; yes - print it
   262	000211'	602 00 0 00 000001 		TRNE	1			; right half?
   263	000212'	037 00 0 00 002730'		TMSG	<(right)>		; yes - print it
   264	000213'	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
   265	000214'	037 00 0 00 002732'		TMSGC	<CRAM (C):  >		; yes 
   266	000215'	607 01 0 00 000200 		TLNN	1,TXTINH		; inhibit text?
   267	000216'	037 00 0 00 002735'		TMSGC	<CRAM (Correct):  >	; no 
   268	000217'	200 00 0 00 003203'		MOVE	SAVCR1			; get CRAM data written
   269	000220'	260 17 0 00 000227'		GO	MPNTC			; print it
   270	000221'	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
   271	000222'	037 00 0 00 002707'		TMSGC	<     (A):  >		; yes 
   272	000223'	607 01 0 00 000200 		TLNN	1,TXTINH		; inhibit text?
   273	000224'	037 00 0 00 002712'		TMSGC	<      (Actual):  >	; no
   274	000225'	200 00 0 00 003204'		MOVE	SAVCR2			; get CRAM data
   275	000226'	260 17 0 00 000227'		GO	MPNTC			; print it
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 7
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0502

   276
   277	000227'	261 17 0 00 000001 	MPNTC:	PUT	1			; save AC1
   278	000230'	200 01 0 00 000000 		MOVE	1,0
   279	000231'	135 00 0 00 002741'		LDB	[POINT 3,1,8]		; get digit 1
   280	000232'	037 16 0 00 000003 		PNTOCS				; print it
   281	000233'	135 00 0 00 002742'		LDB	[POINT 3,1,11]		; get digit 2
   282	000234'	037 16 0 00 000003 		PNTOCS				; print it
   283	000235'	135 00 0 00 002743'		LDB	[POINT 3,1,14]		; get digit 3
   284	000236'	037 16 0 00 000003 		PNTOCS				; print it
   285	000237'	135 00 0 00 002744'		LDB	[POINT 3,1,17]		; get digit 4
   286	000240'	037 16 0 00 000003 		PNTOCS				; print it
   287	000241'	135 00 0 00 002745'		LDB	[POINT 18,1,35]		; get right 6 octal digits
   288	000242'	037 06 0 00 000000 		PNT6				;   and print them out
   289	000243'	262 17 0 00 000001 		GET	1			; restore AC1
   290	000244'	263 17 0 00 000000 		RTN				; return
   291
   292
   293					;#********************************************************************
   294					; Data Patterns
   295					;#********************************************************************
   296
   297					; Data patterns (CSR Read/Write)
   298
   299	000245'	000000	400000		TA1PAT:	EXP	400000,400003000000,500003000000 	; bit 18
   300	000246'	400003	000000
   301	000247'	500003	000000
   302	000250'	000000	200000			EXP	200000,500003200000,500003000000	; bit 19
   303	000251'	500003	200000
   304	000252'	500003	000000
   305	000253'	000000	100000			EXP	100000,500003104000,500003004000	; bit 20
   306	000254'	500003	104000
   307	000255'	500003	004000
   308	000256'	000000	040000			EXP	040000,500003040000,500003000000	; bit 21
   309	000257'	500003	040000
   310	000260'	500003	000000
   311	000261'	000000	020000			EXP	020000,500003020000,500003000000	; bit 22
   312	000262'	500003	020000
   313	000263'	500003	000000
   314	000264'	000000	010000			EXP	010000,500003010000,500003000000	; bit 23
   315	000265'	500003	010000
   316	000266'	500003	000000
   317	000267'	000000	004000			EXP	004000,500003000000,500003000000	; bit 24
   318	000270'	500003	000000
   319	000271'	500003	000000
   320	000272'	000000	002000			EXP	002000,500003000000,500003000000	; bit 25
   321	000273'	500003	000000
   322	000274'	500003	000000
   323	000275'	000000	001000			EXP	001000,500003000000,500003000000	; bit 26
   324	000276'	500003	000000
   325	000277'	500003	000000
   326	000300'	000000	000400			EXP	000400,500003000400,500003000400	; bit 27
   327	000301'	500003	000400
   328	000302'	500003	000400
   329	000303'	000000	000200			EXP	000200,500003000000,500003000000	; bit 28
   330	000304'	500003	000000
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 7-1
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0503

   331	000305'	500003	000000
   332	000306'	000000	000100			EXP	000100,500003000000,500003000000	; bit 29
   333	000307'	500003	000000
   334	000310'	500003	000000
   335	000311'	000000	000040			EXP	000040,500003000040,500003000040	; bit 30
   336	000312'	500003	000040
   337	000313'	500003	000040
   338	000314'	000000	000020			EXP	000020,500003000020,500003000020	; bit 31
   339	000315'	500003	000020
   340	000316'	500003	000020
   341	000317'	000000	000004			EXP	000004,500003000004,500003000000	; bit 32
   342	000320'	500003	000004
   343	000321'	500003	000000
   344	000322'	000000	000002			EXP	000002,500003000002,500003000000	; bit 33
   345	000323'	500003	000002
   346	000324'	500003	000000
   347	000325'	000000	000001			EXP	000001,500003000001,500003000000	; bit 34
   348	000326'	500003	000001
   349	000327'	500003	000000
   350	000330'	000000	000000			EXP	000000,500003000000,500003000000	; bit 35
   351	000331'	500003	000000
   352	000332'	500003	000000
   353
   354					; Data Patterns (EBUF Read/Write)
   355
   356	000333'	000000	000000		TC1PAT:	EXP	0,-2,525252525252,252525252525
   357	000334'	777777	777776
   358	000335'	525252	525252
   359	000336'	252525	252525
   360	000337'	000000	000001			EXP	000000000001,000000000002,000000000004
   361	000340'	000000	000002
   362	000341'	000000	000004
   363	000342'	000000	000010			EXP	000000000010,000000000020,000000000040
   364	000343'	000000	000020
   365	000344'	000000	000040
   366	000345'	000000	000100			EXP	000000000100,000000000200,000000000400
   367	000346'	000000	000200
   368	000347'	000000	000400
   369	000350'	000000	001000			EXP	000000001000,000000002000,000000004000
   370	000351'	000000	002000
   371	000352'	000000	004000
   372	000353'	000000	010000			EXP	000000010000,000000020000,000000040000
   373	000354'	000000	020000
   374	000355'	000000	040000
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 8
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0504

   375	000356'	000000	100000			EXP	000000100000,000000200000,000000400000
   376	000357'	000000	200000
   377	000360'	000000	400000
   378	000361'	000001	000000			EXP	000001000000,000002000000,000004000000
   379	000362'	000002	000000
   380	000363'	000004	000000
   381	000364'	000010	000000			EXP	000010000000,000020000000,000040000000
   382	000365'	000020	000000
   383	000366'	000040	000000
   384	000367'	000100	000000			EXP	000100000000,000200000000,000400000000
   385	000370'	000200	000000
   386	000371'	000400	000000
   387	000372'	001000	000000			EXP	001000000000,002000000000,004000000000
   388	000373'	002000	000000
   389	000374'	004000	000000
   390	000375'	010000	000000			EXP	010000000000,020000000000,040000000000
   391	000376'	020000	000000
   392	000377'	040000	000000
   393	000400'	100000	000000			EXP	100000000000,200000000000,400000000000
   394	000401'	200000	000000
   395	000402'	400000	000000
   396	000403'	777777	777776			EXP	777777777776,777777777775,777777777773
   397	000404'	777777	777775
   398	000405'	777777	777773
   399	000406'	777777	777767			EXP	777777777767,777777777757,777777777737
   400	000407'	777777	777757
   401	000410'	777777	777737
   402	000411'	777777	777677			EXP	777777777677,777777777577,777777777377
   403	000412'	777777	777577
   404	000413'	777777	777377
   405	000414'	777777	776777			EXP	777777776777,777777775777,777777773777
   406	000415'	777777	775777
   407	000416'	777777	773777
   408	000417'	777777	767777			EXP	777777767777,777777757777,777777737777
   409	000420'	777777	757777
   410	000421'	777777	737777
   411	000422'	777777	677777			EXP	777777677777,777777577777,777777377777
   412	000423'	777777	577777
   413	000424'	777777	377777
   414	000425'	777776	777777			EXP	777776777777,777775777777,777773777777
   415	000426'	777775	777777
   416	000427'	777773	777777
   417	000430'	777767	777777			EXP	777767777777,777757777777,777737777777
   418	000431'	777757	777777
   419	000432'	777737	777777
   420	000433'	777677	777777			EXP	777677777777,777577777777,777377777777
   421	000434'	777577	777777
   422	000435'	777377	777777
   423	000436'	776777	777777			EXP	776777777777,775777777777,773777777777
   424	000437'	775777	777777
   425	000440'	773777	777777
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 9
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0505

   426	000441'	767777	777777			EXP	767777777777,757777777777,737777777777
   427	000442'	757777	777777
   428	000443'	737777	777777
   429	000444'	677777	777777			EXP	677777777777,577777777777,377777777777
   430	000445'	577777	777777
   431	000446'	377777	777777
   432	000447'	000000	000377			EXP	377
   433
   434					; Data Patterns (CRAM Read/Write)
   435
   436	000450'	000000	000000		TD1PAT:	EXP	0,7777777777,5252525252,2525252525
   437	000451'	007777	777777
   438	000452'	005252	525252
   439	000453'	002525	252525
   440	000454'	000000	000377			EXP	377
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 10
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0506

   441
   442					;#********************************************************************
   443					;* TEST 2 - Port Hardware Test 2
   444					;
   445					; Description:  This  test  verifies  more  of the logic on the 3
   446					;		port modules, in  particular,  the  2901's, local
   447					;		storage,  data  mover/formatter   and   the   PLI
   448					;		interface logic.
   449					;
   450					; Procedure:	KL> Load microcode
   451					;		KL> Port Clear
   452					;		KL> Start port
   453					;
   454					;		Verify local storage
   455					;		--------------------
   456					;
   457					;		UC> build a data pattern
   458					;		UC> write/read all of local storage with this
   459					;		    data pattern
   460					;		UC> do data compare
   461					;		If failed - exit test with error code 1 in EBUF
   462					;		If passed - do next data pattern until done
   463					;
   464					;		Verify formatter
   465					;		----------------
   466					;
   467					;		UC> build a data pattern
   468					;		UC> write/read formatter with data pattern
   469					;		UC> do data compare
   470					;		If failed - exit test with error code 2 in EBUF
   471					;		If passed - do next data pattern until done
   472					;
   473					;		Verify PLI input/output buffers
   474					;		-------------------------------
   475					;
   476					;		UC> build a data pattern
   477					;		UC> write/read PLI input/output buffers with pattern
   478					;		UC> do data compare
   479					;		If failed - exit test with error code 3 in EBUF
   480					;		If passed - do next data pattern until done
   481					;
   482					;		Verify 2901 Registers/Operations
   483					;		--------------------------------
   484					;
   485					;		UC> build a data pattern
   486					;		UC> write/read 2901 Registers with pattern
   487					;		UC> do data compare
   488					;		If failed - exit test with error code 4 in EBUF
   489					;		If passed - do next data pattern until done
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 11
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0507

   490
   491					;		Verify 2901's Shifting Operations
   492					;		---------------------------------
   493					;
   494					;		UC> build a data pattern
   495					;		UC> Shift 2901 Register left and right with pattern
   496					;		UC> do data compare
   497					;		If failed - exit test with error code 5 in EBUF
   498					;		If passed - do next data pattern until done
   499					;
   500					;		Verify shifting of formatter
   501					;		----------------------------
   502					;
   503					;		UC> build a data pattern
   504					;		UC> write/read formatter with data pattern
   505					;		UC> do data compare
   506					;		If failed - exit test with error code 6 in EBUF
   507					;		If passed - do next data pattern until done
   508					;
   509					;		Done
   510					;		----
   511					;
   512					;		KL> Read EBUF and determine test disposition
   513					;
   514					; FRU:		EBUS/MPROC/CBUS Modules
   515					;#********************************************************************
   516
   517					; Initialization
   518
   519	000455'	201 00 0 00 000000'	TST2:	MOVEI	Z2			; get address of module start
   520	000456'	260 17 0 00 000001*		GO	TRACE			; handle trace output
   521	000457'	201 01 0 00 000506'		MOVEI	1,T2M			; set up microcode address
   522	000460'	260 17 0 00 000000*		GO	TLOAD			; load/verify it
   523	000461'	263 17 0 00 000000 		RTN				; failed - exit test
   524
   525					; Do the test
   526
   527	000462'	260 17 0 00 002575'		GO	MSTART			; start the test at 5777
   528	000463'	201 01 0 00 001750 		MOVEI	1,^D1000		; set up wait of 1 second
   529	000464'	260 17 0 00 002536'		GO	MWAIT			; wait for completion
   530
   531					; Handle error printouts
   532
   533	000465'	027 00 0 00 000471'		SCOPER	MA2			; print error message
   534	000466'	255 00 0 00 000000 		JFCL				; loop on error
   535	000467'	254 00 0 00 000470'		JRST	TX2			; altmode exit
   536
   537					; End of test
   538
   539	000470'	263 17 0 00 000000 	TX2:	RTN				; return
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0508

   540
   541					; Error messages
   542
   543	000471'	250000	000473'		MA2:	LAST!CALL!TXNOT!MA2PNT
   544	000472'	060000	002636'			TXALL![ASCIZ /FRU:  Port Modules/]
   545
   546	000473'	201 01 0 00 000477'	MA2PNT:	MOVEI	1,MA2LST		; get list address
   547	000474'	201 02 0 00 000007 		MOVEI	2,7			; get list length
   548	000475'	260 17 0 00 002606'		GO	MPRINT			; print data
   549	000476'	263 17 0 00 000000 		RTN				; return
   550
   551	000477'	037 00 0 00 002746'	MA2LST:	TMSGC	<No failure detected>
   552	000500'	037 00 0 00 002753'		TMSGC	<Local storage failure>
   553	000501'	037 00 0 00 002760'		TMSGC	<Formatter failure>
   554	000502'	037 00 0 00 002764'		TMSGC	<PLI data path failure>
   555	000503'	037 00 0 00 002771'		TMSGC	<2901's failure>
   556	000504'	037 00 0 00 002775'		TMSGC	<2901's shifting failure>
   557	000505'	037 00 0 00 003003'		TMSGC	<Formatter shifting failure>
   558
   559					;#********************************************************************
   560					; Microcode:
   561					;#********************************************************************
   562
   563					;	Initialization
   564
   565	000506'	577700	000000		T2M:	MWORD	<ADDR=5777,JZ>					; 5777
   566	000507'	000000	000000
   567	000510'	000010	000000			MWORD	<ADDR=0,JMAP,J=1000>				; 0
   568	000511'	000000	000040
   569
   570					;#********************************************************************
   571					; Local Storage testing 1000-1300
   572					;#********************************************************************
   573
   574					;	Build data patterns
   575
   576	000512'	100000	000000			MWORD	<ADDR=1000,CONT,SD0,AND,B=7,D=2>		; 1000
   577	000513'	742003	400340
   578	000514'	100110	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,OR,D=2>		; 1001 - 0's
   579	000515'	432074	000020
   580	000516'	100210	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,XNOR,D=2>		; 1002 - comp
   581	000517'	472074	000020
   582	000520'	100300	000000			MWORD	<CONT,S0A,PLUS,CRY,A=7,B=7,D=2>			; 1003
   583	000521'	402073	400740
   584	000522'	100410	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,OR,D=2>		; 1004 - 1
   585	000523'	432074	000020
   586	000524'	100510	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,XNOR,D=2>		; 1005 - comp
   587	000525'	472074	000020
   588	000526'	100600	420000			MWORD	<LDCT,J=42>					; 1006
   589	000527'	000000	000300
   590	000530'	100700	000000			MWORD	<CONT,S0A,OR,A=7,B=7,D=7>			; 1007
   591	000531'	437073	400340
   592	000532'	101010	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,OR,D=2>		; 1010 - 2 ...
   593	000533'	432074	000020
   594	000534'	101110	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,XNOR,D=2>		; 1011 - comp
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-1
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0509

   595	000535'	472074	000020
   596	000536'	101210	070000			MWORD	<RPCT,J=1007>					; 1012
   597	000537'	000000	000220
   598	000540'	101314	000000			MWORD	<JMAP,J=1400,S0A,AND,B=17,D=2>			; 1013 - done
   599	000541'	442007	400040
   600
   601					;	Write/read each page
   602
   603	000542'	102011	000000			MWORD	<ADDR=1020,CJS,J=1100,SD0,OR,B=12,D=1,MGC=0,LSAD>; 1020 - 0
   604	000543'	731005	200020
   605	000544'	102111	000040			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=40,LSAD>	; 1021 - 1
   606	000545'	731005	200020
   607	000546'	102211	000100			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=100,LSAD>	; 1022 - 2
   608	000547'	731005	200020
   609	000550'	102311	000140			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=140,LSAD>	; 1023 - 3
   610	000551'	731005	200020
   611	000552'	102411	000200			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=200,LSAD>	; 1024 - 4
   612	000553'	731005	200020
   613	000554'	102511	000240			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=240,LSAD>	; 1025 - 5
   614	000555'	731005	200020
   615	000556'	102611	000300			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=300,LSAD>	; 1026 - 6
   616	000557'	731005	200020
   617	000560'	102711	000340			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=340,LSAD> 	; 1027 - 7
   618	000561'	731005	200020
   619	000562'	103011	000400			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=400,LSAD>	; 1030 - 10
   620	000563'	731005	200020
   621	000564'	103111	000440			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=440,LSAD>	; 1031 - 11
   622	000565'	731005	200020
   623	000566'	103211	000500			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=500,LSAD>	; 1032 - 12
   624	000567'	731005	200020
   625	000570'	103311	000540			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=540,LSAD>	; 1033 - 13
   626	000571'	731005	200020
   627	000572'	103411	000600			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=600,LSAD>	; 1034 - 14
   628	000573'	731005	200020
   629	000574'	103511	000640			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=640,LSAD>	; 1035 - 15
   630	000575'	731005	200020
   631	000576'	103611	000700			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=700,LSAD>	; 1036 - 16
   632	000577'	731005	200020
   633	000600'	103711	000740			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=740,LSAD>	; 1037 - 17
   634	000601'	731005	200020
   635	000602'	104011	001000			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1000,LSAD>	; 1040 - 20
   636	000603'	731005	200020
   637	000604'	104111	001040			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1040,LSAD>	; 1041 - 21
   638	000605'	731005	200020
   639	000606'	104211	001100			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1100,LSAD>	; 1042 - 22
   640	000607'	731005	200020
   641	000610'	104311	001140			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1140,LSAD>	; 1043 - 23
   642	000611'	731005	200020
   643	000612'	104411	001200			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1200,LSAD>	; 1044 - 24
   644	000613'	731005	200020
   645	000614'	104511	001240			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1240,LSAD>	; 1045 - 25
   646	000615'	731005	200020
   647	000616'	104611	001300			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1300,LSAD>	; 1046 - 26
   648	000617'	731005	200020
   649	000620'	104711	001340			MWORD	<CJS,J=1100,SD0,OR,B=12,D=1,MGC=1340,LSAD>	; 1047 - 27
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-2
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0510

   650	000621'	731005	200020
   651	000622'	105000	000000			MWORD	<CRTN>						; 1060 - exit
   652	000623'	000000	000240
   653
   654					;	Write/read the LS address locations
   655
   656	000624'	110000	002000			MWORD	<ADDR=1100,CONT,MGC=0,S0A,OR,A=10,OENA,D=1,RAM,LDLM>; 1100 - 0
   657	000625'	431300	230340
   658	000626'	110100	000000			MWORD	<CONT,MGC=0,SD0,OR,D=2,B=11,RAM,RDLM>		; 1101
   659	000627'	732204	620340
   660	000630'	110211	040000			MWORD	<CJP,J=1104,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1102
   661	000631'	161504	420060
   662	000632'	110350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1103
   663	000633'	732007	640040
   664	000634'	110400	002001			MWORD	<CONT,MGC=1,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1104 - 1
   665	000635'	431300	230340
   666	000636'	110500	000001			MWORD	<CONT,MGC=1,SD0,OR,D=2,B=11,RAM,RDLM>		; 1105
   667	000637'	732204	620340
   668	000640'	110611	100000			MWORD	<CJP,J=1110,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1106
   669	000641'	161504	420060
   670	000642'	110750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1107
   671	000643'	732007	640040
   672	000644'	111000	002002			MWORD	<CONT,MGC=2,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1110 - 2
   673	000645'	431300	230340
   674	000646'	111100	000002			MWORD	<CONT,MGC=2,SD0,OR,D=2,B=11,RAM,RDLM>		; 1111
   675	000647'	732204	620340
   676	000650'	111211	140000			MWORD	<CJP,J=1114,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1112
   677	000651'	161504	420060
   678	000652'	111350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1113
   679	000653'	732007	640040
   680	000654'	111400	002003			MWORD	<CONT,MGC=3,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1114 - 3
   681	000655'	431300	230340
   682	000656'	111500	000003			MWORD	<CONT,MGC=3,SD0,OR,D=2,B=11,RAM,RDLM>		; 1115
   683	000657'	732204	620340
   684	000660'	111611	200000			MWORD	<CJP,J=1120,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1116
   685	000661'	161504	420060
   686	000662'	111750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1117
   687	000663'	732007	640040
   688	000664'	112000	002004			MWORD	<CONT,MGC=4,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1120 - 4
   689	000665'	431300	230340
   690	000666'	112100	000004			MWORD	<CONT,MGC=4,SD0,OR,D=2,B=11,RAM,RDLM>		; 1121
   691	000667'	732204	620340
   692	000670'	112211	240000			MWORD	<CJP,J=1124,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1122
   693	000671'	161504	420060
   694	000672'	112350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1123
   695	000673'	732007	640040
   696	000674'	112400	002005			MWORD	<CONT,MGC=5,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1124 - 5
   697	000675'	431300	230340
   698	000676'	112500	000005			MWORD	<CONT,MGC=5,SD0,OR,D=2,B=11,RAM,RDLM>		; 1125
   699	000677'	732204	620340
   700	000700'	112611	300000			MWORD	<CJP,J=1130,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1126
   701	000701'	161504	420060
   702	000702'	112750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1127
   703	000703'	732007	640040
   704	000704'	113000	002006			MWORD	<CONT,MGC=6,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1130 - 6
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-3
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0511

   705	000705'	431300	230340
   706	000706'	113100	000006			MWORD	<CONT,MGC=6,SD0,OR,D=2,B=11,RAM,RDLM>		; 1131
   707	000707'	732204	620340
   708	000710'	113211	340000			MWORD	<CJP,J=1134,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1132
   709	000711'	161504	420060
   710	000712'	113350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1133
   711	000713'	732007	640040
   712	000714'	113400	002007			MWORD	<CONT,MGC=7,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1134 - 7
   713	000715'	431300	230340
   714	000716'	113500	000007			MWORD	<CONT,MGC=7,SD0,OR,D=2,B=11,RAM,RDLM>		; 1135
   715	000717'	732204	620340
   716	000720'	113611	400000			MWORD	<CJP,J=1140,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1136
   717	000721'	161504	420060
   718	000722'	113750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1137
   719	000723'	732007	640040
   720	000724'	114000	002010			MWORD	<CONT,MGC=10,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1140 - 10
   721	000725'	431300	230340
   722	000726'	114100	000010			MWORD	<CONT,MGC=10,SD0,OR,D=2,B=11,RAM,RDLM>		; 1141
   723	000727'	732204	620340
   724	000730'	114211	440000			MWORD	<CJP,J=1144,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1142
   725	000731'	161504	420060
   726	000732'	114350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1143
   727	000733'	732007	640040
   728	000734'	114400	002011			MWORD	<CONT,MGC=11,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1144 - 11
   729	000735'	431300	230340
   730	000736'	114500	000011			MWORD	<CONT,MGC=11,SD0,OR,D=2,B=11,RAM,RDLM>		; 1145
   731	000737'	732204	620340
   732	000740'	114611	500000			MWORD	<CJP,J=1150,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1146
   733	000741'	161504	420060
   734	000742'	114750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1147
   735	000743'	732007	640040
   736	000744'	115000	002012			MWORD	<CONT,MGC=12,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1150 - 12
   737	000745'	431300	230340
   738	000746'	115100	000012			MWORD	<CONT,MGC=12,SD0,OR,D=2,B=11,RAM,RDLM>		; 1151
   739	000747'	732204	620340
   740	000750'	115211	540000			MWORD	<CJP,J=1154,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1152
   741	000751'	161504	420060
   742	000752'	115350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1153
   743	000753'	732007	640040
   744	000754'	115400	002013			MWORD	<CONT,MGC=13,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1154 - 13
   745	000755'	431300	230340
   746	000756'	115500	000013			MWORD	<CONT,MGC=13,SD0,OR,D=2,B=11,RAM,RDLM>		; 1155
   747	000757'	732204	620340
   748	000760'	115611	600000			MWORD	<CJP,J=1160,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1156
   749	000761'	161504	420060
   750	000762'	115750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1157
   751	000763'	732007	640040
   752	000764'	116000	002014			MWORD	<CONT,MGC=14,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1160 - 14
   753	000765'	431300	230340
   754	000766'	116100	000014			MWORD	<CONT,MGC=14,SD0,OR,D=2,B=11,RAM,RDLM>		; 1161
   755	000767'	732204	620340
   756	000770'	116211	640000			MWORD	<CJP,J=1164,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1162
   757	000771'	161504	420060
   758	000772'	116350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1163
   759	000773'	732007	640040
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-4
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0512

   760	000774'	116400	002015			MWORD	<CONT,MGC=15,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1164 - 15
   761	000775'	431300	230340
   762	000776'	116500	000015			MWORD	<CONT,MGC=15,SD0,OR,D=2,B=11,RAM,RDLM>		; 1165
   763	000777'	732204	620340
   764	001000'	116611	700000			MWORD	<CJP,J=1170,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1166
   765	001001'	161504	420060
   766	001002'	116750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1167
   767	001003'	732007	640040
   768	001004'	117000	002016			MWORD	<CONT,MGC=16,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1170 - 16
   769	001005'	431300	230340
   770	001006'	117100	000016			MWORD	<CONT,MGC=16,SD0,OR,D=2,B=11,RAM,RDLM>		; 1171
   771	001007'	732204	620340
   772	001010'	117211	740000			MWORD	<CJP,J=1174,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1172
   773	001011'	161504	420060
   774	001012'	117350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1173
   775	001013'	732007	640040
   776	001014'	117400	002017			MWORD	<CONT,MGC=17,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1174 - 17
   777	001015'	431300	230340
   778	001016'	117500	000017			MWORD	<CONT,MGC=17,SD0,OR,D=2,B=11,RAM,RDLM>		; 1175
   779	001017'	732204	620340
   780	001020'	117612	000000			MWORD	<CJP,J=1200,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1176
   781	001021'	161504	420060
   782	001022'	117750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1177
   783	001023'	732007	640040
   784	001024'	120000	002020			MWORD	<CONT,MGC=20,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1200 - 20
   785	001025'	431300	230340
   786	001026'	120100	000020			MWORD	<CONT,MGC=20,SD0,OR,D=2,B=11,RAM,RDLM>		; 1201
   787	001027'	732204	620340
   788	001030'	120212	040000			MWORD	<CJP,J=1204,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1202
   789	001031'	161504	420060
   790	001032'	120350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1203
   791	001033'	732007	640040
   792	001034'	120400	002021			MWORD	<CONT,MGC=21,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1204 - 21
   793	001035'	431300	230340
   794	001036'	120500	000021			MWORD	<CONT,MGC=21,SD0,OR,D=2,B=11,RAM,RDLM>		; 1205
   795	001037'	732204	620340
   796	001040'	120612	100000			MWORD	<CJP,J=1210,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1206
   797	001041'	161504	420060
   798	001042'	120750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1207
   799	001043'	732007	640040
   800	001044'	121000	002022			MWORD	<CONT,MGC=22,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1210 - 22
   801	001045'	431300	230340
   802	001046'	121100	000022			MWORD	<CONT,MGC=22,SD0,OR,D=2,B=11,RAM,RDLM>		; 1211
   803	001047'	732204	620340
   804	001050'	121212	140000			MWORD	<CJP,J=1214,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1212
   805	001051'	161504	420060
   806	001052'	121350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1213
   807	001053'	732007	640040
   808	001054'	121400	002023			MWORD	<CONT,MGC=23,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1214 - 23
   809	001055'	431300	230340
   810	001056'	121500	000023			MWORD	<CONT,MGC=23,SD0,OR,D=2,B=11,RAM,RDLM>		; 1215
   811	001057'	732204	620340
   812	001060'	121612	200000			MWORD	<CJP,J=1220,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1216
   813	001061'	161504	420060
   814	001062'	121750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1217
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-5
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0513

   815	001063'	732007	640040
   816	001064'	122000	002024			MWORD	<CONT,MGC=24,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1220 - 24
   817	001065'	431300	230340
   818	001066'	122100	000024			MWORD	<CONT,MGC=24,SD0,OR,D=2,B=11,RAM,RDLM>		; 1221
   819	001067'	732204	620340
   820	001070'	122212	240000			MWORD	<CJP,J=1224,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1222
   821	001071'	161504	420060
   822	001072'	122350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1223
   823	001073'	732007	640040
   824	001074'	122400	002025			MWORD	<CONT,MGC=25,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1224 - 25
   825	001075'	431300	230340
   826	001076'	122500	000025			MWORD	<CONT,MGC=25,SD0,OR,D=2,B=11,RAM,RDLM>		; 1225
   827	001077'	732204	620340
   828	001100'	122612	300000			MWORD	<CJP,J=1230,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1226
   829	001101'	161504	420060
   830	001102'	122750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1227
   831	001103'	732007	640040
   832	001104'	123000	002026			MWORD	<CONT,MGC=26,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1230 - 26
   833	001105'	431300	230340
   834	001106'	123100	000026			MWORD	<CONT,MGC=26,SD0,OR,D=2,B=11,RAM,RDLM>		; 1231
   835	001107'	732204	620340
   836	001110'	123212	340000			MWORD	<CJP,J=1234,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1232
   837	001111'	161504	420060
   838	001112'	123350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1233
   839	001113'	732007	640040
   840	001114'	123400	002027			MWORD	<CONT,MGC=27,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1234 - 27
   841	001115'	431300	230340
   842	001116'	123500	000027			MWORD	<CONT,MGC=27,SD0,OR,D=2,B=11,RAM,RDLM>		; 1235
   843	001117'	732204	620340
   844	001120'	123612	400000			MWORD	<CJP,J=1240,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1236
   845	001121'	161504	420060
   846	001122'	123750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1237
   847	001123'	732007	640040
   848	001124'	124000	002030			MWORD	<CONT,MGC=30,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1240 - 30
   849	001125'	431300	230340
   850	001126'	124100	000030			MWORD	<CONT,MGC=30,SD0,OR,D=2,B=11,RAM,RDLM>		; 1241
   851	001127'	732204	620340
   852	001130'	124212	440000			MWORD	<CJP,J=1244,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1242
   853	001131'	161504	420060
   854	001132'	124350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1243
   855	001133'	732007	640040
   856	001134'	124400	002031			MWORD	<CONT,MGC=31,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1244 - 31
   857	001135'	431300	230340
   858	001136'	124500	000031			MWORD	<CONT,MGC=31,SD0,OR,D=2,B=11,RAM,RDLM>		; 1245
   859	001137'	732204	620340
   860	001140'	124612	500000			MWORD	<CJP,J=1250,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1246
   861	001141'	161504	420060
   862	001142'	124750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1247
   863	001143'	732007	640040
   864	001144'	125000	002032			MWORD	<CONT,MGC=32,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1250 - 32
   865	001145'	431300	230340
   866	001146'	125100	000032			MWORD	<CONT,MGC=32,SD0,OR,D=2,B=11,RAM,RDLM>		; 1251
   867	001147'	732204	620340
   868	001150'	125212	540000			MWORD	<CJP,J=1254,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1252
   869	001151'	161504	420060
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-6
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0514

   870	001152'	125350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1253
   871	001153'	732007	640040
   872	001154'	125400	002033			MWORD	<CONT,MGC=33,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1254 - 33
   873	001155'	431300	230340
   874	001156'	125500	000033			MWORD	<CONT,MGC=33,SD0,OR,D=2,B=11,RAM,RDLM>		; 1255
   875	001157'	732204	620340
   876	001160'	125612	600000			MWORD	<CJP,J=1260,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1256
   877	001161'	161504	420060
   878	001162'	125750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1257
   879	001163'	732007	640040
   880	001164'	126000	002034			MWORD	<CONT,MGC=34,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1260 - 34
   881	001165'	431300	230340
   882	001166'	126100	000034			MWORD	<CONT,MGC=34,SD0,OR,D=2,B=11,RAM,RDLM>		; 1261
   883	001167'	732204	620340
   884	001170'	126212	640000			MWORD	<CJP,J=1264,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1262
   885	001171'	161504	420060
   886	001172'	126350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1263
   887	001173'	732007	640040
   888	001174'	126400	002035			MWORD	<CONT,MGC=35,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1264 - 35
   889	001175'	431300	230340
   890	001176'	126500	000035			MWORD	<CONT,MGC=35,SD0,OR,D=2,B=11,RAM,RDLM>		; 1265
   891	001177'	732204	620340
   892	001200'	126612	700000			MWORD	<CJP,J=1270,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1266
   893	001201'	161504	420060
   894	001202'	126750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1267
   895	001203'	732007	640040
   896	001204'	127000	002036			MWORD	<CONT,MGC=36,S0A,OR,A=10,OENA,D=1,RAM,LDLM>	; 1270 - 36
   897	001205'	431300	230340
   898	001206'	127100	000036			MWORD	<CONT,MGC=36,SD0,OR,D=2,B=11,RAM,RDLM>		; 1271
   899	001207'	732204	620340
   900	001210'	127212	740000			MWORD	<CJP,J=1274,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1272
   901	001211'	161504	420060
   902	001212'	127350	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1273
   903	001213'	732007	640040
   904	001214'	127400	002037			MWORD	<CONT,MGC=37,S0A,OR,A=10,OENA,D=1,RAM,LDLM> 	; 1274 - 37
   905	001215'	431300	230340
   906	001216'	127500	000037			MWORD	<CONT,MGC=37,SD0,OR,D=2,B=11,RAM,RDLM>		; 1275
   907	001217'	732204	620340
   908	001220'	127613	000000			MWORD	<CJP,J=1300,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1276
   909	001221'	161504	420060
   910	001222'	127750	000001			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN>	; 1277
   911	001223'	732007	640040
   912	001224'	130000	000000			MWORD	<CRTN>						; 1300
   913	001225'	000000	000240
   914
   915					;#********************************************************************
   916					; Formatter Data Loopback 1400-1424
   917					;#********************************************************************
   918
   919					;	Build data patterns
   920
   921	001226'	140000	000000			MWORD	<ADDR=1400,CONT,SD0,AND,B=7,D=2>		; 1400
   922	001227'	742003	400340
   923	001230'	140114	200000			MWORD	<CJS,J=1420,S0A,A=7,B=10,OR,D=2>		; 1401 - 0's
   924	001231'	432074	000020
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-7
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0515

   925	001232'	140214	200000			MWORD	<CJS,J=1420,S0A,A=7,B=10,XNOR,D=2>		; 1402 - comp
   926	001233'	472074	000020
   927	001234'	140300	000000			MWORD	<CONT,S0A,PLUS,CRY,A=7,B=7,D=2>			; 1403
   928	001235'	402073	400740
   929	001236'	140414	200000			MWORD	<CJS,J=1420,S0A,A=7,B=10,OR,D=2>		; 1404 - 1
   930	001237'	432074	000020
   931	001240'	140514	200000			MWORD	<CJS,J=1420,S0A,A=7,B=10,XNOR,D=2>		; 1405 - comp
   932	001241'	472074	000020
   933	001242'	140600	420000			MWORD	<LDCT,J=42>					; 1406
   934	001243'	000000	000300
   935	001244'	140700	000000			MWORD	<CONT,S0A,OR,A=7,B=7,D=7>			; 1407
   936	001245'	437073	400340
   937	001246'	141014	200000			MWORD	<CJS,J=1420,S0A,A=7,B=10,OR,D=2>		; 1410 - 2 ...
   938	001247'	432074	000020
   939	001250'	141114	200000			MWORD	<CJS,J=1420,S0A,A=7,B=10,XNOR,D=2>		; 1411 - comp
   940	001251'	472074	000020
   941	001252'	141214	070000			MWORD	<RPCT,J=1407>					; 1412
   942	001253'	000000	000220
   943	001254'	141320	000000			MWORD	<JMAP,J=2000,S0A,AND,B=17,D=2>			; 1413 - done
   944	001255'	442007	400040
   945
   946					;	Write to formatter, read back, and compare
   947
   948	001256'	142000	002040			MWORD	<ADDR=1420,CONT,S0A,OR,A=10,D=1,OENA,SELF,MGC=40>; 1420
   949	001257'	431100	003340
   950	001260'	142100	000200			MWORD	<CONT,SD0,B=11,D=2,SELM,MGC=200>		; 1421
   951	001261'	702004	402340
   952	001262'	142214	240000			MWORD	<CJP,J=1424,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 1422
   953	001263'	161504	420060
   954	001264'	142350	000002			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=2,SKCN>	; 1423
   955	001265'	732007	640040
   956	001266'	142400	000000			MWORD	<CRTN>						; 1424
   957	001267'	000000	000240
   958
   959					;#********************************************************************
   960					; PLI Data Loopback 2000-2106
   961					;#********************************************************************
   962
   963					;	Build data patterns
   964
   965	001270'	200020	010000			MWORD	<ADDR=2000,JMAP,J=2001>				; 2000
   966	001271'	000000	000040
   967	001272'	200100	060000			MWORD	<LDCT,J=6,S0B,AND,B=14,D=2>			; 2001
   968	001273'	342006	000300
   969	001274'	200220	020000			MWORD	<RPCT,J=2002,S0B,PLUS,B=14,D=7,CRY>		; 2002
   970	001275'	307006	000620
   971	001276'	200300	000000			MWORD	<CONT,S0B,PLUS,B=14,D=2,CRY>			; 2003
   972	001277'	302006	000740
   973	001300'	200400	000000			MWORD	<CONT,SD0,AND,B=7,D=2>				; 2004
   974	001301'	742003	400340
   975	001302'	200521	000000			MWORD	<CJS,J=2100,S0A,A=7,B=10,OR,D=2>		; 2005 - 0's
   976	001303'	432074	000020
   977	001304'	200621	000000			MWORD	<CJS,J=2100,S0A,A=7,B=10,XNOR,D=2>		; 2006 - comp
   978	001305'	472074	000020
   979	001306'	200700	000000			MWORD	<CONT,S0A,PLUS,CRY,A=7,B=7,D=2>			; 2007
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-8
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0516

   980	001307'	402073	400740
   981	001310'	201021	000000			MWORD	<CJS,J=2100,S0A,A=7,B=10,OR,D=2>		; 2010 - 1
   982	001311'	432074	000020
   983	001312'	201121	000000			MWORD	<CJS,J=2100,S0A,A=7,B=10,XNOR,D=2>		; 2011 - comp
   984	001313'	472074	000020
   985
   986	001314'	201200	060000			MWORD	<LDCT,J=6>					; 2012
   987	001315'	000000	000300
   988	001316'	201300	000000			MWORD	<CONT,S0A,OR,A=7,B=7,D=7>			; 2013
   989	001317'	437073	400340
   990	001320'	201421	000000			MWORD	<CJS,J=2100,S0A,A=7,B=10,OR,D=2>		; 2014 - 2 ...
   991	001321'	432074	000020
   992	001322'	201521	000000			MWORD	<CJS,J=2100,S0A,A=7,B=10,XNOR,D=2>		; 2015 - comp
   993	001323'	472074	000020
   994	001324'	201620	130000			MWORD	<RPCT,J=2013>					; 2016
   995	001325'	000000	000220
   996	001326'	201724	000000			MWORD	<JMAP,J=2400,S0A,AND,B=17,D=2>			; 2017 - done
   997	001327'	442007	400040
   998
   999					;	Write to PLI, read back, and compare
  1000
  1001	001330'	210000	000000			MWORD	<ADDR=2100,CONT,SAB,A=14,B=10,AND,D=2> 		; 2100
  1002	001331'	142144	000340
  1003	001332'	210100	002040			MWORD	<CONT,S0B,OR,D=1,B=10,OENA,SELM,MGC=40>		; 2101
  1004	001333'	331004	002340
  1005	001334'	210200	000006			MWORD	<CONT,SD0,D=1,SELP,MGC=6>			; 2102
  1006	001335'	701000	001340
  1007	001336'	210300	000300			MWORD	<CONT,SD0,OR,B=11,D=2,SELM,MGC=300>		; 2103
  1008	001337'	732004	402340
  1009	001340'	210400	000000			MWORD	<CONT,SAB,A=14,B=11,AND,D=2>			; 2104
  1010	001341'	142144	400340
  1011	001342'	210521	070000			MWORD	<CJP,J=2107,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ>	; 2105
  1012	001343'	161504	420060
  1013	001344'	210650	000003			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=3,SKCN>	; 2106
  1014	001345'	732007	640040
  1015	001346'	210700	000000			MWORD	<CRTN>						; 2107
  1016	001347'	000000	000240
  1017
  1018					;#********************************************************************
  1019					; Verify 2901 Registers (2400-2526)
  1020					;#********************************************************************
  1021
  1022					;	Build data patterns
  1023
  1024	001350'	240000	000000			MWORD	<ADDR=2400,CONT,SD0,AND,B=7,D=2>		; 2400
  1025	001351'	742003	400340
  1026	001352'	240124	200000			MWORD	<CJS,J=2420,S0A,A=7,B=10,OR,D=2>		; 2401 - 0's
  1027	001353'	432074	000020
  1028	001354'	240224	200000			MWORD	<CJS,J=2420,S0A,A=7,B=10,XNOR,D=2>		; 2402 - comp
  1029	001355'	472074	000020
  1030	001356'	240300	000000			MWORD	<CONT,S0A,PLUS,CRY,A=7,B=7,D=2>			; 2403
  1031	001357'	402073	400740
  1032	001360'	240424	200000			MWORD	<CJS,J=2420,S0A,A=7,B=10,OR,D=2>		; 2404 - 1
  1033	001361'	432074	000020
  1034	001362'	240524	200000			MWORD	<CJS,J=2420,S0A,A=7,B=10,XNOR,D=2>		; 2405 - comp
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-9
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0517

  1035	001363'	472074	000020
  1036
  1037	001364'	240600	420000			MWORD	<LDCT,J=42>					; 2406
  1038	001365'	000000	000300
  1039	001366'	240700	000000			MWORD	<CONT,S0A,OR,A=7,B=7,D=7>			; 2407
  1040	001367'	437073	400340
  1041	001370'	241024	200000			MWORD	<CJS,J=2420,S0A,A=7,B=10,OR,D=2>		; 2410 - 2 ...
  1042	001371'	432074	000020
  1043	001372'	241124	200000			MWORD	<CJS,J=2420,S0A,A=7,B=10,XNOR,D=2>		; 2411 - comp
  1044	001373'	472074	000020
  1045	001374'	241224	070000			MWORD	<RPCT,J=2407>					; 2412
  1046	001375'	000000	000220
  1047	001376'	241330	000000			MWORD	<JMAP,J=3000,S0A,AND,B=17,D=2>			; 2413 - done
  1048	001377'	442007	400040
  1049
  1050					;	Write/read 2901 registers with various operations and compare
  1051
  1052	001400'	242000	002000			MWORD	<ADDR=2420,CONT,S0A,A=10,B=0,OR,D=2,OENA,LDLM,MGC=0>
  1053	001401'	432100	230340
  1054	001402'	242100	000000			MWORD	<CONT,S0A,A=0,OR,B=1,D=2>			; 2421
  1055	001403'	432000	400340
  1056	001404'	242200	000000			MWORD	<CONT,S0A,A=1,OR,B=2,D=2>			; 2422
  1057	001405'	432011	000340
  1058	001406'	242300	000000			MWORD	<CONT,S0A,A=2,OR,B=3,D=2>			; 2423
  1059	001407'	432021	400340
  1060	001410'	242400	000000			MWORD	<CONT,S0A,A=3,OR,B=4,D=2>			; 2424
  1061	001411'	432032	000340
  1062	001412'	242500	000000			MWORD	<CONT,S0A,A=4,OR,B=5,D=2>			; 2425
  1063	001413'	432042	400340
  1064	001414'	242600	000000			MWORD	<CONT,S0A,A=5,OR,B=6,D=2>			; 2426
  1065	001415'	432053	000340
  1066	001416'	242700	000000			MWORD	<CONT,S0A,A=6,OR,B=7,D=2>			; 2427
  1067	001417'	432063	400340
  1068	001420'	243000	000000			MWORD	<CONT,S0A,A=7,OR,B=10,D=2>			; 2430
  1069	001421'	432074	000340
  1070	001422'	243100	000000			MWORD	<CONT,S0A,A=10,OR,B=11,D=2>			; 2431
  1071	001423'	432104	400340
  1072	001424'	243200	000000			MWORD	<CONT,S0A,A=11,OR,B=12,D=2>			; 2432
  1073	001425'	432115	000340
  1074	001426'	243300	000000			MWORD	<CONT,S0A,A=12,OR,B=13,D=2>			; 2433
  1075	001427'	432125	400340
  1076	001430'	243400	000000			MWORD	<CONT,S0A,A=13,OR,B=14,D=2>			; 2434
  1077	001431'	432136	000340
  1078	001432'	243500	000000			MWORD	<CONT,S0A,A=14,OR,B=15,D=2>			; 2435
  1079	001433'	432146	400340
  1080	001434'	243600	000000			MWORD	<CONT,S0A,A=15,OR,B=16,D=2>			; 2436
  1081	001435'	432157	000340
  1082	001436'	243700	000000			MWORD	<CONT,S0A,A=16,OR,B=17,D=2>			; 2437
  1083	001437'	432167	400340
  1084	001440'	244000	000000			MWORD	<CONT,S0A,A=17,OR,D=0>				; 2440
  1085	001441'	430170	000340
  1086	001442'	244100	000000			MWORD	<CONT,SAB,A=0,B=0,AND,D=2>			; 2441
  1087	001443'	142000	000340
  1088	001444'	244200	000000			MWORD	<CONT,SAB,A=1,B=0,AND,D=2>			; 2442
  1089	001445'	142010	000340
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-10
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0518

  1090	001446'	244300	000000			MWORD	<CONT,SAB,A=2,B=0,AND,D=2>			; 2443
  1091	001447'	142020	000340
  1092	001450'	244400	000000			MWORD	<CONT,SAB,A=3,B=0,AND,D=2>			; 2444
  1093	001451'	142030	000340
  1094	001452'	244500	000000			MWORD	<CONT,SAB,A=4,B=0,AND,D=2>			; 2445
  1095	001453'	142040	000340
  1096	001454'	244600	000000			MWORD	<CONT,SAB,A=5,B=0,AND,D=2>			; 2446
  1097	001455'	142050	000340
  1098	001456'	244700	000000			MWORD	<CONT,SAB,A=6,B=0,AND,D=2>			; 2447
  1099	001457'	142060	000340
  1100	001460'	245000	000000			MWORD	<CONT,SAB,A=7,B=0,AND,D=2>			; 2450
  1101	001461'	142070	000340
  1102	001462'	245100	000000			MWORD	<CONT,SAB,A=10,B=0,AND,D=2>			; 2451
  1103	001463'	142100	000340
  1104	001464'	245200	000000			MWORD	<CONT,SAB,A=11,B=0,AND,D=2>			; 2452
  1105	001465'	142110	000340
  1106	001466'	245300	000000			MWORD	<CONT,SAB,A=12,B=0,AND,D=2>			; 2453
  1107	001467'	142120	000340
  1108	001470'	245400	000000			MWORD	<CONT,SAB,A=13,B=0,AND,D=2>			; 2454
  1109	001471'	142130	000340
  1110	001472'	245500	000000			MWORD	<CONT,SAB,A=14,B=0,AND,D=2>			; 2455
  1111	001473'	142140	000340
  1112	001474'	245600	000000			MWORD	<CONT,SAB,A=15,B=0,AND,D=2>			; 2456
  1113	001475'	142150	000340
  1114	001476'	245700	000000			MWORD	<CONT,SAB,A=16,B=0,AND,D=2>			; 2457
  1115	001477'	142160	000340
  1116	001500'	246000	000000			MWORD	<CONT,SAB,A=17,B=0,AND,D=2>			; 2460
  1117	001501'	142170	000340
  1118	001502'	246100	000000			MWORD	<CONT,SAQ,A=0,B=0,AND,D=2>			; 2461
  1119	001503'	042000	000340
  1120	001504'	246200	000000			MWORD	<CONT,S0A,A=0,PLUS,B=1,D=2>			; 2462
  1121	001505'	402000	400340
  1122	001506'	246300	000000			MWORD	<CONT,S0A,A=1,PLUS,B=2,D=2>			; 2463
  1123	001507'	402011	000340
  1124	001510'	246400	000000			MWORD	<CONT,S0A,A=2,PLUS,B=3,D=2>			; 2464
  1125	001511'	402021	400340
  1126	001512'	246500	000000			MWORD	<CONT,S0A,A=3,PLUS,B=4,D=2>			; 2465
  1127	001513'	402032	000340
  1128	001514'	246600	000000			MWORD	<CONT,S0A,A=4,PLUS,B=5,D=2>			; 2466
  1129	001515'	402042	400340
  1130	001516'	246700	000000			MWORD	<CONT,S0A,A=5,PLUS,B=6,D=2>			; 2467
  1131	001517'	402053	000340
  1132	001520'	247000	000000			MWORD	<CONT,S0A,A=6,PLUS,B=7,D=2>			; 2470
  1133	001521'	402063	400340
  1134	001522'	247100	000000			MWORD	<CONT,S0A,A=7,PLUS,B=10,D=2>			; 2471
  1135	001523'	402074	000340
  1136	001524'	247200	000000			MWORD	<CONT,S0A,A=10,PLUS,B=11,D=2>			; 2472
  1137	001525'	402104	400340
  1138	001526'	247300	000000			MWORD	<CONT,S0A,A=11,PLUS,B=12,D=2>			; 2473
  1139	001527'	402115	000340
  1140	001530'	247400	000000			MWORD	<CONT,S0A,A=12,PLUS,B=13,D=2>			; 2474
  1141	001531'	402125	400340
  1142	001532'	247500	000000			MWORD	<CONT,S0A,A=13,PLUS,B=14,D=2>			; 2475
  1143	001533'	402136	000340
  1144	001534'	247600	000000			MWORD	<CONT,S0A,A=14,PLUS,B=15,D=2>			; 2476
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-11
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0519

  1145	001535'	402146	400340
  1146	001536'	247700	000000			MWORD	<CONT,S0A,A=15,PLUS,B=16,D=2>			; 2477
  1147	001537'	402157	000340
  1148	001540'	250000	000000			MWORD	<CONT,S0A,A=16,PLUS,B=17,D=2>			; 2500
  1149	001541'	402167	400340
  1150	001542'	250100	000000			MWORD	<CONT,S0A,A=17,PLUS,D=0>			; 2501
  1151	001543'	400170	000340
  1152	001544'	250200	000000			MWORD	<CONT,SAB,A=0,B=0,OR,D=2>			; 2502
  1153	001545'	132000	000340
  1154	001546'	250300	000000			MWORD	<CONT,SAB,A=1,B=0,OR,D=2>			; 2503
  1155	001547'	132010	000340
  1156	001550'	250400	000000			MWORD	<CONT,SAB,A=2,B=0,OR,D=2>			; 2504
  1157	001551'	132020	000340
  1158	001552'	250500	000000			MWORD	<CONT,SAB,A=3,B=0,OR,D=2>			; 2505
  1159	001553'	132030	000340
  1160	001554'	250600	000000			MWORD	<CONT,SAB,A=4,B=0,OR,D=2>			; 2506
  1161	001555'	132040	000340
  1162	001556'	250700	000000			MWORD	<CONT,SAB,A=5,B=0,OR,D=2>			; 2507
  1163	001557'	132050	000340
  1164	001560'	251000	000000			MWORD	<CONT,SAB,A=6,B=0,OR,D=2>			; 2510
  1165	001561'	132060	000340
  1166	001562'	251100	000000			MWORD	<CONT,SAB,A=7,B=0,OR,D=2>			; 2511
  1167	001563'	132070	000340
  1168	001564'	251200	000000			MWORD	<CONT,SAB,A=10,B=0,OR,D=2>			; 2512
  1169	001565'	132100	000340
  1170	001566'	251300	000000			MWORD	<CONT,SAB,A=11,B=0,OR,D=2>			; 2513
  1171	001567'	132110	000340
  1172	001570'	251400	000000			MWORD	<CONT,SAB,A=12,B=0,OR,D=2>			; 2514
  1173	001571'	132120	000340
  1174	001572'	251500	000000			MWORD	<CONT,SAB,A=13,B=0,OR,D=2>			; 2515
  1175	001573'	132130	000340
  1176	001574'	251600	000000			MWORD	<CONT,SAB,A=14,B=0,OR,D=2>			; 2516
  1177	001575'	132140	000340
  1178	001576'	251700	000000			MWORD	<CONT,SAB,A=15,B=0,OR,D=2>			; 2517
  1179	001577'	132150	000340
  1180	001600'	252000	000000			MWORD	<CONT,SAB,A=16,B=0,OR,D=2>			; 2520
  1181	001601'	132160	000340
  1182	001602'	252100	000000			MWORD	<CONT,SAB,A=17,B=0,OR,D=2>			; 2521
  1183	001603'	132170	000340
  1184	001604'	252200	000000			MWORD	<CONT,SAQ,A=0,B=0,OR,D=2>			; 2522
  1185	001605'	032000	000340
  1186	001606'	252300	000000			MWORD	<CONT,SD0,OR,D=2,B=1,RDLM,MGC=0>		; 2523
  1187	001607'	732000	620340
  1188	001610'	252425	260000			MWORD	<CJP,J=2526,SAB,XOR,A=0,B=1,D=1,CENA,CCFZ>	; 2524
  1189	001611'	161400	420060
  1190	001612'	252550	000004			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=4,SKCN>	; 2525
  1191	001613'	732007	640040
  1192	001614'	252600	000000			MWORD	<CRTN>						; 2526
  1193	001615'	000000	000240
  1194
  1195					;#********************************************************************
  1196					; Verify 2901's Shifting Operations (3000-3032)
  1197					;#********************************************************************
  1198
  1199					;	Shift zeros, ensure result is always zero
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-12
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0520

  1200
  1201	001616'	300010	000000			MWORD	<ADDR=3000,LDCT,J=1000,S0A,AND,D=2>		; 3000
  1202	001617'	442000	000300
  1203	001620'	300130	030000			MWORD	<CJP,J=3003,S0A,OR,D=4,CENA,CCFZ>		; 3001
  1204	001621'	434400	020060
  1205	001622'	300250	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN>	; 3002
  1206	001623'	732007	640040
  1207	001624'	300330	050000			MWORD	<CJP,J=3005,S0A,OR,D=5,CENA,CCFZ>		; 3003
  1208	001625'	435400	020060
  1209	001626'	300450	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN>	; 3004
  1210	001627'	732007	640040
  1211	001630'	300530	070000			MWORD	<CJP,J=3007,S0A,OR,D=6,CENA,CCFZ>		; 3005
  1212	001631'	436400	020060
  1213	001632'	300650	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN>	; 3006
  1214	001633'	732007	640040
  1215	001634'	300730	110000			MWORD	<CJP,J=3011,S0A,OR,D=7,CENA,CCFZ>		; 3007
  1216	001635'	437400	020060
  1217	001636'	301050	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN>	; 3010
  1218	001637'	732007	640040
  1219	001640'	301130	010000			MWORD	<RPCT,J=3001,D=1>				; 3011
  1220	001641'	001000	000220
  1221
  1222					;	Shift ones, ensure result is only zero after 36'th shift
  1223
  1224	001642'	301200	420000			MWORD	<LDCT,J=42,S0A,AND,D=2>				; 3012
  1225	001643'	442000	000300
  1226	001644'	301300	000000			MWORD	<CONT,S0A,XNOR,D=2>				; 3013
  1227	001645'	472000	000340
  1228	001646'	301430	270000			MWORD	<CJP,J=3027,S0A,OR,D=6,CENA,CCFZ>		; 3014
  1229	001647'	436400	020060
  1230	001650'	301530	270000			MWORD	<CJP,J=3027,S0A,OR,D=4,CENA,CCFZ>		; 3015
  1231	001651'	434400	020060
  1232	001652'	301630	270000			MWORD	<CJP,J=3027,S0A,OR,D=7,CENA,CCFZ>		; 3016
  1233	001653'	437400	020060
  1234	001654'	301730	270000			MWORD	<CJP,J=3027,S0A,OR,D=5,CENA,CCFZ>		; 3017
  1235	001655'	435400	020060
  1236	001656'	302030	270000			MWORD	<CJP,J=3027,S0A,OR,D=6,CENA,CCFZ>		; 3020
  1237	001657'	436400	020060
  1238	001660'	302130	270000			MWORD	<CJP,J=3027,S0A,OR,D=4,CENA,CCFZ>		; 3021
  1239	001661'	434400	020060
  1240	001662'	302230	270000			MWORD	<CJP,J=3027,S0A,OR,D=7,CENA,CCFZ>		; 3022
  1241	001663'	437400	020060
  1242	001664'	302330	270000			MWORD	<CJP,J=3027,S0A,OR,D=5,CENA,CCFZ>		; 3023
  1243	001665'	435400	020060
  1244	001666'	302430	270000			MWORD	<CJP,J=3027,S0A,OR,D=6,CENA,CCFZ>		; 3024
  1245	001667'	436400	020060
  1246	001670'	302530	140000			MWORD	<RPCT,J=3014,D=1>				; 3025
  1247	001671'	001000	000220
  1248	001672'	302630	300000			MWORD	<JMAP,J=3030,D=1>				; 3026
  1249	001673'	001000	000040
  1250	001674'	302750	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN>	; 3027
  1251	001675'	732007	640040
  1252	001676'	303030	270000			MWORD	<CJP,J=3027,S0A,OR,D=6,CENA,CCFZ>		; 3030
  1253	001677'	436400	020060
  1254	001700'	303134	000000			MWORD	<CJP,J=3400,S0A,OR,D=6,CENA,CCFZ>		; 3031
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-13
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0521

  1255	001701'	436400	020060
  1256	001702'	303250	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN>	; 3032
  1257	001703'	732007	640040
  1258
  1259					;#********************************************************************
  1260					; Verify shifting of formatter (3400-3441)
  1261					;#********************************************************************
  1262
  1263					;	Build data patterns
  1264
  1265	001704'	340000	000000			MWORD	<ADDR=3400,CONT,SD0,AND,B=7,D=2>		; 3400
  1266	001705'	742003	400340
  1267	001706'	340134	200000			MWORD	<CJS,J=3420,S0A,A=7,B=10,OR,D=2>		; 3401 - 0's
  1268	001707'	432074	000020
  1269	001710'	340234	200000			MWORD	<CJS,J=3420,S0A,A=7,B=10,XNOR,D=2>		; 3402 - comp
  1270	001711'	472074	000020
  1271	001712'	340300	000000			MWORD	<CONT,S0A,PLUS,CRY,A=7,B=7,D=2>			; 3403
  1272	001713'	402073	400740
  1273	001714'	340434	200000			MWORD	<CJS,J=3420,S0A,A=7,B=10,OR,D=2>		; 3404 - 1
  1274	001715'	432074	000020
  1275	001716'	340534	200000			MWORD	<CJS,J=3420,S0A,A=7,B=10,XNOR,D=2>		; 3405 - comp
  1276	001717'	472074	000020
  1277
  1278	001720'	340600	420000			MWORD	<LDCT,J=42>					; 3406
  1279	001721'	000000	000300
  1280	001722'	340700	000000			MWORD	<CONT,S0A,OR,A=7,B=7,D=7>			; 3407
  1281	001723'	437073	400340
  1282	001724'	341034	200000			MWORD	<CJS,J=3420,S0A,A=7,B=10,OR,D=2>		; 3410 - 2 ...
  1283	001725'	432074	000020
  1284	001726'	341134	200000			MWORD	<CJS,J=3420,S0A,A=7,B=10,XNOR,D=2>		; 3411 - comp
  1285	001727'	472074	000020
  1286	001730'	341234	060000			MWORD	<RPCT,J=3406>					; 3412
  1287	001731'	000000	000220
  1288	001732'	341350	000000			MWORD	<JMAP,J=5000,S0A,AND,B=17,D=2>			; 3413 - done
  1289	001733'	442007	400040
  1290
  1291					;	Load formatter
  1292
  1293	001734'	342000	000200			MWORD	<ADDR=3420,CONT,D=1,SELF,MGC=200>		; 3420
  1294	001735'	001000	003340
  1295	001736'	342100	000204			MWORD	<CONT,D=1,SELF,MGC=204>				; 3421
  1296	001737'	001000	003340
  1297	001740'	342200	002040			MWORD	<CONT,S0A,A=10,OR,D=1,OENA,SELF,MGC=40>		; 3422
  1298	001741'	431100	003340
  1299
  1300					;	Rotate down 4 or 8 bits
  1301
  1302	001742'	342300	000000			MWORD	<CONT,S0B,AND,B=5,D=2>				; 3423
  1303	001743'	342002	400340
  1304	001744'	342401	000000			MWORD	<LDCT,J=100>					; 3424
  1305	001745'	000000	000300
  1306	001746'	342500	000204			MWORD	<CONT,S0B,PLUS,B=5,D=2,CRY,SELF,MGC=204> 	; 3425
  1307	001747'	302002	403740
  1308	001750'	342600	000104			MWORD	<CONT,SELF,MGC=104>				; 3426
  1309	001751'	000000	003340
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 12-14
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0522

  1310	001752'	342700	000204			MWORD	<CONT,SELF,MGC=204>				; 3427
  1311	001753'	000000	003340
  1312	001754'	343000	000104			MWORD	<CONT,SELF,MGC=104>				; 3430
  1313	001755'	000000	003340
  1314	001756'	343100	000204			MWORD	<CONT,SELF,MGC=204>				; 3431
  1315	001757'	000000	003340
  1316	001760'	343200	000104			MWORD	<CONT,SELF,MGC=104>				; 3432
  1317	001761'	000000	003340
  1318	001762'	343300	000204			MWORD	<CONT,SELF,MGC=204>				; 3433
  1319	001763'	000000	003340
  1320	001764'	343400	000104			MWORD	<CONT,SELF,MGC=104>				; 3434
  1321	001765'	000000	003340
  1322	001766'	343500	000200			MWORD	<CONT,SD0,OR,B=4,D=2,SELM,MGC=200>		; 3435
  1323	001767'	732002	002340
  1324	001770'	343634	400000			MWORD	<CJP,J=3440,SAB,A=10,B=4,D=1,SMIN,CRY,CENA,CCFZ>; 3436
  1325	001771'	111502	020460
  1326	001772'	343750	000006			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,MGC=6,SKCN>	; 3437
  1327	001773'	732007	640040
  1328	001774'	344034	250000			MWORD	<RPCT,J=3425>					; 3440
  1329	001775'	000000	000220
  1330	001776'	344100	000000			MWORD	<CRTN,D=1>					; 3441
  1331	001777'	001000	000240
  1332
  1333					;#********************************************************************
  1334					; Exit - write completion code to EBUF
  1335					;#********************************************************************
  1336
  1337	002000'	500050	010000			MWORD	<ADDR=5000,JMAP,J=5001,S0B,AND,B=12,D=2>	; 5000
  1338	002001'	342005	000040
  1339	002002'	500100	110000			MWORD	<LDCT,J=11,S0B,PLUS,B=12,D=2,CRY> 		; 5001
  1340	002003'	302005	000700
  1341	002004'	500250	020000			MWORD	<RPCT,J=5002,S0B,OR,B=12,D=7>			; 5002
  1342	002005'	337005	000220
  1343	002006'	500300	002004			MWORD	<CONT,S0B,OR,B=12,D=1,OENA,SELE,MGC=4>		; 5003
  1344	002007'	331005	005340
  1345	002010'	500450	060040			MWORD	<CJP,J=5006,CENA,CCGC,D=1,SELE,MGC=40>		; 5004
  1346	002011'	001400	015060
  1347	002012'	500550	040000			MWORD	<JMAP,J=5004,D=1>				; 5005
  1348	002013'	001000	000040
  1349	002014'	500600	000200			MWORD	<CONT,D=1,SELE,MGC=200>				; 5006
  1350	002015'	001000	005340
  1351	002016'	500700	002004			MWORD	<CONT,S0B,OR,B=17,D=1,OENA,SELE,MGC=4>		; 5007
  1352	002017'	331007	405340
  1353	002020'	501050	100000			MWORD	<JMAP,J=5010,D=1>				; 5010
  1354	002021'	001000	000040
  1355	002022'	777777	777777			-1
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 13
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0523

  1356
  1357					;#********************************************************************
  1358					;* TEST 3 - Port Hardware Test 3
  1359					;
  1360					; Description:  This test verifies that data transfers  over  the
  1361					;		EBUS and CBUS are  possible.   Data  patterns are
  1362					;		read/written/verified via the CBUS module and the
  1363					;		channel. The same is done with the EBUS interface
  1364					;		using IOP function  words  to examine and deposit
  1365					;		KL10 memory.
  1366					;
  1367					; Procedure:	KL> Load microcode
  1368					;		KL> Port Clear
  1369					;		KL> Start port
  1370					;
  1371					;		Verify PORT <==> CBUS interface
  1372					;		-------------------------------
  1373					;
  1374					;		UC> build a data pattern
  1375					;		UC> write buffer 512 words with this data pattern
  1376					;		UC> read buffer and verify each word
  1377					;		If failed - exit test with error code 1-5 in EBUF
  1378					;		If passed - do next data pattern until done
  1379					;
  1380					;		Verify PORT <==> EBUS interface
  1381					;		-------------------------------
  1382					;
  1383					;		UC> write buffer 512 words with a data pattern
  1384					;		UC> read buffer and verify each word
  1385					;		If failed - exit test with error code 6-10 in EBUF
  1386					;
  1387					;		Done
  1388					;		----
  1389					;
  1390					;		KL> Read EBUF and determine test disposition
  1391					;
  1392					; FRU:		EBUS/MPROC/CBUS Modules
  1393					;#********************************************************************
  1394
  1395					; Initialization
  1396
  1397	002023'	332 00 0 00 030037 	TST3:	SKIPE	USER			; user mode?
  1398						GO	[MOVE	TSTTAB+3 	; yes - ensure this test does not
  1399							 TLO	(TDENA)		;    get run (but only if not in
  1400							 SKIPN	UDEBUG		;    debug mode)
  1401							 MOVEM	TSTTAB+3
  1402	002024'	260 17 0 00 003011'			 RTN]
  1403	002025'	201 00 0 00 000000'		MOVEI	Z2			; get address of module start
  1404	002026'	260 17 0 00 000456*		GO	TRACE			; handle trace output
  1405	002027'	201 01 0 00 002101'		MOVEI	1,T3M			; set up microcode address
  1406	002030'	260 17 0 00 000460*		GO	TLOAD			; load/verify it
  1407	002031'	263 17 0 00 000000 		RTN				; failed - exit test
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 14
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0524

  1408
  1409					; Initialization - set up channel
  1410
  1411	002032'	260 17 0 00 000000*		GO	CHINIT			; initialize software
  1412	002033'	201 01 0 00 000000*		MOVEI	1,BUFF			; get buffer address
  1413	002034'	336 00 0 00 000124*		SKIPN	UDEBUG			; debug mode?
  1414	002035'	257 01 0 01 000000 		MAP	1,(1)			; no - map to physical
  1415	002036'	621 01 0 00 777000 		TLZ	1,777000		; get rid of misc bits
  1416	002037'	661 01 0 00 620000 		TLO	1,620000		; make into a 512 word transfer
  1417	002040'	202 01 0 00 000000#		MOVEM	1,PCB+27		; save in PCB
  1418	002041'	201 02 0 00 001000 		MOVEI	2,^D512			; word count
  1419	002042'	201 03 0 00 002033*		MOVEI	3,BUFF			; buffer address
  1420	002043'	201 14 0 00 000115 		MOVEI	PAT,115			; read fill pattern
  1421	002044'	260 17 0 00 000000*		GO	BUFGEN			; initialize buffer
  1422
  1423					; Start the port and give it the buffer address (physical)
  1424
  1425	002045'	260 17 0 00 002575'		GO	MSTART			; start the test at 5777
  1426	002046'	201 01 0 00 002042*		MOVEI	1,BUFF			; get buffer address
  1427	002047'	336 00 0 00 002034*		SKIPN	UDEBUG			; debug mode?
  1428	002050'	257 01 0 01 000000 		MAP	1,(1)			; no - map to physical
  1429	002051'	621 01 0 00 777000 		TLZ	1,777000		; get rid of extraneous bits
  1430	002052'	336 00 0 00 002047*		SKIPN	UDEBUG			; debug mode?
  1431	002053'	260 17 0 00 000000*		GO	.DATAO			; no - write to port
  1432	002054'	201 01 0 00 003720 		MOVEI	1,^D2000		; set up wait of 2 seconds
  1433	002055'	260 17 0 00 002536'		GO	MWAIT			; wait for completion
  1434
  1435					; Handle error printouts
  1436
  1437	002056'	027 00 0 00 002062'		SCOPER	MA3			; print error message
  1438	002057'	255 00 0 00 000000 		JFCL				; loop on error
  1439	002060'	254 00 0 00 002061'		JRST	TX3			; altmode exit
  1440
  1441					; End of test
  1442
  1443	002061'	263 17 0 00 000000 	TX3:	RTN				; return
  1444
  1445					; Error messages
  1446
  1447	002062'	240000	002064'		MA3:	CALL!TXNOT!MA3PNT
  1448	002063'	170000	002636'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1449
  1450	002064'	201 01 0 00 002070'	MA3PNT:	MOVEI	1,MA3LST		; get list address
  1451	002065'	201 02 0 00 000011 		MOVEI	2,9			; get list length
  1452	002066'	260 17 0 00 002606'		GO	MPRINT			; print data
  1453	002067'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0525

  1454
  1455	002070'	037 00 0 00 002746'	MA3LST:	TMSGC	<No failure detected>
  1456	002071'	037 00 0 00 003016'		TMSGC	<2901 to CBUS transfer failed - channel error>
  1457	002072'	037 00 0 00 003030'		TMSGC	<2901 to CBUS transfer failed - parity error>
  1458	002073'	037 00 0 00 003042'		TMSGC	<CBUS to 2901 transfer failed - channel error>
  1459	002074'	037 00 0 00 003054'		TMSGC	<CBUS to 2901 transfer failed - parity error>
  1460	002075'	037 00 0 00 003066'		TMSGC	<CBUS to 2901 transfer failed - data compare error>
  1461	002076'	037 00 0 00 003101'		TMSGC	<2901 to EBUS transfer failed - parity error>
  1462	002077'	037 00 0 00 003113'		TMSGC	<EBUS to 2901 transfer failed - parity error>
  1463	002100'	037 00 0 00 003125'		TMSGC	<EBUS to 2901 transfer failed - data compare error>
  1464
  1465					;#********************************************************************
  1466					; Microcode:
  1467					;#********************************************************************
  1468
  1469					;	R6 - Word count
  1470					;	R7 - Used to build data pattern
  1471					;	R10 - Data pattern
  1472					;	R11 - Actual data read
  1473					;	R15 - IOP word (function + address)
  1474					;	R16 - Initial buffer address
  1475					;	R17 - Completion code
  1476
  1477					;	Initialization, read buffer address into R16
  1478
  1479	002101'	577700	000000		T3M:	MWORD	<ADDR=5777,JZ>					; 5777
  1480	002102'	000000	000000
  1481	002103'	000000	020000			MWORD	<ADDR=0,CJP,J=2,CENA,CCER>			; 0
  1482	002104'	000400	100060
  1483	002105'	000100	000000			MWORD	<JZ>						; 1
  1484	002106'	000000	000000
  1485	002107'	000200	000010			MWORD	<CONT,SD0,OR,D=2,B=16,SELE,MGC=10>		; 2
  1486	002110'	732007	005340
  1487	002111'	000310	000000			MWORD	<JMAP,J=1000,S0A,AND,B=17,D=2>			; 3
  1488	002112'	442007	400040
  1489
  1490					;#********************************************************************
  1491					; Verify 2901-CBUS Data Transfer
  1492					; Verify CBUS-2901 Data Transfer
  1493					;#********************************************************************
  1494
  1495					;	Build data patterns
  1496
  1497	002113'	100000	000000			MWORD	<ADDR=1000,CONT,SD0,AND,B=7,D=2>		; 1000
  1498	002114'	742003	400340
  1499	002115'	100110	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,OR,D=2>		; 1001 - 0's
  1500	002116'	432074	000020
  1501	002117'	100210	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,XNOR,D=2>		; 1002 - comp
  1502	002120'	472074	000020
  1503	002121'	100300	000000			MWORD	<CONT,S0A,PLUS,CRY,A=7,B=7,D=2>			; 1003
  1504	002122'	402073	400740
  1505	002123'	100410	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,OR,D=2>		; 1004 - 1
  1506	002124'	432074	000020
  1507	002125'	100510	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,XNOR,D=2>		; 1005 - comp
  1508	002126'	472074	000020
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15-1
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0526

  1509
  1510	002127'	100600	000000			MWORD	<CONT,S0A,OR,A=7,B=7,D=7>			; 1006
  1511	002130'	437073	400340
  1512	002131'	100720	000000			MWORD	<CJP,J=2000,S0A,OR,A=7,D=1,CENA,CCFZ> 		; 1007
  1513	002132'	431470	020060
  1514	002133'	101010	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,OR,D=2>		; 1010 - 2 ..
  1515	002134'	432074	000020
  1516	002135'	101110	200000			MWORD	<CJS,J=1020,S0A,A=7,B=10,XNOR,D=2>		; 1011 - comp
  1517	002136'	472074	000020
  1518	002137'	101210	060000			MWORD	<JMAP,J=1006>					; 1012
  1519	002140'	000000	000040
  1520
  1521					;	Write all the words specified by the CCW list
  1522
  1523	002141'	102010	210030			MWORD	<ADDR=1020,JMAP,J=1021,SELM,MGC=30>		; 1020
  1524	002142'	000000	002040
  1525	002143'	102101	000220			MWORD	<LDCT,J=100,S0A,AND,D=2,B=6,SELC,MGC=220>	; 1021
  1526	002144'	442003	004300
  1527	002145'	102210	220000			MWORD	<RPCT,J=1022>					; 1022
  1528	002146'	000000	000220
  1529	002147'	102307	770000			MWORD	<LDCT,J=777>					; 1023
  1530	002150'	000000	000300
  1531	002151'	102447	770000			MWORD	<CJP,J=4777,D=1,CENA,CCCE>			; 1024
  1532	002152'	001400	160060
  1533	002153'	102547	760000			MWORD	<CJP,J=4776,D=1,CENA,CCCP>			; 1025
  1534	002154'	001400	140060
  1535	002155'	102610	300000			MWORD	<CJP,J=1030,D=1,CENA,CCCA>			; 1026
  1536	002156'	001400	000060
  1537	002157'	102710	260000			MWORD	<JMAP,J=1026,D=1>				; 1027
  1538	002160'	001000	000040
  1539	002161'	103000	002040			MWORD	<CONT,S0A,A=10,D=1,OENA,SELF,MGC=40>		; 1030
  1540	002162'	401100	003340
  1541	002163'	103130	000002			MWORD	<CJS,J=3000,S0B,PLUS,B=6,D=2,CRY,SELC,MGC=2> 	; 1031
  1542	002164'	302003	004420
  1543	002165'	103210	240000			MWORD	<RPCT,J=1024>					; 1032
  1544	002166'	000000	000220
  1545	002167'	103330	000000			MWORD	<CJS,J=3000>					; 1033
  1546	002170'	000000	000020
  1547	002171'	103430	000140			MWORD	<CJS,J=3000,SELC,MGC=140>			; 1034
  1548	002172'	000000	004020
  1549	002173'	103547	770000			MWORD	<CJP,J=4777,D=1,CENA,CCCE>			; 1035
  1550	002174'	001400	160060
  1551	002175'	103647	760000			MWORD	<CJP,J=4776,D=1,CENA,CCCP>			; 1036
  1552	002176'	001400	140060
  1553	002177'	103710	500000			MWORD	<JMAP,J=1050>					; 1037
  1554	002200'	000000	000040
  1555
  1556					;	Read all the words specified by the CCW list
  1557
  1558	002201'	105000	000030			MWORD	<ADDR=1050,CONT,SELM,MGC=30> 			; 1050
  1559	002202'	000000	002340
  1560	002203'	105101	000200			MWORD	<LDCT,J=100,SELC,MGC=200>			; 1051
  1561	002204'	000000	004300
  1562	002205'	105210	520000			MWORD	<RPCT,J=1052>					; 1052
  1563	002206'	000000	000220
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15-2
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0527

  1564	002207'	105307	770000			MWORD	<LDCT,J=777,S0A,AND,D=2,B=6>			; 1053
  1565	002210'	442003	000300
  1566	002211'	105447	750000			MWORD	<CJP,J=4775,D=1,CENA,CCCE>			; 1054
  1567	002212'	001400	160060
  1568	002213'	105547	740000			MWORD	<CJP,J=4774,D=1,CENA,CCCP>			; 1055
  1569	002214'	001400	140060
  1570	002215'	105610	600000			MWORD	<CJP,J=1060,D=1,CENA,CCCA>			; 1056
  1571	002216'	001400	000060
  1572	002217'	105710	560000			MWORD	<JMAP,J=1056,D=1>				; 1057
  1573	002220'	001000	000040
  1574	002221'	106030	000000			MWORD	<CJS,J=3000>					; 1060
  1575	002222'	000000	000020
  1576	002223'	106100	000004			MWORD	<CONT,D=1,SELC,MGC=4>				; 1061
  1577	002224'	001000	004340
  1578	002225'	106200	000200			MWORD	<CONT,SD0,OR,B=11,D=2,SELM,MGC=200>		; 1062
  1579	002226'	732004	402340
  1580	002227'	106310	650000			MWORD	<CJP,J=1065,SAB,XOR,A=11,B=10,D=1,CENA,CCFZ>	; 1063
  1581	002230'	161514	020060
  1582	002231'	106450	000005			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,SKCN,MGC=5>	; 1064
  1583	002232'	732007	640040
  1584	002233'	106510	540000			MWORD	<RPCT,J=1054,S0B,PLUS,B=6,D=2,CRY>		; 1065
  1585	002234'	302003	000620
  1586	002235'	106630	000000			MWORD	<CJS,J=3000>					; 1066
  1587	002236'	000000	000020
  1588	002237'	106730	000140			MWORD	<CJS,J=3000,SELC,MGC=140>			; 1067
  1589	002240'	000000	004020
  1590	002241'	107047	750000			MWORD	<CJP,J=4775,D=1,CENA,CCCE>			; 1070
  1591	002242'	001400	160060
  1592	002243'	107147	740000			MWORD	<CJP,J=4774,D=1,CENA,CCCP>			; 1071
  1593	002244'	001400	140060
  1594	002245'	107200	000000			MWORD	<CRTN>						; 1072
  1595	002246'	000000	000240
  1596
  1597					;#********************************************************************
  1598					; Verify 2901-EBUS Data Transfer
  1599					; Verify EBUS-2901 Data Transfer
  1600					;#********************************************************************
  1601
  1602					;	Write all 512 words
  1603
  1604	002247'	200020	010000			MWORD	<ADDR=2000,JMAP,J=2001,SD0,AND,B=10,D=2> 	; 2000 
  1605	002250'	742004	000040
  1606	002251'	200100	320450			MWORD	<LDCT,J=32,SD0,OR,B=15,D=2,SKCN,MGC=450>	; 2001
  1607	002252'	732006	640300
  1608	002253'	200220	020000			MWORD	<RPCT,J=2002,S0B,B=15,OR,D=7>			; 2002
  1609	002254'	337006	400220
  1610	002255'	200300	000000			MWORD	<CONT,SAB,A=16,B=15,OR,D=2>			; 2003
  1611	002256'	132166	400340
  1612	002257'	200407	770000			MWORD	<LDCT,J=777,S0B,AND,B=6,D=2>			; 2004
  1613	002260'	342003	000300
  1614	002261'	200532	002004			MWORD	<CJS,J=3200,S0B,OR,B=15,D=1,OENA,SELE,MGC=4>	; 2005
  1615	002262'	331006	405020
  1616	002263'	200600	000001			MWORD	<CONT,D=1,SELE,MGC=1> 				; 2006
  1617	002264'	001000	005340
  1618	002265'	200720	110000			MWORD	<CJP,J=2011,CENA,CCER>				; 2007
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15-3
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0528

  1619	002266'	000400	100060
  1620	002267'	201020	070000		 	MWORD	<JMAP,J=2007>					; 2010
  1621	002270'	000000	000040
  1622	002271'	201100	002004		 	MWORD	<CONT,S0A,OR,A=10,D=1,SELE,MGC=4,OENA>		; 2011
  1623	002272'	431100	005340
  1624	002273'	201200	000020			MWORD	<CONT,S0B,PLUS,B=15,CRY,D=2,SELE,MGC=20>	; 2012
  1625	002274'	302006	405740
  1626	002275'	201347	720000			MWORD	<CJP,J=4772,D=1,CENA,CCEB>			; 2013
  1627	002276'	001400	040060
  1628	002277'	201400	000000			MWORD	<CONT,S0B,PLUS,CRY,B=10,D=2>			; 2014
  1629	002300'	302004	000740
  1630	002301'	201520	050000			MWORD	<RPCT,J=2005,S0B,B=6,PLUS,D=2,CRY>		; 2015
  1631	002302'	302003	000620
  1632	002303'	201620	500000			MWORD	<JMAP,J=2050>					; 2016
  1633	002304'	000000	000040
  1634
  1635					;	Read all 512 words
  1636
  1637	002305'	205000	320440			MWORD	<ADDR=2050,LDCT,J=32,SD0,OR,B=15,D=2,SKCN,MGC=440>
  1638	002306'	732006	640300
  1639	002307'	205120	510000			MWORD	<RPCT,J=2051,S0B,B=15,OR,D=7>			; 2051
  1640	002310'	337006	400220
  1641	002311'	205200	000000			MWORD	<CONT,SAB,A=16,B=15,OR,D=2>			; 2052
  1642	002312'	132166	400340
  1643	002313'	205300	000000			MWORD	<CONT,S0B,AND,B=10,D=2>				; 2053
  1644	002314'	342004	000340
  1645	002315'	205407	770000			MWORD	<LDCT,J=777,S0B,AND,B=6,D=2>			; 2054
  1646	002316'	342003	000300
  1647	002317'	205532	002004			MWORD	<CJS,J=3200,S0A,OR,A=15,D=1,OENA,SELE,MGC=4>	; 2055
  1648	002320'	431150	005020
  1649	002321'	205600	000001			MWORD	<CONT,D=1,SELE,MGC=1>				; 2056
  1650	002322'	001000	005340
  1651	002323'	205720	610000			MWORD	<CJP,J=2061,CENA,CCER>				; 2057
  1652	002324'	000400	100060
  1653	002325'	206020	570000			MWORD	<JMAP,J=2057>					; 2060
  1654	002326'	000000	000040
  1655	002327'	206100	000010			MWORD	<CONT,SD0,OR,B=11,D=2,SELE,MGC=10>		; 2061
  1656	002330'	732004	405340
  1657	002331'	206200	000000			MWORD	<CONT,S0B,PLUS,B=15,CRY,D=2>			; 2062
  1658	002332'	302006	400740
  1659	002333'	206347	710000			MWORD	<CJP,J=4771,D=1,CENA,CCEB>			; 2063
  1660	002334'	001400	040060
  1661	002335'	206420	660000			MWORD	<CJP,J=2066,SAB,XOR,A=11,B=10,D=1,CENA,CCFZ,TIM>; 2064
  1662	002336'	161514	020070
  1663	002337'	206550	000010			MWORD	<JMAP,J=5000,SD0,OR,B=17,D=2,SKCN,MGC=10>	; 2065
  1664	002340'	732007	640040
  1665	002341'	206600	000000			MWORD	<CONT,S0B,PLUS,CRY,B=10,D=2>			; 2066
  1666	002342'	302004	000740
  1667	002343'	206720	550000			MWORD	<RPCT,J=2055,S0B,B=6,PLUS,D=2,CRY>		; 2067
  1668	002344'	302003	000620
  1669	002345'	207050	000000			MWORD	<JMAP,J=5000,S0A,AND,B=17,D=2>			; 2070
  1670	002346'	442007	400040
  1671
  1672					;#********************************************************************
  1673					; Delay subroutine - 3.9 usecs
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15-4
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0529

  1674					;#********************************************************************
  1675
  1676	002347'	300000	000000			MWORD	<ADDR=3000,CONT>
  1677	002350'	000000	000340
  1678	002351'	300100	000000			MWORD	<CONT>
  1679	002352'	000000	000340
  1680	002353'	300200	000000			MWORD	<CONT>
  1681	002354'	000000	000340
  1682	002355'	300300	000000			MWORD	<CONT>
  1683	002356'	000000	000340
  1684	002357'	300400	000000			MWORD	<CONT>
  1685	002360'	000000	000340
  1686	002361'	300500	000000			MWORD	<CONT>
  1687	002362'	000000	000340
  1688	002363'	300600	000000			MWORD	<CONT>
  1689	002364'	000000	000340
  1690	002365'	300700	000000			MWORD	<CONT>
  1691	002366'	000000	000340
  1692	002367'	301000	000000			MWORD	<CONT>
  1693	002370'	000000	000340
  1694	002371'	301100	000000			MWORD	<CONT>
  1695	002372'	000000	000340
  1696	002373'	301200	000000			MWORD	<CONT>
  1697	002374'	000000	000340
  1698	002375'	301300	000000			MWORD	<CONT>
  1699	002376'	000000	000340
  1700	002377'	301400	000000			MWORD	<CONT>
  1701	002400'	000000	000340
  1702	002401'	301500	000000			MWORD	<CONT>
  1703	002402'	000000	000340
  1704	002403'	301600	000000			MWORD	<CRTN>
  1705	002404'	000000	000240
  1706
  1707					;#********************************************************************
  1708					; Delay subroutine - 100 usecs
  1709					;#********************************************************************
  1710
  1711	002405'	320030	000000			MWORD	<ADDR=3200,CJS,J=3000>
  1712	002406'	000000	000020
  1713	002407'	320130	000000			MWORD	<CJS,J=3000>
  1714	002410'	000000	000020
  1715	002411'	320230	000000			MWORD	<CJS,J=3000>
  1716	002412'	000000	000020
  1717	002413'	320330	000000			MWORD	<CJS,J=3000>
  1718	002414'	000000	000020
  1719	002415'	320430	000000			MWORD	<CJS,J=3000>
  1720	002416'	000000	000020
  1721	002417'	320530	000000			MWORD	<CJS,J=3000>
  1722	002420'	000000	000020
  1723	002421'	320630	000000			MWORD	<CJS,J=3000>
  1724	002422'	000000	000020
  1725	002423'	320730	000000			MWORD	<CJS,J=3000>
  1726	002424'	000000	000020
  1727	002425'	321030	000000			MWORD	<CJS,J=3000>
  1728	002426'	000000	000020
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15-5
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0530

  1729	002427'	321130	000000			MWORD	<CJS,J=3000>
  1730	002430'	000000	000020
  1731	002431'	321230	000000			MWORD	<CJS,J=3000>
  1732	002432'	000000	000020
  1733	002433'	321330	000000			MWORD	<CJS,J=3000>
  1734	002434'	000000	000020
  1735	002435'	321430	000000			MWORD	<CJS,J=3000>
  1736	002436'	000000	000020
  1737	002437'	321530	000000			MWORD	<CJS,J=3000>
  1738	002440'	000000	000020
  1739	002441'	321630	000000			MWORD	<CJS,J=3000>
  1740	002442'	000000	000020
  1741	002443'	321730	000000			MWORD	<CJS,J=3000>
  1742	002444'	000000	000020
  1743	002445'	322030	000000			MWORD	<CJS,J=3000>
  1744	002446'	000000	000020
  1745	002447'	322130	000000			MWORD	<CJS,J=3000>
  1746	002450'	000000	000020
  1747	002451'	322230	000000			MWORD	<CJS,J=3000>
  1748	002452'	000000	000020
  1749	002453'	322330	000000			MWORD	<CJS,J=3000>
  1750	002454'	000000	000020
  1751	002455'	322430	000000			MWORD	<CJS,J=3000>
  1752	002456'	000000	000020
  1753	002457'	322530	000000			MWORD	<CJS,J=3000>
  1754	002460'	000000	000020
  1755	002461'	322630	000000			MWORD	<CJS,J=3000>
  1756	002462'	000000	000020
  1757	002463'	322730	000000			MWORD	<CJS,J=3000>
  1758	002464'	000000	000020
  1759	002465'	323030	000000			MWORD	<CJS,J=3000>
  1760	002466'	000000	000020
  1761	002467'	323130	000000			MWORD	<CJS,J=3000>
  1762	002470'	000000	000020
  1763	002471'	323200	000000			MWORD	<CRTN>
  1764	002472'	000000	000240
  1765
  1766					;#********************************************************************
  1767					; Exit - write completion code to EBUF
  1768					;#********************************************************************
  1769
  1770	002473'	477000	000000			MWORD	<ADDR=4770,CONT,S0B,PLUS,B=17,D=2,CRY> 		; 4770
  1771	002474'	302007	400740
  1772	002475'	477100	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4771
  1773	002476'	302007	400740
  1774	002477'	477200	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4772
  1775	002500'	302007	400740
  1776	002501'	477300	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4773
  1777	002502'	302007	400740
  1778	002503'	477400	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4774
  1779	002504'	302007	400740
  1780	002505'	477500	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4775
  1781	002506'	302007	400740
  1782	002507'	477600	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4776
  1783	002510'	302007	400740
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 15-6
DFNIA2	MAC	 8-Jun-83 15:52		Port Modules                                                                       SEQ 0531

  1784	002511'	477700	000000			MWORD	<CONT,S0B,PLUS,B=17,D=2,CRY>			; 4777
  1785	002512'	302007	400740
  1786	002513'	500050	010000			MWORD	<JMAP,J=5001,S0B,AND,B=12,D=2> 			; 5000
  1787	002514'	342005	000040
  1788	002515'	500100	110000			MWORD	<LDCT,J=11,S0B,PLUS,B=12,D=2,CRY> 		; 5001
  1789	002516'	302005	000700
  1790	002517'	500250	020000			MWORD	<RPCT,J=5002,S0B,OR,B=12,D=7>			; 5002
  1791	002520'	337005	000220
  1792	002521'	500300	002004			MWORD	<CONT,S0B,OR,B=12,D=1,OENA,SELE,MGC=4>		; 5003
  1793	002522'	331005	005340
  1794	002523'	500450	060040			MWORD	<CJP,J=5006,CENA,CCGC,D=1,SELE,MGC=40>		; 5004
  1795	002524'	001400	015060
  1796	002525'	500550	040000			MWORD	<JMAP,J=5004,D=1>				; 5005
  1797	002526'	001000	000040
  1798	002527'	500600	000200			MWORD	<CONT,D=1,SELE,MGC=200>				; 5006
  1799	002530'	001000	005340
  1800	002531'	500700	002004			MWORD	<CONT,S0B,OR,B=17,D=1,OENA,SELE,MGC=4>		; 5007
  1801	002532'	331007	405340
  1802	002533'	501050	100000			MWORD	<JMAP,J=5010,D=1>				; 5010
  1803	002534'	001000	000040
  1804	002535'	777777	777777			-1
  1805
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 16
DFNIA2	MAC	 8-Jun-83 15:52		Miscellaneous Routines                                                             SEQ 0532

  1806						SUBTTL	Miscellaneous Routines
  1807
  1808					;#********************************************************************
  1809					;* MWAIT - Routine to wait for test completion and determine test results
  1810					;
  1811					; Arguments:	AC1 - Contains timeout time in milliseconds
  1812					;
  1813					; Returns:	+1 - Always (final data in SAVCSR,SAVLAR,SAVEBU)
  1814					;#********************************************************************
  1815
  1816	002536'	261 17 0 00 000000 	MWAIT:	RPUT	(0,1,2)			; save AC's
  1817
  1818
  1819					; Let test run
  1820
  1821	002541'	200 02 0 00 000001 		MOVE	2,1			; get time to wait
  1822	002542'	275 02 0 00 000005 	MWAIT0:	SUBI	2,5			; calculate remaining time
  1823	002543'	005 00 0 00 000005 		DELAY	5			; wait 5 milliseconds
  1824	002544'	260 17 0 00 000030*		GO	RDCSR			; read CSR
  1825	002545'	474 15 0 00 000000 		SETO	ERFLG,			; failed - set error flag
  1826	002546'	606 01 0 00 000010 		TRNN	1,MPRUN			; port still running?
  1827	002547'	254 00 0 00 002552'		JRST	MWAIT1			; no - test is done
  1828	002550'	606 01 0 00 002000 		TRNN	1,TCOMP			; test complete bit set?
  1829	002551'	327 02 0 00 002542'		JUMPG	2,MWAIT0		; no - loop till done
  1830
  1831					; Determine test disposition
  1832
  1833	002552'	202 01 0 00 002632'	MWAIT1:	MOVEM	1,SAVCSR		; save CSR data
  1834	002553'	606 01 0 00 002000 		TRNN	1,TCOMP			; test completion bit set?
  1835	002554'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1836	002555'	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF
  1837	002556'	260 17 0 00 000055*		GO	LDCSR			; write CSR register
  1838	002557'	260 17 0 00 000060*		GO	RDEBUF			; read the EBUF
  1839	002560'	202 01 0 00 002634'		MOVEM	1,SAVEBU		; save data
  1840	002561'	404 01 0 00 003140'		AND	1,[77]			; clear all but rightmost 6 bits
  1841	002562'	332 00 0 00 000001 		SKIPE	1			; any error bits set?
  1842	002563'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1843
  1844					; Find out stopping address
  1845
  1846	002564'	201 01 0 00 040000 		MOVEI	1,SELLAR		; set this bit
  1847	002565'	260 17 0 00 002556*		GO	LDCSR			; set up to read LAR
  1848	002566'	260 17 0 00 000000*		GO	RDLAR			; read it
  1849	002567'	242 01 0 00 777777 		LSH	1,-1			; position correctly
  1850	002570'	202 01 0 00 002633'		MOVEM	1,SAVLAR		; save it
  1851	002571'	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  1852
  1853	002574'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 17
DFNIA2	MAC	 8-Jun-83 15:52		Miscellaneous Routines                                                             SEQ 0533

  1854
  1855					;#********************************************************************
  1856					;* MSTART - Start the port at location 5777
  1857					;#********************************************************************
  1858
  1859	002575'	261 17 0 00 000001 	MSTART:	PUT	1			; save AC1
  1860	002576'	260 17 0 00 000076*		GO	IPACLR			; do a 'port clear'
  1861	002577'	201 01 0 00 005777 		MOVEI	1,5777			; set up start address and
  1862	002600'	242 01 0 00 000001 		LSH	1,1			;   write it to the RAR
  1863	002601'	260 17 0 00 000101*		GO	LDRAR
  1864	002602'	201 01 0 00 000010 		MOVEI	1,MPRUN			; get 'MPRUN' bit
  1865	002603'	260 17 0 00 002565*		GO	LDCSR			; start the port
  1866	002604'	262 17 0 00 000001 		GET	1			; restore AC1
  1867	002605'	263 17 0 00 000000 		RTN				; return
  1868
  1869
  1870					;#********************************************************************
  1871					;* MPRINT - Print test completion data for a test
  1872					;
  1873					; Argument:	AC1 - contains completion code table
  1874					;		AC2 - contains length of table
  1875					;#********************************************************************
  1876
  1877	002606'	261 17 0 00 000000 	MPRINT:	RPUT	(0,1,2)			; save AC's
  1878
  1879	002611'	037 00 0 00 003141'		TMSGC	<CSR:  >
  1880	002612'	200 00 0 00 002632'		MOVE	SAVCSR			; get CSR data
  1881	002613'	037 13 0 00 000000 		PNTHW				; print it
  1882	002614'	200 01 0 00 002632'		MOVE	1,SAVCSR		; get CSR data
  1883	002615'	606 01 0 00 002000 		TRNN	1,TCOMP			; test completion bit set?
  1884						JRST	[TMSGC	<Test did not complete properly:>
  1885							 TMSGC	<  Started at 5777>
  1886							 TMSGC	<  Stopped at >
  1887							 MOVE	SAVLAR
  1888							 PNT4
  1889	002616'	254 00 0 00 003162'			 JRST	MPRINX]
  1890	002617'	370 00 0 00 000002 		SOS	2			; calculate maximum failure code
  1891	002620'	135 01 0 00 003170'		LDB	1,[POINT 6,SAVEBU,35]	; get failure code
  1892	002621'	313 01 0 00 000002 		CAMLE	1,2			; in range?
  1893						JRST	[TMSGC	<Illegal failure code - >
  1894							 MOVE	1
  1895							 PNTOCS
  1896	002622'	254 00 0 00 003177'			 JRST	MPRINX]
  1897	002623'	200 02 0 17 777777 		MOVE	2,-1(P)			; get table address
  1898	002624'	270 02 0 00 000001 		ADD	2,1			; plus offset
  1899	002625'	256 00 0 02 000000 		XCT	(2)			; print entry
  1900	002626'	262 17 0 00 000002 	MPRINX:	RGET	(2,1,0)			; save AC's
  1901
  1902	002631'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page 18
DFNIA2	MAC	 8-Jun-83 15:52		Miscellaneous Routines                                                             SEQ 0534

  1903
  1904					;#********************************************************************
  1905					; Miscellaneous variables
  1906					;#********************************************************************
  1907
  1908	002632'	000000	000000		SAVCSR:	0				; final CSR data
  1909	002633'	000000	000000		SAVLAR:	0				; final LAR data
  1910	002634'	000000	000000		SAVEBU:	0				; final EBUF data
  1911	002635'	000000	000000		SAVCOD:	0				; failure code
  1912
  1913
  1914					;#********************************************************************
  1915					; End of DFNIA2.MAC
  1916					;#********************************************************************
  1917
  1918						XLIST
  1919
NO ERRORS DETECTED

PROGRAM BREAK IS 003213
CPU TIME USED 03:56.247

140P CORE USED
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page S-1
DFNIA2	MAC	 8-Jun-83 15:52		SYMBOL TABLE                                                                       SEQ 0535

BUFF		002046'	ext	SAVCR1		003203'		$CHR		000044		.MB		000017	spd	
BUFGEN		002044'	ext	SAVCR2		003204'		$GARG		000001		.MCCCA		000037	spd	
CALL	200000	000000	spd	SAVCRA		003205'		%ADDR		005011	spd	.MCCCE		000037	spd	
CHINIT		002032'	ext	SAVCS1		003206'		%ML	501050	100000	spd	.MCCCP		000037	spd	
CSRPNT		000000	ext	SAVCS2		003207'		%MR	001000	000040	spd	.MCCEB		000037	spd	
DDEBUG		000000	ext	SAVCS3		003210'		.DATAI		000000	ext	.MCCER		000037	spd	
DELAY	005000	000000		SAVCSR		002632'	int	.DATAO		002053'	ext	.MCCFZ		000037	spd	
ERESET		000053'	ext	SAVEB1		003211'		.LA		000000	spd	.MCCGC		000037	spd	
ERFLG		000015		SAVEB2		003212'		.LADDR	000100	000000	spd	.MCENA		000001	spd	
GET	262740	000000		SAVEBU		002634'	int	.LAND		000000	spd	.MCJP		000017	spd	
GO	260740	000000		SAVLAR		002633'	int	.LB		000000	spd	.MCJS		000017	spd	
IPACLR		002576'	ext	SCOPER	027000	000000		.LCCCA		000000	spd	.MCONT		000017	spd	
LAST	010000	000000	spd	SCOSW		000201'	ext	.LCCCE		000000	spd	.MCRTN		000017	spd	
LDCRAM		000111'	ext	SELLAR		040000	spd	.LCCCP		000000	spd	.MCRY		000001	spd	
LDCSR		002603'	ext	T2M		000506'	ent	.LCCEB		000000	spd	.MD		000007	spd	
LDEBUF		000057'	ext	T3M		002101'	ent	.LCCER		000000	spd	.MJ		007777	spd	
LDRAR		002601'	ext	TA1		000004'		.LCCFZ		000000	spd	.MJMAP		000017	spd	
M1CRAM		000201'		TA1PAT		000245'		.LCCGC		000000	spd	.MJZ		000017	spd	
M1CSR		000137'		TB1		000045'		.LCENA		000000	spd	.MLDCT		000017	spd	
M1EBUF		000160'		TBYTE		000000	ext	.LCJP		000000	spd	.MLDLM		000037	spd	
MA1		000127'		TC1		000046'		.LCJS		000000	spd	.MLSAD		000037	spd	
MA1PNT		000132'		TC1PAT		000333'		.LCONT		000000	spd	.MMGC		001777	spd	
MA2		000471'		TCOMP		002000	spd	.LCRTN		000000	spd	.MOENA		000001	spd	
MA2LST		000477'		TD1		000072'		.LCRY		000000	spd	.MOR		000007	spd	
MA2PNT		000473'		TD1PAT		000450'		.LD		000000	spd	.MPLUS		000007	spd	
MA3		002062'		TDENA	000100	000000	spd	.LJ		010000	spd	.MRAM		000001	spd	
MA3LST		002070'		TE1		000073'		.LJMAP		000000	spd	.MRDLM		000037	spd	
MA3PNT		002064'		TF1		000103'		.LJZ		000000	spd	.MRPCT		000017	spd	
MC1		000155'		TFLOAD		000000	ext	.LLDCT		000000	spd	.MS0A		000007	spd	
MD1		000176'		TFMFLG		000000	ext	.LLDLM		000000	spd	.MS0B		000007	spd	
MPNTC		000227'		TLOAD		002030'	ext	.LLSAD		000000	spd	.MSAB		000007	spd	
MPRINT		002606'	ent	TPAT		000000	ext	.LMGC		000001	spd	.MSAQ		000007	spd	
MPRINX		002626'		TRACE		002026'	ext	.LOENA		002000	spd	.MSD0		000007	spd	
MPRUN		000010	spd	TREGD		000000	ext	.LOR		000000	spd	.MSELC		000007	spd	
MSG	100000	000000	spd	TREGN		000000	ext	.LPLUS		000000	spd	.MSELE		000007	spd	
MSTART		002575'	ent	TRSFLG		000000	ext	.LRAM		000000	spd	.MSELF		000007	spd	
MWAIT		002536'	ent	TSLOAD		000002'	ext	.LRDLM		000000	spd	.MSELM		000007	spd	
MWAIT0		002542'		TST1		000000'	ent	.LRPCT		000000	spd	.MSELP		000007	spd	
MWAIT1		002552'		TST2		000455'	ent	.LS0A		000000	spd	.MSKCN		000037	spd	
P		000017		TST3		002023'	ent	.LS0B		000000	spd	.MSMIN		000007	spd	
PACKET		000000	ext	TSTEBF		200000	spd	.LSAB		000000	spd	.MTIM		000001	spd	
PAT		000014		TSTSUB		000110'	ext	.LSAQ		000000	spd	.MXNOR		000007	spd	
PCB		000000	ext	TSTTAB		000000	ext	.LSD0		000000	spd	.MXOR		000007	spd	
PNT4	037200	000000		TWORD		000000	ext	.LSELC		000000	spd	.RA	000010	000000	spd	
PNT6	037300	000000		TX1		000126'		.LSELE		000000	spd	.RAND	040000	000000	spd	
PNTHW	037540	000000		TX2		000470'		.LSELF		000000	spd	.RB		400000	spd	
PNTMSG	037000	000000		TX3		002061'		.LSELM		000000	spd	.RCCCA		000000	spd	
PNTOCS	037700	000003		TXALL	060000	000000	spd	.LSELP		000000	spd	.RCCCE		160000	spd	
PUT	261740	000000		TXNOT	040000	000000	spd	.LSKCN		000000	spd	.RCCCP		140000	spd	
RDCRAM		000112'	ext	TXTINH		000200	spd	.LSMIN		000000	spd	.RCCEB		040000	spd	
RDCSR		002544'	ext	UDEBUG		003013'	ext	.LTIM		000000	spd	.RCCER		100000	spd	
RDEBUF		002557'	ext	USER		030037		.LXNOR		000000	spd	.RCCFZ		020000	spd	
RDLAR		002566'	ext	Z2		000000'		.LXOR		000000	spd	.RCCGC		010000	spd	
RTN	263740	000000		$ARG2		000001		.MA		000017	spd	.RCENA	000400	000000	spd	
SAVCOD		002635'	int	$B		000044		.MAND		000007	spd	.RCJP		000060	spd	
.MAIN	MACRO %53A(1152) 20:01 24-Sep-84 Page S-2
DFNIA2	MAC	 8-Jun-83 15:52		SYMBOL TABLE                                                                       SEQ 0536

.RCJS		000020	spd	
.RCONT		000340	spd	
.RCRTN		000240	spd	
.RCRY		000400	spd	
.RD	001000	000000	spd	
.RJ		000000	spd	
.RJMAP		000040	spd	
.RJZ		000000	spd	
.RLDCT		000300	spd	
.RLDLM		230000	spd	
.RLSAD		200000	spd	
.RMGC		000000	spd	
.ROENA		000000	spd	
.ROR	030000	000000	spd	
.RPLUS		000000	spd	
.RRAM	000200	000000	spd	
.RRDLM		220000	spd	
.RRPCT		000220	spd	
.RS0A	400000	000000	spd	
.RS0B	300000	000000	spd	
.RSAB	100000	000000	spd	
.RSAQ		000000	spd	
.RSD0	700000	000000	spd	
.RSELC		004000	spd	
.RSELE		005000	spd	
.RSELF		003000	spd	
.RSELM		002000	spd	
.RSELP		001000	spd	
.RSKCN		240000	spd	
.RSMIN	010000	000000	spd	
.RTIM		000010	spd	
.RXNOR	070000	000000	spd	
.RXOR	060000	000000	spd	
BUFF	    19#	  1412	  1419	  1426
BUFGEN	    30#	  1421                                                                                                     SEQ 0537
CALL	   202	   203	   230	   251	   543	  1447
CHINIT	    26#	  1411
CSRPNT	    19#
DDEBUG	    19#
ERESET	    26#	    75	   128
ERFLG	    84	    88	   101	   105	   136	   140	   180	   184	  1825	  1835	  1842
IPACLR	    26#	   158	  1860
LAST	   204	   231	   252	   543	  1448
LDCRAM	    25#	   175
LDCSR	    25#	    77	    94	   130	  1837	  1847	  1865
LDEBUF	    25#	   132
LDRAR	    25#	   161	  1863
M1CRAM	   251	   254#
M1CSR	   203	   212#
M1EBUF	   230	   233#
MA1	    85	   102	   202#
MA1PNT	   202	   206#
MA2	   533	   543#
MA2LST	   546	   551#
MA2PNT	   543	   546#
MA3	  1437	  1447#
MA3LST	  1450	  1455#
MA3PNT	  1447	  1450#
MC1	   137	   229#
MD1	   181	   250#
MPNTC	   269	   275	   277#
MPRINT	    14	   548	  1452	  1877#
MPRINX	  1889	  1896	  1900#
MPRUN	  1826	  1864
MSG	   204	   229	   231	   250	   252	  1448
MSTART	    14	   527	  1425	  1859#
MWAIT	    14	   529	  1433	  1816#
MWAIT0	  1822#	  1829
MWAIT1	  1827	  1833#
P	  1897
PACKET	    20#
PAT	  1420
PCB	    19#	  1417
RDCRAM	    25#	   176
RDCSR	    25#	    78	    95	  1824
RDEBUF	    25#	   133	  1838
RDLAR	    25#	  1848
SAVCOD	    15	  1911#
SAVCR1	   168#	   168	   179	   268
SAVCR2	   178#	   178	   274
SAVCRA	   160#	   160	   256	   259
SAVCS1	    76#	    76	    93	   207
SAVCS2	    82#	    82	    99	   217
SAVCS3	    80#	    80	    97	   223
SAVCSR	    15	  1833	  1880	  1882	  1908#
SAVEB1	   127#	   127	   131	   135	   238
SAVEB2	   134#	   134	   244
SAVEBU	    15	  1839	  1891	  1910#                                                                                    SEQ 0538
SAVLAR	    15	  1850	  1887	  1909#
SCOSW	    30#	   212	   233	   254
SELLAR	  1846
T2M	    10	   521	   565#
T3M	    10	  1405	  1479#
TA1	    72#	   110
TA1PAT	    73	    81	    98	   299#
TB1	    74	   116#
TBYTE	    20#
TC1	   120#	   145
TC1PAT	   121	   356#
TCOMP	  1828	  1834	  1883
TD1	   123	   151#
TD1PAT	   166	   436#
TDENA	  1399
TE1	   155#	   170
TF1	   166#	   190
TFLOAD	    19#
TFMFLG	    20#
TLOAD	    19#	   522	  1406
TPAT	    20#
TRACE	    19#	    61	   520	  1404
TREGD	    20#
TREGN	    20#
TRSFLG	    20#
TSLOAD	    21#	    62
TST1	     9	    60#
TST2	     9	   519#
TST3	     9	  1397#
TSTEBF	   129	  1836
TSTSUB	    19#	    72	    92	   120	   174
TSTTAB	    21#	  1398	  1401
TWORD	    20#
TX1	    87	    88	   104	   105	   139	   140	   157	   183	   184	   194#
TX2	   535	   539#
TX3	  1439	  1443#
TXALL	   203	   204	   230	   231	   251	   252	   544	  1448
TXNOT	   202	   229	   250	   543	  1447
TXTINH	   213	   215	   219	   221	   234	   236	   240	   242	   264	   266	   270	   272
UDEBUG	    19#	   189	  1400	  1413	  1427	  1430
USER	  1397
Z2	    36#	    60	   519	  1403
$ARG2	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730     SEQ 0539
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688     SEQ 0540
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
$B	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248     SEQ 0541
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
$CHR	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950     SEQ 0542
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
$GARG	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674     SEQ 0543
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624     SEQ 0544
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
%ADDR	   565#	   565	   567#	   567	   576#	   576	   578	   578#	   580	   580#	   582	   582#	   584	   584#
	   586	   586#	   588	   588#	   590	   590#	   592	   592#	   594	   594#	   596	   596#	   598	   598#
	   603#	   603	   605	   605#	   607	   607#	   609	   609#	   611	   611#	   613	   613#	   615	   615#
	   617	   617#	   619	   619#	   621	   621#	   623	   623#	   625	   625#	   627	   627#	   629	   629#
	   631	   631#	   633	   633#	   635	   635#	   637	   637#	   639	   639#	   641	   641#	   643	   643#
	   645	   645#	   647	   647#	   649	   649#	   651	   651#	   656#	   656	   658	   658#	   660	   660#
	   662	   662#	   664	   664#	   666	   666#	   668	   668#	   670	   670#	   672	   672#	   674	   674#
	   676	   676#	   678	   678#	   680	   680#	   682	   682#	   684	   684#	   686	   686#	   688	   688#
	   690	   690#	   692	   692#	   694	   694#	   696	   696#	   698	   698#	   700	   700#	   702	   702#
	   704	   704#	   706	   706#	   708	   708#	   710	   710#	   712	   712#	   714	   714#	   716	   716#
	   718	   718#	   720	   720#	   722	   722#	   724	   724#	   726	   726#	   728	   728#	   730	   730#
	   732	   732#	   734	   734#	   736	   736#	   738	   738#	   740	   740#	   742	   742#	   744	   744#
	   746	   746#	   748	   748#	   750	   750#	   752	   752#	   754	   754#	   756	   756#	   758	   758#
	   760	   760#	   762	   762#	   764	   764#	   766	   766#	   768	   768#	   770	   770#	   772	   772#
	   774	   774#	   776	   776#	   778	   778#	   780	   780#	   782	   782#	   784	   784#	   786	   786#
	   788	   788#	   790	   790#	   792	   792#	   794	   794#	   796	   796#	   798	   798#	   800	   800#
	   802	   802#	   804	   804#	   806	   806#	   808	   808#	   810	   810#	   812	   812#	   814	   814#
	   816	   816#	   818	   818#	   820	   820#	   822	   822#	   824	   824#	   826	   826#	   828	   828#
	   830	   830#	   832	   832#	   834	   834#	   836	   836#	   838	   838#	   840	   840#	   842	   842#
	   844	   844#	   846	   846#	   848	   848#	   850	   850#	   852	   852#	   854	   854#	   856	   856#
	   858	   858#	   860	   860#	   862	   862#	   864	   864#	   866	   866#	   868	   868#	   870	   870#
	   872	   872#	   874	   874#	   876	   876#	   878	   878#	   880	   880#	   882	   882#	   884	   884#
	   886	   886#	   888	   888#	   890	   890#	   892	   892#	   894	   894#	   896	   896#	   898	   898#
	   900	   900#	   902	   902#	   904	   904#	   906	   906#	   908	   908#	   910	   910#	   912	   912#
	   921#	   921	   923	   923#	   925	   925#	   927	   927#	   929	   929#	   931	   931#	   933	   933#
	   935	   935#	   937	   937#	   939	   939#	   941	   941#	   943	   943#	   948#	   948	   950	   950#
	   952	   952#	   954	   954#	   956	   956#	   965#	   965	   967	   967#	   969	   969#	   971	   971#
	   973	   973#	   975	   975#	   977	   977#	   979	   979#	   981	   981#	   983	   983#	   986	   986#
	   988	   988#	   990	   990#	   992	   992#	   994	   994#	   996	   996#	  1001#	  1001	  1003	  1003#
	  1005	  1005#	  1007	  1007#	  1009	  1009#	  1011	  1011#	  1013	  1013#	  1015	  1015#	  1024#	  1024
	  1026	  1026#	  1028	  1028#	  1030	  1030#	  1032	  1032#	  1034	  1034#	  1037	  1037#	  1039	  1039#
	  1041	  1041#	  1043	  1043#	  1045	  1045#	  1047	  1047#	  1052#	  1052	  1054	  1054#	  1056	  1056#
	  1058	  1058#	  1060	  1060#	  1062	  1062#	  1064	  1064#	  1066	  1066#	  1068	  1068#	  1070	  1070#
	  1072	  1072#	  1074	  1074#	  1076	  1076#	  1078	  1078#	  1080	  1080#	  1082	  1082#	  1084	  1084#
	  1086	  1086#	  1088	  1088#	  1090	  1090#	  1092	  1092#	  1094	  1094#	  1096	  1096#	  1098	  1098#
	  1100	  1100#	  1102	  1102#	  1104	  1104#	  1106	  1106#	  1108	  1108#	  1110	  1110#	  1112	  1112#
	  1114	  1114#	  1116	  1116#	  1118	  1118#	  1120	  1120#	  1122	  1122#	  1124	  1124#	  1126	  1126#
	  1128	  1128#	  1130	  1130#	  1132	  1132#	  1134	  1134#	  1136	  1136#	  1138	  1138#	  1140	  1140#
	  1142	  1142#	  1144	  1144#	  1146	  1146#	  1148	  1148#	  1150	  1150#	  1152	  1152#	  1154	  1154#
	  1156	  1156#	  1158	  1158#	  1160	  1160#	  1162	  1162#	  1164	  1164#	  1166	  1166#	  1168	  1168#
	  1170	  1170#	  1172	  1172#	  1174	  1174#	  1176	  1176#	  1178	  1178#	  1180	  1180#	  1182	  1182#    SEQ 0545
	  1184	  1184#	  1186	  1186#	  1188	  1188#	  1190	  1190#	  1192	  1192#	  1201#	  1201	  1203	  1203#
	  1205	  1205#	  1207	  1207#	  1209	  1209#	  1211	  1211#	  1213	  1213#	  1215	  1215#	  1217	  1217#
	  1219	  1219#	  1224	  1224#	  1226	  1226#	  1228	  1228#	  1230	  1230#	  1232	  1232#	  1234	  1234#
	  1236	  1236#	  1238	  1238#	  1240	  1240#	  1242	  1242#	  1244	  1244#	  1246	  1246#	  1248	  1248#
	  1250	  1250#	  1252	  1252#	  1254	  1254#	  1256	  1256#	  1265#	  1265	  1267	  1267#	  1269	  1269#
	  1271	  1271#	  1273	  1273#	  1275	  1275#	  1278	  1278#	  1280	  1280#	  1282	  1282#	  1284	  1284#
	  1286	  1286#	  1288	  1288#	  1293#	  1293	  1295	  1295#	  1297	  1297#	  1302	  1302#	  1304	  1304#
	  1306	  1306#	  1308	  1308#	  1310	  1310#	  1312	  1312#	  1314	  1314#	  1316	  1316#	  1318	  1318#
	  1320	  1320#	  1322	  1322#	  1324	  1324#	  1326	  1326#	  1328	  1328#	  1330	  1330#	  1337#	  1337
	  1339	  1339#	  1341	  1341#	  1343	  1343#	  1345	  1345#	  1347	  1347#	  1349	  1349#	  1351	  1351#
	  1353	  1353#	  1479#	  1479	  1481#	  1481	  1483	  1483#	  1485	  1485#	  1487	  1487#	  1497#	  1497
	  1499	  1499#	  1501	  1501#	  1503	  1503#	  1505	  1505#	  1507	  1507#	  1510	  1510#	  1512	  1512#
	  1514	  1514#	  1516	  1516#	  1518	  1518#	  1523#	  1523	  1525	  1525#	  1527	  1527#	  1529	  1529#
	  1531	  1531#	  1533	  1533#	  1535	  1535#	  1537	  1537#	  1539	  1539#	  1541	  1541#	  1543	  1543#
	  1545	  1545#	  1547	  1547#	  1549	  1549#	  1551	  1551#	  1553	  1553#	  1558#	  1558	  1560	  1560#
	  1562	  1562#	  1564	  1564#	  1566	  1566#	  1568	  1568#	  1570	  1570#	  1572	  1572#	  1574	  1574#
	  1576	  1576#	  1578	  1578#	  1580	  1580#	  1582	  1582#	  1584	  1584#	  1586	  1586#	  1588	  1588#
	  1590	  1590#	  1592	  1592#	  1594	  1594#	  1604#	  1604	  1606	  1606#	  1608	  1608#	  1610	  1610#
	  1612	  1612#	  1614	  1614#	  1616	  1616#	  1618	  1618#	  1620	  1620#	  1622	  1622#	  1624	  1624#
	  1626	  1626#	  1628	  1628#	  1630	  1630#	  1632	  1632#	  1637#	  1637	  1639	  1639#	  1641	  1641#
	  1643	  1643#	  1645	  1645#	  1647	  1647#	  1649	  1649#	  1651	  1651#	  1653	  1653#	  1655	  1655#
	  1657	  1657#	  1659	  1659#	  1661	  1661#	  1663	  1663#	  1665	  1665#	  1667	  1667#	  1669	  1669#
	  1676#	  1676	  1678	  1678#	  1680	  1680#	  1682	  1682#	  1684	  1684#	  1686	  1686#	  1688	  1688#
	  1690	  1690#	  1692	  1692#	  1694	  1694#	  1696	  1696#	  1698	  1698#	  1700	  1700#	  1702	  1702#
	  1704	  1704#	  1711#	  1711	  1713	  1713#	  1715	  1715#	  1717	  1717#	  1719	  1719#	  1721	  1721#
	  1723	  1723#	  1725	  1725#	  1727	  1727#	  1729	  1729#	  1731	  1731#	  1733	  1733#	  1735	  1735#
	  1737	  1737#	  1739	  1739#	  1741	  1741#	  1743	  1743#	  1745	  1745#	  1747	  1747#	  1749	  1749#
	  1751	  1751#	  1753	  1753#	  1755	  1755#	  1757	  1757#	  1759	  1759#	  1761	  1761#	  1763	  1763#
	  1770#	  1770	  1772	  1772#	  1774	  1774#	  1776	  1776#	  1778	  1778#	  1780	  1780#	  1782	  1782#
	  1784	  1784#	  1786	  1786#	  1788	  1788#	  1790	  1790#	  1792	  1792#	  1794	  1794#	  1796	  1796#
	  1798	  1798#	  1800	  1800#	  1802	  1802#
%ML	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884     SEQ 0546
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
%MR	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615     SEQ 0547
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560     SEQ 0548
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
.DATAI	    26#
.DATAO	    26#	  1431
.LA	   578	   580	   582	   584	   586	   590	   592	   594	   656	   660	   664	   668	   672	   676
	   680	   684	   688	   692	   696	   700	   704	   708	   712	   716	   720	   724	   728	   732
	   736	   740	   744	   748	   752	   756	   760	   764	   768	   772	   776	   780	   784	   788
	   792	   796	   800	   804	   808	   812	   816	   820	   824	   828	   832	   836	   840	   844
	   848	   852	   856	   860	   864	   868	   872	   876	   880	   884	   888	   892	   896	   900
	   904	   908	   923	   925	   927	   929	   931	   935	   937	   939	   948	   952	   975	   977
	   979	   981	   983	   988	   990	   992	  1001	  1009	  1011	  1026	  1028	  1030	  1032	  1034
	  1039	  1041	  1043	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072
	  1074	  1076	  1078	  1080	  1082	  1084	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100
	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128
	  1130	  1132	  1134	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156
	  1158	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184
	  1188	  1267	  1269	  1271	  1273	  1275	  1280	  1282	  1284	  1297	  1324	  1499	  1501	  1503
	  1505	  1507	  1510	  1512	  1514	  1516	  1539	  1580	  1610	  1622	  1641	  1647	  1661
.LADDR	   565	   567	   576	   603	   656	   921	   948	   965	  1001	  1024	  1052	  1201	  1265	  1293
	  1337	  1479	  1481	  1497	  1523	  1558	  1604	  1637	  1676	  1711	  1770
.LAND	   576	   598	   921	   943	   967	   973	   996	  1001	  1009	  1024	  1047	  1086	  1088	  1090
	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118
	  1201	  1224	  1265	  1288	  1302	  1337	  1487	  1497	  1525	  1564	  1604	  1612	  1643	  1645
	  1669	  1786
.LB	   576	   578	   580	   582	   584	   586	   590	   592	   594	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   658	   660	   662	   666	   668	   670	   674	   676
	   678	   682	   684	   686	   690	   692	   694	   698	   700	   702	   706	   708	   710	   714
	   716	   718	   722	   724	   726	   730	   732	   734	   738	   740	   742	   746	   748	   750
	   754	   756	   758	   762	   764	   766	   770	   772	   774	   778	   780	   782	   786	   788
	   790	   794	   796	   798	   802	   804	   806	   810	   812	   814	   818	   820	   822	   826
	   828	   830	   834	   836	   838	   842	   844	   846	   850	   852	   854	   858	   860	   862
	   866	   868	   870	   874	   876	   878	   882	   884	   886	   890	   892	   894	   898	   900
	   902	   906	   908	   910	   921	   923	   925	   927	   929	   931	   935	   937	   939	   943
	   950	   952	   954	   967	   969	   971	   973	   975	   977	   979	   981	   983	   988	   990
	   992	   996	  1001	  1003	  1007	  1009	  1011	  1013	  1024	  1026	  1028	  1030	  1032	  1034
	  1039	  1041	  1043	  1047	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070
	  1072	  1074	  1076	  1078	  1080	  1082	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100
	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128     SEQ 0549
	  1130	  1132	  1134	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1152	  1154	  1156	  1158
	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186
	  1188	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1265	  1267	  1269	  1271	  1273	  1275
	  1280	  1282	  1284	  1288	  1302	  1306	  1322	  1324	  1326	  1337	  1339	  1341	  1343	  1351
	  1485	  1487	  1497	  1499	  1501	  1503	  1505	  1507	  1510	  1514	  1516	  1525	  1541	  1564
	  1578	  1580	  1582	  1584	  1604	  1606	  1608	  1610	  1612	  1614	  1624	  1628	  1630	  1637
	  1639	  1641	  1643	  1645	  1655	  1657	  1661	  1663	  1665	  1667	  1669	  1770	  1772	  1774
	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1800
.LCCCA	  1535	  1570
.LCCCE	  1531	  1549	  1566	  1590
.LCCCP	  1533	  1551	  1568	  1592
.LCCEB	  1626	  1659
.LCCER	  1481	  1618	  1651
.LCCFZ	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1512	  1580	  1661
.LCCGC	  1345	  1794
.LCENA	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1345	  1481	  1512	  1531	  1533
	  1535	  1549	  1551	  1566	  1568	  1570	  1580	  1590	  1592	  1618	  1626	  1651	  1659	  1661
	  1794
.LCJP	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1345	  1481	  1512	  1531	  1533
	  1535	  1549	  1551	  1566	  1568	  1570	  1580	  1590	  1592	  1618	  1626	  1651	  1659	  1661
	  1794
.LCJS	   578	   580	   584	   586	   592	   594	   603	   605	   607	   609	   611	   613	   615	   617
	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637	   639	   641	   643	   645
	   647	   649	   923	   925	   929	   931	   937	   939	   975	   977	   981	   983	   990	   992
	  1026	  1028	  1032	  1034	  1041	  1043	  1267	  1269	  1273	  1275	  1282	  1284	  1499	  1501
	  1505	  1507	  1514	  1516	  1541	  1545	  1547	  1574	  1586	  1588	  1614	  1647	  1711	  1713
	  1715	  1717	  1719	  1721	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741
	  1743	  1745	  1747	  1749	  1751	  1753	  1755	  1757	  1759	  1761
.LCONT	   576	   582	   590	   656	   658	   664	   666	   672	   674	   680	   682	   688	   690	   696
	   698	   704	   706	   712	   714	   720	   722	   728	   730	   736	   738	   744	   746	   752
	   754	   760	   762	   768	   770	   776	   778	   784	   786	   792	   794	   800	   802	   808
	   810	   816	   818	   824	   826	   832	   834	   840	   842	   848	   850	   856	   858	   864
	   866	   872	   874	   880	   882	   888	   890	   896	   898	   904	   906	   921	   927	   935
	   948	   950	   971	   973	   979	   988	  1001	  1003	  1005	  1007	  1009	  1024	  1030	  1039
	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078
	  1080	  1082	  1084	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106
	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134
	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162
	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1226	  1265
	  1271	  1280	  1293	  1295	  1297	  1302	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320
	  1322	  1343	  1349	  1351	  1485	  1497	  1503	  1510	  1539	  1558	  1576	  1578	  1610	  1616
	  1622	  1624	  1628	  1641	  1643	  1649	  1655	  1657	  1665	  1676	  1678	  1680	  1682	  1684
	  1686	  1688	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1770	  1772	  1774	  1776	  1778
	  1780	  1782	  1784	  1792	  1798	  1800                                                                     SEQ 0550
.LCRTN	   651	   912	   956	  1015	  1192	  1330	  1594	  1704	  1763
.LCRY	   582	   927	   969	   971	   979	  1030	  1271	  1306	  1324	  1339	  1503	  1541	  1584	  1624
	  1628	  1630	  1657	  1665	  1667	  1770	  1772	  1774	  1776	  1778	  1780	  1782	  1784	  1788
.LD	   576	   578	   580	   582	   584	   586	   590	   592	   594	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   656	   658	   660	   662	   664	   666	   668	   670
	   672	   674	   676	   678	   680	   682	   684	   686	   688	   690	   692	   694	   696	   698
	   700	   702	   704	   706	   708	   710	   712	   714	   716	   718	   720	   722	   724	   726
	   728	   730	   732	   734	   736	   738	   740	   742	   744	   746	   748	   750	   752	   754
	   756	   758	   760	   762	   764	   766	   768	   770	   772	   774	   776	   778	   780	   782
	   784	   786	   788	   790	   792	   794	   796	   798	   800	   802	   804	   806	   808	   810
	   812	   814	   816	   818	   820	   822	   824	   826	   828	   830	   832	   834	   836	   838
	   840	   842	   844	   846	   848	   850	   852	   854	   856	   858	   860	   862	   864	   866
	   868	   870	   872	   874	   876	   878	   880	   882	   884	   886	   888	   890	   892	   894
	   896	   898	   900	   902	   904	   906	   908	   910	   921	   923	   925	   927	   929	   931
	   935	   937	   939	   943	   948	   950	   952	   954	   967	   969	   971	   973	   975	   977
	   979	   981	   983	   988	   990	   992	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013
	  1024	  1026	  1028	  1030	  1032	  1034	  1039	  1041	  1043	  1047	  1052	  1054	  1056	  1058
	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084	  1086
	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114
	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140	  1142
	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168	  1170
	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1201	  1203	  1205	  1207
	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234	  1236	  1238
	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269	  1271	  1273
	  1275	  1280	  1282	  1284	  1288	  1293	  1295	  1297	  1302	  1306	  1322	  1324	  1326	  1330
	  1337	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1485	  1487	  1497	  1499	  1501
	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1525	  1531	  1533	  1535	  1537	  1539	  1541
	  1549	  1551	  1564	  1566	  1568	  1570	  1572	  1576	  1578	  1580	  1582	  1584	  1590	  1592
	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1622	  1624	  1626	  1628	  1630	  1637	  1639
	  1641	  1643	  1645	  1647	  1649	  1655	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1770
	  1772	  1774	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798
	  1800	  1802
.LJ	   567	   578	   580	   584	   586	   588	   592	   594	   596	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   660	   662	   668	   670	   676	   678	   684	   686
	   692	   694	   700	   702	   708	   710	   716	   718	   724	   726	   732	   734	   740	   742
	   748	   750	   756	   758	   764	   766	   772	   774	   780	   782	   788	   790	   796	   798
	   804	   806	   812	   814	   820	   822	   828	   830	   836	   838	   844	   846	   852	   854
	   860	   862	   868	   870	   876	   878	   884	   886	   892	   894	   900	   902	   908	   910
	   923	   925	   929	   931	   933	   937	   939	   941	   943	   952	   954	   965	   967	   969
	   975	   977	   981	   983	   986	   990	   992	   994	   996	  1011	  1013	  1026	  1028	  1032
	  1034	  1037	  1041	  1043	  1045	  1047	  1188	  1190	  1201	  1203	  1205	  1207	  1209	  1211
	  1213	  1215	  1217	  1219	  1224	  1228	  1230	  1232	  1234	  1236	  1238	  1240	  1242	  1244
	  1246	  1248	  1250	  1252	  1254	  1256	  1267	  1269	  1273	  1275	  1278	  1282	  1284	  1286
	  1288	  1304	  1324	  1326	  1328	  1337	  1339	  1341	  1345	  1347	  1353	  1481	  1487	  1499
	  1501	  1505	  1507	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529	  1531	  1533	  1535
	  1537	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1560	  1562	  1564	  1566	  1568	  1570
	  1572	  1574	  1580	  1582	  1584	  1586	  1588	  1590	  1592	  1604	  1606	  1608	  1612	  1614
	  1618	  1620	  1626	  1630	  1632	  1637	  1639	  1645	  1647	  1651	  1653	  1659	  1661	  1663
	  1667	  1669	  1711	  1713	  1715	  1717	  1719	  1721	  1723	  1725	  1727	  1729	  1731	  1733
	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749	  1751	  1753	  1755	  1757	  1759	  1761
	  1786	  1788	  1790	  1794	  1796	  1802                                                                     SEQ 0551
.LJMAP	   567	   598	   662	   670	   678	   686	   694	   702	   710	   718	   726	   734	   742	   750
	   758	   766	   774	   782	   790	   798	   806	   814	   822	   830	   838	   846	   854	   862
	   870	   878	   886	   894	   902	   910	   943	   954	   965	   996	  1013	  1047	  1190	  1205
	  1209	  1213	  1217	  1248	  1250	  1256	  1288	  1326	  1337	  1347	  1353	  1487	  1518	  1523
	  1537	  1553	  1572	  1582	  1604	  1620	  1632	  1653	  1663	  1669	  1786	  1796	  1802
.LJZ	   565	  1479	  1483
.LLDCT	   588	   933	   967	   986	  1037	  1201	  1224	  1278	  1304	  1339	  1525	  1529	  1560	  1564
	  1606	  1612	  1637	  1645	  1788
.LLDLM	   656	   664	   672	   680	   688	   696	   704	   712	   720	   728	   736	   744	   752	   760
	   768	   776	   784	   792	   800	   808	   816	   824	   832	   840	   848	   856	   864	   872
	   880	   888	   896	   904	  1052
.LLSAD	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649
.LMGC	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   656	   658	   662	   664
	   666	   670	   672	   674	   678	   680	   682	   686	   688	   690	   694	   696	   698	   702
	   704	   706	   710	   712	   714	   718	   720	   722	   726	   728	   730	   734	   736	   738
	   742	   744	   746	   750	   752	   754	   758	   760	   762	   766	   768	   770	   774	   776
	   778	   782	   784	   786	   790	   792	   794	   798	   800	   802	   806	   808	   810	   814
	   816	   818	   822	   824	   826	   830	   832	   834	   838	   840	   842	   846	   848	   850
	   854	   856	   858	   862	   864	   866	   870	   872	   874	   878	   880	   882	   886	   888
	   890	   894	   896	   898	   902	   904	   906	   910	   948	   950	   954	  1003	  1005	  1007
	  1013	  1052	  1186	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1293	  1295	  1297	  1306
	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1326	  1343	  1345	  1349	  1351	  1485
	  1523	  1525	  1539	  1541	  1547	  1558	  1560	  1576	  1578	  1582	  1588	  1606	  1614	  1616
	  1622	  1624	  1637	  1647	  1649	  1655	  1663	  1792	  1794	  1798	  1800
.LOENA	   656	   664	   672	   680	   688	   696	   704	   712	   720	   728	   736	   744	   752	   760
	   768	   776	   784	   792	   800	   808	   816	   824	   832	   840	   848	   856	   864	   872
	   880	   888	   896	   904	   948	  1003	  1052	  1297	  1343	  1351	  1539	  1614	  1622	  1647
	  1792	  1800
.LOR	   578	   584	   590	   592	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621
	   623	   625	   627	   629	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649
	   656	   658	   662	   664	   666	   670	   672	   674	   678	   680	   682	   686	   688	   690
	   694	   696	   698	   702	   704	   706	   710	   712	   714	   718	   720	   722	   726	   728
	   730	   734	   736	   738	   742	   744	   746	   750	   752	   754	   758	   760	   762	   766
	   768	   770	   774	   776	   778	   782	   784	   786	   790	   792	   794	   798	   800	   802
	   806	   808	   810	   814	   816	   818	   822	   824	   826	   830	   832	   834	   838	   840
	   842	   846	   848	   850	   854	   856	   858	   862	   864	   866	   870	   872	   874	   878
	   880	   882	   886	   888	   890	   894	   896	   898	   902	   904	   906	   910	   923	   929
	   935	   937	   948	   954	   975	   981	   988	   990	  1003	  1007	  1013	  1026	  1032	  1039
	  1041	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076
	  1078	  1080	  1082	  1084	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168	  1170
	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1190	  1203	  1205	  1207	  1209	  1211
	  1213	  1215	  1217	  1228	  1230	  1232	  1234	  1236	  1238	  1240	  1242	  1244	  1250	  1252
	  1254	  1256	  1267	  1273	  1280	  1282	  1297	  1322	  1326	  1341	  1343	  1351	  1485	  1499
	  1505	  1510	  1512	  1514	  1578	  1582	  1606	  1608	  1610	  1614	  1622	  1637	  1639	  1641
	  1647	  1655	  1663	  1790	  1792	  1800
.LPLUS	   582	   927	   969	   971	   979	  1030	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134
	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1271	  1306	  1339	  1503	  1541	  1584
	  1624	  1628	  1630	  1657	  1665	  1667	  1770	  1772	  1774	  1776	  1778	  1780	  1782	  1784
	  1788
.LRAM	   656	   658	   664	   666	   672	   674	   680	   682	   688	   690	   696	   698	   704	   706
	   712	   714	   720	   722	   728	   730	   736	   738	   744	   746	   752	   754	   760	   762     SEQ 0552
	   768	   770	   776	   778	   784	   786	   792	   794	   800	   802	   808	   810	   816	   818
	   824	   826	   832	   834	   840	   842	   848	   850	   856	   858	   864	   866	   872	   874
	   880	   882	   888	   890	   896	   898	   904	   906
.LRDLM	   658	   666	   674	   682	   690	   698	   706	   714	   722	   730	   738	   746	   754	   762
	   770	   778	   786	   794	   802	   810	   818	   826	   834	   842	   850	   858	   866	   874
	   882	   890	   898	   906	  1186
.LRPCT	   596	   941	   969	   994	  1045	  1219	  1246	  1286	  1328	  1341	  1527	  1543	  1562	  1584
	  1608	  1630	  1639	  1667	  1790
.LS0A	   578	   580	   582	   584	   586	   590	   592	   594	   598	   656	   664	   672	   680	   688
	   696	   704	   712	   720	   728	   736	   744	   752	   760	   768	   776	   784	   792	   800
	   808	   816	   824	   832	   840	   848	   856	   864	   872	   880	   888	   896	   904	   923
	   925	   927	   929	   931	   935	   937	   939	   943	   948	   975	   977	   979	   981	   983
	   988	   990	   992	   996	  1026	  1028	  1030	  1032	  1034	  1039	  1041	  1043	  1047	  1052
	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080
	  1082	  1084	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140	  1142
	  1144	  1146	  1148	  1150	  1201	  1203	  1207	  1211	  1215	  1224	  1226	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1267	  1269	  1271	  1273	  1275	  1280
	  1282	  1284	  1288	  1297	  1487	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516
	  1525	  1539	  1564	  1622	  1647	  1669
.LS0B	   967	   969	   971	  1003	  1302	  1306	  1337	  1339	  1341	  1343	  1351	  1541	  1584	  1608
	  1612	  1614	  1624	  1628	  1630	  1639	  1643	  1645	  1657	  1665	  1667	  1770	  1772	  1774
	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1800
.LSAB	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1001	  1009	  1011	  1086	  1088	  1090	  1092	  1094	  1096
	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1152	  1154	  1156	  1158
	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1188	  1324
	  1580	  1610	  1641	  1661
.LSAQ	  1118	  1184
.LSD0	   576	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627
	   629	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   658	   662	   666
	   670	   674	   678	   682	   686	   690	   694	   698	   702	   706	   710	   714	   718	   722
	   726	   730	   734	   738	   742	   746	   750	   754	   758	   762	   766	   770	   774	   778
	   782	   786	   790	   794	   798	   802	   806	   810	   814	   818	   822	   826	   830	   834
	   838	   842	   846	   850	   854	   858	   862	   866	   870	   874	   878	   882	   886	   890
	   894	   898	   902	   906	   910	   921	   950	   954	   973	  1005	  1007	  1013	  1024	  1186
	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1265	  1322	  1326	  1485	  1497	  1578	  1582
	  1604	  1606	  1637	  1655	  1663
.LSELC	  1525	  1541	  1547	  1560	  1576	  1588
.LSELE	  1343	  1345	  1349	  1351	  1485	  1614	  1616	  1622	  1624	  1647	  1649	  1655	  1792	  1794
	  1798	  1800
.LSELF	   948	  1293	  1295	  1297	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1539
.LSELM	   950	  1003	  1007	  1322	  1523	  1558	  1578
.LSELP	  1005
.LSKCN	   662	   670	   678	   686	   694	   702	   710	   718	   726	   734	   742	   750	   758	   766
	   774	   782	   790	   798	   806	   814	   822	   830	   838	   846	   854	   862	   870	   878
	   886	   894	   902	   910	   954	  1013	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1326
	  1582	  1606	  1637	  1663
.LSMIN	  1324
.LTIM	  1661
.LXNOR	   580	   586	   594	   925	   931	   939	   977	   983	   992	  1028	  1034	  1043	  1226	  1269
	  1275	  1284	  1501	  1507	  1516
.LXOR	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764     SEQ 0553
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1580	  1661
.MA	   578	   580	   582	   584	   586	   590	   592	   594	   656	   660	   664	   668	   672	   676
	   680	   684	   688	   692	   696	   700	   704	   708	   712	   716	   720	   724	   728	   732
	   736	   740	   744	   748	   752	   756	   760	   764	   768	   772	   776	   780	   784	   788
	   792	   796	   800	   804	   808	   812	   816	   820	   824	   828	   832	   836	   840	   844
	   848	   852	   856	   860	   864	   868	   872	   876	   880	   884	   888	   892	   896	   900
	   904	   908	   923	   925	   927	   929	   931	   935	   937	   939	   948	   952	   975	   977
	   979	   981	   983	   988	   990	   992	  1001	  1009	  1011	  1026	  1028	  1030	  1032	  1034
	  1039	  1041	  1043	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072
	  1074	  1076	  1078	  1080	  1082	  1084	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100
	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128
	  1130	  1132	  1134	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156
	  1158	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184
	  1188	  1267	  1269	  1271	  1273	  1275	  1280	  1282	  1284	  1297	  1324	  1499	  1501	  1503
	  1505	  1507	  1510	  1512	  1514	  1516	  1539	  1580	  1610	  1622	  1641	  1647	  1661
.MAND	   576	   598	   921	   943	   967	   973	   996	  1001	  1009	  1024	  1047	  1086	  1088	  1090
	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118
	  1201	  1224	  1265	  1288	  1302	  1337	  1487	  1497	  1525	  1564	  1604	  1612	  1643	  1645
	  1669	  1786
.MB	   576	   578	   580	   582	   584	   586	   590	   592	   594	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   658	   660	   662	   666	   668	   670	   674	   676
	   678	   682	   684	   686	   690	   692	   694	   698	   700	   702	   706	   708	   710	   714
	   716	   718	   722	   724	   726	   730	   732	   734	   738	   740	   742	   746	   748	   750
	   754	   756	   758	   762	   764	   766	   770	   772	   774	   778	   780	   782	   786	   788
	   790	   794	   796	   798	   802	   804	   806	   810	   812	   814	   818	   820	   822	   826
	   828	   830	   834	   836	   838	   842	   844	   846	   850	   852	   854	   858	   860	   862
	   866	   868	   870	   874	   876	   878	   882	   884	   886	   890	   892	   894	   898	   900
	   902	   906	   908	   910	   921	   923	   925	   927	   929	   931	   935	   937	   939	   943
	   950	   952	   954	   967	   969	   971	   973	   975	   977	   979	   981	   983	   988	   990
	   992	   996	  1001	  1003	  1007	  1009	  1011	  1013	  1024	  1026	  1028	  1030	  1032	  1034
	  1039	  1041	  1043	  1047	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070
	  1072	  1074	  1076	  1078	  1080	  1082	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100
	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128
	  1130	  1132	  1134	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1152	  1154	  1156	  1158
	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186
	  1188	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1265	  1267	  1269	  1271	  1273	  1275
	  1280	  1282	  1284	  1288	  1302	  1306	  1322	  1324	  1326	  1337	  1339	  1341	  1343	  1351
	  1485	  1487	  1497	  1499	  1501	  1503	  1505	  1507	  1510	  1514	  1516	  1525	  1541	  1564
	  1578	  1580	  1582	  1584	  1604	  1606	  1608	  1610	  1612	  1614	  1624	  1628	  1630	  1637
	  1639	  1641	  1643	  1645	  1655	  1657	  1661	  1663	  1665	  1667	  1669	  1770	  1772	  1774
	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1800
.MCCCA	  1535	  1570
.MCCCE	  1531	  1549	  1566	  1590
.MCCCP	  1533	  1551	  1568	  1592
.MCCEB	  1626	  1659
.MCCER	  1481	  1618	  1651
.MCCFZ	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1512	  1580	  1661
.MCCGC	  1345	  1794                                                                                                     SEQ 0554
.MCENA	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1345	  1481	  1512	  1531	  1533
	  1535	  1549	  1551	  1566	  1568	  1570	  1580	  1590	  1592	  1618	  1626	  1651	  1659	  1661
	  1794
.MCJP	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1345	  1481	  1512	  1531	  1533
	  1535	  1549	  1551	  1566	  1568	  1570	  1580	  1590	  1592	  1618	  1626	  1651	  1659	  1661
	  1794
.MCJS	   578	   580	   584	   586	   592	   594	   603	   605	   607	   609	   611	   613	   615	   617
	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637	   639	   641	   643	   645
	   647	   649	   923	   925	   929	   931	   937	   939	   975	   977	   981	   983	   990	   992
	  1026	  1028	  1032	  1034	  1041	  1043	  1267	  1269	  1273	  1275	  1282	  1284	  1499	  1501
	  1505	  1507	  1514	  1516	  1541	  1545	  1547	  1574	  1586	  1588	  1614	  1647	  1711	  1713
	  1715	  1717	  1719	  1721	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741
	  1743	  1745	  1747	  1749	  1751	  1753	  1755	  1757	  1759	  1761
.MCONT	   576	   582	   590	   656	   658	   664	   666	   672	   674	   680	   682	   688	   690	   696
	   698	   704	   706	   712	   714	   720	   722	   728	   730	   736	   738	   744	   746	   752
	   754	   760	   762	   768	   770	   776	   778	   784	   786	   792	   794	   800	   802	   808
	   810	   816	   818	   824	   826	   832	   834	   840	   842	   848	   850	   856	   858	   864
	   866	   872	   874	   880	   882	   888	   890	   896	   898	   904	   906	   921	   927	   935
	   948	   950	   971	   973	   979	   988	  1001	  1003	  1005	  1007	  1009	  1024	  1030	  1039
	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078
	  1080	  1082	  1084	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106
	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134
	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162
	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1226	  1265
	  1271	  1280	  1293	  1295	  1297	  1302	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320
	  1322	  1343	  1349	  1351	  1485	  1497	  1503	  1510	  1539	  1558	  1576	  1578	  1610	  1616
	  1622	  1624	  1628	  1641	  1643	  1649	  1655	  1657	  1665	  1676	  1678	  1680	  1682	  1684
	  1686	  1688	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1770	  1772	  1774	  1776	  1778
	  1780	  1782	  1784	  1792	  1798	  1800
.MCRTN	   651	   912	   956	  1015	  1192	  1330	  1594	  1704	  1763
.MCRY	   582	   927	   969	   971	   979	  1030	  1271	  1306	  1324	  1339	  1503	  1541	  1584	  1624
	  1628	  1630	  1657	  1665	  1667	  1770	  1772	  1774	  1776	  1778	  1780	  1782	  1784	  1788
.MD	   576	   578	   580	   582	   584	   586	   590	   592	   594	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   656	   658	   660	   662	   664	   666	   668	   670
	   672	   674	   676	   678	   680	   682	   684	   686	   688	   690	   692	   694	   696	   698
	   700	   702	   704	   706	   708	   710	   712	   714	   716	   718	   720	   722	   724	   726
	   728	   730	   732	   734	   736	   738	   740	   742	   744	   746	   748	   750	   752	   754
	   756	   758	   760	   762	   764	   766	   768	   770	   772	   774	   776	   778	   780	   782
	   784	   786	   788	   790	   792	   794	   796	   798	   800	   802	   804	   806	   808	   810
	   812	   814	   816	   818	   820	   822	   824	   826	   828	   830	   832	   834	   836	   838
	   840	   842	   844	   846	   848	   850	   852	   854	   856	   858	   860	   862	   864	   866
	   868	   870	   872	   874	   876	   878	   880	   882	   884	   886	   888	   890	   892	   894
	   896	   898	   900	   902	   904	   906	   908	   910	   921	   923	   925	   927	   929	   931
	   935	   937	   939	   943	   948	   950	   952	   954	   967	   969	   971	   973	   975	   977
	   979	   981	   983	   988	   990	   992	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013
	  1024	  1026	  1028	  1030	  1032	  1034	  1039	  1041	  1043	  1047	  1052	  1054	  1056	  1058     SEQ 0555
	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084	  1086
	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114
	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140	  1142
	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168	  1170
	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1201	  1203	  1205	  1207
	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234	  1236	  1238
	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269	  1271	  1273
	  1275	  1280	  1282	  1284	  1288	  1293	  1295	  1297	  1302	  1306	  1322	  1324	  1326	  1330
	  1337	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1485	  1487	  1497	  1499	  1501
	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1525	  1531	  1533	  1535	  1537	  1539	  1541
	  1549	  1551	  1564	  1566	  1568	  1570	  1572	  1576	  1578	  1580	  1582	  1584	  1590	  1592
	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1622	  1624	  1626	  1628	  1630	  1637	  1639
	  1641	  1643	  1645	  1647	  1649	  1655	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1770
	  1772	  1774	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798
	  1800	  1802
.MJ	   567	   578	   580	   584	   586	   588	   592	   594	   596	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   660	   662	   668	   670	   676	   678	   684	   686
	   692	   694	   700	   702	   708	   710	   716	   718	   724	   726	   732	   734	   740	   742
	   748	   750	   756	   758	   764	   766	   772	   774	   780	   782	   788	   790	   796	   798
	   804	   806	   812	   814	   820	   822	   828	   830	   836	   838	   844	   846	   852	   854
	   860	   862	   868	   870	   876	   878	   884	   886	   892	   894	   900	   902	   908	   910
	   923	   925	   929	   931	   933	   937	   939	   941	   943	   952	   954	   965	   967	   969
	   975	   977	   981	   983	   986	   990	   992	   994	   996	  1011	  1013	  1026	  1028	  1032
	  1034	  1037	  1041	  1043	  1045	  1047	  1188	  1190	  1201	  1203	  1205	  1207	  1209	  1211
	  1213	  1215	  1217	  1219	  1224	  1228	  1230	  1232	  1234	  1236	  1238	  1240	  1242	  1244
	  1246	  1248	  1250	  1252	  1254	  1256	  1267	  1269	  1273	  1275	  1278	  1282	  1284	  1286
	  1288	  1304	  1324	  1326	  1328	  1337	  1339	  1341	  1345	  1347	  1353	  1481	  1487	  1499
	  1501	  1505	  1507	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529	  1531	  1533	  1535
	  1537	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1560	  1562	  1564	  1566	  1568	  1570
	  1572	  1574	  1580	  1582	  1584	  1586	  1588	  1590	  1592	  1604	  1606	  1608	  1612	  1614
	  1618	  1620	  1626	  1630	  1632	  1637	  1639	  1645	  1647	  1651	  1653	  1659	  1661	  1663
	  1667	  1669	  1711	  1713	  1715	  1717	  1719	  1721	  1723	  1725	  1727	  1729	  1731	  1733
	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749	  1751	  1753	  1755	  1757	  1759	  1761
	  1786	  1788	  1790	  1794	  1796	  1802
.MJMAP	   567	   598	   662	   670	   678	   686	   694	   702	   710	   718	   726	   734	   742	   750
	   758	   766	   774	   782	   790	   798	   806	   814	   822	   830	   838	   846	   854	   862
	   870	   878	   886	   894	   902	   910	   943	   954	   965	   996	  1013	  1047	  1190	  1205
	  1209	  1213	  1217	  1248	  1250	  1256	  1288	  1326	  1337	  1347	  1353	  1487	  1518	  1523
	  1537	  1553	  1572	  1582	  1604	  1620	  1632	  1653	  1663	  1669	  1786	  1796	  1802
.MJZ	   565	  1479	  1483
.MLDCT	   588	   933	   967	   986	  1037	  1201	  1224	  1278	  1304	  1339	  1525	  1529	  1560	  1564
	  1606	  1612	  1637	  1645	  1788
.MLDLM	   656	   664	   672	   680	   688	   696	   704	   712	   720	   728	   736	   744	   752	   760
	   768	   776	   784	   792	   800	   808	   816	   824	   832	   840	   848	   856	   864	   872
	   880	   888	   896	   904	  1052
.MLSAD	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649
.MMGC	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   656	   658	   662	   664
	   666	   670	   672	   674	   678	   680	   682	   686	   688	   690	   694	   696	   698	   702
	   704	   706	   710	   712	   714	   718	   720	   722	   726	   728	   730	   734	   736	   738
	   742	   744	   746	   750	   752	   754	   758	   760	   762	   766	   768	   770	   774	   776     SEQ 0556
	   778	   782	   784	   786	   790	   792	   794	   798	   800	   802	   806	   808	   810	   814
	   816	   818	   822	   824	   826	   830	   832	   834	   838	   840	   842	   846	   848	   850
	   854	   856	   858	   862	   864	   866	   870	   872	   874	   878	   880	   882	   886	   888
	   890	   894	   896	   898	   902	   904	   906	   910	   948	   950	   954	  1003	  1005	  1007
	  1013	  1052	  1186	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1293	  1295	  1297	  1306
	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1326	  1343	  1345	  1349	  1351	  1485
	  1523	  1525	  1539	  1541	  1547	  1558	  1560	  1576	  1578	  1582	  1588	  1606	  1614	  1616
	  1622	  1624	  1637	  1647	  1649	  1655	  1663	  1792	  1794	  1798	  1800
.MOENA	   656	   664	   672	   680	   688	   696	   704	   712	   720	   728	   736	   744	   752	   760
	   768	   776	   784	   792	   800	   808	   816	   824	   832	   840	   848	   856	   864	   872
	   880	   888	   896	   904	   948	  1003	  1052	  1297	  1343	  1351	  1539	  1614	  1622	  1647
	  1792	  1800
.MOR	   578	   584	   590	   592	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621
	   623	   625	   627	   629	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649
	   656	   658	   662	   664	   666	   670	   672	   674	   678	   680	   682	   686	   688	   690
	   694	   696	   698	   702	   704	   706	   710	   712	   714	   718	   720	   722	   726	   728
	   730	   734	   736	   738	   742	   744	   746	   750	   752	   754	   758	   760	   762	   766
	   768	   770	   774	   776	   778	   782	   784	   786	   790	   792	   794	   798	   800	   802
	   806	   808	   810	   814	   816	   818	   822	   824	   826	   830	   832	   834	   838	   840
	   842	   846	   848	   850	   854	   856	   858	   862	   864	   866	   870	   872	   874	   878
	   880	   882	   886	   888	   890	   894	   896	   898	   902	   904	   906	   910	   923	   929
	   935	   937	   948	   954	   975	   981	   988	   990	  1003	  1007	  1013	  1026	  1032	  1039
	  1041	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076
	  1078	  1080	  1082	  1084	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168	  1170
	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1190	  1203	  1205	  1207	  1209	  1211
	  1213	  1215	  1217	  1228	  1230	  1232	  1234	  1236	  1238	  1240	  1242	  1244	  1250	  1252
	  1254	  1256	  1267	  1273	  1280	  1282	  1297	  1322	  1326	  1341	  1343	  1351	  1485	  1499
	  1505	  1510	  1512	  1514	  1578	  1582	  1606	  1608	  1610	  1614	  1622	  1637	  1639	  1641
	  1647	  1655	  1663	  1790	  1792	  1800
.MPLUS	   582	   927	   969	   971	   979	  1030	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134
	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1271	  1306	  1339	  1503	  1541	  1584
	  1624	  1628	  1630	  1657	  1665	  1667	  1770	  1772	  1774	  1776	  1778	  1780	  1782	  1784
	  1788
.MRAM	   656	   658	   664	   666	   672	   674	   680	   682	   688	   690	   696	   698	   704	   706
	   712	   714	   720	   722	   728	   730	   736	   738	   744	   746	   752	   754	   760	   762
	   768	   770	   776	   778	   784	   786	   792	   794	   800	   802	   808	   810	   816	   818
	   824	   826	   832	   834	   840	   842	   848	   850	   856	   858	   864	   866	   872	   874
	   880	   882	   888	   890	   896	   898	   904	   906
.MRDLM	   658	   666	   674	   682	   690	   698	   706	   714	   722	   730	   738	   746	   754	   762
	   770	   778	   786	   794	   802	   810	   818	   826	   834	   842	   850	   858	   866	   874
	   882	   890	   898	   906	  1186
.MRPCT	   596	   941	   969	   994	  1045	  1219	  1246	  1286	  1328	  1341	  1527	  1543	  1562	  1584
	  1608	  1630	  1639	  1667	  1790
.MS0A	   578	   580	   582	   584	   586	   590	   592	   594	   598	   656	   664	   672	   680	   688
	   696	   704	   712	   720	   728	   736	   744	   752	   760	   768	   776	   784	   792	   800
	   808	   816	   824	   832	   840	   848	   856	   864	   872	   880	   888	   896	   904	   923
	   925	   927	   929	   931	   935	   937	   939	   943	   948	   975	   977	   979	   981	   983
	   988	   990	   992	   996	  1026	  1028	  1030	  1032	  1034	  1039	  1041	  1043	  1047	  1052
	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080
	  1082	  1084	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140	  1142
	  1144	  1146	  1148	  1150	  1201	  1203	  1207	  1211	  1215	  1224	  1226	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1267	  1269	  1271	  1273	  1275	  1280
	  1282	  1284	  1288	  1297	  1487	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516     SEQ 0557
	  1525	  1539	  1564	  1622	  1647	  1669
.MS0B	   967	   969	   971	  1003	  1302	  1306	  1337	  1339	  1341	  1343	  1351	  1541	  1584	  1608
	  1612	  1614	  1624	  1628	  1630	  1639	  1643	  1645	  1657	  1665	  1667	  1770	  1772	  1774
	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1800
.MSAB	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1001	  1009	  1011	  1086	  1088	  1090	  1092	  1094	  1096
	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1152	  1154	  1156	  1158
	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1188	  1324
	  1580	  1610	  1641	  1661
.MSAQ	  1118	  1184
.MSD0	   576	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627
	   629	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   658	   662	   666
	   670	   674	   678	   682	   686	   690	   694	   698	   702	   706	   710	   714	   718	   722
	   726	   730	   734	   738	   742	   746	   750	   754	   758	   762	   766	   770	   774	   778
	   782	   786	   790	   794	   798	   802	   806	   810	   814	   818	   822	   826	   830	   834
	   838	   842	   846	   850	   854	   858	   862	   866	   870	   874	   878	   882	   886	   890
	   894	   898	   902	   906	   910	   921	   950	   954	   973	  1005	  1007	  1013	  1024	  1186
	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1265	  1322	  1326	  1485	  1497	  1578	  1582
	  1604	  1606	  1637	  1655	  1663
.MSELC	  1525	  1541	  1547	  1560	  1576	  1588
.MSELE	  1343	  1345	  1349	  1351	  1485	  1614	  1616	  1622	  1624	  1647	  1649	  1655	  1792	  1794
	  1798	  1800
.MSELF	   948	  1293	  1295	  1297	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1539
.MSELM	   950	  1003	  1007	  1322	  1523	  1558	  1578
.MSELP	  1005
.MSKCN	   662	   670	   678	   686	   694	   702	   710	   718	   726	   734	   742	   750	   758	   766
	   774	   782	   790	   798	   806	   814	   822	   830	   838	   846	   854	   862	   870	   878
	   886	   894	   902	   910	   954	  1013	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1326
	  1582	  1606	  1637	  1663
.MSMIN	  1324
.MTIM	  1661
.MXNOR	   580	   586	   594	   925	   931	   939	   977	   983	   992	  1028	  1034	  1043	  1226	  1269
	  1275	  1284	  1501	  1507	  1516
.MXOR	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1580	  1661
.RA	   578	   580	   582	   584	   586	   590	   592	   594	   656	   660	   664	   668	   672	   676
	   680	   684	   688	   692	   696	   700	   704	   708	   712	   716	   720	   724	   728	   732
	   736	   740	   744	   748	   752	   756	   760	   764	   768	   772	   776	   780	   784	   788
	   792	   796	   800	   804	   808	   812	   816	   820	   824	   828	   832	   836	   840	   844
	   848	   852	   856	   860	   864	   868	   872	   876	   880	   884	   888	   892	   896	   900
	   904	   908	   923	   925	   927	   929	   931	   935	   937	   939	   948	   952	   975	   977
	   979	   981	   983	   988	   990	   992	  1001	  1009	  1011	  1026	  1028	  1030	  1032	  1034
	  1039	  1041	  1043	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072
	  1074	  1076	  1078	  1080	  1082	  1084	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100
	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128
	  1130	  1132	  1134	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156
	  1158	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184
	  1188	  1267	  1269	  1271	  1273	  1275	  1280	  1282	  1284	  1297	  1324	  1499	  1501	  1503
	  1505	  1507	  1510	  1512	  1514	  1516	  1539	  1580	  1610	  1622	  1641	  1647	  1661
.RAND	   576	   598	   921	   943	   967	   973	   996	  1001	  1009	  1024	  1047	  1086	  1088	  1090
	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118     SEQ 0558
	  1201	  1224	  1265	  1288	  1302	  1337	  1487	  1497	  1525	  1564	  1604	  1612	  1643	  1645
	  1669	  1786
.RB	   576	   578	   580	   582	   584	   586	   590	   592	   594	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   658	   660	   662	   666	   668	   670	   674	   676
	   678	   682	   684	   686	   690	   692	   694	   698	   700	   702	   706	   708	   710	   714
	   716	   718	   722	   724	   726	   730	   732	   734	   738	   740	   742	   746	   748	   750
	   754	   756	   758	   762	   764	   766	   770	   772	   774	   778	   780	   782	   786	   788
	   790	   794	   796	   798	   802	   804	   806	   810	   812	   814	   818	   820	   822	   826
	   828	   830	   834	   836	   838	   842	   844	   846	   850	   852	   854	   858	   860	   862
	   866	   868	   870	   874	   876	   878	   882	   884	   886	   890	   892	   894	   898	   900
	   902	   906	   908	   910	   921	   923	   925	   927	   929	   931	   935	   937	   939	   943
	   950	   952	   954	   967	   969	   971	   973	   975	   977	   979	   981	   983	   988	   990
	   992	   996	  1001	  1003	  1007	  1009	  1011	  1013	  1024	  1026	  1028	  1030	  1032	  1034
	  1039	  1041	  1043	  1047	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070
	  1072	  1074	  1076	  1078	  1080	  1082	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100
	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128
	  1130	  1132	  1134	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1152	  1154	  1156	  1158
	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186
	  1188	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1265	  1267	  1269	  1271	  1273	  1275
	  1280	  1282	  1284	  1288	  1302	  1306	  1322	  1324	  1326	  1337	  1339	  1341	  1343	  1351
	  1485	  1487	  1497	  1499	  1501	  1503	  1505	  1507	  1510	  1514	  1516	  1525	  1541	  1564
	  1578	  1580	  1582	  1584	  1604	  1606	  1608	  1610	  1612	  1614	  1624	  1628	  1630	  1637
	  1639	  1641	  1643	  1645	  1655	  1657	  1661	  1663	  1665	  1667	  1669	  1770	  1772	  1774
	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1800
.RCCCA	  1535	  1570
.RCCCE	  1531	  1549	  1566	  1590
.RCCCP	  1533	  1551	  1568	  1592
.RCCEB	  1626	  1659
.RCCER	  1481	  1618	  1651
.RCCFZ	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1512	  1580	  1661
.RCCGC	  1345	  1794
.RCENA	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1345	  1481	  1512	  1531	  1533
	  1535	  1549	  1551	  1566	  1568	  1570	  1580	  1590	  1592	  1618	  1626	  1651	  1659	  1661
	  1794
.RCJP	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1203	  1207	  1211	  1215	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1324	  1345	  1481	  1512	  1531	  1533
	  1535	  1549	  1551	  1566	  1568	  1570	  1580	  1590	  1592	  1618	  1626	  1651	  1659	  1661
	  1794
.RCJS	   578	   580	   584	   586	   592	   594	   603	   605	   607	   609	   611	   613	   615	   617
	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637	   639	   641	   643	   645
	   647	   649	   923	   925	   929	   931	   937	   939	   975	   977	   981	   983	   990	   992
	  1026	  1028	  1032	  1034	  1041	  1043	  1267	  1269	  1273	  1275	  1282	  1284	  1499	  1501
	  1505	  1507	  1514	  1516	  1541	  1545	  1547	  1574	  1586	  1588	  1614	  1647	  1711	  1713
	  1715	  1717	  1719	  1721	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741     SEQ 0559
	  1743	  1745	  1747	  1749	  1751	  1753	  1755	  1757	  1759	  1761
.RCONT	   576	   582	   590	   656	   658	   664	   666	   672	   674	   680	   682	   688	   690	   696
	   698	   704	   706	   712	   714	   720	   722	   728	   730	   736	   738	   744	   746	   752
	   754	   760	   762	   768	   770	   776	   778	   784	   786	   792	   794	   800	   802	   808
	   810	   816	   818	   824	   826	   832	   834	   840	   842	   848	   850	   856	   858	   864
	   866	   872	   874	   880	   882	   888	   890	   896	   898	   904	   906	   921	   927	   935
	   948	   950	   971	   973	   979	   988	  1001	  1003	  1005	  1007	  1009	  1024	  1030	  1039
	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078
	  1080	  1082	  1084	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106
	  1108	  1110	  1112	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134
	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162
	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1226	  1265
	  1271	  1280	  1293	  1295	  1297	  1302	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320
	  1322	  1343	  1349	  1351	  1485	  1497	  1503	  1510	  1539	  1558	  1576	  1578	  1610	  1616
	  1622	  1624	  1628	  1641	  1643	  1649	  1655	  1657	  1665	  1676	  1678	  1680	  1682	  1684
	  1686	  1688	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1770	  1772	  1774	  1776	  1778
	  1780	  1782	  1784	  1792	  1798	  1800
.RCRTN	   651	   912	   956	  1015	  1192	  1330	  1594	  1704	  1763
.RCRY	   582	   927	   969	   971	   979	  1030	  1271	  1306	  1324	  1339	  1503	  1541	  1584	  1624
	  1628	  1630	  1657	  1665	  1667	  1770	  1772	  1774	  1776	  1778	  1780	  1782	  1784	  1788
.RD	   576	   578	   580	   582	   584	   586	   590	   592	   594	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   656	   658	   660	   662	   664	   666	   668	   670
	   672	   674	   676	   678	   680	   682	   684	   686	   688	   690	   692	   694	   696	   698
	   700	   702	   704	   706	   708	   710	   712	   714	   716	   718	   720	   722	   724	   726
	   728	   730	   732	   734	   736	   738	   740	   742	   744	   746	   748	   750	   752	   754
	   756	   758	   760	   762	   764	   766	   768	   770	   772	   774	   776	   778	   780	   782
	   784	   786	   788	   790	   792	   794	   796	   798	   800	   802	   804	   806	   808	   810
	   812	   814	   816	   818	   820	   822	   824	   826	   828	   830	   832	   834	   836	   838
	   840	   842	   844	   846	   848	   850	   852	   854	   856	   858	   860	   862	   864	   866
	   868	   870	   872	   874	   876	   878	   880	   882	   884	   886	   888	   890	   892	   894
	   896	   898	   900	   902	   904	   906	   908	   910	   921	   923	   925	   927	   929	   931
	   935	   937	   939	   943	   948	   950	   952	   954	   967	   969	   971	   973	   975	   977
	   979	   981	   983	   988	   990	   992	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013
	  1024	  1026	  1028	  1030	  1032	  1034	  1039	  1041	  1043	  1047	  1052	  1054	  1056	  1058
	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084	  1086
	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114
	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140	  1142
	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168	  1170
	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1201	  1203	  1205	  1207
	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234	  1236	  1238
	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269	  1271	  1273
	  1275	  1280	  1282	  1284	  1288	  1293	  1295	  1297	  1302	  1306	  1322	  1324	  1326	  1330
	  1337	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1485	  1487	  1497	  1499	  1501
	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1525	  1531	  1533	  1535	  1537	  1539	  1541
	  1549	  1551	  1564	  1566	  1568	  1570	  1572	  1576	  1578	  1580	  1582	  1584	  1590	  1592
	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1622	  1624	  1626	  1628	  1630	  1637	  1639
	  1641	  1643	  1645	  1647	  1649	  1655	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1770
	  1772	  1774	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798
	  1800	  1802
.RJ	   567	   578	   580	   584	   586	   588	   592	   594	   596	   598	   603	   605	   607	   609
	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629	   631	   633	   635	   637
	   639	   641	   643	   645	   647	   649	   660	   662	   668	   670	   676	   678	   684	   686     SEQ 0560
	   692	   694	   700	   702	   708	   710	   716	   718	   724	   726	   732	   734	   740	   742
	   748	   750	   756	   758	   764	   766	   772	   774	   780	   782	   788	   790	   796	   798
	   804	   806	   812	   814	   820	   822	   828	   830	   836	   838	   844	   846	   852	   854
	   860	   862	   868	   870	   876	   878	   884	   886	   892	   894	   900	   902	   908	   910
	   923	   925	   929	   931	   933	   937	   939	   941	   943	   952	   954	   965	   967	   969
	   975	   977	   981	   983	   986	   990	   992	   994	   996	  1011	  1013	  1026	  1028	  1032
	  1034	  1037	  1041	  1043	  1045	  1047	  1188	  1190	  1201	  1203	  1205	  1207	  1209	  1211
	  1213	  1215	  1217	  1219	  1224	  1228	  1230	  1232	  1234	  1236	  1238	  1240	  1242	  1244
	  1246	  1248	  1250	  1252	  1254	  1256	  1267	  1269	  1273	  1275	  1278	  1282	  1284	  1286
	  1288	  1304	  1324	  1326	  1328	  1337	  1339	  1341	  1345	  1347	  1353	  1481	  1487	  1499
	  1501	  1505	  1507	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529	  1531	  1533	  1535
	  1537	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1560	  1562	  1564	  1566	  1568	  1570
	  1572	  1574	  1580	  1582	  1584	  1586	  1588	  1590	  1592	  1604	  1606	  1608	  1612	  1614
	  1618	  1620	  1626	  1630	  1632	  1637	  1639	  1645	  1647	  1651	  1653	  1659	  1661	  1663
	  1667	  1669	  1711	  1713	  1715	  1717	  1719	  1721	  1723	  1725	  1727	  1729	  1731	  1733
	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749	  1751	  1753	  1755	  1757	  1759	  1761
	  1786	  1788	  1790	  1794	  1796	  1802
.RJMAP	   567	   598	   662	   670	   678	   686	   694	   702	   710	   718	   726	   734	   742	   750
	   758	   766	   774	   782	   790	   798	   806	   814	   822	   830	   838	   846	   854	   862
	   870	   878	   886	   894	   902	   910	   943	   954	   965	   996	  1013	  1047	  1190	  1205
	  1209	  1213	  1217	  1248	  1250	  1256	  1288	  1326	  1337	  1347	  1353	  1487	  1518	  1523
	  1537	  1553	  1572	  1582	  1604	  1620	  1632	  1653	  1663	  1669	  1786	  1796	  1802
.RJZ	   565	  1479	  1483
.RLDCT	   588	   933	   967	   986	  1037	  1201	  1224	  1278	  1304	  1339	  1525	  1529	  1560	  1564
	  1606	  1612	  1637	  1645	  1788
.RLDLM	   656	   664	   672	   680	   688	   696	   704	   712	   720	   728	   736	   744	   752	   760
	   768	   776	   784	   792	   800	   808	   816	   824	   832	   840	   848	   856	   864	   872
	   880	   888	   896	   904	  1052
.RLSAD	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649
.RMGC	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   656	   658	   662	   664
	   666	   670	   672	   674	   678	   680	   682	   686	   688	   690	   694	   696	   698	   702
	   704	   706	   710	   712	   714	   718	   720	   722	   726	   728	   730	   734	   736	   738
	   742	   744	   746	   750	   752	   754	   758	   760	   762	   766	   768	   770	   774	   776
	   778	   782	   784	   786	   790	   792	   794	   798	   800	   802	   806	   808	   810	   814
	   816	   818	   822	   824	   826	   830	   832	   834	   838	   840	   842	   846	   848	   850
	   854	   856	   858	   862	   864	   866	   870	   872	   874	   878	   880	   882	   886	   888
	   890	   894	   896	   898	   902	   904	   906	   910	   948	   950	   954	  1003	  1005	  1007
	  1013	  1052	  1186	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1293	  1295	  1297	  1306
	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1326	  1343	  1345	  1349	  1351	  1485
	  1523	  1525	  1539	  1541	  1547	  1558	  1560	  1576	  1578	  1582	  1588	  1606	  1614	  1616
	  1622	  1624	  1637	  1647	  1649	  1655	  1663	  1792	  1794	  1798	  1800
.ROENA	   656	   664	   672	   680	   688	   696	   704	   712	   720	   728	   736	   744	   752	   760
	   768	   776	   784	   792	   800	   808	   816	   824	   832	   840	   848	   856	   864	   872
	   880	   888	   896	   904	   948	  1003	  1052	  1297	  1343	  1351	  1539	  1614	  1622	  1647
	  1792	  1800
.ROR	   578	   584	   590	   592	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621
	   623	   625	   627	   629	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649
	   656	   658	   662	   664	   666	   670	   672	   674	   678	   680	   682	   686	   688	   690
	   694	   696	   698	   702	   704	   706	   710	   712	   714	   718	   720	   722	   726	   728
	   730	   734	   736	   738	   742	   744	   746	   750	   752	   754	   758	   760	   762	   766
	   768	   770	   774	   776	   778	   782	   784	   786	   790	   792	   794	   798	   800	   802     SEQ 0561
	   806	   808	   810	   814	   816	   818	   822	   824	   826	   830	   832	   834	   838	   840
	   842	   846	   848	   850	   854	   856	   858	   862	   864	   866	   870	   872	   874	   878
	   880	   882	   886	   888	   890	   894	   896	   898	   902	   904	   906	   910	   923	   929
	   935	   937	   948	   954	   975	   981	   988	   990	  1003	  1007	  1013	  1026	  1032	  1039
	  1041	  1052	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076
	  1078	  1080	  1082	  1084	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168	  1170
	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1190	  1203	  1205	  1207	  1209	  1211
	  1213	  1215	  1217	  1228	  1230	  1232	  1234	  1236	  1238	  1240	  1242	  1244	  1250	  1252
	  1254	  1256	  1267	  1273	  1280	  1282	  1297	  1322	  1326	  1341	  1343	  1351	  1485	  1499
	  1505	  1510	  1512	  1514	  1578	  1582	  1606	  1608	  1610	  1614	  1622	  1637	  1639	  1641
	  1647	  1655	  1663	  1790	  1792	  1800
.RPLUS	   582	   927	   969	   971	   979	  1030	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134
	  1136	  1138	  1140	  1142	  1144	  1146	  1148	  1150	  1271	  1306	  1339	  1503	  1541	  1584
	  1624	  1628	  1630	  1657	  1665	  1667	  1770	  1772	  1774	  1776	  1778	  1780	  1782	  1784
	  1788
.RRAM	   656	   658	   664	   666	   672	   674	   680	   682	   688	   690	   696	   698	   704	   706
	   712	   714	   720	   722	   728	   730	   736	   738	   744	   746	   752	   754	   760	   762
	   768	   770	   776	   778	   784	   786	   792	   794	   800	   802	   808	   810	   816	   818
	   824	   826	   832	   834	   840	   842	   848	   850	   856	   858	   864	   866	   872	   874
	   880	   882	   888	   890	   896	   898	   904	   906
.RRDLM	   658	   666	   674	   682	   690	   698	   706	   714	   722	   730	   738	   746	   754	   762
	   770	   778	   786	   794	   802	   810	   818	   826	   834	   842	   850	   858	   866	   874
	   882	   890	   898	   906	  1186
.RRPCT	   596	   941	   969	   994	  1045	  1219	  1246	  1286	  1328	  1341	  1527	  1543	  1562	  1584
	  1608	  1630	  1639	  1667	  1790
.RS0A	   578	   580	   582	   584	   586	   590	   592	   594	   598	   656	   664	   672	   680	   688
	   696	   704	   712	   720	   728	   736	   744	   752	   760	   768	   776	   784	   792	   800
	   808	   816	   824	   832	   840	   848	   856	   864	   872	   880	   888	   896	   904	   923
	   925	   927	   929	   931	   935	   937	   939	   943	   948	   975	   977	   979	   981	   983
	   988	   990	   992	   996	  1026	  1028	  1030	  1032	  1034	  1039	  1041	  1043	  1047	  1052
	  1054	  1056	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080
	  1082	  1084	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140	  1142
	  1144	  1146	  1148	  1150	  1201	  1203	  1207	  1211	  1215	  1224	  1226	  1228	  1230	  1232
	  1234	  1236	  1238	  1240	  1242	  1244	  1252	  1254	  1267	  1269	  1271	  1273	  1275	  1280
	  1282	  1284	  1288	  1297	  1487	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516
	  1525	  1539	  1564	  1622	  1647	  1669
.RS0B	   967	   969	   971	  1003	  1302	  1306	  1337	  1339	  1341	  1343	  1351	  1541	  1584	  1608
	  1612	  1614	  1624	  1628	  1630	  1639	  1643	  1645	  1657	  1665	  1667	  1770	  1772	  1774
	  1776	  1778	  1780	  1782	  1784	  1786	  1788	  1790	  1792	  1800
.RSAB	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1001	  1009	  1011	  1086	  1088	  1090	  1092	  1094	  1096
	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112	  1114	  1116	  1152	  1154	  1156	  1158
	  1160	  1162	  1164	  1166	  1168	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1188	  1324
	  1580	  1610	  1641	  1661
.RSAQ	  1118	  1184
.RSD0	   576	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627
	   629	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   658	   662	   666
	   670	   674	   678	   682	   686	   690	   694	   698	   702	   706	   710	   714	   718	   722
	   726	   730	   734	   738	   742	   746	   750	   754	   758	   762	   766	   770	   774	   778
	   782	   786	   790	   794	   798	   802	   806	   810	   814	   818	   822	   826	   830	   834
	   838	   842	   846	   850	   854	   858	   862	   866	   870	   874	   878	   882	   886	   890
	   894	   898	   902	   906	   910	   921	   950	   954	   973	  1005	  1007	  1013	  1024	  1186     SEQ 0562
	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1265	  1322	  1326	  1485	  1497	  1578	  1582
	  1604	  1606	  1637	  1655	  1663
.RSELC	  1525	  1541	  1547	  1560	  1576	  1588
.RSELE	  1343	  1345	  1349	  1351	  1485	  1614	  1616	  1622	  1624	  1647	  1649	  1655	  1792	  1794
	  1798	  1800
.RSELF	   948	  1293	  1295	  1297	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1539
.RSELM	   950	  1003	  1007	  1322	  1523	  1558	  1578
.RSELP	  1005
.RSKCN	   662	   670	   678	   686	   694	   702	   710	   718	   726	   734	   742	   750	   758	   766
	   774	   782	   790	   798	   806	   814	   822	   830	   838	   846	   854	   862	   870	   878
	   886	   894	   902	   910	   954	  1013	  1190	  1205	  1209	  1213	  1217	  1250	  1256	  1326
	  1582	  1606	  1637	  1663
.RSMIN	  1324
.RTIM	  1661
.RXNOR	   580	   586	   594	   925	   931	   939	   977	   983	   992	  1028	  1034	  1043	  1226	  1269
	  1275	  1284	  1501	  1507	  1516
.RXOR	   660	   668	   676	   684	   692	   700	   708	   716	   724	   732	   740	   748	   756	   764
	   772	   780	   788	   796	   804	   812	   820	   828	   836	   844	   852	   860	   868	   876
	   884	   892	   900	   908	   952	  1011	  1188	  1580	  1661
CALC	   565	   567	   576	   578	   580	   582	   584	   586	   588	   590	   592	   594	   596	   598
	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629     SEQ 0563
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   651	   656	   658	   660
	   662	   664	   666	   668	   670	   672	   674	   676	   678	   680	   682	   684	   686	   688
	   690	   692	   694	   696	   698	   700	   702	   704	   706	   708	   710	   712	   714	   716
	   718	   720	   722	   724	   726	   728	   730	   732	   734	   736	   738	   740	   742	   744
	   746	   748	   750	   752	   754	   756	   758	   760	   762	   764	   766	   768	   770	   772
	   774	   776	   778	   780	   782	   784	   786	   788	   790	   792	   794	   796	   798	   800
	   802	   804	   806	   808	   810	   812	   814	   816	   818	   820	   822	   824	   826	   828
	   830	   832	   834	   836	   838	   840	   842	   844	   846	   848	   850	   852	   854	   856
	   858	   860	   862	   864	   866	   868	   870	   872	   874	   876	   878	   880	   882	   884
	   886	   888	   890	   892	   894	   896	   898	   900	   902	   904	   906	   908	   910	   912
	   921	   923	   925	   927	   929	   931	   933	   935	   937	   939	   941	   943	   948	   950
	   952	   954	   956	   965	   967	   969	   971	   973	   975	   977	   979	   981	   983	   986
	   988	   990	   992	   994	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013	  1015	  1024
	  1026	  1028	  1030	  1032	  1034	  1037	  1039	  1041	  1043	  1045	  1047	  1052	  1054	  1056
	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084
	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112
	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140
	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168
	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1192	  1201	  1203
	  1205	  1207	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234
	  1236	  1238	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269
	  1271	  1273	  1275	  1278	  1280	  1282	  1284	  1286	  1288	  1293	  1295	  1297	  1302	  1304
	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1324	  1326	  1328	  1330	  1337
	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1479	  1481	  1483	  1485	  1487	  1497
	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529
	  1531	  1533	  1535	  1537	  1539	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1558	  1560
	  1562	  1564	  1566	  1568	  1570	  1572	  1574	  1576	  1578	  1580	  1582	  1584	  1586	  1588
	  1590	  1592	  1594	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1618	  1620	  1622	  1624
	  1626	  1628	  1630	  1632	  1637	  1639	  1641	  1643	  1645	  1647	  1649	  1651	  1653	  1655
	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1676	  1678	  1680	  1682	  1684	  1686	  1688
	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1704	  1711	  1713	  1715	  1717	  1719	  1721
	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749
	  1751	  1753	  1755	  1757	  1759	  1761	  1763	  1770	  1772	  1774	  1776	  1778	  1780	  1782
	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798	  1800	  1802
CONCAT	   565	   567	   576	   578	   580	   582	   584	   586	   588	   590	   592	   594	   596	   598
	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   651	   656	   658	   660
	   662	   664	   666	   668	   670	   672	   674	   676	   678	   680	   682	   684	   686	   688
	   690	   692	   694	   696	   698	   700	   702	   704	   706	   708	   710	   712	   714	   716
	   718	   720	   722	   724	   726	   728	   730	   732	   734	   736	   738	   740	   742	   744
	   746	   748	   750	   752	   754	   756	   758	   760	   762	   764	   766	   768	   770	   772
	   774	   776	   778	   780	   782	   784	   786	   788	   790	   792	   794	   796	   798	   800
	   802	   804	   806	   808	   810	   812	   814	   816	   818	   820	   822	   824	   826	   828
	   830	   832	   834	   836	   838	   840	   842	   844	   846	   848	   850	   852	   854	   856
	   858	   860	   862	   864	   866	   868	   870	   872	   874	   876	   878	   880	   882	   884
	   886	   888	   890	   892	   894	   896	   898	   900	   902	   904	   906	   908	   910	   912
	   921	   923	   925	   927	   929	   931	   933	   935	   937	   939	   941	   943	   948	   950
	   952	   954	   956	   965	   967	   969	   971	   973	   975	   977	   979	   981	   983	   986
	   988	   990	   992	   994	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013	  1015	  1024
	  1026	  1028	  1030	  1032	  1034	  1037	  1039	  1041	  1043	  1045	  1047	  1052	  1054	  1056
	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084
	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112
	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140     SEQ 0564
	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168
	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1192	  1201	  1203
	  1205	  1207	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234
	  1236	  1238	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269
	  1271	  1273	  1275	  1278	  1280	  1282	  1284	  1286	  1288	  1293	  1295	  1297	  1302	  1304
	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1324	  1326	  1328	  1330	  1337
	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1479	  1481	  1483	  1485	  1487	  1497
	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529
	  1531	  1533	  1535	  1537	  1539	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1558	  1560
	  1562	  1564	  1566	  1568	  1570	  1572	  1574	  1576	  1578	  1580	  1582	  1584	  1586	  1588
	  1590	  1592	  1594	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1618	  1620	  1622	  1624
	  1626	  1628	  1630	  1632	  1637	  1639	  1641	  1643	  1645	  1647	  1649	  1651	  1653	  1655
	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1676	  1678	  1680	  1682	  1684	  1686	  1688
	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1704	  1711	  1713	  1715	  1717	  1719	  1721
	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749
	  1751	  1753	  1755	  1757	  1759	  1761	  1763	  1770	  1772	  1774	  1776	  1778	  1780	  1782
	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798	  1800	  1802
DELAY	  1823
FIELD	   565	   567	   576	   578	   580	   582	   584	   586	   588	   590	   592	   594	   596	   598
	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   651	   656	   658	   660
	   662	   664	   666	   668	   670	   672	   674	   676	   678	   680	   682	   684	   686	   688
	   690	   692	   694	   696	   698	   700	   702	   704	   706	   708	   710	   712	   714	   716
	   718	   720	   722	   724	   726	   728	   730	   732	   734	   736	   738	   740	   742	   744
	   746	   748	   750	   752	   754	   756	   758	   760	   762	   764	   766	   768	   770	   772
	   774	   776	   778	   780	   782	   784	   786	   788	   790	   792	   794	   796	   798	   800
	   802	   804	   806	   808	   810	   812	   814	   816	   818	   820	   822	   824	   826	   828
	   830	   832	   834	   836	   838	   840	   842	   844	   846	   848	   850	   852	   854	   856
	   858	   860	   862	   864	   866	   868	   870	   872	   874	   876	   878	   880	   882	   884
	   886	   888	   890	   892	   894	   896	   898	   900	   902	   904	   906	   908	   910	   912
	   921	   923	   925	   927	   929	   931	   933	   935	   937	   939	   941	   943	   948	   950
	   952	   954	   956	   965	   967	   969	   971	   973	   975	   977	   979	   981	   983	   986
	   988	   990	   992	   994	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013	  1015	  1024
	  1026	  1028	  1030	  1032	  1034	  1037	  1039	  1041	  1043	  1045	  1047	  1052	  1054	  1056
	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084
	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112
	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140
	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168
	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1192	  1201	  1203
	  1205	  1207	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234
	  1236	  1238	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269
	  1271	  1273	  1275	  1278	  1280	  1282	  1284	  1286	  1288	  1293	  1295	  1297	  1302	  1304
	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1324	  1326	  1328	  1330	  1337
	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1479	  1481	  1483	  1485	  1487	  1497
	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529
	  1531	  1533	  1535	  1537	  1539	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1558	  1560
	  1562	  1564	  1566	  1568	  1570	  1572	  1574	  1576	  1578	  1580	  1582	  1584	  1586	  1588
	  1590	  1592	  1594	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1618	  1620	  1622	  1624
	  1626	  1628	  1630	  1632	  1637	  1639	  1641	  1643	  1645	  1647	  1649	  1651	  1653	  1655
	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1676	  1678	  1680	  1682	  1684	  1686	  1688
	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1704	  1711	  1713	  1715	  1717	  1719	  1721
	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749
	  1751	  1753	  1755	  1757	  1759	  1761	  1763	  1770	  1772	  1774	  1776	  1778	  1780	  1782     SEQ 0565
	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798	  1800	  1802
GET	   289	  1851	  1853	  1866	  1900	  1902
GO	    61	    75	    77	    78	    94	    95	   128	   130	   132	   133	   158	   161	   175	   176
	   269	   275	   520	   522	   527	   529	   548	  1398	  1404	  1406	  1411	  1421	  1425	  1431
	  1433	  1452	  1824	  1837	  1838	  1847	  1848	  1860	  1863	  1865
MFLD	   565#	   565	   567#	   567	   576#	   576	   578#	   578	   580#	   580	   582#	   582	   584#	   584
	   586#	   586	   588#	   588	   590#	   590	   592#	   592	   594#	   594	   596#	   596	   598#	   598
	   603#	   603	   605#	   605	   607#	   607	   609#	   609	   611#	   611	   613#	   613	   615#	   615
	   617#	   617	   619#	   619	   621#	   621	   623#	   623	   625#	   625	   627#	   627	   629#	   629
	   631#	   631	   633#	   633	   635#	   635	   637#	   637	   639#	   639	   641#	   641	   643#	   643
	   645#	   645	   647#	   647	   649#	   649	   651#	   651	   656#	   656	   658#	   658	   660#	   660
	   662#	   662	   664#	   664	   666#	   666	   668#	   668	   670#	   670	   672#	   672	   674#	   674
	   676#	   676	   678#	   678	   680#	   680	   682#	   682	   684#	   684	   686#	   686	   688#	   688
	   690#	   690	   692#	   692	   694#	   694	   696#	   696	   698#	   698	   700#	   700	   702#	   702
	   704#	   704	   706#	   706	   708#	   708	   710#	   710	   712#	   712	   714#	   714	   716#	   716
	   718#	   718	   720#	   720	   722#	   722	   724#	   724	   726#	   726	   728#	   728	   730#	   730
	   732#	   732	   734#	   734	   736#	   736	   738#	   738	   740#	   740	   742#	   742	   744#	   744
	   746#	   746	   748#	   748	   750#	   750	   752#	   752	   754#	   754	   756#	   756	   758#	   758
	   760#	   760	   762#	   762	   764#	   764	   766#	   766	   768#	   768	   770#	   770	   772#	   772
	   774#	   774	   776#	   776	   778#	   778	   780#	   780	   782#	   782	   784#	   784	   786#	   786
	   788#	   788	   790#	   790	   792#	   792	   794#	   794	   796#	   796	   798#	   798	   800#	   800
	   802#	   802	   804#	   804	   806#	   806	   808#	   808	   810#	   810	   812#	   812	   814#	   814
	   816#	   816	   818#	   818	   820#	   820	   822#	   822	   824#	   824	   826#	   826	   828#	   828
	   830#	   830	   832#	   832	   834#	   834	   836#	   836	   838#	   838	   840#	   840	   842#	   842
	   844#	   844	   846#	   846	   848#	   848	   850#	   850	   852#	   852	   854#	   854	   856#	   856
	   858#	   858	   860#	   860	   862#	   862	   864#	   864	   866#	   866	   868#	   868	   870#	   870
	   872#	   872	   874#	   874	   876#	   876	   878#	   878	   880#	   880	   882#	   882	   884#	   884
	   886#	   886	   888#	   888	   890#	   890	   892#	   892	   894#	   894	   896#	   896	   898#	   898
	   900#	   900	   902#	   902	   904#	   904	   906#	   906	   908#	   908	   910#	   910	   912#	   912
	   921#	   921	   923#	   923	   925#	   925	   927#	   927	   929#	   929	   931#	   931	   933#	   933
	   935#	   935	   937#	   937	   939#	   939	   941#	   941	   943#	   943	   948#	   948	   950#	   950
	   952#	   952	   954#	   954	   956#	   956	   965#	   965	   967#	   967	   969#	   969	   971#	   971
	   973#	   973	   975#	   975	   977#	   977	   979#	   979	   981#	   981	   983#	   983	   986#	   986
	   988#	   988	   990#	   990	   992#	   992	   994#	   994	   996#	   996	  1001#	  1001	  1003#	  1003
	  1005#	  1005	  1007#	  1007	  1009#	  1009	  1011#	  1011	  1013#	  1013	  1015#	  1015	  1024#	  1024
	  1026#	  1026	  1028#	  1028	  1030#	  1030	  1032#	  1032	  1034#	  1034	  1037#	  1037	  1039#	  1039
	  1041#	  1041	  1043#	  1043	  1045#	  1045	  1047#	  1047	  1052#	  1052	  1054#	  1054	  1056#	  1056
	  1058#	  1058	  1060#	  1060	  1062#	  1062	  1064#	  1064	  1066#	  1066	  1068#	  1068	  1070#	  1070
	  1072#	  1072	  1074#	  1074	  1076#	  1076	  1078#	  1078	  1080#	  1080	  1082#	  1082	  1084#	  1084
	  1086#	  1086	  1088#	  1088	  1090#	  1090	  1092#	  1092	  1094#	  1094	  1096#	  1096	  1098#	  1098
	  1100#	  1100	  1102#	  1102	  1104#	  1104	  1106#	  1106	  1108#	  1108	  1110#	  1110	  1112#	  1112
	  1114#	  1114	  1116#	  1116	  1118#	  1118	  1120#	  1120	  1122#	  1122	  1124#	  1124	  1126#	  1126
	  1128#	  1128	  1130#	  1130	  1132#	  1132	  1134#	  1134	  1136#	  1136	  1138#	  1138	  1140#	  1140
	  1142#	  1142	  1144#	  1144	  1146#	  1146	  1148#	  1148	  1150#	  1150	  1152#	  1152	  1154#	  1154
	  1156#	  1156	  1158#	  1158	  1160#	  1160	  1162#	  1162	  1164#	  1164	  1166#	  1166	  1168#	  1168
	  1170#	  1170	  1172#	  1172	  1174#	  1174	  1176#	  1176	  1178#	  1178	  1180#	  1180	  1182#	  1182
	  1184#	  1184	  1186#	  1186	  1188#	  1188	  1190#	  1190	  1192#	  1192	  1201#	  1201	  1203#	  1203
	  1205#	  1205	  1207#	  1207	  1209#	  1209	  1211#	  1211	  1213#	  1213	  1215#	  1215	  1217#	  1217
	  1219#	  1219	  1224#	  1224	  1226#	  1226	  1228#	  1228	  1230#	  1230	  1232#	  1232	  1234#	  1234
	  1236#	  1236	  1238#	  1238	  1240#	  1240	  1242#	  1242	  1244#	  1244	  1246#	  1246	  1248#	  1248
	  1250#	  1250	  1252#	  1252	  1254#	  1254	  1256#	  1256	  1265#	  1265	  1267#	  1267	  1269#	  1269
	  1271#	  1271	  1273#	  1273	  1275#	  1275	  1278#	  1278	  1280#	  1280	  1282#	  1282	  1284#	  1284
	  1286#	  1286	  1288#	  1288	  1293#	  1293	  1295#	  1295	  1297#	  1297	  1302#	  1302	  1304#	  1304     SEQ 0566
	  1306#	  1306	  1308#	  1308	  1310#	  1310	  1312#	  1312	  1314#	  1314	  1316#	  1316	  1318#	  1318
	  1320#	  1320	  1322#	  1322	  1324#	  1324	  1326#	  1326	  1328#	  1328	  1330#	  1330	  1337#	  1337
	  1339#	  1339	  1341#	  1341	  1343#	  1343	  1345#	  1345	  1347#	  1347	  1349#	  1349	  1351#	  1351
	  1353#	  1353	  1479#	  1479	  1481#	  1481	  1483#	  1483	  1485#	  1485	  1487#	  1487	  1497#	  1497
	  1499#	  1499	  1501#	  1501	  1503#	  1503	  1505#	  1505	  1507#	  1507	  1510#	  1510	  1512#	  1512
	  1514#	  1514	  1516#	  1516	  1518#	  1518	  1523#	  1523	  1525#	  1525	  1527#	  1527	  1529#	  1529
	  1531#	  1531	  1533#	  1533	  1535#	  1535	  1537#	  1537	  1539#	  1539	  1541#	  1541	  1543#	  1543
	  1545#	  1545	  1547#	  1547	  1549#	  1549	  1551#	  1551	  1553#	  1553	  1558#	  1558	  1560#	  1560
	  1562#	  1562	  1564#	  1564	  1566#	  1566	  1568#	  1568	  1570#	  1570	  1572#	  1572	  1574#	  1574
	  1576#	  1576	  1578#	  1578	  1580#	  1580	  1582#	  1582	  1584#	  1584	  1586#	  1586	  1588#	  1588
	  1590#	  1590	  1592#	  1592	  1594#	  1594	  1604#	  1604	  1606#	  1606	  1608#	  1608	  1610#	  1610
	  1612#	  1612	  1614#	  1614	  1616#	  1616	  1618#	  1618	  1620#	  1620	  1622#	  1622	  1624#	  1624
	  1626#	  1626	  1628#	  1628	  1630#	  1630	  1632#	  1632	  1637#	  1637	  1639#	  1639	  1641#	  1641
	  1643#	  1643	  1645#	  1645	  1647#	  1647	  1649#	  1649	  1651#	  1651	  1653#	  1653	  1655#	  1655
	  1657#	  1657	  1659#	  1659	  1661#	  1661	  1663#	  1663	  1665#	  1665	  1667#	  1667	  1669#	  1669
	  1676#	  1676	  1678#	  1678	  1680#	  1680	  1682#	  1682	  1684#	  1684	  1686#	  1686	  1688#	  1688
	  1690#	  1690	  1692#	  1692	  1694#	  1694	  1696#	  1696	  1698#	  1698	  1700#	  1700	  1702#	  1702
	  1704#	  1704	  1711#	  1711	  1713#	  1713	  1715#	  1715	  1717#	  1717	  1719#	  1719	  1721#	  1721
	  1723#	  1723	  1725#	  1725	  1727#	  1727	  1729#	  1729	  1731#	  1731	  1733#	  1733	  1735#	  1735
	  1737#	  1737	  1739#	  1739	  1741#	  1741	  1743#	  1743	  1745#	  1745	  1747#	  1747	  1749#	  1749
	  1751#	  1751	  1753#	  1753	  1755#	  1755	  1757#	  1757	  1759#	  1759	  1761#	  1761	  1763#	  1763
	  1770#	  1770	  1772#	  1772	  1774#	  1774	  1776#	  1776	  1778#	  1778	  1780#	  1780	  1782#	  1782
	  1784#	  1784	  1786#	  1786	  1788#	  1788	  1790#	  1790	  1792#	  1792	  1794#	  1794	  1796#	  1796
	  1798#	  1798	  1800#	  1800	  1802#	  1802
MWORD	   565	   567	   576	   578	   580	   582	   584	   586	   588	   590	   592	   594	   596	   598
	   603	   605	   607	   609	   611	   613	   615	   617	   619	   621	   623	   625	   627	   629
	   631	   633	   635	   637	   639	   641	   643	   645	   647	   649	   651	   656	   658	   660
	   662	   664	   666	   668	   670	   672	   674	   676	   678	   680	   682	   684	   686	   688
	   690	   692	   694	   696	   698	   700	   702	   704	   706	   708	   710	   712	   714	   716
	   718	   720	   722	   724	   726	   728	   730	   732	   734	   736	   738	   740	   742	   744
	   746	   748	   750	   752	   754	   756	   758	   760	   762	   764	   766	   768	   770	   772
	   774	   776	   778	   780	   782	   784	   786	   788	   790	   792	   794	   796	   798	   800
	   802	   804	   806	   808	   810	   812	   814	   816	   818	   820	   822	   824	   826	   828
	   830	   832	   834	   836	   838	   840	   842	   844	   846	   848	   850	   852	   854	   856
	   858	   860	   862	   864	   866	   868	   870	   872	   874	   876	   878	   880	   882	   884
	   886	   888	   890	   892	   894	   896	   898	   900	   902	   904	   906	   908	   910	   912
	   921	   923	   925	   927	   929	   931	   933	   935	   937	   939	   941	   943	   948	   950
	   952	   954	   956	   965	   967	   969	   971	   973	   975	   977	   979	   981	   983	   986
	   988	   990	   992	   994	   996	  1001	  1003	  1005	  1007	  1009	  1011	  1013	  1015	  1024
	  1026	  1028	  1030	  1032	  1034	  1037	  1039	  1041	  1043	  1045	  1047	  1052	  1054	  1056
	  1058	  1060	  1062	  1064	  1066	  1068	  1070	  1072	  1074	  1076	  1078	  1080	  1082	  1084
	  1086	  1088	  1090	  1092	  1094	  1096	  1098	  1100	  1102	  1104	  1106	  1108	  1110	  1112
	  1114	  1116	  1118	  1120	  1122	  1124	  1126	  1128	  1130	  1132	  1134	  1136	  1138	  1140
	  1142	  1144	  1146	  1148	  1150	  1152	  1154	  1156	  1158	  1160	  1162	  1164	  1166	  1168
	  1170	  1172	  1174	  1176	  1178	  1180	  1182	  1184	  1186	  1188	  1190	  1192	  1201	  1203
	  1205	  1207	  1209	  1211	  1213	  1215	  1217	  1219	  1224	  1226	  1228	  1230	  1232	  1234
	  1236	  1238	  1240	  1242	  1244	  1246	  1248	  1250	  1252	  1254	  1256	  1265	  1267	  1269
	  1271	  1273	  1275	  1278	  1280	  1282	  1284	  1286	  1288	  1293	  1295	  1297	  1302	  1304
	  1306	  1308	  1310	  1312	  1314	  1316	  1318	  1320	  1322	  1324	  1326	  1328	  1330	  1337
	  1339	  1341	  1343	  1345	  1347	  1349	  1351	  1353	  1479	  1481	  1483	  1485	  1487	  1497
	  1499	  1501	  1503	  1505	  1507	  1510	  1512	  1514	  1516	  1518	  1523	  1525	  1527	  1529
	  1531	  1533	  1535	  1537	  1539	  1541	  1543	  1545	  1547	  1549	  1551	  1553	  1558	  1560
	  1562	  1564	  1566	  1568	  1570	  1572	  1574	  1576	  1578	  1580	  1582	  1584	  1586	  1588     SEQ 0567
	  1590	  1592	  1594	  1604	  1606	  1608	  1610	  1612	  1614	  1616	  1618	  1620	  1622	  1624
	  1626	  1628	  1630	  1632	  1637	  1639	  1641	  1643	  1645	  1647	  1649	  1651	  1653	  1655
	  1657	  1659	  1661	  1663	  1665	  1667	  1669	  1676	  1678	  1680	  1682	  1684	  1686	  1688
	  1690	  1692	  1694	  1696	  1698	  1700	  1702	  1704	  1711	  1713	  1715	  1717	  1719	  1721
	  1723	  1725	  1727	  1729	  1731	  1733	  1735	  1737	  1739	  1741	  1743	  1745	  1747	  1749
	  1751	  1753	  1755	  1757	  1759	  1761	  1763	  1770	  1772	  1774	  1776	  1778	  1780	  1782
	  1784	  1786	  1788	  1790	  1792	  1794	  1796	  1798	  1800	  1802
PNT4	   258	  1888
PNT6	   288
PNTHW	   218	   224	   239	   245	  1881
PNTMSG	   206	   209	   214	   216	   220	   222	   235	   237	   241	   243	   255	   261	   263	   265
	   267	   271	   273	   551	   552	   553	   554	   555	   556	   557	  1455	  1456	  1457	  1458
	  1459	  1460	  1461	  1462	  1463	  1879	  1884	  1885	  1886	  1893
PNTOCS	   208	   280	   282	   284	   286	  1895
PUT	   277	  1816	  1818	  1859	  1877	  1879
RGET	  1851	  1900
RPUT	  1816	  1877
RTN	   194	   210	   225	   246	   290	   523	   539	   549	  1402	  1407	  1443	  1453	  1853	  1867
	  1902
SCOPER	    85	   102	   137	   181	   533	  1437
TMSG	   209	   261	   263
TMSGC	   206	   214	   216	   220	   222	   235	   237	   241	   243	   255	   265	   267	   271	   273
	   551	   552	   553	   554	   555	   556	   557	  1455	  1456	  1457	  1458	  1459	  1460	  1461
	  1462	  1463	  1879	  1884	  1885	  1886	  1893
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 1
DFNIA3	MAC	30-Nov-83 16:40		Test Module DFNIA3.MAC                                                             SEQ 0568

     1						SUBTTL	Test Module DFNIA3.MAC
     2
     3						SALL
     4
     5						SEARCH	DFNIA,MONSYM
     6
     7					; Tests 4-27
     8
     9						ENTRY	TST4,TST5,TST6,TST7,TST10,TST11,TST12,TST13,TST14
    10						ENTRY	TST15,TST16,TST17,TST20,TST21,TST22,TST23,TST24
    11						ENTRY	TST25,TST26,TST27,PDUMP
    12						INTERN	CRCSAV,CRCOFF,CRCTAB
    13
    14					; EXTERN's located in DFNIA1.MAC
    15
    16						EXTERN	MVPNT,TFLOAD,TSLOAD,RDADDR,TIDLE,TPCB,SETENA,SETDSA,PCB,BUFF
    17						EXTERN	UDEBUG,CSRPNT,TRACE,TSTSUB,TSTREP,TAMC,TH4000,TPRMSC,TRETRY
    18						EXTERN	TDEST,TRSFLG,TFMFLG,TBSDFL,TPDFLG,TBYTE,TWORD,TPAT,TREGN,TREGD
    19						EXTERN	TPTTVL,CONPNT,CONTBL,CNTPNT,MTABLE,PTABLE,MCAT17,RSPQUE
    20						EXTERN	CHKRSP,RWAIT,BPACK,BPACKN,INSQUE,PACKET,RSPONS
    21						EXTERN	CHKINT,NUMENT,ALTF,TXADDL,CONVIR,PPCB,PQUEUE,DDUMP,DDEBUG
    22						EXTERN	PTTFQ,SADDR
    23						EXTERN	STASNT,STARCV,.RREXP,CHKRQV,RQAFLG,GETQUE,NEWENT,PUTQUE
    24
    25					; EXTERN's located in DFNIAI.MAC (Port Handling Routines)
    26
    27						EXTERN	LDCSR,RDCSR,IPACLR,RUNTME,DEBTIM,ISTOP,LCHAR,PSTAMP,RDLAR
    28						EXTERN	LDRAR,CHINIT
    29
    30					; EXTERN's located in DFNIAU.MAC (Utility Routines)
    31
    32						EXTERN	BUFGEN,PTIME
    33
    34					;#********************************************************************
    35					; Z3 - Address for use in DDT
    36					;#********************************************************************
    37
    38	000000'				Z3:					; address of 00000'
    39
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 2
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0569

    40						SUBTTL	Microcode Functional Tests
    41
    42					;#********************************************************************
    43					;* TEST 4 - Idle Loop Test
    44					;
    45					; Description:	This  test  loads  the  operational microcode and
    46					;		verifies that the port is working well enough  to
    47					;		enter  the  idle  loop.  Also, the ability of the
    48					;		microcode  to  change  from  'disable'  state  to
    49					;		'enable' state and back is checked.
    50					;
    51					; Procedure:	KL> Load microcode
    52					;		KL> Port Clear
    53					;
    54					;		KL> Start port
    55					;		KL> Verify that the port entered the IDLE loop
    56					;		If failed - print error message and exit test
    57					;
    58					;		KL> Write 'Disable' bit in CSR
    59					;		KL> Verify that 'Disable Complete' is set by the port
    60					;		If failed - print error message and exit test
    61					;
    62					;		KL> Write 'Enable' bit in CSR
    63					;		KL> Verify that 'Enable Complete' is set by the port
    64					;		If failed - print error message and exit test
    65					;
    66					; FRU:		PORT Modules
    67					;#********************************************************************
    68
    69					; Initialization
    70
    71	000000'	201 00 0 00 000000'	TST4:	MOVEI	Z3			; get address of module start
    72	000001'	260 17 0 00 000000*		GO	TRACE			; handle trace output
    73	000002'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
    74	000003'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
    75	000004'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
    76	000005'	260 17 0 00 000000*		GO	IPACLR			; do a 'port clear'
    77	000006'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
    78	000007'	260 17 0 00 000000*		GO	TFLOAD			; load operational microcode
    79						GO	[MOVEM	TERMES		; error - save error message
    80							 SETO	ERFLG,
    81	000010'	260 17 0 00 006552'			 RTN]
    82
    83					; Handle error printouts
    84
    85	000011'	350 00 0 00 000000*		AOS	TSTSUB			; initialize subtest number
    86	000012'	027 00 0 00 000061'		SCOPER	MA4			; print error message
    87	000013'	255 00 0 00 000000 		JFCL				; loop on error
    88	000014'	254 00 0 00 000056'		JRST	TX4			; altmode exit
    89	000015'	326 15 0 00 000056'		JUMPN	ERFLG,TX4		; error exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 3
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0570

    90
    91					; Start up the port
    92
    93	000016'	260 17 0 00 000000*		GO	TPCB			; initialize the PCB
    94	000017'	260 17 0 00 000000*		GO	TIDLE			; start the port
    95	000020'	474 15 0 00 000000 		SETO	ERFLG,			; failed - set flag
    96
    97					; Handle error printouts
    98
    99	000021'	350 00 0 00 000011*		AOS	TSTSUB			; initialize subtest number
   100	000022'	027 00 0 00 000063'		SCOPER	MB4			; print error message
   101	000023'	255 00 0 00 000000 		JFCL				; loop on error
   102	000024'	254 00 0 00 000056'		JRST	TX4			; altmode exit
   103	000025'	326 15 0 00 000056'		JUMPN	ERFLG,TX4		; error exit
   104
   105					; Set 'DISABLE' bit in CSR
   106
   107	000026'	201 01 0 00 000050 		MOVEI	1,MPRUN!PDSABL		; get bits to write
   108	000027'	260 17 0 00 000000*		GO	LDCSR			; write CSR
   109	000030'	005 00 0 00 000024 		DELAY	^D20			; wait 20 milliseconds
   110	000031'	260 17 0 00 000000*		GO	RDCSR			; read CSR
   111	000032'	255 00 0 00 000000 		JFCL				; ignore error
   112	000033'	607 01 0 00 000040 		TLNN	1,(DCOMP)		; 'Disable Complete' bit set?
   113	000034'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   114
   115					; Handle error printouts
   116
   117	000035'	350 00 0 00 000021*		AOS	TSTSUB			; initialize subtest number
   118	000036'	027 00 0 00 000067'		SCOPER	MC4			; print error message
   119	000037'	255 00 0 00 000000 		JFCL				; loop on error
   120	000040'	254 00 0 00 000056'		JRST	TX4			; altmode exit
   121	000041'	326 15 0 00 000056'		JUMPN	ERFLG,TX4		; error exit
   122
   123					; Set 'ENABLE' bit in CSR
   124
   125	000042'	201 01 0 00 000030 		MOVEI	1,MPRUN!PENABL		; get bits to write
   126	000043'	260 17 0 00 000027*		GO	LDCSR			; write CSR
   127	000044'	005 00 0 00 000024 		DELAY	^D20			; wait 20 milliseconds
   128	000045'	260 17 0 00 000031*		GO	RDCSR			; read CSR
   129	000046'	255 00 0 00 000000 		JFCL				; ignore error
   130	000047'	607 01 0 00 000020 		TLNN	1,(ECOMP)		; 'Enable Complete' bit set?
   131	000050'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   132
   133					; Handle error printouts
   134
   135	000051'	350 00 0 00 000035*		AOS	TSTSUB			; initialize subtest number
   136	000052'	027 00 0 00 000073'		SCOPER	MD4			; print error message
   137	000053'	255 00 0 00 000000 		JFCL				; loop on error
   138	000054'	254 00 0 00 000056'		JRST	TX4			; altmode exit
   139	000055'	326 15 0 00 000056'		JUMPN	ERFLG,TX4		; error exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 4
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0571

   140
   141					; End of test
   142
   143	000056'	260 17 0 00 000000*	TX4:	GO	SETDSA			; disable the port
   144	000057'	260 17 0 00 000000*		GO	ISTOP			; stop the port
   145	000060'	263 17 0 00 000000 		RTN				; return
   146
   147					; Error messages
   148
   149	000061'	260000	006324'		MA4:	TXALL!CALL!LODERR
   150	000062'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   151
   152	000063'	160000	006561'		MB4:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
   153	000064'	240000	000077'			TXNOT!CALL!MA4PN
   154	000065'	260000	006276'			TXALL!CALL!PDUMP
   155	000066'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   156
   157	000067'	160000	006567'		MC4:	TXALL!MSG![ASCIZ /Port did not set 'Disable Complete' in CSR/]
   158	000070'	240000	000077'			TXNOT!CALL!MA4PN
   159	000071'	260000	006276'			TXALL!CALL!PDUMP
   160	000072'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   161
   162	000073'	160000	006600'		MD4:	TXALL!MSG![ASCIZ /Port did not set 'Enable Complete' in CSR/]
   163	000074'	240000	000077'			TXNOT!CALL!MA4PN
   164	000075'	260000	006276'			TXALL!CALL!PDUMP
   165	000076'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   166
   167	000077'	260 17 0 00 000045*	MA4PN:	GO	RDCSR			; read CSR
   168	000100'	255 00 0 00 000000 		JFCL				; ignore error
   169	000101'	201 02 0 00 000023 		MOVEI	2,^D19			; character count so far
   170	000102'	201 03 0 00 000023 		MOVEI	3,^D19			; continuation line column number
   171	000103'	260 17 0 00 000000*		GO	CSRPNT			; go print in English
   172	000104'	263 17 0 00 000000 		RTN				; done - return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 5
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0572

   173
   174					;#********************************************************************
   175					;* TEST 5 - Queue Handling Test
   176					;
   177					; Description:	This test verifies that the operational microcode
   178					;		handles  queues  properly,  removing  entries  in
   179					;		proper  order  from the command queue and putting
   180					;		entries in proper sequence on the response  queue
   181					;		and  removing  entries  from  the  free queue and
   182					;		adding entries to the free queue properly.
   183					;
   184					; Procedure:	KL> Load microcode
   185					;		KL> Port Clear
   186					;		KL> Initialize PCB
   187					;		KL> Insert 6 packets on the command queue
   188					;		KL> Start port
   189					;		KL> Remove entries from the response queue and
   190					;		    verify that the responses are received in
   191					;		    the proper order
   192					;		KL> Continue until all of the responses have
   193					;		    been processed
   194					;		If failed - print error message and exit test
   195					;
   196					; FRU:		Operational microcode
   197					;#********************************************************************
   198
   199					; Initialization
   200
   201	000105'	201 00 0 00 000000'	TST5:	MOVEI	Z3			; get address of module start
   202	000106'	260 17 0 00 000001*		GO	TRACE			; handle trace output
   203	000107'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
   204	000110'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
   205	000111'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
   206	000112'	260 17 0 00 000005*		GO	IPACLR			; do a 'port clear'
   207	000113'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
   208	000114'	260 17 0 00 000007*		GO	TFLOAD			; load operational microcode
   209						GO	[MOVEM	TERMES		; error - save error message
   210							 SETO	ERFLG,
   211	000115'	260 17 0 00 006552'			 RTN]
   212	000116'	027 00 0 00 000241'		SCOPER	MA5			; print error message
   213	000117'	255 00 0 00 000000 		JFCL				; loop on error
   214	000120'	254 00 0 00 000236'		JRST	TX5			; altmode exit
   215	000121'	326 15 0 00 000236'		JUMPN	ERFLG,TX5		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 6
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0573

   216
   217					; Start port
   218
   219	000122'	350 00 0 00 000051*		AOS	TSTSUB			; initialize subtest number
   220	000123'	260 17 0 00 000017*		GO	TIDLE			; start port
   221	000124'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   222	000125'	027 00 0 00 000243'		SCOPER	MB5			; print error message
   223	000126'	255 00 0 00 000000 		JFCL				; loop on error
   224	000127'	254 00 0 00 000236'		JRST	TX5			; altmode exit
   225	000130'	326 15 0 00 000236'		JUMPN	ERFLG,TX5		; error yet? yes - abort test
   226
   227					; Insert packets
   228
   229	000131'	201 11 0 00 000006 		MOVEI	OP,WRPLI		; get op code to write PLI data
   230	000132'	476 00 0 00 000000*		SETOM	TRSFLG			; set 'response requested' flag
   231	000133'	402 00 0 00 000000*		SETZM	TBSDFL			; set to non-BSD style datagram
   232	000134'	402 00 0 00 000000*		SETZM	TPDFLG			; clear pad flag
   233	000135'	201 00 0 00 000001 		MOVEI	1			; get a 1
   234	000136'	202 00 0 00 000000*		MOVEM	TREGN			; save as register to write
   235	000137'	202 00 0 00 000000*		MOVEM	TREGD			; save as data to write
   236	000140'	260 17 0 00 000000*		GO	BPACK			; build a packet
   237	000141'	400 01 0 00 000000 		SETZ	1,			; clear packet number
   238	000142'	350 00 0 00 000001 	TA5:	AOS	1			; increment packet number
   239	000143'	137 01 0 00 006611'		DPB	1,[POINT 4,PACKET+4,35]	; save it as data to write
   240	000144'	260 17 0 00 000000*		GO	INSQUE			; insert in queue
   241	000145'	255 00 0 00 000000 		JFCL				; error - ignore
   242	000146'	255 00 0 00 000000 		JFCL				; error - ignore
   243	000147'	305 01 0 00 000006 		CAIGE	1,6			; done yet?
   244	000150'	254 00 0 00 000142'		JRST	TA5			; no - loop till done
   245
   246					; Initialize received packet data
   247
   248	000151'	476 00 0 00 000310'		SETOM	T5ORD			; initialize results data
   249	000152'	200 00 0 00 006612'		MOVE	[T5ORD,,T5ORD+1]	;  ...
   250	000153'	251 00 0 00 000324'		BLT	T5LIS+5			;  ...
   251	000154'	476 00 0 00 000307'		SETOM	T5PNT			; initialize next location pointer
   252	000155'	260 17 0 00 000000*		GO	SETENA			; set enabled state
   253	000156'	255 00 0 00 000000 		JFCL				; ignore error
   254	000157'	201 01 0 00 000430 		MOVEI	1,CMDQAV!PENABL!MPRUN	; get run/enable bits
   255	000160'	260 17 0 00 000043*		GO	LDCSR			; get the port going
   256
   257					; Set up wait time and check for a response available
   258
   259	000161'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
   260	000162'	260 17 0 00 000000*		GO	RUNTME			; get current run time
   261	000163'	200 01 0 00 000000*		MOVE	1,DEBTIM		; get time in milliseconds
   262	000164'	271 01 0 00 000144 		ADDI	1,^D100			; point to maximum time
   263	000165'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save it
   264	000166'	260 17 0 00 000000*	TB5:	GO	RWAIT			; wait for response
   265	000167'	255 00 0 00 000000 		JFCL				; ignore error
   266	000170'	260 17 0 00 000000*	TC5:	GO	CHKRSP			; check for response entry
   267	000171'	254 00 0 00 000207'		JRST	TD5			; no responses - determine test results
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 7
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0574

   268
   269					; Got an entry - update test data
   270
   271	000172'	135 00 0 00 006613'		LDB	[POINT 8,RSPONS+3,23]	; get op code
   272	000173'	302 00 0 00 000006 		CAIE	WRPLI			; is this one of the packets we sent?
   273	000174'	254 00 0 00 000170'		JRST	TC5			; no - get next entry
   274	000175'	135 01 0 00 006614'		LDB	1,[POINT 4,RSPONS+4,35]	; get packet number
   275	000176'	301 01 0 00 000001 		CAIL	1,1			; in range 1-6?
   276	000177'	303 01 0 00 000006 		CAILE	1,6
   277	000200'	254 00 0 00 000170'		JRST	TC5			; no - ignore - get next entry
   278	000201'	402 00 0 01 000316'		SETZM	T5LIS-1(1)		; indicate that we received this one
   279	000202'	350 02 0 00 000307'		AOS	2,T5PNT			; point to next location
   280	000203'	301 02 0 00 000006 		CAIL	2,6			; within range?
   281	000204'	254 00 0 00 000170'		JRST	TC5			; no - ignore - get next entry
   282	000205'	202 01 0 02 000310'		MOVEM	1,T5ORD(2)		; save packet received
   283	000206'	254 00 0 00 000170'		JRST	TC5			; get next entry
   284
   285					; No more packets found - check if any more expected
   286
   287	000207'	200 00 0 00 000307'	TD5:	MOVE	T5PNT			; get packet received count
   288	000210'	301 00 0 00 000006 		CAIL	6			; have all of them already?
   289	000211'	254 00 0 00 000217'		JRST	TE5			; yes - continue
   290
   291					; More packets expected - check timeout time
   292
   293	000212'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
   294	000213'	260 17 0 00 000162*		GO	RUNTME			; get current run time
   295	000214'	200 00 0 00 000163*		MOVE	DEBTIM			; get current time
   296	000215'	315 00 0 00 010102'		CAMGE	ENDTIM			; exceeds maximum time?
   297	000216'	254 00 0 00 000170'		JRST	TC5			; no - check for response again
   298
   299					; Done receiving entries - determine if an error has occurred
   300
   301	000217'	350 00 0 00 000122*	TE5:	AOS	TSTSUB			; initialize subtest number
   302	000220'	260 17 0 00 000056*		GO	SETDSA			; disable the port
   303	000221'	260 17 0 00 000112*		GO	IPACLR			; stop the port	
   304	000222'	400 01 0 00 000000 		SETZ	1,			; initialize packet # expected
   305	000223'	350 00 0 00 000001 	TF5:	AOS	1			; point to next entry
   306	000224'	303 01 0 00 000006 		CAILE	1,6			; done yet?
   307	000225'	254 00 0 00 000233'		JRST	TG5			; yes - continue
   308	000226'	312 01 0 01 000307'		CAME	1,T5ORD-1(1)		; same as expected?
   309	000227'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   310	000230'	332 00 0 01 000316'		SKIPE	T5LIS-1(1)		; got one from this
   311	000231'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   312	000232'	254 00 0 00 000223'		JRST	TF5			; loop till done
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 8
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0575

   313
   314					; Handle error printout
   315
   316	000233'	027 00 0 00 000246'	TG5:	SCOPER	MC5			; print error message
   317	000234'	255 00 0 00 000000 		JFCL				; loop on error
   318	000235'	254 00 0 00 000236'		JRST	TX5			; altmode exit
   319
   320					; Exit
   321
   322	000236'	260 17 0 00 000220*	TX5:	GO	SETDSA			; disable the port
   323	000237'	260 17 0 00 000057*		GO	ISTOP			; stop the port
   324	000240'	263 17 0 00 000000 		RTN				; exit test
   325
   326					; Error messages
   327
   328	000241'	260000	006324'		MA5:	TXALL!CALL!LODERR
   329	000242'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   330
   331	000243'	160000	006561'		MB5:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
   332	000244'	260000	006276'			TXALL!CALL!PDUMP
   333	000245'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   334
   335	000246'	260000	000251'		MC5:	TXALL!CALL!MC5PN
   336	000247'	260000	006276'			TXALL!CALL!PDUMP
   337	000250'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   338
   339	000251'	037 00 0 00 006615'	MC5PN:	TMSGC	<Command queue entries processed incorrectly or out of order>
   340
   341					; Print correct/actual order
   342
   343	000252'	037 00 0 00 006632'		TMSGC	<Correct order (Packet #):  1 2 3 4 5 6>
   344	000253'	037 00 0 00 006643'		TMSGC	<Actual order (Packet #):  >
   345	000254'	201 01 0 00 000307'		MOVEI	1,T5ORD-1		; get address of order list
   346	000255'	350 00 0 00 000001 	MC5P0:	AOS	1			; point to next entry
   347	000256'	200 00 0 01 000000 		MOVE	(1)			; get entry
   348	000257'	316 00 0 00 006651'		CAMN	[-1]			; end of list?
   349	000260'	254 00 0 00 000264'		JRST	MC5P1			; yes - continue
   350	000261'	037 16 0 00 000003 		PNTOCS				; no - print it out
   351	000262'	037 00 0 00 000040 		PSP
   352	000263'	254 00 0 00 000255'		JRST	MC5P0			; continue till done
   353
   354					; Now look for any missing entries
   355
   356	000264'	201 01 0 00 000316'	MC5P1:	MOVEI	1,T5LIS-1		; get address of packet list
   357	000265'	350 00 0 00 000001 		AOS	1			; point to next packet entry
   358	000266'	301 01 0 00 000325'		CAIL	1,T5LIS+6		; done yet?
   359	000267'	263 17 0 00 000000 		RTN				; yes - exit
   360	000270'	336 00 0 00 000317'		SKIPN	T5LIS			; missing this entry
   361	000271'	254 00 0 00 000265'		JRST	MC5P1+1		; no - loop till done
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 9
DFNIA3	MAC	30-Nov-83 16:40		Microcode Functional Tests                                                         SEQ 0576

   362
   363					; Print missing entries
   364
   365	000272'	037 00 0 00 006652'		TMSGC	<Packets not received:>
   366	000273'	400 02 0 00 000000 		SETZ	2,			; clear entry count
   367	000274'	201 01 0 00 000316'	MC5P2:	MOVEI	1,T5LIS-1		; get address of packet list
   368	000275'	350 00 0 00 000001 		AOS	1			; point to next packet entry
   369	000276'	350 00 0 00 000002 		AOS	2			; point to next packet entry
   370	000277'	303 02 0 00 000006 		CAILE	2,6			; done yet?
   371	000300'	263 17 0 00 000000 		RTN				; yes - continue
   372	000301'	336 00 0 00 000317'		SKIPN	T5LIS			; missing this entry
   373	000302'	254 00 0 00 000275'		JRST	MC5P2+1			; no - loop till done
   374	000303'	037 00 0 00 006657'		TMSGC	<  Packet # >
   375	000304'	200 00 0 00 000002 		MOVE	2			; get entry number
   376	000305'	037 16 0 00 000003 		PNTOCS				; print it
   377	000306'	254 00 0 00 000275'		JRST	MC5P2+1			; loop till done
   378
   379					; Test data
   380
   381	000307'	000000	000000		T5PNT:	0				; pointer to next location in T5ORD
   382	000310'				T5ORD:	BLOCK	7			; order of packets received
   383	000317'				T5LIS:	BLOCK	6			; packets received
   384
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 10
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0577

   385						SUBTTL	NSA Tests
   386
   387					;#********************************************************************
   388					;* TEST 6 - NSA ROM Address Test
   389					;
   390					; Description:	This test reads the NI Station Address  contained
   391					;		in ROM on the NIA module.   Then  it  starts  the
   392					;		port and  reads the address with a RDNSA 'Read NI
   393					;		Station Address'  command.   The  port  microcode
   394					;		should  have  set the address to the value in the
   395					;		ROM.
   396					;
   397					; Procedure:	KL> Load microcode
   398					;		KL> Port Clear
   399					;		KL> Start port
   400					;
   401					;		KL> Build a RDNSA packet, insert on command queue,
   402					;		    and wait for a response
   403					;		KL> Verify proper response
   404					;		KL> Verify that the address read is the same as
   405					;		    that originally read from ROM
   406					;		If failed - print error message and exit test
   407					;
   408					; FRU:		NIA Module
   409					;#********************************************************************
   410
   411					; Initialization
   412
   413	000325'	201 00 0 00 000000'	TST6:	MOVEI	Z3			; get address of module start
   414	000326'	260 17 0 00 000106*		GO	TRACE			; handle trace output
   415	000327'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
   416	000330'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
   417	000331'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
   418
   419					; Load microcode
   420
   421	000332'	260 17 0 00 000221*		GO	IPACLR			; do a 'port clear'
   422	000333'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
   423	000334'	260 17 0 00 000114*		GO	TFLOAD			; load operational microcode
   424						GO	[MOVEM	TERMES		; error - save error message
   425							 SETO	ERFLG,
   426	000335'	260 17 0 00 006552'			 RTN]
   427	000336'	027 00 0 00 000440'		SCOPER	MA6			; print error message
   428	000337'	255 00 0 00 000000 		JFCL				; loop on error
   429	000340'	254 00 0 00 000435'		JRST	TX6			; altmode exit
   430	000341'	326 15 0 00 000435'		JUMPN	ERFLG,TX6		; error exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 11
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0578

   431
   432					; Start port
   433
   434	000342'	350 00 0 00 000217*		AOS	TSTSUB			; initialize subtest number
   435	000343'	260 17 0 00 000123*		GO	TIDLE			; start port
   436	000344'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   437	000345'	027 00 0 00 000442'		SCOPER	MB6			; print error message
   438	000346'	255 00 0 00 000000 		JFCL				; loop on error
   439	000347'	254 00 0 00 000435'		JRST	TX6			; altmode exit
   440	000350'	326 15 0 00 000435'		JUMPN	ERFLG,TX6		; error yet? yes - abort test
   441
   442					; Enable the port
   443
   444	000351'	350 00 0 00 000342*		AOS	TSTSUB			; initialize subtest number
   445	000352'	260 17 0 00 000155*		GO	SETENA			; ensure the port is enabled
   446	000353'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   447	000354'	027 00 0 00 000445'		SCOPER	MC6			; print error message
   448	000355'	255 00 0 00 000000 		JFCL				; loop on error
   449	000356'	254 00 0 00 000435'		JRST	TX6			; altmode exit
   450	000357'	326 15 0 00 000435'		JUMPN	ERFLG,TX6		; error yet? yes - abort test
   451
   452					; Send the packet
   453
   454	000360'	350 00 0 00 000351*		AOS	TSTSUB			; initialize subtest number
   455	000361'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
   456	000362'	402 00 0 00 000000*		SETZM	TFMFLG			; set to COMPAT mode
   457	000363'	476 00 0 00 000132*		SETOM	TRSFLG			; set response requested
   458	000364'	402 00 0 00 000134*		SETZM	TPDFLG			; clear pad flag
   459	000365'	402 00 0 00 000133*		SETZM	TBSDFL			; set to non-BSD style datagram
   460	000366'	201 11 0 00 000010 		MOVEI	OP,RDNSA		; get op code to read station address
   461	000367'	260 17 0 00 000140*		GO	BPACK			; set up packet data
   462	000370'	260 17 0 00 000144*		GO	INSQUE			; insert on command queue
   463	000371'	255 00 0 00 000000 		JFCL				; error - ignore
   464	000372'	255 00 0 00 000000 		JFCL				; error - ignore
   465	000373'	260 17 0 00 000077*		GO	RDCSR			; read CSR
   466	000374'	255 00 0 00 000000 		JFCL				; error - ignore
   467	000375'	660 01 0 00 000400 		TRO	1,CMDQAV		; set the 'CMDQAV' bit
   468	000376'	260 17 0 00 000160*		GO	LDCSR			; write the CSR register
   469
   470					; Wait for a response
   471
   472	000377'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
   473	000400'	260 17 0 00 000213*		GO	RUNTME			; get current run time
   474	000401'	200 01 0 00 000214*		MOVE	1,DEBTIM		; get time in milliseconds
   475	000402'	271 01 0 00 023420 		ADDI	1,^D10000		; wait an additional 10 seconds
   476	000403'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
   477	000404'	254 00 0 00 000412'		JRST	TA6A			; go check for a response
   478	000405'	400 03 0 00 000000 	TA6:	SETZ	3,			; set up for RUNTME
   479	000406'	260 17 0 00 000400*		GO	RUNTME			; get current run time
   480	000407'	200 01 0 00 000401*		MOVE	1,DEBTIM		; get time in milliseconds
   481	000410'	313 01 0 00 010102'		CAMLE	1,ENDTIM		; time expired yet?
   482	000411'	254 00 0 00 000420'		JRST	TB6			; yes - timeout error
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 12
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0579

   483
   484					; Check for response
   485
   486	000412'	260 17 0 00 000170*	TA6A:	GO	CHKRSP			; check for response entry
   487	000413'	254 00 0 00 000405'		JRST	TA6			; no responses - check wait time
   488
   489					; Got a response - now decode it
   490
   491	000414'	135 02 0 00 006662'		LDB	2,[POINT 8,RSPONS+3,23]	; get opcode
   492	000415'	302 02 0 00 000010 		CAIE	2,NSARD			; NSARD packet?
   493	000416'	254 00 0 00 000405'		JRST	TA6			; no - check wait time
   494	000417'	334 00 0 00 000000 		SKIPA				; yes - continue
   495
   496					; Timeout error
   497
   498	000420'	474 15 0 00 000000 	TB6:	SETO	ERFLG,			; set error flag
   499	000421'	027 00 0 00 000450'		SCOPER	MD6			; print error message
   500	000422'	255 00 0 00 000000 		JFCL				; loop on error
   501	000423'	254 00 0 00 000435'		JRST	TX6			; altmode exit
   502	000424'	326 15 0 00 000435'		JUMPN	ERFLG,TX6		; error yet? yes - abort test
   503
   504					; Check to see if address correct
   505
   506	000425'	350 00 0 00 000360*		AOS	TSTSUB			; initialize subtest number
   507	000426'	120 00 0 00 000000*		DMOVE	SADDR			; get correct address
   508	000427'	316 00 0 00 000000#		CAMN	RSPONS+4		; first word correct?
   509	000430'	312 01 0 00 000000#		CAME	1,RSPONS+5		; yes - 2nd word correct?
   510	000431'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   511	000432'	027 00 0 00 000453'		SCOPER	ME6			; print error message
   512	000433'	255 00 0 00 000000 		JFCL				; loop on error
   513	000434'	254 00 0 00 000435'		JRST	TX6			; altmode exit
   514
   515					; End of test
   516
   517	000435'	260 17 0 00 000236*	TX6:	GO	SETDSA			; disable the port
   518	000436'	260 17 0 00 000237*		GO	ISTOP			; stop the port
   519	000437'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 13
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0580

   520
   521					; Error messages
   522
   523	000440'	260000	006324'		MA6:	TXALL!CALL!LODERR
   524	000441'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   525
   526	000442'	160000	006561'		MB6:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
   527	000443'	260000	006276'			TXALL!CALL!PDUMP
   528	000444'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   529
   530	000445'	160000	006663'		MC6:	TXALL!MSG![ASCIZ /Could not enable the port/]
   531	000446'	260000	006276'			TXALL!CALL!PDUMP
   532	000447'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   533
   534	000450'	160000	006671'		MD6:	TXALL!MSG![ASCIZ /Response to RDNSA packet not received in 10 seconds/]
   535	000451'	260000	006276'			TXALL!CALL!PDUMP
   536	000452'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
   537
   538	000453'	160000	006710'		ME6:	TXALL!MSG![ASCIZ /NSA not read correctly:/]
   539	000454'	260000	000456'			TXALL!CALL!ME6PN
   540	000455'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
   541
   542	000456'	037 00 0 00 006715'	ME6PN:	TMSGC	<Correct (Bytes 0-5):  >
   543	000457'	120 01 0 00 000426*		DMOVE	1,SADDR
   544	000460'	260 17 0 00 000465'		GO	NSAPNT
   545	000461'	037 00 0 00 006722'		TMSGC	<Actual (Bytes 0-5):   >
   546	000462'	120 01 0 00 000000#		DMOVE	1,RSPONS+4
   547	000463'	260 17 0 00 000465'		GO	NSAPNT
   548	000464'	263 17 0 00 000000 		RTN
   549
   550	000465'	135 00 0 00 006727'	NSAPNT:	LDB	[POINT 8,1,31]
   551	000466'	037 03 0 00 000000 		PNT3
   552	000467'	135 00 0 00 006730'		LDB	[POINT 8,1,23]
   553	000470'	037 03 0 00 000000 		PNT3
   554	000471'	135 00 0 00 006731'		LDB	[POINT 8,1,15]
   555	000472'	037 03 0 00 000000 		PNT3
   556	000473'	135 00 0 00 006732'		LDB	[POINT 8,1,7]
   557	000474'	037 03 0 00 000000 		PNT3
   558	000475'	135 00 0 00 006733'		LDB	[POINT 8,2,31]
   559	000476'	037 03 0 00 000000 		PNT3
   560	000477'	135 00 0 00 006734'		LDB	[POINT 8,2,23]
   561	000500'	037 03 0 00 000000 		PNT3
   562	000501'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 14
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0581

   563
   564					;#********************************************************************
   565					;* TEST 7 - NSA RAM Address Test
   566					;
   567					; Description:  This test executes a 'write station address' command
   568					;		(WRNSA) and then a 'read station address' command to
   569					;		verify that it got changed correctly.
   570					;
   571					; Procedure:	KL> Load microcode
   572					;		KL> Port Clear
   573					;		KL> Start port
   574					;
   575					;		KL> Build a WRNSA packet, insert on command queue
   576					;		KL> Build a RDNSA packet, insert on command queue
   577					;		    and wait for a response
   578					;		KL> Verify proper response
   579					;		KL> Verify that the address read is the same
   580					;		    as that written with the WRNSA command
   581					;		If failed - print error message and exit test
   582					;
   583					; FRU:		NIA Module
   584					;#********************************************************************
   585
   586					; Initialization
   587
   588	000502'	201 00 0 00 000000'	TST7:	MOVEI	Z3			; get address of module start
   589	000503'	260 17 0 00 000326*		GO	TRACE			; handle trace output
   590	000504'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
   591	000505'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
   592	000506'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
   593
   594					; Load microcode
   595
   596	000507'	260 17 0 00 000332*		GO	IPACLR			; do a 'port clear'
   597	000510'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
   598	000511'	260 17 0 00 000334*		GO	TFLOAD			; load operational microcode
   599						GO	[MOVEM	TERMES		; error - save error message
   600							 SETO	ERFLG,
   601	000512'	260 17 0 00 006552'			 RTN]
   602	000513'	027 00 0 00 000633'		SCOPER	MA7			; print error message
   603	000514'	255 00 0 00 000000 		JFCL				; loop on error
   604	000515'	254 00 0 00 000630'		JRST	TX7			; altmode exit
   605	000516'	326 15 0 00 000630'		JUMPN	ERFLG,TX7		; error exit
   606
   607					; Start port
   608
   609	000517'	350 00 0 00 000425*		AOS	TSTSUB			; initialize subtest number
   610	000520'	260 17 0 00 000343*		GO	TIDLE			; start port
   611	000521'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   612	000522'	027 00 0 00 000635'		SCOPER	MB7			; print error message
   613	000523'	255 00 0 00 000000 		JFCL				; loop on error
   614	000524'	254 00 0 00 000630'		JRST	TX7			; altmode exit
   615	000525'	326 15 0 00 000630'		JUMPN	ERFLG,TX7		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 15
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0582

   616
   617					; Enable the port
   618
   619	000526'	350 00 0 00 000517*		AOS	TSTSUB			; initialize subtest number
   620	000527'	260 17 0 00 000352*		GO	SETENA			; ensure the port is enabled
   621	000530'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   622	000531'	027 00 0 00 000640'		SCOPER	MC7			; print error message
   623	000532'	255 00 0 00 000000 		JFCL				; loop on error
   624	000533'	254 00 0 00 000630'		JRST	TX7			; altmode exit
   625	000534'	326 15 0 00 000630'		JUMPN	ERFLG,TX7		; error yet? yes - abort test
   626
   627					; Send the packets
   628
   629	000535'	350 00 0 00 000526*		AOS	TSTSUB			; initialize subtest number
   630	000536'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
   631	000537'	402 00 0 00 000362*		SETZM	TFMFLG			; set to COMPAT mode
   632	000540'	476 00 0 00 000363*		SETOM	TRSFLG			; set response requested
   633	000541'	402 00 0 00 000364*		SETZM	TPDFLG			; clear pad flag
   634	000542'	402 00 0 00 000365*		SETZM	TBSDFL			; set to non-BSD style datagram
   635	000543'	201 11 0 00 000011 		MOVEI	OP,WRNSA		; get op code
   636	000544'	260 17 0 00 000367*		GO	BPACK			; set up packet data
   637	000545'	120 00 0 00 000457*		DMOVE	SADDR			; get our station address
   638	000546'	430 00 0 00 006735'		XOR	[777777,,777760]	; complement it (1st word)
   639	000547'	430 01 0 00 006736'		XOR	1,[3,,77776]		; complement it (2nd word)
   640	000550'	124 00 0 00 000000#		DMOVEM	PACKET+4		; save it
   641	000551'	124 00 0 00 000660'		DMOVEM	T7ADDR			; save address
   642	000552'	260 17 0 00 000370*		GO	INSQUE			; insert on command queue
   643	000553'	255 00 0 00 000000 		JFCL				; error - ignore
   644	000554'	255 00 0 00 000000 		JFCL				; error - ignore
   645
   646	000555'	260 17 0 00 000373*		GO	RDCSR			; read CSR
   647	000556'	255 00 0 00 000000 		JFCL				; error - ignore
   648	000557'	660 01 0 00 000400 		TRO	1,CMDQAV		; set the 'CMDQAV' bit
   649	000560'	260 17 0 00 000376*		GO	LDCSR			; write the CSR register
   650
   651	000561'	201 11 0 00 000010 		MOVEI	OP,RDNSA		; get op code
   652	000562'	260 17 0 00 000544*		GO	BPACK			; set up packet data
   653	000563'	260 17 0 00 000552*		GO	INSQUE			; insert on command queue
   654	000564'	255 00 0 00 000000 		JFCL				; error - ignore
   655	000565'	255 00 0 00 000000 		JFCL				; error - ignore
   656
   657	000566'	260 17 0 00 000555*		GO	RDCSR			; read CSR
   658	000567'	255 00 0 00 000000 		JFCL				; error - ignore
   659	000570'	660 01 0 00 000400 		TRO	1,CMDQAV		; set the 'CMDQAV' bit
   660	000571'	260 17 0 00 000560*		GO	LDCSR			; write the CSR register
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 16
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0583

   661
   662					; Wait for a response
   663
   664	000572'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
   665	000573'	260 17 0 00 000406*		GO	RUNTME			; get current run time
   666	000574'	200 01 0 00 000407*		MOVE	1,DEBTIM		; get time in milliseconds
   667	000575'	271 01 0 00 023420 		ADDI	1,^D10000		; wait an additional 10 seconds
   668	000576'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
   669	000577'	254 00 0 00 000605'		JRST	TA7A			; go check for a response
   670	000600'	400 03 0 00 000000 	TA7:	SETZ	3,			; set up for RUNTME
   671	000601'	260 17 0 00 000573*		GO	RUNTME			; get current run time
   672	000602'	200 01 0 00 000574*		MOVE	1,DEBTIM		; get time in milliseconds
   673	000603'	313 01 0 00 010102'		CAMLE	1,ENDTIM		; time expired yet?
   674	000604'	254 00 0 00 000613'		JRST	TB7			; yes - timeout error
   675
   676					; Check for response
   677
   678	000605'	260 17 0 00 000412*	TA7A:	GO	CHKRSP			; check for response entry
   679	000606'	254 00 0 00 000600'		JRST	TA7			; no responses - check wait time
   680
   681					; Got a response - now decode it
   682
   683	000607'	135 02 0 00 006737'		LDB	2,[POINT 8,RSPONS+3,23]	; get opcode
   684	000610'	302 02 0 00 000010 		CAIE	2,NSARD			; NSARD packet?
   685	000611'	254 00 0 00 000600'		JRST	TA7			; no - check wait time
   686	000612'	334 00 0 00 000000 		SKIPA				; yes - continue
   687
   688					; Timeout error
   689
   690	000613'	474 15 0 00 000000 	TB7:	SETO	ERFLG,			; set error flag
   691	000614'	027 00 0 00 000643'		SCOPER	MD7			; print error message
   692	000615'	255 00 0 00 000000 		JFCL				; loop on error
   693	000616'	254 00 0 00 000630'		JRST	TX7			; altmode exit
   694	000617'	326 15 0 00 000630'		JUMPN	ERFLG,TX7		; error yet? yes - abort test
   695
   696					; Check to see if address correct
   697
   698	000620'	350 00 0 00 000535*		AOS	TSTSUB			; initialize subtest number
   699	000621'	120 00 0 00 000660'		DMOVE	T7ADDR			; get correct address
   700	000622'	316 00 0 00 000000#		CAMN	RSPONS+4		; first word correct?
   701	000623'	312 01 0 00 000000#		CAME	1,RSPONS+5		; yes - 2nd word correct?
   702	000624'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   703	000625'	027 00 0 00 000646'		SCOPER	ME7			; print error message
   704	000626'	255 00 0 00 000000 		JFCL				; loop on error
   705	000627'	254 00 0 00 000630'		JRST	TX7			; altmode exit
   706
   707					; End of test
   708
   709	000630'	260 17 0 00 000435*	TX7:	GO	SETDSA			; disable the port
   710	000631'	260 17 0 00 000436*		GO	ISTOP			; stop the port
   711	000632'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 17
DFNIA3	MAC	30-Nov-83 16:40		NSA Tests                                                                          SEQ 0584

   712
   713					; Error messages
   714
   715	000633'	260000	006324'		MA7:	TXALL!CALL!LODERR
   716	000634'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   717
   718	000635'	160000	006561'		MB7:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
   719	000636'	260000	006276'			TXALL!CALL!PDUMP
   720	000637'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   721
   722	000640'	160000	006663'		MC7:	TXALL!MSG![ASCIZ /Could not enable the port/]
   723	000641'	260000	006276'			TXALL!CALL!PDUMP
   724	000642'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   725
   726	000643'	160000	006671'		MD7:	TXALL!MSG![ASCIZ /Response to RDNSA packet not received in 10 seconds/]
   727	000644'	260000	006276'			TXALL!CALL!PDUMP
   728	000645'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
   729
   730	000646'	160000	006740'		ME7:	TXALL!MSG![ASCIZ /NSA not set or read correctly:/]
   731	000647'	260000	000651'			TXALL!CALL!ME7PN
   732	000650'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
   733
   734	000651'	037 00 0 00 006747'	ME7PN:	TMSGC	<Correct (Tried to set to)(Bytes 0-5):  >
   735	000652'	120 01 0 00 000660'		DMOVE	1,T7ADDR
   736	000653'	260 17 0 00 000465'		GO	NSAPNT
   737	000654'	037 00 0 00 006760'		TMSGC	<Actual (Read with RDNSA)(Bytes 0-5):   >
   738	000655'	120 01 0 00 000000#		DMOVE	1,RSPONS+4
   739	000656'	260 17 0 00 000465'		GO	NSAPNT
   740	000657'	263 17 0 00 000000 		RTN
   741
   742	000660'				T7ADDR:	BLOCK	2
   743
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 18
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0585

   744						SUBTTL	CRC Tests
   745
   746					;#********************************************************************
   747					;* TEST 10 - CRC Test 1
   748					;
   749					; Description:  This  test  verifies  that  the CRC is calculated
   750					;		correctly.  This test  verifies  that a CRC error
   751					;		does  not  occur  when  the  correct  CRC data is
   752					;		appended to the packet.   The data portion of the
   753					;		packet is 256 bytes, which are a counting pattern
   754					;		from 0-377 (octal).
   755					;
   756					; Procedure:	KL> Load microcode
   757					;		KL> Port Clear
   758					;		KL> Start port
   759					;
   760					;		KL> Build a self-directed datagram, insert on command
   761					;		    queue, and wait for a response
   762					;		KL> Verify proper response
   763					;		KL> Verify data portion of packet received properly
   764					;		If failed - print error message and exit test
   765					;
   766					;		Repeat 200 times.
   767					;
   768					; FRU:		NIA Module
   769					;#********************************************************************
   770
   771			000310		T10PAK==^D200				; number of packets to send
   772
   773					; Initialization
   774
   775	000662'	201 00 0 00 000000'	TST10:	MOVEI	Z3			; get address of module start
   776	000663'	260 17 0 00 000503*		GO	TRACE			; handle trace output
   777	000664'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
   778	000665'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
   779	000666'	476 00 0 00 010101'		SETOM	DUMPP#			; set 'dump possible' flag
   780	000667'	260 17 0 00 000507*		GO	IPACLR			; do a 'port clear'
   781	000670'	402 00 0 00 010112'		SETZM	TERMES#			; clear ucode load error message
   782	000671'	260 17 0 00 000511*		GO	TFLOAD			; load operational microcode
   783						GO	[MOVEM	TERMES		; error - save error message
   784							 SETO	ERFLG,
   785	000672'	260 17 0 00 006552'			 RTN]
   786	000673'	027 00 0 00 001063'		SCOPER	MA10			; print error message
   787	000674'	255 00 0 00 000000 		JFCL				; loop on error
   788	000675'	254 00 0 00 001060'		JRST	TX10			; altmode exit
   789	000676'	326 15 0 00 001060'		JUMPN	ERFLG,TX10		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 19
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0586

   790
   791					; Start port
   792
   793	000677'	260 17 0 00 000520*		GO	TIDLE			; start port
   794	000700'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   795	000701'	027 00 0 00 001065'		SCOPER	MB10			; print error message
   796	000702'	255 00 0 00 000000 		JFCL				; loop on error
   797	000703'	254 00 0 00 001060'		JRST	TX10			; altmode exit
   798	000704'	326 15 0 00 001060'		JUMPN	ERFLG,TX10		; error yet? yes - abort test
   799
   800					; Enable the port
   801
   802	000705'	260 17 0 00 000527*		GO	SETENA			; ensure the port is enabled
   803	000706'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
   804	000707'	027 00 0 00 001070'		SCOPER	MC10			; print error message
   805	000710'	255 00 0 00 000000 		JFCL				; loop on error
   806	000711'	254 00 0 00 001060'		JRST	TX10			; altmode exit
   807	000712'	326 15 0 00 001060'		JUMPN	ERFLG,TX10		; error yet? yes - abort test
   808
   809					; Initialize statistics
   810
   811	000713'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
   812	000714'	402 00 0 00 006334'		SETZM	NPAKSE			; clear sent status error count
   813	000715'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
   814	000716'	402 00 0 00 006336'		SETZM	NPAKRE			; clear recv status error count
   815	000717'	402 00 0 00 006337'		SETZM	NPAKRC			; clear recv CRC error count
   816	000720'	402 00 0 00 006340'		SETZM	NPAKRD			; clear recv dt.cmp error count (pkts)
   817	000721'	402 00 0 00 006341'		SETZM	NPAKRW			; clear recv dt.cmp error count (words)
   818
   819					; Initialize packet data
   820
   821	000722'	402 00 0 00 000537*		SETZM	TFMFLG			; set to COMPAT mode
   822	000723'	476 00 0 00 000540*		SETOM	TRSFLG			; set 'response requested' flag
   823	000724'	402 00 0 00 000541*		SETZM	TPDFLG			; clear pad flag
   824	000725'	402 00 0 00 000542*		SETZM	TBSDFL			; set to non-BSD style datagram
   825	000726'	120 00 0 00 000545*		DMOVE	SADDR			; initialize destination address
   826	000727'	124 00 0 00 000000*		DMOVEM	TDEST			;   to self
   827	000730'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
   828	000731'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
   829	000732'	202 00 0 00 000000*		MOVEM	TPAT			;   counting pattern
   830	000733'	201 00 0 00 000400 		MOVEI	^D256			; get byte count
   831	000734'	202 00 0 00 000000*		MOVEM	TBYTE			; clear byte count
   832	000735'	402 00 0 00 000000*		SETZM	TWORD			; clear word count
   833	000736'	201 00 0 00 000005 		MOVEI	5			; get protocol type
   834	000737'	202 00 0 00 000000*		MOVEM	TPTTVL			; save it
   835	000740'	260 17 0 00 000562*		GO	BPACK			; set up packet data
   836	000741'	402 00 0 00 000620*		SETZM	TSTSUB			; initialize subtest number
   837	000742'	402 00 0 00 000000*		SETZM	RQAFLG			; clear response queue available flag
   838	000743'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 20
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0587

   839
   840					; Increment packet number
   841
   842	000744'	350 01 0 00 000741*	TA10:	AOS	1,TSTSUB		; increment packet number
   843	000745'	303 01 0 00 000310 		CAILE	1,T10PAK		; done yet?
   844	000746'	254 00 0 00 001014'		JRST	TE10			; yes - check test results
   845	000747'	400 06 0 00 000000 		SETZ	6,			; clear hung count
   846
   847					; Send a packet
   848
   849	000750'	037 07 0 00 000003 	TB10:	TTALTM				; altmode typed?
   850	000751'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
   851	000752'	476 00 0 00 000000*		SETOM	ALTF			; yes - set flag
   852	000753'	332 00 0 00 000752*		SKIPE	ALTF			; altmode flagged?
   853	000754'	254 00 0 00 001060'		JRST	TX10			; yes - exit
   854	000755'	336 00 0 00 000000*		SKIPN	LCHAR			; last character in here already?
   855	000756'	202 00 0 00 000755*		MOVEM	LCHAR			; no - save 'last char typed'
   856	000757'	260 17 0 00 000000*		GO	PSTAMP			; check for S typed
   857	000760'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
   858
   859	000761'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
   860	000762'	260 17 0 00 000000*		GO	CHKINT			; get list of queue entries
   861	000763'	255 00 0 00 000000 		JFCL				; ignore error
   862	000764'	476 00 0 00 000000*		SETOM	PTTFQ			; reset the interlock
   863	000765'	200 00 0 00 000000*		MOVE	NUMENT			; get entry count
   864	000766'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
   865	000767'	254 00 0 00 001000'		JRST	TC10			; no - continue
   866
   867	000770'	260 17 0 00 000563*		GO	INSQUE			; insert into queue
   868	000771'	254 00 0 00 000774'		JRST	.+3			; failed - continue
   869	000772'	254 00 0 00 000774'		JRST	.+2			; failed - continue
   870	000773'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
   871	000774'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
   872	000775'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
   873	000776'	337 00 0 00 000765*		SKIPG	NUMENT			; was the queue empty?
   874						GO	[GO	RDCSR		; yes - set 'CMDQAV'
   875							 MOVEI	1,PENABL!MPRUN
   876							 TRZ	1,RESQAV
   877							 TRO	1,CMDQAV
   878							 GO	LDCSR
   879	000777'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 21
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0588

   880
   881					; Check for a response
   882
   883	001000'	260 17 0 00 000000*	TC10:	GO	CHKRQV			; check response queue available
   884	001001'	260 17 0 00 000605*		GO	CHKRSP			; check for RspQ entry
   885						JRST	[SETZM	RQAFLG		; no entry found - continue
   886							 MOVE	1,PCB+5		; get response queue FLINK
   887							 GO	CONVIR		; convert to virtual
   888							 CAIE	1,PCB+5		; queue really empty?
   889							 SETOM	RQAFLG		; no - set rsp queue avail flag
   890							 GO	CHKDEB		; check for debug mode
   891	001002'	254 00 0 00 006777'			 JRST	TD10]
   892	001003'	400 06 0 00 000000 		SETZ	6,			; clear hung count
   893	001004'	260 17 0 00 006166'		GO	MCHECK			; determine results
   894	001005'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
   895	001006'	254 00 0 00 001000'		JRST	TC10			; keep looking for responses
   896
   897					; No more responses
   898
   899	001007'	350 00 0 00 000006 	TD10:	AOS	6			; increment hung count
   900	001010'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
   901						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
   902	001011'	254 00 0 00 007006'			 JRST	TE10]		;   and exit
   903	001012'	322 07 0 00 000750'		JUMPE	7,TB10			; send current packet? yes - go do so
   904	001013'	254 00 0 00 000744'		JRST	TA10			; no - already did - go do next packet
   905
   906					; Check for any stragglers
   907
   908	001014'	400 03 0 00 000000 	TE10:	SETZ	3,			; set up for RUNTME
   909	001015'	260 17 0 00 000601*		GO	RUNTME			; get current run time
   910	001016'	200 01 0 00 000602*		MOVE	1,DEBTIM		; get time in milliseconds
   911	001017'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
   912	001020'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
   913	001021'	260 17 0 00 001000*	TF10:	GO	CHKRQV			; check response queue available
   914	001022'	260 17 0 00 001001*		GO	CHKRSP			; check for RspQ entry
   915						JRST	[SETZM	RQAFLG		; no entry found - continue
   916							 MOVE	1,PCB+5		; get response queue FLINK
   917							 GO	CONVIR		; convert to virtual
   918							 CAIE	1,PCB+5		; queue really empty?
   919							 SETOM	RQAFLG		; no - set rsp queue avail flag
   920							 GO	CHKDEB		; check for debug mode
   921	001023'	254 00 0 00 007010'			 JRST	TG10]
   922	001024'	260 17 0 00 006166'		GO	MCHECK			; determine results
   923	001025'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
   924	001026'	254 00 0 00 001021'		JRST	TF10			; keep looking for responses
   925	001027'	400 03 0 00 000000 	TG10:	SETZ	3,			; set up for RUNTME
   926	001030'	260 17 0 00 001015*		GO	RUNTME			; get current run time
   927	001031'	200 01 0 00 001016*		MOVE	1,DEBTIM		; get time in milliseconds
   928	001032'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
   929	001033'	254 00 0 00 001021'		JRST	TF10			; no - keep looping
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 22
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0589

   930
   931					; Done with test - now check results
   932
   933	001034'	200 00 0 00 006333'	TH10:	MOVE	NPAKS			; get number of packets sent
   934	001035'	302 00 0 00 000310 		CAIE	T10PAK			; correct number?
   935	001036'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   936	001037'	200 00 0 00 006334'		MOVE	NPAKSE			; get status errors
   937	001040'	303 00 0 00 000024 		CAILE	T10PAK/^D10		; more than 10% received?
   938	001041'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   939	001042'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
   940	001043'	305 00 0 00 000264 		CAIGE	T10PAK*^D9/^D10		; more than 90% received?
   941	001044'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   942	001045'	200 00 0 00 006336'		MOVE	NPAKRE			; number of receive status errors
   943	001046'	303 00 0 00 000024 		CAILE	T10PAK/^D10		;   more than 10% received?
   944	001047'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
   945	001050'	332 00 0 00 006340'		SKIPE	NPAKRD			; any receive dt.cmp errors?
   946	001051'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
   947	001052'	200 00 0 00 006337'		MOVE	NPAKRC			; number of receive CRC errors
   948	001053'	303 00 0 00 000024 		CAILE	T10PAK/^D10		;   more than 10% received?
   949	001054'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
   950	001055'	027 00 0 00 001073'		SCOPER	MD10			; print error message
   951	001056'	255 00 0 00 000000 		JFCL				; loop on error
   952	001057'	254 00 0 00 001060'		JRST	TX10			; altmode exit
   953
   954					; Exit
   955	
   956	001060'	260 17 0 00 000630*	TX10:	GO	SETDSA			; disable the port
   957	001061'	260 17 0 00 000631*		GO	ISTOP			; stop the port
   958	001062'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 23
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0590

   959
   960					; Error messages
   961
   962	001063'	260000	006324'		MA10:	TXALL!CALL!LODERR
   963	001064'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   964
   965	001065'	160000	006561'		MB10:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
   966	001066'	260000	006276'			TXALL!CALL!PDUMP
   967	001067'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   968
   969	001070'	160000	006663'		MC10:	TXALL!MSG![ASCIZ /Could not enable the port/]
   970	001071'	260000	006276'			TXALL!CALL!PDUMP
   971	001072'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
   972
   973	001073'	160000	007017'		MD10:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
   974	001074'	260000	001077'			TXALL!CALL!MD10PN
   975	001075'	260000	006276'			TXALL!CALL!PDUMP
   976	001076'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
   977
   978	001077'	037 00 0 00 007030'	MD10PN:	TMSGC	< What             Expected   Actual>
   979	001100'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
   980	001101'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
   981	001102'	004 11 0 00 007054'		PNTDCP	9,[T10PAK]
   982	001103'	004 11 0 00 006333'		PNTDCP	9,NPAKS
   983	001104'	037 00 0 00 007055'		TMSGC	<  Status Errors  >
   984	001105'	004 11 0 00 006642'		PNTDCP	9,[0]
   985	001106'	004 11 0 00 006334'		PNTDCP	9,NPAKSE
   986	001107'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
   987	001110'	004 11 0 00 007054'		PNTDCP	9,[T10PAK]
   988	001111'	004 11 0 00 006335'		PNTDCP	9,NPAKR
   989	001112'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
   990	001113'	004 11 0 00 006336'		PNTDCP	9,NPAKRE
   991	001114'	037 00 0 00 007073'		TMSGC	<  CRC Errors            0.>
   992	001115'	004 11 0 00 006337'		PNTDCP	9,NPAKRC
   993	001116'	037 00 0 00 007101'		TMSGC	<  DtCmp Errors (PKTS)   0.>
   994	001117'	004 11 0 00 006340'		PNTDCP	9,NPAKRD
   995	001120'	037 00 0 00 007107'		TMSGC	<  DtCmp Errors (WORDS)  0.>
   996	001121'	004 11 0 00 006341'		PNTDCP	9,NPAKRW
   997	001122'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 24
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0591

   998
   999					;#********************************************************************
  1000					;* TEST 11 - CRC Test 2
  1001					;
  1002					; Description:	This  test  verifies  that  the CRC is calculated
  1003					;		correctly.  This test  verifies  that a CRC error
  1004					;		occurs when the correct CRC data is  appended  to
  1005					;		the packet with a single  bit  error.   The  data
  1006					;		portion  of  the packet is 256 bytes, which are a
  1007					;		counting pattern from 0-377 (octal).
  1008					;
  1009					; Procedure:	KL> Load microcode
  1010					;		KL> Port Clear
  1011					;		KL> Start port
  1012					;
  1013					;		KL> Build a self-directed datagram, insert on command
  1014					;		    queue, and wait for a response
  1015					;		KL> Verify proper response
  1016					;		KL> Verify data portion of packet received properly
  1017					;		If failed - print error message and exit test
  1018					;
  1019					;		Repeat 320 times, ten times for each packet with
  1020					;		a single bit error in bits 0-31.
  1021					;
  1022					; FRU:		NIA Module
  1023					;#********************************************************************
  1024
  1025			000500		T11PAK==^D320				; number of packets to send 
  1026			000100		T11LEN==^D64				; packet length
  1027
  1028					; Initialization
  1029
  1030	001123'	201 00 0 00 000000'	TST11:	MOVEI	Z3			; get address of module start
  1031	001124'	260 17 0 00 000663*		GO	TRACE			; handle trace output
  1032	001125'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  1033	001126'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  1034	001127'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  1035	001130'	260 17 0 00 000667*		GO	IPACLR			; do a 'port clear'
  1036	001131'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  1037	001132'	260 17 0 00 000671*		GO	TFLOAD			; load operational microcode
  1038						GO	[MOVEM	TERMES		; error - save error message
  1039							 SETO	ERFLG,
  1040	001133'	260 17 0 00 006552'			 RTN]
  1041	001134'	027 00 0 00 001342'		SCOPER	MA11			; print error message
  1042	001135'	255 00 0 00 000000 		JFCL				; loop on error
  1043	001136'	254 00 0 00 001335'		JRST	TX11			; altmode exit
  1044	001137'	326 15 0 00 001335'		JUMPN	ERFLG,TX11		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 25
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0592

  1045
  1046					; Start port
  1047
  1048	001140'	260 17 0 00 000677*		GO	TIDLE			; start port
  1049	001141'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1050	001142'	027 00 0 00 001344'		SCOPER	MB11			; print error message
  1051	001143'	255 00 0 00 000000 		JFCL				; loop on error
  1052	001144'	254 00 0 00 001335'		JRST	TX11			; altmode exit
  1053	001145'	326 15 0 00 001335'		JUMPN	ERFLG,TX11		; error yet? yes - abort test
  1054
  1055					; Enable the port
  1056
  1057	001146'	260 17 0 00 000705*		GO	SETENA			; ensure the port is enabled
  1058	001147'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1059	001150'	027 00 0 00 001347'		SCOPER	MC11			; print error message
  1060	001151'	255 00 0 00 000000 		JFCL				; loop on error
  1061	001152'	254 00 0 00 001335'		JRST	TX11			; altmode exit
  1062	001153'	326 15 0 00 001335'		JUMPN	ERFLG,TX11		; error yet? yes - abort test
  1063
  1064					; Set up multicast and PTT tables
  1065
  1066	001154'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  1067	001155'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  1068	001156'	255 00 0 00 000000 		JFCL				; loop on error
  1069	001157'	254 00 0 00 001335'		JRST	TX11			; altmode exit
  1070	001160'	326 15 0 00 001335'		JUMPN	ERFLG,TX11		; error yet? yes - abort test
  1071
  1072					; Initialize statistics
  1073
  1074	001161'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  1075	001162'	402 00 0 00 006334'		SETZM	NPAKSE			; clear sent status error count
  1076	001163'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  1077	001164'	402 00 0 00 006336'		SETZM	NPAKRE			; clear recv status error count
  1078	001165'	402 00 0 00 006337'		SETZM	NPAKRC			; clear recv CRC error count
  1079	001166'	402 00 0 00 006340'		SETZM	NPAKRD			; clear recv dt.cmp error count (pkts)
  1080	001167'	402 00 0 00 006341'		SETZM	NPAKRW			; clear recv dt.cmp error count (words)
  1081	001170'	402 00 0 00 010107'		SETZM	NRCRC#			; clear expected rcv CRC error count
  1082
  1083					; Initialize packet data
  1084
  1085	001171'	402 00 0 00 000722*		SETZM	TFMFLG			; set to COMPAT mode
  1086	001172'	476 00 0 00 000723*		SETOM	TRSFLG			; set 'response requested' flag
  1087	001173'	402 00 0 00 000724*		SETZM	TPDFLG			; clear pad flag
  1088	001174'	402 00 0 00 000725*		SETZM	TBSDFL			; set to non-BSD style datagram
  1089	001175'	120 00 0 00 000726*		DMOVE	SADDR			; initialize destination address
  1090	001176'	124 00 0 00 000727*		DMOVEM	TDEST			;   to self
  1091	001177'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  1092	001200'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
  1093	001201'	202 00 0 00 000732*		MOVEM	TPAT			;   counting pattern
  1094	001202'	402 00 0 00 000734*		SETZM	TBYTE			; clear byte count
  1095	001203'	201 00 0 00 000100 		MOVEI	T11LEN			; get length
  1096	001204'	202 00 0 00 000735*		MOVEM	TWORD			; save it
  1097	001205'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  1098	001206'	202 00 0 00 000737*		MOVEM	TPTTVL			; save it
  1099	001207'	260 17 0 00 000740*		GO	BPACK			; set up packet data
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 25-1
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0593

  1100	001210'	200 00 0 00 000000#		MOVE	PACKET+T11LEN+5		; get CRC
  1101	001211'	202 00 0 00 001737'		MOVEM	CRCSAV			; save it
  1102	001212'	402 00 0 00 000744*		SETZM	TSTSUB			; initialize subtest number
  1103	001213'	402 00 0 00 000742*		SETZM	RQAFLG			; clear response queue available flag
  1104	001214'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 26
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0594

  1105
  1106					; Increment packet number
  1107
  1108	001215'	350 01 0 00 001212*	TA11:	AOS	1,TSTSUB		; get subtest number
  1109	001216'	231 01 0 00 000012 		IDIVI	1,^D10			; divide by 10
  1110	001217'	332 00 0 00 000002 		SKIPE	2			; remainder?
  1111						GO	[MOVE	CRCSAV		; yes - get CRC and invert
  1112							 MOVEI	1,10		;   one of the bits
  1113							 LSH	1,(2)
  1114							 XOR	1
  1115							 MOVEM	PACKET+T11LEN+11
  1116	001220'	260 17 0 00 007115'			 RTN]
  1117	001221'	200 01 0 00 001215*		MOVE	1,TSTSUB		; increment packet number
  1118	001222'	303 01 0 00 000500 		CAILE	1,T11PAK		; done yet?
  1119	001223'	254 00 0 00 001271'		JRST	TE11			; yes - check test results
  1120	001224'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  1121
  1122					; Send a packet
  1123
  1124	001225'	037 07 0 00 000003 	TB11:	TTALTM				; altmode typed?
  1125	001226'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  1126	001227'	476 00 0 00 000753*		SETOM	ALTF			; yes - set flag
  1127	001230'	332 00 0 00 001227*		SKIPE	ALTF			; altmode flagged?
  1128	001231'	254 00 0 00 001335'		JRST	TX11			; yes - exit
  1129	001232'	336 00 0 00 000756*		SKIPN	LCHAR			; last character in here already?
  1130	001233'	202 00 0 00 001232*		MOVEM	LCHAR			; no - save 'last char typed'
  1131	001234'	260 17 0 00 000757*		GO	PSTAMP			; check for S typed
  1132	001235'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  1133
  1134	001236'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  1135	001237'	260 17 0 00 000762*		GO	CHKINT			; get list of queue entries
  1136	001240'	255 00 0 00 000000 		JFCL				; ignore error
  1137	001241'	476 00 0 00 000764*		SETOM	PTTFQ			; reset the interlock
  1138	001242'	200 00 0 00 000776*		MOVE	NUMENT			; get entry count
  1139	001243'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  1140	001244'	254 00 0 00 001255'		JRST	TC11			; no - continue
  1141
  1142	001245'	260 17 0 00 000770*		GO	INSQUE			; insert into queue
  1143	001246'	254 00 0 00 001251'		JRST	.+3			; failed - continue
  1144	001247'	254 00 0 00 001251'		JRST	.+2			; failed - continue
  1145	001250'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  1146	001251'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  1147	001252'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  1148	001253'	337 00 0 00 001242*		SKIPG	NUMENT			; was the queue empty?
  1149						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  1150							 MOVEI	1,PENABL!MPRUN
  1151							 TRZ	1,RESQAV
  1152							 TRO	1,CMDQAV
  1153							 GO	LDCSR
  1154	001254'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 27
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0595

  1155
  1156					; Check for a response
  1157
  1158	001255'	260 17 0 00 001021*	TC11:	GO	CHKRQV			; check response queue available
  1159	001256'	260 17 0 00 001022*		GO	CHKRSP			; check for RspQ entry
  1160						JRST	[SETZM	RQAFLG		; no entry found - continue
  1161							 MOVE	1,PCB+5		; get response queue FLINK
  1162							 GO	CONVIR		; convert to virtual
  1163							 CAIE	1,PCB+5		; queue really empty?
  1164							 SETOM	RQAFLG		; no - set rsp queue avail flag
  1165							 GO	CHKDEB		; check for debug mode
  1166	001257'	254 00 0 00 007123'			 JRST	TD11]
  1167	001260'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  1168	001261'	260 17 0 00 006166'		GO	MCHECK			; determine results
  1169	001262'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  1170	001263'	254 00 0 00 001255'		JRST	TC11			; keep looking for responses
  1171
  1172					; No more responses
  1173
  1174	001264'	350 00 0 00 000006 	TD11:	AOS	6			; increment hung count
  1175	001265'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  1176						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  1177	001266'	254 00 0 00 007132'			 JRST	TE11]		;   and exit
  1178	001267'	322 07 0 00 001225'		JUMPE	7,TB11			; send current packet? yes - go do so
  1179	001270'	254 00 0 00 001215'		JRST	TA11			; no - already did - go do next packet
  1180
  1181					; Check for any stragglers
  1182
  1183	001271'	400 03 0 00 000000 	TE11:	SETZ	3,			; set up for RUNTME
  1184	001272'	260 17 0 00 001030*		GO	RUNTME			; get current run time
  1185	001273'	200 01 0 00 001031*		MOVE	1,DEBTIM		; get time in milliseconds
  1186	001274'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  1187	001275'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  1188	001276'	260 17 0 00 001255*	TF11:	GO	CHKRQV			; check response queue available
  1189	001277'	260 17 0 00 001256*		GO	CHKRSP			; check for RspQ entry
  1190						JRST	[SETZM	RQAFLG		; no entry found - continue
  1191							 MOVE	1,PCB+5		; get response queue FLINK
  1192							 GO	CONVIR		; convert to virtual
  1193							 CAIE	1,PCB+5		; queue really empty?
  1194							 SETOM	RQAFLG		; no - set rsp queue avail flag
  1195							 GO	CHKDEB		; check for debug mode
  1196	001300'	254 00 0 00 007134'			 JRST	TG11]
  1197	001301'	260 17 0 00 006166'		GO	MCHECK			; determine results
  1198	001302'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  1199	001303'	254 00 0 00 001276'		JRST	TF11			; keep looking for responses
  1200	001304'	400 03 0 00 000000 	TG11:	SETZ	3,			; set up for RUNTME
  1201	001305'	260 17 0 00 001272*		GO	RUNTME			; get current run time
  1202	001306'	200 01 0 00 001273*		MOVE	1,DEBTIM		; get time in milliseconds
  1203	001307'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  1204	001310'	254 00 0 00 001276'		JRST	TF11			; no - keep looping
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 28
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0596

  1205
  1206					; Done with test - now check results
  1207
  1208	001311'	200 00 0 00 006333'	TH11:	MOVE	NPAKS			; get number of packets sent
  1209	001312'	302 00 0 00 000500 		CAIE	T11PAK			; correct number?
  1210	001313'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1211	001314'	200 00 0 00 006334'		MOVE	NPAKSE			; get status errors
  1212	001315'	303 00 0 00 000040 		CAILE	T11PAK/^D10		; less than 10%?
  1213	001316'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1214	001317'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
  1215	001320'	305 00 0 00 000440 		CAIGE	T11PAK*^D9/^D10		; more than 90% received?
  1216	001321'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1217	001322'	200 00 0 00 006336'		MOVE	NPAKRE			; number of receive status errors same
  1218	001323'	312 00 0 00 006335'		CAME	NPAKR			;   as number of packets received?
  1219	001324'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1220	001325'	332 00 0 00 006340'		SKIPE	NPAKRD			; any receive dt.cmp errors?
  1221	001326'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1222	001327'	200 00 0 00 006337'		MOVE	NPAKRC			; number of receive CRC errors
  1223	001330'	312 00 0 00 006335'		CAME	NPAKR			;   same as number expected?
  1224	001331'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1225	001332'	027 00 0 00 001352'		SCOPER	MD11			; print error message
  1226	001333'	255 00 0 00 000000 		JFCL				; loop on error
  1227	001334'	254 00 0 00 001335'		JRST	TX11			; altmode exit
  1228
  1229					; Exit
  1230	
  1231	001335'	200 00 0 00 010107'	TX11:	MOVE	NRCRC			; get receive CRC errors
  1232	001336'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  1233	001337'	260 17 0 00 001060*		GO	SETDSA			; disable the port
  1234	001340'	260 17 0 00 001061*		GO	ISTOP			; stop the port
  1235	001341'	263 17 0 00 000000 		RTN				; return
  1236
  1237					; Error messages
  1238
  1239	001342'	260000	006324'		MA11:	TXALL!CALL!LODERR
  1240	001343'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1241
  1242	001344'	160000	006561'		MB11:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  1243	001345'	260000	006276'			TXALL!CALL!PDUMP
  1244	001346'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1245
  1246	001347'	160000	006663'		MC11:	TXALL!MSG![ASCIZ /Could not enable the port/]
  1247	001350'	260000	006276'			TXALL!CALL!PDUMP
  1248	001351'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 29
DFNIA3	MAC	30-Nov-83 16:40		CRC Tests                                                                          SEQ 0597

  1249
  1250	001352'	160000	007017'		MD11:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  1251	001353'	260000	001356'			TXALL!CALL!MD11PN
  1252	001354'	260000	006276'			TXALL!CALL!PDUMP
  1253	001355'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  1254
  1255	001356'	037 00 0 00 007030'	MD11PN:	TMSGC	< What             Expected   Actual>
  1256	001357'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  1257	001360'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  1258	001361'	004 11 0 00 007143'		PNTDCP	9,[T11PAK]
  1259	001362'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  1260	001363'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  1261	001364'	004 11 0 00 006334'		PNTDCP	9,NPAKSE
  1262	001365'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  1263	001366'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  1264	001367'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  1265	001370'	037 00 0 00 007055'		TMSGC	<  Status Errors  >
  1266	001371'	004 11 0 00 007143'		PNTDCP	9,[T11PAK]
  1267	001372'	004 11 0 00 006336'		PNTDCP	9,NPAKRE
  1268	001373'	037 00 0 00 007144'		TMSGC	<  CRC Errors     >
  1269	001374'	004 11 0 00 007143'		PNTDCP	9,[T11PAK]
  1270	001375'	004 11 0 00 006337'		PNTDCP	9,NPAKRC
  1271	001376'	037 00 0 00 007101'		TMSGC	<  DtCmp Errors (PKTS)   0.>
  1272	001377'	004 11 0 00 006340'		PNTDCP	9,NPAKRD
  1273	001400'	037 00 0 00 007107'		TMSGC	<  DtCmp Errors (WORDS)  0.>
  1274	001401'	004 11 0 00 006341'		PNTDCP	9,NPAKRW
  1275	001402'	263 17 0 00 000000 		RTN
  1276
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 30
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0598

  1277						SUBTTL	Datagram Loopback Tests
  1278
  1279					;#********************************************************************
  1280					;* TEST 12 - Non-BSD Datagram Loopback Test
  1281					;
  1282					; Description:  This test sends a self-directed datagram with the
  1283					;		correct CRC appended to it.  The data is verified
  1284					;		when  received  and  the receive status verified.
  1285					;		The datagram  is in non-BSD style format which is
  1286					;		also in COMPAT format (by definition).   This  is
  1287					;		repeated  with  several  data patterns and packet
  1288					;		lengths.
  1289					;
  1290					; Procedure:	KL> Load microcode
  1291					;		KL> Port Clear
  1292					;		KL> Start port
  1293					;
  1294					;		KL> Build a self-directed datagram, insert on command
  1295					;		    queue, and wait for a response
  1296					;		KL> Verify proper response
  1297					;		KL> Verify data portion of packet received properly
  1298					;		If failed - print error message and exit test
  1299					;
  1300					;		Do for:
  1301					;		  data patterns:	116-126
  1302					;		  text length (words):  20-200
  1303					;
  1304					; FRU:		NIA Module
  1305					;#********************************************************************
  1306
  1307	001403'	000000	000050		T12REP:	^D40				; packets of the same type to send
  1308	001404'	000000	021450		T12PAK:	^D9*^D25*^D40			; total number of packets to send
  1309
  1310					; Initialization
  1311
  1312	001405'	201 00 0 00 000000'	TST12:	MOVEI	Z3			; get address of module start
  1313	001406'	260 17 0 00 001124*		GO	TRACE			; handle trace output
  1314	001407'	402 00 0 00 010111'		SETZM	SDEBUG#			; clear debug flag
  1315	001410'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  1316	001411'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  1317	001412'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  1318	001413'	260 17 0 00 001130*		GO	IPACLR			; do a 'port clear'
  1319	001414'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  1320	001415'	260 17 0 00 001132*		GO	TFLOAD			; load operational microcode
  1321						GO	[MOVEM	TERMES		; error - save error message
  1322							 SETO	ERFLG,
  1323	001416'	260 17 0 00 006552'			 RTN]
  1324	001417'	027 00 0 00 001641'		SCOPER	MA12			; print error message
  1325	001420'	255 00 0 00 000000 		JFCL				; loop on error
  1326	001421'	254 00 0 00 001636'		JRST	TX12			; altmode exit
  1327	001422'	326 15 0 00 001636'		JUMPN	ERFLG,TX12		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 31
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0599

  1328
  1329					; Start port
  1330
  1331	001423'	260 17 0 00 001140*		GO	TIDLE			; start port
  1332	001424'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1333	001425'	027 00 0 00 001643'		SCOPER	MB12			; print error message
  1334	001426'	255 00 0 00 000000 		JFCL				; loop on error
  1335	001427'	254 00 0 00 001636'		JRST	TX12			; altmode exit
  1336	001430'	326 15 0 00 001636'		JUMPN	ERFLG,TX12		; error yet? yes - abort test
  1337
  1338					; Enable the port
  1339
  1340	001431'	260 17 0 00 001146*		GO	SETENA			; ensure the port is enabled
  1341	001432'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1342	001433'	027 00 0 00 001646'		SCOPER	MC12			; print error message
  1343	001434'	255 00 0 00 000000 		JFCL				; loop on error
  1344	001435'	254 00 0 00 001636'		JRST	TX12			; altmode exit
  1345	001436'	326 15 0 00 001636'		JUMPN	ERFLG,TX12		; error yet? yes - abort test
  1346
  1347					; Set up multicast and PTT tables
  1348
  1349	001437'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  1350	001440'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  1351	001441'	255 00 0 00 000000 		JFCL				; loop on error
  1352	001442'	254 00 0 00 001636'		JRST	TX12			; altmode exit
  1353	001443'	326 15 0 00 001636'		JUMPN	ERFLG,TX12		; error yet? yes - abort test
  1354
  1355					; Initialize packet data
  1356
  1357	001444'	402 00 0 00 001171*		SETZM	TFMFLG			; set to COMPAT mode
  1358	001445'	476 00 0 00 001172*		SETOM	TRSFLG			; set 'response requested' flag
  1359	001446'	402 00 0 00 001173*		SETZM	TPDFLG			; clear pad flag
  1360	001447'	402 00 0 00 001174*		SETZM	TBSDFL			; set to non-BSD style datagram
  1361	001450'	120 00 0 00 001175*		DMOVE	SADDR			; initialize destination address
  1362	001451'	124 00 0 00 001176*		DMOVEM	TDEST			;   to self
  1363	001452'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  1364	001453'	202 00 0 00 001206*		MOVEM	TPTTVL			; save it
  1365	001454'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  1366	001455'	201 00 0 00 000115 		MOVEI	115			; set initial data pattern
  1367	001456'	202 00 0 00 001201*		MOVEM	TPAT			;  ...
  1368	001457'	402 00 0 00 001221*		SETZM	TSTSUB			; initialize subtest number
  1369	001460'	260 17 0 00 001731'		GO	CRCINI			; initialize CRC table
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 32
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0600

  1370
  1371					; Initialize statistics
  1372
  1373	001461'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  1374	001462'	402 00 0 00 006334'		SETZM	NPAKSE			; clear sent status error count
  1375	001463'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  1376	001464'	402 00 0 00 006336'		SETZM	NPAKRE			; clear recv status error count
  1377	001465'	402 00 0 00 006337'		SETZM	NPAKRC			; clear recv CRC error count
  1378	001466'	402 00 0 00 006340'		SETZM	NPAKRD			; clear recv dt.cmp error count (pkts)
  1379	001467'	402 00 0 00 006341'		SETZM	NPAKRW			; clear recv dt.cmp error count (words)
  1380	001470'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  1381						MOVEI	[MOVE	TLNPAT#		; set up packet data for text
  1382							 MOVEM	PACKET+11	;   length and data pattern
  1383							 RPUT	(1,2)
  1384							 LDB	1,[POINT 14,TLNPAT,31]
  1385							 IMULI	1,^D9
  1386							 HLRZ	TLNPAT
  1387							 ADD	1,
  1388							 SUBI	1,116
  1389							 MOVEM	1,CRCOFF
  1390							 MOVE	2,CRCTAB(1)
  1391							 MOVEM	2,CRCSAV
  1392							 RGET	(2,1)
  1393	001471'	201 00 0 00 007151'			 RTN]
  1394	001472'	202 00 0 00 000000*		MOVEM	TXADDL
  1395	001473'	402 00 0 00 001213*		SETZM	RQAFLG			; clear response queue available flag
  1396	001474'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  1397
  1398					; Increment pattern
  1399
  1400	001475'	350 01 0 00 001456*	TA12:	AOS	1,TPAT			; increment pattern
  1401	001476'	303 01 0 00 000126 		CAILE	1,126			; done yet?
  1402	001477'	254 00 0 00 001565'		JRST	TG12			; yes - check test completion
  1403	001500'	476 00 0 00 010113'		SETOM	TLEN#			; initialize length pointer
  1404
  1405					; Increment length
  1406
  1407	001501'	350 01 0 00 010113'	TB12:	AOS	1,TLEN			; increment length
  1408	001502'	301 01 0 00 000031 		CAIL	1,^D25			; done yet?
  1409	001503'	254 00 0 00 001475'		JRST	TA12			; yes - check next pattern
  1410	001504'	402 00 0 00 001202*		SETZM	TBYTE			; no - clear byte count
  1411	001505'	200 00 0 01 001700'		MOVE	T12LEN(1)		; get length
  1412	001506'	202 00 0 00 001204*		MOVEM	TWORD			; save it
  1413	001507'	137 01 0 00 007150'		DPB	1,[POINT 14,TLNPAT,31] 	; put in LEN/PAT word
  1414	001510'	200 00 0 00 001475*		MOVE	TPAT			; get data pattern
  1415	001511'	506 00 0 00 010114'		HRLM	TLNPAT			; set up LEN/PAT word
  1416	001512'	200 10 0 00 001403'		MOVE	10,T12REP		; initialize packet count
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 33
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0601

  1417	001513'	332 00 0 00 010111'		SKIPE	SDEBUG			; debug mode?
  1418						GO	[TMSGC	<** Pat >
  1419							 MOVE	TPAT
  1420							 PNTOCS
  1421							 TMSG	< Len >
  1422							 MOVE	TWORD
  1423							 PNTDEC
  1424							 TMSGD	< **>
  1425	001514'	260 17 0 00 007176'			 RTN]
  1426
  1427					; Decrement packet count (39-0)
  1428
  1429	001515'	361 10 0 00 001501'	TC12:	SOJL	10,TB12			; done yet? yes - check next length
  1430	001516'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  1431
  1432					; Send a packet
  1433
  1434	001517'	037 07 0 00 000003 	TD12:	TTALTM				; altmode typed?
  1435	001520'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  1436	001521'	476 00 0 00 001230*		SETOM	ALTF			; yes - set flag
  1437	001522'	332 00 0 00 001521*		SKIPE	ALTF			; altmode flagged?
  1438	001523'	254 00 0 00 001636'		JRST	TX12			; yes - exit
  1439	001524'	336 00 0 00 001233*		SKIPN	LCHAR			; last character in here already?
  1440	001525'	202 00 0 00 001524*		MOVEM	LCHAR			; no - save 'last char typed'
  1441	001526'	260 17 0 00 001234*		GO	PSTAMP			; check for S typed
  1442	001527'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  1443	001530'	260 17 0 00 006046'		GO	MPACK			; build packet into 'PACKET'
  1444
  1445	001531'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  1446	001532'	260 17 0 00 001237*		GO	CHKINT			; get list of queue entries
  1447	001533'	255 00 0 00 000000 		JFCL				; ignore error
  1448	001534'	476 00 0 00 001241*		SETOM	PTTFQ			; reset the interlock
  1449	001535'	200 00 0 00 001253*		MOVE	NUMENT			; get entry count
  1450	001536'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  1451	001537'	254 00 0 00 001551'		JRST	TE12			; no - continue
  1452
  1453	001540'	260 17 0 00 001245*		GO	INSQUE			; insert into queue
  1454	001541'	254 00 0 00 001544'		JRST	.+3			; failed - continue
  1455	001542'	254 00 0 00 001544'		JRST	.+2			; failed - continue
  1456	001543'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  1457	001544'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  1458	001545'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  1459	001546'	350 00 0 00 001457*		AOS	TSTSUB			; increment subtest number
  1460	001547'	337 00 0 00 001535*		SKIPG	NUMENT			; was the queue empty?
  1461						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  1462							 MOVEI	1,PENABL!MPRUN
  1463							 TRZ	1,RESQAV
  1464							 TRO	1,CMDQAV
  1465							 GO	LDCSR
  1466	001550'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 34
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0602

  1467
  1468					; Check for a response
  1469
  1470	001551'	260 17 0 00 001276*	TE12:	GO	CHKRQV			; check response queue available
  1471	001552'	260 17 0 00 001277*		GO	CHKRSP			; check for RspQ entry
  1472						JRST	[SETZM	RQAFLG		; no entry found - continue
  1473							 MOVE	1,PCB+5		; get response queue FLINK
  1474							 GO	CONVIR		; convert to virtual
  1475							 CAIE	1,PCB+5		; queue really empty?
  1476							 SETOM	RQAFLG		; no - set rsp queue avail flag
  1477							 GO	CHKDEB		; check for debug mode
  1478	001553'	254 00 0 00 007206'			 JRST	TF12]
  1479	001554'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  1480	001555'	260 17 0 00 006166'		GO	MCHECK			; determine results
  1481	001556'	260 17 0 00 006101'		GO	MCOMP			; compare packet data
  1482	001557'	254 00 0 00 001551'		JRST	TE12			; keep looking for responses
  1483
  1484					; No more responses
  1485
  1486	001560'	350 00 0 00 000006 	TF12:	AOS	6			; increment hung count
  1487	001561'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  1488						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  1489	001562'	254 00 0 00 007215'			 JRST	TG12]		;   and exit
  1490	001563'	322 07 0 00 001517'		JUMPE	7,TD12			; send current packet? yes - go do so
  1491	001564'	254 00 0 00 001515'		JRST	TC12			; no - already did - go do next packet
  1492
  1493					; Check for any stragglers
  1494
  1495	001565'	332 00 0 00 010111'	TG12:	SKIPE	SDEBUG			; debug mode?
  1496	001566'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  1497	001567'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  1498	001570'	260 17 0 00 001305*		GO	RUNTME			; get current run time
  1499	001571'	200 01 0 00 001306*		MOVE	1,DEBTIM		; get time in milliseconds
  1500	001572'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  1501	001573'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  1502	001574'	260 17 0 00 001551*	TH12:	GO	CHKRQV			; check response queue available
  1503	001575'	260 17 0 00 001552*		GO	CHKRSP			; check for RspQ entry
  1504						JRST	[SETZM	RQAFLG		; no entry found - continue
  1505							 MOVE	1,PCB+5		; get response queue FLINK
  1506							 GO	CONVIR		; convert to virtual
  1507							 CAIE	1,PCB+5		; queue really empty?
  1508							 SETOM	RQAFLG		; no - set rsp queue avail flag
  1509							 GO	CHKDEB		; check for debug mode
  1510	001576'	254 00 0 00 007226'			 JRST	TI12]
  1511	001577'	260 17 0 00 006166'		GO	MCHECK			; determine results
  1512	001600'	260 17 0 00 006101'		GO	MCOMP			; compare packet data
  1513	001601'	254 00 0 00 001574'		JRST	TH12			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 35
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0603

  1514
  1515					; Check timeout
  1516
  1517	001602'	400 03 0 00 000000 	TI12:	SETZ	3,			; set up for RUNTME
  1518	001603'	260 17 0 00 001570*		GO	RUNTME			; get current run time
  1519	001604'	200 01 0 00 001571*		MOVE	1,DEBTIM		; get time in milliseconds
  1520	001605'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  1521	001606'	254 00 0 00 001574'		JRST	TH12			; no - keep looping
  1522
  1523					; Done with test - now check results
  1524
  1525	001607'	332 00 0 00 010111'	TJ12:	SKIPE	SDEBUG			; debug mode?
  1526	001610'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  1527	001611'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  1528	001612'	312 00 0 00 001404'		CAME	T12PAK			; correct number?
  1529	001613'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1530	001614'	200 00 0 00 006333'		MOVE	NPAKS			; get packets sent
  1531	001615'	231 00 0 00 000012 		IDIVI	^D10			; get 10%
  1532	001616'	315 00 0 00 006334'		CAMGE	NPAKSE			; more status errors than 10%?
  1533	001617'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1534	001620'	200 00 0 00 001404'		MOVE	T12PAK			; get sent count
  1535	001621'	221 00 0 00 000011 		IMULI	^D9			; calculate 90% of it
  1536	001622'	231 00 0 00 000012 		IDIVI	^D10
  1537	001623'	311 00 0 00 006335'		CAML	NPAKR			; exceed receive count?
  1538	001624'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1539	001625'	332 00 0 00 006336'		SKIPE	NPAKRE			; any receive status errors?
  1540	001626'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1541	001627'	332 00 0 00 006340'		SKIPE	NPAKRD			; any receive dt.cmp errors?
  1542	001630'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1543	001631'	332 00 0 00 006337'		SKIPE	NPAKRC			; any CRC errors?
  1544	001632'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1545	001633'	027 00 0 00 001651'		SCOPER	MD12			; print error message
  1546	001634'	255 00 0 00 000000 		JFCL				; loop on error
  1547	001635'	254 00 0 00 001636'		JRST	TX12			; altmode exit
  1548
  1549					; Exit
  1550	
  1551	001636'	260 17 0 00 001337*	TX12:	GO	SETDSA			; disable the port
  1552	001637'	260 17 0 00 001340*		GO	ISTOP			; stop the port
  1553	001640'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 36
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0604

  1554
  1555					; Error messages
  1556
  1557	001641'	260000	006324'		MA12:	TXALL!CALL!LODERR
  1558	001642'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1559
  1560	001643'	160000	006561'		MB12:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  1561	001644'	260000	006276'			TXALL!CALL!PDUMP
  1562	001645'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1563
  1564	001646'	160000	006663'		MC12:	TXALL!MSG![ASCIZ /Could not enable the port/]
  1565	001647'	260000	006276'			TXALL!CALL!PDUMP
  1566	001650'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1567
  1568	001651'	160000	007017'		MD12:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  1569	001652'	260000	001655'			TXALL!CALL!MD12PN
  1570	001653'	260000	006276'			TXALL!CALL!PDUMP
  1571	001654'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  1572
  1573	001655'	037 00 0 00 007030'	MD12PN:	TMSGC	< What             Expected   Actual>
  1574	001656'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  1575	001657'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  1576	001660'	004 11 0 00 001404'		PNTDCP	9,T12PAK
  1577	001661'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  1578	001662'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  1579	001663'	004 11 0 00 006334'		PNTDCP	9,NPAKSE
  1580	001664'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  1581	001665'	004 11 0 00 001404'		PNTDCP	9,T12PAK
  1582	001666'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  1583	001667'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  1584	001670'	004 11 0 00 006336'		PNTDCP	9,NPAKRE
  1585	001671'	037 00 0 00 007073'		TMSGC	<  CRC Errors            0.>
  1586	001672'	004 11 0 00 006337'		PNTDCP	9,NPAKRC
  1587	001673'	037 00 0 00 007101'		TMSGC	<  DtCmp Errors (PKTS)   0.>
  1588	001674'	004 11 0 00 006340'		PNTDCP	9,NPAKRD
  1589	001675'	037 00 0 00 007107'		TMSGC	<  DtCmp Errors (WORDS)  0.>
  1590	001676'	004 11 0 00 006341'		PNTDCP	9,NPAKRW
  1591	001677'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 37
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0605

  1592
  1593					; Length table
  1594
  1595	001700'	000000	000024		T12LEN:	EXP	^D20,^D20,^D20,^D30,^D30,^D30,^D40,^D40,^D40,^D50,^D50,^D50
  1596	001701'	000000	000024
  1597	001702'	000000	000024
  1598	001703'	000000	000036
  1599	001704'	000000	000036
  1600	001705'	000000	000036
  1601	001706'	000000	000050
  1602	001707'	000000	000050
  1603	001710'	000000	000050
  1604	001711'	000000	000062
  1605	001712'	000000	000062
  1606	001713'	000000	000062
  1607	001714'	000000	000074			EXP	^D60,^D60,^D60,^D70,^D70,^D70,^D80,^D80,^D80,^D90,^D90,^D90
  1608	001715'	000000	000074
  1609	001716'	000000	000074
  1610	001717'	000000	000106
  1611	001720'	000000	000106
  1612	001721'	000000	000106
  1613	001722'	000000	000120
  1614	001723'	000000	000120
  1615	001724'	000000	000120
  1616	001725'	000000	000132
  1617	001726'	000000	000132
  1618	001727'	000000	000132
  1619	001730'	000000	000144			EXP	^D100
  1620
  1621					;#********************************************************************
  1622					;* CRCINI - Special routine to clear a CRC table used by TST12...
  1623					;#********************************************************************
  1624
  1625	001731'	261 17 0 00 000001 	CRCINI:	PUT	1			; save AC1
  1626	001732'	402 00 0 00 001741'		SETZM	CRCTAB			; clear first word
  1627	001733'	200 01 0 00 007255'		MOVE	1,[CRCTAB,,CRCTAB+1]	; build BLT pointer
  1628	001734'	251 01 0 00 002301'		BLT	1,CRCTAB+^D9*^D25-1	; clear the rest of it
  1629	001735'	262 17 0 00 000001 		GET	1			; restore AC1
  1630	001736'	263 17 0 00 000000 		RTN				; return
  1631
  1632	001737'	000000	000000		CRCSAV:	0
  1633	001740'	000000	000000		CRCOFF:	0
  1634	001741'				CRCTAB:	BLOCK	^D9*^D25
  1635	002302'	000000	000000			0
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 38
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0606

  1636
  1637					;#********************************************************************
  1638					;* TEST 13 - BSD Datagram Loopback Test 1
  1639					;
  1640					; Description:  This test sends a self-directed datagram with the
  1641					;		correct CRC appended to it.  The data is verified
  1642					;		when  received  and  the receive status verified.
  1643					;		The datagram is in BSD  style  format  with  only
  1644					;		COMPAT format data specified.   This is  repeated
  1645					;		with several data patterns and packet lengths.
  1646					;
  1647					; Procedure:	KL> Load microcode
  1648					;		KL> Port Clear
  1649					;		KL> Start port
  1650					;
  1651					;		KL> Build a self-directed datagram, insert on command
  1652					;		    queue, and wait for a response
  1653					;		KL> Verify proper response
  1654					;		KL> Verify data portion of packet received properly
  1655					;		If failed - print error message and exit test
  1656					;
  1657					;		Do for:
  1658					;		  data patterns:	116-126
  1659					;		  text length (words):  20-200
  1660					;
  1661					; FRU:		NIA Module
  1662					;#********************************************************************
  1663
  1664			003410		T13PAK==^D9*^D25*^D8			; number of packets to send
  1665
  1666					; Initialization
  1667
  1668	002303'	201 00 0 00 000000'	TST13:	MOVEI	Z3			; get address of module start
  1669	002304'	260 17 0 00 001406*		GO	TRACE			; handle trace output
  1670	002305'	402 00 0 00 010111'		SETZM	SDEBUG			; clear debug flag
  1671	002306'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  1672	002307'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  1673	002310'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  1674	002311'	260 17 0 00 001413*		GO	IPACLR			; do a 'port clear'
  1675	002312'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  1676	002313'	260 17 0 00 001415*		GO	TFLOAD			; load operational microcode
  1677						GO	[MOVEM	TERMES		; error - save error message
  1678							 SETO	ERFLG,
  1679	002314'	260 17 0 00 006552'			 RTN]
  1680	002315'	027 00 0 00 002535'		SCOPER	MA13			; print error message
  1681	002316'	255 00 0 00 000000 		JFCL				; loop on error
  1682	002317'	254 00 0 00 002532'		JRST	TX13			; altmode exit
  1683	002320'	326 15 0 00 002532'		JUMPN	ERFLG,TX13		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 39
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0607

  1684
  1685					; Start port
  1686
  1687	002321'	260 17 0 00 001423*		GO	TIDLE			; start port
  1688	002322'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1689	002323'	027 00 0 00 002537'		SCOPER	MB13			; print error message
  1690	002324'	255 00 0 00 000000 		JFCL				; loop on error
  1691	002325'	254 00 0 00 002532'		JRST	TX13			; altmode exit
  1692	002326'	326 15 0 00 002532'		JUMPN	ERFLG,TX13		; error yet? yes - abort test
  1693
  1694					; Enable the port
  1695
  1696	002327'	260 17 0 00 001431*		GO	SETENA			; ensure the port is enabled
  1697	002330'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1698	002331'	027 00 0 00 002542'		SCOPER	MC13			; print error message
  1699	002332'	255 00 0 00 000000 		JFCL				; loop on error
  1700	002333'	254 00 0 00 002532'		JRST	TX13			; altmode exit
  1701	002334'	326 15 0 00 002532'		JUMPN	ERFLG,TX13		; error yet? yes - abort test
  1702
  1703					; Set up multicast and PTT tables
  1704
  1705	002335'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  1706	002336'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  1707	002337'	255 00 0 00 000000 		JFCL				; loop on error
  1708	002340'	254 00 0 00 002532'		JRST	TX13			; altmode exit
  1709	002341'	326 15 0 00 002532'		JUMPN	ERFLG,TX13		; error yet? yes - abort test
  1710
  1711					; Initialize packet data
  1712
  1713	002342'	402 00 0 00 001444*		SETZM	TFMFLG			; set to COMPAT mode
  1714	002343'	476 00 0 00 001445*		SETOM	TRSFLG			; set 'response requested' flag
  1715	002344'	402 00 0 00 001446*		SETZM	TPDFLG			; clear pad flag
  1716	002345'	476 00 0 00 001447*		SETOM	TBSDFL			; set to BSD style datagram
  1717	002346'	120 00 0 00 001450*		DMOVE	SADDR			; initialize destination address
  1718	002347'	124 00 0 00 001451*		DMOVEM	TDEST			;   to self
  1719	002350'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  1720	002351'	202 00 0 00 001453*		MOVEM	TPTTVL			; save it
  1721	002352'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  1722	002353'	201 00 0 00 000115 		MOVEI	115			; set initial data pattern
  1723	002354'	202 00 0 00 001510*		MOVEM	TPAT			;  ...
  1724	002355'	402 00 0 00 001546*		SETZM	TSTSUB			; initialize subtest number
  1725	002356'	260 17 0 00 001731'		GO	CRCINI			; initialize CRC table
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 40
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0608

  1726
  1727					; Initialize statistics
  1728
  1729	002357'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  1730	002360'	402 00 0 00 006334'		SETZM	NPAKSE			; clear sent status error count
  1731	002361'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  1732	002362'	402 00 0 00 006336'		SETZM	NPAKRE			; clear recv status error count
  1733	002363'	402 00 0 00 006337'		SETZM	NPAKRC			; clear recv CRC error count
  1734	002364'	402 00 0 00 006340'		SETZM	NPAKRD			; clear recv dt.cmp error count (pkts)
  1735	002365'	402 00 0 00 006341'		SETZM	NPAKRW			; clear recv dt.cmp error count (words)
  1736	002366'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  1737						MOVEI	[MOVE	TLNPAT		; set up packet data for text
  1738							 MOVEM	PACKET+20	;   length and data pattern
  1739							 RPUT	(1,2)
  1740							 LDB	1,[POINT 14,TLNPAT,31]
  1741							 IMULI	1,^D9
  1742							 HLRZ	TLNPAT
  1743							 ADD	1,
  1744							 SUBI	1,116
  1745							 MOVEM	1,CRCOFF
  1746							 MOVE	2,CRCTAB(1)
  1747							 MOVEM	2,CRCSAV
  1748							 RGET	(2,1)
  1749	002367'	201 00 0 00 007256'			 RTN]
  1750	002370'	202 00 0 00 001472*		MOVEM	TXADDL
  1751	002371'	402 00 0 00 001473*		SETZM	RQAFLG			; clear response queue available flag
  1752	002372'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  1753
  1754					; Increment pattern
  1755
  1756	002373'	350 01 0 00 002354*	TA13:	AOS	1,TPAT			; increment pattern
  1757	002374'	303 01 0 00 000126 		CAILE	1,126			; done yet?
  1758	002375'	254 00 0 00 002463'		JRST	TG13			; yes - check test completion
  1759	002376'	476 00 0 00 010113'		SETOM	TLEN#			; initialize length pointer
  1760
  1761					; Increment length
  1762
  1763	002377'	350 01 0 00 010113'	TB13:	AOS	1,TLEN			; increment length
  1764	002400'	301 01 0 00 000031 		CAIL	1,^D25			; done yet?
  1765	002401'	254 00 0 00 002373'		JRST	TA13			; yes - check next pattern
  1766	002402'	402 00 0 00 001504*		SETZM	TBYTE			; no - clear byte count
  1767	002403'	200 00 0 01 001700'		MOVE	T12LEN(1)		; get length
  1768	002404'	202 00 0 00 001506*		MOVEM	TWORD			; save it
  1769	002405'	137 01 0 00 007150'		DPB	1,[POINT 14,TLNPAT,31] 	; put in LEN/PAT word
  1770	002406'	200 00 0 00 002373*		MOVE	TPAT			; get data pattern
  1771	002407'	506 00 0 00 010114'		HRLM	TLNPAT			; set up LEN/PAT word
  1772	002410'	201 10 0 00 000010 		MOVEI	10,^D8			; initialize packet count
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 41
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0609

  1773	002411'	332 00 0 00 010111'		SKIPE	SDEBUG			; debug mode?
  1774						GO	[TMSGC	<** Pat >
  1775							 MOVE	TPAT
  1776							 PNTOCS
  1777							 TMSG	< Len >
  1778							 MOVE	TWORD
  1779							 PNTDEC
  1780							 TMSGD	< **>
  1781	002412'	260 17 0 00 007176'			 RTN]
  1782
  1783					; Decrement packet count (7-0)
  1784
  1785	002413'	361 10 0 00 002377'	TC13:	SOJL	10,TB13			; done yet? yes - check next length
  1786	002414'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  1787
  1788					; Send a packet
  1789
  1790	002415'	037 07 0 00 000003 	TD13:	TTALTM				; altmode typed?
  1791	002416'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  1792	002417'	476 00 0 00 001522*		SETOM	ALTF			; yes - set flag
  1793	002420'	332 00 0 00 002417*		SKIPE	ALTF			; altmode flagged?
  1794	002421'	254 00 0 00 002532'		JRST	TX13			; yes - exit
  1795	002422'	336 00 0 00 001525*		SKIPN	LCHAR			; last character in here already?
  1796	002423'	202 00 0 00 002422*		MOVEM	LCHAR			; no - save 'last char typed'
  1797	002424'	260 17 0 00 001526*		GO	PSTAMP			; check for S typed
  1798	002425'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  1799	002426'	260 17 0 00 006046'		GO	MPACK			; build packet into 'PACKET'
  1800
  1801	002427'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  1802	002430'	260 17 0 00 001532*		GO	CHKINT			; get list of queue entries
  1803	002431'	255 00 0 00 000000 		JFCL				; ignore error
  1804	002432'	476 00 0 00 001534*		SETOM	PTTFQ			; reset the interlock
  1805	002433'	200 00 0 00 001547*		MOVE	NUMENT			; get entry count
  1806	002434'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  1807	002435'	254 00 0 00 002447'		JRST	TE13			; no - continue
  1808
  1809	002436'	260 17 0 00 001540*		GO	INSQUE			; insert into queue
  1810	002437'	254 00 0 00 002442'		JRST	.+3			; failed - continue
  1811	002440'	254 00 0 00 002442'		JRST	.+2			; failed - continue
  1812	002441'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  1813	002442'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  1814	002443'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  1815	002444'	350 00 0 00 002355*		AOS	TSTSUB			; increment subtest number
  1816	002445'	337 00 0 00 002433*		SKIPG	NUMENT			; was the queue empty?
  1817						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  1818							 MOVEI	1,PENABL!MPRUN
  1819							 TRZ	1,RESQAV
  1820							 TRO	1,CMDQAV
  1821							 GO	LDCSR
  1822	002446'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 42
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0610

  1823
  1824					; Check for a response
  1825
  1826	002447'	260 17 0 00 001574*	TE13:	GO	CHKRQV			; check response queue available
  1827	002450'	260 17 0 00 001575*		GO	CHKRSP			; check for RspQ entry
  1828						JRST	[SETZM	RQAFLG		; no entry found - continue
  1829							 MOVE	1,PCB+5		; get response queue FLINK
  1830							 GO	CONVIR		; convert to virtual
  1831							 CAIE	1,PCB+5		; queue really empty?
  1832							 SETOM	RQAFLG		; no - set rsp queue avail flag
  1833							 GO	CHKDEB		; check for debug mode
  1834	002451'	254 00 0 00 007275'			 JRST	TF13]
  1835	002452'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  1836	002453'	260 17 0 00 006166'		GO	MCHECK			; determine results
  1837	002454'	260 17 0 00 006101'		GO	MCOMP			; compare packet data
  1838	002455'	254 00 0 00 002447'		JRST	TE13			; keep looking for responses
  1839
  1840					; No more responses
  1841
  1842	002456'	350 00 0 00 000006 	TF13:	AOS	6			; increment hung count
  1843	002457'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  1844						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  1845	002460'	254 00 0 00 007304'			 JRST	TG13]		;   and exit
  1846	002461'	322 07 0 00 002415'		JUMPE	7,TD13			; send current packet? yes - go do so
  1847	002462'	254 00 0 00 002413'		JRST	TC13			; no - already did - go do next packet
  1848
  1849					; Check for any stragglers
  1850
  1851	002463'	332 00 0 00 010111'	TG13:	SKIPE	SDEBUG			; debug mode?
  1852	002464'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  1853	002465'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  1854	002466'	260 17 0 00 001603*		GO	RUNTME			; get current run time
  1855	002467'	200 01 0 00 001604*		MOVE	1,DEBTIM		; get time in milliseconds
  1856	002470'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  1857	002471'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  1858	002472'	260 17 0 00 002447*	TH13:	GO	CHKRQV			; check response queue available
  1859	002473'	260 17 0 00 002450*		GO	CHKRSP			; check for RspQ entry
  1860						JRST	[SETZM	RQAFLG		; no entry found - continue
  1861							 MOVE	1,PCB+5		; get response queue FLINK
  1862							 GO	CONVIR		; convert to virtual
  1863							 CAIE	1,PCB+5		; queue really empty?
  1864							 SETOM	RQAFLG		; no - set rsp queue avail flag
  1865							 GO	CHKDEB		; check for debug mode
  1866	002474'	254 00 0 00 007306'			 JRST	TI13]
  1867	002475'	260 17 0 00 006166'		GO	MCHECK			; determine results
  1868	002476'	260 17 0 00 006101'		GO	MCOMP			; compare packet data
  1869	002477'	254 00 0 00 002472'		JRST	TH13			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 43
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0611

  1870
  1871					; Check timeout
  1872
  1873	002500'	400 03 0 00 000000 	TI13:	SETZ	3,			; set up for RUNTME
  1874	002501'	260 17 0 00 002466*		GO	RUNTME			; get current run time
  1875	002502'	200 01 0 00 002467*		MOVE	1,DEBTIM		; get time in milliseconds
  1876	002503'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  1877	002504'	254 00 0 00 002472'		JRST	TH13			; no - keep looping
  1878
  1879					; Done with test - now check results
  1880
  1881	002505'	332 00 0 00 010111'	TJ13:	SKIPE	SDEBUG			; debug mode?
  1882	002506'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  1883	002507'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  1884	002510'	302 00 0 00 003410 		CAIE	T13PAK			; correct number?
  1885	002511'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1886	002512'	200 00 0 00 006333'		MOVE	NPAKS			; get packets sent
  1887	002513'	231 00 0 00 000012 		IDIVI	^D10			; get 10%
  1888	002514'	315 00 0 00 006334'		CAMGE	NPAKSE			; more status errors than 10%?
  1889	002515'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1890	002516'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
  1891	002517'	305 00 0 00 003124 		CAIGE	T13PAK*^D9/^D10		; more than 90% received?
  1892	002520'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  1893	002521'	332 00 0 00 006336'		SKIPE	NPAKRE			; any receive status errors?
  1894	002522'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1895	002523'	332 00 0 00 006340'		SKIPE	NPAKRD			; any receive dt.cmp errors?
  1896	002524'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1897	002525'	332 00 0 00 006337'		SKIPE	NPAKRC			; any CRC errors?
  1898	002526'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  1899	002527'	027 00 0 00 002545'		SCOPER	MD13			; print error message
  1900	002530'	255 00 0 00 000000 		JFCL				; loop on error
  1901	002531'	254 00 0 00 002532'		JRST	TX13			; altmode exit
  1902
  1903					; Exit
  1904	
  1905	002532'	260 17 0 00 001636*	TX13:	GO	SETDSA			; disable the port
  1906	002533'	260 17 0 00 001637*		GO	ISTOP			; stop the port
  1907	002534'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 44
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0612

  1908
  1909					; Error messages
  1910
  1911	002535'	260000	006324'		MA13:	TXALL!CALL!LODERR
  1912	002536'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1913
  1914	002537'	160000	006561'		MB13:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  1915	002540'	260000	006276'			TXALL!CALL!PDUMP
  1916	002541'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1917
  1918	002542'	160000	006663'		MC13:	TXALL!MSG![ASCIZ /Could not enable the port/]
  1919	002543'	260000	006276'			TXALL!CALL!PDUMP
  1920	002544'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  1921
  1922	002545'	160000	007017'		MD13:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  1923	002546'	260000	002551'			TXALL!CALL!MD13PN
  1924	002547'	260000	006276'			TXALL!CALL!PDUMP
  1925	002550'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  1926
  1927	002551'	037 00 0 00 007030'	MD13PN:	TMSGC	< What             Expected   Actual>
  1928	002552'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  1929	002553'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  1930	002554'	004 11 0 00 007315'		PNTDCP	9,[T13PAK]
  1931	002555'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  1932	002556'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  1933	002557'	004 11 0 00 006334'		PNTDCP	9,NPAKSE
  1934	002560'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  1935	002561'	004 11 0 00 007315'		PNTDCP	9,[T13PAK]
  1936	002562'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  1937	002563'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  1938	002564'	004 11 0 00 006336'		PNTDCP	9,NPAKRE
  1939	002565'	037 00 0 00 007073'		TMSGC	<  CRC Errors            0.>
  1940	002566'	004 11 0 00 006337'		PNTDCP	9,NPAKRC
  1941	002567'	037 00 0 00 007101'		TMSGC	<  DtCmp Errors (PKTS)   0.>
  1942	002570'	004 11 0 00 006340'		PNTDCP	9,NPAKRD
  1943	002571'	037 00 0 00 007107'		TMSGC	<  DtCmp Errors (WORDS)  0.>
  1944	002572'	004 11 0 00 006341'		PNTDCP	9,NPAKRW
  1945	002573'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 45
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0613

  1946
  1947					;#********************************************************************
  1948					;* TEST 14 - BSD Datagram Loopback Test 2
  1949					;
  1950					; Description:  This test sends a self-directed datagram with the
  1951					;		correct CRC appended to it.  The data is verified
  1952					;		when  received  and  the receive status verified.
  1953					;		The datagram is in BSD  style  format  with  only
  1954					;		HIDEN  format data specified.   This is  repeated
  1955					;		with several data patterns and packet lengths.
  1956					;
  1957					; Procedure:	KL> Load microcode
  1958					;		KL> Port Clear
  1959					;		KL> Start port
  1960					;
  1961					;		KL> Build a self-directed datagram, insert on command
  1962					;		    queue, and wait for a response
  1963					;		KL> Verify proper response
  1964					;		KL> Verify data portion of packet received properly
  1965					;		If failed - print error message and exit test
  1966					;
  1967					;		Do for:
  1968					;		  data patterns:	116-126
  1969					;		  text length (words):  20-200
  1970					;
  1971					; FRU:		NIA Module
  1972					;#********************************************************************
  1973
  1974			003410		T14PAK==^D9*^D25*^D8			; number of packets to send
  1975
  1976					; Initialization
  1977
  1978	002574'	201 00 0 00 000000'	TST14:	MOVEI	Z3			; get address of module start
  1979	002575'	260 17 0 00 002304*		GO	TRACE			; handle trace output
  1980	002576'	402 00 0 00 010111'		SETZM	SDEBUG			; clear debug flag
  1981	002577'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  1982	002600'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  1983	002601'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  1984	002602'	260 17 0 00 002311*		GO	IPACLR			; do a 'port clear'
  1985	002603'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  1986	002604'	260 17 0 00 002313*		GO	TFLOAD			; load operational microcode
  1987						GO	[MOVEM	TERMES		; error - save error message
  1988							 SETO	ERFLG,
  1989	002605'	260 17 0 00 006552'			 RTN]
  1990	002606'	027 00 0 00 003026'		SCOPER	MA14			; print error message
  1991	002607'	255 00 0 00 000000 		JFCL				; loop on error
  1992	002610'	254 00 0 00 003023'		JRST	TX14			; altmode exit
  1993	002611'	326 15 0 00 003023'		JUMPN	ERFLG,TX14		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 46
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0614

  1994
  1995					; Start port
  1996
  1997	002612'	260 17 0 00 002321*		GO	TIDLE			; start port
  1998	002613'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  1999	002614'	027 00 0 00 003030'		SCOPER	MB14			; print error message
  2000	002615'	255 00 0 00 000000 		JFCL				; loop on error
  2001	002616'	254 00 0 00 003023'		JRST	TX14			; altmode exit
  2002	002617'	326 15 0 00 003023'		JUMPN	ERFLG,TX14		; error yet? yes - abort test
  2003
  2004					; Enable the port
  2005
  2006	002620'	260 17 0 00 002327*		GO	SETENA			; ensure the port is enabled
  2007	002621'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2008	002622'	027 00 0 00 003033'		SCOPER	MC14			; print error message
  2009	002623'	255 00 0 00 000000 		JFCL				; loop on error
  2010	002624'	254 00 0 00 003023'		JRST	TX14			; altmode exit
  2011	002625'	326 15 0 00 003023'		JUMPN	ERFLG,TX14		; error yet? yes - abort test
  2012
  2013					; Set up multicast and PTT tables
  2014
  2015	002626'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  2016	002627'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  2017	002630'	255 00 0 00 000000 		JFCL				; loop on error
  2018	002631'	254 00 0 00 003023'		JRST	TX14			; altmode exit
  2019	002632'	326 15 0 00 003023'		JUMPN	ERFLG,TX14		; error yet? yes - abort test
  2020
  2021					; Initialize packet data
  2022
  2023	002633'	476 00 0 00 002342*		SETOM	TFMFLG			; set to HIDEN mode
  2024	002634'	476 00 0 00 002343*		SETOM	TRSFLG			; set 'response requested' flag
  2025	002635'	402 00 0 00 002344*		SETZM	TPDFLG			; clear pad flag
  2026	002636'	476 00 0 00 002345*		SETOM	TBSDFL			; set to BSD style datagram
  2027	002637'	120 00 0 00 002346*		DMOVE	SADDR			; initialize destination address
  2028	002640'	124 00 0 00 002347*		DMOVEM	TDEST			;   to self
  2029	002641'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  2030	002642'	202 00 0 00 002351*		MOVEM	TPTTVL			; save it
  2031	002643'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  2032	002644'	201 00 0 00 000115 		MOVEI	115			; set initial data pattern
  2033	002645'	202 00 0 00 002406*		MOVEM	TPAT			;  ...
  2034	002646'	402 00 0 00 002444*		SETZM	TSTSUB			; initialize subtest number
  2035	002647'	260 17 0 00 001731'		GO	CRCINI			; initialize CRC table
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 47
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0615

  2036
  2037					; Initialize statistics
  2038
  2039	002650'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  2040	002651'	402 00 0 00 006334'		SETZM	NPAKSE			; clear sent status error count
  2041	002652'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  2042	002653'	402 00 0 00 006336'		SETZM	NPAKRE			; clear recv status error count
  2043	002654'	402 00 0 00 006337'		SETZM	NPAKRC			; clear recv CRC error count
  2044	002655'	402 00 0 00 006340'		SETZM	NPAKRD			; clear recv dt.cmp error count (pkts)
  2045	002656'	402 00 0 00 006341'		SETZM	NPAKRW			; clear recv dt.cmp error count (words)
  2046	002657'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  2047						MOVEI	[MOVE	TLNPAT		; set up packet data for text
  2048							 MOVEM	PACKET+20	;   length and data pattern
  2049							 RPUT	(1,2)
  2050							 LDB	1,[POINT 14,TLNPAT,31]
  2051							 IMULI	1,^D9
  2052							 HLRZ	TLNPAT
  2053							 ADD	1,
  2054							 SUBI	1,116
  2055							 MOVEM	1,CRCOFF
  2056							 MOVE	2,CRCTAB(1)
  2057							 MOVEM	2,CRCSAV
  2058							 RGET	(2,1)
  2059	002660'	201 00 0 00 007316'			 RTN]
  2060	002661'	202 00 0 00 002370*		MOVEM	TXADDL
  2061	002662'	402 00 0 00 002371*		SETZM	RQAFLG			; clear response queue available flag
  2062	002663'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  2063
  2064					; Increment pattern
  2065
  2066	002664'	350 01 0 00 002645*	TA14:	AOS	1,TPAT			; increment pattern
  2067	002665'	303 01 0 00 000126 		CAILE	1,126			; done yet?
  2068	002666'	254 00 0 00 002754'		JRST	TG14			; yes - check test completion
  2069	002667'	476 00 0 00 010113'		SETOM	TLEN#			; initialize length pointer
  2070
  2071					; Increment length
  2072
  2073	002670'	350 01 0 00 010113'	TB14:	AOS	1,TLEN			; increment length
  2074	002671'	301 01 0 00 000031 		CAIL	1,^D25			; done yet?
  2075	002672'	254 00 0 00 002664'		JRST	TA14			; yes - check next pattern
  2076	002673'	402 00 0 00 002402*		SETZM	TBYTE			; no - clear byte count
  2077	002674'	200 00 0 01 001700'		MOVE	T12LEN(1)		; get length
  2078	002675'	202 00 0 00 002404*		MOVEM	TWORD			; save it
  2079	002676'	137 01 0 00 007150'		DPB	1,[POINT 14,TLNPAT,31] 	; put in LEN/PAT word
  2080	002677'	200 00 0 00 002664*		MOVE	TPAT			; get data pattern
  2081	002700'	506 00 0 00 010114'		HRLM	TLNPAT			; set up LEN/PAT word
  2082	002701'	201 10 0 00 000010 		MOVEI	10,^D8			; initialize packet count
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 48
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0616

  2083	002702'	332 00 0 00 010111'		SKIPE	SDEBUG			; debug mode?
  2084						GO	[TMSGC	<** Pat >
  2085							 MOVE	TPAT
  2086							 PNTOCS
  2087							 TMSG	< Len >
  2088							 MOVE	TWORD
  2089							 PNTDEC
  2090							 TMSGD	< **>
  2091	002703'	260 17 0 00 007176'			 RTN]
  2092
  2093					; Decrement packet count (7-0)
  2094
  2095	002704'	361 10 0 00 002670'	TC14:	SOJL	10,TB14			; done yet? yes - check next length
  2096	002705'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2097
  2098					; Send a packet
  2099
  2100	002706'	037 07 0 00 000003 	TD14:	TTALTM				; altmode typed?
  2101	002707'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  2102	002710'	476 00 0 00 002420*		SETOM	ALTF			; yes - set flag
  2103	002711'	332 00 0 00 002710*		SKIPE	ALTF			; altmode flagged?
  2104	002712'	254 00 0 00 003023'		JRST	TX14			; yes - exit
  2105	002713'	336 00 0 00 002423*		SKIPN	LCHAR			; last character in here already?
  2106	002714'	202 00 0 00 002713*		MOVEM	LCHAR			; no - save 'last char typed'
  2107	002715'	260 17 0 00 002424*		GO	PSTAMP			; check for S typed
  2108	002716'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  2109	002717'	260 17 0 00 006046'		GO	MPACK			; build packet into 'PACKET'
  2110
  2111	002720'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  2112	002721'	260 17 0 00 002430*		GO	CHKINT			; get list of queue entries
  2113	002722'	255 00 0 00 000000 		JFCL				; ignore error
  2114	002723'	476 00 0 00 002432*		SETOM	PTTFQ			; reset the interlock
  2115	002724'	200 00 0 00 002445*		MOVE	NUMENT			; get entry count
  2116	002725'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  2117	002726'	254 00 0 00 002740'		JRST	TE14			; no - continue
  2118
  2119	002727'	260 17 0 00 002436*		GO	INSQUE			; insert into queue
  2120	002730'	254 00 0 00 002733'		JRST	.+3			; failed - continue
  2121	002731'	254 00 0 00 002733'		JRST	.+2			; failed - continue
  2122	002732'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  2123	002733'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  2124	002734'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  2125	002735'	350 00 0 00 002646*		AOS	TSTSUB			; increment subtest number
  2126	002736'	337 00 0 00 002724*		SKIPG	NUMENT			; was the queue empty?
  2127						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  2128							 MOVEI	1,PENABL!MPRUN
  2129							 TRZ	1,RESQAV
  2130							 TRO	1,CMDQAV
  2131							 GO	LDCSR
  2132	002737'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 49
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0617

  2133
  2134					; Check for a response
  2135
  2136	002740'	260 17 0 00 002472*	TE14:	GO	CHKRQV			; check response queue available
  2137	002741'	260 17 0 00 002473*		GO	CHKRSP			; check for RspQ entry
  2138						JRST	[SETZM	RQAFLG		; no entry found - continue
  2139							 MOVE	1,PCB+5		; get response queue FLINK
  2140							 GO	CONVIR		; convert to virtual
  2141							 CAIE	1,PCB+5		; queue really empty?
  2142							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2143							 GO	CHKDEB		; check for debug mode
  2144	002742'	254 00 0 00 007335'			 JRST	TF14]
  2145	002743'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2146	002744'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2147	002745'	260 17 0 00 006101'		GO	MCOMP			; compare packet data
  2148	002746'	254 00 0 00 002740'		JRST	TE14			; keep looking for responses
  2149
  2150					; No more responses
  2151
  2152	002747'	350 00 0 00 000006 	TF14:	AOS	6			; increment hung count
  2153	002750'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  2154						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  2155	002751'	254 00 0 00 007344'			 JRST	TG14]		;   and exit
  2156	002752'	322 07 0 00 002706'		JUMPE	7,TD14			; send current packet? yes - go do so
  2157	002753'	254 00 0 00 002704'		JRST	TC14			; no - already did - go do next packet
  2158
  2159					; Check for any stragglers
  2160
  2161	002754'	332 00 0 00 010111'	TG14:	SKIPE	SDEBUG			; debug mode?
  2162	002755'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  2163	002756'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  2164	002757'	260 17 0 00 002501*		GO	RUNTME			; get current run time
  2165	002760'	200 01 0 00 002502*		MOVE	1,DEBTIM		; get time in milliseconds
  2166	002761'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  2167	002762'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  2168	002763'	260 17 0 00 002740*	TH14:	GO	CHKRQV			; check response queue available
  2169	002764'	260 17 0 00 002741*		GO	CHKRSP			; check for RspQ entry
  2170						JRST	[SETZM	RQAFLG		; no entry found - continue
  2171							 MOVE	1,PCB+5		; get response queue FLINK
  2172							 GO	CONVIR		; convert to virtual
  2173							 CAIE	1,PCB+5		; queue really empty?
  2174							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2175							 GO	CHKDEB		; check for debug mode
  2176	002765'	254 00 0 00 007346'			 JRST	TI14]
  2177	002766'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2178	002767'	260 17 0 00 006101'		GO	MCOMP			; compare packet data
  2179	002770'	254 00 0 00 002763'		JRST	TH14			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 50
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0618

  2180
  2181					; Check timeout
  2182
  2183	002771'	400 03 0 00 000000 	TI14:	SETZ	3,			; set up for RUNTME
  2184	002772'	260 17 0 00 002757*		GO	RUNTME			; get current run time
  2185	002773'	200 01 0 00 002760*		MOVE	1,DEBTIM		; get time in milliseconds
  2186	002774'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  2187	002775'	254 00 0 00 002763'		JRST	TH14			; no - keep looping
  2188
  2189					; Done with test - now check results
  2190
  2191	002776'	332 00 0 00 010111'	TJ14:	SKIPE	SDEBUG			; debug mode?
  2192	002777'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  2193	003000'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  2194	003001'	302 00 0 00 003410 		CAIE	T14PAK			; correct number?
  2195	003002'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  2196	003003'	200 00 0 00 006333'		MOVE	NPAKS			; get packets sent
  2197	003004'	231 00 0 00 000012 		IDIVI	^D10			; get 10%
  2198	003005'	315 00 0 00 006334'		CAMGE	NPAKSE			; more status errors than 10%?
  2199	003006'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2200	003007'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
  2201	003010'	305 00 0 00 003124 		CAIGE	T14PAK*^D9/^D10		; more than 90% received?
  2202	003011'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  2203	003012'	332 00 0 00 006336'		SKIPE	NPAKRE			; any receive status errors?
  2204	003013'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2205	003014'	332 00 0 00 006340'		SKIPE	NPAKRD			; any receive dt.cmp errors?
  2206	003015'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2207	003016'	332 00 0 00 006337'		SKIPE	NPAKRC			; any CRC errors?
  2208	003017'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2209	003020'	027 00 0 00 003036'		SCOPER	MD14			; print error message
  2210	003021'	255 00 0 00 000000 		JFCL				; loop on error
  2211	003022'	254 00 0 00 003023'		JRST	TX14			; altmode exit
  2212
  2213					; Exit
  2214	
  2215	003023'	260 17 0 00 002532*	TX14:	GO	SETDSA			; disable the port
  2216	003024'	260 17 0 00 002533*		GO	ISTOP			; stop the port
  2217	003025'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 51
DFNIA3	MAC	30-Nov-83 16:40		Datagram Loopback Tests                                                            SEQ 0619

  2218
  2219					; Error messages
  2220
  2221	003026'	260000	006324'		MA14:	TXALL!CALL!LODERR
  2222	003027'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2223
  2224	003030'	160000	006561'		MB14:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  2225	003031'	260000	006276'			TXALL!CALL!PDUMP
  2226	003032'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2227
  2228	003033'	160000	006663'		MC14:	TXALL!MSG![ASCIZ /Could not enable the port/]
  2229	003034'	260000	006276'			TXALL!CALL!PDUMP
  2230	003035'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2231
  2232	003036'	160000	007017'		MD14:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  2233	003037'	260000	003042'			TXALL!CALL!MD14PN
  2234	003040'	260000	006276'			TXALL!CALL!PDUMP
  2235	003041'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  2236
  2237	003042'	037 00 0 00 007030'	MD14PN:	TMSGC	< What             Expected   Actual>
  2238	003043'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  2239	003044'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  2240	003045'	004 11 0 00 007315'		PNTDCP	9,[T14PAK]
  2241	003046'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  2242	003047'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  2243	003050'	004 11 0 00 006334'		PNTDCP	9,NPAKSE
  2244	003051'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  2245	003052'	004 11 0 00 007315'		PNTDCP	9,[T14PAK]
  2246	003053'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  2247	003054'	037 00 0 00 007065'		TMSGC	<  Status Errors         0.>
  2248	003055'	004 11 0 00 006336'		PNTDCP	9,NPAKRE
  2249	003056'	037 00 0 00 007073'		TMSGC	<  CRC Errors            0.>
  2250	003057'	004 11 0 00 006337'		PNTDCP	9,NPAKRC
  2251	003060'	037 00 0 00 007101'		TMSGC	<  DtCmp Errors (PKTS)   0.>
  2252	003061'	004 11 0 00 006340'		PNTDCP	9,NPAKRD
  2253	003062'	037 00 0 00 007107'		TMSGC	<  DtCmp Errors (WORDS)  0.>
  2254	003063'	004 11 0 00 006341'		PNTDCP	9,NPAKRW
  2255	003064'	263 17 0 00 000000 		RTN
  2256
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 52
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0620

  2257						SUBTTL	Multicast Address Tests
  2258
  2259					;#********************************************************************
  2260					;* TEST 15 - Multicast Table Test 1
  2261					;
  2262					; Description:  This test sets up the multicast table  to  enable
  2263					;		no multicast addresses.  Then a datagram is  sent
  2264					;		to  each  multicast  address in the table and the
  2265					;		results are verified.
  2266					;
  2267					; Procedure:	KL> Load microcode
  2268					;		KL> Port Clear
  2269					;		KL> Start port
  2270					;
  2271					;		KL> Build a self-directed datagram to the first
  2272					;		    multicast address and insert on command queue
  2273					;		KL> Verify that no datagram is received
  2274					;		If failed - print error message and exit test
  2275					;
  2276					;		Repeat 16 times, once for each possible multicast
  2277					;		address.
  2278					;
  2279					; FRU:		NIA Module
  2280					;#********************************************************************
  2281
  2282			000020		T15PAK==^D16				; number of packets to send 
  2283			000100		T15LEN==^D64				; packet length
  2284
  2285					; Initialization
  2286
  2287	003065'	201 00 0 00 000000'	TST15:	MOVEI	Z3			; get address of module start
  2288	003066'	260 17 0 00 002575*		GO	TRACE			; handle trace output
  2289	003067'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  2290	003070'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  2291	003071'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  2292	003072'	260 17 0 00 002602*		GO	IPACLR			; do a 'port clear'
  2293	003073'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  2294	003074'	260 17 0 00 002604*		GO	TFLOAD			; load operational microcode
  2295						GO	[MOVEM	TERMES		; error - save error message
  2296							 SETO	ERFLG,
  2297	003075'	260 17 0 00 006552'			 RTN]
  2298	003076'	027 00 0 00 003261'		SCOPER	MA15			; print error message
  2299	003077'	255 00 0 00 000000 		JFCL				; loop on error
  2300	003100'	254 00 0 00 003254'		JRST	TX15			; altmode exit
  2301	003101'	326 15 0 00 003254'		JUMPN	ERFLG,TX15		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 53
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0621

  2302
  2303					; Start port
  2304
  2305	003102'	201 00 0 00 003305'		MOVEI	T15SPC			; set up address of routine to
  2306	003103'	202 00 0 00 010110'		MOVEM	PSPEC			;   disable multicast addresses
  2307	003104'	260 17 0 00 006373'		GO	PIDLE			; start port
  2308	003105'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2309	003106'	402 00 0 00 010110'		SETZM	PSPEC			; clear special routine address
  2310	003107'	027 00 0 00 003263'		SCOPER	MB15			; print error message
  2311	003110'	255 00 0 00 000000 		JFCL				; loop on error
  2312	003111'	254 00 0 00 003254'		JRST	TX15			; altmode exit
  2313	003112'	326 15 0 00 003254'		JUMPN	ERFLG,TX15		; error yet? yes - abort test
  2314
  2315					; Enable the port
  2316
  2317	003113'	260 17 0 00 002620*		GO	SETENA			; ensure the port is enabled
  2318	003114'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2319	003115'	027 00 0 00 003266'		SCOPER	MC15			; print error message
  2320	003116'	255 00 0 00 000000 		JFCL				; loop on error
  2321	003117'	254 00 0 00 003254'		JRST	TX15			; altmode exit
  2322	003120'	326 15 0 00 003254'		JUMPN	ERFLG,TX15		; error yet? yes - abort test
  2323
  2324					; Set up multicast and PTT tables
  2325
  2326	003121'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  2327	003122'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  2328	003123'	255 00 0 00 000000 		JFCL				; loop on error
  2329	003124'	254 00 0 00 003254'		JRST	TX15			; altmode exit
  2330	003125'	326 15 0 00 003254'		JUMPN	ERFLG,TX15		; error yet? yes - abort test
  2331
  2332					; Initialize statistics
  2333
  2334	003126'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  2335	003127'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  2336	003130'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  2337
  2338					; Initialize packet data
  2339
  2340	003131'	402 00 0 00 002633*		SETZM	TFMFLG			; set to COMPAT mode
  2341	003132'	476 00 0 00 002634*		SETOM	TRSFLG			; set 'response requested' flag
  2342	003133'	402 00 0 00 002635*		SETZM	TPDFLG			; clear pad flag
  2343	003134'	402 00 0 00 002636*		SETZM	TBSDFL			; set to non-BSD style datagram
  2344	003135'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
  2345	003136'	202 00 0 00 002677*		MOVEM	TPAT			;   counting pattern
  2346	003137'	402 00 0 00 002673*		SETZM	TBYTE			; clear byte count
  2347	003140'	201 00 0 00 000100 		MOVEI	T15LEN			; get length
  2348	003141'	202 00 0 00 002675*		MOVEM	TWORD			; save it
  2349	003142'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  2350	003143'	202 00 0 00 002642*		MOVEM	TPTTVL			; save it
  2351	003144'	402 00 0 00 002735*		SETZM	TSTSUB			; initialize subtest number
  2352	003145'	402 00 0 00 002662*		SETZM	RQAFLG			; clear response queue available flag
  2353	003146'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 54
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0622

  2354
  2355					; Increment packet number
  2356
  2357	003147'	350 01 0 00 003144*	TA15:	AOS	1,TSTSUB		; increment subtest number
  2358	003150'	303 01 0 00 000020 		CAILE	1,T15PAK		; done yet?
  2359	003151'	254 00 0 00 003224'		JRST	TE15			; yes - check test results
  2360	003152'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2361
  2362					; Build a packet
  2363
  2364	003153'	242 01 0 00 000001 	TB15:	LSH	1,1			; get subtest # * 2
  2365	003154'	120 00 0 01 000000#		DMOVE	MTABLE-2(1)		; get multicast address
  2366	003155'	124 00 0 00 002640*		DMOVEM	TDEST			; set up destination address
  2367	003156'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  2368	003157'	260 17 0 00 000000*		GO	BPACKN			; set up packet data (no CRC)
  2369
  2370					; Check misc
  2371
  2372	003160'	037 07 0 00 000003 		TTALTM				; altmode typed?
  2373	003161'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  2374	003162'	476 00 0 00 002711*		SETOM	ALTF			; yes - set flag
  2375	003163'	332 00 0 00 003162*		SKIPE	ALTF			; altmode flagged?
  2376	003164'	254 00 0 00 003254'		JRST	TX15			; yes - exit
  2377	003165'	336 00 0 00 002714*		SKIPN	LCHAR			; last character in here already?
  2378	003166'	202 00 0 00 003165*		MOVEM	LCHAR			; no - save 'last char typed'
  2379	003167'	260 17 0 00 002715*		GO	PSTAMP			; check for S typed
  2380
  2381					; Send packet
  2382
  2383	003170'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  2384	003171'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  2385	003172'	260 17 0 00 002721*		GO	CHKINT			; get list of queue entries
  2386	003173'	255 00 0 00 000000 		JFCL				; ignore error
  2387	003174'	476 00 0 00 002723*		SETOM	PTTFQ			; reset the interlock
  2388	003175'	200 00 0 00 002736*		MOVE	NUMENT			; get entry count
  2389	003176'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  2390	003177'	254 00 0 00 003210'		JRST	TC15			; no - continue
  2391
  2392	003200'	260 17 0 00 002727*		GO	INSQUE			; insert into queue
  2393	003201'	254 00 0 00 003204'		JRST	.+3			; failed - continue
  2394	003202'	254 00 0 00 003204'		JRST	.+2			; failed - continue
  2395	003203'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  2396	003204'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  2397	003205'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  2398	003206'	337 00 0 00 003175*		SKIPG	NUMENT			; was the queue empty?
  2399						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  2400							 MOVEI	1,PENABL!MPRUN
  2401							 TRZ	1,RESQAV
  2402							 TRO	1,CMDQAV
  2403							 GO	LDCSR
  2404	003207'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 55
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0623

  2405
  2406					; Check for a response
  2407
  2408	003210'	260 17 0 00 002763*	TC15:	GO	CHKRQV			; check response queue available
  2409	003211'	260 17 0 00 002764*		GO	CHKRSP			; check for RspQ entry
  2410						JRST	[SETZM	RQAFLG		; no entry found - continue
  2411							 MOVE	1,PCB+5		; get response queue FLINK
  2412							 GO	CONVIR		; convert to virtual
  2413							 CAIE	1,PCB+5		; queue really empty?
  2414							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2415	003212'	254 00 0 00 007355'			 JRST	TD15]
  2416	003213'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2417	003214'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2418	003215'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  2419	003216'	254 00 0 00 003210'		JRST	TC15			; keep looking for responses
  2420
  2421					; No more responses
  2422
  2423	003217'	350 00 0 00 000006 	TD15:	AOS	6			; increment hung count
  2424	003220'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  2425						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  2426	003221'	254 00 0 00 007363'			 JRST	TE15]		;   and exit
  2427	003222'	322 07 0 00 003153'		JUMPE	7,TB15			; send current packet? yes - go do so
  2428	003223'	254 00 0 00 003147'		JRST	TA15			; no - already did - go do next packet
  2429
  2430					; Check for any stragglers
  2431
  2432	003224'	400 03 0 00 000000 	TE15:	SETZ	3,			; set up for RUNTME
  2433	003225'	260 17 0 00 002772*		GO	RUNTME			; get current run time
  2434	003226'	200 01 0 00 002773*		MOVE	1,DEBTIM		; get time in milliseconds
  2435	003227'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  2436	003230'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  2437	003231'	260 17 0 00 003210*	TF15:	GO	CHKRQV			; check response queue available
  2438	003232'	260 17 0 00 003211*		GO	CHKRSP			; check for RspQ entry
  2439						JRST	[SETZM	RQAFLG		; no entry found - continue
  2440							 MOVE	1,PCB+5		; get response queue FLINK
  2441							 GO	CONVIR		; convert to virtual
  2442							 CAIE	1,PCB+5		; queue really empty?
  2443							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2444	003233'	254 00 0 00 007365'			 JRST	TG15]
  2445	003234'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2446	003235'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  2447	003236'	254 00 0 00 003231'		JRST	TF15			; keep looking for responses
  2448	003237'	400 03 0 00 000000 	TG15:	SETZ	3,			; set up for RUNTME
  2449	003240'	260 17 0 00 003225*		GO	RUNTME			; get current run time
  2450	003241'	200 01 0 00 003226*		MOVE	1,DEBTIM		; get time in milliseconds
  2451	003242'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  2452	003243'	254 00 0 00 003231'		JRST	TF15			; no - keep looping
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 56
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0624

  2453
  2454					; Done with test - now check results
  2455
  2456	003244'	200 00 0 00 006333'	TH15:	MOVE	NPAKS			; get number of packets sent
  2457	003245'	302 00 0 00 000020 		CAIE	T15PAK			; correct number?
  2458	003246'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  2459	003247'	332 00 0 00 006335'		SKIPE	NPAKR			; any packets received?
  2460	003250'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2461	003251'	027 00 0 00 003271'		SCOPER	MD15			; print error message
  2462	003252'	255 00 0 00 000000 		JFCL				; loop on error
  2463	003253'	254 00 0 00 003254'		JRST	TX15			; altmode exit
  2464
  2465					; Exit
  2466	
  2467	003254'	200 00 0 00 010107'	TX15:	MOVE	NRCRC			; get receive CRC errors
  2468	003255'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  2469	003256'	260 17 0 00 003023*		GO	SETDSA			; disable the port
  2470	003257'	260 17 0 00 003024*		GO	ISTOP			; stop the port
  2471	003260'	263 17 0 00 000000 		RTN				; return
  2472
  2473					; Error messages
  2474
  2475	003261'	260000	006324'		MA15:	TXALL!CALL!LODERR
  2476	003262'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2477
  2478	003263'	160000	006561'		MB15:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  2479	003264'	260000	006276'			TXALL!CALL!PDUMP
  2480	003265'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2481
  2482	003266'	160000	006663'		MC15:	TXALL!MSG![ASCIZ /Could not enable the port/]
  2483	003267'	260000	006276'			TXALL!CALL!PDUMP
  2484	003270'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2485
  2486	003271'	160000	007017'		MD15:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  2487	003272'	260000	003275'			TXALL!CALL!MD15PN
  2488	003273'	260000	006276'			TXALL!CALL!PDUMP
  2489	003274'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  2490
  2491	003275'	037 00 0 00 007030'	MD15PN:	TMSGC	< What             Expected   Actual>
  2492	003276'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  2493	003277'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  2494	003300'	004 11 0 00 007373'		PNTDCP	9,[T15PAK]
  2495	003301'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  2496	003302'	037 00 0 00 007374'		TMSGC	<Packets Rcvd            0.>
  2497	003303'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  2498	003304'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 57
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0625

  2499
  2500					; Special routine to set up multicast address table
  2501
  2502	003305'	400 03 0 00 000000 	T15SPC:	SETZ	3,			; initialize offset
  2503	003306'	200 00 0 03 000000#		MOVE	MTABLE+1(3)		; get multicast address word
  2504	003307'	621 00 0 00 400000 		TLZ	400000			; clear enable bit
  2505	003310'	202 00 0 03 000000#		MOVEM	MTABLE+1(3)		; save it
  2506	003311'	271 03 0 00 000002 		ADDI	3,2			; point to next
  2507	003312'	307 03 0 00 000037 		CAIG	3,37			; done yet?
  2508	003313'	254 00 0 00 003306'		JRST	T15SPC+1		; no - loop till done
  2509	003314'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 58
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0626

  2510
  2511					;#********************************************************************
  2512					;* TEST 16 - Multicast Table Test 2
  2513					;
  2514					; Description:  This test sets up the multicast table  to  enable
  2515					;		one multicast address.  Then  datagrams  are sent
  2516					;		to  multicast  addresses  that are different from
  2517					;		one that is enabled by one bit.  The results  are
  2518					;		then verified.
  2519					;
  2520					; Procedure:	KL> Load microcode
  2521					;		KL> Port Clear
  2522					;		KL> Start port
  2523					;
  2524					;		KL> Build a self-directed datagram to the first
  2525					;		    multicast address and insert on command queue
  2526					;		KL> Verify that no datagram is received
  2527					;		If failed - print error message and exit test
  2528					;
  2529					;		Repeat 47 times, once for each possible multicast
  2530					;		address.
  2531					;
  2532					; FRU:		NIA Module
  2533					;#********************************************************************
  2534
  2535			000057		T16PAK==^D47				; number of packets to send 
  2536			000100		T16LEN==^D64				; packet length
  2537
  2538					; Initialization
  2539
  2540	003315'	201 00 0 00 000000'	TST16:	MOVEI	Z3			; get address of module start
  2541	003316'	260 17 0 00 003066*		GO	TRACE			; handle trace output
  2542	003317'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  2543	003320'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  2544	003321'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  2545	003322'	260 17 0 00 003072*		GO	IPACLR			; do a 'port clear'
  2546	003323'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  2547	003324'	260 17 0 00 003074*		GO	TFLOAD			; load operational microcode
  2548						GO	[MOVEM	TERMES		; error - save error message
  2549							 SETO	ERFLG,
  2550	003325'	260 17 0 00 006552'			 RTN]
  2551	003326'	027 00 0 00 003516'		SCOPER	MA16			; print error message
  2552	003327'	255 00 0 00 000000 		JFCL				; loop on error
  2553	003330'	254 00 0 00 003511'		JRST	TX16			; altmode exit
  2554	003331'	326 15 0 00 003511'		JUMPN	ERFLG,TX16		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 59
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0627

  2555
  2556					; Start port
  2557
  2558	003332'	201 00 0 00 003542'		MOVEI	T16SPC			; set up address of routine to
  2559	003333'	202 00 0 00 010110'		MOVEM	PSPEC			;   disable multicast addresses
  2560	003334'	260 17 0 00 006373'		GO	PIDLE			; start port
  2561	003335'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2562	003336'	402 00 0 00 010110'		SETZM	PSPEC			; clear special routine address
  2563	003337'	027 00 0 00 003520'		SCOPER	MB16			; print error message
  2564	003340'	255 00 0 00 000000 		JFCL				; loop on error
  2565	003341'	254 00 0 00 003511'		JRST	TX16			; altmode exit
  2566	003342'	326 15 0 00 003511'		JUMPN	ERFLG,TX16		; error yet? yes - abort test
  2567
  2568					; Enable the port
  2569
  2570	003343'	260 17 0 00 003113*		GO	SETENA			; ensure the port is enabled
  2571	003344'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2572	003345'	027 00 0 00 003523'		SCOPER	MC16			; print error message
  2573	003346'	255 00 0 00 000000 		JFCL				; loop on error
  2574	003347'	254 00 0 00 003511'		JRST	TX16			; altmode exit
  2575	003350'	326 15 0 00 003511'		JUMPN	ERFLG,TX16		; error yet? yes - abort test
  2576
  2577					; Set up multicast and PTT tables
  2578
  2579	003351'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  2580	003352'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  2581	003353'	255 00 0 00 000000 		JFCL				; loop on error
  2582	003354'	254 00 0 00 003511'		JRST	TX16			; altmode exit
  2583	003355'	326 15 0 00 003511'		JUMPN	ERFLG,TX16		; error yet? yes - abort test
  2584
  2585					; Initialize statistics
  2586
  2587	003356'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  2588	003357'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  2589	003360'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  2590
  2591					; Initialize packet data
  2592
  2593	003361'	402 00 0 00 003131*		SETZM	TFMFLG			; set to COMPAT mode
  2594	003362'	476 00 0 00 003132*		SETOM	TRSFLG			; set 'response requested' flag
  2595	003363'	402 00 0 00 003133*		SETZM	TPDFLG			; clear pad flag
  2596	003364'	402 00 0 00 003134*		SETZM	TBSDFL			; set to non-BSD style datagram
  2597	003365'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  2598	003366'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
  2599	003367'	202 00 0 00 003136*		MOVEM	TPAT			;   counting pattern
  2600	003370'	402 00 0 00 003137*		SETZM	TBYTE			; clear byte count
  2601	003371'	201 00 0 00 000100 		MOVEI	T16LEN			; get length
  2602	003372'	202 00 0 00 003141*		MOVEM	TWORD			; save it
  2603	003373'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  2604	003374'	202 00 0 00 003143*		MOVEM	TPTTVL			; save it
  2605	003375'	402 00 0 00 003147*		SETZM	TSTSUB			; initialize subtest number
  2606	003376'	402 00 0 00 003145*		SETZM	RQAFLG			; clear response queue available flag
  2607	003377'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 60
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0628

  2608
  2609					; Increment packet number
  2610
  2611	003400'	350 01 0 00 003375*	TA16:	AOS	1,TSTSUB		; increment subtest number
  2612	003401'	303 01 0 00 000057 		CAILE	1,T16PAK		; done yet?
  2613	003402'	254 00 0 00 003461'		JRST	TE16			; yes - check test results
  2614	003403'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2615
  2616					; Build a packet
  2617
  2618	003404'	120 02 0 00 000000*	TB16:	DMOVE	2,MCAT17		; get multicast address
  2619	003405'	307 01 0 00 000037 		CAIG	1,^D31			; first word?
  2620						GO	[MOVEI	20		; yes - get a one bit
  2621							 LSH	(1)		; position correctly
  2622							 XOR	2,		; XOR the bit
  2623	003406'	260 17 0 00 007402'			 RTN]
  2624	003407'	303 01 0 00 000037 		CAILE	1,^D31			; 2nd word?
  2625						GO	[MOVEI	10		; yes - get a one bit
  2626							 SUBI	1,^D31		; calc amount to shift
  2627							 LSH	(1)		; position correctly
  2628							 XOR	3,		; XOR the bit
  2629	003410'	260 17 0 00 007406'			 RTN]
  2630	003411'	621 03 0 00 400000 		TLZ	3,400000		; get rid of enable bit
  2631	003412'	124 02 0 00 003155*		DMOVEM	2,TDEST			; set up destination address
  2632	003413'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  2633	003414'	260 17 0 00 003157*		GO	BPACKN			; set up packet data (no CRC)
  2634
  2635					; Check misc
  2636
  2637	003415'	037 07 0 00 000003 		TTALTM				; altmode typed?
  2638	003416'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  2639	003417'	476 00 0 00 003163*		SETOM	ALTF			; yes - set flag
  2640	003420'	332 00 0 00 003417*		SKIPE	ALTF			; altmode flagged?
  2641	003421'	254 00 0 00 003511'		JRST	TX16			; yes - exit
  2642	003422'	336 00 0 00 003166*		SKIPN	LCHAR			; last character in here already?
  2643	003423'	202 00 0 00 003422*		MOVEM	LCHAR			; no - save 'last char typed'
  2644	003424'	260 17 0 00 003167*		GO	PSTAMP			; check for S typed
  2645
  2646					; Send packet
  2647
  2648	003425'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  2649	003426'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  2650	003427'	260 17 0 00 003172*		GO	CHKINT			; get list of queue entries
  2651	003430'	255 00 0 00 000000 		JFCL				; ignore error
  2652	003431'	476 00 0 00 003174*		SETOM	PTTFQ			; reset the interlock
  2653	003432'	200 00 0 00 003206*		MOVE	NUMENT			; get entry count
  2654	003433'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  2655	003434'	254 00 0 00 003445'		JRST	TC16			; no - continue
  2656
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 61
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0629

  2657	003435'	260 17 0 00 003200*		GO	INSQUE			; insert into queue
  2658	003436'	254 00 0 00 003441'		JRST	.+3			; failed - continue
  2659	003437'	254 00 0 00 003441'		JRST	.+2			; failed - continue
  2660	003440'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  2661	003441'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  2662	003442'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  2663	003443'	337 00 0 00 003432*		SKIPG	NUMENT			; was the queue empty?
  2664						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  2665							 MOVEI	1,PENABL!MPRUN
  2666							 TRZ	1,RESQAV
  2667							 TRO	1,CMDQAV
  2668							 GO	LDCSR
  2669	003444'	260 17 0 00 006771'			 RTN]
  2670
  2671					; Check for a response
  2672
  2673	003445'	260 17 0 00 003231*	TC16:	GO	CHKRQV			; check response queue available
  2674	003446'	260 17 0 00 003232*		GO	CHKRSP			; check for RspQ entry
  2675						JRST	[SETZM	RQAFLG		; no entry found - continue
  2676							 MOVE	1,PCB+5		; get response queue FLINK
  2677							 GO	CONVIR		; convert to virtual
  2678							 CAIE	1,PCB+5		; queue really empty?
  2679							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2680	003447'	254 00 0 00 007413'			 JRST	TD16]
  2681	003450'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2682	003451'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2683	003452'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  2684	003453'	254 00 0 00 003445'		JRST	TC16			; keep looking for responses
  2685
  2686					; No more responses
  2687
  2688	003454'	350 00 0 00 000006 	TD16:	AOS	6			; increment hung count
  2689	003455'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  2690						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  2691	003456'	254 00 0 00 007421'			 JRST	TE16]		;   and exit
  2692	003457'	322 07 0 00 003404'		JUMPE	7,TB16			; send current packet? yes - go do so
  2693	003460'	254 00 0 00 003400'		JRST	TA16			; no - already did - go do next packet
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 62
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0630

  2694
  2695					; Check for any stragglers
  2696
  2697	003461'	400 03 0 00 000000 	TE16:	SETZ	3,			; set up for RUNTME
  2698	003462'	260 17 0 00 003240*		GO	RUNTME			; get current run time
  2699	003463'	200 01 0 00 003241*		MOVE	1,DEBTIM		; get time in milliseconds
  2700	003464'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  2701	003465'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  2702	003466'	260 17 0 00 003445*	TF16:	GO	CHKRQV			; check response queue available
  2703	003467'	260 17 0 00 003446*		GO	CHKRSP			; check for RspQ entry
  2704						JRST	[SETZM	RQAFLG		; no entry found - continue
  2705							 MOVE	1,PCB+5		; get response queue FLINK
  2706							 GO	CONVIR		; convert to virtual
  2707							 CAIE	1,PCB+5		; queue really empty?
  2708							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2709	003470'	254 00 0 00 007423'			 JRST	TG16]
  2710	003471'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2711	003472'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  2712	003473'	254 00 0 00 003466'		JRST	TF16			; keep looking for responses
  2713	003474'	400 03 0 00 000000 	TG16:	SETZ	3,			; set up for RUNTME
  2714	003475'	260 17 0 00 003462*		GO	RUNTME			; get current run time
  2715	003476'	200 01 0 00 003463*		MOVE	1,DEBTIM		; get time in milliseconds
  2716	003477'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  2717	003500'	254 00 0 00 003466'		JRST	TF16			; no - keep looping
  2718
  2719					; Done with test - now check results
  2720
  2721	003501'	200 00 0 00 006333'	TH16:	MOVE	NPAKS			; get number of packets sent
  2722	003502'	302 00 0 00 000057 		CAIE	T16PAK			; correct number?
  2723	003503'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  2724	003504'	332 00 0 00 006335'		SKIPE	NPAKR			; any packets received?
  2725	003505'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2726	003506'	027 00 0 00 003526'		SCOPER	MD16			; print error message
  2727	003507'	255 00 0 00 000000 		JFCL				; loop on error
  2728	003510'	254 00 0 00 003511'		JRST	TX16			; altmode exit
  2729
  2730					; Exit
  2731	
  2732	003511'	200 00 0 00 010107'	TX16:	MOVE	NRCRC			; get receive CRC errors
  2733	003512'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  2734	003513'	260 17 0 00 003256*		GO	SETDSA			; disable the port
  2735	003514'	260 17 0 00 003257*		GO	ISTOP			; stop the port
  2736	003515'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 63
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0631

  2737
  2738					; Error messages
  2739
  2740	003516'	260000	006324'		MA16:	TXALL!CALL!LODERR
  2741	003517'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2742
  2743	003520'	160000	006561'		MB16:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  2744	003521'	260000	006276'			TXALL!CALL!PDUMP
  2745	003522'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2746
  2747	003523'	160000	006663'		MC16:	TXALL!MSG![ASCIZ /Could not enable the port/]
  2748	003524'	260000	006276'			TXALL!CALL!PDUMP
  2749	003525'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  2750
  2751	003526'	160000	007017'		MD16:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  2752	003527'	260000	003532'			TXALL!CALL!MD16PN
  2753	003530'	260000	006276'			TXALL!CALL!PDUMP
  2754	003531'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  2755
  2756	003532'	037 00 0 00 007030'	MD16PN:	TMSGC	< What             Expected   Actual>
  2757	003533'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  2758	003534'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  2759	003535'	004 11 0 00 007431'		PNTDCP	9,[T16PAK]
  2760	003536'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  2761	003537'	037 00 0 00 007374'		TMSGC	<Packets Rcvd            0.>
  2762	003540'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  2763	003541'	263 17 0 00 000000 		RTN
  2764
  2765					; Special routine to set up multicast address table to disable all but
  2766					; the last address
  2767
  2768	003542'	400 03 0 00 000000 	T16SPC:	SETZ	3,			; initialize offset
  2769	003543'	200 00 0 03 000000#		MOVE	MTABLE+1(3)		; get multicast address word
  2770	003544'	621 00 0 00 400000 		TLZ	400000			; clear enable bit
  2771	003545'	202 00 0 03 000000#		MOVEM	MTABLE+1(3)		; save it
  2772	003546'	271 03 0 00 000002 		ADDI	3,2			; point to next
  2773	003547'	307 03 0 00 000035 		CAIG	3,35			; done yet?
  2774	003550'	254 00 0 00 003543'		JRST	T16SPC+1		; no - loop till done
  2775	003551'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 64
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0632

  2776
  2777					;#********************************************************************
  2778					;* TEST 17 - Multicast Table Test 3
  2779					;
  2780					; Description:  This test sets up the multicast table  to  enable
  2781					;		all multicast addresses.  Then datagrams are sent
  2782					;		to  multicast  addresses in  the  table  and  the
  2783					;		results are verified.
  2784					;
  2785					; Procedure:	KL> Load microcode
  2786					;		KL> Port Clear
  2787					;		KL> Start port
  2788					;
  2789					;		KL> Build a self-directed datagram, insert on command
  2790					;		    queue, and wait for a response
  2791					;		KL> Verify proper response
  2792					;		KL> Verify data portion of packet received properly
  2793					;		If failed - print error message and exit test
  2794					;
  2795					;		Do for data pattern 122 and 10 packets of each type
  2796					;
  2797					; FRU:		NIA Module
  2798					;#********************************************************************
  2799
  2800			000240		T17PAK==^D16*^D10			; number of packets to send
  2801
  2802					; Initialization
  2803
  2804	003552'	201 00 0 00 000000'	TST17:	MOVEI	Z3			; get address of module start
  2805	003553'	260 17 0 00 003316*		GO	TRACE			; handle trace output
  2806	003554'	402 00 0 00 010111'		SETZM	SDEBUG			; clear debug flag
  2807	003555'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  2808	003556'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  2809	003557'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  2810	003560'	260 17 0 00 003322*		GO	IPACLR			; do a 'port clear'
  2811	003561'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  2812	003562'	260 17 0 00 003324*		GO	TFLOAD			; load operational microcode
  2813						GO	[MOVEM	TERMES		; error - save error message
  2814							 SETO	ERFLG,
  2815	003563'	260 17 0 00 006552'			 RTN]
  2816	003564'	027 00 0 00 003760'		SCOPER	MA17			; print error message
  2817	003565'	255 00 0 00 000000 		JFCL				; loop on error
  2818	003566'	254 00 0 00 003753'		JRST	TX17			; altmode exit
  2819	003567'	326 15 0 00 003753'		JUMPN	ERFLG,TX17		; error yet? yes - abort test
  2820
  2821					; Start port
  2822
  2823	003570'	260 17 0 00 002612*		GO	TIDLE			; start port
  2824	003571'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2825	003572'	027 00 0 00 003762'		SCOPER	MB17			; print error message
  2826	003573'	255 00 0 00 000000 		JFCL				; loop on error
  2827	003574'	254 00 0 00 003753'		JRST	TX17			; altmode exit
  2828	003575'	326 15 0 00 003753'		JUMPN	ERFLG,TX17		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 65
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0633

  2829
  2830					; Enable the port
  2831
  2832	003576'	260 17 0 00 003343*		GO	SETENA			; ensure the port is enabled
  2833	003577'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  2834	003600'	027 00 0 00 003765'		SCOPER	MC17			; print error message
  2835	003601'	255 00 0 00 000000 		JFCL				; loop on error
  2836	003602'	254 00 0 00 003753'		JRST	TX17			; altmode exit
  2837	003603'	326 15 0 00 003753'		JUMPN	ERFLG,TX17		; error yet? yes - abort test
  2838
  2839					; Set up multicast and PTT tables
  2840
  2841	003604'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  2842	003605'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  2843	003606'	255 00 0 00 000000 		JFCL				; loop on error
  2844	003607'	254 00 0 00 003753'		JRST	TX17			; altmode exit
  2845	003610'	326 15 0 00 003753'		JUMPN	ERFLG,TX17		; error yet? yes - abort test
  2846
  2847					; Initialize packet data
  2848
  2849	003611'	402 00 0 00 003361*		SETZM	TFMFLG			; set to COMPAT mode
  2850	003612'	476 00 0 00 003362*		SETOM	TRSFLG			; set 'response requested' flag
  2851	003613'	402 00 0 00 003363*		SETZM	TPDFLG			; clear pad flag
  2852	003614'	402 00 0 00 003364*		SETZM	TBSDFL			; set to non-BSD style datagram
  2853	003615'	402 00 0 00 003370*		SETZM	TBYTE			; clear byte count
  2854	003616'	201 00 0 00 000100 		MOVEI	^D64			; get length
  2855	003617'	202 00 0 00 003372*		MOVEM	TWORD			; save it
  2856	003620'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  2857	003621'	202 00 0 00 003374*		MOVEM	TPTTVL			; save it
  2858	003622'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  2859	003623'	201 00 0 00 000122 		MOVEI	122			; set data pattern
  2860	003624'	202 00 0 00 003367*		MOVEM	TPAT			;  ...
  2861	003625'	402 00 0 00 003400*		SETZM	TSTSUB			; initialize subtest number
  2862	003626'	260 17 0 00 001731'		GO	CRCINI			; initialize CRC table
  2863
  2864					; Initialize statistics
  2865
  2866	003627'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  2867	003630'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  2868	003631'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  2869	003632'	402 00 0 00 003376*		SETZM	RQAFLG			; clear response queue available flag
  2870	003633'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  2871	003634'	402 00 0 00 010103'		SETZM	MCOFF#			; clear 'multicast offset'
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 66
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0634

  2872
  2873					; Select next multicast address
  2874
  2875	003635'	350 01 0 00 010103'	TA17:	AOS	1,MCOFF			; point to next table entry
  2876	003636'	350 01 0 00 010103'		AOS	1,MCOFF			;  ...
  2877	003637'	303 01 0 00 000040 		CAILE	1,^D32			; done yet?
  2878	003640'	254 00 0 00 003716'		JRST	TF17			; yes - exit
  2879	003641'	120 00 0 01 000000#		DMOVE	MTABLE-2(1)		; get multicast address
  2880	003642'	621 01 0 00 400000 		TLZ	1,400000		; clear enable bit
  2881	003643'	124 00 0 00 003412*		DMOVEM	TDEST			; set up destination address
  2882	003644'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  2883	003645'	260 17 0 00 003414*		GO	BPACKN			; set up packet data (no CRC)
  2884	003646'	201 10 0 00 000012 		MOVEI	10,^D10			; initialize packet count
  2885
  2886					; Decrement packet count (9-0)
  2887
  2888	003647'	361 10 0 00 003635'	TB17:	SOJL	10,TA17			; done yet? yes - check next mc addr
  2889	003650'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2890
  2891					; Send a packet
  2892
  2893	003651'	037 07 0 00 000003 	TC17:	TTALTM				; altmode typed?
  2894	003652'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  2895	003653'	476 00 0 00 003420*		SETOM	ALTF			; yes - set flag
  2896	003654'	332 00 0 00 003653*		SKIPE	ALTF			; altmode flagged?
  2897	003655'	254 00 0 00 003753'		JRST	TX17			; yes - exit
  2898	003656'	336 00 0 00 003423*		SKIPN	LCHAR			; last character in here already?
  2899	003657'	202 00 0 00 003656*		MOVEM	LCHAR			; no - save 'last char typed'
  2900	003660'	260 17 0 00 003424*		GO	PSTAMP			; check for S typed
  2901	003661'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  2902
  2903	003662'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  2904	003663'	260 17 0 00 003427*		GO	CHKINT			; get list of queue entries
  2905	003664'	255 00 0 00 000000 		JFCL				; ignore error
  2906	003665'	476 00 0 00 003431*		SETOM	PTTFQ			; reset the interlock
  2907	003666'	200 00 0 00 003443*		MOVE	NUMENT			; get entry count
  2908	003667'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  2909	003670'	254 00 0 00 003702'		JRST	TD17			; no - continue
  2910
  2911	003671'	260 17 0 00 003435*		GO	INSQUE			; insert into queue
  2912	003672'	254 00 0 00 003675'		JRST	.+3			; failed - continue
  2913	003673'	254 00 0 00 003675'		JRST	.+2			; failed - continue
  2914	003674'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  2915	003675'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  2916	003676'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  2917	003677'	350 00 0 00 003625*		AOS	TSTSUB			; increment subtest number
  2918	003700'	337 00 0 00 003666*		SKIPG	NUMENT			; was the queue empty?
  2919						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  2920							 MOVEI	1,PENABL!MPRUN
  2921							 TRZ	1,RESQAV
  2922							 TRO	1,CMDQAV
  2923							 GO	LDCSR
  2924	003701'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 67
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0635

  2925
  2926					; Check for a response
  2927
  2928	003702'	260 17 0 00 003466*	TD17:	GO	CHKRQV			; check response queue available
  2929	003703'	260 17 0 00 003467*		GO	CHKRSP			; check for RspQ entry
  2930						JRST	[SETZM	RQAFLG		; no entry found - continue
  2931							 MOVE	1,PCB+5		; get response queue FLINK
  2932							 GO	CONVIR		; convert to virtual
  2933							 CAIE	1,PCB+5		; queue really empty?
  2934							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2935							 GO	CHKDEB		; check for debug mode
  2936	003704'	254 00 0 00 007432'			 JRST	TE17]
  2937	003705'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  2938	003706'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2939	003707'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  2940	003710'	254 00 0 00 003702'		JRST	TD17			; keep looking for responses
  2941
  2942					; No more responses
  2943
  2944	003711'	350 00 0 00 000006 	TE17:	AOS	6			; increment hung count
  2945	003712'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  2946						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  2947	003713'	254 00 0 00 007441'			 JRST	TF17]		;   and exit
  2948	003714'	322 07 0 00 003702'		JUMPE	7,TD17			; send current packet? yes - go do so
  2949	003715'	254 00 0 00 003647'		JRST	TB17			; no - already did - go do next packet
  2950
  2951					; Check for any stragglers
  2952
  2953	003716'	332 00 0 00 010111'	TF17:	SKIPE	SDEBUG			; debug mode?
  2954	003717'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  2955	003720'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  2956	003721'	260 17 0 00 003475*		GO	RUNTME			; get current run time
  2957	003722'	200 01 0 00 003476*		MOVE	1,DEBTIM		; get time in milliseconds
  2958	003723'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  2959	003724'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  2960	003725'	260 17 0 00 003702*	TG17:	GO	CHKRQV			; check response queue available
  2961	003726'	260 17 0 00 003703*		GO	CHKRSP			; check for RspQ entry
  2962						JRST	[SETZM	RQAFLG		; no entry found - continue
  2963							 MOVE	1,PCB+5		; get response queue FLINK
  2964							 GO	CONVIR		; convert to virtual
  2965							 CAIE	1,PCB+5		; queue really empty?
  2966							 SETOM	RQAFLG		; no - set rsp queue avail flag
  2967							 GO	CHKDEB		; check for debug mode
  2968	003727'	254 00 0 00 007443'			 JRST	TH17]
  2969	003730'	260 17 0 00 006166'		GO	MCHECK			; determine results
  2970	003731'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  2971	003732'	254 00 0 00 003725'		JRST	TG17			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 68
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0636

  2972
  2973					; Check timeout
  2974
  2975	003733'	400 03 0 00 000000 	TH17:	SETZ	3,			; set up for RUNTME
  2976	003734'	260 17 0 00 003721*		GO	RUNTME			; get current run time
  2977	003735'	200 01 0 00 003722*		MOVE	1,DEBTIM		; get time in milliseconds
  2978	003736'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  2979	003737'	254 00 0 00 003725'		JRST	TG17			; no - keep looping
  2980
  2981					; Done with test - now check results
  2982
  2983	003740'	332 00 0 00 010111'	TI17:	SKIPE	SDEBUG			; debug mode?
  2984	003741'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  2985	003742'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  2986	003743'	302 00 0 00 000240 		CAIE	T17PAK			; correct number?
  2987	003744'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  2988	003745'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
  2989	003746'	305 00 0 00 000220 		CAIGE	T17PAK*^D9/^D10		; more than 90% received?
  2990	003747'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  2991	003750'	027 00 0 00 003770'		SCOPER	MD17			; print error message
  2992	003751'	255 00 0 00 000000 		JFCL				; loop on error
  2993	003752'	254 00 0 00 003753'		JRST	TX17			; altmode exit
  2994
  2995					; Exit
  2996	
  2997	003753'	200 00 0 00 010107'	TX17:	MOVE	NRCRC			; get receive CRC errors
  2998	003754'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  2999	003755'	260 17 0 00 003513*		GO	SETDSA			; disable the port
  3000	003756'	260 17 0 00 003514*		GO	ISTOP			; stop the port
  3001	003757'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 69
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0637

  3002
  3003					; Error messages
  3004
  3005	003760'	260000	006324'		MA17:	TXALL!CALL!LODERR
  3006	003761'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3007
  3008	003762'	160000	006561'		MB17:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  3009	003763'	260000	006276'			TXALL!CALL!PDUMP
  3010	003764'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3011
  3012	003765'	160000	006663'		MC17:	TXALL!MSG![ASCIZ /Could not enable the port/]
  3013	003766'	260000	006276'			TXALL!CALL!PDUMP
  3014	003767'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3015
  3016	003770'	160000	007017'		MD17:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  3017	003771'	260000	003774'			TXALL!CALL!MD17PN
  3018	003772'	260000	006276'			TXALL!CALL!PDUMP
  3019	003773'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  3020
  3021	003774'	037 00 0 00 007030'	MD17PN:	TMSGC	< What             Expected   Actual>
  3022	003775'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  3023	003776'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  3024	003777'	004 11 0 00 007452'		PNTDCP	9,[T17PAK]
  3025	004000'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  3026	004001'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  3027	004002'	004 11 0 00 007452'		PNTDCP	9,[T17PAK]
  3028	004003'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  3029	004004'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 70
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0638

  3030
  3031					;#********************************************************************
  3032					;* TEST 20 - Broadcast Test
  3033					;
  3034					; Description:  This test sets up the multicast table  to disable
  3035					;		all multicast addresses.  The protocol type table
  3036					;		is  set  up  to disable all protocol types.  Then
  3037					;		datagrams  are  sent to a multicast address of -1
  3038					;		(broadcast) and the  results  are  verified (they
  3039					;		should be received.
  3040					;
  3041					; Procedure:	KL> Load microcode
  3042					;		KL> Port Clear
  3043					;		KL> Start port
  3044					;
  3045					;		KL> Build a self-directed datagram, insert on command
  3046					;		    queue, and wait for a response
  3047					;		KL> Verify proper response
  3048					;		KL> Verify data portion of packet received properly
  3049					;		If failed - print error message and exit test
  3050					;
  3051					;		Do for data pattern 122 and 200 packets.
  3052					;
  3053					; FRU:		NIA Module
  3054					;#********************************************************************
  3055
  3056			000310		T20PAK==^D200				; number of packets to send
  3057
  3058					; Initialization
  3059
  3060	004005'	201 00 0 00 000000'	TST20:	MOVEI	Z3			; get address of module start
  3061	004006'	260 17 0 00 003553*		GO	TRACE			; handle trace output
  3062	004007'	402 00 0 00 010111'		SETZM	SDEBUG			; clear debug flag
  3063	004010'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  3064	004011'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  3065	004012'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  3066	004013'	260 17 0 00 003560*		GO	IPACLR			; do a 'port clear'
  3067	004014'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  3068	004015'	260 17 0 00 003562*		GO	TFLOAD			; load operational microcode
  3069						GO	[MOVEM	TERMES		; error - save error message
  3070							 SETO	ERFLG,
  3071	004016'	260 17 0 00 006552'			 RTN]
  3072	004017'	027 00 0 00 004206'		SCOPER	MA20			; print error message
  3073	004020'	255 00 0 00 000000 		JFCL				; loop on error
  3074	004021'	254 00 0 00 004201'		JRST	TX20			; altmode exit
  3075	004022'	326 15 0 00 004201'		JUMPN	ERFLG,TX20		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 71
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0639

  3076
  3077					; Start port
  3078
  3079	004023'	201 00 0 00 004233'		MOVEI	T20SPC			; set up address of routine to
  3080	004024'	202 00 0 00 010110'		MOVEM	PSPEC			;   disable multicast addresses
  3081	004025'	260 17 0 00 006373'		GO	PIDLE			; start port
  3082	004026'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3083	004027'	402 00 0 00 010110'		SETZM	PSPEC			; clear special routine address
  3084	004030'	027 00 0 00 004210'		SCOPER	MB20			; print error message
  3085	004031'	255 00 0 00 000000 		JFCL				; loop on error
  3086	004032'	254 00 0 00 004201'		JRST	TX20			; altmode exit
  3087	004033'	326 15 0 00 004201'		JUMPN	ERFLG,TX20		; error yet? yes - abort test
  3088
  3089					; Enable the port
  3090
  3091	004034'	260 17 0 00 003576*		GO	SETENA			; ensure the port is enabled
  3092	004035'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3093	004036'	027 00 0 00 004213'		SCOPER	MC20			; print error message
  3094	004037'	255 00 0 00 000000 		JFCL				; loop on error
  3095	004040'	254 00 0 00 004201'		JRST	TX20			; altmode exit
  3096	004041'	326 15 0 00 004201'		JUMPN	ERFLG,TX20		; error yet? yes - abort test
  3097
  3098					; Set up multicast and PTT tables
  3099
  3100	004042'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  3101	004043'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  3102	004044'	255 00 0 00 000000 		JFCL				; loop on error
  3103	004045'	254 00 0 00 004201'		JRST	TX20			; altmode exit
  3104	004046'	326 15 0 00 004201'		JUMPN	ERFLG,TX20		; error yet? yes - abort test
  3105
  3106					; Initialize packet data
  3107
  3108	004047'	402 00 0 00 003611*		SETZM	TFMFLG			; set to COMPAT mode
  3109	004050'	476 00 0 00 003612*		SETOM	TRSFLG			; set 'response requested' flag
  3110	004051'	402 00 0 00 003613*		SETZM	TPDFLG			; clear pad flag
  3111	004052'	402 00 0 00 003614*		SETZM	TBSDFL			; set to non-BSD style datagram
  3112	004053'	402 00 0 00 003615*		SETZM	TBYTE			; clear byte count
  3113	004054'	201 00 0 00 000100 		MOVEI	^D64			; get length
  3114	004055'	202 00 0 00 003617*		MOVEM	TWORD			; save it
  3115	004056'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  3116	004057'	202 00 0 00 003621*		MOVEM	TPTTVL			; save it
  3117	004060'	201 00 0 00 000122 		MOVEI	122			; set data pattern
  3118	004061'	202 00 0 00 003624*		MOVEM	TPAT			;  ...
  3119	004062'	402 00 0 00 003677*		SETZM	TSTSUB			; initialize subtest number
  3120	004063'	120 00 0 00 007453'		DMOVE	[EXP 777777777760,777777777760]
  3121	004064'	124 00 0 00 003643*		DMOVEM	TDEST			; set up destination address
  3122	004065'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3123	004066'	260 17 0 00 003645*		GO	BPACKN			; set up packet data (no CRC)
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 72
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0640

  3124
  3125					; Initialize statistics
  3126
  3127	004067'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  3128	004070'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  3129	004071'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  3130	004072'	402 00 0 00 003632*		SETZM	RQAFLG			; clear response queue available flag
  3131	004073'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  3132	004074'	201 10 0 00 000310 		MOVEI	10,^D200		; initialize packet count
  3133
  3134					; Decrement packet count (199-0)
  3135
  3136	004075'	361 10 0 00 004144'	TA20:	SOJL	10,TE20			; done yet? yes - exit
  3137	004076'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3138
  3139					; Send a packet
  3140
  3141	004077'	037 07 0 00 000003 	TB20:	TTALTM				; altmode typed?
  3142	004100'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  3143	004101'	476 00 0 00 003654*		SETOM	ALTF			; yes - set flag
  3144	004102'	332 00 0 00 004101*		SKIPE	ALTF			; altmode flagged?
  3145	004103'	254 00 0 00 004201'		JRST	TX20			; yes - exit
  3146	004104'	336 00 0 00 003657*		SKIPN	LCHAR			; last character in here already?
  3147	004105'	202 00 0 00 004104*		MOVEM	LCHAR			; no - save 'last char typed'
  3148	004106'	260 17 0 00 003660*		GO	PSTAMP			; check for S typed
  3149	004107'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  3150
  3151	004110'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  3152	004111'	260 17 0 00 003663*		GO	CHKINT			; get list of queue entries
  3153	004112'	255 00 0 00 000000 		JFCL				; ignore error
  3154	004113'	476 00 0 00 003665*		SETOM	PTTFQ			; reset the interlock
  3155	004114'	200 00 0 00 003700*		MOVE	NUMENT			; get entry count
  3156	004115'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  3157	004116'	254 00 0 00 004130'		JRST	TC20			; no - continue
  3158
  3159	004117'	260 17 0 00 003671*		GO	INSQUE			; insert into queue
  3160	004120'	254 00 0 00 004123'		JRST	.+3			; failed - continue
  3161	004121'	254 00 0 00 004123'		JRST	.+2			; failed - continue
  3162	004122'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  3163	004123'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  3164	004124'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  3165	004125'	350 00 0 00 004062*		AOS	TSTSUB			; increment subtest number
  3166	004126'	337 00 0 00 004114*		SKIPG	NUMENT			; was the queue empty?
  3167						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  3168							 MOVEI	1,PENABL!MPRUN
  3169							 TRZ	1,RESQAV
  3170							 TRO	1,CMDQAV
  3171							 GO	LDCSR
  3172	004127'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 73
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0641

  3173
  3174					; Check for a response
  3175
  3176	004130'	260 17 0 00 003725*	TC20:	GO	CHKRQV			; check response queue available
  3177	004131'	260 17 0 00 003726*		GO	CHKRSP			; check for RspQ entry
  3178						JRST	[SETZM	RQAFLG		; no entry found - continue
  3179							 MOVE	1,PCB+5		; get response queue FLINK
  3180							 GO	CONVIR		; convert to virtual
  3181							 CAIE	1,PCB+5		; queue really empty?
  3182							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3183							 GO	CHKDEB		; check for debug mode
  3184	004132'	254 00 0 00 007455'			 JRST	TD20]
  3185	004133'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3186	004134'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3187	004135'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3188	004136'	254 00 0 00 004130'		JRST	TC20			; keep looking for responses
  3189
  3190					; No more responses
  3191
  3192	004137'	350 00 0 00 000006 	TD20:	AOS	6			; increment hung count
  3193	004140'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  3194						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  3195	004141'	254 00 0 00 007464'			 JRST	TE20]		;   and exit
  3196	004142'	322 07 0 00 004130'		JUMPE	7,TC20			; send current packet? yes - go do so
  3197	004143'	254 00 0 00 004075'		JRST	TA20			; no - already did - go do next packet
  3198
  3199					; Check for any stragglers
  3200
  3201	004144'	332 00 0 00 010111'	TE20:	SKIPE	SDEBUG			; debug mode?
  3202	004145'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  3203	004146'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  3204	004147'	260 17 0 00 003734*		GO	RUNTME			; get current run time
  3205	004150'	200 01 0 00 003735*		MOVE	1,DEBTIM		; get time in milliseconds
  3206	004151'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  3207	004152'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  3208	004153'	260 17 0 00 004130*	TF20:	GO	CHKRQV			; check response queue available
  3209	004154'	260 17 0 00 004131*		GO	CHKRSP			; check for RspQ entry
  3210						JRST	[SETZM	RQAFLG		; no entry found - continue
  3211							 MOVE	1,PCB+5		; get response queue FLINK
  3212							 GO	CONVIR		; convert to virtual
  3213							 CAIE	1,PCB+5		; queue really empty?
  3214							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3215							 GO	CHKDEB		; check for debug mode
  3216	004155'	254 00 0 00 007466'			 JRST	TG20]
  3217	004156'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3218	004157'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3219	004160'	254 00 0 00 004153'		JRST	TF20			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 74
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0642

  3220
  3221					; Check timeout
  3222
  3223	004161'	400 03 0 00 000000 	TG20:	SETZ	3,			; set up for RUNTME
  3224	004162'	260 17 0 00 004147*		GO	RUNTME			; get current run time
  3225	004163'	200 01 0 00 004150*		MOVE	1,DEBTIM		; get time in milliseconds
  3226	004164'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  3227	004165'	254 00 0 00 004153'		JRST	TF20			; no - keep looping
  3228
  3229					; Done with test - now check results
  3230
  3231	004166'	332 00 0 00 010111'	TH20:	SKIPE	SDEBUG			; debug mode?
  3232	004167'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  3233	004170'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  3234	004171'	302 00 0 00 000310 		CAIE	T20PAK			; correct number?
  3235	004172'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3236	004173'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
  3237	004174'	305 00 0 00 000264 		CAIGE	T20PAK*^D9/^D10		; more than 90% received?
  3238	004175'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3239	004176'	027 00 0 00 004216'		SCOPER	MD20			; print error message
  3240	004177'	255 00 0 00 000000 		JFCL				; loop on error
  3241	004200'	254 00 0 00 004201'		JRST	TX20			; altmode exit
  3242
  3243					; Exit
  3244	
  3245	004201'	200 00 0 00 010107'	TX20:	MOVE	NRCRC			; get receive CRC errors
  3246	004202'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  3247	004203'	260 17 0 00 003755*		GO	SETDSA			; disable the port
  3248	004204'	260 17 0 00 003756*		GO	ISTOP			; stop the port
  3249	004205'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 75
DFNIA3	MAC	30-Nov-83 16:40		Multicast Address Tests                                                            SEQ 0643

  3250
  3251					; Error messages
  3252
  3253	004206'	260000	006324'		MA20:	TXALL!CALL!LODERR
  3254	004207'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3255
  3256	004210'	160000	006561'		MB20:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  3257	004211'	260000	006276'			TXALL!CALL!PDUMP
  3258	004212'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3259
  3260	004213'	160000	006663'		MC20:	TXALL!MSG![ASCIZ /Could not enable the port/]
  3261	004214'	260000	006276'			TXALL!CALL!PDUMP
  3262	004215'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3263
  3264	004216'	160000	007017'		MD20:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  3265	004217'	260000	004222'			TXALL!CALL!MD20PN
  3266	004220'	260000	006276'			TXALL!CALL!PDUMP
  3267	004221'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  3268
  3269	004222'	037 00 0 00 007030'	MD20PN:	TMSGC	< What             Expected   Actual>
  3270	004223'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  3271	004224'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  3272	004225'	004 11 0 00 007054'		PNTDCP	9,[T20PAK]
  3273	004226'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  3274	004227'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  3275	004230'	004 11 0 00 007054'		PNTDCP	9,[T20PAK]
  3276	004231'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  3277	004232'	263 17 0 00 000000 		RTN
  3278
  3279					; Special routine to set up multicast address and PTT table
  3280
  3281	004233'	400 03 0 00 000000 	T20SPC:	SETZ	3,			; initialize offset
  3282	004234'	200 00 0 03 000000#		MOVE	MTABLE+1(3)		; get multicast address word
  3283	004235'	621 00 0 00 400000 		TLZ	400000			; clear enable bit
  3284	004236'	202 00 0 03 000000#		MOVEM	MTABLE+1(3)		; save it
  3285	004237'	271 03 0 00 000002 		ADDI	3,2			; point to next
  3286	004240'	307 03 0 00 000037 		CAIG	3,37			; done yet?
  3287	004241'	254 00 0 00 004234'		JRST	T20SPC+1		; no - loop till done
  3288
  3289	004242'	400 03 0 00 000000 	T20SP0:	SETZ	3,			; initialize offset
  3290	004243'	200 00 0 03 000000*		MOVE	PTABLE(3)		; get PT table enable word
  3291	004244'	621 00 0 00 400000 		TLZ	400000			; clear enable bit
  3292	004245'	202 00 0 03 004243*		MOVEM	PTABLE(3)		; save it
  3293	004246'	271 03 0 00 000003 		ADDI	3,3			; point to next
  3294	004247'	307 03 0 00 000060 		CAIG	3,^D48			; done yet?
  3295	004250'	254 00 0 00 004243'		JRST	T20SP0+1		; no - loop till done
  3296	004251'	263 17 0 00 000000 		RTN				; return
  3297
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 76
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0644

  3298						SUBTTL	Protocol Type Tests
  3299
  3300					;#********************************************************************
  3301					;* TEST 21 - PTT Table Test 1
  3302					;
  3303					; Description:  This test  sets  up  the  protocol  type table to
  3304					;		enable no protocol types. Then a datagram is sent
  3305					;		to self specifying each of the protocol types and
  3306					;		the results  are  verified (responses  are  built
  3307					;		from the unknown protocol type free queue).
  3308					;
  3309					; Procedure:	KL> Load microcode
  3310					;		KL> Port Clear
  3311					;		KL> Start port
  3312					;
  3313					;		KL> Build a self-directed datagram to the specifying
  3314					;		    the first protocol type and insert on cmd queue
  3315					;		KL> Verify that a datagram is received
  3316					;		If failed - print error message and exit test
  3317					;
  3318					;		Repeat 16 times, one for each protocol type.
  3319					;
  3320					; FRU:		NIA Module
  3321					;#********************************************************************
  3322
  3323			000020		T21PAK==^D16				; number of packets to send 
  3324			000100		T21LEN==^D64				; packet length
  3325
  3326					; Initialization
  3327
  3328	004252'	201 00 0 00 000000'	TST21:	MOVEI	Z3			; get address of module start
  3329	004253'	260 17 0 00 004006*		GO	TRACE			; handle trace output
  3330	004254'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  3331	004255'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  3332	004256'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  3333	004257'	260 17 0 00 004013*		GO	IPACLR			; do a 'port clear'
  3334	004260'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  3335	004261'	260 17 0 00 004015*		GO	TFLOAD			; load operational microcode
  3336						GO	[MOVEM	TERMES		; error - save error message
  3337							 SETO	ERFLG,
  3338	004262'	260 17 0 00 006552'			 RTN]
  3339	004263'	027 00 0 00 004457'		SCOPER	MA21			; print error message
  3340	004264'	255 00 0 00 000000 		JFCL				; loop on error
  3341	004265'	254 00 0 00 004452'		JRST	TX21			; altmode exit
  3342	004266'	326 15 0 00 004452'		JUMPN	ERFLG,TX21		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 77
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0645

  3343
  3344					; Start port
  3345
  3346	004267'	201 00 0 00 004511'		MOVEI	T21SPC			; set up address of routine to
  3347	004270'	202 00 0 00 010110'		MOVEM	PSPEC			;   disable multicast addresses
  3348	004271'	260 17 0 00 006373'		GO	PIDLE			; start port
  3349	004272'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3350	004273'	402 00 0 00 010110'		SETZM	PSPEC			; clear special routine address
  3351	004274'	027 00 0 00 004461'		SCOPER	MB21			; print error message
  3352	004275'	255 00 0 00 000000 		JFCL				; loop on error
  3353	004276'	254 00 0 00 004452'		JRST	TX21			; altmode exit
  3354	004277'	326 15 0 00 004452'		JUMPN	ERFLG,TX21		; error yet? yes - abort test
  3355
  3356					; Enable the port
  3357
  3358	004300'	260 17 0 00 004034*		GO	SETENA			; ensure the port is enabled
  3359	004301'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3360	004302'	027 00 0 00 004464'		SCOPER	MC21			; print error message
  3361	004303'	255 00 0 00 000000 		JFCL				; loop on error
  3362	004304'	254 00 0 00 004452'		JRST	TX21			; altmode exit
  3363	004305'	326 15 0 00 004452'		JUMPN	ERFLG,TX21		; error yet? yes - abort test
  3364
  3365					; Set up multicast and PTT tables
  3366
  3367	004306'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  3368	004307'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  3369	004310'	255 00 0 00 000000 		JFCL				; loop on error
  3370	004311'	254 00 0 00 004452'		JRST	TX21			; altmode exit
  3371	004312'	326 15 0 00 004452'		JUMPN	ERFLG,TX21		; error yet? yes - abort test
  3372
  3373					; Initialize statistics
  3374
  3375	004313'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  3376	004314'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  3377	004315'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  3378	004316'	402 00 0 00 010106'		SETZM	NPAKUN#			; clear # packets on UNK free queue
  3379	004317'	402 00 0 00 010104'		SETZM	NPAKPT#			; clear # packets on PTT free queue
  3380
  3381					; Initialize packet data
  3382
  3383	004320'	402 00 0 00 004047*		SETZM	TFMFLG			; set to COMPAT mode
  3384	004321'	476 00 0 00 004050*		SETOM	TRSFLG			; set 'response requested' flag
  3385	004322'	402 00 0 00 004051*		SETZM	TPDFLG			; clear pad flag
  3386	004323'	402 00 0 00 004052*		SETZM	TBSDFL			; set to non-BSD style datagram
  3387	004324'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3388	004325'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
  3389	004326'	202 00 0 00 004061*		MOVEM	TPAT			;   counting pattern
  3390	004327'	402 00 0 00 004053*		SETZM	TBYTE			; clear byte count
  3391	004330'	201 00 0 00 000100 		MOVEI	T21LEN			; get length
  3392	004331'	202 00 0 00 004055*		MOVEM	TWORD			; save it
  3393	004332'	120 00 0 00 002637*		DMOVE	SADDR			; initialize destination address
  3394	004333'	124 00 0 00 004064*		DMOVEM	TDEST			;   to self
  3395	004334'	402 00 0 00 004125*		SETZM	TSTSUB			; initialize subtest number
  3396	004335'	402 00 0 00 004072*		SETZM	RQAFLG			; clear response queue available flag
  3397	004336'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 78
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0646

  3398
  3399					; Increment packet number
  3400
  3401	004337'	350 01 0 00 004334*	TA21:	AOS	1,TSTSUB		; increment subtest number
  3402	004340'	303 01 0 00 000020 		CAILE	1,T21PAK		; done yet?
  3403	004341'	254 00 0 00 004413'		JRST	TE21			; yes - check test results
  3404	004342'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3405
  3406					; Build a packet
  3407
  3408	004343'	202 01 0 00 004057*		MOVEM	1,TPTTVL		; save protocol type
  3409	004344'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3410	004345'	260 17 0 00 004066*		GO	BPACKN			; set up packet data (no CRC)
  3411
  3412					; Check misc
  3413
  3414	004346'	037 07 0 00 000003 	TB21:	TTALTM				; altmode typed?
  3415	004347'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  3416	004350'	476 00 0 00 004102*		SETOM	ALTF			; yes - set flag
  3417	004351'	332 00 0 00 004350*		SKIPE	ALTF			; altmode flagged?
  3418	004352'	254 00 0 00 004452'		JRST	TX21			; yes - exit
  3419	004353'	336 00 0 00 004105*		SKIPN	LCHAR			; last character in here already?
  3420	004354'	202 00 0 00 004353*		MOVEM	LCHAR			; no - save 'last char typed'
  3421	004355'	260 17 0 00 004106*		GO	PSTAMP			; check for S typed
  3422
  3423					; Send packet
  3424
  3425	004356'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  3426	004357'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  3427	004360'	260 17 0 00 004111*		GO	CHKINT			; get list of queue entries
  3428	004361'	255 00 0 00 000000 		JFCL				; ignore error
  3429	004362'	476 00 0 00 004113*		SETOM	PTTFQ			; reset the interlock
  3430	004363'	200 00 0 00 004126*		MOVE	NUMENT			; get entry count
  3431	004364'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  3432	004365'	254 00 0 00 004376'		JRST	TC21			; no - continue
  3433
  3434	004366'	260 17 0 00 004117*		GO	INSQUE			; insert into queue
  3435	004367'	254 00 0 00 004372'		JRST	.+3			; failed - continue
  3436	004370'	254 00 0 00 004372'		JRST	.+2			; failed - continue
  3437	004371'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  3438	004372'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  3439	004373'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  3440	004374'	337 00 0 00 004363*		SKIPG	NUMENT			; was the queue empty?
  3441						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  3442							 MOVEI	1,PENABL!MPRUN
  3443							 TRZ	1,RESQAV
  3444							 TRO	1,CMDQAV
  3445							 GO	LDCSR
  3446	004375'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 79
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0647

  3447
  3448					; Check for a response
  3449
  3450	004376'	260 17 0 00 004153*	TC21:	GO	CHKRQV			; check response queue available
  3451	004377'	260 17 0 00 004154*		GO	CHKRSP			; check for RspQ entry
  3452						JRST	[SETZM	RQAFLG		; no entry found - continue
  3453							 MOVE	1,PCB+5		; get response queue FLINK
  3454							 GO	CONVIR		; convert to virtual
  3455							 CAIE	1,PCB+5		; queue really empty?
  3456							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3457	004400'	254 00 0 00 007475'			 JRST	TD21]
  3458	004401'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3459	004402'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3460	004403'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3461	004404'	260 17 0 00 006420'		GO	QCHECK			; check for queue type
  3462	004405'	254 00 0 00 004376'		JRST	TC21			; keep looking for responses
  3463
  3464					; No more responses
  3465
  3466	004406'	350 00 0 00 000006 	TD21:	AOS	6			; increment hung count
  3467	004407'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  3468						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  3469	004410'	254 00 0 00 007503'			 JRST	TE21]		;   and exit
  3470	004411'	322 07 0 00 004346'		JUMPE	7,TB21			; send current packet? yes - go do so
  3471	004412'	254 00 0 00 004337'		JRST	TA21			; no - already did - go do next packet
  3472
  3473					; Check for any stragglers
  3474
  3475	004413'	400 03 0 00 000000 	TE21:	SETZ	3,			; set up for RUNTME
  3476	004414'	260 17 0 00 004162*		GO	RUNTME			; get current run time
  3477	004415'	200 01 0 00 004163*		MOVE	1,DEBTIM		; get time in milliseconds
  3478	004416'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  3479	004417'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  3480	004420'	260 17 0 00 004376*	TF21:	GO	CHKRQV			; check response queue available
  3481	004421'	260 17 0 00 004377*		GO	CHKRSP			; check for RspQ entry
  3482						JRST	[SETZM	RQAFLG		; no entry found - continue
  3483							 MOVE	1,PCB+5		; get response queue FLINK
  3484							 GO	CONVIR		; convert to virtual
  3485							 CAIE	1,PCB+5		; queue really empty?
  3486							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3487	004422'	254 00 0 00 007505'			 JRST	TG21]
  3488	004423'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3489	004424'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3490	004425'	260 17 0 00 006420'		GO	QCHECK			; check for queue type
  3491	004426'	254 00 0 00 004420'		JRST	TF21			; keep looking for responses
  3492
  3493	004427'	400 03 0 00 000000 	TG21:	SETZ	3,			; set up for RUNTME
  3494	004430'	260 17 0 00 004414*		GO	RUNTME			; get current run time
  3495	004431'	200 01 0 00 004415*		MOVE	1,DEBTIM		; get time in milliseconds
  3496	004432'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  3497	004433'	254 00 0 00 004420'		JRST	TF21			; no - keep looping
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 80
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0648

  3498
  3499					; Done with test - now check results
  3500
  3501	004434'	200 00 0 00 006333'	TH21:	MOVE	NPAKS			; get number of packets sent
  3502	004435'	302 00 0 00 000020 		CAIE	T21PAK			; correct number?
  3503	004436'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3504	004437'	200 00 0 00 006335'		MOVE	NPAKR			; get number of packets received
  3505	004440'	305 00 0 00 000014 		CAIGE	T21PAK-4		; correct number received?
  3506	004441'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3507	004442'	332 00 0 00 010104'		SKIPE	NPAKPT			; any # of packets from PTT free queue?
  3508	004443'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  3509	004444'	200 00 0 00 010106'		MOVE	NPAKUN			; get # of packets from UNK free queue?
  3510	004445'	312 00 0 00 006335'		CAME	NPAKR			; same as received?
  3511	004446'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3512	004447'	027 00 0 00 004467'		SCOPER	MD21			; print error message
  3513	004450'	255 00 0 00 000000 		JFCL				; loop on error
  3514	004451'	254 00 0 00 004452'		JRST	TX21			; altmode exit
  3515
  3516					; Exit
  3517	
  3518	004452'	200 00 0 00 010107'	TX21:	MOVE	NRCRC			; get receive CRC errors
  3519	004453'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  3520	004454'	260 17 0 00 004203*		GO	SETDSA			; disable the port
  3521	004455'	260 17 0 00 004204*		GO	ISTOP			; stop the port
  3522	004456'	263 17 0 00 000000 		RTN				; return
  3523
  3524					; Error messages
  3525
  3526	004457'	260000	006324'		MA21:	TXALL!CALL!LODERR
  3527	004460'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3528
  3529	004461'	160000	006561'		MB21:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  3530	004462'	260000	006276'			TXALL!CALL!PDUMP
  3531	004463'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3532
  3533	004464'	160000	006663'		MC21:	TXALL!MSG![ASCIZ /Could not enable the port/]
  3534	004465'	260000	006276'			TXALL!CALL!PDUMP
  3535	004466'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 81
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0649

  3536
  3537	004467'	160000	007017'		MD21:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  3538	004470'	260000	004473'			TXALL!CALL!MD21PN
  3539	004471'	260000	006276'			TXALL!CALL!PDUMP
  3540	004472'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  3541
  3542	004473'	037 00 0 00 007030'	MD21PN:	TMSGC	< What             Expected   Actual>
  3543	004474'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  3544	004475'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  3545	004476'	004 11 0 00 007373'		PNTDCP	9,[T21PAK]
  3546	004477'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  3547	004500'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  3548	004501'	004 11 0 00 007373'		PNTDCP	9,[T21PAK]
  3549	004502'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  3550	004503'	037 00 0 00 007513'		TMSGC	<  On UnkPT Free Q>
  3551	004504'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  3552	004505'	004 11 0 00 010106'		PNTDCP	9,NPAKUN
  3553	004506'	037 00 0 00 007517'		TMSGC	<  On PTT Free Q         0.>
  3554	004507'	004 11 0 00 010104'		PNTDCP	9,NPAKPT
  3555	004510'	263 17 0 00 000000 		RTN
  3556
  3557					; Special routine to set up PTT table
  3558
  3559	004511'	400 03 0 00 000000 	T21SPC:	SETZ	3,			; initialize offset
  3560	004512'	200 00 0 03 004245*		MOVE	PTABLE(3)		; get PTT enable word
  3561	004513'	621 00 0 00 400000 		TLZ	400000			; clear enable bit
  3562	004514'	202 00 0 03 004512*		MOVEM	PTABLE(3)		; save it
  3563	004515'	271 03 0 00 000003 		ADDI	3,3			; point to next
  3564	004516'	307 03 0 00 000060 		CAIG	3,^D48			; done yet?
  3565	004517'	254 00 0 00 004512'		JRST	T21SPC+1		; no - loop till done
  3566	004520'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 82
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0650

  3567
  3568					;#********************************************************************
  3569					;* TEST 22 - PTT Table Test 2
  3570					;
  3571					; Description:  This test  sets  up  the  protocol  type table to
  3572					;		enable all protocol types.   Then  datagrams  are
  3573					;		sent  to  self  specifying  other protocol types.  
  3574					;		These datagrams should be placed on  the  unknown
  3575					;		protocol type free queue.
  3576					;
  3577					; Procedure:	KL> Load microcode
  3578					;		KL> Port Clear
  3579					;		KL> Start port
  3580					;
  3581					;		KL> Build a self-directed datagram to the specifying
  3582					;		    the first protocol type and insert on cmd queue
  3583					;		KL> Verify that a datagram is received
  3584					;		If failed - print error message and exit test
  3585					;
  3586					;		Repeat 16 times, one for each protocol type.
  3587					;
  3588					; FRU:		NIA Module
  3589					;#********************************************************************
  3590
  3591			000020		T22PAK==^D16				; number of packets to send 
  3592			000100		T22LEN==^D64				; packet length
  3593
  3594					; Initialization
  3595
  3596	004521'	201 00 0 00 000000'	TST22:	MOVEI	Z3			; get address of module start
  3597	004522'	260 17 0 00 004253*		GO	TRACE			; handle trace output
  3598	004523'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  3599	004524'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  3600	004525'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  3601	004526'	260 17 0 00 004257*		GO	IPACLR			; do a 'port clear'
  3602	004527'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  3603	004530'	260 17 0 00 004261*		GO	TFLOAD			; load operational microcode
  3604						GO	[MOVEM	TERMES		; error - save error message
  3605							 SETO	ERFLG,
  3606	004531'	260 17 0 00 006552'			 RTN]
  3607	004532'	027 00 0 00 004724'		SCOPER	MA22			; print error message
  3608	004533'	255 00 0 00 000000 		JFCL				; loop on error
  3609	004534'	254 00 0 00 004717'		JRST	TX22			; altmode exit
  3610	004535'	326 15 0 00 004717'		JUMPN	ERFLG,TX22		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 83
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0651

  3611
  3612					; Start port
  3613
  3614	004536'	260 17 0 00 003570*		GO	TIDLE			; start port
  3615	004537'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3616	004540'	027 00 0 00 004726'		SCOPER	MB22			; print error message
  3617	004541'	255 00 0 00 000000 		JFCL				; loop on error
  3618	004542'	254 00 0 00 004717'		JRST	TX22			; altmode exit
  3619	004543'	326 15 0 00 004717'		JUMPN	ERFLG,TX22		; error yet? yes - abort test
  3620
  3621					; Enable the port
  3622
  3623	004544'	260 17 0 00 004300*		GO	SETENA			; ensure the port is enabled
  3624	004545'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3625	004546'	027 00 0 00 004731'		SCOPER	MC22			; print error message
  3626	004547'	255 00 0 00 000000 		JFCL				; loop on error
  3627	004550'	254 00 0 00 004717'		JRST	TX22			; altmode exit
  3628	004551'	326 15 0 00 004717'		JUMPN	ERFLG,TX22		; error yet? yes - abort test
  3629
  3630					; Set up multicast and PTT tables
  3631
  3632	004552'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  3633	004553'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  3634	004554'	255 00 0 00 000000 		JFCL				; loop on error
  3635	004555'	254 00 0 00 004717'		JRST	TX22			; altmode exit
  3636	004556'	326 15 0 00 004717'		JUMPN	ERFLG,TX22		; error yet? yes - abort test
  3637
  3638					; Initialize statistics
  3639
  3640	004557'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  3641	004560'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  3642	004561'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  3643	004562'	402 00 0 00 010106'		SETZM	NPAKUN			; clear # packets on UNK free queue
  3644	004563'	402 00 0 00 010104'		SETZM	NPAKPT			; clear # packets on PTT free queue
  3645
  3646					; Initialize packet data
  3647
  3648	004564'	402 00 0 00 004320*		SETZM	TFMFLG			; set to COMPAT mode
  3649	004565'	476 00 0 00 004321*		SETOM	TRSFLG			; set 'response requested' flag
  3650	004566'	402 00 0 00 004322*		SETZM	TPDFLG			; clear pad flag
  3651	004567'	402 00 0 00 004323*		SETZM	TBSDFL			; set to non-BSD style datagram
  3652	004570'	120 00 0 00 004332*		DMOVE	SADDR			; initialize destination address
  3653	004571'	124 00 0 00 004333*		DMOVEM	TDEST			;   to self
  3654	004572'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3655	004573'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
  3656	004574'	202 00 0 00 004326*		MOVEM	TPAT			;   counting pattern
  3657	004575'	402 00 0 00 004327*		SETZM	TBYTE			; clear byte count
  3658	004576'	201 00 0 00 000100 		MOVEI	T22LEN			; get length
  3659	004577'	202 00 0 00 004331*		MOVEM	TWORD			; save it
  3660	004600'	402 00 0 00 004337*		SETZM	TSTSUB			; initialize subtest number
  3661	004601'	402 00 0 00 004335*		SETZM	RQAFLG			; clear response queue available flag
  3662	004602'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 84
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0652

  3663
  3664					; Increment packet number
  3665
  3666	004603'	350 01 0 00 004600*	TA22:	AOS	1,TSTSUB		; increment subtest number
  3667	004604'	303 01 0 00 000020 		CAILE	1,T22PAK		; done yet?
  3668	004605'	254 00 0 00 004660'		JRST	TE22			; yes - check test results
  3669	004606'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3670
  3671					; Build a packet
  3672
  3673	004607'	431 01 0 00 000200 		XORI	1,200			; change the protocol type
  3674	004610'	202 01 0 00 004343*		MOVEM	1,TPTTVL		; save it
  3675	004611'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3676	004612'	260 17 0 00 004345*		GO	BPACKN			; set up packet data (no CRC)
  3677
  3678					; Check misc
  3679
  3680	004613'	037 07 0 00 000003 	TB22:	TTALTM				; altmode typed?
  3681	004614'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  3682	004615'	476 00 0 00 004351*		SETOM	ALTF			; yes - set flag
  3683	004616'	332 00 0 00 004615*		SKIPE	ALTF			; altmode flagged?
  3684	004617'	254 00 0 00 004717'		JRST	TX22			; yes - exit
  3685	004620'	336 00 0 00 004354*		SKIPN	LCHAR			; last character in here already?
  3686	004621'	202 00 0 00 004620*		MOVEM	LCHAR			; no - save 'last char typed'
  3687	004622'	260 17 0 00 004355*		GO	PSTAMP			; check for S typed
  3688
  3689					; Send packet
  3690
  3691	004623'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  3692	004624'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  3693	004625'	260 17 0 00 004360*		GO	CHKINT			; get list of queue entries
  3694	004626'	255 00 0 00 000000 		JFCL				; ignore error
  3695	004627'	476 00 0 00 004362*		SETOM	PTTFQ			; reset the interlock
  3696	004630'	200 00 0 00 004374*		MOVE	NUMENT			; get entry count
  3697	004631'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  3698	004632'	254 00 0 00 004643'		JRST	TC22			; no - continue
  3699
  3700	004633'	260 17 0 00 004366*		GO	INSQUE			; insert into queue
  3701	004634'	254 00 0 00 004637'		JRST	.+3			; failed - continue
  3702	004635'	254 00 0 00 004637'		JRST	.+2			; failed - continue
  3703	004636'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  3704	004637'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  3705	004640'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  3706	004641'	337 00 0 00 004630*		SKIPG	NUMENT			; was the queue empty?
  3707						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  3708							 MOVEI	1,PENABL!MPRUN
  3709							 TRZ	1,RESQAV
  3710							 TRO	1,CMDQAV
  3711							 GO	LDCSR
  3712	004642'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 85
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0653

  3713
  3714					; Check for a response
  3715
  3716	004643'	260 17 0 00 004420*	TC22:	GO	CHKRQV			; check response queue available
  3717	004644'	260 17 0 00 004421*		GO	CHKRSP			; check for RspQ entry
  3718						JRST	[SETZM	RQAFLG		; no entry found - continue
  3719							 MOVE	1,PCB+5		; get response queue FLINK
  3720							 GO	CONVIR		; convert to virtual
  3721							 CAIE	1,PCB+5		; queue really empty?
  3722							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3723	004645'	254 00 0 00 007525'			 JRST	TD22]
  3724	004646'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3725	004647'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3726	004650'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3727	004651'	260 17 0 00 006420'		GO	QCHECK			; check for queue type
  3728	004652'	254 00 0 00 004643'		JRST	TC22			; keep looking for responses
  3729
  3730					; No more responses
  3731
  3732	004653'	350 00 0 00 000006 	TD22:	AOS	6			; increment hung count
  3733	004654'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  3734						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  3735	004655'	254 00 0 00 007533'			 JRST	TE22]		;   and exit
  3736	004656'	322 07 0 00 004613'		JUMPE	7,TB22			; send current packet? yes - go do so
  3737	004657'	254 00 0 00 004603'		JRST	TA22			; no - already did - go do next packet
  3738
  3739					; Check for any stragglers
  3740
  3741	004660'	400 03 0 00 000000 	TE22:	SETZ	3,			; set up for RUNTME
  3742	004661'	260 17 0 00 004430*		GO	RUNTME			; get current run time
  3743	004662'	200 01 0 00 004431*		MOVE	1,DEBTIM		; get time in milliseconds
  3744	004663'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  3745	004664'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  3746	004665'	260 17 0 00 004643*	TF22:	GO	CHKRQV			; check response queue available
  3747	004666'	260 17 0 00 004644*		GO	CHKRSP			; check for RspQ entry
  3748						JRST	[SETZM	RQAFLG		; no entry found - continue
  3749							 MOVE	1,PCB+5		; get response queue FLINK
  3750							 GO	CONVIR		; convert to virtual
  3751							 CAIE	1,PCB+5		; queue really empty?
  3752							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3753	004667'	254 00 0 00 007535'			 JRST	TG22]
  3754	004670'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3755	004671'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3756	004672'	260 17 0 00 006420'		GO	QCHECK			; check for queue type
  3757	004673'	254 00 0 00 004665'		JRST	TF22			; keep looking for responses
  3758
  3759	004674'	400 03 0 00 000000 	TG22:	SETZ	3,			; set up for RUNTME
  3760	004675'	260 17 0 00 004661*		GO	RUNTME			; get current run time
  3761	004676'	200 01 0 00 004662*		MOVE	1,DEBTIM		; get time in milliseconds
  3762	004677'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  3763	004700'	254 00 0 00 004665'		JRST	TF22			; no - keep looping
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 86
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0654

  3764
  3765					; Done with test - now check results
  3766
  3767	004701'	200 00 0 00 006333'	TH22:	MOVE	NPAKS			; get number of packets sent
  3768	004702'	302 00 0 00 000020 		CAIE	T22PAK			; correct number?
  3769	004703'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3770	004704'	200 00 0 00 006335'		MOVE	NPAKR			; get number of packets received
  3771	004705'	305 00 0 00 000014 		CAIGE	T22PAK-4		; correct number received?
  3772	004706'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3773	004707'	332 00 0 00 010104'		SKIPE	NPAKPT			; any # of packets from PTT free queue?
  3774	004710'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  3775	004711'	200 00 0 00 010106'		MOVE	NPAKUN			; get # of packets from UNK free queue?
  3776	004712'	312 00 0 00 006335'		CAME	NPAKR			; same as received?
  3777	004713'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  3778	004714'	027 00 0 00 004734'		SCOPER	MD22			; print error message
  3779	004715'	255 00 0 00 000000 		JFCL				; loop on error
  3780	004716'	254 00 0 00 004717'		JRST	TX22			; altmode exit
  3781
  3782					; Exit
  3783	
  3784	004717'	200 00 0 00 010107'	TX22:	MOVE	NRCRC			; get receive CRC errors
  3785	004720'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  3786	004721'	260 17 0 00 004454*		GO	SETDSA			; disable the port
  3787	004722'	260 17 0 00 004455*		GO	ISTOP			; stop the port
  3788	004723'	263 17 0 00 000000 		RTN				; return
  3789
  3790					; Error messages
  3791
  3792	004724'	260000	006324'		MA22:	TXALL!CALL!LODERR
  3793	004725'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3794
  3795	004726'	160000	006561'		MB22:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  3796	004727'	260000	006276'			TXALL!CALL!PDUMP
  3797	004730'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  3798
  3799	004731'	160000	006663'		MC22:	TXALL!MSG![ASCIZ /Could not enable the port/]
  3800	004732'	260000	006276'			TXALL!CALL!PDUMP
  3801	004733'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 87
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0655

  3802
  3803	004734'	160000	007017'		MD22:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  3804	004735'	260000	004740'			TXALL!CALL!MD22PN
  3805	004736'	260000	006276'			TXALL!CALL!PDUMP
  3806	004737'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  3807
  3808	004740'	037 00 0 00 007030'	MD22PN:	TMSGC	< What             Expected   Actual>
  3809	004741'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  3810	004742'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  3811	004743'	004 11 0 00 007373'		PNTDCP	9,[T22PAK]
  3812	004744'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  3813	004745'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  3814	004746'	004 11 0 00 007373'		PNTDCP	9,[T22PAK]
  3815	004747'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  3816	004750'	037 00 0 00 007513'		TMSGC	<  On UnkPT Free Q>
  3817	004751'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  3818	004752'	004 11 0 00 010106'		PNTDCP	9,NPAKUN
  3819	004753'	037 00 0 00 007517'		TMSGC	<  On PTT Free Q         0.>
  3820	004754'	004 11 0 00 010104'		PNTDCP	9,NPAKPT
  3821	004755'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 88
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0656

  3822
  3823					;#********************************************************************
  3824					;* TEST 23 - PTT Table Test 3
  3825					;
  3826					; Description:  This test  sets  up  the  protocol  type table to
  3827					;		enable all protocol types.   Then  datagrams  are
  3828					;		sent  to  self  specifying  all  of  the protocol
  3829					;		types.  The results are then verified.
  3830					;
  3831					; Procedure:	KL> Load microcode
  3832					;		KL> Port Clear
  3833					;		KL> Start port
  3834					;
  3835					;		KL> Build a self-directed datagram to the specifying
  3836					;		    the first protocol type and insert on cmd queue
  3837					;		KL> Verify that a datagram is received
  3838					;		If failed - print error message and exit test
  3839					;
  3840					;		Repeat 16 times, one for each protocol type.
  3841					;
  3842					; FRU:		NIA Module
  3843					;#********************************************************************
  3844
  3845			000020		T23PAK==^D16				; number of packets to send 
  3846			000100		T23LEN==^D64				; packet length
  3847
  3848					; Initialization
  3849
  3850	004756'	201 00 0 00 000000'	TST23:	MOVEI	Z3			; get address of module start
  3851	004757'	260 17 0 00 004522*		GO	TRACE			; handle trace output
  3852	004760'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  3853	004761'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  3854	004762'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  3855	004763'	260 17 0 00 004526*		GO	IPACLR			; do a 'port clear'
  3856	004764'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  3857	004765'	260 17 0 00 004530*		GO	TFLOAD			; load operational microcode
  3858						GO	[MOVEM	TERMES		; error - save error message
  3859							 SETO	ERFLG,
  3860	004766'	260 17 0 00 006552'			 RTN]
  3861	004767'	027 00 0 00 005161'		SCOPER	MA23			; print error message
  3862	004770'	255 00 0 00 000000 		JFCL				; loop on error
  3863	004771'	254 00 0 00 005154'		JRST	TX23			; altmode exit
  3864	004772'	326 15 0 00 005154'		JUMPN	ERFLG,TX23		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 89
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0657

  3865
  3866					; Start port
  3867
  3868	004773'	260 17 0 00 004536*		GO	TIDLE			; start port
  3869	004774'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3870	004775'	027 00 0 00 005163'		SCOPER	MB23			; print error message
  3871	004776'	255 00 0 00 000000 		JFCL				; loop on error
  3872	004777'	254 00 0 00 005154'		JRST	TX23			; altmode exit
  3873	005000'	326 15 0 00 005154'		JUMPN	ERFLG,TX23		; error yet? yes - abort test
  3874
  3875					; Enable the port
  3876
  3877	005001'	260 17 0 00 004544*		GO	SETENA			; ensure the port is enabled
  3878	005002'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  3879	005003'	027 00 0 00 005166'		SCOPER	MC23			; print error message
  3880	005004'	255 00 0 00 000000 		JFCL				; loop on error
  3881	005005'	254 00 0 00 005154'		JRST	TX23			; altmode exit
  3882	005006'	326 15 0 00 005154'		JUMPN	ERFLG,TX23		; error yet? yes - abort test
  3883
  3884					; Set up multicast and PTT tables
  3885
  3886	005007'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  3887	005010'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  3888	005011'	255 00 0 00 000000 		JFCL				; loop on error
  3889	005012'	254 00 0 00 004717'		JRST	TX22			; altmode exit
  3890	005013'	326 15 0 00 004717'		JUMPN	ERFLG,TX22		; error yet? yes - abort test
  3891
  3892					; Initialize statistics
  3893
  3894	005014'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  3895	005015'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  3896	005016'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  3897	005017'	402 00 0 00 010106'		SETZM	NPAKUN			; clear # packets on UNK free queue
  3898	005020'	402 00 0 00 010104'		SETZM	NPAKPT			; clear # packets on PTT free queue
  3899
  3900					; Initialize packet data
  3901
  3902	005021'	402 00 0 00 004564*		SETZM	TFMFLG			; set to COMPAT mode
  3903	005022'	476 00 0 00 004565*		SETOM	TRSFLG			; set 'response requested' flag
  3904	005023'	402 00 0 00 004566*		SETZM	TPDFLG			; clear pad flag
  3905	005024'	402 00 0 00 004567*		SETZM	TBSDFL			; set to non-BSD style datagram
  3906	005025'	120 00 0 00 004570*		DMOVE	SADDR			; initialize destination address
  3907	005026'	124 00 0 00 004571*		DMOVEM	TDEST			;   to self
  3908	005027'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3909	005030'	201 00 0 00 000122 		MOVEI	122			; set data pattern to 8 bit
  3910	005031'	202 00 0 00 004574*		MOVEM	TPAT			;   counting pattern
  3911	005032'	402 00 0 00 004575*		SETZM	TBYTE			; clear byte count
  3912	005033'	201 00 0 00 000100 		MOVEI	T23LEN			; get length
  3913	005034'	202 00 0 00 004577*		MOVEM	TWORD			; save it
  3914	005035'	402 00 0 00 004603*		SETZM	TSTSUB			; initialize subtest number
  3915	005036'	402 00 0 00 004601*		SETZM	RQAFLG			; clear response queue available flag
  3916	005037'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 90
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0658

  3917
  3918					; Increment packet number
  3919
  3920	005040'	350 01 0 00 005035*	TA23:	AOS	1,TSTSUB		; increment subtest number
  3921	005041'	303 01 0 00 000020 		CAILE	1,T23PAK		; done yet?
  3922	005042'	254 00 0 00 005115'		JRST	TE23			; yes - check test results
  3923	005043'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3924
  3925					; Build a packet
  3926
  3927	005044'	370 00 0 00 000001 		SOS	1			; adjust to 0-17
  3928	005045'	202 01 0 00 004610*		MOVEM	1,TPTTVL		; save protocol type
  3929	005046'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  3930	005047'	260 17 0 00 001207*		GO	BPACK			; set up packet data (no CRC)
  3931
  3932					; Check misc
  3933
  3934	005050'	037 07 0 00 000003 	TB23:	TTALTM				; altmode typed?
  3935	005051'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  3936	005052'	476 00 0 00 004616*		SETOM	ALTF			; yes - set flag
  3937	005053'	332 00 0 00 005052*		SKIPE	ALTF			; altmode flagged?
  3938	005054'	254 00 0 00 005154'		JRST	TX23			; yes - exit
  3939	005055'	336 00 0 00 004621*		SKIPN	LCHAR			; last character in here already?
  3940	005056'	202 00 0 00 005055*		MOVEM	LCHAR			; no - save 'last char typed'
  3941	005057'	260 17 0 00 004622*		GO	PSTAMP			; check for S typed
  3942
  3943					; Send packet
  3944
  3945	005060'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  3946	005061'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  3947	005062'	260 17 0 00 004625*		GO	CHKINT			; get list of queue entries
  3948	005063'	255 00 0 00 000000 		JFCL				; ignore error
  3949	005064'	476 00 0 00 004627*		SETOM	PTTFQ			; reset the interlock
  3950	005065'	200 00 0 00 004641*		MOVE	NUMENT			; get entry count
  3951	005066'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  3952	005067'	254 00 0 00 005100'		JRST	TC23			; no - continue
  3953
  3954	005070'	260 17 0 00 004633*		GO	INSQUE			; insert into queue
  3955	005071'	254 00 0 00 005074'		JRST	.+3			; failed - continue
  3956	005072'	254 00 0 00 005074'		JRST	.+2			; failed - continue
  3957	005073'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  3958	005074'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  3959	005075'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  3960	005076'	337 00 0 00 005065*		SKIPG	NUMENT			; was the queue empty?
  3961						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  3962							 MOVEI	1,PENABL!MPRUN
  3963							 TRZ	1,RESQAV
  3964							 TRO	1,CMDQAV
  3965							 GO	LDCSR
  3966	005077'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 91
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0659

  3967
  3968					; Check for a response
  3969
  3970	005100'	260 17 0 00 004665*	TC23:	GO	CHKRQV			; check response queue available
  3971	005101'	260 17 0 00 004666*		GO	CHKRSP			; check for RspQ entry
  3972						JRST	[SETZM	RQAFLG		; no entry found - continue
  3973							 MOVE	1,PCB+5		; get response queue FLINK
  3974							 GO	CONVIR		; convert to virtual
  3975							 CAIE	1,PCB+5		; queue really empty?
  3976							 SETOM	RQAFLG		; no - set rsp queue avail flag
  3977	005102'	254 00 0 00 007543'			 JRST	TD23]
  3978	005103'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  3979	005104'	260 17 0 00 006166'		GO	MCHECK			; determine results
  3980	005105'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  3981	005106'	260 17 0 00 006420'		GO	QCHECK			; check for queue type
  3982	005107'	254 00 0 00 005100'		JRST	TC23			; keep looking for responses
  3983
  3984					; No more responses
  3985
  3986	005110'	350 00 0 00 000006 	TD23:	AOS	6			; increment hung count
  3987	005111'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  3988						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  3989	005112'	254 00 0 00 007551'			 JRST	TE23]		;   and exit
  3990	005113'	322 07 0 00 005050'		JUMPE	7,TB23			; send current packet? yes - go do so
  3991	005114'	254 00 0 00 005040'		JRST	TA23			; no - already did - go do next packet
  3992
  3993					; Check for any stragglers
  3994
  3995	005115'	400 03 0 00 000000 	TE23:	SETZ	3,			; set up for RUNTME
  3996	005116'	260 17 0 00 004675*		GO	RUNTME			; get current run time
  3997	005117'	200 01 0 00 004676*		MOVE	1,DEBTIM		; get time in milliseconds
  3998	005120'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  3999	005121'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  4000	005122'	260 17 0 00 005100*	TF23:	GO	CHKRQV			; check response queue available
  4001	005123'	260 17 0 00 005101*		GO	CHKRSP			; check for RspQ entry
  4002						JRST	[SETZM	RQAFLG		; no entry found - continue
  4003							 MOVE	1,PCB+5		; get response queue FLINK
  4004							 GO	CONVIR		; convert to virtual
  4005							 CAIE	1,PCB+5		; queue really empty?
  4006							 SETOM	RQAFLG		; no - set rsp queue avail flag
  4007	005124'	254 00 0 00 007553'			 JRST	TG23]
  4008	005125'	260 17 0 00 006166'		GO	MCHECK			; determine results
  4009	005126'	260 17 0 00 006144'		GO	MCOMP2			; compare packet data
  4010	005127'	260 17 0 00 006420'		GO	QCHECK			; check for queue type
  4011	005130'	254 00 0 00 005122'		JRST	TF23			; keep looking for responses
  4012
  4013	005131'	400 03 0 00 000000 	TG23:	SETZ	3,			; set up for RUNTME
  4014	005132'	260 17 0 00 005116*		GO	RUNTME			; get current run time
  4015	005133'	200 01 0 00 005117*		MOVE	1,DEBTIM		; get time in milliseconds
  4016	005134'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  4017	005135'	254 00 0 00 005122'		JRST	TF23			; no - keep looping
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 92
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0660

  4018
  4019					; Done with test - now check results
  4020
  4021	005136'	200 00 0 00 006333'	TH23:	MOVE	NPAKS			; get number of packets sent
  4022	005137'	302 00 0 00 000020 		CAIE	T23PAK			; correct number?
  4023	005140'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4024	005141'	200 00 0 00 006335'		MOVE	NPAKR			; get number of packets received
  4025	005142'	305 00 0 00 000014 		CAIGE	T23PAK-4		; correct number received?
  4026	005143'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4027	005144'	332 00 0 00 010106'		SKIPE	NPAKUN			; any # of packets from UNK free queue?
  4028	005145'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  4029	005146'	200 00 0 00 010104'		MOVE	NPAKPT			; get # of packets from PTT free queue?
  4030	005147'	312 00 0 00 006335'		CAME	NPAKR			; same as received?
  4031	005150'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4032	005151'	027 00 0 00 005171'		SCOPER	MD23			; print error message
  4033	005152'	255 00 0 00 000000 		JFCL				; loop on error
  4034	005153'	254 00 0 00 005154'		JRST	TX23			; altmode exit
  4035
  4036					; Exit
  4037	
  4038	005154'	200 00 0 00 010107'	TX23:	MOVE	NRCRC			; get receive CRC errors
  4039	005155'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  4040	005156'	260 17 0 00 004721*		GO	SETDSA			; disable the port
  4041	005157'	260 17 0 00 004722*		GO	ISTOP			; stop the port
  4042	005160'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 93
DFNIA3	MAC	30-Nov-83 16:40		Protocol Type Tests                                                                SEQ 0661

  4043
  4044					; Error messages
  4045
  4046	005161'	260000	006324'		MA23:	TXALL!CALL!LODERR
  4047	005162'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4048
  4049	005163'	160000	006561'		MB23:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  4050	005164'	260000	006276'			TXALL!CALL!PDUMP
  4051	005165'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4052
  4053	005166'	160000	006663'		MC23:	TXALL!MSG![ASCIZ /Could not enable the port/]
  4054	005167'	260000	006276'			TXALL!CALL!PDUMP
  4055	005170'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4056
  4057	005171'	160000	007017'		MD23:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  4058	005172'	260000	005175'			TXALL!CALL!MD23PN
  4059	005173'	260000	006276'			TXALL!CALL!PDUMP
  4060	005174'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  4061
  4062	005175'	037 00 0 00 007030'	MD23PN:	TMSGC	< What             Expected   Actual>
  4063	005176'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  4064	005177'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  4065	005200'	004 11 0 00 007373'		PNTDCP	9,[T23PAK]
  4066	005201'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  4067	005202'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  4068	005203'	004 11 0 00 007373'		PNTDCP	9,[T23PAK]
  4069	005204'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  4070	005205'	037 00 0 00 007561'		TMSGC	<  On UnkPT Free Q       0.>
  4071	005206'	004 11 0 00 010106'		PNTDCP	9,NPAKUN
  4072	005207'	037 00 0 00 007567'		TMSGC	<  On PTT Free Q  >
  4073	005210'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  4074	005211'	004 11 0 00 010104'		PNTDCP	9,NPAKPT
  4075	005212'	263 17 0 00 000000 		RTN
  4076
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 94
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0662

  4077						SUBTTL	Miscellaneous Tests
  4078
  4079					;********************************************************************
  4080					;* TEST 24 - PAD Flag Bit Test 1
  4081					;
  4082					; Description:  This test sends self-directed datagrams which are
  4083					;		smaller  than  the  minimum legal packet size (46
  4084					;		bytes).  It verifies that  the microcode pads the
  4085					;		packet with trailing 0 bytes when the PAD bit  is
  4086					;		set  and  sends  it  without  generating an error
  4087					;		response.
  4088					;
  4089					; Procedure:	KL> Load microcode
  4090					;		KL> Port Clear
  4091					;		KL> Start port
  4092					;
  4093					;		KL> Build a self-directed runtgram (pad bit set), insert
  4094					;		    on command queue, and wait for a response
  4095					;		KL> Verify proper response
  4096					;		KL> Verify data portion of packet received properly
  4097					;		If failed - print error message and exit test
  4098					;
  4099					;		Do for data pattern 122 and packets of length 0 to 77 bytes
  4100					;
  4101					; FRU:		NIA Module
  4102					;#********************************************************************
  4103
  4104			000100		T24PAK==^D64				; number of packets to send
  4105
  4106					; Initialization
  4107
  4108	005213'	201 00 0 00 000000'	TST24:	MOVEI	Z3			; get address of module start
  4109	005214'	260 17 0 00 004757*		GO	TRACE			; handle trace output
  4110	005215'	402 00 0 00 010111'		SETZM	SDEBUG			; clear debug flag
  4111	005216'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  4112	005217'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  4113	005220'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  4114	005221'	260 17 0 00 004763*		GO	IPACLR			; do a 'port clear'
  4115	005222'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  4116	005223'	260 17 0 00 004765*		GO	TFLOAD			; load operational microcode
  4117						GO	[MOVEM	TERMES		; error - save error message
  4118							 SETO	ERFLG,
  4119	005224'	260 17 0 00 006552'			 RTN]
  4120	005225'	027 00 0 00 005412'		SCOPER	MA24			; print error message
  4121	005226'	255 00 0 00 000000 		JFCL				; loop on error
  4122	005227'	254 00 0 00 005405'		JRST	TX24			; altmode exit
  4123	005230'	326 15 0 00 005405'		JUMPN	ERFLG,TX24		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 95
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0663

  4124
  4125					; Start port
  4126
  4127	005231'	260 17 0 00 004773*		GO	TIDLE			; start port
  4128	005232'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  4129	005233'	027 00 0 00 005414'		SCOPER	MB24			; print error message
  4130	005234'	255 00 0 00 000000 		JFCL				; loop on error
  4131	005235'	254 00 0 00 005405'		JRST	TX24			; altmode exit
  4132	005236'	326 15 0 00 005405'		JUMPN	ERFLG,TX24		; error yet? yes - abort test
  4133
  4134					; Enable the port
  4135
  4136	005237'	260 17 0 00 005001*		GO	SETENA			; ensure the port is enabled
  4137	005240'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  4138	005241'	027 00 0 00 005417'		SCOPER	MC24			; print error message
  4139	005242'	255 00 0 00 000000 		JFCL				; loop on error
  4140	005243'	254 00 0 00 005405'		JRST	TX24			; altmode exit
  4141	005244'	326 15 0 00 005405'		JUMPN	ERFLG,TX24		; error yet? yes - abort test
  4142
  4143					; Set up multicast and PTT tables
  4144
  4145	005245'	260 17 0 00 006434'		GO	LOADPM			; send the LDPTT and LDMCAT packets
  4146	005246'	027 00 0 00 006540'		SCOPER	LOADPE			; print error message
  4147	005247'	255 00 0 00 000000 		JFCL				; loop on error
  4148	005250'	254 00 0 00 005405'		JRST	TX24			; altmode exit
  4149	005251'	326 15 0 00 005405'		JUMPN	ERFLG,TX24		; error yet? yes - abort test
  4150
  4151					; Initialize packet data
  4152
  4153	005252'	402 00 0 00 005021*		SETZM	TFMFLG			; set to COMPAT mode
  4154	005253'	476 00 0 00 005022*		SETOM	TRSFLG			; set 'response requested' flag
  4155	005254'	476 00 0 00 005023*		SETOM	TPDFLG			; set pad flag
  4156	005255'	402 00 0 00 005024*		SETZM	TBSDFL			; set to non-BSD style datagram
  4157	005256'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  4158	005257'	202 00 0 00 005045*		MOVEM	TPTTVL			; save it
  4159	005260'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  4160	005261'	201 00 0 00 000122 		MOVEI	122			; set data pattern
  4161	005262'	202 00 0 00 005031*		MOVEM	TPAT			;  ...
  4162	005263'	402 00 0 00 005040*		SETZM	TSTSUB			; initialize subtest number
  4163	005264'	120 00 0 00 005025*		DMOVE	SADDR			; set up destination address
  4164	005265'	124 00 0 00 005026*		DMOVEM	TDEST			;  ...
  4165
  4166					; Initialize statistics
  4167
  4168	005266'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  4169	005267'	402 00 0 00 010105'		SETZM	NPAKSR#			; clear runt error count
  4170	005270'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  4171	005271'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  4172	005272'	402 00 0 00 005036*		SETZM	RQAFLG			; clear response queue available flag
  4173	005273'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  4174	005274'	201 10 0 00 000100 		MOVEI	10,^D64			; initialize packet count
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 96
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0664

  4175
  4176					; Decrement packet count (77-0)
  4177
  4178	005275'	361 10 0 00 005347'	TA24:	SOJL	10,TE24			; done yet? yes - exit
  4179	005276'	202 10 0 00 005032*		MOVEM	10,TBYTE		; set up byte count
  4180	005277'	402 00 0 00 005034*		SETZM	TWORD			; clear word count
  4181	005300'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  4182	005301'	260 17 0 00 004612*		GO	BPACKN			; set up packet data (no CRC)
  4183	005302'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  4184
  4185					; Send a packet
  4186
  4187	005303'	037 07 0 00 000003 	TB24:	TTALTM				; altmode typed?
  4188	005304'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  4189	005305'	476 00 0 00 005053*		SETOM	ALTF			; yes - set flag
  4190	005306'	332 00 0 00 005305*		SKIPE	ALTF			; altmode flagged?
  4191	005307'	254 00 0 00 005405'		JRST	TX24			; yes - exit
  4192	005310'	336 00 0 00 005056*		SKIPN	LCHAR			; last character in here already?
  4193	005311'	202 00 0 00 005310*		MOVEM	LCHAR			; no - save 'last char typed'
  4194	005312'	260 17 0 00 005057*		GO	PSTAMP			; check for S typed
  4195	005313'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  4196
  4197	005314'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  4198	005315'	260 17 0 00 005062*		GO	CHKINT			; get list of queue entries
  4199	005316'	255 00 0 00 000000 		JFCL				; ignore error
  4200	005317'	476 00 0 00 005064*		SETOM	PTTFQ			; reset the interlock
  4201	005320'	200 00 0 00 005076*		MOVE	NUMENT			; get entry count
  4202	005321'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  4203	005322'	254 00 0 00 005334'		JRST	TC24			; no - continue
  4204
  4205	005323'	260 17 0 00 005070*		GO	INSQUE			; insert into queue
  4206	005324'	254 00 0 00 005327'		JRST	.+3			; failed - continue
  4207	005325'	254 00 0 00 005327'		JRST	.+2			; failed - continue
  4208	005326'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  4209	005327'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  4210	005330'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  4211	005331'	350 00 0 00 005263*		AOS	TSTSUB			; increment subtest number
  4212	005332'	337 00 0 00 005320*		SKIPG	NUMENT			; was the queue empty?
  4213						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  4214							 MOVEI	1,PENABL!MPRUN
  4215							 TRZ	1,RESQAV
  4216							 TRO	1,CMDQAV
  4217							 GO	LDCSR
  4218	005333'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 97
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0665

  4219
  4220					; Check for a response
  4221
  4222	005334'	260 17 0 00 005122*	TC24:	GO	CHKRQV			; check response queue available
  4223	005335'	260 17 0 00 005123*		GO	CHKRSP			; check for RspQ entry
  4224						JRST	[SETZM	RQAFLG		; no entry found - continue
  4225							 MOVE	1,PCB+5		; get response queue FLINK
  4226							 GO	CONVIR		; convert to virtual
  4227							 CAIE	1,PCB+5		; queue really empty?
  4228							 SETOM	RQAFLG		; no - set rsp queue avail flag
  4229							 GO	CHKDEB		; check for debug mode
  4230	005336'	254 00 0 00 007573'			 JRST	TD24]
  4231	005337'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  4232	005340'	260 17 0 00 006166'		GO	MCHECK			; determine results
  4233	005341'	254 00 0 00 005334'		JRST	TC24			; keep looking for responses
  4234
  4235					; No more responses
  4236
  4237	005342'	350 00 0 00 000006 	TD24:	AOS	6			; increment hung count
  4238	005343'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  4239						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  4240	005344'	254 00 0 00 007602'			 JRST	TE24]		;   and exit
  4241	005345'	322 07 0 00 005334'		JUMPE	7,TC24			; send current packet? yes - go do so
  4242	005346'	254 00 0 00 005275'		JRST	TA24			; no - already did - go do next packet
  4243
  4244					; Check for any stragglers
  4245
  4246	005347'	332 00 0 00 010111'	TE24:	SKIPE	SDEBUG			; debug mode?
  4247	005350'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  4248	005351'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  4249	005352'	260 17 0 00 005132*		GO	RUNTME			; get current run time
  4250	005353'	200 01 0 00 005133*		MOVE	1,DEBTIM		; get time in milliseconds
  4251	005354'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  4252	005355'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  4253	005356'	260 17 0 00 005334*	TF24:	GO	CHKRQV			; check response queue available
  4254	005357'	260 17 0 00 005335*		GO	CHKRSP			; check for RspQ entry
  4255						JRST	[SETZM	RQAFLG		; no entry found - continue
  4256							 MOVE	1,PCB+5		; get response queue FLINK
  4257							 GO	CONVIR		; convert to virtual
  4258							 CAIE	1,PCB+5		; queue really empty?
  4259							 SETOM	RQAFLG		; no - set rsp queue avail flag
  4260							 GO	CHKDEB		; check for debug mode
  4261	005360'	254 00 0 00 007604'			 JRST	TG24]
  4262	005361'	260 17 0 00 006166'		GO	MCHECK			; determine results
  4263	005362'	254 00 0 00 005356'		JRST	TF24			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 98
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0666

  4264
  4265					; Check timeout
  4266
  4267	005363'	400 03 0 00 000000 	TG24:	SETZ	3,			; set up for RUNTME
  4268	005364'	260 17 0 00 005352*		GO	RUNTME			; get current run time
  4269	005365'	200 01 0 00 005353*		MOVE	1,DEBTIM		; get time in milliseconds
  4270	005366'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  4271	005367'	254 00 0 00 005356'		JRST	TF24			; no - keep looping
  4272
  4273					; Done with test - now check results
  4274
  4275	005370'	332 00 0 00 010111'	TH24:	SKIPE	SDEBUG			; debug mode?
  4276	005371'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  4277	005372'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  4278	005373'	302 00 0 00 000100 		CAIE	T24PAK			; correct number?
  4279	005374'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4280	005375'	200 00 0 00 006335'		MOVE	NPAKR			; get receive count
  4281	005376'	305 00 0 00 000071 		CAIGE	T24PAK*^D9/^D10		; more than 90% received?
  4282	005377'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4283	005400'	332 00 0 00 010105'		SKIPE	NPAKSR			; any runt packets?
  4284	005401'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  4285	005402'	027 00 0 00 005422'		SCOPER	MD24			; print error message
  4286	005403'	255 00 0 00 000000 		JFCL				; loop on error
  4287	005404'	254 00 0 00 005405'		JRST	TX24			; altmode exit
  4288
  4289					; Exit
  4290	
  4291	005405'	200 00 0 00 010107'	TX24:	MOVE	NRCRC			; get receive CRC errors
  4292	005406'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  4293	005407'	260 17 0 00 005156*		GO	SETDSA			; disable the port
  4294	005410'	260 17 0 00 005157*		GO	ISTOP			; stop the port
  4295	005411'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 99
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0667

  4296
  4297					; Error messages
  4298
  4299	005412'	260000	006324'		MA24:	TXALL!CALL!LODERR
  4300	005413'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4301
  4302	005414'	160000	006561'		MB24:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  4303	005415'	260000	006276'			TXALL!CALL!PDUMP
  4304	005416'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4305
  4306	005417'	160000	006663'		MC24:	TXALL!MSG![ASCIZ /Could not enable the port/]
  4307	005420'	260000	006276'			TXALL!CALL!PDUMP
  4308	005421'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4309
  4310	005422'	160000	007017'		MD24:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  4311	005423'	260000	005426'			TXALL!CALL!MD24PN
  4312	005424'	260000	006276'			TXALL!CALL!PDUMP
  4313	005425'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  4314
  4315	005426'	037 00 0 00 007030'	MD24PN:	TMSGC	< What             Expected   Actual>
  4316	005427'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  4317	005430'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  4318	005431'	004 11 0 00 007613'		PNTDCP	9,[T24PAK]
  4319	005432'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  4320	005433'	037 00 0 00 007614'		TMSGC	<  Runt Packets          0.>
  4321	005434'	004 11 0 00 010105'		PNTDCP	9,NPAKSR
  4322	005435'	037 00 0 00 007061'		TMSGC	<Packets Rcvd     >
  4323	005436'	004 11 0 00 007613'		PNTDCP	9,[T24PAK]
  4324	005437'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  4325	005440'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 100
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0668

  4326
  4327					;********************************************************************
  4328					;* TEST 25 - PAD Flag Bit Test 2
  4329					;
  4330					; Description:  This test sends self-directed datagrams which are
  4331					;		smaller  than  the  minimum legal packet size (46
  4332					;		bytes).  It verifies that the  microcode  creates
  4333					;		an  error  packet  for 'runt packet' when the PAD
  4334					;		flag bit is not set.
  4335					;
  4336					; Procedure:	KL> Load microcode
  4337					;		KL> Port Clear
  4338					;		KL> Start port
  4339					;
  4340					;		KL> Build a self-directed runtgram (pad bit not set),
  4341					;		    insert on command queue, and wait for a response
  4342					;		KL> Verify proper response
  4343					;		If failed - print error message and exit test
  4344					;
  4345					;		Do for data pattern 122 and packets of length 0 to 41. bytes
  4346					;		(4 less than 45. bytes due to additional 4 bytes for CRC)
  4347					;
  4348					; FRU:		NIA Module
  4349					;#********************************************************************
  4350
  4351			000051		T25PAK==^D41				; number of packets to send
  4352
  4353					; Initialization
  4354
  4355	005441'	201 00 0 00 000000'	TST25:	MOVEI	Z3			; get address of module start
  4356	005442'	260 17 0 00 005214*		GO	TRACE			; handle trace output
  4357	005443'	402 00 0 00 010111'		SETZM	SDEBUG			; clear debug flag
  4358	005444'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  4359	005445'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  4360	005446'	476 00 0 00 010101'		SETOM	DUMPP			; set 'dump possible' flag
  4361	005447'	260 17 0 00 005221*		GO	IPACLR			; do a 'port clear'
  4362	005450'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  4363	005451'	260 17 0 00 005223*		GO	TFLOAD			; load operational microcode
  4364						GO	[MOVEM	TERMES		; error - save error message
  4365							 SETO	ERFLG,
  4366	005452'	260 17 0 00 006552'			 RTN]
  4367	005453'	027 00 0 00 005633'		SCOPER	MA25			; print error message
  4368	005454'	255 00 0 00 000000 		JFCL				; loop on error
  4369	005455'	254 00 0 00 005626'		JRST	TX25			; altmode exit
  4370	005456'	326 15 0 00 005626'		JUMPN	ERFLG,TX25		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 101
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0669

  4371
  4372					; Start port
  4373
  4374	005457'	260 17 0 00 005231*		GO	TIDLE			; start port
  4375	005460'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  4376	005461'	027 00 0 00 005635'		SCOPER	MB25			; print error message
  4377	005462'	255 00 0 00 000000 		JFCL				; loop on error
  4378	005463'	254 00 0 00 005626'		JRST	TX25			; altmode exit
  4379	005464'	326 15 0 00 005626'		JUMPN	ERFLG,TX25		; error yet? yes - abort test
  4380
  4381					; Enable the port
  4382
  4383	005465'	260 17 0 00 005237*		GO	SETENA			; ensure the port is enabled
  4384	005466'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  4385	005467'	027 00 0 00 005640'		SCOPER	MC25			; print error message
  4386	005470'	255 00 0 00 000000 		JFCL				; loop on error
  4387	005471'	254 00 0 00 005626'		JRST	TX25			; altmode exit
  4388	005472'	326 15 0 00 005626'		JUMPN	ERFLG,TX25		; error yet? yes - abort test
  4389
  4390					; Initialize packet data
  4391
  4392	005473'	402 00 0 00 005252*		SETZM	TFMFLG			; set to COMPAT mode
  4393	005474'	476 00 0 00 005253*		SETOM	TRSFLG			; set 'response requested' flag
  4394	005475'	402 00 0 00 005254*		SETZM	TPDFLG			; clear pad flag
  4395	005476'	402 00 0 00 005255*		SETZM	TBSDFL			; set to non-BSD style datagram
  4396	005477'	201 00 0 00 000005 		MOVEI	5			; get protocol type
  4397	005500'	202 00 0 00 005257*		MOVEM	TPTTVL			; save it
  4398	005501'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  4399	005502'	201 00 0 00 000122 		MOVEI	122			; set data pattern
  4400	005503'	202 00 0 00 005262*		MOVEM	TPAT			;  ...
  4401	005504'	402 00 0 00 005331*		SETZM	TSTSUB			; initialize subtest number
  4402	005505'	120 00 0 00 005264*		DMOVE	SADDR			; set up destination address
  4403	005506'	124 00 0 00 005265*		DMOVEM	TDEST			;  ...
  4404
  4405					; Initialize statistics
  4406
  4407	005507'	402 00 0 00 006333'		SETZM	NPAKS			; clear sent count
  4408	005510'	402 00 0 00 010105'		SETZM	NPAKSR			; clear runt error count
  4409	005511'	402 00 0 00 006335'		SETZM	NPAKR			; clear recv count
  4410	005512'	402 00 0 00 010107'		SETZM	NRCRC			; clear expected rcv CRC error count
  4411	005513'	402 00 0 00 005272*		SETZM	RQAFLG			; clear response queue available flag
  4412	005514'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  4413	005515'	201 10 0 00 000051 		MOVEI	10,T25PAK		; initialize packet count
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 102
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0670

  4414
  4415					; Decrement packet count (73-0)
  4416
  4417	005516'	361 10 0 00 005570'	TA25:	SOJL	10,TE25			; done yet? yes - exit
  4418	005517'	202 10 0 00 005276*		MOVEM	10,TBYTE		; set up byte count
  4419	005520'	402 00 0 00 005277*		SETZM	TWORD			; clear word count
  4420	005521'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set op code (SNDDG)
  4421	005522'	260 17 0 00 005301*		GO	BPACKN			; set up packet data (no CRC)
  4422	005523'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  4423
  4424					; Send a packet
  4425
  4426	005524'	037 07 0 00 000003 	TB25:	TTALTM				; altmode typed?
  4427	005525'	334 00 0 00 000000 		SKIPA				; no - keep checking CSR, etc.
  4428	005526'	476 00 0 00 005306*		SETOM	ALTF			; yes - set flag
  4429	005527'	332 00 0 00 005526*		SKIPE	ALTF			; altmode flagged?
  4430	005530'	254 00 0 00 005626'		JRST	TX25			; yes - exit
  4431	005531'	336 00 0 00 005311*		SKIPN	LCHAR			; last character in here already?
  4432	005532'	202 00 0 00 005531*		MOVEM	LCHAR			; no - save 'last char typed'
  4433	005533'	260 17 0 00 005312*		GO	PSTAMP			; check for S typed
  4434	005534'	400 07 0 00 000000 		SETZ	7,			; clear 'packet put on queue' flag
  4435
  4436	005535'	201 13 0 00 000003 		MOVEI	Q,3			; get PT free queue number
  4437	005536'	260 17 0 00 005315*		GO	CHKINT			; get list of queue entries
  4438	005537'	255 00 0 00 000000 		JFCL				; ignore error
  4439	005540'	476 00 0 00 005317*		SETOM	PTTFQ			; reset the interlock
  4440	005541'	200 00 0 00 005332*		MOVE	NUMENT			; get entry count
  4441	005542'	305 00 0 00 000010 		CAIGE	8			; 8 or more?
  4442	005543'	254 00 0 00 005555'		JRST	TC25			; no - continue
  4443
  4444	005544'	260 17 0 00 005323*		GO	INSQUE			; insert into queue
  4445	005545'	254 00 0 00 005550'		JRST	.+3			; failed - continue
  4446	005546'	254 00 0 00 005550'		JRST	.+2			; failed - continue
  4447	005547'	474 07 0 00 000000 		SETO	7,			; set 'packet put on queue' flag
  4448	005550'	332 00 0 00 000007 		SKIPE	7			; put on cmd queue?
  4449	005551'	350 00 0 00 006333'		AOS	NPAKS			; yes - increment packet sent count
  4450	005552'	350 00 0 00 005504*		AOS	TSTSUB			; increment subtest number
  4451	005553'	337 00 0 00 005541*		SKIPG	NUMENT			; was the queue empty?
  4452						GO	[GO	RDCSR		; yes - set 'CMDQAV'
  4453							 MOVEI	1,PENABL!MPRUN
  4454							 TRZ	1,RESQAV
  4455							 TRO	1,CMDQAV
  4456							 GO	LDCSR
  4457	005554'	260 17 0 00 006771'			 RTN]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 103
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0671

  4458
  4459					; Check for a response
  4460
  4461	005555'	260 17 0 00 005356*	TC25:	GO	CHKRQV			; check response queue available
  4462	005556'	260 17 0 00 005357*		GO	CHKRSP			; check for RspQ entry
  4463						JRST	[SETZM	RQAFLG		; no entry found - continue
  4464							 MOVE	1,PCB+5		; get response queue FLINK
  4465							 GO	CONVIR		; convert to virtual
  4466							 CAIE	1,PCB+5		; queue really empty?
  4467							 SETOM	RQAFLG		; no - set rsp queue avail flag
  4468							 GO	CHKDEB		; check for debug mode
  4469	005557'	254 00 0 00 007622'			 JRST	TD25]
  4470	005560'	400 06 0 00 000000 		SETZ	6,			; clear hung count
  4471	005561'	260 17 0 00 006166'		GO	MCHECK			; determine results
  4472	005562'	254 00 0 00 005555'		JRST	TC25			; keep looking for responses
  4473
  4474					; No more responses
  4475
  4476	005563'	350 00 0 00 000006 	TD25:	AOS	6			; increment hung count
  4477	005564'	303 06 0 00 007640 		CAILE	6,^D4000		; check 4000 times and no response?
  4478						JRST	[SETOM	DUMPP		; yes -  set 'dump possible' flag
  4479	005565'	254 00 0 00 007631'			 JRST	TE25]		;   and exit
  4480	005566'	322 07 0 00 005555'		JUMPE	7,TC25			; send current packet? yes - go do so
  4481	005567'	254 00 0 00 005516'		JRST	TA25			; no - already did - go do next packet
  4482
  4483					; Check for any stragglers
  4484
  4485	005570'	332 00 0 00 010111'	TE25:	SKIPE	SDEBUG			; debug mode?
  4486	005571'	037 00 0 00 007217'		TMSGCD	<** Check for stragglers **>
  4487	005572'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  4488	005573'	260 17 0 00 005364*		GO	RUNTME			; get current run time
  4489	005574'	200 01 0 00 005365*		MOVE	1,DEBTIM		; get time in milliseconds
  4490	005575'	271 01 0 00 000310 		ADDI	1,^D200			; wait an addl 200 msecs
  4491	005576'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  4492	005577'	260 17 0 00 005555*	TF25:	GO	CHKRQV			; check response queue available
  4493	005600'	260 17 0 00 005556*		GO	CHKRSP			; check for RspQ entry
  4494						JRST	[SETZM	RQAFLG		; no entry found - continue
  4495							 MOVE	1,PCB+5		; get response queue FLINK
  4496							 GO	CONVIR		; convert to virtual
  4497							 CAIE	1,PCB+5		; queue really empty?
  4498							 SETOM	RQAFLG		; no - set rsp queue avail flag
  4499							 GO	CHKDEB		; check for debug mode
  4500	005601'	254 00 0 00 007633'			 JRST	TG25]
  4501	005602'	260 17 0 00 006166'		GO	MCHECK			; determine results
  4502	005603'	254 00 0 00 005577'		JRST	TF25			; keep looking for responses
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 104
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0672

  4503
  4504					; Check timeout
  4505
  4506	005604'	400 03 0 00 000000 	TG25:	SETZ	3,			; set up for RUNTME
  4507	005605'	260 17 0 00 005573*		GO	RUNTME			; get current run time
  4508	005606'	200 01 0 00 005574*		MOVE	1,DEBTIM		; get time in milliseconds
  4509	005607'	317 01 0 00 010102'		CAMG	1,ENDTIM		; time expired yet?
  4510	005610'	254 00 0 00 005577'		JRST	TF25			; no - keep looping
  4511
  4512					; Done with test - now check results
  4513
  4514	005611'	332 00 0 00 010111'	TH25:	SKIPE	SDEBUG			; debug mode?
  4515	005612'	037 00 0 00 007235'		TMSGCD	<** Done - check results **>
  4516	005613'	200 00 0 00 006333'		MOVE	NPAKS			; get number of packets sent
  4517	005614'	302 00 0 00 000051 		CAIE	T25PAK			; correct number?
  4518	005615'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4519	005616'	200 00 0 00 010105'		MOVE	NPAKSR			; get number of runt packets
  4520	005617'	312 00 0 00 006333'		CAME	NPAKS			; same number sent?
  4521	005620'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4522	005621'	332 00 0 00 006335'		SKIPE	NPAKR			; any received?
  4523	005622'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  4524	005623'	027 00 0 00 005643'		SCOPER	MD25			; print error message
  4525	005624'	255 00 0 00 000000 		JFCL				; loop on error
  4526	005625'	254 00 0 00 005626'		JRST	TX25			; altmode exit
  4527
  4528					; Exit
  4529	
  4530	005626'	200 00 0 00 010107'	TX25:	MOVE	NRCRC			; get receive CRC errors
  4531	005627'	272 00 0 00 000000#		ADDM	STARCV+4+.RREXP		; update statistics for expected errors
  4532	005630'	260 17 0 00 005407*		GO	SETDSA			; disable the port
  4533	005631'	260 17 0 00 005410*		GO	ISTOP			; stop the port
  4534	005632'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 105
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0673

  4535
  4536					; Error messages
  4537
  4538	005633'	260000	006324'		MA25:	TXALL!CALL!LODERR
  4539	005634'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4540
  4541	005635'	160000	006561'		MB25:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  4542	005636'	260000	006276'			TXALL!CALL!PDUMP
  4543	005637'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4544
  4545	005640'	160000	006663'		MC25:	TXALL!MSG![ASCIZ /Could not enable the port/]
  4546	005641'	260000	006276'			TXALL!CALL!PDUMP
  4547	005642'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4548
  4549	005643'	160000	007017'		MD25:	TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
  4550	005644'	260000	005647'			TXALL!CALL!MD25PN
  4551	005645'	260000	006276'			TXALL!CALL!PDUMP
  4552	005646'	170000	007244'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module (possibly H4000 or cables)/]
  4553
  4554	005647'	037 00 0 00 007030'	MD25PN:	TMSGC	< What             Expected   Actual>
  4555	005650'	037 00 0 00 007040'		TMSGC	<-----------       --------   ------>
  4556	005651'	037 00 0 00 007050'		TMSGC	<Packets Sent     >
  4557	005652'	004 11 0 00 007642'		PNTDCP	9,[T25PAK]
  4558	005653'	004 11 0 00 006333'		PNTDCP	9,NPAKS
  4559	005654'	037 00 0 00 007643'		TMSGC	<  Runt Packets   >
  4560	005655'	004 11 0 00 007642'		PNTDCP	9,[T25PAK]
  4561	005656'	004 11 0 00 010105'		PNTDCP	9,NPAKSR
  4562	005657'	037 00 0 00 007374'		TMSGC	<Packets Rcvd            0.>
  4563	005660'	004 11 0 00 006335'		PNTDCP	9,NPAKR
  4564	005661'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 106
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0674

  4565
  4566					;#********************************************************************
  4567					;* TEST 26 - Configuration Test
  4568					;
  4569					; Description:  This test prints  the  accumulated  configuration
  4570					;		data.   The data is printed at end of passes 1,5,
  4571					;		10,20,...
  4572					;#********************************************************************
  4573
  4574					; Initialization
  4575
  4576	005662'	201 00 0 00 000000'	TST26:	MOVEI	Z3			; get address of module start
  4577	005663'	260 17 0 00 005442*		GO	TRACE			; handle trace output
  4578
  4579					; Check to see if should print configuration
  4580
  4581	005664'	200 00 0 00 000000*		MOVE	TSTREP			; get test pass count
  4582	005665'	315 00 0 00 030047 		CAMGE	PASCNT			; less than diagnostic pass count?
  4583	005666'	200 00 0 00 030047 		MOVE	PASCNT			; yes - get diagnostic pass count
  4584	005667'	350 00 0 00 000000 		AOS				;   ...
  4585	005670'	306 00 0 00 000001 		CAIN	1			; end pass 1?
  4586	005671'	254 00 0 00 005676'		JRST	TA26			; yes - go print configuration
  4587	005672'	306 00 0 00 000005 		CAIN	5			; end pass 5?
  4588	005673'	254 00 0 00 005676'		JRST	TA26			; yes - go print configuration
  4589	005674'	231 00 0 00 000012 		IDIVI	^D10			; divide by 10
  4590	005675'	336 00 0 00 000001 		SKIPN	1			; multiple of 10? no - exit
  4591	005676'	260 17 0 00 000000*	TA26:	GO	CONPNT			; yes - print configuration 
  4592	005677'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 107
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0675

  4593
  4594					;#********************************************************************
  4595					;* TEST 27 - Statistics Test
  4596					;
  4597					; Description:  This test merely reads the  counters.  It  prints
  4598					;		the counters after passes 1,5,10,20,30,40,...
  4599					;
  4600					; Procedure:	KL> Load microcode
  4601					;		KL> Port Clear
  4602					;		KL> Start port
  4603					;
  4604					;		KL> Build a RCCNT packet, insert on command queue,
  4605					;		    and wait for a response
  4606					;		KL> Print counters
  4607					;		If failed - print error message and exit test
  4608					;
  4609					; FRU:		NIA Module
  4610					;#********************************************************************
  4611
  4612					; Initialization
  4613
  4614	005700'	201 00 0 00 000000'	TST27:	MOVEI	Z3			; get address of module start
  4615	005701'	260 17 0 00 005663*		GO	TRACE			; handle trace output
  4616	005702'	402 00 0 00 006236'		SETZM	PKSAV1			; clear 'have status error data' flag
  4617	005703'	402 00 0 00 006256'		SETZM	PKSAV2			; clear 'have data error data' flag
  4618	005704'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  4619
  4620					; Load microcode
  4621
  4622	005705'	260 17 0 00 005447*		GO	IPACLR			; do a 'port clear'
  4623	005706'	402 00 0 00 010112'		SETZM	TERMES			; clear ucode load error message
  4624	005707'	260 17 0 00 005451*		GO	TFLOAD			; load operational microcode
  4625						GO	[MOVEM	TERMES		; error - save error message
  4626							 SETO	ERFLG,
  4627	005710'	260 17 0 00 006552'			 RTN]
  4628	005711'	027 00 0 00 006033'		SCOPER	MA27			; print error message
  4629	005712'	255 00 0 00 000000 		JFCL				; loop on error
  4630	005713'	254 00 0 00 006030'		JRST	TX27			; altmode exit
  4631	005714'	326 15 0 00 006030'		JUMPN	ERFLG,TX27		; error exit
  4632
  4633					; Start port
  4634
  4635	005715'	350 00 0 00 005552*		AOS	TSTSUB			; initialize subtest number
  4636	005716'	260 17 0 00 005457*		GO	TIDLE			; start port
  4637	005717'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  4638	005720'	027 00 0 00 006035'		SCOPER	MB27			; print error message
  4639	005721'	255 00 0 00 000000 		JFCL				; loop on error
  4640	005722'	254 00 0 00 006030'		JRST	TX27			; altmode exit
  4641	005723'	326 15 0 00 006030'		JUMPN	ERFLG,TX27		; error yet? yes - abort test
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 108
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0676

  4642
  4643					; Enable the port
  4644
  4645	005724'	350 00 0 00 005715*		AOS	TSTSUB			; initialize subtest number
  4646	005725'	260 17 0 00 005465*		GO	SETENA			; ensure the port is enabled
  4647	005726'	474 15 0 00 000000 		SETO	ERFLG,			; error - set error flag
  4648	005727'	027 00 0 00 006040'		SCOPER	MC27			; print error message
  4649	005730'	255 00 0 00 000000 		JFCL				; loop on error
  4650	005731'	254 00 0 00 006030'		JRST	TX27			; altmode exit
  4651	005732'	326 15 0 00 006030'		JUMPN	ERFLG,TX27		; error yet? yes - abort test
  4652
  4653					; Send the packet
  4654
  4655	005733'	350 00 0 00 005724*		AOS	TSTSUB			; initialize subtest number
  4656	005734'	402 00 0 00 010101'		SETZM	DUMPP			; clear 'dump possible' flag
  4657	005735'	402 00 0 00 005473*		SETZM	TFMFLG			; set to COMPAT mode
  4658	005736'	476 00 0 00 005474*		SETOM	TRSFLG			; set response requested
  4659	005737'	402 00 0 00 005475*		SETZM	TPDFLG			; clear pad flag
  4660	005740'	402 00 0 00 005476*		SETZM	TBSDFL			; set to non-BSD style datagram
  4661	005741'	201 11 0 00 000004 		MOVEI	OP,RCCNT		; get op code to read counters
  4662	005742'	260 17 0 00 005047*		GO	BPACK			; set up packet data
  4663	005743'	200 00 0 00 005664*		MOVE	TSTREP			; get test pass count
  4664	005744'	315 00 0 00 030047 		CAMGE	PASCNT			; less than diagnostic pass count?
  4665	005745'	200 00 0 00 030047 		MOVE	PASCNT			; yes - get diagnostic pass count
  4666	005746'	350 00 0 00 000000 		AOS				;   ...
  4667	005747'	231 00 0 00 000012 		IDIVI	^D10			; divide by 10
  4668	005750'	200 00 0 00 007647'		MOVE	[4,,0]			; get a 1 for clear counters
  4669	005751'	336 00 0 00 000001 		SKIPN	1			; clear the counters this time?
  4670	005752'	202 00 0 00 000000#		MOVEM	PACKET+4		; save data
  4671	005753'	260 17 0 00 005544*		GO	INSQUE			; insert on command queue
  4672	005754'	255 00 0 00 000000 		JFCL				; error - ignore
  4673	005755'	255 00 0 00 000000 		JFCL				; error - ignore
  4674	005756'	260 17 0 00 000566*		GO	RDCSR			; read CSR
  4675	005757'	255 00 0 00 000000 		JFCL				; error - ignore
  4676	005760'	660 01 0 00 000400 		TRO	1,CMDQAV		; set the 'CMDQAV' bit
  4677	005761'	260 17 0 00 000571*		GO	LDCSR			; write the CSR register
  4678
  4679					; Wait for a response
  4680
  4681	005762'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  4682	005763'	260 17 0 00 005605*		GO	RUNTME			; get current run time
  4683	005764'	200 01 0 00 005606*		MOVE	1,DEBTIM		; get time in milliseconds
  4684	005765'	271 01 0 00 023420 		ADDI	1,^D10000		; wait an additional 10 seconds
  4685	005766'	202 01 0 00 010102'		MOVEM	1,ENDTIM#		; save maximum time
  4686	005767'	254 00 0 00 005775'		JRST	TA27A			; go check for a response
  4687	005770'	400 03 0 00 000000 	TA27:	SETZ	3,			; set up for RUNTME
  4688	005771'	260 17 0 00 005763*		GO	RUNTME			; get current run time
  4689	005772'	200 01 0 00 005764*		MOVE	1,DEBTIM		; get time in milliseconds
  4690	005773'	313 01 0 00 010102'		CAMLE	1,ENDTIM		; time expired yet?
  4691	005774'	254 00 0 00 006003'		JRST	TB27			; yes - timeout error
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 109
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0677

  4692
  4693					; Check for response
  4694
  4695	005775'	260 17 0 00 005600*	TA27A:	GO	CHKRSP			; check for response entry
  4696	005776'	254 00 0 00 005770'		JRST	TA27			; no responses - check wait time
  4697
  4698					; Got a response - now decode it
  4699
  4700	005777'	135 02 0 00 007650'		LDB	2,[POINT 8,RSPONS+3,23]	; get opcode
  4701	006000'	302 02 0 00 000004 		CAIE	2,CNTRC			; CNTRC packet?
  4702	006001'	254 00 0 00 005770'		JRST	TA27			; no - check wait time
  4703	006002'	334 00 0 00 000000 		SKIPA				; yes - continue
  4704
  4705					; Timeout error
  4706
  4707	006003'	474 15 0 00 000000 	TB27:	SETO	ERFLG,			; set error flag
  4708	006004'	027 00 0 00 006043'		SCOPER	MD27			; print error message
  4709	006005'	255 00 0 00 000000 		JFCL				; loop on error
  4710	006006'	254 00 0 00 006030'		JRST	TX27			; altmode exit
  4711	006007'	326 15 0 00 006030'		JUMPN	ERFLG,TX27		; error yet? yes - abort test
  4712
  4713					; Check to see if should print counters
  4714
  4715	006010'	200 00 0 00 005743*		MOVE	TSTREP			; get test pass count
  4716	006011'	315 00 0 00 030047 		CAMGE	PASCNT			; less than diagnostic pass count?
  4717	006012'	200 00 0 00 030047 		MOVE	PASCNT			; yes - get diagnostic pass count
  4718	006013'	350 00 0 00 000000 		AOS				;   ...
  4719	006014'	306 00 0 00 000001 		CAIN	1			; end pass 1?
  4720	006015'	254 00 0 00 006022'		JRST	TC27			; yes - go print counters
  4721	006016'	306 00 0 00 000005 		CAIN	5			; end pass 5?
  4722	006017'	254 00 0 00 006022'		JRST	TC27			; yes - go print counters
  4723	006020'	231 00 0 00 000012 		IDIVI	^D10			; divide by 10
  4724	006021'	326 01 0 00 006030'		JUMPN	1,TX27			; multiple of 10? no - exit
  4725
  4726					; Print counters
  4727
  4728	006022'	037 00 0 00 007651'	TC27:	TMSGC	<********** NI Counters at >
  4729	006023'	260 17 0 00 000000*		GO	PTIME
  4730	006024'	037 00 0 00 007657'		TMSGD	< **********>
  4731	006025'	201 12 0 00 000000*		MOVEI	PK,RSPONS		; get address of packet data
  4732	006026'	260 17 0 00 000000*		GO	CNTPNT			; print counters
  4733	006027'	037 00 0 00 030242 		PCRL				; final CRLF
  4734
  4735					; End of test
  4736
  4737	006030'	260 17 0 00 005630*	TX27:	GO	SETDSA			; disable the port
  4738	006031'	260 17 0 00 005631*		GO	ISTOP			; stop the port
  4739	006032'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 110
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Tests                                                                SEQ 0678

  4740
  4741					; Error messages
  4742
  4743	006033'	260000	006324'		MA27:	TXALL!CALL!LODERR
  4744	006034'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4745
  4746	006035'	160000	006561'		MB27:	TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
  4747	006036'	260000	006276'			TXALL!CALL!PDUMP
  4748	006037'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4749
  4750	006040'	160000	006663'		MC27:	TXALL!MSG![ASCIZ /Could not enable the port/]
  4751	006041'	260000	006276'			TXALL!CALL!PDUMP
  4752	006042'	170000	006555'			LAST!TXALL!MSG![ASCIZ /FRU:  Port Modules/]
  4753
  4754	006043'	160000	007662'		MD27:	TXALL!MSG![ASCIZ /Response to RCCNT packet not received in 10 seconds/]
  4755	006044'	260000	006276'			TXALL!CALL!PDUMP
  4756	006045'	170000	006704'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA Module/]
  4757
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 111
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0679

  4758						SUBTTL	Miscellaneous Routines
  4759
  4760					;#********************************************************************
  4761					;* MPACK - Build a packet based on parameters in AC1
  4762					;#********************************************************************
  4763
  4764	006046'	261 17 0 00 000001 	MPACK:	PUT	1			; save AC1
  4765	006047'	200 01 0 00 010114'		MOVE	1,TLNPAT		; get LEN/PAT word
  4766	006050'	556 01 0 00 005503*		HLRZM	1,TPAT			; set up data pattern
  4767	006051'	135 01 0 00 007675'		LDB	1,[POINT 14,1,31] 	; get word count
  4768	006052'	200 00 0 01 001700'		MOVE	T12LEN(1)		; get length
  4769	006053'	202 00 0 00 005520*		MOVEM	TWORD			; set up word count
  4770	006054'	402 00 0 00 005517*		SETZM	TBYTE			; clear byte count also
  4771	006055'	120 00 0 00 005505*		DMOVE	SADDR			; get our address
  4772	006056'	124 00 0 00 005506*		DMOVEM	TDEST			; set up destination address
  4773	006057'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set up op code
  4774	006060'	260 17 0 00 005742*		GO	BPACK			; set up packet data
  4775	006061'	262 17 0 00 000001 		GET	1			; restore AC1
  4776	006062'	263 17 0 00 000000 		RTN
  4777
  4778
  4779					;#********************************************************************
  4780					;* MPACKN - Build a packet based on parameters in AC1
  4781					;#********************************************************************
  4782
  4783	006063'	261 17 0 00 000001 	MPACKN:	PUT	1			; save AC1
  4784	006064'	200 01 0 00 010114'		MOVE	1,TLNPAT		; get LEN/PAT word
  4785	006065'	556 01 0 00 006050*		HLRZM	1,TPAT			; set up data pattern
  4786	006066'	135 00 0 00 007675'		LDB	[POINT 14,1,31]		; get word count
  4787	006067'	135 01 0 00 007675'		LDB	1,[POINT 14,1,31] 	; get word count
  4788	006070'	200 00 0 01 001700'		MOVE	T12LEN(1)		; get length
  4789	006071'	202 00 0 00 006053*		MOVEM	TWORD			; set up word count
  4790	006072'	402 00 0 00 006054*		SETZM	TBYTE			; clear byte count also
  4791	006073'	120 00 0 00 006055*		DMOVE	SADDR			; get our address
  4792	006074'	124 00 0 00 006056*		DMOVEM	TDEST			; set up destination address
  4793	006075'	201 11 0 00 000001 		MOVEI	OP,SNDDG		; set up op code
  4794	006076'	260 17 0 00 005522*		GO	BPACKN			; set up packet data
  4795	006077'	262 17 0 00 000001 		GET	1			; restore AC1
  4796	006100'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 112
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0680

  4797
  4798					;#********************************************************************
  4799					;* MCOMP - Do data compare of a packet received
  4800					;
  4801					; For each packet received, the first data word contains the definition
  4802					; of what the packet should look like.  This routine first builds a
  4803					; packet based on that data, then it does the data compare.
  4804					;#********************************************************************
  4805
  4806	006101'	120 00 0 00 006073*	MCOMP:	DMOVE	SADDR			; get correct address
  4807	006102'	316 00 0 00 000000#		CAMN	RSPONS+4		; first word correct?
  4808	006103'	312 01 0 00 000000#		CAME	1,RSPONS+5		; yes - 2nd word correct?
  4809	006104'	263 17 0 00 000000 		RTN				; no - ignore - exit
  4810	006105'	135 11 0 00 007676'		LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  4811	006106'	302 11 0 00 000005 		CAIE	OP,DGRCV		; is this a packet received?
  4812	006107'	263 17 0 00 000000 		RTN				; no - return
  4813
  4814	006110'	261 17 0 00 010114'		PUT	TLNPAT			; save variables
  4815	006111'	261 17 0 00 006065*		PUT	TPAT			;  ...
  4816	006112'	261 17 0 00 006071*		PUT	TWORD			;  ...
  4817	006113'	261 17 0 00 006072*		PUT	TBYTE			;  ...
  4818	006114'	261 17 0 00 010113'		PUT	TLEN			;  ...
  4819	006115'	200 01 0 00 000000#		MOVE	1,RSPONS+13		; get LEN/PAT word
  4820	006116'	202 01 0 00 010114'		MOVEM	1,TLNPAT		; save it
  4821	006117'	260 17 0 00 006063'		GO	MPACKN			; build packet data
  4822	006120'	201 02 0 00 000000#		MOVEI	2,PACKET+11		; get text address of non-BSD style
  4823	006121'	332 00 0 00 005740*		SKIPE	TBSDFL			; BSD style datagram?
  4824	006122'	201 02 0 00 000000#		MOVEI	2,BUFF+4		; yes - get text address of BSD style
  4825
  4826	006123'	400 04 0 00 000000 		SETZ	4,			; initialize error count
  4827	006124'	200 03 0 00 006112*		MOVE	3,TWORD			; get word count
  4828	006125'	270 02 0 00 000003 		ADD	2,3			; get buffer address
  4829	006126'	200 00 0 02 000000 	MCOMP0:	MOVE	(2)			; get correct
  4830	006127'	312 00 0 03 000000#		CAME	RSPONS+^D13(3)		; same as actual?
  4831	006130'	350 00 0 00 000004 		AOS	4			; no - increment error count
  4832	006131'	365 03 0 00 006126'		SOJGE	3,MCOMP0		; loop till done
  4833
  4834	006132'	322 04 0 00 006136'		JUMPE	4,MCOMPX		; errors? no - exit
  4835	006133'	350 00 0 00 006340'		AOS	NPAKRD			; yes - increment data compare count
  4836	006134'	272 04 0 00 006341'		ADDM	4,NPAKRW		; count words in error
  4837	006135'	260 17 0 00 006231'		GO	SAVPK2			; save packet if needed
  4838
  4839					; Exit
  4840
  4841	006136'	262 17 0 00 010113'	MCOMPX:	GET	TLEN			; restore variables
  4842	006137'	262 17 0 00 006113*		GET	TBYTE			;  ...
  4843	006140'	262 17 0 00 006124*		GET	TWORD			;  ...
  4844	006141'	262 17 0 00 006111*		GET	TPAT			;  ...
  4845	006142'	262 17 0 00 010114'		GET	TLNPAT			;  ...
  4846	006143'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 113
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0681

  4847
  4848					;#********************************************************************
  4849					;* MCOMP2 - Compare RSPONS against contents of PACKET
  4850					;
  4851					; This is similar to MCOMP except that the packet data in PACKET is
  4852					; not constructed based on the packet data  specification contained
  4853					; in the response, in RSPONS.
  4854					;#********************************************************************
  4855
  4856	006144'	120 00 0 00 006101*	MCOMP2:	DMOVE	SADDR			; get correct address
  4857	006145'	316 00 0 00 000000#		CAMN	RSPONS+4		; first word correct?
  4858	006146'	312 01 0 00 000000#		CAME	1,RSPONS+5		; yes - 2nd word correct?
  4859	006147'	263 17 0 00 000000 		RTN				; no - ignore - exit
  4860	006150'	135 11 0 00 007677'		LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  4861	006151'	302 11 0 00 000005 		CAIE	OP,DGRCV		; is this a packet received?
  4862	006152'	263 17 0 00 000000 		RTN				; no - return
  4863
  4864	006153'	400 04 0 00 000000 		SETZ	4,			; initialize error count
  4865	006154'	200 03 0 00 006140*		MOVE	3,TWORD			; get word count
  4866	006155'	200 00 0 03 000000#	MCOM20:	MOVE	PACKET+9(3)		; get correct
  4867	006156'	312 00 0 03 000000#		CAME	RSPONS+^D13(3)		; same as actual?
  4868	006157'	350 00 0 00 000004 		AOS	4			; no - increment error count
  4869	006160'	365 03 0 00 006155'		SOJGE	3,MCOM20		; loop till done
  4870
  4871	006161'	322 04 0 00 006165'		JUMPE	4,MCOM2X		; errors? no - exit
  4872	006162'	350 00 0 00 006340'		AOS	NPAKRD			; yes - increment data compare count
  4873	006163'	272 04 0 00 006341'		ADDM	4,NPAKRW		; count words in error
  4874	006164'	260 17 0 00 006231'		GO	SAVPK2			; save packet if needed
  4875
  4876	006165'	263 17 0 00 000000 	MCOM2X:	RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 114
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0682

  4877
  4878					;#********************************************************************
  4879					;* MCHECK - Check results
  4880					;#********************************************************************
  4881
  4882	006166'	120 00 0 00 006144*	MCHECK:	DMOVE	SADDR			; get correct address
  4883	006167'	316 00 0 00 000000#		CAMN	RSPONS+7		; first word correct?
  4884	006170'	312 01 0 00 000000#		CAME	1,RSPONS+10		; yes - 2nd word correct?
  4885	006171'	263 17 0 00 000000 		RTN				; no - ignore - exit
  4886
  4887	006172'	135 11 0 00 007700'		LDB	OP,[POINT 8,RSPONS+3,23]; get op code
  4888	006173'	306 11 0 00 000005 		CAIN	OP,DGRCV		; is this a packet received?
  4889	006174'	254 00 0 00 006210'		JRST	MCHEC1			; yes - go handle
  4890	006175'	302 11 0 00 000001 		CAIE	OP,DGSNT		; is this a packet response?
  4891	006176'	263 17 0 00 000000 		RTN				; no - return
  4892
  4893					; This is a packet received by dint of 'Rsp Requested' flag or error on
  4894					; transmission.
  4895
  4896	006177'	200 02 0 00 000000#		MOVE	2,RSPONS+3		; get status word
  4897	006200'	607 02 0 00 002000 		TLNN	2,2000			; error bit set?
  4898	006201'	263 17 0 00 000000 		RTN				; no - return
  4899	006202'	135 00 0 00 007701'		LDB	[POINT 5,RSPONS+3,6]	; get error byte
  4900	006203'	306 00 0 00 000013 		CAIN	13			; runt packet?
  4901	006204'	350 00 0 00 010105'		AOS	NPAKSR			; yes - increment count
  4902	006205'	350 00 0 00 006334'		AOS	NPAKSE			; yes - incr sent status error count
  4903	006206'	260 17 0 00 006224'		GO	SAVPK1			;   and save packet data
  4904	006207'	263 17 0 00 000000 		RTN				; return
  4905
  4906					; This is an actual response
  4907
  4908	006210'	350 00 0 00 006335'	MCHEC1:	AOS	NPAKR			; increment packet recv count
  4909	006211'	200 02 0 00 000000#		MOVE	2,RSPONS+3		; get status word
  4910	006212'	607 02 0 00 002000 		TLNN	2,2000			; error bit set?
  4911	006213'	263 17 0 00 000000 		RTN				; no - exit
  4912	006214'	350 00 0 00 006336'		AOS	NPAKRE			; yes - incr recv status error count
  4913	006215'	260 17 0 00 006224'		GO	SAVPK1			; save packet data
  4914	006216'	135 00 0 00 007702'		LDB	[POINT 5,2,6]		; get status
  4915	006217'	306 00 0 00 000007 		CAIN	7			; CRC Error?
  4916	006220'	350 00 0 00 006337'		AOS	NPAKRC			; increment recv CRC error count
  4917	006221'	306 00 0 00 000007 		CAIN	7			; CRC Error?
  4918	006222'	350 00 0 00 010107'		AOS	NRCRC			; increment expected CRC error count
  4919	006223'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 115
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0683

  4920
  4921					;#********************************************************************
  4922					;* SAVPK1 - Save packet data (status error packet)
  4923					;* SAVPK2 - Save packet data (data error packet)
  4924					;#********************************************************************
  4925
  4926	006224'	200 00 0 00 007703'	SAVPK1:	MOVE	[RSPONS,,PKDAT1]	; build BLT pointer
  4927	006225'	336 00 0 00 006236'		SKIPN	PKSAV1			; already saving some data?
  4928	006226'	251 00 0 00 006255'		BLT	PKDAT1+^D14		; no - save the data
  4929	006227'	476 00 0 00 006236'		SETOM	PKSAV1			; set the flag
  4930	006230'	263 17 0 00 000000 		RTN				; return
  4931
  4932	006231'	200 00 0 00 007704'	SAVPK2:	MOVE	[RSPONS,,PKDAT2]	; build BLT pointer
  4933	006232'	336 00 0 00 006256'		SKIPN	PKSAV2			; already saving some data?
  4934	006233'	251 00 0 00 006275'		BLT	PKDAT2+^D14		; no - save the data
  4935	006234'	476 00 0 00 006256'		SETOM	PKSAV2			; set the flag
  4936	006235'	263 17 0 00 000000 		RTN				; return
  4937
  4938					; Save data areas
  4939
  4940	006236'	000000	000000		PKSAV1:	0				; 'have the data' flag
  4941	006237'				PKDAT1:	BLOCK	^D15			; status error data
  4942
  4943	006256'	000000	000000		PKSAV2:	0				; 'have the data' flag
  4944	006257'				PKDAT2:	BLOCK	^D15			; data error data
  4945
  4946
  4947					;#********************************************************************
  4948					; PDUMP - Print addl data
  4949					;#********************************************************************
  4950
  4951	006276'	332 00 0 00 006236'	PDUMP:	SKIPE	PKSAV1			; have the status error data?
  4952						GO	[TMSGC	<**** Packet with status error ****>
  4953							 MOVEI	2,PKDAT1	; yes - get address of data to print
  4954							 GO	PKPNT		;   and print it
  4955							 SETZM	PKSAV1
  4956	006277'	260 17 0 00 007715'			 RTN]
  4957	006300'	332 00 0 00 006256'		SKIPE	PKSAV2			; have the data error data?
  4958						GO	[TMSGC	<**** Packet with data error ****>
  4959							 MOVEI	2,PKDAT2	; yes - get address of data to print
  4960							 GO	PKPNT		;   and print it
  4961							 SETZM	PKSAV2
  4962	006301'	260 17 0 00 007731'			 RTN]
  4963	006302'	336 00 0 00 000000*		SKIPN	DDEBUG			; dump on error flag set?
  4964	006303'	263 17 0 00 000000 		RTN				; no - exit
  4965	006304'	332 00 0 00 010101'		SKIPE	DUMPP			; 'dump possible' flag set?
  4966	006305'	260 17 0 00 000000*		GO	DDUMP			; yes - dump
  4967	006306'	263 17 0 00 000000 		RTN				; no - exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 116
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0684

  4968
  4969					;#********************************************************************
  4970					;* PKPNT - Print special saved packet data
  4971					;#********************************************************************
  4972
  4973	006307'	474 03 0 00 000000 	PKPNT:	SETO	3,			; clear word pointer
  4974	006310'	350 00 0 00 000003 	PKPN0:	AOS	3			; point to next word
  4975	006311'	301 03 0 00 000017 		CAIL	3,^D15			; done yet?
  4976	006312'	263 17 0 00 000000 		RTN				; yes - return
  4977	006313'	037 00 0 00 007736'		TMSGC	<RSPONS+>		; print word address
  4978	006314'	200 00 0 00 000003 		MOVE	3			;  ...
  4979	006315'	037 16 0 00 000003 		PNTOCS				;  ...
  4980	006316'	037 00 0 00 007740'		TMSG	</ >
  4981	006317'	200 01 0 00 000002 		MOVE	1,2			; get data address
  4982	006320'	270 01 0 00 000003 		ADD	1,3			; add in offset
  4983	006321'	200 00 0 01 000000 		MOVE	(1)			; get data
  4984	006322'	037 13 0 00 000000 		PNTHW				; print it
  4985	006323'	254 00 0 00 006310'		JRST	PKPN0			; loop till done
  4986
  4987
  4988					;#********************************************************************
  4989					;* LODERR - Print ucode load error
  4990					;#********************************************************************
  4991
  4992	006324'	336 00 0 00 010112'	LODERR:	SKIPN	TERMES			; ucode load error?
  4993	006325'	263 17 0 00 000000 		RTN				; no - return
  4994	006326'	037 00 0 00 030242 		PCRL
  4995	006327'	550 00 0 00 010112'		HRRZ	TERMES			; get error message
  4996	006330'	332 00 0 00 010112'		SKIPE	TERMES			; any error message given?
  4997	006331'	260 17 1 00 000000 		GO	@0			; yes - print it
  4998	006332'	263 17 0 00 000000 		RTN				; no - return
  4999
  5000
  5001					;#********************************************************************
  5002					; Miscellaneous data
  5003					;#********************************************************************
  5004
  5005	006333'	000000	000000		NPAKS:	0				; sent count
  5006	006334'	000000	000000		NPAKSE:	0				; sent status error count
  5007	006335'	000000	000000		NPAKR:	0				; recv count
  5008	006336'	000000	000000		NPAKRE:	0				; recv status error count
  5009	006337'	000000	000000		NPAKRC:	0				; recv CRC error count
  5010	006340'	000000	000000		NPAKRD:	0				; recv dt.cmp error count (pkts)
  5011	006341'	000000	000000		NPAKRW:	0				; recv dt.cmp error count (words)
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 117
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0685

  5012
  5013					;#********************************************************************
  5014					;* CHKDEB - Check for debug mode (transfer entry from cmd to rsp queue)
  5015					;#********************************************************************
  5016
  5017	006342'	336 00 0 00 000000*	CHKDEB:	SKIPN	UDEBUG			; debug mode?
  5018	006343'	263 17 0 00 000000 		RTN				; no - return
  5019	006344'	261 17 0 00 000000 		RPUT	(0,1,2,3)		; save AC's
  5020
  5021
  5022					; Get command queue data
  5023
  5024	006350'	400 13 0 00 000000 		SETZ	Q,			; set up cmd queue
  5025	006351'	260 17 0 00 005536*		GO	CHKINT			; get queue contents
  5026	006352'	254 00 0 00 006366'		JRST	CHKDEX			; failed - exit
  5027
  5028					; Remove packet from the command queue and reset interlock.
  5029
  5030	006353'	260 17 0 00 000000*		GO	GETQUE			; get a queue entry
  5031						JRST	[SETOM	PCB		; empty - reset interlock word
  5032	006354'	254 00 0 00 007741'			 JRST	CHKDEX]		;    and exit
  5033	006355'	202 01 0 00 000000*		MOVEM	1,NEWENT		; got an entry - save address
  5034	006356'	476 00 0 00 005513*		SETOM	RQAFLG			; set rsp queue available flag
  5035	006357'	476 00 0 00 000000*		SETOM	PCB			; reset interlock word
  5036	006360'	504 00 0 00 006355*		HRL	NEWENT			; build a BLT pointer
  5037
  5038					; Put entry on rsponse queue
  5039
  5040	006361'	201 13 0 00 000001 		MOVEI	Q,1			; set up for response queue
  5041	006362'	260 17 0 00 006351*		GO	CHKINT			; check interlock word
  5042	006363'	334 00 0 00 000000 		SKIPA				; failed - continue
  5043	006364'	260 17 0 00 000000*		GO	PUTQUE			; insert back on queue
  5044	006365'	476 00 0 00 000000#		SETOM	PCB+4			; reset interlock
  5045
  5046					; Exit
  5047
  5048	006366'	262 17 0 00 000003 	CHKDEX:	RGET	(3,2,1,0)		; restore AC's
  5049
  5050	006372'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 118
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0686

  5051
  5052					;#********************************************************************
  5053					;* PIDLE - Start the port and wait for IDLE bit to set in CSR
  5054					;
  5055					; Return:  +1 - Error - never reached idle loop
  5056					;	   +2 - Succeeded
  5057					;#********************************************************************
  5058
  5059	006373'	261 17 0 00 000000 	PIDLE:	RPUT	(0,1,2)			; save AC's
  5060
  5061	006376'	260 17 0 00 005705*		GO	IPACLR			; clear port
  5062
  5063					; Set up initial CCW list
  5064
  5065	006377'	260 17 0 00 000000*		GO	CHINIT			; initialize software
  5066	006400'	260 17 1 00 010110'		GO	@PSPEC#			; call special routine
  5067
  5068					; Start it up
  5069
  5070	006401'	400 01 0 00 000000 		SETZ	1,			; clear data
  5071	006402'	260 17 0 00 000000*		GO	LDRAR			; clear RAR contents
  5072	006403'	201 01 0 00 000010 		MOVEI	1,MPRUN			; get 'MPRun' bit
  5073	006404'	336 00 0 00 030037 		SKIPN	USER			; user mode?
  5074	006405'	660 01 0 00 000004 		TRO	1,4			; no - set PIA bits
  5075	006406'	260 17 0 00 005761*		GO	LDCSR			; start up the port
  5076	006407'	005 00 0 00 000144 		DELAY	^D100			; wait of 100 milliseconds
  5077	006410'	260 17 0 00 005756*		GO	RDCSR			; read CSR register
  5078	006411'	254 00 0 00 006414'		JRST	PIDLEE			; error - exit
  5079	006412'	602 01 0 00 000010 		TRNE	1,MPRUN			; still running?
  5080	006413'	350 00 0 17 777775 		AOS	-3(P)			; yes - set up proper return
  5081	006414'	262 17 0 00 000002 	PIDLEE:	RGET	(2,1,0)			; restore AC's
  5082
  5083	006417'	263 17 0 00 000000 		RTN				; return
  5084
  5085
  5086					;#********************************************************************
  5087					;* QCHECK - Check for received type of free queue
  5088					;#********************************************************************
  5089
  5090	006420'	302 11 0 00 000005 	QCHECK:	CAIE	OP,DGRCV		; is this a packet received?
  5091	006421'	263 17 0 00 000000 		RTN				; no - return
  5092	006422'	120 00 0 00 006166*		DMOVE	SADDR			; get correct address
  5093	006423'	316 00 0 00 000000#		CAMN	RSPONS+7		; first word correct?
  5094	006424'	312 01 0 00 000000#		CAME	1,RSPONS+10		; yes - 2nd word correct?
  5095	006425'	263 17 0 00 000000 		RTN				; no - ignore - exit
  5096	006426'	200 00 0 00 000000*		MOVE	RSPQUE			; get queue number of packet
  5097	006427'	306 00 0 00 000002 		CAIN	2			; UNK free queue?
  5098	006430'	350 00 0 00 010106'		AOS	NPAKUN			; increment # packets on UNK free queue
  5099	006431'	306 00 0 00 000003 		CAIN	3			; PTT free queue?
  5100	006432'	350 00 0 00 010104'		AOS	NPAKPT			; increment # packets on PTT free queue
  5101	006433'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 119
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0687

  5102
  5103					;#********************************************************************
  5104					;* LOADPM - Load PTT table and MCAT tables and H4000 mode (via port commands)
  5105					;#********************************************************************
  5106
  5107	006434'	261 17 0 00 000000 	LOADPM:	RPUT	(0,1,2,6,7)		; save AC's
  5108
  5109	006441'	201 07 0 00 000003 		MOVEI	7,3			; number of retries allowed
  5110	006442'	400 15 0 00 000000 	LOADP0:	SETZ	ERFLG,			; clear error flag
  5111
  5112					; Get rid of any unexpected responses on the response queue
  5113
  5114	006443'	260 17 0 00 005775*		GO	CHKRSP			; check for response entry
  5115	006444'	334 00 0 00 000000 		SKIPA				; no more - continue
  5116	006445'	254 00 0 00 006443'		JRST	.-2			; found one - keep looking
  5117
  5118					; Build the PTT command and put on the queue
  5119
  5120	006446'	201 11 0 00 000003 		MOVEI	OP,LDPTT		; get op code to load PTT table
  5121	006447'	476 00 0 00 005736*		SETOM	TRSFLG			; set 'response requested' flag
  5122	006450'	402 00 0 00 006121*		SETZM	TBSDFL			; set to non-BSD style datagram
  5123	006451'	402 00 0 00 005737*		SETZM	TPDFLG			; clear pad flag
  5124	006452'	260 17 0 00 006060*		GO	BPACK			; build a packet
  5125	006453'	260 17 0 00 005753*		GO	INSQUE			; insert in queue
  5126	006454'	350 00 0 00 006544'		AOS	LDERR1			; error - ignore
  5127	006455'	350 00 0 00 006545'		AOS	LDERR2			; error - ignore
  5128
  5129					; Build the MCAT command and put on the queue
  5130
  5131	006456'	201 11 0 00 000002 		MOVEI	OP,LDMCAT		; get op code to load MCAT table
  5132	006457'	260 17 0 00 006452*		GO	BPACK			; build a packet
  5133	006460'	260 17 0 00 006453*		GO	INSQUE			; insert in queue
  5134	006461'	350 00 0 00 006546'		AOS	LDERR3			; error - ignore
  5135	006462'	350 00 0 00 006547'		AOS	LDERR4			; error - ignore
  5136
  5137					; Build the WRNSA command and put on the queue
  5138
  5139	006463'	201 11 0 00 000011 		MOVEI	OP,WRNSA		; get op code to write NSA
  5140	006464'	402 00 0 00 000000*		SETZM	TAMC			; clear AMC bit
  5141	006465'	402 00 0 00 000000*		SETZM	TH4000			; set H4000 bit
  5142	006466'	350 00 0 00 006465*		AOS	TH4000			;   ...
  5143	006467'	402 00 0 00 000000*		SETZM	TPRMSC			; clear PRMSC bit
  5144	006470'	201 00 0 00 000005 		MOVEI	5			; set default retry
  5145	006471'	202 00 0 00 000000*		MOVEM	TRETRY			;   count
  5146	006472'	260 17 0 00 006457*		GO	BPACK			; build a packet
  5147	006473'	260 17 0 00 006460*		GO	INSQUE			; insert in queue
  5148	006474'	350 00 0 00 006550'		AOS	LDERR5			; error - ignore
  5149	006475'	350 00 0 00 006551'		AOS	LDERR6			; error - ignore
  5150
  5151					; Send the packets
  5152
  5153	006476'	201 01 0 00 000430 		MOVEI	1,CMDQAV!PENABL!MPRUN	; get run/enable bits
  5154	006477'	260 17 0 00 006406*		GO	LDCSR			; get the port going
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 120
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0688

  5155	006500'	400 06 0 00 000000 		SETZ	6,			; clear packet count
  5156
  5157					; Wait for a response
  5158
  5159	006501'	400 03 0 00 000000 		SETZ	3,			; set up for RUNTME
  5160	006502'	260 17 0 00 005771*		GO	RUNTME			; get current run time
  5161	006503'	200 01 0 00 005772*		MOVE	1,DEBTIM		; get time in milliseconds
  5162	006504'	271 01 0 00 011610 		ADDI	1,^D5000		; wait an additional 5 seconds
  5163	006505'	202 01 0 00 010102'		MOVEM	1,ENDTIM		; save maximum time
  5164	006506'	400 03 0 00 000000 	LOADP1:	SETZ	3,			; set up for RUNTME
  5165	006507'	260 17 0 00 006502*		GO	RUNTME			; get current run time
  5166	006510'	200 01 0 00 006503*		MOVE	1,DEBTIM		; get time in milliseconds
  5167	006511'	313 01 0 00 010102'		CAMLE	1,ENDTIM		; time expired yet?
  5168						JRST	[SETO	ERFLG,		; yes - timeout error
  5169	006512'	254 00 0 00 007743'			 JRST	LOADPX]
  5170	006513'	260 17 0 00 006443*	LOADP2:	GO	CHKRSP			; check for response entry
  5171	006514'	254 00 0 00 006506'		JRST	LOADP1			; no responses - check wait time
  5172
  5173					; Got a response - now decode it
  5174
  5175	006515'	135 02 0 00 007745'		LDB	2,[POINT 8,RSPONS+3,23]	; get opcode
  5176	006516'	306 02 0 00 000003 		CAIN	2,LDPTT			; LDPTT packet?
  5177	006517'	350 00 0 00 000006 		AOS	6			; yes - increment packet count
  5178	006520'	306 02 0 00 000002 		CAIN	2,LDMCAT		; LDMCAT packet?
  5179	006521'	350 00 0 00 000006 		AOS	6			; yes - increment packet count
  5180	006522'	306 02 0 00 000011 		CAIN	2,WRNSA			; WRNSA packet?
  5181	006523'	350 00 0 00 000006 		AOS	6			; yes - increment packet count
  5182	006524'	302 06 0 00 000003 		CAIE	6,3			; receive all 3 packets yet?
  5183	006525'	254 00 0 00 006513'		JRST	LOADP2			; no - check for another packet
  5184
  5185					; Exit
  5186
  5187	006526'	332 00 0 00 000015 	LOADPX:	SKIPE	ERFLG			; error flag set?
  5188	006527'	350 00 0 00 006543'		AOS	LDERR0			; yes - increment error count
  5189	006530'	332 00 0 00 000015 		SKIPE	ERFLG			; error flag set?
  5190	006531'	367 07 0 00 006442'		SOJG	7,LOADP0		; yes - retry until done
  5191	006532'	262 17 0 00 000007 		RGET	(7,6,2,1,0)		; restore AC's
  5192
  5193	006537'	263 17 0 00 000000 		RTN				; exit
  5194
  5195	006540'	160000	007746'		LOADPE:	TXALL!MSG![ASCIZ ^Could not successfully issue LDPTT/LDMCAT/WRNSA commands^]
  5196	006541'	260000	006276'			TXALL!CALL!PDUMP
  5197	006542'	170000	007762'			LAST!TXALL!MSG![ASCIZ /FRU:  NIA module/]
  5198
  5199					; Miscellaneous debug variables
  5200
  5201	006543'	000000	000000		LDERR0:	0
  5202	006544'	000000	000000		LDERR1:	0
  5203	006545'	000000	000000		LDERR2:	0
  5204	006546'	000000	000000		LDERR3:	0
  5205	006547'	000000	000000		LDERR4:	0
  5206	006550'	000000	000000		LDERR5:	0
  5207	006551'	000000	000000		LDERR6:	0
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 121
DFNIA3	MAC	30-Nov-83 16:40		Miscellaneous Routines                                                             SEQ 0689

  5208
  5209					;#********************************************************************
  5210					; End of DFNIA3.MAC
  5211					;#********************************************************************
  5212
  5213						XLIST
  5214
NO ERRORS DETECTED

PROGRAM BREAK IS 010115
CPU TIME USED 00:15.665

80P CORE USED
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page S-1
DFNIA3	MAC	30-Nov-83 16:40		SYMBOL TABLE                                                                       SEQ 0690

ALTF		005527'	ext	LOADP2		006513'		MC23		005166'		ME6PN		000456'		
BPACK		006472'	ext	LOADPE		006540'		MC24		005417'		ME7		000646'		
BPACKN		006076'	ext	LOADPM		006434'		MC25		005640'		ME7PN		000651'		
BUFF		000000	ext	LOADPX		006526'		MC27		006040'		MPACK		006046'		
BUFGEN		000000	ext	LODERR		006324'		MC4		000067'		MPACKN		006063'		
CALL	200000	000000	spd	MA10		001063'		MC5		000246'		MPRUN		000010	spd	
CHINIT		006377'	ext	MA11		001342'		MC5P0		000255'		MSG	100000	000000	spd	
CHKDEB		006342'		MA12		001641'		MC5P1		000264'		MTABLE		000000	ext	
CHKDEX		006366'		MA13		002535'		MC5P2		000274'		MVPNT		000000	ext	
CHKINT		006362'	ext	MA14		003026'		MC5PN		000251'		NEWENT		006360'	ext	
CHKRQV		005577'	ext	MA15		003261'		MC6		000445'		NPAKPT		010104'		
CHKRSP		006513'	ext	MA16		003516'		MC7		000640'		NPAKR		006335'		
CMDQAV		000400	spd	MA17		003760'		MCAT17		003404'	ext	NPAKRC		006337'		
CNTPNT		006026'	ext	MA20		004206'		MCHEC1		006210'		NPAKRD		006340'		
CNTRC		000004	spd	MA21		004457'		MCHECK		006166'		NPAKRE		006336'		
CONPNT		005676'	ext	MA22		004724'		MCOFF		010103'		NPAKRW		006341'		
CONTBL		000000	ext	MA23		005161'		MCOM20		006155'		NPAKS		006333'		
CONVIR		007635'	ext	MA24		005412'		MCOM2X		006165'		NPAKSE		006334'		
CRCINI		001731'		MA25		005633'		MCOMP		006101'		NPAKSR		010105'		
CRCOFF		001740'	int	MA27		006033'		MCOMP0		006126'		NPAKUN		010106'		
CRCSAV		001737'	int	MA4		000061'		MCOMP2		006144'		NRCRC		010107'		
CRCTAB		001741'	int	MA4PN		000077'		MCOMPX		006136'		NSAPNT		000465'		
CSRPNT		000103'	ext	MA5		000241'		MD10		001073'		NSARD		000010	spd	
DCOMP	000040	000000	spd	MA6		000440'		MD10PN		001077'		NUMENT		005553'	ext	
DDEBUG		006302'	ext	MA7		000633'		MD11		001352'		OP		000011		
DDUMP		006305'	ext	MB10		001065'		MD11PN		001356'		P		000017		
DEBTIM		006510'	ext	MB11		001344'		MD12		001651'		PACKET		000000	ext	
DELAY	005000	000000		MB12		001643'		MD12PN		001655'		PASCNT		030047		
DGRCV		000005	spd	MB13		002537'		MD13		002545'		PCB		007741'	ext	
DGSNT		000001	spd	MB14		003030'		MD13PN		002551'		PCRL	037000	030242		
DUMPP		010101'		MB15		003263'		MD14		003036'		PDSABL		000040	spd	
ECOMP	000020	000000	spd	MB16		003520'		MD14PN		003042'		PDUMP		006276'	ent	
ENDTIM		010102'		MB17		003762'		MD15		003271'		PENABL		000020	spd	
ERFLG		000015		MB20		004210'		MD15PN		003275'		PIDLE		006373'		
GET	262740	000000		MB21		004461'		MD16		003526'		PIDLEE		006414'		
GETQUE		006353'	ext	MB22		004726'		MD16PN		003532'		PK		000012		
GO	260740	000000		MB23		005163'		MD17		003770'		PKDAT1		006237'		
INSQUE		006473'	ext	MB24		005414'		MD17PN		003774'		PKDAT2		006257'		
IPACLR		006376'	ext	MB25		005635'		MD20		004216'		PKPN0		006310'		
ISTOP		006031'	ext	MB27		006035'		MD20PN		004222'		PKPNT		006307'		
LAST	010000	000000	spd	MB4		000063'		MD21		004467'		PKSAV1		006236'		
LCHAR		005532'	ext	MB5		000243'		MD21PN		004473'		PKSAV2		006256'		
LDCSR		006775'	ext	MB6		000442'		MD22		004734'		PNT3	037140	000000		
LDERR0		006543'		MB7		000635'		MD22PN		004740'		PNTDCP	004000	000000		
LDERR1		006544'		MC10		001070'		MD23		005171'		PNTDEC	037640	000000		
LDERR2		006545'		MC11		001347'		MD23PN		005175'		PNTHW	037540	000000		
LDERR3		006546'		MC12		001646'		MD24		005422'		PNTMSG	037000	000000		
LDERR4		006547'		MC13		002542'		MD24PN		005426'		PNTOCS	037700	000003		
LDERR5		006550'		MC14		003033'		MD25		005643'		PPCB		000000	ext	
LDERR6		006551'		MC15		003266'		MD25PN		005647'		PQUEUE		000000	ext	
LDMCAT		000002	spd	MC16		003523'		MD27		006043'		PSP	037000	000040		
LDPTT		000003	spd	MC17		003765'		MD4		000073'		PSPEC		010110'		
LDRAR		006402'	ext	MC20		004213'		MD6		000450'		PSTAMP		005533'	ext	
LOADP0		006442'		MC21		004464'		MD7		000643'		PTABLE		004514'	ext	
LOADP1		006506'		MC22		004731'		ME6		000453'		PTIME		006023'	ext	
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page S-2
DFNIA3	MAC	30-Nov-83 16:40		SYMBOL TABLE                                                                       SEQ 0691

PTTFQ		005540'	ext	T5ORD		000310'		TC21		004376'		TFMFLG		005735'	ext	
PUT	261740	000000		T5PNT		000307'		TC22		004643'		TG10		001027'		
PUTQUE		006364'	ext	T7ADDR		000660'		TC23		005100'		TG11		001304'		
Q		000013		TA10		000744'		TC24		005334'		TG12		001565'		
QCHECK		006420'		TA11		001215'		TC25		005555'		TG13		002463'		
RCCNT		000004	spd	TA12		001475'		TC27		006022'		TG14		002754'		
RDADDR		000000	ext	TA13		002373'		TC5		000170'		TG15		003237'		
RDCSR		006771'	ext	TA14		002664'		TD10		001007'		TG16		003474'		
RDLAR		000000	ext	TA15		003147'		TD11		001264'		TG17		003725'		
RDNSA		000010	spd	TA16		003400'		TD12		001517'		TG20		004161'		
RESQAV		000200	spd	TA17		003635'		TD13		002415'		TG21		004427'		
RQAFLG		007637'	ext	TA20		004075'		TD14		002706'		TG22		004674'		
RSPONS		006025'	ext	TA21		004337'		TD15		003217'		TG23		005131'		
RSPQUE		006426'	ext	TA22		004603'		TD16		003454'		TG24		005363'		
RTN	263740	000000		TA23		005040'		TD17		003702'		TG25		005604'		
RUNTME		006507'	ext	TA24		005275'		TD20		004137'		TG5		000233'		
RWAIT		000166'	ext	TA25		005516'		TD21		004406'		TH10		001034'		
SADDR		006422'	ext	TA26		005676'		TD22		004653'		TH11		001311'		
SAVPK1		006224'		TA27		005770'		TD23		005110'		TH12		001574'		
SAVPK2		006231'		TA27A		005775'		TD24		005342'		TH13		002472'		
SCOPER	027000	000000		TA5		000142'		TD25		005563'		TH14		002763'		
SDEBUG		010111'		TA6		000405'		TD5		000207'		TH15		003244'		
SETDSA		006030'	ext	TA6A		000412'		TDEST		006074'	ext	TH16		003501'		
SETENA		005725'	ext	TA7		000600'		TE10		001014'		TH17		003733'		
SNDDG		000001	spd	TA7A		000605'		TE11		001271'		TH20		004166'		
STARCV		000000	ext	TAMC		006464'	ext	TE12		001551'		TH21		004434'		
STASNT		000000	ext	TB10		000750'		TE13		002447'		TH22		004701'		
T10PAK		000310	spd	TB11		001225'		TE14		002740'		TH23		005136'		
T11LEN		000100	spd	TB12		001501'		TE15		003224'		TH24		005370'		
T11PAK		000500	spd	TB13		002377'		TE16		003461'		TH25		005611'		
T12LEN		001700'		TB14		002670'		TE17		003711'		TH4000		006466'	ext	
T12PAK		001404'		TB15		003153'		TE20		004144'		TI12		001602'		
T12REP		001403'		TB16		003404'		TE21		004413'		TI13		002500'		
T13PAK		003410	spd	TB17		003647'		TE22		004660'		TI14		002771'		
T14PAK		003410	spd	TB20		004077'		TE23		005115'		TI17		003740'		
T15LEN		000100	spd	TB21		004346'		TE24		005347'		TIDLE		005716'	ext	
T15PAK		000020	spd	TB22		004613'		TE25		005570'		TJ12		001607'		
T15SPC		003305'		TB23		005050'		TE5		000217'		TJ13		002505'		
T16LEN		000100	spd	TB24		005303'		TERMES		010112'		TJ14		002776'		
T16PAK		000057	spd	TB25		005524'		TF10		001021'		TLEN		010113'		
T16SPC		003542'		TB27		006003'		TF11		001276'		TLNPAT		010114'		
T17PAK		000240	spd	TB5		000166'		TF12		001560'		TPAT		007177'	ext	
T20PAK		000310	spd	TB6		000420'		TF13		002456'		TPCB		000016'	ext	
T20SP0		004242'		TB7		000613'		TF14		002747'		TPDFLG		006451'	ext	
T20SPC		004233'		TBSDFL		006450'	ext	TF15		003231'		TPRMSC		006467'	ext	
T21LEN		000100	spd	TBYTE		006137'	ext	TF16		003466'		TPTTVL		005500'	ext	
T21PAK		000020	spd	TC10		001000'		TF17		003716'		TRACE		005701'	ext	
T21SPC		004511'		TC11		001255'		TF20		004153'		TREGD		000137'	ext	
T22LEN		000100	spd	TC12		001515'		TF21		004420'		TREGN		000136'	ext	
T22PAK		000020	spd	TC13		002413'		TF22		004665'		TRETRY		006471'	ext	
T23LEN		000100	spd	TC14		002704'		TF23		005122'		TRSFLG		006447'	ext	
T23PAK		000020	spd	TC15		003210'		TF24		005356'		TSLOAD		000000	ext	
T24PAK		000100	spd	TC16		003445'		TF25		005577'		TST10		000662'	ent	
T25PAK		000051	spd	TC17		003651'		TF5		000223'		TST11		001123'	ent	
T5LIS		000317'		TC20		004130'		TFLOAD		005707'	ext	TST12		001405'	ent	
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page S-3
DFNIA3	MAC	30-Nov-83 16:40		SYMBOL TABLE                                                                       SEQ 0692

TST13		002303'	ent	
TST14		002574'	ent	
TST15		003065'	ent	
TST16		003315'	ent	
TST17		003552'	ent	
TST20		004005'	ent	
TST21		004252'	ent	
TST22		004521'	ent	
TST23		004756'	ent	
TST24		005213'	ent	
TST25		005441'	ent	
TST26		005662'	ent	
TST27		005700'	ent	
TST4		000000'	ent	
TST5		000105'	ent	
TST6		000325'	ent	
TST7		000502'	ent	
TSTREP		006010'	ext	
TSTSUB		005733'	ext	
TTALTM	037340	000003		
TWORD		007202'	ext	
TX10		001060'		
TX11		001335'		
TX12		001636'		
TX13		002532'		
TX14		003023'		
TX15		003254'		
TX16		003511'		
TX17		003753'		
TX20		004201'		
TX21		004452'		
TX22		004717'		
TX23		005154'		
TX24		005405'		
TX25		005626'		
TX27		006030'		
TX4		000056'		
TX5		000236'		
TX6		000435'		
TX7		000630'		
TXADDL		002661'	ext	
TXALL	060000	000000	spd	
TXNOT	040000	000000	spd	
UDEBUG		006342'	ext	
USER		030037		
WRNSA		000011	spd	
WRPLI		000006	spd	
Z3		000000'		
.RREXP		000000	ext	
ALTF	    21#	   851	   852	  1126	  1127	  1436	  1437	  1792	  1793	  2102	  2103	  2374	  2375	  2639
	  2640	  2895	  2896	  3143	  3144	  3416	  3417	  3682	  3683	  3936	  3937	  4189	  4190	  4428     SEQ 0693
	  4429
BPACK	    20#	   236	   461	   636	   652	   835	  1099	  3930	  4662	  4774	  5124	  5132	  5146
BPACKN	    20#	  2368	  2633	  2883	  3123	  3410	  3676	  4182	  4421	  4794
BUFF	    16#	  4824
BUFGEN	    32#
CALL	   149	   153	   154	   158	   159	   163	   164	   328	   332	   335	   336	   523	   527	   531
	   535	   539	   715	   719	   723	   727	   731	   962	   966	   970	   974	   975	  1239	  1243
	  1247	  1251	  1252	  1557	  1561	  1565	  1569	  1570	  1911	  1915	  1919	  1923	  1924	  2221
	  2225	  2229	  2233	  2234	  2475	  2479	  2483	  2487	  2488	  2740	  2744	  2748	  2752	  2753
	  3005	  3009	  3013	  3017	  3018	  3253	  3257	  3261	  3265	  3266	  3526	  3530	  3534	  3538
	  3539	  3792	  3796	  3800	  3804	  3805	  4046	  4050	  4054	  4058	  4059	  4299	  4303	  4307
	  4311	  4312	  4538	  4542	  4546	  4550	  4551	  4743	  4747	  4751	  4755	  5196
CHINIT	    28#	  5065
CHKDEB	   890	   920	  1165	  1195	  1477	  1509	  1833	  1865	  2143	  2175	  2935	  2967	  3183	  3215
	  4229	  4260	  4468	  4499	  5017#
CHKDEX	  5026	  5032	  5048#
CHKINT	    21#	   860	  1135	  1446	  1802	  2112	  2385	  2650	  2904	  3152	  3427	  3693	  3947	  4198
	  4437	  5025	  5041
CHKRQV	    23#	   883	   913	  1158	  1188	  1470	  1502	  1826	  1858	  2136	  2168	  2408	  2437	  2673
	  2702	  2928	  2960	  3176	  3208	  3450	  3480	  3716	  3746	  3970	  4000	  4222	  4253	  4461
	  4492
CHKRSP	    20#	   266	   486	   678	   884	   914	  1159	  1189	  1471	  1503	  1827	  1859	  2137	  2169
	  2409	  2438	  2674	  2703	  2929	  2961	  3177	  3209	  3451	  3481	  3717	  3747	  3971	  4001
	  4223	  4254	  4462	  4493	  4695	  5114	  5170
CMDQAV	   254	   467	   648	   659	   877	  1152	  1464	  1820	  2130	  2402	  2667	  2922	  3170	  3444
	  3710	  3964	  4216	  4455	  4676	  5153
CNTPNT	    19#	  4732
CNTRC	  4701
CONPNT	    19#	  4591
CONTBL	    19#
CONVIR	    21#	   887	   917	  1162	  1192	  1474	  1506	  1830	  1862	  2140	  2172	  2412	  2441	  2677
	  2706	  2932	  2964	  3180	  3212	  3454	  3484	  3720	  3750	  3974	  4004	  4226	  4257	  4465
	  4496
CRCINI	  1369	  1625#	  1725	  2035	  2862
CRCOFF	    12	  1389	  1633#	  1745	  2055
CRCSAV	    12	  1101	  1111	  1391	  1632#	  1747	  2057
CRCTAB	    12	  1390	  1626	  1627	  1628	  1634#	  1746	  2056
CSRPNT	    17#	   171
DCOMP	   112
DDEBUG	    21#	  4963
DDUMP	    21#	  4966
DEBTIM	    27#	   261	   295	   474	   480	   666	   672	   910	   927	  1185	  1202	  1499	  1519	  1855
	  1875	  2165	  2185	  2434	  2450	  2699	  2715	  2957	  2977	  3205	  3225	  3477	  3495	  3743
	  3761	  3997	  4015	  4250	  4269	  4489	  4508	  4683	  4689	  5161	  5166
DGRCV	  4811	  4861	  4888	  5090
DGSNT	  4890
DUMPP	    75	   205	   417	   455	   592	   630	   779#	   779	   838	   901	  1034	  1104	  1176	  1317
	  1396	  1488	  1673	  1752	  1844	  1983	  2062	  2154	  2291	  2353	  2425	  2544	  2607	  2690
	  2809	  2870	  2946	  3065	  3131	  3194	  3332	  3397	  3468	  3600	  3662	  3734	  3854	  3916
	  3988	  4113	  4173	  4239	  4360	  4412	  4478	  4618	  4656	  4965
ECOMP	   130
ENDTIM	   263#	   263	   296	   476#	   476	   481	   668#	   668	   673	   912#	   912	   928	  1187#	  1187
	  1203	  1501#	  1501	  1520	  1857#	  1857	  1876	  2167#	  2167	  2186	  2436#	  2436	  2451	  2701#    SEQ 0694
	  2701	  2716	  2959#	  2959	  2978	  3207#	  3207	  3226	  3479#	  3479	  3496	  3745#	  3745	  3762
	  3999#	  3999	  4016	  4252#	  4252	  4270	  4491#	  4491	  4509	  4685#	  4685	  4690	  5163	  5167
ERFLG	    80	    89	    95	   103	   113	   121	   131	   139	   210	   215	   221	   225	   309	   311
	   425	   430	   436	   440	   446	   450	   498	   502	   510	   600	   605	   611	   615	   621
	   625	   690	   694	   702	   784	   789	   794	   798	   803	   807	   935	   938	   941	   944
	   946	   949	  1039	  1044	  1049	  1053	  1058	  1062	  1070	  1210	  1213	  1216	  1219	  1221
	  1224	  1322	  1327	  1332	  1336	  1341	  1345	  1353	  1529	  1533	  1538	  1540	  1542	  1544
	  1678	  1683	  1688	  1692	  1697	  1701	  1709	  1885	  1889	  1892	  1894	  1896	  1898	  1988
	  1993	  1998	  2002	  2007	  2011	  2019	  2195	  2199	  2202	  2204	  2206	  2208	  2296	  2301
	  2308	  2313	  2318	  2322	  2330	  2458	  2460	  2549	  2554	  2561	  2566	  2571	  2575	  2583
	  2723	  2725	  2814	  2819	  2824	  2828	  2833	  2837	  2845	  2987	  2990	  3070	  3075	  3082
	  3087	  3092	  3096	  3104	  3235	  3238	  3337	  3342	  3349	  3354	  3359	  3363	  3371	  3503
	  3506	  3508	  3511	  3605	  3610	  3615	  3619	  3624	  3628	  3636	  3769	  3772	  3774	  3777
	  3859	  3864	  3869	  3873	  3878	  3882	  3890	  4023	  4026	  4028	  4031	  4118	  4123	  4128
	  4132	  4137	  4141	  4149	  4279	  4282	  4284	  4365	  4370	  4375	  4379	  4384	  4388	  4518
	  4521	  4523	  4626	  4631	  4637	  4641	  4647	  4651	  4707	  4711	  5110	  5168	  5187	  5189
GETQUE	    23#	  5030
INSQUE	    20#	   240	   462	   642	   653	   867	  1142	  1453	  1809	  2119	  2392	  2657	  2911	  3159
	  3434	  3700	  3954	  4205	  4444	  4671	  5125	  5133	  5147
IPACLR	    27#	    76	   206	   303	   421	   596	   780	  1035	  1318	  1674	  1984	  2292	  2545	  2810
	  3066	  3333	  3601	  3855	  4114	  4361	  4622	  5061
ISTOP	    27#	   144	   323	   518	   710	   957	  1234	  1552	  1906	  2216	  2470	  2735	  3000	  3248
	  3521	  3787	  4041	  4294	  4533	  4738
LAST	   150	   155	   160	   165	   329	   333	   337	   524	   528	   532	   536	   540	   716	   720
	   724	   728	   732	   963	   967	   971	   976	  1240	  1244	  1248	  1253	  1558	  1562	  1566
	  1571	  1912	  1916	  1920	  1925	  2222	  2226	  2230	  2235	  2476	  2480	  2484	  2489	  2741
	  2745	  2749	  2754	  3006	  3010	  3014	  3019	  3254	  3258	  3262	  3267	  3527	  3531	  3535
	  3540	  3793	  3797	  3801	  3806	  4047	  4051	  4055	  4060	  4300	  4304	  4308	  4313	  4539
	  4543	  4547	  4552	  4744	  4748	  4752	  4756	  5197
LCHAR	    27#	   854	   855	  1129	  1130	  1439	  1440	  1795	  1796	  2105	  2106	  2377	  2378	  2642
	  2643	  2898	  2899	  3146	  3147	  3419	  3420	  3685	  3686	  3939	  3940	  4192	  4193	  4431
	  4432
LDCSR	    27#	   108	   126	   255	   468	   649	   660	   878	  1153	  1465	  1821	  2131	  2403	  2668
	  2923	  3171	  3445	  3711	  3965	  4217	  4456	  4677	  5075	  5154
LDERR0	  5188	  5201#
LDERR1	  5126	  5202#
LDERR2	  5127	  5203#
LDERR3	  5134	  5204#
LDERR4	  5135	  5205#
LDERR5	  5148	  5206#
LDERR6	  5149	  5207#
LDMCAT	  5131	  5178
LDPTT	  5120	  5176
LDRAR	    28#	  5071
LOADP0	  5110#	  5190
LOADP1	  5164#	  5171
LOADP2	  5170#	  5183
LOADPE	  1067	  1350	  1706	  2016	  2327	  2580	  2842	  3101	  3368	  3633	  3887	  4146	  5195#
LOADPM	  1066	  1349	  1705	  2015	  2326	  2579	  2841	  3100	  3367	  3632	  3886	  4145	  5107#
LOADPX	  5169	  5187#
LODERR	   149	   328	   523	   715	   962	  1239	  1557	  1911	  2221	  2475	  2740	  3005	  3253	  3526
	  3792	  4046	  4299	  4538	  4743	  4992#
MA10	   786	   962#                                                                                                    SEQ 0695
MA11	  1041	  1239#
MA12	  1324	  1557#
MA13	  1680	  1911#
MA14	  1990	  2221#
MA15	  2298	  2475#
MA16	  2551	  2740#
MA17	  2816	  3005#
MA20	  3072	  3253#
MA21	  3339	  3526#
MA22	  3607	  3792#
MA23	  3861	  4046#
MA24	  4120	  4299#
MA25	  4367	  4538#
MA27	  4628	  4743#
MA4	    86	   149#
MA4PN	   153	   158	   163	   167#
MA5	   212	   328#
MA6	   427	   523#
MA7	   602	   715#
MB10	   795	   965#
MB11	  1050	  1242#
MB12	  1333	  1560#
MB13	  1689	  1914#
MB14	  1999	  2224#
MB15	  2310	  2478#
MB16	  2563	  2743#
MB17	  2825	  3008#
MB20	  3084	  3256#
MB21	  3351	  3529#
MB22	  3616	  3795#
MB23	  3870	  4049#
MB24	  4129	  4302#
MB25	  4376	  4541#
MB27	  4638	  4746#
MB4	   100	   152#
MB5	   222	   331#
MB6	   437	   526#
MB7	   612	   718#
MC10	   804	   969#
MC11	  1059	  1246#
MC12	  1342	  1564#
MC13	  1698	  1918#
MC14	  2008	  2228#
MC15	  2319	  2482#
MC16	  2572	  2747#
MC17	  2834	  3012#
MC20	  3093	  3260#
MC21	  3360	  3533#
MC22	  3625	  3799#
MC23	  3879	  4053#
MC24	  4138	  4306#
MC25	  4385	  4545#
MC27	  4648	  4750#                                                                                                    SEQ 0696
MC4	   118	   157#
MC5	   316	   335#
MC5P0	   346#	   352
MC5P1	   349	   356#	   361
MC5P2	   367#	   373	   377
MC5PN	   335	   339#
MC6	   447	   530#
MC7	   622	   722#
MCAT17	    19#	  2618
MCHEC1	  4889	  4908#
MCHECK	   893	   922	  1168	  1197	  1480	  1511	  1836	  1867	  2146	  2177	  2417	  2445	  2682	  2710
	  2938	  2969	  3186	  3217	  3459	  3488	  3725	  3754	  3979	  4008	  4232	  4262	  4471	  4501
	  4882#
MCOFF	  2871#	  2871	  2875	  2876
MCOM20	  4866#	  4869
MCOM2X	  4871	  4876#
MCOMP	  1481	  1512	  1837	  1868	  2147	  2178	  4806#
MCOMP0	  4829#	  4832
MCOMP2	   894	   923	  1169	  1198	  2418	  2446	  2683	  2711	  2939	  2970	  3187	  3218	  3460	  3489
	  3726	  3755	  3980	  4009	  4856#
MCOMPX	  4834	  4841#
MD10	   950	   973#
MD10PN	   974	   978#
MD11	  1225	  1250#
MD11PN	  1251	  1255#
MD12	  1545	  1568#
MD12PN	  1569	  1573#
MD13	  1899	  1922#
MD13PN	  1923	  1927#
MD14	  2209	  2232#
MD14PN	  2233	  2237#
MD15	  2461	  2486#
MD15PN	  2487	  2491#
MD16	  2726	  2751#
MD16PN	  2752	  2756#
MD17	  2991	  3016#
MD17PN	  3017	  3021#
MD20	  3239	  3264#
MD20PN	  3265	  3269#
MD21	  3512	  3537#
MD21PN	  3538	  3542#
MD22	  3778	  3803#
MD22PN	  3804	  3808#
MD23	  4032	  4057#
MD23PN	  4058	  4062#
MD24	  4285	  4310#
MD24PN	  4311	  4315#
MD25	  4524	  4549#
MD25PN	  4550	  4554#
MD27	  4708	  4754#
MD4	   136	   162#
MD6	   499	   534#
MD7	   691	   726#                                                                                                    SEQ 0697
ME6	   511	   538#
ME6PN	   539	   542#
ME7	   703	   730#
ME7PN	   731	   734#
MPACK	  1443	  1799	  2109	  4764#
MPACKN	  4783#	  4821
MPRUN	   107	   125	   254	   875	  1150	  1462	  1818	  2128	  2400	  2665	  2920	  3168	  3442	  3708
	  3962	  4214	  4453	  5072	  5079	  5153
MSG	   150	   152	   155	   157	   160	   162	   165	   329	   331	   333	   337	   524	   526	   528
	   530	   532	   534	   536	   538	   540	   716	   718	   720	   722	   724	   726	   728	   730
	   732	   963	   965	   967	   969	   971	   973	   976	  1240	  1242	  1244	  1246	  1248	  1250
	  1253	  1558	  1560	  1562	  1564	  1566	  1568	  1571	  1912	  1914	  1916	  1918	  1920	  1922
	  1925	  2222	  2224	  2226	  2228	  2230	  2232	  2235	  2476	  2478	  2480	  2482	  2484	  2486
	  2489	  2741	  2743	  2745	  2747	  2749	  2751	  2754	  3006	  3008	  3010	  3012	  3014	  3016
	  3019	  3254	  3256	  3258	  3260	  3262	  3264	  3267	  3527	  3529	  3531	  3533	  3535	  3537
	  3540	  3793	  3795	  3797	  3799	  3801	  3803	  3806	  4047	  4049	  4051	  4053	  4055	  4057
	  4060	  4300	  4302	  4304	  4306	  4308	  4310	  4313	  4539	  4541	  4543	  4545	  4547	  4549
	  4552	  4744	  4746	  4748	  4750	  4752	  4754	  4756	  5195	  5197
MTABLE	    19#	  2365	  2503	  2505	  2769	  2771	  2879	  3282	  3284
MVPNT	    16#
NEWENT	    23#	  5033	  5036
NPAKPT	  3379#	  3379	  3507	  3554	  3644	  3773	  3820	  3898	  4029	  4074	  5100
NPAKR	   813	   939	   988	  1076	  1214	  1218	  1223	  1264	  1375	  1537	  1582	  1731	  1890	  1936
	  2041	  2200	  2246	  2335	  2459	  2497	  2588	  2724	  2762	  2867	  2988	  3028	  3128	  3236
	  3276	  3376	  3504	  3510	  3549	  3551	  3641	  3770	  3776	  3815	  3817	  3895	  4024	  4030
	  4069	  4073	  4170	  4280	  4324	  4409	  4522	  4563	  4908	  5007#
NPAKRC	   815	   947	   992	  1078	  1222	  1270	  1377	  1543	  1586	  1733	  1897	  1940	  2043	  2207
	  2250	  4916	  5009#
NPAKRD	   816	   945	   994	  1079	  1220	  1272	  1378	  1541	  1588	  1734	  1895	  1942	  2044	  2205
	  2252	  4835	  4872	  5010#
NPAKRE	   814	   942	   990	  1077	  1217	  1267	  1376	  1539	  1584	  1732	  1893	  1938	  2042	  2203
	  2248	  4912	  5008#
NPAKRW	   817	   996	  1080	  1274	  1379	  1590	  1735	  1944	  2045	  2254	  4836	  4873	  5011#
NPAKS	   811	   872	   933	   982	  1074	  1147	  1208	  1259	  1263	  1373	  1458	  1527	  1530	  1577
	  1729	  1814	  1883	  1886	  1931	  2039	  2124	  2193	  2196	  2241	  2334	  2397	  2456	  2495
	  2587	  2662	  2721	  2760	  2866	  2916	  2985	  3025	  3127	  3164	  3233	  3273	  3375	  3439
	  3501	  3546	  3640	  3705	  3767	  3812	  3894	  3959	  4021	  4066	  4168	  4210	  4277	  4319
	  4407	  4449	  4516	  4520	  4558	  5005#
NPAKSE	   812	   936	   985	  1075	  1211	  1261	  1374	  1532	  1579	  1730	  1888	  1933	  2040	  2198
	  2243	  4902	  5006#
NPAKSR	  4169#	  4169	  4283	  4321	  4408	  4519	  4561	  4901
NPAKUN	  3378#	  3378	  3509	  3552	  3643	  3775	  3818	  3897	  4027	  4071	  5098
NRCRC	  1081#	  1081	  1231	  1380	  1736	  2046	  2336	  2467	  2589	  2732	  2868	  2997	  3129	  3245
	  3377	  3518	  3642	  3784	  3896	  4038	  4171	  4291	  4410	  4530	  4918
NSAPNT	   544	   547	   550#	   736	   739
NSARD	   492	   684
NUMENT	    21#	   863	   873	  1138	  1148	  1449	  1460	  1805	  1816	  2115	  2126	  2388	  2398	  2653
	  2663	  2907	  2918	  3155	  3166	  3430	  3440	  3696	  3706	  3950	  3960	  4201	  4212	  4440
	  4451
OP	   229	   460	   635	   651	   827	  1091	  1365	  1721	  2031	  2367	  2597	  2632	  2858	  2882
	  3122	  3387	  3409	  3654	  3675	  3908	  3929	  4159	  4181	  4398	  4420	  4661	  4773	  4793
	  4810	  4811	  4860	  4861	  4887	  4888	  4890	  5090	  5120	  5131	  5139
P	  5080                                                                                                             SEQ 0698
PACKET	    20#	   239	   640	  1100	  1115	  1382	  1738	  2048	  4670	  4822	  4866
PASCNT	  4582	  4583	  4664	  4665	  4716	  4717
PCB	    16#	   886	   888	   916	   918	  1161	  1163	  1191	  1193	  1473	  1475	  1505	  1507	  1829
	  1831	  1861	  1863	  2139	  2141	  2171	  2173	  2411	  2413	  2440	  2442	  2676	  2678	  2705
	  2707	  2931	  2933	  2963	  2965	  3179	  3181	  3211	  3213	  3453	  3455	  3483	  3485	  3719
	  3721	  3749	  3751	  3973	  3975	  4003	  4005	  4225	  4227	  4256	  4258	  4464	  4466	  4495
	  4497	  5031	  5035	  5044
PDSABL	   107
PDUMP	    11	   154	   159	   164	   332	   336	   527	   531	   535	   719	   723	   727	   966	   970
	   975	  1243	  1247	  1252	  1561	  1565	  1570	  1915	  1919	  1924	  2225	  2229	  2234	  2479
	  2483	  2488	  2744	  2748	  2753	  3009	  3013	  3018	  3257	  3261	  3266	  3530	  3534	  3539
	  3796	  3800	  3805	  4050	  4054	  4059	  4303	  4307	  4312	  4542	  4546	  4551	  4747	  4751
	  4755	  4951#	  5196
PENABL	   125	   254	   875	  1150	  1462	  1818	  2128	  2400	  2665	  2920	  3168	  3442	  3708	  3962
	  4214	  4453	  5153
PIDLE	  2307	  2560	  3081	  3348	  5059#
PIDLEE	  5078	  5081#
PK	  4731
PKDAT1	  4926	  4928	  4941#	  4953
PKDAT2	  4932	  4934	  4944#	  4959
PKPN0	  4974#	  4985
PKPNT	  4954	  4960	  4973#
PKSAV1	    73	   203	   415	   590	   777	  1032	  1315	  1671	  1981	  2289	  2542	  2807	  3063	  3330
	  3598	  3852	  4111	  4358	  4616	  4927	  4929	  4940#	  4951	  4955
PKSAV2	    74	   204	   416	   591	   778	  1033	  1316	  1672	  1982	  2290	  2543	  2808	  3064	  3331
	  3599	  3853	  4112	  4359	  4617	  4933	  4935	  4943#	  4957	  4961
PPCB	    21#
PQUEUE	    21#
PSPEC	  2306	  2309	  2559	  2562	  3080	  3083	  3347	  3350	  5066#	  5066
PSTAMP	    27#	   856	  1131	  1441	  1797	  2107	  2379	  2644	  2900	  3148	  3421	  3687	  3941	  4194
	  4433
PTABLE	    19#	  3290	  3292	  3560	  3562
PTIME	    32#	  4729
PTTFQ	    22#	   862	  1137	  1448	  1804	  2114	  2387	  2652	  2906	  3154	  3429	  3695	  3949	  4200
	  4439
PUTQUE	    23#	  5043
Q	   859	  1134	  1445	  1801	  2111	  2384	  2649	  2903	  3151	  3426	  3692	  3946	  4197	  4436
	  5024	  5040
QCHECK	  3461	  3490	  3727	  3756	  3981	  4010	  5090#
RCCNT	  4661
RDADDR	    16#
RDCSR	    27#	   110	   128	   167	   465	   646	   657	   874	  1149	  1461	  1817	  2127	  2399	  2664
	  2919	  3167	  3441	  3707	  3961	  4213	  4452	  4674	  5077
RDLAR	    27#
RDNSA	   460	   651
RESQAV	   876	  1151	  1463	  1819	  2129	  2401	  2666	  2921	  3169	  3443	  3709	  3963	  4215	  4454
RQAFLG	    23#	   837	   885	   889	   915	   919	  1103	  1160	  1164	  1190	  1194	  1395	  1472	  1476
	  1504	  1508	  1751	  1828	  1832	  1860	  1864	  2061	  2138	  2142	  2170	  2174	  2352	  2410
	  2414	  2439	  2443	  2606	  2675	  2679	  2704	  2708	  2869	  2930	  2934	  2962	  2966	  3130
	  3178	  3182	  3210	  3214	  3396	  3452	  3456	  3482	  3486	  3661	  3718	  3722	  3748	  3752
	  3915	  3972	  3976	  4002	  4006	  4172	  4224	  4228	  4255	  4259	  4411	  4463	  4467	  4494
	  4498	  5034
RSPONS	    20#	   271	   274	   491	   508	   509	   546	   683	   700	   701	   738	  4700	  4731	  4807     SEQ 0699
	  4808	  4810	  4819	  4830	  4857	  4858	  4860	  4867	  4883	  4884	  4887	  4896	  4899	  4909
	  4926	  4932	  5093	  5094	  5175
RSPQUE	    19#	  5096
RUNTME	    27#	   260	   294	   473	   479	   665	   671	   909	   926	  1184	  1201	  1498	  1518	  1854
	  1874	  2164	  2184	  2433	  2449	  2698	  2714	  2956	  2976	  3204	  3224	  3476	  3494	  3742
	  3760	  3996	  4014	  4249	  4268	  4488	  4507	  4682	  4688	  5160	  5165
RWAIT	    20#	   264
SADDR	    22#	   507	   543	   637	   825	  1089	  1361	  1717	  2027	  3393	  3652	  3906	  4163	  4402
	  4771	  4791	  4806	  4856	  4882	  5092
SAVPK1	  4903	  4913	  4926#
SAVPK2	  4837	  4874	  4932#
SDEBUG	  1314#	  1314	  1417	  1495	  1525	  1670	  1773	  1851	  1881	  1980	  2083	  2161	  2191	  2806
	  2953	  2983	  3062	  3201	  3231	  4110	  4246	  4275	  4357	  4485	  4514
SETDSA	    16#	   143	   302	   322	   517	   709	   956	  1233	  1551	  1905	  2215	  2469	  2734	  2999
	  3247	  3520	  3786	  4040	  4293	  4532	  4737
SETENA	    16#	   252	   445	   620	   802	  1057	  1340	  1696	  2006	  2317	  2570	  2832	  3091	  3358
	  3623	  3877	  4136	  4383	  4646
SNDDG	   827	  1091	  1365	  1721	  2031	  2367	  2597	  2632	  2858	  2882	  3122	  3387	  3409	  3654
	  3675	  3908	  3929	  4159	  4181	  4398	  4420	  4773	  4793
STARCV	    23#	  1232	  2468	  2733	  2998	  3246	  3519	  3785	  4039	  4292	  4531
STASNT	    23#
T10PAK	   771#	   843	   934	   937	   940	   943	   948	   981	   987
T11LEN	  1026#	  1095	  1100	  1115
T11PAK	  1025#	  1118	  1209	  1212	  1215	  1258	  1266	  1269
T12LEN	  1411	  1595#	  1767	  2077	  4768	  4788
T12PAK	  1308#	  1528	  1534	  1576	  1581
T12REP	  1307#	  1416
T13PAK	  1664#	  1884	  1891	  1930	  1935
T14PAK	  1974#	  2194	  2201	  2240	  2245
T15LEN	  2283#	  2347
T15PAK	  2282#	  2358	  2457	  2494
T15SPC	  2305	  2502#	  2508
T16LEN	  2536#	  2601
T16PAK	  2535#	  2612	  2722	  2759
T16SPC	  2558	  2768#	  2774
T17PAK	  2800#	  2986	  2989	  3024	  3027
T20PAK	  3056#	  3234	  3237	  3272	  3275
T20SP0	  3289#	  3295
T20SPC	  3079	  3281#	  3287
T21LEN	  3324#	  3391
T21PAK	  3323#	  3402	  3502	  3505	  3545	  3548
T21SPC	  3346	  3559#	  3565
T22LEN	  3592#	  3658
T22PAK	  3591#	  3667	  3768	  3771	  3811	  3814
T23LEN	  3846#	  3912
T23PAK	  3845#	  3921	  4022	  4025	  4065	  4068
T24PAK	  4104#	  4278	  4281	  4318	  4323
T25PAK	  4351#	  4413	  4517	  4557	  4560
T5LIS	   250	   278	   310	   356	   358	   360	   367	   372	   383#
T5ORD	   248	   249	   282	   308	   345	   382#
T5PNT	   251	   279	   287	   381#
T7ADDR	   641	   699	   735	   742#
TA10	   842#	   904                                                                                                     SEQ 0700
TA11	  1108#	  1179
TA12	  1400#	  1409
TA13	  1756#	  1765
TA14	  2066#	  2075
TA15	  2357#	  2428
TA16	  2611#	  2693
TA17	  2875#	  2888
TA20	  3136#	  3197
TA21	  3401#	  3471
TA22	  3666#	  3737
TA23	  3920#	  3991
TA24	  4178#	  4242
TA25	  4417#	  4481
TA26	  4586	  4588	  4591#
TA27	  4687#	  4696	  4702
TA27A	  4686	  4695#
TA5	   238#	   244
TA6	   478#	   487	   493
TA6A	   477	   486#
TA7	   670#	   679	   685
TA7A	   669	   678#
TAMC	    17#	  5140
TB10	   849#	   903
TB11	  1124#	  1178
TB12	  1407#	  1429
TB13	  1763#	  1785
TB14	  2073#	  2095
TB15	  2364#	  2427
TB16	  2618#	  2692
TB17	  2888#	  2949
TB20	  3141#
TB21	  3414#	  3470
TB22	  3680#	  3736
TB23	  3934#	  3990
TB24	  4187#
TB25	  4426#
TB27	  4691	  4707#
TB5	   264#
TB6	   482	   498#
TB7	   674	   690#
TBSDFL	    18#	   231	   459	   634	   824	  1088	  1360	  1716	  2026	  2343	  2596	  2852	  3111	  3386
	  3651	  3905	  4156	  4395	  4660	  4823	  5122
TBYTE	    18#	   831	  1094	  1410	  1766	  2076	  2346	  2600	  2853	  3112	  3390	  3657	  3911	  4179
	  4418	  4770	  4790	  4817	  4842
TC10	   865	   883#	   895
TC11	  1140	  1158#	  1170
TC12	  1429#	  1491
TC13	  1785#	  1847
TC14	  2095#	  2157
TC15	  2390	  2408#	  2419
TC16	  2655	  2673#	  2684
TC17	  2893#
TC20	  3157	  3176#	  3188	  3196                                                                                     SEQ 0701
TC21	  3432	  3450#	  3462
TC22	  3698	  3716#	  3728
TC23	  3952	  3970#	  3982
TC24	  4203	  4222#	  4233	  4241
TC25	  4442	  4461#	  4472	  4480
TC27	  4720	  4722	  4728#
TC5	   266#	   273	   277	   281	   283	   297
TD10	   891	   899#
TD11	  1166	  1174#
TD12	  1434#	  1490
TD13	  1790#	  1846
TD14	  2100#	  2156
TD15	  2415	  2423#
TD16	  2680	  2688#
TD17	  2909	  2928#	  2940	  2948
TD20	  3184	  3192#
TD21	  3457	  3466#
TD22	  3723	  3732#
TD23	  3977	  3986#
TD24	  4230	  4237#
TD25	  4469	  4476#
TD5	   267	   287#
TDEST	    18#	   826	  1090	  1362	  1718	  2028	  2366	  2631	  2881	  3121	  3394	  3653	  3907	  4164
	  4403	  4772	  4792
TE10	   844	   902	   908#
TE11	  1119	  1177	  1183#
TE12	  1451	  1470#	  1482
TE13	  1807	  1826#	  1838
TE14	  2117	  2136#	  2148
TE15	  2359	  2426	  2432#
TE16	  2613	  2691	  2697#
TE17	  2936	  2944#
TE20	  3136	  3195	  3201#
TE21	  3403	  3469	  3475#
TE22	  3668	  3735	  3741#
TE23	  3922	  3989	  3995#
TE24	  4178	  4240	  4246#
TE25	  4417	  4479	  4485#
TE5	   289	   301#
TERMES	    77	    79	   207	   209	   422	   424	   597	   599	   781#	   781	   783	  1036	  1038	  1319
	  1321	  1675	  1677	  1985	  1987	  2293	  2295	  2546	  2548	  2811	  2813	  3067	  3069	  3334
	  3336	  3602	  3604	  3856	  3858	  4115	  4117	  4362	  4364	  4623	  4625	  4992	  4995	  4996
TF10	   913#	   924	   929
TF11	  1188#	  1199	  1204
TF12	  1478	  1486#
TF13	  1834	  1842#
TF14	  2144	  2152#
TF15	  2437#	  2447	  2452
TF16	  2702#	  2712	  2717
TF17	  2878	  2947	  2953#
TF20	  3208#	  3219	  3227
TF21	  3480#	  3491	  3497
TF22	  3746#	  3757	  3763                                                                                             SEQ 0702
TF23	  4000#	  4011	  4017
TF24	  4253#	  4263	  4271
TF25	  4492#	  4502	  4510
TF5	   305#	   312
TFLOAD	    16#	    78	   208	   423	   598	   782	  1037	  1320	  1676	  1986	  2294	  2547	  2812	  3068
	  3335	  3603	  3857	  4116	  4363	  4624
TFMFLG	    18#	   456	   631	   821	  1085	  1357	  1713	  2023	  2340	  2593	  2849	  3108	  3383	  3648
	  3902	  4153	  4392	  4657
TG10	   921	   925#
TG11	  1196	  1200#
TG12	  1402	  1489	  1495#
TG13	  1758	  1845	  1851#
TG14	  2068	  2155	  2161#
TG15	  2444	  2448#
TG16	  2709	  2713#
TG17	  2960#	  2971	  2979
TG20	  3216	  3223#
TG21	  3487	  3493#
TG22	  3753	  3759#
TG23	  4007	  4013#
TG24	  4261	  4267#
TG25	  4500	  4506#
TG5	   307	   316#
TH10	   933#
TH11	  1208#
TH12	  1502#	  1513	  1521
TH13	  1858#	  1869	  1877
TH14	  2168#	  2179	  2187
TH15	  2456#
TH16	  2721#
TH17	  2968	  2975#
TH20	  3231#
TH21	  3501#
TH22	  3767#
TH23	  4021#
TH24	  4275#
TH25	  4514#
TH4000	    17#	  5141	  5142
TI12	  1510	  1517#
TI13	  1866	  1873#
TI14	  2176	  2183#
TI17	  2983#
TIDLE	    16#	    94	   220	   435	   610	   793	  1048	  1331	  1687	  1997	  2823	  3614	  3868	  4127
	  4374	  4636
TJ12	  1525#
TJ13	  1881#
TJ14	  2191#
TLEN	  1403#	  1403	  1407	  1759#	  1759	  1763	  2069#	  2069	  2073	  4818	  4841
TLNPAT	  1381#	  1381	  1384	  1386	  1413	  1415	  1737	  1740	  1742	  1769	  1771	  2047	  2050	  2052
	  2079	  2081	  4765	  4784	  4814	  4820	  4845
TPAT	    18#	   829	  1093	  1367	  1400	  1414	  1419	  1723	  1756	  1770	  1775	  2033	  2066	  2080
	  2085	  2345	  2599	  2860	  3118	  3389	  3656	  3910	  4161	  4400	  4766	  4785	  4815	  4844
TPCB	    16#	    93                                                                                                     SEQ 0703
TPDFLG	    18#	   232	   458	   633	   823	  1087	  1359	  1715	  2025	  2342	  2595	  2851	  3110	  3385
	  3650	  3904	  4155	  4394	  4659	  5123
TPRMSC	    17#	  5143
TPTTVL	    19#	   834	  1098	  1364	  1720	  2030	  2350	  2604	  2857	  3116	  3408	  3674	  3928	  4158
	  4397
TRACE	    17#	    72	   202	   414	   589	   776	  1031	  1313	  1669	  1979	  2288	  2541	  2805	  3061
	  3329	  3597	  3851	  4109	  4356	  4577	  4615
TREGD	    18#	   235
TREGN	    18#	   234
TRETRY	    17#	  5145
TRSFLG	    18#	   230	   457	   632	   822	  1086	  1358	  1714	  2024	  2341	  2594	  2850	  3109	  3384
	  3649	  3903	  4154	  4393	  4658	  5121
TSLOAD	    16#
TST10	     9	   775#
TST11	     9	  1030#
TST12	     9	  1312#
TST13	     9	  1668#
TST14	     9	  1978#
TST15	    10	  2287#
TST16	    10	  2540#
TST17	    10	  2804#
TST20	    10	  3060#
TST21	    10	  3328#
TST22	    10	  3596#
TST23	    10	  3850#
TST24	    10	  4108#
TST25	    11	  4355#
TST26	    11	  4576#
TST27	    11	  4614#
TST4	     9	    71#
TST5	     9	   201#
TST6	     9	   413#
TST7	     9	   588#
TSTREP	    17#	  4581	  4663	  4715
TSTSUB	    17#	    85	    99	   117	   135	   219	   301	   434	   444	   454	   506	   609	   619	   629
	   698	   836	   842	  1102	  1108	  1117	  1368	  1459	  1724	  1815	  2034	  2125	  2351	  2357
	  2605	  2611	  2861	  2917	  3119	  3165	  3395	  3401	  3660	  3666	  3914	  3920	  4162	  4211
	  4401	  4450	  4635	  4645	  4655
TWORD	    18#	   832	  1096	  1412	  1422	  1768	  1778	  2078	  2088	  2348	  2602	  2855	  3114	  3392
	  3659	  3913	  4180	  4419	  4769	  4789	  4816	  4827	  4843	  4865
TX10	   788	   789	   797	   798	   806	   807	   853	   952	   956#
TX11	  1043	  1044	  1052	  1053	  1061	  1062	  1069	  1070	  1128	  1227	  1231#
TX12	  1326	  1327	  1335	  1336	  1344	  1345	  1352	  1353	  1438	  1547	  1551#
TX13	  1682	  1683	  1691	  1692	  1700	  1701	  1708	  1709	  1794	  1901	  1905#
TX14	  1992	  1993	  2001	  2002	  2010	  2011	  2018	  2019	  2104	  2211	  2215#
TX15	  2300	  2301	  2312	  2313	  2321	  2322	  2329	  2330	  2376	  2463	  2467#
TX16	  2553	  2554	  2565	  2566	  2574	  2575	  2582	  2583	  2641	  2728	  2732#
TX17	  2818	  2819	  2827	  2828	  2836	  2837	  2844	  2845	  2897	  2993	  2997#
TX20	  3074	  3075	  3086	  3087	  3095	  3096	  3103	  3104	  3145	  3241	  3245#
TX21	  3341	  3342	  3353	  3354	  3362	  3363	  3370	  3371	  3418	  3514	  3518#
TX22	  3609	  3610	  3618	  3619	  3627	  3628	  3635	  3636	  3684	  3780	  3784#	  3889	  3890
TX23	  3863	  3864	  3872	  3873	  3881	  3882	  3938	  4034	  4038#
TX24	  4122	  4123	  4131	  4132	  4140	  4141	  4148	  4149	  4191	  4287	  4291#                            SEQ 0704
TX25	  4369	  4370	  4378	  4379	  4387	  4388	  4430	  4526	  4530#
TX27	  4630	  4631	  4640	  4641	  4650	  4651	  4710	  4711	  4724	  4737#
TX4	    88	    89	   102	   103	   120	   121	   138	   139	   143#
TX5	   214	   215	   224	   225	   318	   322#
TX6	   429	   430	   439	   440	   449	   450	   501	   502	   513	   517#
TX7	   604	   605	   614	   615	   624	   625	   693	   694	   705	   709#
TXADDL	    21#	  1394	  1750	  2060
TXALL	   149	   150	   152	   154	   155	   157	   159	   160	   162	   164	   165	   328	   329	   331
	   332	   333	   335	   336	   337	   523	   524	   526	   527	   528	   530	   531	   532	   534
	   535	   536	   538	   539	   540	   715	   716	   718	   719	   720	   722	   723	   724	   726
	   727	   728	   730	   731	   732	   962	   963	   965	   966	   967	   969	   970	   971	   973
	   974	   975	   976	  1239	  1240	  1242	  1243	  1244	  1246	  1247	  1248	  1250	  1251	  1252
	  1253	  1557	  1558	  1560	  1561	  1562	  1564	  1565	  1566	  1568	  1569	  1570	  1571	  1911
	  1912	  1914	  1915	  1916	  1918	  1919	  1920	  1922	  1923	  1924	  1925	  2221	  2222	  2224
	  2225	  2226	  2228	  2229	  2230	  2232	  2233	  2234	  2235	  2475	  2476	  2478	  2479	  2480
	  2482	  2483	  2484	  2486	  2487	  2488	  2489	  2740	  2741	  2743	  2744	  2745	  2747	  2748
	  2749	  2751	  2752	  2753	  2754	  3005	  3006	  3008	  3009	  3010	  3012	  3013	  3014	  3016
	  3017	  3018	  3019	  3253	  3254	  3256	  3257	  3258	  3260	  3261	  3262	  3264	  3265	  3266
	  3267	  3526	  3527	  3529	  3530	  3531	  3533	  3534	  3535	  3537	  3538	  3539	  3540	  3792
	  3793	  3795	  3796	  3797	  3799	  3800	  3801	  3803	  3804	  3805	  3806	  4046	  4047	  4049
	  4050	  4051	  4053	  4054	  4055	  4057	  4058	  4059	  4060	  4299	  4300	  4302	  4303	  4304
	  4306	  4307	  4308	  4310	  4311	  4312	  4313	  4538	  4539	  4541	  4542	  4543	  4545	  4546
	  4547	  4549	  4550	  4551	  4552	  4743	  4744	  4746	  4747	  4748	  4750	  4751	  4752	  4754
	  4755	  4756	  5195	  5196	  5197
TXNOT	   153	   158	   163
UDEBUG	    17#	  5017
USER	  5073
WRNSA	   635	  5139	  5180
WRPLI	   229	   272
Z3	    38#	    71	   201	   413	   588	   775	  1030	  1312	  1668	  1978	  2287	  2540	  2804	  3060
	  3328	  3596	  3850	  4108	  4355	  4576	  4614
.RREXP	    23#	  1232	  2468	  2733	  2998	  3246	  3519	  3785	  4039	  4292	  4531
DELAY	   109	   127	  5076
GET	  1392	  1629	  1748	  2058	  4775	  4795	  4841	  4842	  4843	  4844	  4845	  5048	  5050	  5081     SEQ 0705
	  5083	  5191	  5193
GO	    72	    76	    78	    79	    93	    94	   108	   110	   126	   128	   143	   144	   167	   171
	   202	   206	   208	   209	   220	   236	   240	   252	   255	   260	   264	   266	   294	   302
	   303	   322	   323	   414	   421	   423	   424	   435	   445	   461	   462	   465	   468	   473
	   479	   486	   517	   518	   544	   547	   589	   596	   598	   599	   610	   620	   636	   642
	   646	   649	   652	   653	   657	   660	   665	   671	   678	   709	   710	   736	   739	   776
	   780	   782	   783	   793	   802	   835	   856	   860	   867	   874	   878	   883	   884	   887
	   890	   893	   894	   909	   913	   914	   917	   920	   922	   923	   926	   956	   957	  1031
	  1035	  1037	  1038	  1048	  1057	  1066	  1099	  1111	  1131	  1135	  1142	  1149	  1153	  1158
	  1159	  1162	  1165	  1168	  1169	  1184	  1188	  1189	  1192	  1195	  1197	  1198	  1201	  1233
	  1234	  1313	  1318	  1320	  1321	  1331	  1340	  1349	  1369	  1418	  1441	  1443	  1446	  1453
	  1461	  1465	  1470	  1471	  1474	  1477	  1480	  1481	  1498	  1502	  1503	  1506	  1509	  1511
	  1512	  1518	  1551	  1552	  1669	  1674	  1676	  1677	  1687	  1696	  1705	  1725	  1774	  1797
	  1799	  1802	  1809	  1817	  1821	  1826	  1827	  1830	  1833	  1836	  1837	  1854	  1858	  1859
	  1862	  1865	  1867	  1868	  1874	  1905	  1906	  1979	  1984	  1986	  1987	  1997	  2006	  2015
	  2035	  2084	  2107	  2109	  2112	  2119	  2127	  2131	  2136	  2137	  2140	  2143	  2146	  2147
	  2164	  2168	  2169	  2172	  2175	  2177	  2178	  2184	  2215	  2216	  2288	  2292	  2294	  2295
	  2307	  2317	  2326	  2368	  2379	  2385	  2392	  2399	  2403	  2408	  2409	  2412	  2417	  2418
	  2433	  2437	  2438	  2441	  2445	  2446	  2449	  2469	  2470	  2541	  2545	  2547	  2548	  2560
	  2570	  2579	  2620	  2625	  2633	  2644	  2650	  2657	  2664	  2668	  2673	  2674	  2677	  2682
	  2683	  2698	  2702	  2703	  2706	  2710	  2711	  2714	  2734	  2735	  2805	  2810	  2812	  2813
	  2823	  2832	  2841	  2862	  2883	  2900	  2904	  2911	  2919	  2923	  2928	  2929	  2932	  2935
	  2938	  2939	  2956	  2960	  2961	  2964	  2967	  2969	  2970	  2976	  2999	  3000	  3061	  3066
	  3068	  3069	  3081	  3091	  3100	  3123	  3148	  3152	  3159	  3167	  3171	  3176	  3177	  3180
	  3183	  3186	  3187	  3204	  3208	  3209	  3212	  3215	  3217	  3218	  3224	  3247	  3248	  3329
	  3333	  3335	  3336	  3348	  3358	  3367	  3410	  3421	  3427	  3434	  3441	  3445	  3450	  3451
	  3454	  3459	  3460	  3461	  3476	  3480	  3481	  3484	  3488	  3489	  3490	  3494	  3520	  3521
	  3597	  3601	  3603	  3604	  3614	  3623	  3632	  3676	  3687	  3693	  3700	  3707	  3711	  3716
	  3717	  3720	  3725	  3726	  3727	  3742	  3746	  3747	  3750	  3754	  3755	  3756	  3760	  3786
	  3787	  3851	  3855	  3857	  3858	  3868	  3877	  3886	  3930	  3941	  3947	  3954	  3961	  3965
	  3970	  3971	  3974	  3979	  3980	  3981	  3996	  4000	  4001	  4004	  4008	  4009	  4010	  4014
	  4040	  4041	  4109	  4114	  4116	  4117	  4127	  4136	  4145	  4182	  4194	  4198	  4205	  4213
	  4217	  4222	  4223	  4226	  4229	  4232	  4249	  4253	  4254	  4257	  4260	  4262	  4268	  4293
	  4294	  4356	  4361	  4363	  4364	  4374	  4383	  4421	  4433	  4437	  4444	  4452	  4456	  4461
	  4462	  4465	  4468	  4471	  4488	  4492	  4493	  4496	  4499	  4501	  4507	  4532	  4533	  4577
	  4591	  4615	  4622	  4624	  4625	  4636	  4646	  4662	  4671	  4674	  4677	  4682	  4688	  4695
	  4729	  4732	  4737	  4738	  4774	  4794	  4821	  4837	  4874	  4903	  4913	  4952	  4954	  4958
	  4960	  4966	  4997	  5025	  5030	  5041	  5043	  5061	  5065	  5066	  5071	  5075	  5077	  5114
	  5124	  5125	  5132	  5133	  5146	  5147	  5154	  5160	  5165	  5170
PCRL	  4733	  4994
PNT3	   551	   553	   555	   557	   559	   561
PNTDCP	   981	   982	   984	   985	   987	   988	   990	   992	   994	   996	  1258	  1259	  1261	  1263
	  1264	  1266	  1267	  1269	  1270	  1272	  1274	  1576	  1577	  1579	  1581	  1582	  1584	  1586
	  1588	  1590	  1930	  1931	  1933	  1935	  1936	  1938	  1940	  1942	  1944	  2240	  2241	  2243
	  2245	  2246	  2248	  2250	  2252	  2254	  2494	  2495	  2497	  2759	  2760	  2762	  3024	  3025
	  3027	  3028	  3272	  3273	  3275	  3276	  3545	  3546	  3548	  3549	  3551	  3552	  3554	  3811
	  3812	  3814	  3815	  3817	  3818	  3820	  4065	  4066	  4068	  4069	  4071	  4073	  4074	  4318
	  4319	  4321	  4323	  4324	  4557	  4558	  4560	  4561	  4563
PNTDEC	  1423	  1779	  2089
PNTHW	  4984
PNTMSG	   339	   343	   344	   365	   374	   542	   545	   734	   737	   978	   979	   980	   983	   986
	   989	   991	   993	   995	  1255	  1256	  1257	  1260	  1262	  1265	  1268	  1271	  1273	  1418
	  1421	  1424	  1496	  1526	  1573	  1574	  1575	  1578	  1580	  1583	  1585	  1587	  1589	  1774     SEQ 0706
	  1777	  1780	  1852	  1882	  1927	  1928	  1929	  1932	  1934	  1937	  1939	  1941	  1943	  2084
	  2087	  2090	  2162	  2192	  2237	  2238	  2239	  2242	  2244	  2247	  2249	  2251	  2253	  2491
	  2492	  2493	  2496	  2756	  2757	  2758	  2761	  2954	  2984	  3021	  3022	  3023	  3026	  3202
	  3232	  3269	  3270	  3271	  3274	  3542	  3543	  3544	  3547	  3550	  3553	  3808	  3809	  3810
	  3813	  3816	  3819	  4062	  4063	  4064	  4067	  4070	  4072	  4247	  4276	  4315	  4316	  4317
	  4320	  4322	  4486	  4515	  4554	  4555	  4556	  4559	  4562	  4728	  4730	  4952	  4958	  4977
	  4980
PNTOCS	   350	   376	  1420	  1776	  2086	  4979
PSP	   351
PUT	  1383	  1625	  1739	  2049	  4764	  4783	  4814	  4815	  4816	  4817	  4818	  5019	  5021	  5059
	  5061	  5107	  5109
RGET	  1392	  1748	  2058	  5048	  5081	  5191
RPUT	  1383	  1739	  2049	  5019	  5059	  5107
RTN	    81	   145	   172	   211	   324	   359	   371	   426	   519	   548	   562	   601	   711	   740
	   785	   879	   958	   997	  1040	  1116	  1154	  1235	  1275	  1323	  1393	  1425	  1466	  1553
	  1591	  1630	  1679	  1749	  1781	  1822	  1907	  1945	  1989	  2059	  2091	  2132	  2217	  2255
	  2297	  2404	  2471	  2498	  2509	  2550	  2623	  2629	  2669	  2736	  2763	  2775	  2815	  2924
	  3001	  3029	  3071	  3172	  3249	  3277	  3296	  3338	  3446	  3522	  3555	  3566	  3606	  3712
	  3788	  3821	  3860	  3966	  4042	  4075	  4119	  4218	  4295	  4325	  4366	  4457	  4534	  4564
	  4592	  4627	  4739	  4776	  4796	  4809	  4812	  4846	  4859	  4862	  4876	  4885	  4891	  4898
	  4904	  4911	  4919	  4930	  4936	  4956	  4962	  4964	  4967	  4976	  4993	  4998	  5018	  5050
	  5083	  5091	  5095	  5101	  5193
SCOPER	    86	   100	   118	   136	   212	   222	   316	   427	   437	   447	   499	   511	   602	   612
	   622	   691	   703	   786	   795	   804	   950	  1041	  1050	  1059	  1067	  1225	  1324	  1333
	  1342	  1350	  1545	  1680	  1689	  1698	  1706	  1899	  1990	  1999	  2008	  2016	  2209	  2298
	  2310	  2319	  2327	  2461	  2551	  2563	  2572	  2580	  2726	  2816	  2825	  2834	  2842	  2991
	  3072	  3084	  3093	  3101	  3239	  3339	  3351	  3360	  3368	  3512	  3607	  3616	  3625	  3633
	  3778	  3861	  3870	  3879	  3887	  4032	  4120	  4129	  4138	  4146	  4285	  4367	  4376	  4385
	  4524	  4628	  4638	  4648	  4708
TMSG	  1421	  1777	  2087	  4980
TMSGC	   339	   343	   344	   365	   374	   542	   545	   734	   737	   978	   979	   980	   983	   986
	   989	   991	   993	   995	  1255	  1256	  1257	  1260	  1262	  1265	  1268	  1271	  1273	  1418
	  1573	  1574	  1575	  1578	  1580	  1583	  1585	  1587	  1589	  1774	  1927	  1928	  1929	  1932
	  1934	  1937	  1939	  1941	  1943	  2084	  2237	  2238	  2239	  2242	  2244	  2247	  2249	  2251
	  2253	  2491	  2492	  2493	  2496	  2756	  2757	  2758	  2761	  3021	  3022	  3023	  3026	  3269
	  3270	  3271	  3274	  3542	  3543	  3544	  3547	  3550	  3553	  3808	  3809	  3810	  3813	  3816
	  3819	  4062	  4063	  4064	  4067	  4070	  4072	  4315	  4316	  4317	  4320	  4322	  4554	  4555
	  4556	  4559	  4562	  4728	  4952	  4958	  4977
TMSGCD	  1496	  1526	  1852	  1882	  2162	  2192	  2954	  2984	  3202	  3232	  4247	  4276	  4486	  4515
TMSGD	  1424	  1780	  2090	  4730
TTALTM	   849	  1124	  1434	  1790	  2100	  2372	  2637	  2893	  3141	  3414	  3680	  3934	  4187	  4426
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 1
DFNIAI	MAC	 1-Nov-83 18:03		Port Controller Utility Package                                                    SEQ 0707

     1						SUBTTL	Port Controller Utility Package
     2
     3						SALL
     4
     5						SEARCH	DFNIA,MONSYM
     6
     7					; Register Read/write routines
     8
     9						ENTRY	.CONI,.CONO,.DATAO,.DATAI
    10						ENTRY	LDEBUF,LDRAR,LDCRAM,LDCSR
    11						ENTRY	RDEBUF,RDLAR,RDCRAM,RDCSR
    12
    13					; Port specific utility routines
    14
    15						ENTRY	SETEBU,SETLAR,CLREBU,CHKCSR
    16						ENTRY	IPACLR,IPASRT,IPASTP,ERESET,IPASST,ISTOP
    17						INTERN	SNEXT,SLAST,EADDR,AADDR,SDATA
    18
    19					; PI system handling routines
    20
    21						ENTRY	INITPI,INITPD,.PIOFF,.PION,PISYOF
    22						ENTRY	PISYON,SETVEC,.INPNT
    23						INTERN	INTNUM,INTPC,INTTYP,INTCON,INTAPR,INTTIM,INTUSE
    24						INTERN	INTCSR,INTEND,.INWD1,.INWD2
    25
    26					; Channel handling routines
    27
    28						ENTRY	CHINIT
    29						ENTRY	GETLOG,CCWPNT,LOGPNT
    30						INTERN	CBASE,LOGBUF,EPTJMP,ICWA0
    31
    32					; User mode support routines
    33
    34						ENTRY	DSETUP,DEVREQ,DEVREL,REQ1,REQ2,REL,LOCPHY
    35						ENTRY	USRION,USRIOF,ENABLE
    36						INTERN	SNARKF,HAVIPA,LOCDON
    37
    38					; Miscellaneous routines
    39
    40						ENTRY	FFF			; Fatal error routine
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 2
DFNIAI	MAC	 1-Nov-83 18:03		Port Controller Utility Package                                                    SEQ 0708

    41
    42					; EXTERN's located in DFNIAU.MAC (Utility Routines module)
    43
    44						EXTERN	.CLOSE,.EXIT,SWITT,RUNTME,DEBTIM,USTIM
    45
    46					; EXTERN's located in DFNIA1.MAC (Mainline code..)
    47
    48						EXTERN	UDEBUG,DSPRIN,MLOADN
    49						EXTERN	CADDR,CWORDL,CWORDR,DRCRAM,DWCRAM,PARFLG
    50						EXTERN	PCB,TIDLE,TPCB,PMODE
    51
    52
    53					;#********************************************************************
    54					; ZI - Address for use in DDT
    55					;#********************************************************************
    56
    57	000000'				ZI:					; address of 00000'
    58
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 3
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0709

    59						SUBTTL	Port Register Read/Write Routines
    60
    61					;#*********************************************************************
    62					;* Notes On I/O Routine Design
    63					;
    64					; 1.  All code in this file is re-entrant  with the exception of the
    65					;	user mode stuff which need not be since the PI system cannot
    66					;	be used in user mode.
    67					; 
    68					; 2.  No AC's are modified unless they return data.  
    69					; 
    70					; 3.   If in (exec mode) with a port it is necessary for the  channel
    71					;	routines to do a limited amount of paging, a location "CBASE"
    72					;	must be set up as a  paged address of "0".  Then the routines
    73					;	will then work properly.
    74					;
    75					; The following routines are given:
    76					;
    77					; Port Register Load/Read Routines:
    78					;
    79					;	LDEBUF		This is a DATAO with 'Diag Test EBUF' bit set
    80					;			in the CSR Register.
    81					;
    82					;	LDRAR		This is a DATAO with 'Diag Test EBUF' bit not
    83					;			set in the CSR Register, and Bit 0 set in the
    84					;			data given.  The address to put in the RAR is
    85					;			in bits 1-13.
    86					;
    87					;	LDCRAM		This is a DATAO with 'Diag Test EBUF' bit not
    88					;			set in the CSR Register, and Bit 0 zero in the
    89					;			data given.  The data to  load  in  CRAM is in
    90					;			bits 6-35.
    91					;
    92					;	LDCSR		This is simply a CONO.
    93					;
    94					;	RDEBUF		This is a DATAI with 'Diag Test EBUF' bit set
    95					;			in the CSR Register.
    96					;
    97					;	RDLAR		This is a DATAI with 'Diag Test EBUF' bit not
    98					;			set and 'Diag Sel LAR'  set  in  CSR Register
    99					;			The data returned is in bits 1-12.  Bit 13 is
   100					;			returned as the corresponding bit of the RAR.
   101					;
   102					;	RDCRAM		This is a DATAI with 'Diag Test EBUF' bit not
   103					;			set and 'Diag Sel LAR' not set in  CSR Regis-
   104					;			ter.  The data returned is in bits 6-35.
   105					;
   106					;	RDCSR		This is simply a CONI.
   107					;
   108					;#********************************************************************
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 4
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0710

   109
   110					;#************************************************************
   111					;* Port Register Load Routines
   112					;
   113					; Port registers are loaded by a CONO or DATAO.  The data to be
   114					; written  is given right justified in AC1.  Each routine  will
   115					; will position the data correctly.
   116					;
   117					; Example:  MOVE  AC1,FOO		; data to write to register
   118					;	    GO    LDXXXX		; XXXX (Register description)
   119					;	    Return			; no errors are possible
   120					;#************************************************************
   121
   122					;#************************************************************
   123					;* LDEBUF - Load EBUF
   124					;
   125					; This routine assumes that 'Diag Test EBUF' bit is already set
   126					; in the CSR Register, so a simple DATAO will load the register.
   127					;#************************************************************
   128
   129	000000'	332 00 0 00 000000*	LDEBUF:	SKIPE	UDEBUG			; debug mode?
   130	000001'	263 17 0 00 000000 		RTN				; yes - exit
   131	000002'	261 17 0 00 000002 		PUT	2			; save AC2
   132	000003'	200 02 0 00 002447'		MOVE	2,[DATAO 0,1]		; build a DATAO
   133	000004'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   134	000005'	256 00 0 00 000002 		XCT	2			; do the DATAO
   135	000006'	262 17 0 00 000002 		GET	2			; restore AC2
   136	000007'	263 17 0 00 000000 		RTN
   137
   138
   139					;#************************************************************
   140					;* LDCSR - Load CSR (This is simply a CONO).
   141					;#************************************************************
   142
   143	000010'	332 00 0 00 000000*	LDCSR:	SKIPE	UDEBUG			; debug mode?
   144	000011'	263 17 0 00 000000 		RTN				; yes - exit
   145	000012'	261 17 0 00 000002 		PUT	2			; save AC2
   146	000013'	200 02 0 00 002450'		MOVE	2,[CONO]		; build a CONO
   147	000014'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   148	000015'	540 02 0 00 000001 		HRR	2,1			; include data to write
   149	000016'	256 00 0 00 000002 		XCT	2			; do the CONO
   150	000017'	262 17 0 00 000002 		GET	2			; restore AC2
   151	000020'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 5
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0711

   152
   153					;#************************************************************
   154					;* LDRAR - Load RAR
   155					;
   156					; This assumes that 'Diag Test EBUF' bit is not set in CSR, so a DATAO
   157					; loads the RAR).  The sign bit set in the data specified in the DATAO
   158					; causes the RAR to be loaded instead of the CRAM.
   159					;
   160					; Data to load is in AC1:   Bits 23-34 - CRAM Address
   161					;				 35    - 0 - Left half of CRAM word
   162					;				         1 - Right half of CRAM word
   163					;#************************************************************
   164
   165	000021'	332 00 0 00 000010*	LDRAR:	SKIPE	UDEBUG			; debug mode?
   166	000022'	263 17 0 00 000000 		RTN				; yes - exit
   167	000023'	261 17 0 00 000001 		RPUT	(1,2)			; save AC's
   168
   169	000025'	200 02 0 00 002447'		MOVE	2,[DATAO 0,1]		; build a DATAO
   170	000026'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   171	000027'	242 01 0 00 000026 		LSH	1,^D22			; position data correctly
   172	000030'	661 01 0 00 400000 		TLO	1,400000		; set sign bit
   173	000031'	256 00 0 00 000002 		XCT	2			; do the DATAO
   174	000032'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
   175
   176	000034'	263 17 0 00 000000 		RTN
   177
   178
   179					;#************************************************************
   180					;* LDCRAM - Load CRAM
   181					;
   182					; This assumes that 'Diag Test EBUF' bit is not set in CSR, so a
   183					; DATAO loads the CRAM). The sign bit zero in the data specified
   184					; in the DATAO causes the CRAM to be loaded instead of the  RAR.
   185					; The data to load is given right justified in AC1.
   186					;#************************************************************
   187
   188	000035'	332 00 0 00 000021*	LDCRAM:	SKIPE	UDEBUG			; debug mode?
   189	000036'	263 17 0 00 000000 		RTN				; yes - exit
   190	000037'	261 17 0 00 000001 		RPUT	(1,2)			; save AC's
   191
   192	000041'	200 02 0 00 002447'		MOVE	2,[DATAO 0,1]		; build a DATAO
   193	000042'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   194	000043'	621 01 0 00 770000 		TLZ	1,770000		; ensure left 6 bits zero
   195	000044'	256 00 0 00 000002 		XCT	2			; do the DATAO
   196	000045'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
   197
   198	000047'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 6
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0712

   199
   200					;#************************************************************
   201					;* Port Register Read Routines
   202					;
   203					; Port registers are read by a CONI or DATAI.  The data is 
   204					; returned right justified in AC1 with unused bits zero.
   205					;
   206					; Example:  MOVE   AC1,FOO		; some argument
   207					;	    GO     RDXXXX		; XXXX (Register description)
   208					;	    Return+1			; read failed
   209					;	    Return+2			; read succeeded
   210					;
   211					; Note:  It is not normally possible to tell if the read failed
   212					;  or succeeded, except with the CSR register.  Reading the CSR
   213					;  is  set  up  for a +1 and +2 return.  The remaining routines
   214					;  return +1 always.
   215					;#************************************************************
   216
   217					;#************************************************************
   218					;* RDEBUF - Read EBUF
   219					;
   220					; This routine assumes that 'Diag Test EBUF' bit is already set
   221					; in CSR, so a simple DATAI will load the register.
   222					;#************************************************************
   223
   224	000050'	332 00 0 00 000035*	RDEBUF:	SKIPE	UDEBUG			; debug mode?
   225	000051'	263 17 0 00 000000 		RTN				; yes - return
   226	000052'	261 17 0 00 000002 		PUT	2			; save AC2
   227	000053'	200 02 0 00 002451'		MOVE	2,[DATAI 0,1]		; build a DATAI
   228	000054'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   229	000055'	256 00 0 00 000002 		XCT	2			; do the DATAI
   230	000056'	262 17 0 00 000002 		GET	2			; restore AC2
   231	000057'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 7
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0713

   232
   233					;#************************************************************
   234					;* RDCSR - Read CSR
   235					;#************************************************************
   236
   237	000060'	350 00 0 17 000000 	RDCSR:	AOS	(P)			; set up return+2
   238	000061'	332 00 0 00 000050*		SKIPE	UDEBUG			; debug mode?
   239	000062'	263 17 0 00 000000 		RTN				; yes - return
   240	000063'	261 17 0 00 000000 		RPUT	(0,2,3)			; save AC's
   241
   242	000066'	201 03 0 00 000050 		MOVEI	3,^D40			; retry up to 40 times
   243	000067'	200 02 0 00 002452'		MOVE	2,[CONI 0,1]		; build a CONI from AC1
   244	000070'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   245	000071'	256 00 0 00 000002 	RDCS0:	XCT	2			; do the CONI
   246	000072'	255 00 0 00 000000 		JFCL
   247	000073'	255 00 0 00 000000 		JFCL
   248	000074'	326 01 0 00 000100'		JUMPN	1,RDCSX			; succeeded? yes - exit
   249	000075'	005 00 0 00 000001 		DELAY	1			; wait 1 millisecond
   250	000076'	367 03 0 00 000071'		SOJG	3,RDCS0			; loop till done
   251	000077'	370 00 0 17 777775 		SOS	-3(P)			; failed - set up return+1
   252	000100'	262 17 0 00 000003 	RDCSX:	RGET	(3,2,0)			; yes - error - restore AC's
   253
   254	000103'	263 17 0 00 000000 		RTN				;   and return
   255
   256
   257					;#************************************************************
   258					;* RDLAR - Read LAR
   259					;
   260					; This assumes that 'Diag Test EBUF' is not set and 'Diag Sel LAR' is
   261					; set in the CSR Register, so a DATAI can be used to load the CRAM).
   262					;
   263					; The data is returned right justified in AC1:
   264					;
   265					;   Bits 23-34 - CRAM Address
   266					;	 35    - 0 - Left half of CRAM word
   267					;		 1 - Right half of CRAM word
   268					;#************************************************************
   269
   270	000104'	332 00 0 00 000061*	RDLAR:	SKIPE	UDEBUG			; debug mode?
   271	000105'	263 17 0 00 000000 		RTN				; yes - return
   272	000106'	261 17 0 00 000002 		PUT	2			; save AC2
   273	000107'	200 02 0 00 002451'		MOVE	2,[DATAI 0,1]		; build a DATAI from AC1
   274	000110'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   275	000111'	256 00 0 00 000002 		XCT	2			; do the DATAI
   276	000112'	135 01 0 00 002453'		LDB	1,[POINT 13,1,13] 	; position correctly
   277	000113'	262 17 0 00 000002 		GET	2			; restore AC2
   278	000114'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 8
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0714

   279
   280					;#************************************************************
   281					;* RDCRAM - Read CRAM
   282					;
   283					; This assumes that 'Diag Test EBUF' and 'Diag Sel LAR' bits  are
   284					; not set in the CSR Register, so a DATAI can be used to load the
   285					; CRAM).  The data is returned in AC1.
   286					;#************************************************************
   287
   288	000115'	332 00 0 00 000104*	RDCRAM:	SKIPE	UDEBUG			; debug mode?
   289	000116'	263 17 0 00 000000 		RTN				; yes - return
   290	000117'	261 17 0 00 000002 		PUT	2			; save AC2
   291	000120'	200 02 0 00 002451'		MOVE	2,[DATAI 0,1]		; build a DATAI from AC1
   292	000121'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   293	000122'	256 00 0 00 000002 		XCT	2			; do the DATAI
   294	000123'	621 01 0 00 770000 		TLZ	1,770000		; ensure leftmost 6 bits are zero
   295	000124'	262 17 0 00 000002 		GET	2			; restore AC2
   296	000125'	263 17 0 00 000000 		RTN				; return
   297
   298
   299					;#************************************************************
   300					;* .CONI - Do a simple CONI (no error checking)
   301					; 
   302					; Argument:  MBCN - Contains RH number to do (left justified properly)
   303					;		    as 54000,,0, etc.
   304					;
   305					; Returns:   AC1 - Contains result
   306					;	     +1 always
   307					;#************************************************************
   308
   309	000126'	332 00 0 00 000115*	.CONI:	SKIPE	UDEBUG			; debug mode?
   310	000127'	263 17 0 00 000000 		RTN				; yes - exit
   311	000130'	261 17 0 00 000002 		PUT	2			; save AC2
   312	000131'	200 02 0 00 002452'		MOVE	2,[CONI 0,1]		; build a CONI from AC1
   313	000132'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   314	000133'	256 00 0 00 000002 		XCT	2			; do the CONI
   315	000134'	262 17 0 00 000002 		GET	2			; restore AC2
   316	000135'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 9
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0715

   317
   318					;#************************************************************
   319					;* .CONO - Do a simple CONO
   320					; 
   321					; Argument:  MBCN - Contains RH number to do (left justified properly)
   322					;		    as 54000,,0, etc.
   323					;
   324					; Returns:   AC1 - Contains data to write to RH or IPA20
   325					;	     +1 always
   326					;#************************************************************
   327
   328	000136'	332 00 0 00 000126*	.CONO:	SKIPE	UDEBUG			; debug mode?
   329	000137'	263 17 0 00 000000 		RTN				; yes - exit
   330	000140'	261 17 0 00 000002 		PUT	2			; save AC2
   331	000141'	200 02 0 00 002450'		MOVE	2,[CONO]		; build a CONO
   332	000142'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   333	000143'	540 02 0 00 000001 		HRR	2,1			; include data to write
   334	000144'	256 00 0 00 000002 		XCT	2			; do the CONO
   335	000145'	262 17 0 00 000002 		GET	2			; restore AC2
   336	000146'	263 17 0 00 000000 		RTN				; return
   337
   338
   339					;#************************************************************
   340					;* .DATAI - Do a simple DATAI (no error checking)
   341					; 
   342					; Argument:  MBCN - Contains RH number to do (left justified properly)
   343					;		    as 54000,,0, etc.
   344					;
   345					; Returns:   AC1 - Contains result
   346					;	     +1 always
   347					;#************************************************************
   348
   349	000147'	332 00 0 00 000136*	.DATAI:	SKIPE	UDEBUG			; debug mode?
   350	000150'	263 17 0 00 000000 		RTN				; yes - exit
   351	000151'	261 17 0 00 000002 		PUT	2			; save AC2
   352	000152'	200 02 0 00 002451'		MOVE	2,[DATAI 0,1]		; build a DATAI from AC1
   353	000153'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   354	000154'	256 00 0 00 000002 		XCT	2			; do the DATAI
   355	000155'	262 17 0 00 000002 		GET	2			; restore AC2
   356	000156'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 10
DFNIAI	MAC	 1-Nov-83 18:03		Port Register Read/Write Routines                                                  SEQ 0716

   357
   358					;#************************************************************
   359					;* .DATAO - Do a simple DATAO
   360					; 
   361					; Argument:  MBCN - Contains RH number to do (left justified properly)
   362					;		    as 54000,,0, etc.
   363					;
   364					; Returns:   AC1 - Contains data to write to RH or IPA20
   365					;	     +1 always
   366					;#************************************************************
   367
   368	000157'	332 00 0 00 000147*	.DATAO:	SKIPE	UDEBUG			; debug mode?
   369	000160'	263 17 0 00 000000 		RTN				; yes - exit
   370	000161'	261 17 0 00 000002 		PUT	2			; save AC2
   371	000162'	200 02 0 00 002447'		MOVE	2,[DATAO 0,1]		; build a DATAO
   372	000163'	434 02 0 00 000016 		IOR	2,MBCN			; include the device code
   373	000164'	256 00 0 00 000002 		XCT	2			; do the DATAO
   374	000165'	262 17 0 00 000002 		GET	2			; restore AC2
   375	000166'	263 17 0 00 000000 		RTN				; return
   376
   377
   378					;#********************************************************************
   379					;* ERESET - Issue an EBUS reset
   380					;#********************************************************************
   381
   382	000167'	332 00 0 00 000157*	ERESET:	SKIPE	UDEBUG			; debug mode?
   383	000170'	263 17 0 00 000000 		RTN				; yes - exit
   384	000171'	336 00 0 00 030037 		SKIPN	USER			; user mode?
   385	000172'	7 000 20 0 00 200000 		CONO	APR,200000		; no - do an EBUS reset
   386	000173'	332 00 0 00 030037 		SKIPE	USER			; user mode?
   387	000174'	260 17 0 00 000252'		GO	IPACLR			; yes - do a 'port clear' instead
   388	000175'	263 17 0 00 000000 		RTN	
   389
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 11
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0717

   390						SUBTTL	Port Specific Utility Routines
   391
   392					;#********************************************************************
   393					;* ISTOP - Stop IPA either by a port clear or by clearing the CSR register
   394					;#********************************************************************
   395
   396	000176'	332 00 0 00 000167*	ISTOP:	SKIPE	UDEBUG			; debug mode?
   397	000177'	263 17 0 00 000000 		RTN				; yes - return
   398	000200'	261 17 0 00 000000 		RPUT	(0,1,2)			; save AC's
   399
   400	000203'	260 17 0 00 000060'		GO	RDCSR			; read CSR register
   401	000204'	474 01 0 00 000000 		SETO	1,			; error - ensure error bits are set
   402	000205'	200 02 0 00 000001 		MOVE	2,1			; get into AC2
   403	000206'	603 01 0 00 004000 		TLNE	1,(CRAMPE)		; CRAM parity error bit set?
   404	000207'	254 00 0 00 000212'		JRST	ISTOP0			; yes - must clear it
   405	000210'	606 01 0 00 000010 		TRNN	1,MPRUN			; IPA running?
   406	000211'	254 00 0 00 000244'		JRST	ISTOPX			; no - exit
   407	000212'	200 00 0 00 000001 	ISTOP0:	MOVE	1			; get into AC0
   408	000213'	400 01 0 00 000000 		SETZ	1,			; CSR data to clear 'MPRUN'
   409	000214'	603 00 0 00 002000 		TLNE	(MBERR)			; MBUS error bit set?
   410	000215'	254 00 0 00 000240'		JRST	ISTOPC			; yes - must do a port clear
   411	000216'	603 00 0 00 004000 		TLNE	(CRAMPE)		; CRAM parity error bit set?
   412	000217'	201 01 0 00 004000 		MOVEI	1,EBUSPE		; yes - get 'EBUS PE' bit
   413	000220'	260 17 0 00 000010'		GO	LDCSR			; write CSR
   414	000221'	260 17 0 00 000060'		GO	RDCSR			; read CSR register
   415	000222'	474 01 0 00 000000 		SETO	1,			; error - ensure error bits are set
   416	000223'	603 01 0 00 006000 		TLNE	1,(CRAMPE!MBERR)	; error bits set?
   417	000224'	254 00 0 00 000240'		JRST	ISTOPC			; yes - must do a port clear
   418	000225'	602 01 0 00 000010 		TRNE	1,MPRUN			; still running?
   419	000226'	254 00 0 00 000240'		JRST	ISTOPC			; yes - must do a port clear
   420	000227'	603 02 0 00 004000 		TLNE	2,(CRAMPE)		; was CRAM PE set before?
   421	000230'	332 00 0 00 000000*		SKIPE	PMODE			; yes - running a test?
   422	000231'	334 00 0 00 000000 		SKIPA				; yes - don't print anything
   423	000232'	037 00 0 00 002454'		TMSGCD	<[CRAM PE cleared]>	; no - let operator know
   424	000233'	607 02 0 00 004000 		TLNN	2,(CRAMPE)		; was CRAM PE set before?
   425	000234'	332 00 0 00 000230*		SKIPE	PMODE			; no - running a test?
   426	000235'	334 00 0 00 000000 		SKIPA				; yes - don't print anything
   427	000236'	037 00 0 00 002461'		TMSGCD	<[Port stopped]> 	; no - let operator know
   428	000237'	254 00 0 00 000244'		JRST	ISTOPX			; no - exit
   429	000240'	201 01 0 00 400000 	ISTOPC:	MOVEI	1,PCLEAR		; get 'port clear' bit
   430	000241'	260 17 0 00 000010'		GO	LDCSR			; write the CSR register
   431	000242'	336 00 0 00 000234*		SKIPN	PMODE			; no - running a test?
   432	000243'	037 00 0 00 002465'		TMSGCD	<[Port Clear done]>	; let operator know
   433	000244'	400 01 0 00 000000 	ISTOPX:	SETZ	1,			; clear AC1
   434	000245'	260 17 0 00 000010'		GO	LDCSR			; clear CSR register
   435	000246'	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
   436
   437	000251'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 12
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0718

   438
   439					;#********************************************************************
   440					;* IPACLR - Issue a port clear
   441					;#********************************************************************
   442
   443	000252'	261 17 0 00 000001 	IPACLR:	PUT	1			; save AC1
   444	000253'	201 01 0 00 400000 		MOVEI	1,PCLEAR		; get 'port clear' bit
   445	000254'	260 17 0 00 000010'		GO	LDCSR			; write the CSR register
   446	000255'	262 17 0 00 000001 		GET	1			; restore AC1
   447	000256'	263 17 0 00 000000 		RTN				; return
   448
   449
   450					;#********************************************************************
   451					;* SETEBU - Check that 'Diag Test EBUF' bit is set in CSR and set if not.
   452					;
   453					; Return +1 - Error accessing CSR
   454					;	 +2 - Ok
   455					;#********************************************************************
   456
   457	000257'	261 17 0 00 000000 	SETEBU:	RPUT	(0,1)			; save AC's
   458
   459	000261'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   460	000262'	254 00 0 00 000271'		JRST	SETEBE			; error return
   461	000263'	200 00 0 00 000001 		MOVE	1			; get copy of AC1 into AC0
   462	000264'	660 01 0 00 200000 		TRO	1,TSTEBF		; set this bit
   463	000265'	620 01 0 00 040000 		TRZ	1,SELLAR		; clear this bit
   464	000266'	312 00 0 00 000001 		CAME	1			; bits already set up ok?
   465	000267'	260 17 0 00 000010'		GO	LDCSR			; no - set/clear them
   466	000270'	350 00 0 17 777776 		AOS	-2(P)			; set up ok return
   467	000271'	262 17 0 00 000001 	SETEBE:	RGET	(1,0)			; restore AC's
   468
   469	000273'	263 17 0 00 000000 		RTN				; return
   470
   471
   472					;#********************************************************************
   473					;* SETLAR - Check that 'Diag Sel LAR' bit is set in CSR and set if not.
   474					;
   475					; Return +1 - Error accessing CSR
   476					;	 +2 - Ok
   477					;#********************************************************************
   478
   479	000274'	261 17 0 00 000000 	SETLAR:	RPUT	(0,1)			; save AC's
   480
   481	000276'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   482	000277'	254 00 0 00 000306'		JRST	SETLAE			; error return
   483	000300'	200 00 0 00 000001 		MOVE	1			; get copy of AC1 into AC0
   484	000301'	620 01 0 00 200000 		TRZ	1,TSTEBF		; clear this bit
   485	000302'	660 01 0 00 040000 		TRO	1,SELLAR		; set this bit
   486	000303'	312 00 0 00 000001 		CAME	1			; bits already set up ok?
   487	000304'	260 17 0 00 000010'		GO	LDCSR			;   is set in CSR Register
   488	000305'	350 00 0 17 777776 		AOS	-2(P)			; set up ok return
   489	000306'	262 17 0 00 000001 	SETLAE:	RGET	(1,0)			; restore AC's
   490
   491	000310'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 13
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0719

   492
   493					;#********************************************************************
   494					;* CLREBU - Check that 'Diag Test EBUF' is not set in CSR and clear if is.
   495					;
   496					; Return +1 - Error accessing CSR
   497					;	 +2 - Ok
   498					;#********************************************************************
   499
   500	000311'	261 17 0 00 000000 	CLREBU:	RPUT	(0,1)			; save AC's
   501
   502	000313'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   503	000314'	254 00 0 00 000322'		JRST	CLREBE			; error return
   504	000315'	606 01 0 00 200000 		TRNN	1,TSTEBF		; 'Diag Test EBUF' bit set?
   505	000316'	254 00 0 00 000321'		JRST	CLREBX			; no - exit
   506	000317'	620 01 0 00 200000 		TRZ	1,TSTEBF		; make sure 'Diag Test EBUF' bit
   507	000320'	260 17 0 00 000010'		GO	LDCSR			;   is cleared in CSR Register
   508	000321'	350 00 0 17 777776 	CLREBX:	AOS	-2(P)			; set up ok return
   509	000322'	262 17 0 00 000001 	CLREBE:	RGET	(1,0)			; restore AC's
   510
   511	000324'	263 17 0 00 000000 		RTN				; return
   512
   513
   514					;#********************************************************************
   515					;* CHKCSR - Check if error bits are set in the CSR register
   516					;
   517					;  Also, stop the IPA if it is running, and announce the fact to the
   518					;  user.
   519					;#********************************************************************
   520
   521	000325'	261 17 0 00 000001 	CHKCSR:	PUT	1			; save AC1
   522	000326'	260 17 0 00 000060'		GO	RDCSR			; read CSR register
   523	000327'	334 00 0 00 000000 		SKIPA				; error return
   524	000330'	603 01 0 00 002000 		TLNE	1,(MBERR)		; MBUS Error bit set?
   525	000331'	254 00 0 00 000342'		JRST	CHKCSX			; yes - error exit
   526	000332'	603 01 0 00 004000 		TLNE	1,(CRAMPE)		; CRAM PE bit set?
   527						GO	[MOVEI	1,EBUSPE	; yes - clear it
   528							 GO	LDCSR
   529							 TMSGCD	<[CRAM PE cleared from CSR register]>
   530	000333'	260 17 0 00 002502'			 RTN]
   531	000334'	350 00 0 17 777777 		AOS	-1(P)			; no - set up RTN+2
   532
   533					; Also, check to see if the IPA is running
   534
   535	000335'	606 01 0 00 000010 		TRNN	1,MPRUN			; running?
   536	000336'	254 00 0 00 000342'		JRST	CHKCSX			; no - continue
   537	000337'	400 01 0 00 000000 		SETZ	1,			; clear AC1
   538	000340'	260 17 0 00 000010'		GO	LDCSR			; stop the port
   539	000341'	037 00 0 00 002506'		TMSGCD	<[CSR cleared to stop the port]>
   540	000342'	262 17 0 00 000001 	CHKCSX:	GET	1			; restore AC1
   541	000343'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 14
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0720

   542
   543					;#********************************************************************
   544					;* IPASRT - Start the port at the address given in 'SADDR' and with
   545					;*          initial parameters given in 'SDATA'.
   546					;
   547					; Arguments:	SNEXT - Contains the start address desired.
   548					;
   549					;		SDATA - Contains the data to be written to the CSR
   550					;		  registers to initialize everything correctly. 
   551					;
   552					; Note:	 This routine is normally used in conjunction with IPASTP.  IPASTP
   553					;	 saves the next address in SNEXT and the contents of CSR in SDATA.
   554					;	 Calling IPASRT after IPASTP has been called will leave  the  port
   555					;	 in the same state that it was, unless something is  done  to  the
   556					;	 port between the calls.
   557					;
   558					; Procedure:	(1) Obtain start address in 'SNEXT' and write it to the
   559					;		    RAR Register.
   560					;
   561					;		(2) If SDATA is zero, no initial data is assumed.  The
   562					;		    CSR is written as follows:
   563					;
   564					;		    Clear 'Single Cycle' - no single stepping apparently
   565					;		      is desired.
   566					;		    Set 'MPROC Run' - Start it up at address in RAR.
   567					;		    Set PIA bits to 4 - Allow interrupts on channel 4.
   568					;		    Clear all remaining bits.
   569					;
   570					;		(3) If SDATA is non-zero, the initial data given in SDATA
   571					;		    is massaged to ensure that at least the following is
   572					;		    true of the data:
   573					;		
   574					;		    'Single Cycle' bit is cleared.
   575					;		    'MPROC Run' bit is set.
   576					;
   577					; Return:	+1 - Failed (Error reading/writing CSR Register).
   578					;		+2 - Failed (Port already running).
   579					;		+3 - Failed (Error bits set in CSR)
   580					;		+4 - Ok
   581					;#********************************************************************
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 15
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0721

   582
   583	000344'	261 17 0 00 000000 	IPASRT:	RPUT	(0,1)			; save AC's
   584
   585
   586					; First check if the port is already running
   587
   588	000346'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   589	000347'	254 00 0 00 000373'		JRST	IPASR3			; error accessing CSR register
   590	000350'	602 01 0 00 000010 		TRNE	1,MPRUN			; uproc already running?
   591	000351'	254 00 0 00 000372'		JRST	IPASR2			; yes - exit +2 (error)
   592
   593					; Check for error bits set
   594
   595	000352'	603 01 0 00 006000 		TLNE	1,(CRAMPE!MBERR)	; error bits set?
   596	000353'	254 00 0 00 000371'		JRST	IPASR1			; yes - error exit
   597
   598					; Now handle start address
   599
   600	000354'	622 01 0 00 200000 		TRZE	1,TSTEBF		; 'Diag Test EBUF' bit set?
   601	000355'	260 17 0 00 000010'		GO	LDCSR			; yes - clear it
   602	000356'	200 01 0 00 000426'		MOVE	1,SNEXT			; get start address
   603	000357'	242 01 0 00 000001 		LSH	1,1			; position correctly
   604	000360'	260 17 0 00 000021'		GO	LDRAR			; load the register
   605
   606					; Set up data to write to CSR
   607
   608	000361'	336 01 0 00 000430'	IPASR0:	SKIPN	1,SDATA			; any data given?
   609	000362'	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
   610	000363'	620 01 0 00 020000 		TRZ	1,SINCYC		; ensure SINCYC are cleared
   611	000364'	660 01 0 00 040010 		TRO	1,MPRUN!SELLAR		; ensure MPRUN,SELLAR are set
   612	000365'	332 00 0 00 030037 		SKIPE	USER			; user mode?
   613	000366'	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
   614
   615					; Write the data to CSR
   616
   617	000367'	260 17 0 00 000010'		GO	LDCSR
   618	000370'	350 00 0 17 777776 		AOS	-2(P)			; ok exit (+4)
   619	000371'	350 00 0 17 777776 	IPASR1:	AOS	-2(P)			; error exit (+3)
   620	000372'	350 00 0 17 777776 	IPASR2:	AOS	-2(P)			; error exit (+2)
   621	000373'	262 17 0 00 000001 	IPASR3:	RGET	(1,0)			; error exit (+1)
   622
   623	000375'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 16
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0722

   624
   625					;#********************************************************************
   626					;* IPASTP - Stop the port
   627					;
   628					; Arguments:	None
   629					;
   630					; Procedure:	Read the CSR Register.
   631					;		Clear 'MPROC Run' bit.
   632					;		Write this data to CSR.
   633					;		Read the CSR Register and save data in SDATA.
   634					;		Write 'DIAG Sel LAR' bit in CSR.
   635					;		Read the LAR and save data in SNEXT.
   636					;
   637					; Return:	+1 - Failed (Error reading/writing CSR Register).
   638					;		+2 - Failed (Port not running).
   639					;		+3 - Failed (Error bits set in CSR)
   640					;		+4 - Ok, SDATA and SADDR have data at stopping point.
   641					;#********************************************************************
   642
   643	000376'	261 17 0 00 000000 	IPASTP:	RPUT	(0,1)			; save AC's
   644
   645
   646					; First read CSR and verify that 'MPRUN' is set.
   647
   648	000400'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   649	000401'	254 00 0 00 000423'		JRST	IPAST3			; failed - exit +1
   650	000402'	606 01 0 00 000010 		TRNN	1,MPRUN			; uproc running?
   651	000403'	254 00 0 00 000422'		JRST	IPAST2			; no - failed - exit +2
   652
   653					; Check for error bits set
   654
   655	000404'	603 01 0 00 006000 		TLNE	1,(CRAMPE!MBERR)	; error bits set?
   656	000405'	254 00 0 00 000421'		JRST	IPAST1			; yes - error exit
   657
   658					; Then clear 'MPRUN'.
   659
   660	000406'	620 01 0 00 000010 		TRZ	1,MPRUN			; clear 'MPROC Run' bit
   661	000407'	260 17 0 00 000010'		GO	LDCSR			; write the CSR
   662	000410'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   663	000411'	254 00 0 00 000423'		JRST	IPAST3			; failed - exit
   664	000412'	202 01 0 00 000430'		MOVEM	1,SDATA			; save CSR at halt
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 17
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0723

   665
   666					; Now read the stopping address (in LAR)
   667
   668	000413'	660 01 0 00 040000 		TRO	1,SELLAR		; set 'Diag Sel LAR' bit
   669	000414'	260 17 0 00 000010'		GO	LDCSR			; write it
   670	000415'	260 17 0 00 000104'		GO	RDLAR			; read LAR
   671	000416'	242 01 0 00 777777 		LSH	1,-1			; get LAR data
   672	000417'	202 01 0 00 000426'		MOVEM	1,SNEXT			; save the data
   673
   674					; Exit
   675
   676	000420'	350 00 0 17 777776 		AOS	-2(P)			; ok exit (+4)
   677	000421'	350 00 0 17 777776 	IPAST1:	AOS	-2(P)			; error exit (+3)
   678	000422'	350 00 0 17 777776 	IPAST2:	AOS	-2(P)			; error exit (+2)
   679	000423'	262 17 0 00 000001 	IPAST3:	RGET	(1,0)			; error exit (+1)
   680
   681	000425'	263 17 0 00 000000 		RTN				; return
   682
   683					; Parameter locations
   684
   685	000426'	000000	000000		SNEXT:	0				; next address
   686	000427'	000000	000000		SLAST:	0				; last address
   687	000430'	000000	000000		SDATA:	0				; contents of CSR at when stopped
   688	000431'	000000	000000		EADDR:	0				; correct stopping address
   689	000432'	000000	000000		AADDR:	0				; actual stopping address
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 18
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0724

   690
   691					;#********************************************************************
   692					;* IPASST - Single step the port at the address given in 'SNEXT' and
   693					;*          with initial parameters given in 'SDATA'.
   694					;
   695					; Arguments:	SADDR - Contains the start address desired.
   696					;
   697					;		SDATA - Contains the data to be written to the CSR
   698					;		  registers to initialize everything correctly. 
   699					;
   700					;		AC1 - 0 - Don't preserve EBUF data
   701					;		     -1 - Preserve EBUF data
   702					;
   703					; Procedure:	(1) Start the port exactly as IPASRT would have, except
   704					;		    that 'Single Cycle' is set at the same time as
   705					;		    'MPRUN'.
   706					;
   707					;		(2) Successive calls to IPASST do as in (1), except
   708					;		    that SDATA is already set up and SNEXT is being
   709					;		    continually copied to SLAST and new contents of
   710					;		    the LAR are being put into SNEXT.
   711					;
   712					; Return:	+1 - Failed (Error reading/writing CSR Register).
   713					;		+2 - Failed (Port already running).
   714					;		+3 - Failed (Error bits set in CSR)
   715					;		+4 - Ok
   716					;#********************************************************************
   717
   718	000433'	261 17 0 00 000000 	IPASST:	RPUT	(0,1)			; save AC's
   719
   720	000435'	202 01 0 00 003610'		MOVEM	1,PRSFLG#		; save 'Preserve EBUF' flag
   721
   722					; First check if the port is already running
   723
   724	000436'	260 17 0 00 000060'		GO	RDCSR			; read CSR register
   725	000437'	254 00 0 00 000514'		JRST	IPASS4			; error accessing CSR register
   726	000440'	602 01 0 00 000010 		TRNE	1,MPRUN			; uproc already running?
   727	000441'	254 00 0 00 000513'		JRST	IPASS3			; yes - exit +2 (error)
   728
   729					; Check for error bits set
   730
   731	000442'	603 01 0 00 006000 		TLNE	1,(CRAMPE!MBERR)	; error bits set?
   732	000443'	254 00 0 00 000512'		JRST	IPASS2			; yes - error exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 19
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0725

   733
   734					; Now handle start address
   735
   736	000444'	606 01 0 00 200000 		TRNN	1,TSTEBF		; 'Diag Test EBUF' bit set?
   737	000445'	254 00 0 00 000450'		JRST	.+3			; no - continue
   738	000446'	620 01 0 00 200000 		TRZ	1,TSTEBF		; make sure 'Diag Test EBUF' bit
   739	000447'	260 17 0 00 000010'		GO	LDCSR			;   is cleared in CSR Register
   740	000450'	200 01 0 00 000426'		MOVE	1,SNEXT			; get start address
   741	000451'	242 01 0 00 000001 		LSH	1,1			; position correctly
   742	000452'	260 17 0 00 000021'		GO	LDRAR			; load the register
   743
   744					; Set up data to write to CSR
   745
   746	000453'	336 01 0 00 000430'	IPASS0:	SKIPN	1,SDATA			; any data given?
   747	000454'	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
   748	000455'	660 01 0 00 060010 		TRO	1,SELLAR!MPRUN!SINCYC	; ensure MPRUN,SELLAR,SINCYC are set
   749	000456'	332 00 0 00 030037 		SKIPE	USER			; user mode?
   750	000457'	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
   751
   752					; Do the single step
   753
   754	000460'	260 17 0 00 000010'		GO	LDCSR			; write the data
   755
   756					; Read CSR
   757
   758	000461'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   759	000462'	255 00 0 00 000000 		JFCL				; ignore error
   760	000463'	202 01 0 00 000430'		MOVEM	1,SDATA			; save it
   761
   762					; Save EBUF contents
   763
   764	000464'	331 00 0 00 003610'		SKIPL	PRSFLG			; preserve EBUF data?
   765	000465'	254 00 0 00 000475'		JRST	IPASS1			; no - continue
   766	000466'	660 01 0 00 200000 		TRO	1,TSTEBF		; set 'Diag Test EBUF'
   767	000467'	260 17 0 00 000010'		GO	LDCSR			; write it
   768	000470'	260 17 0 00 000050'		GO	RDEBUF			; read the EBUF
   769	000471'	202 01 0 00 003612'		MOVEM	1,SAVEBF#		; save EBUF data
   770	000472'	200 01 0 00 000430'		MOVE	1,SDATA			; get CSR data
   771	000473'	620 01 0 00 200000 		TRZ	1,TSTEBF		; set 'Diag Test EBUF'
   772	000474'	260 17 0 00 000010'		GO	LDCSR			; write it
   773
   774					; Read LAR
   775
   776	000475'	200 00 0 00 000426'	IPASS1:	MOVE	SNEXT			; get original next address
   777	000476'	202 00 0 00 000427'		MOVEM	SLAST			; save in last address
   778	000477'	260 17 0 00 000104'		GO	RDLAR			; read LAR register
   779	000500'	242 01 0 00 777777 		LSH	1,-1			; get LAR data
   780	000501'	202 01 0 00 000426'		MOVEM	1,SNEXT			; set up new next address
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 20
DFNIAI	MAC	 1-Nov-83 18:03		Port Specific Utility Routines                                                     SEQ 0726

   781
   782					; Restore EBUF
   783
   784	000502'	200 01 0 00 000430'		MOVE	1,SDATA			; get CSR data back
   785	000503'	660 01 0 00 200000 		TRO	1,TSTEBF		; set 'Diag Test EBUF'
   786	000504'	260 17 0 00 000010'		GO	LDCSR			; write it
   787	000505'	200 01 0 00 003612'		MOVE	1,SAVEBF		; restore EBUF data
   788	000506'	260 17 0 00 000000'		GO	LDEBUF			; write the EBUF
   789	000507'	200 01 0 00 000430'		MOVE	1,SDATA			; get CSR data back
   790	000510'	260 17 0 00 000010'		GO	LDCSR			; write it
   791
   792	000511'	350 00 0 17 777776 		AOS	-2(P)			; ok exit (+4)
   793	000512'	350 00 0 17 777776 	IPASS2:	AOS	-2(P)			; error exit (+3)
   794	000513'	350 00 0 17 777776 	IPASS3:	AOS	-2(P)			; error exit (+2)
   795	000514'	262 17 0 00 000001 	IPASS4:	RGET	(1,0)			; error exit (+1)
   796
   797	000516'	263 17 0 00 000000 		RTN				; return
   798
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 21
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0727

   799						SUBTTL	PI System Routines
   800
   801					;#********************************************************************
   802					;* INITPI - Initialize and Turn On PI System
   803					;
   804					; In exec mode only.  Turn on PI system with all channels activated.
   805					; Also, write PI level bits to 0's for all other RH's to ensure that
   806					; only the port interrupts.
   807					;#********************************************************************
   808
   809	000517'	332 00 0 00 030037 	INITPI:	SKIPE	USER			; user mode?
   810	000520'	263 17 0 00 000000 		RTN				; yes - exit
   811	000521'	261 17 0 00 000001 		PUT	1			; save AC1
   812	000522'	7 004 20 0 00 010000 		CONO	PI,PICLR		; clear PI system
   813
   814					; Set PI level bits to zero for each RH slot
   815
   816	000523'	7 540 20 0 00 000000 		CONO	540,0			; set PIA level bits to 0
   817	000524'	7 544 20 0 00 000000 		CONO	544,0			; set PIA level bits to 0
   818	000525'	7 550 20 0 00 000000 		CONO	550,0			; set PIA level bits to 0
   819	000526'	7 554 20 0 00 000000 		CONO	554,0			; set PIA level bits to 0
   820	000527'	7 560 20 0 00 000000 		CONO	560,0			; set PIA level bits to 0
   821	000530'	7 570 20 0 00 000000 		CONO	570,0			; set PIA level bits to 0
   822	000531'	7 574 20 0 00 000000 		CONO	574,0			; set PIA level bits to 0
   823
   824					; Finally activate all channels and turn on the PI system
   825
   826	000532'	7 004 20 0 00 002177 	INITP0:	CONO	PI,2177			; activate all channels
   827	000533'	7 004 20 0 00 000200 		CONO	PI,PION			; turn on PI system
   828	000534'	261 17 0 00 000000 		PUT	0			; save AC0
   829	000535'	200 00 0 00 002515'		MOVE	[INTNUM,,INTNUM+1]	; build BLT pointer
   830	000536'	251 00 0 00 001330'		BLT	INTEND			; clear interrupt history data
   831	000537'	262 17 0 00 000000 		RGET	(0,1)			; restore AC's
   832
   833	000541'	263 17 0 00 000000 		RTN				; return
   834
   835					; Clear PI system after returning from DDT
   836
   837	000542'	332 00 0 00 030037 	INITPD:	SKIPE	USER			; user mode?
   838	000543'	263 17 0 00 000000 		RTN				; yes -  exit
   839	000544'	7 004 20 0 00 010000 		CONO	PI,PICLR		; clear PI system
   840	000545'	254 00 0 00 000532'		JRST	INITP0			; continue
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 22
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0728

   841
   842					;#********************************************************************
   843					;* .PIOFF - Detach port from PI system 
   844					;#********************************************************************
   845
   846	000546'	332 00 0 00 030037 	.PIOFF:	SKIPE	USER			; user mode?
   847	000547'	263 17 0 00 000000 		RTN				; yes - return
   848	000550'	261 17 0 00 000001 		PUT	1			; save AC1
   849	000551'	260 17 0 00 000574'		GO	PISYOF			; no - turn off PI system
   850	000552'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   851	000553'	255 00 0 00 000000 		JFCL				; error return
   852	000554'	620 01 0 00 000007 		TRZ	1,7			; clear PIA bits in CSR
   853	000555'	260 17 0 00 000010'		GO	LDCSR			; write the bit
   854	000556'	262 17 0 00 000001 		GET	1			; restore AC1
   855	000557'	263 17 0 00 000000 		RTN				; exit
   856
   857
   858					;#********************************************************************
   859					;* .PION - Attach port to PI system (Channel 4)
   860					;#********************************************************************
   861
   862	000560'	332 00 0 00 030037 	.PION:	SKIPE	USER			; user mode?
   863	000561'	263 17 0 00 000000 		RTN				; yes - exit
   864	000562'	261 17 0 00 000001 		PUT	1			; save AC1
   865	000563'	260 17 0 00 000574'		GO	PISYOF			; turn PI system off
   866	000564'	260 17 0 00 000060'		GO	RDCSR			; read CSR
   867	000565'	255 00 0 00 000000 		JFCL				; error return
   868	000566'	620 01 0 00 000007 		TRZ	1,7			; clear PIA bits
   869	000567'	660 01 0 00 000004 		TRO	1,4			; set PI level 4
   870	000570'	260 17 0 00 000010'		GO	LDCSR			; write the bit
   871	000571'	260 17 0 00 000577'		GO	PISYON			; turn PI system back on
   872	000572'	262 17 0 00 000001 		GET	1			; restore AC
   873	000573'	263 17 0 00 000000 		RTN				; exit
   874
   875
   876					;#********************************************************************
   877					;* PISYOF - Turn PI system off
   878					;#********************************************************************
   879
   880	000574'	336 00 0 00 030037 	PISYOF:	SKIPN	USER			; user mode?
   881	000575'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; no - turn it off
   882	000576'	263 17 0 00 000000 		RTN				; exit
   883
   884
   885					;#********************************************************************
   886					;* PISYON - Turn PI system on
   887					;#********************************************************************
   888
   889	000577'	336 00 0 00 030037 	PISYON:	SKIPN	USER			; user mode?
   890	000600'	7 004 20 0 00 002300 		CONO	PI,2300			; no - turn on PI system
   891	000601'	263 17 0 00 000000 		RTN				; and exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 23
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0729

   892
   893					;#********************************************************************
   894					;* SETVEC - Set up interrupt vectors for an port under test
   895					;#********************************************************************
   896
   897	000602'	402 00 0 00 001356'	SETVEC:	SETZM	.INWD1			; clear special interrupt data
   898	000603'	332 00 0 00 030037 		SKIPE	USER			; user mode?
   899	000604'	263 17 0 00 000000 		RTN				; yes - exit
   900	000605'	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
   901
   902	000607'	200 00 0 00 002516'		MOVE	[JSR VIINT]		; get trap instruction (Vectored Int)
   903	000610'	200 01 0 00 001367'		MOVE	1,ICWA0+7		; get initial address of log area
   904	000611'	271 01 0 00 000003 		ADDI	1,3			; calculate address of 4th word
   905	000612'	270 01 0 00 001372'		ADD	1,CBASE			; add special page number
   906	000613'	202 00 0 01 000000 		MOVEM	(1)			; put in 4th word of logout area
   907	000614'	200 01 0 00 000622'		MOVE	1,IVADDR
   908	000615'	260 17 0 00 000623'		GO	SET2N			; set up 40+2N transfer addresses
   909	000616'	476 00 0 00 001067'		SETOM	INTNUM			; initialize interrupt count
   910	000617'	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
   911
   912	000621'	263 17 0 00 000000 		RTN
   913
   914	000622'	000000	000000		IVADDR:	0				; interrupt vector address for port
   915
   916
   917					;#********************************************************************
   918					;* SET2N - Set up 40 + 2N locations with interrupt dispatch instruction
   919					;#********************************************************************
   920
   921	000623'	261 17 0 00 000000 	SET2N:	PUT				; save AC0
   922	000624'	200 00 0 00 002517'		MOVE	[JSR	NVIIN1]		; channel 1
   923	000625'	202 00 0 00 000042 		MOVEM	42
   924	000626'	200 00 0 00 002520'		MOVE	[JSR	NVIIN2]		; channel 2
   925	000627'	202 00 0 00 000044 		MOVEM	44
   926	000630'	200 00 0 00 002521'		MOVE	[JSR	NVIIN3]		; channel 3
   927	000631'	202 00 0 00 000046 		MOVEM	46
   928	000632'	200 00 0 00 002522'		MOVE	[JSR	NVIIN4]		; channel 4
   929	000633'	202 00 0 00 000050 		MOVEM	50
   930	000634'	200 00 0 00 002523'		MOVE	[JSR	NVIIN5]		; channel 5
   931	000635'	202 00 0 00 000052 		MOVEM	52
   932	000636'	200 00 0 00 002524'		MOVE	[JSR	NVIIN6]		; channel 6
   933	000637'	202 00 0 00 000054 		MOVEM	54
   934	000640'	200 00 0 00 002525'		MOVE	[JSR	NVIIN7]		; channel 7
   935	000641'	202 00 0 00 000056 		MOVEM	56
   936	000642'	262 17 0 00 000000 		GET				; restore AC0
   937	000643'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 24
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0730

   938
   939					;#********************************************************************
   940					;* VIINT - Vectored interrupt (Port)
   941					;
   942					; This routine (and NVIINx) do the following:
   943					;
   944					;   - CONI PI and save it
   945					;   - Shut off PI system
   946					;   - Increment interrupt offset (not to exceed 20 interrupts)
   947					;   - Save interrupt data
   948					;   - Exit with a JEN after turning PI system back on
   949					;
   950					; Interrupt data maintained:
   951					;
   952					;   INTPC - PC interrupted from
   953					;   INTTYP - Type 0,,0 - Vectored		  (If overflow occurred
   954					;		  0,,n - Non-vectored channel N    the left half is -1)
   955					;   INTCON - CONI PI data
   956					;   INTAPR - CONI APR data
   957					;   INTTIM - Time of interrupt (in msec)
   958					;   INTUSE - Time of interrupt (addl time in usec)
   959					;   INTCSR - CSR data on interrrupt
   960					;   INTNNN - Interrupt #
   961					;
   962					; The index into these tables is saved in INTNUM.
   963					;#********************************************************************
   964
   965	000644'	000000	000000		VIINT:	0				; flags and PC get stored here
   966	000645'	7 004 24 0 00 003614'		CONI	PI,VIIPI#		; save CONI PI data
   967	000646'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; no - turn off PI system
   968	000647'	261 17 0 00 000000 		RPUT	(0,1,2,3,$SVUUO,$SVUPC) ; save some stuff
   969
   970
   971					; Save interrupt data
   972
   973	000655'	400 00 0 00 000000 		SETZ				; initialized interrupt type
   974	000656'	350 01 0 00 001067'		AOS	1,INTNUM		; increment interrupt number
   975	000657'	301 01 0 00 000024 		CAIL	1,^D20			; exceed maximum?
   976	000660'	505 00 0 00 777777 		HRLI	777777			; yes - flag such
   977	000661'	301 01 0 00 000024 		CAIL	1,^D20			; exceed maximum?
   978	000662'	201 01 0 00 000023 		MOVEI	1,^D19			; yes - limit to 20 entries
   979	000663'	202 00 0 01 001114'		MOVEM	INTTYP(1)		; save interrupt type
   980	000664'	200 00 0 00 001067'		MOVE	INTNUM			; get interrupt number
   981	000665'	202 00 0 01 001304'		MOVEM	INTNNN(1)		; save it
   982	000666'	200 00 0 00 000644'		MOVE	VIINT			; get interrupt PC
   983	000667'	202 00 0 01 001070'		MOVEM	INTPC(1)		; save it
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 25
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0731

   984	000670'	200 00 0 00 003614'		MOVE	VIIPI			; get CONI PI data
   985	000671'	202 00 0 01 001140'		MOVEM	INTCON(1)		; save it
   986	000672'	7 000 24 0 00 000000 		CONI	APR,0			; get CONI APR data
   987	000673'	202 00 0 01 001164'		MOVEM	INTAPR(1)		; save it
   988	000674'	400 03 0 00 000000 		SETZ	3,			; set up for getting time
   989	000675'	260 17 0 00 000000*		GO	RUNTME			; get current time
   990	000676'	200 00 0 00 000000*		MOVE	DEBTIM			; get time in milliseconds
   991	000677'	202 00 0 01 001210'		MOVEM	INTTIM(1)		; save it
   992	000700'	200 00 0 00 000000*		MOVE	USTIM			; get addl time in microseconds
   993	000701'	202 00 0 01 001234'		MOVEM	INTUSE(1)		; save it
   994
   995					; Exit after turning on PI system (if not refusing them anymore)
   996
   997	000702'	200 00 0 01 001304'		MOVE	INTNNN(1)		; get interrupt number
   998	000703'	307 00 0 00 020000 		CAIG	20000			; more than 20000 interrupts?
   999	000704'	260 17 0 00 000560'		GO	.PION			; no - turn on PI system
  1000	000705'	303 00 0 00 020000 		CAILE	20000			; more than 20000 interrupts?
  1001	000706'	476 00 0 00 001356'		SETOM	.INWD1			; yes - indicate such
  1002	000707'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,3,2,1,0)	; restore stuff
  1003
  1004	000715'	254 12 1 00 000644'		JEN	@VIINT			; release interrupt and return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 26
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0732

  1005
  1006					;#********************************************************************
  1007					;* NVIINx - Non-Vectored interrupt (Port)
  1008					;#********************************************************************
  1009
  1010	000716'	000000	000000		NVIIN1:	0				; for PC+flags
  1011	000717'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1012	000720'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1013	000721'	261 17 0 00 000000 		PUT	0			; save AC0
  1014	000722'	200 00 0 00 000716'		MOVE	NVIIN1			; get interrupt PC
  1015	000723'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1016	000724'	201 00 0 00 000001 		MOVEI	1			; set up interrupt type
  1017	000725'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
  1018
  1019	000726'	000000	000000		NVIIN2:	0				; for PC+flags
  1020	000727'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1021	000730'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1022	000731'	261 17 0 00 000000 		PUT	0			; save AC0
  1023	000732'	200 00 0 00 000726'		MOVE	NVIIN2			; get interrupt PC
  1024	000733'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1025	000734'	201 00 0 00 000002 		MOVEI	2			; set up interrupt type
  1026	000735'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
  1027
  1028	000736'	000000	000000		NVIIN3:	0				; for PC+flags
  1029	000737'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1030	000740'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1031	000741'	261 17 0 00 000000 		PUT	0			; save AC0
  1032	000742'	200 00 0 00 000736'		MOVE	NVIIN3			; get interrupt PC
  1033	000743'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1034	000744'	201 00 0 00 000003 		MOVEI	3			; set up interrupt type
  1035	000745'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
  1036
  1037	000746'	000000	000000		NVIIN4:	0				; for PC+flags
  1038	000747'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1039	000750'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1040	000751'	261 17 0 00 000000 		PUT	0			; save AC0
  1041	000752'	200 00 0 00 000746'		MOVE	NVIIN4			; get interrupt PC
  1042	000753'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1043	000754'	201 00 0 00 000004 		MOVEI	4			; set up interrupt type
  1044	000755'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
  1045
  1046	000756'	000000	000000		NVIIN5:	0				; for PC+flags
  1047	000757'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1048	000760'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1049	000761'	261 17 0 00 000000 		PUT	0			; save AC0
  1050	000762'	200 00 0 00 000756'		MOVE	NVIIN5			; get interrupt PC
  1051	000763'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1052	000764'	201 00 0 00 000005 		MOVEI	5			; set up interrupt type
  1053	000765'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 27
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0733

  1054
  1055	000766'	000000	000000		NVIIN6:	0				; for PC+flags
  1056	000767'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1057	000770'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1058	000771'	261 17 0 00 000000 		PUT	0			; save AC0
  1059	000772'	200 00 0 00 000766'		MOVE	NVIIN6			; get interrupt PC
  1060	000773'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1061	000774'	201 00 0 00 000006 		MOVEI	6			; set up interrupt type
  1062	000775'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
  1063
  1064	000776'	000000	000000		NVIIN7:	0				; for PC+flags
  1065	000777'	7 004 24 0 00 003614'		CONI	PI,VIIPI		; save CONI PI data
  1066	001000'	7 004 20 0 00 000400 		CONO	PI,PIOFF		; turn off PI system
  1067	001001'	261 17 0 00 000000 		PUT	0			; save AC0
  1068	001002'	200 00 0 00 000776'		MOVE	NVIIN7			; get interrupt PC
  1069	001003'	202 00 0 00 001066'		MOVEM	NVJEN			; save it for JEN
  1070	001004'	201 00 0 00 000007 		MOVEI	7			; set up interrupt type
  1071	001005'	254 00 0 00 001006'		JRST	NVIINC			; go to common handling
  1072
  1073					; Save AC's and calculate interrupt number
  1074
  1075	001006'	261 17 0 00 000001 	NVIINC:	RPUT	(1,2,3,$SVUUO,$SVUPC)	; save some stuff
  1076
  1077	001013'	350 02 0 00 001067'		AOS	2,INTNUM		; increment interrupt number
  1078	001014'	301 02 0 00 000024 		CAIL	2,^D20			; exceed maximum?
  1079	001015'	505 00 0 00 777777 		HRLI	777777			; yes - flag such
  1080	001016'	301 02 0 00 000024 		CAIL	2,^D20			; exceed maximum?
  1081	001017'	201 02 0 00 000023 		MOVEI	2,^D19			; yes - limit to 20 entries
  1082
  1083					; Save interrupt data
  1084
  1085	001020'	202 00 0 02 001114'		MOVEM	INTTYP(2)		; save interrupt type
  1086	001021'	200 00 0 00 001067'		MOVE	INTNUM			; get interrupt number
  1087	001022'	202 00 0 02 001304'		MOVEM	INTNNN(2)		; save interrupt number
  1088	001023'	200 00 0 00 001066'		MOVE	NVJEN			; get interrupt PC
  1089	001024'	202 00 0 02 001070'		MOVEM	INTPC(2)		; save it
  1090	001025'	200 00 0 00 003614'		MOVE	VIIPI			; get CONI PI data
  1091	001026'	202 00 0 02 001140'		MOVEM	INTCON(2)		; save it
  1092	001027'	7 000 24 0 00 000000 		CONI	APR,0			; get CONI APR data
  1093	001030'	202 00 0 02 001164'		MOVEM	INTAPR(2)		; save it
  1094	001031'	260 17 0 00 000060'		GO	RDCSR			; read CSR register
  1095	001032'	255 00 0 00 000000 		JFCL				; ignore error
  1096	001033'	202 01 0 02 001260'		MOVEM	1,INTCSR(2)		; save data
  1097	001034'	400 03 0 00 000000 		SETZ	3,			; set up for getting time
  1098	001035'	260 17 0 00 000675*		GO	RUNTME			; get current time
  1099	001036'	200 00 0 00 000676*		MOVE	DEBTIM			; get time in milliseconds
  1100	001037'	202 00 0 02 001210'		MOVEM	INTTIM(2)		; save it
  1101	001040'	200 00 0 00 000700*		MOVE	USTIM			; get addl time in microseconds
  1102	001041'	202 00 0 02 001234'		MOVEM	INTUSE(2)		; save it
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 28
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0734

  1103
  1104					; Save special interrupt data if necessary
  1105
  1106	001042'	400 03 0 00 000000 		SETZ	3,			; clear LAR data
  1107	001043'	603 01 0 00 004000 		TLNE	1,(CRAMPE)		; CRAM PE occurred?
  1108						GO	[TLZ	1,(CRAMPE)	; yes - clear it and read
  1109							 TRO	1,SELLAR!EBUSPE	;   LAR
  1110							 GO	LDCSR
  1111							 GO	RDLAR
  1112							 MOVE	3,1
  1113	001044'	260 17 0 00 002526'			 RTN]
  1114	001045'	603 01 0 00 002000 		TLNE	1,(MBERR)		; MBUS Error occurred?
  1115						GO	[GO	IPACLR		; yes - clear it and read
  1116							 MOVEI	1,SELLAR	;   LAR
  1117							 GO	LDCSR
  1118							 GO	RDLAR
  1119							 MOVE	3,1
  1120	001046'	260 17 0 00 002534'			 RTN]
  1121	001047'	607 01 0 00 006000 		TLNN	1,(CRAMPE!MBERR)	; interrupt bits in CSR set?
  1122	001050'	602 01 0 00 007200 		TRNE	1,EBUSPE!FQUERR!MVRERR!RESQAV
  1123						GO	[MOVE	1,INTCSR(2)	; yes - save special interrupt data
  1124							 MOVEM	1,.INWD1
  1125							 MOVEM	3,.INWD2
  1126	001051'	260 17 0 00 002542'			 RTN]
  1127
  1128					; Turn back on PI system and dismiss interrupt
  1129
  1130	001052'	200 00 0 02 001304'		MOVE	INTNNN(2)		; get interrupt number
  1131	001053'	307 00 0 00 020000 		CAIG	20000			; more than 20000 interrupts?
  1132	001054'	260 17 0 00 000560'		GO	.PION			; no - turn on PI system
  1133	001055'	303 00 0 00 020000 		CAILE	20000			; more than 20000 interrupts?
  1134	001056'	476 00 0 00 001356'		SETOM	.INWD1			; yes - indicate such
  1135	001057'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,3,2,1,0) ; restore stuff
  1136
  1137	001065'	254 12 1 00 001066'		JEN	@NVJEN			; release interrupt and return
  1138
  1139	001066'	000000	000000		NVJEN:	0
  1140
  1141					; Interrupt data storage
  1142
  1143	001067'	000000	000000		INTNUM:	0
  1144
  1145	001070'				INTPC:	BLOCK	^D20
  1146	001114'				INTTYP:	BLOCK	^D20
  1147	001140'				INTCON:	BLOCK	^D20
  1148	001164'				INTAPR:	BLOCK	^D20
  1149	001210'				INTTIM:	BLOCK	^D20
  1150	001234'				INTUSE:	BLOCK	^D20
  1151	001260'				INTCSR:	BLOCK	^D20
  1152	001304'				INTNNN:	BLOCK	^D20
  1153	001330'	000000	000000		INTEND:	0
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 29
DFNIAI	MAC	 1-Nov-83 18:03		PI System Routines                                                                 SEQ 0735

  1154
  1155					;#********************************************************************
  1156					;* .INPNT - Print special interrupt data
  1157					;#********************************************************************
  1158
  1159	001331'	336 00 0 00 001356'	.INPNT:	SKIPN	.INWD1			; any interrupt data saved yet?
  1160	001332'	263 17 0 00 000000 		RTN				; no - return
  1161	001333'	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
  1162
  1163	001335'	200 01 0 00 001356'		MOVE	1,.INWD1		; get CSR data
  1164	001336'	316 01 0 00 002546'		CAMN	1,[-1]			; over 20000 interrupts?
  1165						JRST	[TMSGCD	<[More than 20000 interrupts - PI system shut off]>
  1166	001337'	254 00 0 00 002562'			 JRST	.INPNX]
  1167	001340'	603 01 0 00 004000 		TLNE	1,(CRAMPE)		; CRAM PE?
  1168						JRST	[TMSGC	<[CRAM PE at >	; yes - print such
  1169							 MOVE	.INWD2
  1170							 LSH	-1
  1171							 PNTOCS
  1172							 TMSGD	<]>
  1173	001341'	254 00 0 00 002567'			 JRST	.INPNX]
  1174	001342'	603 01 0 00 002000 		TLNE	1,(MBERR)		; MBUS Error?
  1175						JRST	[TMSGC	<[MBUS ERR at > ; yes - print such
  1176							 MOVE	.INWD2
  1177							 LSH	-1
  1178							 PNTOCS
  1179							 TMSGD	<]>
  1180	001343'	254 00 0 00 002601'			 JRST	.INPNX]
  1181	001344'	602 01 0 00 004000 		TRNE	1,EBUSPE		; EBUS PE?
  1182						JRST	[TMSGCD	<[EBUS PE]>	; yes - print such
  1183	001345'	254 00 0 00 002612'			 JRST	.INPNX]
  1184	001346'	602 01 0 00 002000 		TRNE	1,FQUERR		; FQ Error?
  1185						JRST	[TMSGCD	<[FreeQ Error]>	; yes - print such
  1186	001347'	254 00 0 00 002620'			 JRST	.INPNX]
  1187	001350'	602 01 0 00 001000 		TRNE	1,MVRERR		; DP Error?
  1188						JRST	[TMSGCD	<[Data Path Error]> ; yes - print such
  1189	001351'	254 00 0 00 002627'			 JRST	.INPNX]
  1190
  1191					; Exit
  1192
  1193	001352'	402 00 0 00 001356'	.INPNX:	SETZM	.INWD1			; clear initial word
  1194	001353'	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  1195
  1196	001355'	263 17 0 00 000000 		RTN				; return
  1197
  1198					; Special interrupt data
  1199
  1200	001356'	000000	000000		.INWD1:	0				; CSR data
  1201	001357'	000000	000000		.INWD2:	0				; LAR data
  1202
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 30
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0736

  1203						SUBTTL	Channel Handling Routines
  1204
  1205					;#*********************************************************************
  1206					;* Routines To Interface With A Channel
  1207					;
  1208					; There are 4 routines available for interfacing with a data channel.
  1209					;
  1210					; CHINIT - Initialize hardware and software. This routine sets up
  1211					;	   the 3 word data transfer needed by the port  microcode
  1212					;	   when starting up.
  1213					; GETLOG - Snapshot logout data to a buffer area
  1214					; LOGPNT - Print channel logout data
  1215					; CCWPNT - Print the CCW list located in the PCB at location PCB+32.
  1216					;
  1217					; Notes On Initial Control Word Addr:
  1218					;
  1219					; With each controller is an associated channel #. The channel routines
  1220					; default to the following (exec mode) initial control  word  addresses
  1221					; for each of the channels.
  1222					;
  1223					;	TYPE	DEV. CODE	CHAN #		ICW-ADR
  1224					;	----	---------	------		-------
  1225					;	RH20	540		0		000(ICWA0)
  1226					;	RH20	544		1		004(ICWA1)
  1227					;	RH20	550		2		010(ICWA2)
  1228					;	RH20	554		3		014(ICWA3)
  1229					;	RH20	560		4		020(ICWA4)
  1230					;	NIPort	564		5		024(ICWA5)
  1231					;	RH20	570		6		030(ICWA6)
  1232					;	CIPort	574		7		034(ICWA7)
  1233					;#*********************************************************************
  1234
  1235					; Initial control word addr for each channel
  1236
  1237	001360'	000000	000000		ICWA0:	0
  1238	001361'	000000	000004		ICWA1:	4
  1239	001362'	000000	000010		ICWA2:	10
  1240	001363'	000000	000014		ICWA3:	14
  1241	001364'	000000	000020		ICWA4:	20
  1242	001365'	000000	000024		ICWA5:	24
  1243	001366'	000000	000030		ICWA6:	30
  1244	001367'	000000	000034		ICWA7:	34
  1245
  1246					; Miscellaneous channel locations
  1247
  1248	001370'	000000	000000		EPTJMP:	0				; jump word for EPT
  1249	001371'	000000	000000		EPTADR:	0				; address of EPT location
  1250	001372'	000000	000000		CBASE:	0				; a base for computing ICWA in RH20
  1251										;    the 340000 causes paging
  1252	001373'				LOGBUF:	BLOCK	4			; logout area
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 31
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0737

  1253
  1254					;#*********************************************************************
  1255					;* CHINIT - Channel Initialization Routine
  1256					;
  1257					; This routine synchronizes software and hardware channel logic
  1258					; specifically for use by the port.  The CCW list is assumed to
  1259					; be a 1 word list located at PCB+32 always.
  1260					;#************************************************************
  1261
  1262	001377'	261 17 0 00 000000 	CHINIT:	RPUT	(0,1,2,3)		; save AC's
  1263
  1264
  1265					; Initialize port, set up PCB
  1266
  1267	001403'	260 17 0 00 000252'		GO	IPACLR			; clear port
  1268	001404'	260 17 0 00 000000*		GO	TPCB			; set up PCB correctly
  1269	001405'	332 00 0 00 000176*		SKIPE	UDEBUG			; special debug mode?
  1270	001406'	254 00 0 00 001503'		JRST	CHINX			; yes - exit
  1271	001407'	336 00 0 00 030037 		SKIPN	USER			; user mode?
  1272	001410'	254 00 0 00 001470'		JRST	CHIN3			; no - go handle
  1273
  1274					; First build the EPT jump word to point the the CCW in the PCB
  1275
  1276	001411'	135 01 0 00 002631'		LDB	1,[POINT 3,MBCN,9]	; get channel number
  1277	001412'	200 01 0 01 001360'		MOVE	1,ICWA0(1)		; get ICWA for channel
  1278	001413'	7 010 24 0 00 000002 		CONI	PAG,2			; get page number of EPT
  1279	001414'	242 02 0 00 000011 		LSH	2,9			; position correctly
  1280	001415'	621 02 0 00 777777 		TLZ	2,777777		; clear left half
  1281	001416'	270 01 0 00 000002 		ADD	1,2			; add in EPT offset
  1282	001417'	202 01 0 00 001371'		MOVEM	1,EPTADR		; save address of EPT location
  1283	001420'	201 02 0 00 000000#		MOVEI	2,PCB+27		; get buffer address
  1284	001421'	257 02 0 02 000000 		MAP	2,(2)			; map to physical
  1285	001422'	621 02 0 00 777000 		TLZ	2,777000		; get rid of misc bits
  1286	001423'	661 02 0 00 200000 		TLO	2,200000		; make into a jump CCW
  1287	001424'	202 02 0 00 001370'		MOVEM	2,EPTJMP		; save the jump word
  1288
  1289					; Save CRAM locations 0-17
  1290
  1291	001425'	201 02 0 00 001510'		MOVEI	2,CHCRAM		; get address of storage area
  1292	001426'	200 03 0 00 002632'		MOVE	3,[-^D16,,0]		; set up AOBJN word
  1293	001427'	552 03 0 00 000000*	CHIN1:	HRRZM	3,CADDR			; set up CRAM address
  1294	001430'	260 17 0 00 000000*		GO	DRCRAM			; read CRAM location
  1295	001431'	120 00 0 00 000000*		DMOVE	CWORDL			; get location
  1296	001432'	124 00 0 02 000000 		DMOVEM	(2)			; save it
  1297	001433'	271 02 0 00 000002 		ADDI	2,2			; point to next location
  1298	001434'	253 03 0 00 001427'		AOBJN	3,CHIN1			; loop till done
  1299
  1300					; Load special microcode
  1301
  1302	001435'	201 01 0 00 001550'		MOVEI	1,MWEPT			; get microcode address
  1303	001436'	260 17 0 00 000000*		GO	MLOADN			; load the microcode
  1304	001437'	037 00 0 00 002633'		TMSGCD	<? Error loading microcode - continuing ...>
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 32
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0738

  1305
  1306					; Start it up and give the port the special data
  1307
  1308	001440'	400 01 0 00 000000 		SETZ	1,			; get start address
  1309	001441'	260 17 0 00 000021'		GO	LDRAR			; load the register
  1310	001442'	201 01 0 00 000010 		MOVEI	1,MPRUN			; set initial data
  1311	001443'	260 17 0 00 000010'		GO	LDCSR
  1312	001444'	200 01 0 00 001370'		MOVE	1,EPTJMP		; get data
  1313	001445'	260 17 0 00 000157'		GO	.DATAO			; do the first DATAO
  1314	001446'	200 01 0 00 001371'		MOVE	1,EPTADR		; get EPT address
  1315	001447'	661 01 0 00 450000 		TLO	1,450000		; make IOP function word
  1316	001450'	202 01 0 00 003605'		MOVEM	1,EPTIOP#		; save it
  1317	001451'	260 17 0 00 000157'		GO	.DATAO			; do the 2nd DATAO
  1318	001452'	400 01 0 00 000000 		SETZ	1,
  1319	001453'	260 17 0 00 000010'		GO	LDCSR			; stop the port
  1320
  1321					; Restore CRAM locations
  1322
  1323	001454'	261 17 0 00 000000*		PUT	PARFLG			; save parity flag
  1324	001455'	402 00 0 00 001454*		SETZM	PARFLG			; don't calculate parity
  1325	001456'	201 02 0 00 001510'		MOVEI	2,CHCRAM		; get address of storage area
  1326	001457'	200 03 0 00 002632'		MOVE	3,[-^D16,,0]		; set up AOBJN word
  1327	001460'	552 03 0 00 001427*	CHIN2:	HRRZM	3,CADDR			; set up CRAM address
  1328	001461'	120 00 0 02 000000 		DMOVE	(2)			; save it
  1329	001462'	124 00 0 00 001431*		DMOVEM	CWORDL			; get location
  1330	001463'	260 17 0 00 000000*		GO	DWCRAM			; read CRAM location
  1331	001464'	271 02 0 00 000002 		ADDI	2,2			; point to next location
  1332	001465'	253 03 0 00 001460'		AOBJN	3,CHIN2			; loop till done
  1333	001466'	262 17 0 00 001455*		GET	PARFLG			; restore parity flag
  1334	001467'	254 00 0 00 001476'		JRST	CHIN4			; exit
  1335
  1336					; First build the EPT jump word to point the the CCW in the PCB
  1337
  1338	001470'	135 01 0 00 002631'	CHIN3:	LDB	1,[POINT 3,MBCN,9]	; get channel number
  1339	001471'	200 01 0 01 001360'		MOVE	1,ICWA0(1)		; get ICWA for channel
  1340	001472'	270 01 0 00 001372'		ADD	1,CBASE			; no - get paged EPT address
  1341	001473'	202 01 0 00 001371'		MOVEM	1,EPTADR		; save address of EPT location
  1342	001474'	200 02 0 00 002645'		MOVE	2,[200000,,PCB+27]	; get jump CCW
  1343	001475'	202 02 0 01 000000 		MOVEM	2,(1)			; store in EPT location
  1344
  1345					; Set up initial CCW list
  1346
  1347	001476'	201 01 0 00 000000#	CHIN4:	MOVEI	1,PCB+24		; get PCB address
  1348	001477'	257 01 0 01 000000 		MAP	1,(1)			; map to physical
  1349	001500'	621 01 0 00 777000 		TLZ	1,777000		; get rid of misc bits
  1350	001501'	661 01 0 00 600060 		TLO	1,600060		; make into a 3 word transfer
  1351	001502'	202 01 0 00 000000#		MOVEM	1,PCB+27		; save in PCB
  1352
  1353					; Done - exit
  1354
  1355	001503'	262 17 0 00 000003 	CHINX:	RGET	(3,2,1,0)		; restore AC's
  1356
  1357	001507'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 33
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0739

  1358
  1359					; CRAM storage - locations 0-17
  1360
  1361	001510'				CHCRAM:	BLOCK	^D32
  1362
  1363					;	First, read the CCW Jump word into R17
  1364
  1365	001550'	000000	010000		MWEPT:	MWORD	<ADDR=0,JMAP,J=1>			; 0
  1366	001551'	000000	000040
  1367	001552'	000100	030000			MWORD	<CJP,J=3,CENA,CCER>			; 1
  1368	001553'	000400	100060
  1369	001554'	000200	010000			MWORD	<JMAP,J=1>				; 2
  1370	001555'	000000	000040
  1371	001556'	000300	000010			MWORD	<CONT,SD0,B=17,OR,D=2,SELE,MGC=10>	; 3
  1372	001557'	732007	405340
  1373	001560'	000400	040000			MWORD	<CJP,J=4,CENA,CCER>			; 4
  1374	001561'	000400	100060
  1375
  1376					;	Then, read the IOP Function word into R16
  1377
  1378	001562'	000500	070000			MWORD	<CJP,J=7,CENA,CCER>			; 5
  1379	001563'	000400	100060
  1380	001564'	000600	050000			MWORD	<JMAP,J=5>				; 6
  1381	001565'	000000	000040
  1382	001566'	000700	000010			MWORD	<CONT,SD0,B=16,OR,D=2,SELE,MGC=10>	; 7
  1383	001567'	732007	005340
  1384	001570'	001000	100000			MWORD	<CJP,J=10,CENA,CCER>			; 10
  1385	001571'	000400	100060
  1386
  1387					;	Done getting the data words - now write the CCW
  1388					;	jump word into EPT location 34
  1389
  1390	001572'	001100	002004			MWORD	<CONT,S0A,A=16,OR,D=1,OENA,SELE,MGC=4> 	; 11
  1391	001573'	431160	005340
  1392	001574'	001200	000001			MWORD	<CONT,SELE,MGC=1> 			; 12 (Ex/Dep int)
  1393	001575'	000000	005340
  1394	001576'	001300	150000			MWORD	<CJP,J=15,D=1,CENA,CCER>		; 13
  1395	001577'	001400	100060
  1396	001600'	001400	130000			MWORD	<JMAP,J=13,D=1>				; 14
  1397	001601'	001000	000040
  1398	001602'	001500	002004			MWORD	<CONT,S0A,A=17,OR,D=1,OENA,SELE,MGC=4>	; 15
  1399	001603'	431170	005340
  1400	001604'	001600	000020			MWORD	<CONT,D=1,SELE,MGC=20>			; 16
  1401	001605'	001000	005340
  1402	001606'	001700	170000			MWORD	<JMAP,J=17>				; 17
  1403	001607'	000000	000040
  1404	001610'	777777	777777			-1
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 34
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0740

  1405
  1406					;#*********************************************************************
  1407					;* GETLOG - Snapshot The Channel Logout Area
  1408					;
  1409					; This routine takes data from the channel logout area and places it in
  1410					; LOGBUF for LOGPNT to print it out.   It zeros the logout area  as  it
  1411					; transfers also.  This routine must be called before calling LOGPNT.
  1412					;#********************************************************************
  1413
  1414	001611'	332 00 0 00 001405*	GETLOG:	SKIPE	UDEBUG			; debug mode?
  1415	001612'	263 17 0 00 000000 		RTN				; yes - exit
  1416	001613'	261 17 0 00 000000 		RPUT	(0,1,2)			; save AC's
  1417
  1418	001616'	135 01 0 00 002631'		LDB	1,[POINT 3,MBCN,9]	; get channel number
  1419	001617'	200 01 0 01 001360'		MOVE	1,ICWA0(1)		; get ICWA
  1420	001620'	270 01 0 00 001372'		ADD	1,CBASE			; get EPT address
  1421	001621'	332 00 0 00 030037 		SKIPE	USER			; user mode?
  1422						GO	[MOVE	DEVADR		; yes - get device address word
  1423							 MOVEM	LOGARG+1	;   and put in argument list
  1424							 MOVE	1,[-^D15,,LOGARG]
  1425							 XCT	.DIAG		; get logout data
  1426							 GO	DIAGER		; error
  1427							 MOVEI	1,LOGARG+2	; set up address of logout data
  1428	001622'	260 17 0 00 002647'			 RTN]
  1429	001623'	201 02 0 00 001373'		MOVEI	2,LOGBUF		; get address to save logout data
  1430	001624'	504 02 0 00 000001 		HRL	2,1			; build BLT word
  1431	001625'	251 02 0 00 001376'		BLT	2,LOGBUF+3		; move the data
  1432	001626'	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  1433
  1434	001631'	263 17 0 00 000000 		RTN				; return
  1435
  1436					; Argument list for channel status snapshot routine
  1437
  1438	001632'	000000	000006		LOGARG:	6				; function
  1439	001633'	000 00 0 00 000000 		Z				; reserved for device addr word
  1440	001634'					BLOCK	4			; reserved for logout data
  1441	001640'					BLOCK	^D10			; room for physical I/O list
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 35
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0741

  1442
  1443					;#*********************************************************************
  1444					;* CCWPNT - Prints CCW word currently in PCB+32.
  1445					;#********************************************************************	
  1446
  1447	001652'	261 17 0 00 000000 	CCWPNT:	RPUT	(0,1)			; save AC's
  1448
  1449	001654'	037 00 0 00 002656'		TMSGC	<CCW (PCB+27):  >
  1450	001655'	200 00 0 00 000000#		MOVE	PCB+27			; get CCW
  1451	001656'	037 13 0 00 000000 		PNTHW				; print it
  1452	001657'	037 00 0 00 002662'		TMSG	<  OP=>
  1453	001660'	135 01 0 00 002664'		LDB	1,[POINT 3,PCB+27,2] 	; get op code
  1454						XCT	[TMSG	<Halt>		; print it
  1455							 TMSG	<?1?>
  1456							 TMSG	<Jump>
  1457							 TMSG	<?3?>
  1458							 TMSG	<Dt-fwd>
  1459							 TMSG	<Dt-rev>
  1460							 TMSG	<Dt-fwd-hlt>
  1461	001661'	256 00 0 01 002703'			 TMSG	<Dt-rev-hlt>](1)
  1462	001662'	037 00 0 00 002713'		TMSG	< WC=>
  1463	001663'	135 00 0 00 002714'		LDB	[POINT 11,PCB+27,13]	; get word count
  1464	001664'	037 15 0 00 000000 		PNTDEC				; print it
  1465	001665'	037 00 0 00 002715'		TMSG	<. Adr=>
  1466	001666'	135 00 0 00 002717'		LDB	[POINT 22,PCB+27,35]	; get address
  1467	001667'	037 10 0 00 000000 		PNTADR				; print it
  1468	001670'	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  1469
  1470	001672'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 36
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0742

  1471
  1472					;#*********************************************************************
  1473					;* LOGPNT - Channel Logout Printer
  1474					;
  1475					; Routine prints the status of the channel at logout time.  Logout data
  1476					; is printed from a buffered area, therefore, GETLOG should be executed
  1477					; first.
  1478					;#********************************************************************	
  1479
  1480	001673'	261 17 0 00 000000 	LOGPNT:	RPUT	(0,1,2,3)		; save AC's
  1481
  1482	001677'	037 00 0 00 002720'		TMSGC	<Channel->
  1483	001700'	135 01 0 00 002631'		LDB	1,[POINT 3,MBCN,9]	; get channel number
  1484	001701'	200 03 0 00 000001 		MOVE	3,1			; now to AC3
  1485	001702'	200 00 0 00 000003 		MOVE	3			; ready to print
  1486	001703'	037 01 0 00 000000 		PNT1				; print it
  1487						TMSG	<Logout Data
  1488	001704'	037 00 0 00 002723'	Loc   Contents>
  1489	001705'	260 17 0 00 001716'		GO	ICWPT			; print initial cw data
  1490	001706'	260 17 0 00 001722'		GO	LOSPT			; print SW1 data if an RH20
  1491	001707'	260 17 0 00 001737'		GO 	TCWPT			; prints TERM CW status
  1492	001710'	037 00 0 00 030242 		PCRL
  1493	001711'	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore the AC's
  1494
  1495	001715'	263 17 0 00 000000 		RTN				; and exit
  1496
  1497					; Printer for initial control word & pointer setup routine
  1498
  1499	001716'	037 00 0 00 002731'	ICWPT:	TMSGC	< 1    ICW: >
  1500	001717'	200 00 0 00 001373'		MOVE	LOGBUF			; fetch the initial CW
  1501	001720'	037 13 0 00 000000 		PNTHW				; and print it
  1502	001721'	263 17 0 00 000000 		RTN				; and exit
  1503
  1504					; RH20 status word-1 printer
  1505
  1506	001722'	037 00 0 00 002734'	LOSPT:	TMSGC	< 2    SW1: >
  1507	001723'	200 01 0 00 001374'		MOVE	1,LOGBUF+1		; get SW1 word
  1508	001724'	404 01 0 00 002632'		AND	1,[777760,,0]		; mask off unwanted bits
  1509	001725'	400 02 0 00 000000 		SETZ	2,			; initialize text pointer
  1510	001726'	603 01 0 00 400000 	LOSPT1:	TLNE	1,400000		; bit set?
  1511						XCT	[TMSG	< LOGOUT>	; yes - print text
  1512							 TMSG	< M-PAR>
  1513							 TMSG	< -ADRPE>
  1514							 TMSG	< -WCZRO>
  1515							 TMSG	< NXM>
  1516							 JFCL
  1517							 JFCL
  1518							 JFCL
  1519							 JFCL
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 37
DFNIAI	MAC	 1-Nov-83 18:03		Channel Handling Routines                                                          SEQ 0743

  1520  1521							 TMSG	< LSTXER>
  1522							 TMSG	< RH-ERR>
  1523							 TMSG	< LNG-WC>
  1524							 TMSG	< SHT-WC>
  1525	001727'	256 00 0 02 002762'			 TMSG	< OVRRUN>](2)
  1526	001730'	242 01 0 00 000001 		LSH	1,1			; shift in next bit
  1527	001731'	350 00 0 00 000002 		AOS	2			; point the next text
  1528	001732'	326 01 0 00 001726'		JUMPN	1,LOSPT1		; loop till done
  1529	001733'	037 00 0 00 003000'		TMSG	<  CLP points to: >
  1530	001734'	135 00 0 00 003004'		LDB	[POINT 22,LOGBUF+1,35]	; fetch the actual CLP address
  1531	001735'	037 16 0 00 000003 		PNTOCS				; print in octal
  1532	001736'	263 17 0 00 000000 		RTN				; and exit
  1533
  1534					; Print termination word from the logout area
  1535
  1536	001737'	037 00 0 00 003005'	TCWPT:	TMSGC	< 3    Last Updated CCW: >
  1537	001740'	200 00 0 00 001375'		MOVE	LOGBUF+2		; fetch last CCW
  1538	001741'	037 13 0 00 000000 		PNTHW				; print it
  1539	001742'	037 00 0 00 003013'		TMSG	<   WC=>
  1540	001743'	135 00 0 00 003015'		LDB	[POINT	11,LOGBUF+2,13]	; gets word count
  1541	001744'	037 15 0 00 000000 		PNTDEC				; print it
  1542	001745'	037 00 0 00 003016'		TMSG	<.  ADR=>
  1543	001746'	135 00 0 00 003020'		LDB	[POINT	22,LOGBUF+2,35]	; gets address
  1544	001747'	037 16 0 00 000003 		PNTOCS				; print it in octal
  1545	001750'	263 17 0 00 000000 		RTN
  1546
  1547
  1548					;#*********************************************************************
  1549					;* DIAGER - Report Monitor Call Error In User Mode
  1550					;
  1551					; This routine prints an error message stating where and why a
  1552					; diagnostic monitor call has failed.
  1553					;#*********************************************************************
  1554
  1555	001751'	261 17 0 00 000000 	DIAGER:	RPUT	(0,1)			; save AC's
  1556
  1557	001753'	202 01 0 00 003611'		MOVEM	1,SAC1#			; save the error number
  1558	001754'	037 01 0 00 030242 		PCRLF
  1559	001755'	037 01 0 00 003021'		FMSGC	<? Error return from diagnostic monitor call at PC->
  1560	001756'	540 00 0 17 000000 		HRR	(P)			; get pc
  1561	001757'	037 17 0 00 000003 		PNTOCF				; print it
  1562	001760'	037 01 0 00 003034'		FMSGC	<? Error code=>
  1563	001761'	200 00 0 00 003611'		MOVE	SAC1			; get error code
  1564	001762'	037 17 0 00 000003 		PNTOCF				; print it
  1565	001763'	037 01 0 00 003040'		FMSG	< - >
  1566	001764'	260 17 0 00 002235'		GO	DGEPNT			; print DIAG error message
  1567	001765'	037 01 0 00 030242 		PCRLF
  1568	001766'	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  1569
  1570	001770'	263 17 0 00 000000 		RTN				; return
  1571
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 38
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0744

  1572						SUBTTL	User Mode Support Routines
  1573
  1574					;#************************************************************
  1575					;* DSETUP - Setup Routine For Diagnostic Function
  1576					;
  1577					;   This routine sets up a location called ".DIAG" with the appropriate
  1578					; JSYS or UUO for a diagnostic monitor  call.  Two  monitor  types  are
  1579					; presently known 1=TOPS, 4=SNARK.  The  monitor  type is found in bits
  1580					; 21-23 of Monitor Table-11, Entry-112.  This information  is retrieved
  1581					; by  executing  a  GETTAB UUO which never fails.  ".DIAG" is set up so
  1582					; that the AC field is 1 (means AC1 is used for argument pointer).
  1583					;
  1584					; Calling sequence:
  1585					;	GO DSETUP			; call the routine
  1586					;	RETURN				; returns + 1 always>
  1587					;#************************************************************
  1588
  1589	001771'	047000	000163		.UUO:	047000,,163			; CALLI AC,163 for TOPS
  1590	001772'	104000	000530		.JSYS:	104000,,530			; JSYS AC,530 for SNARK
  1591	001773'	260 17 0 00 002054'	.DIAG:	GO	NOSET			; a default error reporter
  1592
  1593	001774'	336 00 0 00 001611*	DSETUP:	SKIPN	UDEBUG			; special debug mode?
  1594	001775'	336 00 0 00 030037 		SKIPN	USER			; exec mode?
  1595	001776'	263 17 0 00 000000 		RTN				; yes - then exit
  1596	001777'	402 00 0 00 003606'		SETZM	INDIAG#			; a flag used during request
  1597	002000'	261 17 0 00 000000 		PUT	0			; save AC0
  1598	002001'	200 00 0 00 003041'		MOVE	[112,,11]		; entry-112,,table-11
  1599	002002'	047 00 0 00 000041 		GETTAB				; a GETTAB UUO
  1600	002003'	260 17 0 00 002432'		GO	FFF			; GETTABs can't fail
  1601	002004'	135 00 0 00 003042'		LDB	[POINT 3,0,23]		; get monitor type field
  1602	002005'	402 00 0 00 003613'		SETZM	SNARKF#			; init SNARK flag to 1
  1603	002006'	350 00 0 00 003613'		AOS	SNARKF
  1604	002007'	306 00 0 00 000001 		CAIN	1			; type = 1
  1605	002010'	254 00 0 00 002023'		JRST	TPSMON			; yes - TOPS monitor
  1606	002011'	306 00 0 00 000004 		CAIN	4			; type = 4
  1607	002012'	254 00 0 00 002017'		JRST	SNKMON			; yes - SNARK monitor
  1608
  1609					; Unrecognized monitor type
  1610
  1611	002013'	037 01 0 00 003043'		FMSGC	<Can't run under this monitor.  Type = >
  1612	002014'	037 01 0 00 000001 		PNT1F
  1613	002015'	037 01 0 00 003054'		FMSGCD	<Type comes from bits 21-23 of Table-11, Entry-112. (1&4) are allowed.>
  1614	002016'	260 17 0 00 002432'		GO	FFF			; fatal out
  1615
  1616					; SNARK monitor found
  1617
  1618	002017'	201 00 0 00 000002 	SNKMON:	MOVEI	2			; request function for TOPS20
  1619	002020'	202 00 0 00 002320'		MOVEM	REQARG			; save it in argument block
  1620	002021'	200 00 0 00 001772'		MOVE	.JSYS			; get appropriate JSYS
  1621	002022'	254 00 0 00 002030'		JRST	TPSM2			; to common code
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 39
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0745

  1622
  1623					; TOPS monitor found
  1624
  1625	002023'	260 17 0 00 002060'	TPSMON:	GO	CPUTST			; test for dual CPU
  1626	002024'	201 00 0 00 000001 		MOVEI	1			; request function 1 for TOPS10
  1627	002025'	202 00 0 00 002320'		MOVEM	REQARG			; save it in argument block
  1628	002026'	402 00 0 00 003613'		SETZM	SNARKF			; clear SNARK flag
  1629	002027'	200 00 0 00 001771'		MOVE	.UUO			; get appropriate UUO
  1630	002030'	661 00 0 00 000040 	TPSM2:	TLO	(1B12)			; 1 into AC field
  1631	002031'	202 00 0 00 001773'		MOVEM	.DIAG			; move into execute location
  1632	002032'	336 00 0 00 003613'		SKIPN	SNARKF			; TOPS-20 monitor?
  1633	002033'	254 00 0 00 002041'		JRST	SMX			; no
  1634	002034'	260 17 0 00 002412'		GO	ENABLE			; enable avail privileges
  1635	002035'	104 00 0 00 000310 		USRIO				; set USRIO bit to check privileges
  1636	002036'	254 00 0 00 002043'		JRST	NOPRIV			; user has no privileges for diagnostic
  1637	002037'	254 02 1 00 002040'		JRSTF	@.+1			; now turn the IOT priv off
  1638	002040'	010000	002041'			010000,,.+1			; modifies the PC word
  1639	002041'	262 17 0 00 000000 	SMX:	GET	0			; restore the AC
  1640	002042'	263 17 0 00 000000 		RTN				; exit
  1641
  1642	002043'	037 01 0 00 003073'	NOPRIV:	FMSGCD	<User does not have proper priviledges to run diagnostic!!>
  1643	002044'	260 17 0 00 002432'		GO	FFF
  1644	002045'	201 01 0 00 000101 		MOVEI	1,101			; specify terminal as destination
  1645	002046'	200 02 0 00 003110'		MOVE	2,[400000,,-1]		; specify the handle
  1646	002047'	402 00 0 00 000003 		SETZM	3			; must be cleared
  1647	002050'	104 00 0 00 000011 		ERSTR				; does an ERSTR JSYS
  1648	002051'	260 17 0 00 002432'		GO	FFF			; error rtn - HALTF
  1649	002052'	260 17 0 00 002432'		GO	FFF			; other error rtn - HALTF
  1650	002053'	260 17 0 00 002432'		GO	FFF			; then back to the monitor
  1651
  1652					; Default error reporter if we try to execute a DIAG function with
  1653					; setting up.
  1654
  1655	002054'	332 00 0 00 001774*	NOSET:	SKIPE	UDEBUG			; debug mode?
  1656						JRST	[AOS	(P)		; yes - return
  1657	002055'	254 00 0 00 003111'			 RTN]
  1658	002056'	037 01 0 00 003113'		FMSGCD	<Diagnostic attempted a DIAG before initialization>
  1659	002057'	260 17 0 00 002432'		GO	FFF
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 40
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0746

  1660
  1661					;#************************************************************
  1662					;* CPUTST - Determine Which Of 2 CPU's To Run On
  1663					;
  1664					;    Here if TOPS10 only.  First  find out if we have a dual CPU system.
  1665					; If so, ask user to select the proper one. You must test RH's only that
  1666					; are on the same CPU. This code also sets up to run on the correct one.
  1667					;
  1668					;    Calling sequence:
  1669					;	GO	CPUTST			; call the routine
  1670					;	RTN				; RTN+1 always
  1671					;#********************************************************************
  1672
  1673	002060'	336 00 0 00 030037 	CPUTST:	SKIPN	USER			; user mode?
  1674	002061'	263 17 0 00 000000 		RTN				; no - exit
  1675	002062'	261 17 0 00 000000 		RPUT	(0,1,2)			; yes - save AC's
  1676
  1677	002065'	200 00 0 00 003126'		MOVE	[17,,11]		; TABLE=11  ENTRY=17
  1678	002066'	047 00 0 00 000041 		GETTAB	0,			; table lookup
  1679	002067'	260 17 0 00 002432'		GO	FFF			; fatal out
  1680	002070'	607 00 0 00 000040 		TLNN	40			; dual CPU system?
  1681	002071'	254 00 0 00 002111'		JRST	DPRCX			; no - then we can exit
  1682	002072'	336 00 0 00 003607'		SKIPN	MCPUS#			; msg flag printed flag set?
  1683						FMSGC <This is a multi-CPU system.  You must choose only 1 to run in.
  1684	002073'	037 01 0 00 003127'	Furthermore, all the RH's you select "must" be on that CPU.>
  1685	002074'	476 00 0 00 003607'		SETOM	MCPUS			; clear the flag
  1686	002075'	037 01 0 00 003161'		FMSGC	<Select CPU 0 thru 5 <CR> - >
  1687	002076'	037 04 0 00 000003 		TTIDEC
  1688	002077'	254 00 0 00 002076'		JRST	.-1			; timeout
  1689	002100'	331 00 0 00 000000 		SKIPL				; less than 0?
  1690	002101'	303 00 0 00 000005 		CAILE	5			; less than or equal 5?
  1691	002102'	254 00 0 00 002075'		JRST	.-5			; invalid - reask
  1692	002103'	200 02 0 00 000000 		MOVE	2,0			; get # to AC for indexing later
  1693	002104'	201 01 0 00 000001 		MOVEI	1,1			; set bit mask to assume CPU0
  1694	002105'	242 01 0 02 000000 		LSH	1,(2)			; shift into position for selected CPU
  1695	002106'	505 01 0 00 000014 		HRLI	1,14			; set CPU is Function-14
  1696	002107'	047 01 0 00 000075 		SETUUO	1,			; set to proper CPU
  1697						JRST	[FMSGC	<SETCPU UUO failed.  Either wrong CPU selection or>
  1698							 FMSGCD	<must have wheel privileges.>
  1699	002110'	254 00 0 00 003211'			 GO	FFF]		; fatal out
  1700	002111'	262 17 0 00 000002 	DPRCX:	RGET	(2,1,0)			; restore AC's
  1701
  1702	002114'	263 17 0 00 000000 		RTN				; and exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 41
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0747

  1703
  1704					;#************************************************************
  1705					;* DEVREL - User Mode Release Routine
  1706					;
  1707					; In user mode this routine issues a DIAG monitor call, Function-3,
  1708					; to return device to monitor resources.  This routine is different
  1709					; in use from RH20 disk and tape uses in that the device (the port)
  1710					; is released only upon exiting the diagnostic.
  1711					;
  1712					; Calling sequence:	GO   DEVREL
  1713					;			RETURN			; returns +1 always
  1714					;#************************************************************
  1715
  1716	002115'	336 00 0 00 002054*	DEVREL:	SKIPN	UDEBUG			; special debug mode?
  1717	002116'	336 00 0 00 030037 		SKIPN	USER			; or exec mode?
  1718	002117'	263 17 0 00 000000 		RTN				; yes - return
  1719	002120'	336 00 0 00 002317'		SKIPN	HAVIPA			; have the port?
  1720	002121'	263 17 0 00 000000 		RTN				; no - exit
  1721	002122'	261 17 0 00 000001 		RPUT	(1,2)			; save AC's
  1722
  1723	002124'	260 17 0 00 002364'		GO	USRION			; ensure user IOT bit is set
  1724	002125'	260 17 0 00 000252'		GO	IPACLR			; do a 'port clear'
  1725
  1726					; Get device address
  1727
  1728	002126'	200 00 0 00 000016 		MOVE	MBCN			; get device code
  1729	002127'	336 00 0 00 003613'		SKIPN	SNARKF			; TOPS-20 monitor?
  1730	002130'	242 00 0 00 000003 		LSH	3			; no - position all the way left
  1731	002131'	135 01 0 00 002631'		LDB	1,[POINT 3,MBCN,9]	; get channel number
  1732	002132'	137 01 0 00 003042'		DPB	1,[POINT 3,0,23]	; put into device address
  1733	002133'	202 00 0 00 003604'		MOVEM	DEVADR#			; save it
  1734	002134'	202 00 0 00 002316'		MOVEM	RELARG+1		; place in argument list
  1735	002135'	200 01 0 00 003214'		MOVE	1,[-2,,RELARG]		; pointer used
  1736	002136'	476 00 0 00 003606'		SETOM	INDIAG#			; useful for debugging crashes
  1737	002137'	256 00 0 00 001773'	REL:	XCT	.DIAG			; execute DIAG function
  1738						GO	[MOVEM	1,SAC1		; error
  1739							 FMSGC	<? Release of CI port failed - >
  1740							 GO	DGEPNT		; print error message
  1741							 PCRLF			; final CRLF
  1742	002140'	260 17 0 00 003224'			 RTN]			; exit
  1743	002141'	402 00 0 00 002317'		SETZM	HAVIPA			; no longer have the device
  1744	002142'	402 00 0 00 003606'		SETZM	INDIAG			; no longer in DIAG JSYS
  1745
  1746					; Clean up and exit
  1747
  1748	002143'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  1749
  1750	002145'	336 00 0 00 003613'		SKIPN	SNARKF			; TOPS-20
  1751	002146'	254 00 0 00 002151'		JRST	.+3			; don't play with USRIOT bit
  1752	002147'	254 02 1 00 002150'		JRSTF	@.+1			; yes - turn off USER IOT
  1753	002150'	010000	002151'			010000,,.+1			; sets flags
  1754	002151'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 42
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0748

  1755
  1756					;#************************************************************
  1757					;* DEVREQ - User Mode Request Routine
  1758					;
  1759					; Does nothing in exec mode.  In user mode,  this  routine  executes
  1760					; a  diagnostic monitor call  of Function 2 to request the port from
  1761					; from the monitor.  This routine is different in use from RH20 disk
  1762					; and tape uses in that the device (the port) is requested only when
  1763					; the diagnostic starts up.
  1764					;#************************************************************
  1765
  1766	002152'	350 00 0 17 000000 	DEVREQ:	AOS	(P)			; set up proper return
  1767	002153'	336 00 0 00 002115*		SKIPN	UDEBUG			; special debug mode?
  1768	002154'	336 00 0 00 030037 		SKIPN	USER			; or exec mode?
  1769	002155'	263 17 0 00 000000 		RTN				; yes - return
  1770	002156'	260 17 0 00 002364'		GO	USRION			; set USRIOT bit
  1771	002157'	332 00 0 00 002317'		SKIPE	HAVIPA			; do we have the port?
  1772	002160'	260 17 0 00 002115'		GO	DEVREL			; yes - release it first
  1773	002161'	261 17 0 00 000001 		RPUT	(1,0)			; save AC's
  1774
  1775	002163'	201 00 0 00 000002 		MOVEI	2			; set up function 2 (request
  1776	002164'	202 00 0 00 002320'		MOVEM	REQARG			;   channel and all devices)
  1777
  1778					; Get device address
  1779
  1780	002165'	200 00 0 00 000016 		MOVE	MBCN			; get device code
  1781	002166'	336 00 0 00 003613'		SKIPN	SNARKF			; TOPS-20 monitor?
  1782	002167'	242 00 0 00 000003 		LSH	3			; position all the way left
  1783	002170'	135 01 0 00 002631'		LDB	1,[POINT 3,MBCN,9]	; get channel number
  1784	002171'	137 01 0 00 003042'		DPB	1,[POINT 3,0,23]	; put into device address
  1785	002172'	202 00 0 00 003604'		MOVEM	DEVADR#			; save it
  1786	002173'	202 00 0 00 002321'		MOVEM	REQARG+1		; place in argument list
  1787
  1788					; Do the request
  1789
  1790	002174'	200 01 0 00 003231'		MOVE	1,[-3,,REQARG]		; pointer word
  1791	002175'	476 00 0 00 003606'		SETOM	INDIAG			; entering DIAG JSYS
  1792	002176'	256 00 0 00 001773'	REQ1:	XCT	.DIAG			; a diagnostic call
  1793	002177'	334 00 0 00 000000 		SKIPA				; error
  1794	002200'	254 00 0 00 002210'		JRST	REQOK			; continue
  1795	002201'	550 01 0 00 000001 		HRRZ	1,1			; clear left half
  1796	002202'	302 01 0 00 602712 		CAIE	1,602712		; port not enabled?
  1797	002203'	254 00 0 00 002207'		JRST	.+4			; no - another error - go handle
  1798	002204'	260 17 0 00 002216'		GO	ENDIAG			; yes - go enable the port
  1799	002205'	200 01 0 00 003231'		MOVE	1,[-3,,REQARG]		; pointer word
  1800	002206'	256 00 0 00 001773'	REQ2:	XCT	.DIAG			; a diagnostic call
  1801						JRST	[MOVEM	1,SAC1		; error
  1802							 FMSGC	<? NI port not available - >
  1803							 GO	DGEPNT		; print error message
  1804							 PCRLF			; final CRLF
  1805							 SOS	-2(P)		; set up failed return
  1806	002207'	254 00 0 00 003240'			 JRST	DEVRQX]		; exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 43
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0749

  1807
  1808	002210'	260 17 0 00 000252'	REQOK:	GO	IPACLR			; do a 'port clear'
  1809	002211'	476 00 0 00 002317'		SETOM	HAVIPA			; indicate we have the port
  1810	002212'	402 00 0 00 003606'	DEVRQX:	SETZM	INDIAG			; no longer in DIAG JSYS
  1811	002213'	262 17 0 00 000000 		RGET	(0,1)			; restore AC's
  1812
  1813	002215'	263 17 0 00 000000 		RTN				; exit
  1814
  1815
  1816					;#********************************************************************
  1817					;* ENDIAG - Enable the NI/CI port
  1818					;#********************************************************************
  1819
  1820	002216'	261 17 0 00 000000 	ENDIAG:	RPUT	(0,1,2)			; save AC's
  1821
  1822	002221'	200 00 0 00 000016 		MOVE	MBCN			; get device code
  1823	002222'	336 00 0 00 003613'		SKIPN	SNARKF			; TOPS-20 monitor?
  1824	002223'	242 00 0 00 000003 		LSH	3			; no - position all the way left
  1825	002224'	135 00 0 00 002631'		LDB	[POINT 3,MBCN,9]	; get channel number
  1826	002225'	202 00 0 00 002324'		MOVEM	ENARG+1			; place in argument list
  1827	002226'	200 01 0 00 003246'		MOVE	1,[-3,,ENARG]		; pointer word
  1828	002227'	256 00 0 00 001773'		XCT	.DIAG			; do the DIAG
  1829	002230'	255 00 0 00 000000 		JFCL				; error return
  1830	002231'	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  1831
  1832	002234'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 44
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0750

  1833
  1834					;#********************************************************************
  1835					;* DGEPNT - Decode and print DIAG error
  1836					;#********************************************************************
  1837
  1838	002235'	261 17 0 00 000000 	DGEPNT:	RPUT	(0,1,2)			; save AC's
  1839
  1840	002240'	201 02 0 00 002257'		MOVEI	2,T10TAB-1		; get address of TOPS-10 table
  1841	002241'	332 00 0 00 003613'		SKIPE	SNARKF			; TOPS-20 monitor?
  1842	002242'	201 02 0 00 002271'		MOVEI	2,T20TAB-1		; yes - get address of TOPS-20 table
  1843	002243'	550 01 0 00 003611'		HRRZ	1,SAC1			; get error code
  1844
  1845	002244'	350 00 0 00 000002 	DGEPN0:	AOS	2			; point to next entry
  1846	002245'	554 00 0 02 000000 		HLRZ	(2)			; get entry
  1847	002246'	316 00 0 00 003247'		CAMN	[777777]		; end of list?
  1848						JRST	[FMSG	<Unrecognized error code - >
  1849							 MOVE	SAC1
  1850							 PNTHW
  1851	002247'	254 00 0 00 003256'			 JRST	DGEPNX]
  1852	002250'	312 00 0 00 000001 		CAME	1			; match?
  1853	002251'	254 00 0 00 002244'		JRST	DGEPN0			; no - keep looping
  1854	002252'	550 00 0 02 000000 		HRRZ	(2)
  1855	002253'	256 00 1 00 000000 		XCT	@0
  1856
  1857	002254'	262 17 0 00 000002 	DGEPNX:	RGET	(2,1,0)			; restore AC's
  1858
  1859	002257'	263 17 0 00 000000 		RTN				; return
  1860
  1861					; TOPS-10 Error Messages
  1862
  1863	002260'	601174	003272'		T10TAB:	601174,,[FMSG	<Argument count field is non negative>]
  1864	002261'	601175	003302'			601175,,[FMSG	<Device assigned to another job>]
  1865	002262'	601176	003311'			601176,,[FMSG	<Argument count is to small>]
  1866	002263'	601177	003321'			601177,,[FMSG	<Illegal MBC device code selected>]
  1867	002264'	601200	003331'		 	601200,,[FMSG	<Device not mounted in maint mode>]
  1868	002265'	601201	003334'			601201,,[FMSG	<Bad CCW>]
  1869	002266'	601202	003347'			601202,,[FMSG	<CCW indicates that xfer will cross page boundary>]
  1870	002267'	601203	003354'			601203,,[FMSG	<No such channel>]
  1871	002270'	601204	003360'			601204,,[FMSG	<No such drive>]
  1872	002271'	777777	777777			-1
  1873
  1874					; TOPS-20 Error Messages
  1875
  1876	002272'	601174	003365'		T20TAB:	601174,,[FMSG	<Invalid function>]
  1877	002273'	601175	003373'			601175,,[FMSG	<Device is not assigned>]
  1878	002274'	601176	003401'			601176,,[FMSG	<Argument block too small>]
  1879	002275'	601177	003406'			601177,,[FMSG	<Invalid device type>]
  1880	002276'	601200	003421'		 	601200,,[FMSG	<WHEEL, OPERATOR, or MAINT capability required>]
  1881	002277'	601201	003430'			601201,,[FMSG	<Invalid channel command list>]
  1882	002300'	601202	003441'			601202,,[FMSG	<Illegal to do I/O across page boundary>]
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 45
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0751

  1883	002301'	601203	003445'			601203,,[FMSG	<No such device>]
  1884	002302'	601204	003452'			601204,,[FMSG	<Unit does not exist>]
  1885	002303'	601205	003460'			601205,,[FMSG	<Subunit does not exist>]
  1886	002304'	602406	003465'			602406,,[FMSG	<Unit already online>]
  1887	002305'	602407	003472'			602407,,[FMSG	<Unit not online>]
  1888	002306'	602614	003501'			602614,,[FMSG	<Datagram buffer not available>]
  1889	002307'	602705	003513'			602705,,[FMSG	<Port does not exist or is not a NI/CI port>]
  1890	002310'	602706	003522'			602706,,[FMSG	<CI counters not available>]
  1891	002311'	602707	003532'			602707,,[FMSG	<Fork doesn't own NI/CI Counters>]
  1892	002312'	602712	003541'			602712,,[FMSG	<NI/CI channel is not enabled>]
  1893	002313'	602713	003550'			602713,,[FMSG	<Diagnostic owns the channel>]
  1894	002314'	777777	777777			-1
  1895
  1896					; Argument list for release command
  1897
  1898	002315'	000000	000003		RELARG:	3				; function
  1899	002316'	000 00 0 00 000000 		Z				; reserved for device adr word
  1900
  1901	002317'	000000	000000		HAVIPA:	0				; 'have port' flag
  1902
  1903					; Argument list for request command
  1904
  1905	002320'	000 00 0 00 000000 	REQARG:	Z				; function
  1906	002321'	000 00 0 00 000000 		Z				; reserved for device address
  1907	002322'	001623	416000			^D1000*^D60*^D4000		; 4000 minutes (in milleseconds)
  1908
  1909					; Argument list for enable command
  1910
  1911	002323'	000000	000111		ENARG:	111				; function
  1912	002324'	000 00 0 00 000000 		Z				; reserved for device address
  1913	002325'	777777	777777			-1
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 46
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0752

  1914
  1915					;#********************************************************************
  1916					;* LOCPHY - Lock part of the diagnostic
  1917					;#********************************************************************
  1918
  1919	002326'	336 00 0 00 002153*	LOCPHY:	SKIPN	UDEBUG			; special debug mode?
  1920	002327'	336 00 0 00 030037 		SKIPN	USER			; or exec mode?
  1921	002330'	263 17 0 00 000000 		RTN				; yes - return
  1922	002331'	332 00 0 00 002363'		SKIPE	LOCDON			; already done?
  1923	002332'	263 17 0 00 000000 		RTN				; yes - return
  1924	002333'	261 17 0 00 000000 		RPUT	(0,1,2,3)		; save AC's
  1925
  1926	002337'	255 00 0 00 000000 		JFCL
  1927	002340'	201 05 0 00 000000#		MOVEI	5,PCB-3000		; set up initial address
  1928	002341'	201 06 0 00 000010 		MOVEI	6,8			; number of times to do this
  1929	002342'	271 05 0 00 003000 	LOCP1:	ADDI	5,3000			; point to next address
  1930	002343'	400 01 0 00 000000 		SETZ	1,
  1931	002344'	200 02 0 00 000005 		MOVE	2,5			; get address
  1932	002345'	242 02 0 00 777767 		LSH	2,-9			; obtain page number
  1933	002346'	505 02 0 00 400000 		HRLI	2,.FHSLF		; insert process handle
  1934	002347'	200 03 0 00 003551'		MOVE	3,[500000,,3]		; not cache,,page count
  1935	002350'	104 00 0 00 000561 		JSYS	561			; PLOCK JSYS
  1936	002351'	255 00 0 00 000000 		JFCL
  1937	002352'	005 00 0 00 000144 		DELAY	^D100			; wait a bit
  1938	002353'	367 06 0 00 002342'		SOJG	6,LOCP1			; loop till done
  1939	002354'	476 00 0 00 002363'	LOCP3:	SETOM	LOCDON			; set already done flag
  1940	002355'	402 00 0 00 002317'		SETZM	HAVIPA			; no longer have the port
  1941	002356'	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  1942
  1943	002362'	263 17 0 00 000000 		RTN				; return
  1944
  1945	002363'	000000	000000		LOCDON:	0				; already done flag
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 47
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0753

  1946
  1947					;#********************************************************************
  1948					;* USRION/USRIOF - Turn User I/O Privileges On/Off
  1949					;
  1950					;   This routine does nothing in exec mode.  Under TOPS-20  we  do an enable
  1951					; of privileges and then a USER I/O JSYS to get User-IOT set.  Under TOPS10,
  1952					; a TRPSET UUO gets us into User-IOT mode.  USRION will fatal you out if you
  1953					; don't have User IOT privileges.
  1954					;#********************************************************************
  1955
  1956	002364'	336 00 0 00 002326*	USRION:	SKIPN	UDEBUG			; special debug mode?
  1957	002365'	336 00 0 00 030037 		SKIPN	USER			; exec mode?
  1958	002366'	263 17 0 00 000000 		RTN				; yes - return
  1959	002367'	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
  1960
  1961	002371'	336 00 0 00 030516 		SKIPN	MONTYP			; TOPS10?
  1962						GO	[MOVEI	1,0		; yes - setup for RTTRP UUO
  1963							 TRPSET	1,		;   and do it
  1964							 JFCL
  1965	002372'	260 17 0 00 003552'			 RTN]
  1966	002373'	332 00 0 00 030516 		SKIPE	MONTYP			; TOPS20?
  1967						GO	[GO	ENABLE		; yes - enable available privileges
  1968							 USRIO			;   and set the User I/O bit
  1969							 JFCL
  1970	002374'	260 17 0 00 003556'			 RTN]
  1971	002375'	260 17 0 00 002376'		GO	.+1			; push PC onto stack
  1972	002376'	262 17 0 00 000001 		GET	1			; pop it from stack into AC1
  1973	002377'	607 01 0 00 004000 		TLNN	1,(1B6)			; is USRIOT bit set?
  1974						JRST	[FMSGCD	<User does not have sufficient privileges>
  1975	002400'	254 00 0 00 003573'			 JRST	FFF]
  1976	002401'	262 17 0 00 000001 		RGET	(1,0)			; restore the AC's
  1977
  1978	002403'	263 17 0 00 000000 		RTN
  1979
  1980					; Code to turn User I/O off
  1981
  1982	002404'	336 00 0 00 002364*	USRIOF:	SKIPN	UDEBUG			; special debug mode?
  1983	002405'	336 00 0 00 030037 		SKIPN	USER			; exec mode?
  1984	002406'	263 17 0 00 000000 		RTN				; yes - return
  1985	002407'	254 02 1 00 002410'		JRSTF	@.+1			; turn off the privilege
  1986	002410'	010000	002411'			010000,,.+1			; modifies the PC word
  1987	002411'	263 17 0 00 000000 	USROFX:	RTN
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 48
DFNIAI	MAC	 1-Nov-83 18:03		User Mode Support Routines                                                         SEQ 0754

  1988
  1989					;#************************************************************
  1990					;* ENABLE - Enable Capabilities of This Process
  1991					;
  1992					; First read capabilities and then enable them.  Same as typing "ENA"
  1993					; from exec level.
  1994					;#************************************************************
  1995
  1996	002412'	336 00 0 00 002404*	ENABLE:	SKIPN	UDEBUG			; special debug mode?
  1997	002413'	336 00 0 00 030037 		SKIPN	USER			; exec mode?
  1998	002414'	263 17 0 00 000000 		RTN				; yes - exit
  1999	002415'	261 17 0 00 000001 		RPUT	(1,2,3)			; save AC's
  2000
  2001	002420'	201 01 0 00 400000 		MOVEI	1,.FHSLF		; process handle
  2002	002421'	104 00 0 00 000150 		RPCAP				; read capabilities
  2003	002422'	320 17 0 00 002505'		ERCAL	[RTN]			; ignore errors
  2004	002423'	200 03 0 00 000002 		MOVE	3,2			; get capabilities to AC3
  2005	002424'	104 00 0 00 000151 		EPCAP				; now enable
  2006	002425'	320 17 0 00 002505'		ERCAL	[RTN]			; ignore errors
  2007	002426'	262 17 0 00 000003 		RGET	(3,2,1)			; restore AC's
  2008
  2009	002431'	263 17 0 00 000000 		RTN				; exit
  2010
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page 49
DFNIAI	MAC	 1-Nov-83 18:03		Miscellaneous Routines                                                             SEQ 0755

  2011						SUBTTL	Miscellaneous Routines
  2012
  2013					;#************************************************************
  2014					;* FFF - Routine To Handle Fatals
  2015					;
  2016					; There is no return from this call.  You end up at DDT in exec mode
  2017					; or the monitor if in user mode. 
  2018					;
  2019					;   Calling sequence:
  2020					;
  2021					;	GO	FFF			; call routine
  2022					;	...........			; pgm has fataled out
  2023					;#************************************************************
  2024
  2025	002432'	260 17 0 00 002115'	FFF:	GO 	DEVREL			; release device if necessary
  2026	002433'	037 01 0 00 003575'		FMSGC	<Fatal pgm error at PC - >
  2027	002434'	550 00 0 17 000000 		HRRZ	(P)			; get calling PC
  2028	002435'	275 00 0 00 000001 		SUBI	1			; gets correct PC
  2029	002436'	037 06 0 00 000001 		PNT6F				; print it
  2030	002437'	037 01 0 00 030242 		PCRLF
  2031	002440'	332 00 0 00 030037 		SKIPE	USER			; user mode?
  2032	002441'	254 00 0 00 002444'		JRST	.+3			; yes
  2033	002442'	254 04 0 00 000000*		HALT	START			; halt .. restart
  2034	002443'	254 00 0 00 002442*		JRST	START			; to be sure
  2035
  2036					; User mode fatal halt
  2037
  2038	002444'	260 17 0 00 000000*		GO	.CLOSE			; close output files
  2039	002445'	260 17 0 00 000000*		GO	.EXIT			; exit the job
  2040	002446'	254 00 0 00 002443*		JRST	START			; restart program
  2041
  2042
  2043					;#********************************************************************
  2044					; End of DFNIAI.MAC Module
  2045					;#********************************************************************
  2046
  2047						XLIST
  2048
NO ERRORS DETECTED

PROGRAM BREAK IS 003615
CPU TIME USED 00:12.250

76P CORE USED
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page S-1
DFNIAI	MAC	 1-Nov-83 18:03		SYMBOL TABLE                                                                       SEQ 0756

AADDR		000432'	int	HAVIPA		002317'	int	LOCPHY		002326'	ent	RDEBUF		000050'	ent	
APR		000000	spd	ICWA0		001360'	int	LOGARG		001632'		RDLAR		000104'	ent	
CADDR		001460'	ext	ICWA1		001361'		LOGBUF		001373'	int	REL		002137'	ent	
CBASE		001372'	int	ICWA2		001362'		LOGPNT		001673'	ent	RELARG		002315'		
CCWPNT		001652'	ent	ICWA3		001363'		LOSPT		001722'		REQ1		002176'	ent	
CHCRAM		001510'		ICWA4		001364'		LOSPT1		001726'		REQ2		002206'	ent	
CHIN1		001427'		ICWA5		001365'		MBCN		000016		REQARG		002320'		
CHIN2		001460'		ICWA6		001366'		MBERR	002000	000000	spd	REQOK		002210'		
CHIN3		001470'		ICWA7		001367'		MCPUS		003607'		RESQAV		000200	spd	
CHIN4		001476'		ICWPT		001716'		MLOADN		001436'	ext	RPCAP	104000	000150	int	
CHINIT		001377'	ent	INDIAG		003606'		MONTYP		030516		RTN	263740	000000		
CHINX		001503'		INITP0		000532'		MPRUN		000010	spd	RUNTME		001035'	ext	
CHKCSR		000325'	ent	INITPD		000542'	ent	MVRERR		001000	spd	SAC1		003611'		
CHKCSX		000342'		INITPI		000517'	ent	MWEPT		001550'		SAVEBF		003612'		
CLREBE		000322'		INTAPR		001164'	int	NOPRIV		002043'		SDATA		000430'	int	
CLREBU		000311'	ent	INTCON		001140'	int	NOSET		002054'		SELLAR		040000	spd	
CLREBX		000321'		INTCSR		001260'	int	NVIIN1		000716'		SET2N		000623'		
CPUTST		002060'		INTEND		001330'	int	NVIIN2		000726'		SETEBE		000271'		
CRAMPE	004000	000000	spd	INTNNN		001304'		NVIIN3		000736'		SETEBU		000257'	ent	
CWORDL		001462'	ext	INTNUM		001067'	int	NVIIN4		000746'		SETLAE		000306'		
CWORDR		000000	ext	INTPC		001070'	int	NVIIN5		000756'		SETLAR		000274'	ent	
DEBTIM		001036'	ext	INTTIM		001210'	int	NVIIN6		000766'		SETUUO	047000	000075		
DELAY	005000	000000		INTTYP		001114'	int	NVIIN7		000776'		SETVEC		000602'	ent	
DEVADR		003604'		INTUSE		001234'	int	NVIINC		001006'		SINCYC		020000	spd	
DEVREL		002115'	ent	IPACLR		000252'	ent	NVJEN		001066'		SLAST		000427'	int	
DEVREQ		002152'	ent	IPASR0		000361'		P		000017		SMX		002041'		
DEVRQX		002212'		IPASR1		000371'		PAG		000010	spd	SNARKF		003613'	int	
DGEPN0		002244'		IPASR2		000372'		PARFLG		001466'	ext	SNEXT		000426'	int	
DGEPNT		002235'		IPASR3		000373'		PCB		000000	ext	SNKMON		002017'		
DGEPNX		002254'		IPASRT		000344'	ent	PCLEAR		400000	spd	START		002446'	ext	
DIAGER		001751'		IPASS0		000453'		PCRL	037000	030242		SWITT		000000	ext	
DPRCX		002111'		IPASS1		000475'		PCRLF	037040	030242		T10TAB		002260'		
DRCRAM		001430'	ext	IPASS2		000512'		PI		000004	spd	T20TAB		002272'		
DSETUP		001774'	ent	IPASS3		000513'		PICLR		010000	spd	TCWPT		001737'		
DSPRIN		000000	ext	IPASS4		000514'		PIOFF		000400	spd	TIDLE		000000	ext	
DWCRAM		001463'	ext	IPASST		000433'	ent	PION		000200	spd	TPCB		001404'	ext	
EADDR		000431'	int	IPAST1		000421'		PISYOF		000574'	ent	TPSM2		002030'		
EBUSPE		004000	spd	IPAST2		000422'		PISYON		000577'	ent	TPSMON		002023'		
ENABLE		002412'	ent	IPAST3		000423'		PMODE		000242'	ext	TRPSET	047000	000025		
ENARG		002323'		IPASTP		000376'	ent	PNT1	037040	000000		TSTEBF		200000	spd	
ENDIAG		002216'		ISTOP		000176'	ent	PNT1F	037040	000001		TTIDEC	037200	000003		
EPCAP	104000	000151	int	ISTOP0		000212'		PNT6F	037300	000001		UDEBUG		002412'	ext	
EPTADR		001371'		ISTOPC		000240'		PNTADR	037400	000000		USER		030037		
EPTIOP		003605'		ISTOPX		000244'		PNTDEC	037640	000000		USRIO	104000	000310	int	
EPTJMP		001370'	int	IVADDR		000622'		PNTHW	037540	000000		USRIOF		002404'	ent	
ERCAL	320740	000000	int	JEN	254500	000000		PNTMSF	037040	000000		USRION		002364'	ent	
ERESET		000167'	ent	JRSTF	254100	000000		PNTMSG	037000	000000		USROFX		002411'		
ERSTR	104000	000011	int	JSYS	104000	000000		PNTOCF	037740	000003		USTIM		001040'	ext	
FFF		002432'	ent	LDCRAM		000035'	ent	PNTOCS	037700	000003		VIINT		000644'		
FQUERR		002000	spd	LDCSR		000010'	ent	PRSFLG		003610'		VIIPI		003614'		
GET	262740	000000		LDEBUF		000000'	ent	PUT	261740	000000		ZI		000000'		
GETLOG		001611'	ent	LDRAR		000021'	ent	RDCRAM		000115'	ent	$ARG2		000017		
GETTAB	047000	000041		LOCDON		002363'	int	RDCS0		000071'		$B		000052		
GO	260740	000000		LOCP1		002342'		RDCSR		000060'	ent	$CHR		000052		
HALT	254200	000000		LOCP3		002354'		RDCSX		000100'		$GARG		000001		
.MAIN	MACRO %53A(1152) 20:08 24-Sep-84 Page S-2
DFNIAI	MAC	 1-Nov-83 18:03		SYMBOL TABLE                                                                       SEQ 0757

$SVUPC		030114		.RCJP		000060	spd	
$SVUUO		030113		.RCONT		000340	spd	
%ADDR		000020	spd	.RD	001000	000000	spd	
%ML	001700	170000	spd	.RJ		000000	spd	
%MR		000040	spd	.RJMAP		000040	spd	
.CLOSE		002444'	ext	.RMGC		000000	spd	
.CONI		000126'	ent	.ROENA		000000	spd	
.CONO		000136'	ent	.ROR	030000	000000	spd	
.DATAI		000147'	ent	.RS0A	400000	000000	spd	
.DATAO		000157'	ent	.RSD0	700000	000000	spd	
.DIAG		001773'		.RSELE		005000	spd	
.EXIT		002445'	ext	.UUO		001771'		
.FHSLF		400000	sin	
.INPNT		001331'	ent	
.INPNX		001352'		
.INWD1		001356'	int	
.INWD2		001357'	int	
.JSYS		001772'		
.LA		000000	spd	
.LADDR	000100	000000	spd	
.LB		000000	spd	
.LCCER		000000	spd	
.LCENA		000000	spd	
.LCJP		000000	spd	
.LCONT		000000	spd	
.LD		000000	spd	
.LJ		010000	spd	
.LJMAP		000000	spd	
.LMGC		000001	spd	
.LOENA		002000	spd	
.LOR		000000	spd	
.LS0A		000000	spd	
.LSD0		000000	spd	
.LSELE		000000	spd	
.MA		000017	spd	
.MB		000017	spd	
.MCCER		000037	spd	
.MCENA		000001	spd	
.MCJP		000017	spd	
.MCONT		000017	spd	
.MD		000007	spd	
.MJ		007777	spd	
.MJMAP		000017	spd	
.MMGC		001777	spd	
.MOENA		000001	spd	
.MOR		000007	spd	
.MS0A		000007	spd	
.MSD0		000007	spd	
.MSELE		000007	spd	
.PIOFF		000546'	ent	
.PION		000560'	ent	
.RA	000010	000000	spd	
.RB		400000	spd	
.RCCER		100000	spd	
.RCENA	000400	000000	spd	
AADDR	    17	   689#
APR	   385	   986	  1092                                                                                             SEQ 0758
CADDR	    49#	  1293	  1327
CBASE	    30	   905	  1250#	  1340	  1420
CCWPNT	    29	  1447#
CHCRAM	  1291	  1325	  1361#
CHIN1	  1293#	  1298
CHIN2	  1327#	  1332
CHIN3	  1272	  1338#
CHIN4	  1334	  1347#
CHINIT	    28	  1262#
CHINX	  1270	  1355#
CHKCSR	    15	   521#
CHKCSX	   525	   536	   540#
CLREBE	   503	   509#
CLREBU	    15	   500#
CLREBX	   505	   508#
CPUTST	  1625	  1673#
CRAMPE	   403	   411	   416	   420	   424	   526	   595	   655	   731	  1107	  1108	  1121	  1167
CWORDL	    49#	  1295	  1329
CWORDR	    49#
DEBTIM	    44#	   990	  1099
DEVADR	  1422	  1733#	  1733	  1785#	  1785
DEVREL	    34	  1716#	  1772	  2025
DEVREQ	    34	  1766#
DEVRQX	  1806	  1810#
DGEPN0	  1845#	  1853
DGEPNT	  1566	  1740	  1803	  1838#
DGEPNX	  1851	  1857#
DIAGER	  1426	  1555#
DPRCX	  1681	  1700#
DRCRAM	    49#	  1294
DSETUP	    34	  1593#
DSPRIN	    48#
DWCRAM	    49#	  1330
EADDR	    17	   688#
EBUSPE	   412	   527	  1109	  1122	  1181
ENABLE	    35	  1634	  1967	  1996#
ENARG	  1826	  1827	  1911#
ENDIAG	  1798	  1820#
EPTADR	  1249#	  1282	  1314	  1341
EPTIOP	  1316#	  1316
EPTJMP	    30	  1248#	  1287	  1312
ERESET	    16	   382#
FFF	    40	  1600	  1614	  1643	  1648	  1649	  1650	  1659	  1679	  1699	  1975	  2025#
FQUERR	  1122	  1184
GETLOG	    29	  1414#
HAVIPA	    36	  1719	  1743	  1771	  1809	  1901#	  1940
ICWA0	    30	   903	  1237#	  1277	  1339	  1419
ICWA1	  1238#
ICWA2	  1239#
ICWA3	  1240#
ICWA4	  1241#
ICWA5	  1242#
ICWA6	  1243#                                                                                                            SEQ 0759
ICWA7	  1244#
ICWPT	  1489	  1499#
INDIAG	  1596#	  1596	  1736#	  1736	  1744	  1791	  1810
INITP0	   826#	   840
INITPD	    21	   837#
INITPI	    21	   809#
INTAPR	    23	   987	  1093	  1148#
INTCON	    23	   985	  1091	  1147#
INTCSR	    24	  1096	  1123	  1151#
INTEND	    24	   830	  1153#
INTNNN	   981	   997	  1087	  1130	  1152#
INTNUM	    23	   829	   909	   974	   980	  1077	  1086	  1143#
INTPC	    23	   983	  1089	  1145#
INTTIM	    23	   991	  1100	  1149#
INTTYP	    23	   979	  1085	  1146#
INTUSE	    23	   993	  1102	  1150#
IPACLR	    16	   387	   443#	  1115	  1267	  1724	  1808
IPASR0	   608#
IPASR1	   596	   619#
IPASR2	   591	   620#
IPASR3	   589	   621#
IPASRT	    16	   583#
IPASS0	   746#
IPASS1	   765	   776#
IPASS2	   732	   793#
IPASS3	   727	   794#
IPASS4	   725	   795#
IPASST	    16	   718#
IPAST1	   656	   677#
IPAST2	   651	   678#
IPAST3	   649	   663	   679#
IPASTP	    16	   643#
ISTOP	    16	   396#
ISTOP0	   404	   407#
ISTOPC	   410	   417	   419	   429#
ISTOPX	   406	   428	   433#
IVADDR	   907	   914#
LDCRAM	    10	   188#
LDCSR	    10	   143#	   413	   430	   434	   445	   465	   487	   507	   528	   538	   601	   617	   661
	   669	   739	   754	   767	   772	   786	   790	   853	   870	  1110	  1117	  1311	  1319
LDEBUF	    10	   129#	   788
LDRAR	    10	   165#	   604	   742	  1309
LOCDON	    36	  1922	  1939	  1945#
LOCP1	  1929#	  1938
LOCP3	  1939#
LOCPHY	    34	  1919#
LOGARG	  1423	  1424	  1427	  1438#
LOGBUF	    30	  1252#	  1429	  1431	  1500	  1507	  1530	  1537	  1540	  1543
LOGPNT	    29	  1480#
LOSPT	  1490	  1506#
LOSPT1	  1510#	  1528
MBCN	   133	   147	   170	   193	   228	   244	   274	   292	   313	   332	   353	   372	  1276	  1338
	  1418	  1483	  1728	  1731	  1780	  1783	  1822	  1825                                                     SEQ 0760
MBERR	   409	   416	   524	   595	   655	   731	  1114	  1121	  1174
MCPUS	  1682#	  1682	  1685
MLOADN	    48#	  1303
MONTYP	  1961	  1966
MPRUN	   405	   418	   535	   590	   609	   611	   650	   660	   726	   747	   748	  1310
MVRERR	  1122	  1187
MWEPT	  1302	  1365#
NOPRIV	  1636	  1642#
NOSET	  1591	  1655#
NVIIN1	   922	  1010#	  1014
NVIIN2	   924	  1019#	  1023
NVIIN3	   926	  1028#	  1032
NVIIN4	   928	  1037#	  1041
NVIIN5	   930	  1046#	  1050
NVIIN6	   932	  1055#	  1059
NVIIN7	   934	  1064#	  1068
NVIINC	  1017	  1026	  1035	  1044	  1053	  1062	  1071	  1075#
NVJEN	  1015	  1024	  1033	  1042	  1051	  1060	  1069	  1088	  1137	  1139#
P	   237	   251	   466	   488	   508	   531	   618	   619	   620	   676	   677	   678	   792	   793
	   794	  1560	  1656	  1766	  1805	  2027
PAG	  1278
PARFLG	    49#	  1323	  1324	  1333
PCB	    50#	  1283	  1342	  1347	  1351	  1450	  1453	  1463	  1466	  1927
PCLEAR	   429	   444
PI	   812	   826	   827	   839	   881	   890	   966	   967	  1011	  1012	  1020	  1021	  1029	  1030
	  1038	  1039	  1047	  1048	  1056	  1057	  1065	  1066
PICLR	   812	   839
PIOFF	   881	   967	  1012	  1021	  1030	  1039	  1048	  1057	  1066
PION	   827
PISYOF	    21	   849	   865	   880#
PISYON	    22	   871	   889#
PMODE	    50#	   421	   425	   431
PRSFLG	   720#	   720	   764
RDCRAM	    11	   288#
RDCS0	   245#	   250
RDCSR	    11	   237#	   400	   414	   459	   481	   502	   522	   588	   648	   662	   724	   758	   850
	   866	  1094
RDCSX	   248	   252#
RDEBUF	    11	   224#	   768
RDLAR	    11	   270#	   670	   778	  1111	  1118
REL	    34	  1737#
RELARG	  1734	  1735	  1898#
REQ1	    34	  1792#
REQ2	    34	  1800#
REQARG	  1619	  1627	  1776	  1786	  1790	  1799	  1905#
REQOK	  1794	  1808#
RESQAV	  1122
RUNTME	    44#	   989	  1098
SAC1	  1557#	  1557	  1563	  1738	  1801	  1843	  1849
SAVEBF	   769#	   769	   787
SDATA	    17	   608	   664	   687#	   746	   760	   770	   784	   789
SELLAR	   463	   485	   611	   668	   748	  1109	  1116
SET2N	   908	   921#                                                                                                    SEQ 0761
SETEBE	   460	   467#
SETEBU	    15	   457#
SETLAE	   482	   489#
SETLAR	    15	   479#
SETVEC	    22	   897#
SINCYC	   610	   748
SLAST	    17	   686#	   777
SMX	  1633	  1639#
SNARKF	    36	  1602#	  1602	  1603	  1628	  1632	  1729	  1750	  1781	  1823	  1841
SNEXT	    17	   602	   672	   685#	   740	   776	   780
SNKMON	  1607	  1618#
START	  2033	  2034	  2040
SWITT	    44#
T10TAB	  1840	  1863#
T20TAB	  1842	  1876#
TCWPT	  1491	  1536#
TIDLE	    50#
TPCB	    50#	  1268
TPSM2	  1621	  1630#
TPSMON	  1605	  1625#
TSTEBF	   462	   484	   504	   506	   600	   736	   738	   766	   771	   785
UDEBUG	    48#	   129	   143	   165	   188	   224	   238	   270	   288	   309	   328	   349	   368	   382
	   396	  1269	  1414	  1593	  1655	  1716	  1767	  1919	  1956	  1982	  1996
USER	   384	   386	   612	   749	   809	   837	   846	   862	   880	   889	   898	  1271	  1421	  1594
	  1673	  1717	  1768	  1920	  1957	  1983	  1997	  2031
USRIOF	    35	  1982#
USRION	    35	  1723	  1770	  1956#
USROFX	  1987#
USTIM	    44#	   992	  1101
VIINT	   902	   965#	   982	  1004
VIIPI	   966#	   966	   984	  1011	  1020	  1029	  1038	  1047	  1056	  1065	  1090
ZI	    57#
$ARG2	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
$B	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
$CHR	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
$GARG	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
$SVUPC	   970	  1002	  1077	  1135
$SVUUO	   970	  1004	  1077	  1137
%ADDR	  1365#	  1365	  1367	  1367#	  1369	  1369#	  1371	  1371#	  1373	  1373#	  1378	  1378#	  1380	  1380#
	  1382	  1382#	  1384	  1384#	  1390	  1390#	  1392	  1392#	  1394	  1394#	  1396	  1396#	  1398	  1398#
	  1400	  1400#	  1402	  1402#
%ML	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
%MR	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380     SEQ 0762
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
.CLOSE	    44#	  2038
.CONI	     9	   309#
.CONO	     9	   328#
.DATAI	     9	   349#
.DATAO	     9	   368#	  1313	  1317
.DIAG	  1425	  1591#	  1631	  1737	  1792	  1800	  1828
.EXIT	    44#	  2039
.FHSLF	  1933	  2001
.INPNT	    22	  1159#
.INPNX	  1166	  1173	  1180	  1183	  1186	  1189	  1193#
.INWD1	    24	   897	  1001	  1124	  1134	  1159	  1163	  1193	  1200#
.INWD2	    24	  1125	  1169	  1176	  1201#
.JSYS	  1590#	  1620
.LA	  1390	  1398
.LADDR	  1365
.LB	  1371	  1382
.LCCER	  1367	  1373	  1378	  1384	  1394
.LCENA	  1367	  1373	  1378	  1384	  1394
.LCJP	  1367	  1373	  1378	  1384	  1394
.LCONT	  1371	  1382	  1390	  1392	  1398	  1400
.LD	  1371	  1382	  1390	  1394	  1396	  1398	  1400
.LJ	  1365	  1367	  1369	  1373	  1378	  1380	  1384	  1394	  1396	  1402
.LJMAP	  1365	  1369	  1380	  1396	  1402
.LMGC	  1371	  1382	  1390	  1392	  1398	  1400
.LOENA	  1390	  1398
.LOR	  1371	  1382	  1390	  1398
.LS0A	  1390	  1398
.LSD0	  1371	  1382
.LSELE	  1371	  1382	  1390	  1392	  1398	  1400
.MA	  1390	  1398
.MB	  1371	  1382
.MCCER	  1367	  1373	  1378	  1384	  1394
.MCENA	  1367	  1373	  1378	  1384	  1394
.MCJP	  1367	  1373	  1378	  1384	  1394
.MCONT	  1371	  1382	  1390	  1392	  1398	  1400
.MD	  1371	  1382	  1390	  1394	  1396	  1398	  1400
.MJ	  1365	  1367	  1369	  1373	  1378	  1380	  1384	  1394	  1396	  1402
.MJMAP	  1365	  1369	  1380	  1396	  1402
.MMGC	  1371	  1382	  1390	  1392	  1398	  1400
.MOENA	  1390	  1398
.MOR	  1371	  1382	  1390	  1398
.MS0A	  1390	  1398
.MSD0	  1371	  1382
.MSELE	  1371	  1382	  1390	  1392	  1398	  1400
.PIOFF	    21	   846#
.PION	    21	   862#	   999	  1132
.RA	  1390	  1398
.RB	  1371	  1382
.RCCER	  1367	  1373	  1378	  1384	  1394
.RCENA	  1367	  1373	  1378	  1384	  1394
.RCJP	  1367	  1373	  1378	  1384	  1394                                                                             SEQ 0763
.RCONT	  1371	  1382	  1390	  1392	  1398	  1400
.RD	  1371	  1382	  1390	  1394	  1396	  1398	  1400
.RJ	  1365	  1367	  1369	  1373	  1378	  1380	  1384	  1394	  1396	  1402
.RJMAP	  1365	  1369	  1380	  1396	  1402
.RMGC	  1371	  1382	  1390	  1392	  1398	  1400
.ROENA	  1390	  1398
.ROR	  1371	  1382	  1390	  1398
.RS0A	  1390	  1398
.RSD0	  1371	  1382
.RSELE	  1371	  1382	  1390	  1392	  1398	  1400
.UUO	  1589#	  1629
CALC	  1365	  1367	  1369	  1371	  1373	  1378	  1380	  1382	  1384	  1390	  1392	  1394	  1396	  1398
	  1400	  1402                                                                                                     SEQ 0764
CONCAT	  1365	  1367	  1369	  1371	  1373	  1378	  1380	  1382	  1384	  1390	  1392	  1394	  1396	  1398
	  1400	  1402
DELAY	   249	  1937
EPCAP	  2005
ERCAL	  2003	  2006
ERSTR	  1647
FIELD	  1365	  1367	  1369	  1371	  1373	  1378	  1380	  1382	  1384	  1390	  1392	  1394	  1396	  1398
	  1400	  1402
FMSG	  1565	  1848	  1863	  1864	  1865	  1866	  1867	  1868	  1869	  1870	  1871	  1876	  1877	  1878
	  1879	  1880	  1881	  1882	  1883	  1884	  1885	  1886	  1887	  1888	  1889	  1890	  1891	  1892
	  1893
FMSGC	  1559	  1562	  1611	  1683	  1686	  1697	  1739	  1802	  2026
FMSGCD	  1613	  1642	  1658	  1698	  1974
GET	   135	   150	   174	   176	   196	   198	   230	   252	   254	   277	   295	   315	   335	   355
	   374	   435	   437	   446	   467	   469	   489	   491	   509	   511	   540	   621	   623	   679
	   681	   795	   797	   831	   833	   854	   872	   910	   912	   936	  1002	  1004	  1135	  1137
	  1194	  1196	  1333	  1355	  1357	  1432	  1434	  1468	  1470	  1493	  1495	  1568	  1570	  1639
	  1700	  1702	  1748	  1750	  1811	  1813	  1830	  1832	  1857	  1859	  1941	  1943	  1972	  1976
	  1978	  2007	  2009
GETTAB	  1599	  1678
GO	   387	   400	   413	   414	   430	   434	   445	   459	   465	   481	   487	   502	   507	   522
	   527	   528	   538	   588	   601	   604	   617	   648	   661	   662	   669	   670	   724	   739
	   742	   754	   758	   767	   768	   772	   778	   786	   788	   790	   849	   850	   853	   865
	   866	   870	   871	   908	   989	   999	  1094	  1098	  1108	  1110	  1111	  1115	  1117	  1118
	  1123	  1132	  1267	  1268	  1294	  1303	  1309	  1311	  1313	  1317	  1319	  1330	  1422	  1426
	  1489	  1490	  1491	  1566	  1591	  1600	  1614	  1625	  1634	  1643	  1648	  1649	  1650	  1659
	  1679	  1699	  1723	  1724	  1738	  1740	  1770	  1772	  1798	  1803	  1808	  1962	  1967	  1971
	  2025	  2038	  2039
HALT	  2033
JEN	  1004	  1137
JRSTF	  1637	  1752	  1985
JSYS	  1935
MFLD	  1365#	  1365	  1367#	  1367	  1369#	  1369	  1371#	  1371	  1373#	  1373	  1378#	  1378	  1380#	  1380
	  1382#	  1382	  1384#	  1384	  1390#	  1390	  1392#	  1392	  1394#	  1394	  1396#	  1396	  1398#	  1398
	  1400#	  1400	  1402#	  1402
MWORD	  1365	  1367	  1369	  1371	  1373	  1378	  1380	  1382	  1384	  1390	  1392	  1394	  1396	  1398
	  1400	  1402
PCRL	  1492
PCRLF	  1558	  1567	  1741	  1804	  2030
PNT1	  1486
PNT1F	  1612
PNT6F	  2029
PNTADR	  1467
PNTDEC	  1464	  1541
PNTHW	  1451	  1501	  1538	  1850
PNTMSF	  1559	  1562	  1565	  1611	  1613	  1642	  1658	  1684	  1686	  1697	  1698	  1739	  1802	  1848
	  1863	  1864	  1865	  1866	  1867	  1868	  1869	  1870	  1871	  1876	  1877	  1878	  1879	  1880
	  1881	  1882	  1883	  1884	  1885	  1886	  1887	  1888	  1889	  1890	  1891	  1892	  1893	  1974
	  2026
PNTMSG	   423	   427	   432	   529	   539	  1165	  1168	  1172	  1175	  1179	  1182	  1185	  1188	  1304
	  1449	  1452	  1454	  1455	  1456	  1457	  1458	  1459	  1460	  1461	  1462	  1465	  1482	  1488
	  1499	  1506	  1511	  1512	  1513	  1514	  1515	  1521	  1522	  1523	  1524	  1525	  1529	  1536
	  1539	  1542                                                                                                     SEQ 0765
PNTOCF	  1561	  1564
PNTOCS	  1171	  1178	  1531	  1544
PUT	   131	   145	   167	   169	   190	   192	   226	   240	   242	   272	   290	   311	   330	   351
	   370	   398	   400	   443	   457	   459	   479	   481	   500	   502	   521	   583	   585	   643
	   645	   718	   720	   811	   828	   848	   864	   900	   902	   921	   968	   970	  1013	  1022
	  1031	  1040	  1049	  1058	  1067	  1075	  1077	  1161	  1163	  1262	  1264	  1323	  1416	  1418
	  1447	  1449	  1480	  1482	  1555	  1557	  1597	  1675	  1677	  1721	  1723	  1773	  1775	  1820
	  1822	  1838	  1840	  1924	  1926	  1959	  1961	  1999	  2001
RGET	   174	   196	   252	   435	   467	   489	   509	   621	   679	   795	   831	   910	  1002	  1135
	  1194	  1355	  1432	  1468	  1493	  1568	  1700	  1748	  1811	  1830	  1857	  1941	  1976	  2007
RPCAP	  2002
RPUT	   167	   190	   240	   398	   457	   479	   500	   583	   643	   718	   900	   968	  1075	  1161
	  1262	  1416	  1447	  1480	  1555	  1675	  1721	  1773	  1820	  1838	  1924	  1959	  1999
RTN	   130	   136	   144	   151	   166	   176	   189	   198	   225	   231	   239	   254	   271	   278
	   289	   296	   310	   316	   329	   336	   350	   356	   369	   375	   383	   388	   397	   437
	   447	   469	   491	   511	   530	   541	   623	   681	   797	   810	   833	   838	   847	   855
	   863	   873	   882	   891	   899	   912	   937	  1113	  1120	  1126	  1160	  1196	  1357	  1415
	  1428	  1434	  1470	  1495	  1502	  1532	  1545	  1570	  1595	  1640	  1657	  1674	  1702	  1718
	  1720	  1742	  1754	  1769	  1813	  1832	  1859	  1921	  1923	  1943	  1958	  1965	  1970	  1978
	  1984	  1987	  1998	  2003	  2006	  2009
SETUUO	  1696
TMSG	  1452	  1454	  1455	  1456	  1457	  1458	  1459	  1460	  1461	  1462	  1465	  1487	  1511	  1512
	  1513	  1514	  1515	  1521	  1522	  1523	  1524	  1525	  1529	  1539	  1542
TMSGC	  1168	  1175	  1449	  1482	  1499	  1506	  1536
TMSGCD	   423	   427	   432	   529	   539	  1165	  1182	  1185	  1188	  1304
TMSGD	  1172	  1179
TRPSET	  1963
TTIDEC	  1687
USRIO	  1635	  1968
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 1
DFNIAU	MAC	 6-Aug-83 09:31		UTILITY Routines Module                                                            SEQ 0766

     1						SUBTTL	UTILITY Routines Module
     2
     3						SALL
     4
     5						SEARCH	DFNIA,MONSYM
     6
     7					; Typeout/typin routines
     8
     9						ENTRY	CLRBUF,TTYYES
    10						ENTRY	PPDEC,PPDECF,PSDN,ALTCHH,CONVSX,.PNTOC,.PNTDC,.PNTDP,.PNTDL
    11
    12					; Clock handling routines/variables
    13
    14						ENTRY	STCLOK,MONTIM,PTIME,RUNTME,PSTAMP,.DELAY
    15						INTERN	CURTIM,MAXTIM,DEBTIM,USTIM,FORPNT,LCHAR
    16
    17					; TOPS-10/20 miscellaneous routines
    18
    19						ENTRY	.CLOSE,.RESET,.EXIT
    20
    21					; File handling routines
    22
    23						ENTRY	FGETW,FINCMD,FOARG
    24
    25					; Data pattern routines
    26
    27						ENTRY	BUFGEN,BUFCOM,PATPNT,PATBUF
    28						INTERN	WRDERR
    29
    30					; Switch handling routines
    31
    32						ENTRY	.SWCHP,SWITT,.ISWT,SWCHPT,SWCOM
    33						INTERN	.RSWIT,.LSWIT,SWRGT
    34
    35					; Miscellaneous routines
    36
    37						ENTRY	PARSER,.COMM,.SARG,.OARG,.DARG,CHKARG,LASARG,DECYN,FIOFF
    38						INTERN	.CGOT,ARGUM,ARGFLG
    39
    40					; Scope routine
    41
    42						ENTRY	SCOPE1
    43						INTERN	SCOSW,SCOOFF
    44
    45					; EXTERN's located in DFNIA1.MAC
    46
    47						EXTERN	EDEBUG,UDEBUG,MDEBUG,CADDR,CWORDL,CWORDR,SPREP2,UVERSN
    48						EXTERN	TSTPNT,TSTNUM,TSTSUB,TSTPC,TSTREP,TSTOFF,ALTF,SADDR
    49						EXTERN	FINPUT,FINECH,TAKFIL,TPAT,CADDR,TFMFLG,TBSDFL
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 2
DFNIAU	MAC	 6-Aug-83 09:31		UTILITY Routines Module                                                            SEQ 0767

    50
    51					; EXTERN's located in DFNIAI.MAC (Port Device Handling Routines module)
    52
    53						EXTERN	RDCSR,GETLOG,LOGPNT,FFF
    54
    55
    56					;#********************************************************************
    57					; ZU - Address for use in DDT
    58					;#********************************************************************
    59
    60	000000'				ZU:					; address of 00000'
    61
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 3
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0768

    62						SUBTTL	Printout/Typin Routines
    63
    64					;#********************************************************************
    65					;* CONVSX - Convert sixbit to octal
    66					;
    67					; Argument:	AC1 - Contains a word of sixbit (which may or may not
    68					;		      be an octal number).
    69					;
    70					; Return:	+1 - Error - not a valid octal number
    71					;		+2 - Ok - number converted ok - in AC1
    72					;#********************************************************************
    73
    74	000000'	261 17 0 00 000000 	CONVSX:	RPUT	(0,2)			; save AC's
    75
    76	000002'	202 01 0 00 006250'		MOVEM	1,CONVSS#		; save argument
    77	000003'	200 01 0 00 003631'		MOVE	1,[POINT 6,CONVSS]	; set to get sixbit char
    78	000004'	202 01 0 00 000027'		MOVEM	1,CONVSP		; save the pointer
    79	000005'	400 02 0 00 000000 		SETZ	2,			; clear result
    80	000006'	134 01 0 00 000027'	CONVS0:	ILDB	1,CONVSP		; get a char
    81	000007'	322 01 0 00 000022'		JUMPE	1,CONVS1		; zero - all done - exit
    82	000010'	301 01 0 00 000020 		CAIL	1,20			; see if its in octal range
    83	000011'	303 01 0 00 000027 		CAILE	1,27
    84	000012'	254 00 0 00 000017'		JRST	CONVSE			; no - error
    85	000013'	405 01 0 00 000007 		ANDI	1,7			; yes - save only digit
    86	000014'	242 02 0 00 000003 		LSH	2,3			; multiply by 8
    87	000015'	272 01 0 00 000002 		ADDM	1,2			; insert in number
    88	000016'	254 00 0 00 000006'		JRST	CONVS0			; get next digit
    89
    90					; Error 
    91
    92	000017'	262 17 0 00 000002 	CONVSE:	RGET	(2,0)			; restore AC's
    93
    94	000021'	263 17 0 00 000000 		RTN				; return +1
    95
    96					; Done - put result into AC1
    97
    98	000022'	200 01 0 00 000002 	CONVS1:	MOVE	1,2
    99	000023'	262 17 0 00 000002 		RGET	(2,0)			; restore AC's
   100
   101	000025'	350 00 0 17 000000 		AOS	(P)			; set up return +2
   102	000026'	263 17 0 00 000000 		RTN				; exit
   103
   104	000027'	000000	000000		CONVSP:	0				; number to convert
   105	000030'	000000	000000			0				; trailing zeros
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 4
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0769

   106
   107					;#********************************************************************
   108					;* ALTCHH - Handle altmode intercept
   109					;
   110					; If an altmode has been typed in response to the question asked
   111					; immediately before this call - exit through ALTMGO.
   112					;
   113					; If an altmode has not been typed - exit to the address specified
   114					; by the right half of the UUO (in $SVUUO).
   115					;#********************************************************************
   116
   117	000031'	261 17 0 00 000000 	ALTCHH:	PUT	0			; save AC0
   118	000032'	200 00 0 00 030232 		MOVE	$CHRIN			; get last character typed
   119	000033'	306 00 0 00 000033 		CAIN	33			; altmode?
   120	000034'	254 00 0 00 000042'		JRST	ALTCHX			; yes - handle
   121	000035'	302 00 0 00 000175 		CAIE	175			; altmode?
   122	000036'	306 00 0 00 000176 		CAIN	176			; altmode?
   123	000037'	254 00 0 00 000042'		JRST	ALTCHX			; yes - handle
   124	000040'	262 17 0 00 000000 		GET	0			; no - restore AC0
   125	000041'	254 00 1 00 030113 		JRST	@$SVUUO			; exit
   126
   127	000042'	262 17 0 00 000000 	ALTCHX:	GET	0			; restore AC0
   128	000043'	262 17 0 00 006272'		GET	XX#			; take off return address
   129	000044'	254 00 1 00 030063 		JRST	@ALTMGO			; go to intercept address
   130
   131
   132					;#********************************************************************
   133					;* CLRBUF - Clear input buffer
   134					;#********************************************************************
   135
   136	000045'	336 00 0 00 030037 	CLRBUF:	SKIPN	USER			; user mode?
   137	000046'	263 17 0 00 000000 		RTN				; no - return
   138	000047'	261 17 0 00 000000 		RPUT	(0,1)			; save some AC's
   139
   140	000051'	201 01 0 00 000100 		MOVEI	1,100			; set up TOPS-10 argument
   141	000052'	332 00 0 00 030516 		SKIPE	MONTYP			; TOPS-20?
   142	000053'	051 11 0 00 000000 		CLRBFI				; yes - clear input buffer
   143	000054'	336 00 0 00 030516 		SKIPN	MONTYP			; TOPS-10?
   144	000055'	104 00 0 00 000100 		CFIBF				; yes - clear input buffer
   145	000056'	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
   146
   147	000060'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 5
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0770

   148
   149					;#********************************************************************
   150					;* TTYYES - Answer yes or no question
   151					;
   152					; Calling sequence:  MOVE [FMSG  <Question?>]
   153					;		     GO	  TTYYES
   154					;		     Return+1 ==> No
   155					;		     Return+2 ==> Yes
   156					;#********************************************************************
   157
   158	000061'	261 17 0 00 000000 	TTYYES:	RPUT	(0,1,2)			; save AC's
   159
   160	000064'	202 00 0 00 000002 		MOVEM	2			; get printout in AC2
   161	000065'	256 00 0 00 000002 	TTYY0:	XCT	2			; print question
   162	000066'	037 01 0 00 003632'		FMSG	< (Y or N) - >		; print Y or N section
   163	000067'	037 10 0 00 000003 	TTYY1:	TTSIXB				; get it
   164						ALTCHK	[SKIPE	$TWCNT		; did a timeout occur?
   165							 JRST	TTYY0		; no - error - reask question
   166	000070'	007 00 0 00 003635'			 JRST	TTYY1]		; yes - just keep looking for answer
   167	000071'	404 00 0 00 003640'		AND	[770000,,0]		; mask out all but first character
   168	000072'	241 00 0 00 000006 		ROT	6			; right justify byte
   169	000073'	302 00 0 00 000071 		CAIE	71			; Y?
   170	000074'	306 00 0 00 000056 		CAIN	56			; N?
   171	000075'	334 00 0 00 000000 		SKIPA				; yes - continue
   172	000076'	254 00 0 00 000065'		JRST	TTYY0			; neither - reask question
   173	000077'	306 00 0 00 000071 		CAIN	71			; Y?
   174	000100'	350 00 0 17 777775 		AOS	-3(P)			; increment return
   175	000101'	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
   176
   177	000104'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 6
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0771

   178
   179					;#*********************************************************************
   180					;* PSDN - Prints signed decimal numbers
   181					;
   182					; PSDN prints the contents of AC0 as a signed decimal number followed
   183					; by a period.  Leading zeros are suppressed.
   184					;#*********************************************************************
   185
   186	000105'	261 17 0 00 000000 	PSDN:	PUT
   187						JUMPL	[TMSG	<->
   188							 MOVN	(P)
   189	000106'	321 00 0 00 003642'			 JRST	.+1]
   190	000107'	037 15 0 00 000000 		PNTDEC				; print the number
   191	000110'	037 00 0 00 003645'		TMSG	<.>			; follow with a period
   192	000111'	262 17 0 00 000000 		GET
   193	000112'	263 17 0 00 000000 		RTN
   194
   195	000113'	261 17 0 00 000000 	PSDNF:	PUT
   196						JUMPL	[FMSG	<->
   197							 MOVN	(P)
   198	000114'	321 00 0 00 003646'			 JRST	.+1]
   199	000115'	037 15 0 00 000001 		PNTDCF
   200	000116'	037 01 0 00 000056 		PNTCIF	"."
   201	000117'	262 17 0 00 000000 		GET
   202	000120'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 7
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0772

   203
   204					;#********************************************************************
   205					;* .PNTOC - Print n digit octal number with leading zeros suppressed
   206					;#********************************************************************
   207
   208	000121'	261 17 0 00 000000 	.PNTOC:	RPUT	(0,1,2,3,4,$SVUUO,$SVUPC)
   209
   210	000130'	135 01 0 00 003651'		LDB	1,[POINT 23,$SVUUO,35]	; get address portion
   211	000131'	661 01 0 00 200040 		TLO	1,200040		; make into a "MOVE 1," instruction
   212	000132'	261 17 0 00 000001 		PUT	1			; put on stack
   213	000133'	200 01 0 17 777772 		MOVE	1,-6(P)			; restore AC1
   214	000134'	256 00 0 17 000000 		XCT	(P)			; get number into AC1
   215	000135'	262 17 0 00 006272'		GET	XX#			; pop off temporary stack location
   216	000136'	214 02 0 00 000001 		MOVM	2,1			; get absolute value
   217	000137'	243 02 0 00 000141'		JFFO	2,.+2			; find out where number starts
   218	000140'	201 03 0 00 000043 		MOVEI	3,^D35			; assume at least one bit set
   219	000141'	231 03 0 00 000003 		IDIVI	3,3			; calculate # of leading 0's there are
   220	000142'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   221	000143'	270 02 0 00 000003 		ADD	2,3			; calculate number of spaces to 
   222	000144'	275 02 0 00 000014 		SUBI	2,^D12			;   print
   223	000145'	335 00 0 00 000001 		SKIPGE	1			; number is actually negative?
   224	000146'	370 00 0 00 000002 		SOS	2			; yes - allow for minus sign
   225	000147'	333 00 0 00 000002 		SKIPLE	2			; number of spaces still 1..n?
   226	000150'	256 00 0 02 000163'		XCT	SPATAB(2)		; yes - print leading spaces
   227	000151'	200 00 0 00 000001 		MOVE	1			; get number
   228	000152'	037 16 0 00 000003 		PNTOCS				; print it
   229	000153'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,4,3,2,1,0)
   230
   231	000162'	263 17 0 00 000000 		RTN				; exit
   232
   233					; Table to print leading spaces
   234
   235	000163'	255 00 0 00 000000 	SPATAB:	JFCL				; 0
   236	000164'	037 00 0 00 003653'		TMSG	< >			; 1
   237	000165'	037 00 0 00 003654'		TMSG	<  >			; 2
   238	000166'	037 00 0 00 003655'		TMSG	<   >			; 3
   239	000167'	037 00 0 00 003656'		TMSG	<    >			; 4
   240	000170'	037 00 0 00 003657'		TMSG	<     >			; 5
   241	000171'	037 00 0 00 003661'		TMSG	<      >		; 6
   242	000172'	037 00 0 00 003663'		TMSG	<       >		; 7
   243	000173'	037 00 0 00 003665'		TMSG	<        >		; 8
   244	000174'	037 00 0 00 003667'		TMSG	<         >		; 9
   245	000175'	037 00 0 00 003671'		TMSG	<          >		; 10
   246	000176'	037 00 0 00 003674'		TMSG	<           >		; 11
   247	000177'	037 00 0 00 003677'		TMSG	<            >		; 12
   248	000200'	037 00 0 00 003702'		TMSG	<             >		; 13
   249	000201'	037 00 0 00 003705'		TMSG	<              >	; 14
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 8
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0773

   250
   251					;#********************************************************************
   252					;* .PNTDC - Print n digit decimal number with leading zeros suppressed
   253					;#********************************************************************
   254
   255	000202'	261 17 0 00 000000 	.PNTDC:	RPUT	(0,1,2,3,4,5,$SVUUO,$SVUPC)
   256
   257	000212'	135 01 0 00 003651'		LDB	1,[POINT 23,$SVUUO,35]	; get address portion
   258	000213'	661 01 0 00 200040 		TLO	1,200040		; make into a "MOVE 1," instruction
   259	000214'	261 17 0 00 000001 		PUT	1			; put on stack
   260	000215'	200 01 0 17 777771 		MOVE	1,-7(P)			; restore AC1
   261	000216'	256 00 0 17 000000 		XCT	(P)			; get number into AC1
   262	000217'	262 17 0 00 006272'		GET	XX#			; pop off temporary stack location
   263	000220'	214 02 0 00 000001 		MOVM	2,1			; get absolute value
   264	000221'	201 04 0 00 000001 		MOVEI	4,1			; digit count
   265	000222'	231 02 0 00 000012 	.PNTD0:	IDIVI	2,^D10			; divide by 10
   266	000223'	322 02 0 00 000226'		JUMPE	2,.PNTD1		; remainder? no - go print
   267	000224'	350 00 0 00 000004 		AOS	4			; yes - increment character count
   268	000225'	254 00 0 00 000222'		JRST	.PNTD0			;   and keep looping
   269	000226'	200 05 0 00 003710'	.PNTD1:	MOVE	5,[TMSG	< >]
   270	000227'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   271	000230'	370 00 0 00 000002 		SOS	2			; allow for initial space
   272	000231'	317 02 0 00 000004 		CAMG	2,4			; overflow?
   273						GO	[IDIVI	1,^D1000	; yes - divide by 1000
   274							 SUBI	4,3
   275							 MOVE	5,[TMSG <K>]
   276	000232'	260 17 0 00 003713'			 RTN]
   277	000233'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   278	000234'	370 00 0 00 000002 		SOS	2			; allow for initial space
   279	000235'	317 02 0 00 000004 		CAMG	2,4			; overflow?
   280						GO	[IDIVI	1,^D1000	; yes - divide by 1000
   281							 SUBI	4,3
   282							 MOVE	5,[TMSG <M>]
   283	000236'	260 17 0 00 003721'			 RTN]
   284	000237'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   285	000240'	370 00 0 00 000002 		SOS	2			; allow for initial space
   286	000241'	274 02 0 00 000004 		SUB	2,4			; calculate number of spaces to print
   287	000242'	335 00 0 00 000001 		SKIPGE	1			; number is actually negative?
   288	000243'	370 00 0 00 000002 		SOS	2			; yes - allow for minus sign
   289	000244'	333 00 0 00 000002 		SKIPLE	2			; number of spaces still 1..n?
   290	000245'	256 00 0 02 000163'		XCT	SPATAB(2)		; yes - print leading spaces
   291	000246'	200 00 0 00 000001 		MOVE	1			; get number
   292	000247'	037 15 0 00 000000 		PNTDEC				; print it
   293	000250'	256 00 0 00 000005 		XCT	5			; print trailer
   294	000251'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,5,4,3,2,1,0)
   295
   296	000261'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 9
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0774

   297
   298					;#********************************************************************
   299					;* .PNTDL - Print decimal number left justified leading zeros suppressed
   300					;#********************************************************************
   301
   302	000262'	261 17 0 00 000000 	.PNTDL:	RPUT	(0,1,2,3,4,5,$SVUUO,$SVUPC)
   303
   304	000272'	135 01 0 00 003651'		LDB	1,[POINT 23,$SVUUO,35]	; get address portion
   305	000273'	661 01 0 00 200040 		TLO	1,200040		; make into a "MOVE 1," instruction
   306	000274'	261 17 0 00 000001 		PUT	1			; put on stack
   307	000275'	200 01 0 17 777771 		MOVE	1,-7(P)			; restore AC1
   308	000276'	256 00 0 17 000000 		XCT	(P)			; get number into AC1
   309	000277'	262 17 0 00 006272'		GET	XX#			; pop off temporary stack location
   310	000300'	214 02 0 00 000001 		MOVM	2,1			; get absolute value
   311	000301'	201 04 0 00 000001 		MOVEI	4,1			; digit count
   312	000302'	231 02 0 00 000012 	.PNTD2:	IDIVI	2,^D10			; divide by 10
   313	000303'	322 02 0 00 000306'		JUMPE	2,.PNTD3		; remainder? no - go print
   314	000304'	350 00 0 00 000004 		AOS	4			; yes - increment character count
   315	000305'	254 00 0 00 000302'		JRST	.PNTD2			;   and keep looping
   316	000306'	200 05 0 00 003726'	.PNTD3:	MOVE	5,[TMSG	<. >]
   317	000307'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   318	000310'	275 02 0 00 000002 		SUBI	2,2			; allow for initial space
   319	000311'	317 02 0 00 000004 		CAMG	2,4			; overflow?
   320						GO	[IDIVI	1,^D1000	; yes - divide by 1000
   321							 SUBI	4,3
   322							 MOVE	5,[TMSG <.K>]
   323	000312'	260 17 0 00 003731'			 RTN]
   324	000313'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   325	000314'	370 00 0 00 000002 		SOS	2			; allow for initial space
   326	000315'	317 02 0 00 000004 		CAMG	2,4			; overflow?
   327						GO	[IDIVI	1,^D1000	; yes - divide by 1000
   328							 SUBI	4,3
   329							 MOVE	5,[TMSG <.M>]
   330	000316'	260 17 0 00 003737'			 RTN]
   331	000317'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   332	000320'	370 00 0 00 000002 		SOS	2			; allow for initial space
   333	000321'	274 02 0 00 000004 		SUB	2,4			; calculate number of spaces to print
   334	000322'	335 00 0 00 000001 		SKIPGE	1			; number is actually negative?
   335	000323'	370 00 0 00 000002 		SOS	2			; yes - allow for minus sign
   336	000324'	200 00 0 00 000001 		MOVE	1			; get number
   337	000325'	037 15 0 00 000000 		PNTDEC				; print it
   338	000326'	256 00 0 00 000005 		XCT	5			; print trailer
   339	000327'	333 00 0 00 000002 		SKIPLE	2			; number of spaces still 1..n?
   340	000330'	256 00 0 02 000163'		XCT	SPATAB(2)		; yes - print leading spaces
   341	000331'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,5,4,3,2,1,0)
   342
   343	000341'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 10
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0775

   344
   345					;#********************************************************************
   346					;* .PNTDP - Print n digit decimal number with leading zeros suppressed
   347					;#********************************************************************
   348
   349	000342'	261 17 0 00 000000 	.PNTDP:	RPUT	(0,1,2,3,4,5,$SVUUO,$SVUPC)
   350
   351	000352'	135 01 0 00 003651'		LDB	1,[POINT 23,$SVUUO,35]	; get address portion
   352	000353'	661 01 0 00 200040 		TLO	1,200040		; make into a "MOVE 1," instruction
   353	000354'	261 17 0 00 000001 		PUT	1			; put on stack
   354	000355'	200 01 0 17 777771 		MOVE	1,-7(P)			; restore AC1
   355	000356'	256 00 0 17 000000 		XCT	(P)			; get number into AC1
   356	000357'	262 17 0 00 006272'		GET	XX#			; pop off temporary stack location
   357	000360'	214 02 0 00 000001 		MOVM	2,1			; get absolute value
   358	000361'	201 04 0 00 000001 		MOVEI	4,1			; digit count
   359	000362'	231 02 0 00 000012 	.PNTP0:	IDIVI	2,^D10			; divide by 10
   360	000363'	322 02 0 00 000366'		JUMPE	2,.PNTP1		; remainder? no - go print
   361	000364'	350 00 0 00 000004 		AOS	4			; yes - increment character count
   362	000365'	254 00 0 00 000362'		JRST	.PNTP0			;   and keep looping
   363	000366'	200 05 0 00 003743'	.PNTP1:	MOVE	5,[TMSG	<.>]
   364	000367'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   365	000370'	370 00 0 00 000002 		SOS	2			; allow for initial space
   366	000371'	317 02 0 00 000004 		CAMG	2,4			; overflow?
   367						GO	[IDIVI	1,^D1000	; yes - divide by 1000
   368							 SUBI	4,3
   369							 MOVE	5,[TMSG <.K>]
   370	000372'	260 17 0 00 003731'			 RTN]
   371	000373'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   372	000374'	370 00 0 00 000002 		SOS	2			; allow for initial space
   373	000375'	317 02 0 00 000004 		CAMG	2,4			; overflow?
   374						GO	[IDIVI	1,^D1000	; yes - divide by 1000
   375							 SUBI	4,3
   376							 MOVE	5,[TMSG <.M>]
   377	000376'	260 17 0 00 003737'			 RTN]
   378	000377'	135 02 0 00 003652'		LDB	2,[POINT 4,$SVUUO,12]	; get AC field
   379	000400'	370 00 0 00 000002 		SOS	2			; allow for initial space
   380	000401'	274 02 0 00 000004 		SUB	2,4			; calculate number of spaces to print
   381	000402'	335 00 0 00 000001 		SKIPGE	1			; number is actually negative?
   382	000403'	370 00 0 00 000002 		SOS	2			; yes - allow for minus sign
   383	000404'	333 00 0 00 000002 		SKIPLE	2			; number of spaces still 1..n?
   384	000405'	256 00 0 02 000163'		XCT	SPATAB(2)		; yes - print leading spaces
   385	000406'	200 00 0 00 000001 		MOVE	1			; get number
   386	000407'	037 15 0 00 000000 		PNTDEC				; print it
   387	000410'	256 00 0 00 000005 		XCT	5			; print trailer
   388	000411'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,5,4,3,2,1,0)
   389
   390	000421'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 11
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0776

   391
   392					;#********************************************************************
   393					;* PPDEC - Print decimal number in a field of size x.
   394					;
   395					; Call is:  PDEC X,ADR
   396					;#********************************************************************
   397
   398	000422'	261 17 0 00 000000 	PPDEC:	RPUT	(0,1,$SVUUO,$SVUPC)	; save ACs
   399
   400	000426'	200 00 1 00 030113 		MOVE	@$SVUUO			; get number to print
   401	000427'	135 01 0 00 003652'		LDB	1,[POINT 4,$SVUUO,12]	; get size field
   402	000430'	322 00 0 00 000441'		JUMPE	PDECSS			; special print
   403	000431'	250 01 0 00 030264 	PDEC0:	EXCH	1,RADLSC		; put in position
   404	000432'	037 16 0 00 000000 		PNTDS				; no - print the number
   405	000433'	202 01 0 00 030264 		MOVEM	1,RADLSC		; restore old field size
   406	000434'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,1,0)	; restore ACs
   407
   408	000440'	263 17 0 00 000000 		RTN				; exit
   409
   410	000441'	322 01 0 00 000431'	PDECSS:	JUMPE	1,PDEC0			; make sure length field is specified
   411						XCT	[TMSG	<0>		; print a bunch of spaces
   412							 TMSG	<0>
   413							 TMSG	< 0>
   414							 TMSG	<  0>
   415							 TMSG	<   0>
   416							 TMSG	<    0>
   417							 TMSG	<     0>
   418							 TMSG	<      0>
   419							 TMSG	<       0>
   420							 TMSG	<        0>
   421							 TMSG	<         0>
   422							 TMSG	<          0>
   423							 TMSG	<           0>
   424							 TMSG	<            0>
   425							 TMSG	<             0>
   426	000442'	256 00 0 01 004005'			 TMSG	<              0>](1)
   427	000443'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,1,0)	; restore ACs
   428
   429	000447'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 12
DFNIAU	MAC	 6-Aug-83 09:31		Printout/Typin Routines                                                            SEQ 0777

   430
   431					;#********************************************************************
   432					;* PPDECF - Force print decimal number in a field of size x.
   433					;
   434					; Call is:  PDECF X,ADR
   435					;#********************************************************************
   436
   437	000450'	261 17 0 00 000000 	PPDECF:	RPUT	(0,1,$SVUUO,$SVUPC)	; save ACs
   438
   439	000454'	200 00 1 00 030113 		MOVE	@$SVUUO			; get number to print
   440	000455'	135 01 0 00 003652'		LDB	1,[POINT 4,$SVUUO,12]	; get size field
   441	000456'	322 00 0 00 000467'		JUMPE	PDECFS			; special print
   442	000457'	250 01 0 00 030264 	PDECF0:	EXCH	1,RADLSC		; put in position
   443	000460'	037 16 0 00 000001 		PNTDSF				; no - print the number
   444	000461'	202 01 0 00 030264 		MOVEM	1,RADLSC		; restore old field size
   445	000462'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,1,0)	; restore ACs
   446
   447	000466'	263 17 0 00 000000 		RTN				; exit
   448
   449	000467'	322 01 0 00 000457'	PDECFS:	JUMPE	1,PDECF0		; make sure length field is specified
   450						XCT	[FMSG	<0>		; print a bunch of spaces
   451							 FMSG	<0>
   452							 FMSG	< 0>
   453							 FMSG	<  0>
   454							 FMSG	<   0>
   455							 FMSG	<    0>
   456							 FMSG	<     0>
   457							 FMSG	<      0>
   458							 FMSG	<       0>
   459							 FMSG	<        0>
   460							 FMSG	<         0>
   461							 FMSG	<          0>
   462							 FMSG	<           0>
   463							 FMSG	<            0>
   464							 FMSG	<             0>
   465	000470'	256 00 0 01 004025'			 FMSG	<              0>](1)
   466	000471'	262 17 0 00 030114 		RGET	($SVUPC,$SVUUO,1,0)	; restore ACs
   467
   468	000475'	263 17 0 00 000000 		RTN				; exit
   469
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 13
DFNIAU	MAC	 6-Aug-83 09:31		Clock Handling Routines                                                            SEQ 0778

   470						SUBTTL	Clock Handling Routines
   471
   472					;#********************************************************************
   473					;* STCLOK - Initialize program runtime clock
   474					;
   475					; This routine initializes the clock for the program.  It is used in
   476					; conjunction with routine "RUNTME". 
   477					;
   478					;   In exec mode this routine resets, restarts and  reads  the current
   479					; microsecond time clock into  memory  for  reference  by  the runtime
   480					; calculator "RUNTME".  The clock is set up so  it  causes  a hardware
   481					; interrupt, it merely free runs.
   482					;
   483					;   In user mode the program run time is obtained in milliseconds with
   484					; a  monitor  call, converted  to  microseconds  and stored for future
   485					; reference by the runtime calculator "RUNTME".
   486					;
   487					;   This routine may be called anytime to reset the program runtime.
   488					;
   489					;   Call Sequence:	GO  STCLOK	; calls the routine
   490					;			RTN-1		; always returns +1
   491					;#********************************************************************
   492
   493	000476'	261 17 0 00 000000 	STCLOK:	RPUT	(0,1)			; save AC's
   494
   495	000500'	332 00 0 00 030037 		SKIPE	USER			; in user mode?
   496	000501'	254 00 0 00 000510'		JRST	STCU			; yes 
   497	000502'	7 024 20 0 00 420000 		CONO	24,1B18!1B22		; stop and reset the clock
   498	000503'	402 00 0 00 000510 		SETZM	510			; clear EPT locations
   499	000504'	402 00 0 00 000511 		SETZM	511			;   for timer data
   500	000505'	7 024 20 0 00 002000 		CONO	24,1B25			; turns the meter on
   501	000506'	7 020 04 0 00 000517'		DATAI	20,TMRST1		; save a double word
   502	000507'	254 00 0 00 000514'		JRST	STCX			; done - exit
   503	000510'	476 00 0 00 006261'	STCU:	SETOM	INITM#			; invalidate initial time
   504	000511'	260 17 0 00 000521'		GO	MONTIM			; get monitor time in microseconds
   505	000512'	255 00 0 00 000000 		JFCL				;   in meter format
   506	000513'	124 01 0 00 000517'		DMOVEM	1,TMRST1		; save a double word
   507	000514'	262 17 0 00 000001 	STCX:	RGET	(1,0)			; restore
   508
   509	000516'	263 17 0 00 000000 		RTN				; exit
   510
   511	000517'				TMRST1:	BLOCK	2			; 2 word initial time storage
   512
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 14
DFNIAU	MAC	 6-Aug-83 09:31		Clock Handling Routines                                                            SEQ 0779

   513
   514					;#********************************************************************
   515					;* MONTIM - Read program runtime from monitor
   516					;
   517					;    Here is a subroutine called by both STCLOK and RUNTME.  It reads
   518					; current program  runtime in milliseconds from the monitor, converts
   519					; the time to microseconds and positions the microsecond count in AC2
   520					; and AC1 in the same 59 bit format you get when you read  the  meter
   521					; board microsecond clock.  The microsecond count is then returned in
   522					; AC1 and AC2 .....
   523					;
   524					; Call:  GO	MONTIM		; call the routine
   525					;	 RTN+1			; microsecond time in AC1 and AC2
   526					;#********************************************************************
   527
   528	000521'	261 17 0 00 000003 	MONTIM:	PUT	3			; save AC3 (RUNTM JSYS destroys it)
   529	000522'	332 00 0 00 030516 		SKIPE	MONTYP			; TOPS10?
   530	000523'	254 00 0 00 000530'		JRST	MONTI0			; no - continue
   531	000524'	047 01 0 00 000022 		CALLI	1,22			; yes - get current time in jiffies
   532	000525'	400 02 0 00 000000 		SETZ	2,
   533	000526'	225 01 0 00 040433 		MULI	1,^D16667
   534	000527'	254 00 0 00 000533'		JRST	MONTI1
   535	000530'	201 01 0 00 400000 	MONTI0:	MOVEI	1,.FHSLF		; get process handle
   536	000531'	104 00 0 00 000014 		TIME				; does a TIME JSYS
   537	000532'	320 17 0 00 003716'		ERCAL	[RTN]			; error not likely
   538	000533'	335 00 0 00 006261'	MONTI1:	SKIPGE	INITM#			; initial time valid?
   539	000534'	202 01 0 00 006261'		MOVEM	1,INITM#		; no - set it up
   540	000535'	274 01 0 00 006261'		SUB	1,INITM#		; subtract initial time
   541	000536'	400 02 0 00 000000 		SETZ	2,			; clear AC2
   542	000537'	225 01 0 00 001750 		MULI	1,^D1000		; converts ms to us
   543	000540'	244 01 0 00 000014 		ASHC	1,^D12			; put data in proper microsecond format
   544	000541'	262 17 0 00 000003 		GET	3			; restore AC3
   545	000542'	263 17 0 00 000000 		RTN				;   and exit
   546
   547
   548					;#********************************************************************
   549					;* PTIME - Print time of day
   550					;#********************************************************************
   551
   552	000543'	261 17 0 00 000003 	PTIME:	PUT	3			; save AC3
   553	000544'	200 03 0 00 004045'		MOVE	3,[JFCL]		; non-zero for RUNTME
   554	000545'	402 00 0 00 006255'		SETZM	FORPNT#			; clear forced print flag
   555	000546'	260 17 0 00 000557'		GO	RUNTME			; go print out time
   556	000547'	262 17 0 00 000003 		GET	3			; restore AC3
   557	000550'	263 17 0 00 000000 		RTN				; return
   558
   559	000551'	261 17 0 00 000003 	PTIMEF:	PUT	3			; save AC3
   560	000552'	200 03 0 00 004045'		MOVE	3,[JFCL]		; non-zero for RUNTME
   561	000553'	476 00 0 00 006255'		SETOM	FORPNT			; set forced print flag
   562	000554'	260 17 0 00 000557'		GO	RUNTME			; go print out time
   563	000555'	262 17 0 00 000003 		GET	3			; restore AC3
   564	000556'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 15
DFNIAU	MAC	 6-Aug-83 09:31		Clock Handling Routines                                                            SEQ 0780

   565
   566					;#********************************************************************
   567					;* RUNTME - Calculate and print program runtime
   568					;
   569					;    This reports the elapsed time (exec  or  user  mode) since the last
   570					; call to the initialize routine "STCLOK". The runtime is printed on the
   571					; current line and no line feed is  printed  at  the end of the message.
   572					; It is printed as  " 1h 20m 48s"
   573					;
   574					;    In exec mode the time is calculated by using the microsecond  clock
   575					; that was initialized in the call to "STCLOK".  In user mode, "RUNTIME"
   576					; monitor calls are used and the difference  is calculated from the last
   577					; call to "STCLOK".
   578					;
   579					;    Arguments:  AC3 - contains message to print - if zero then the time
   580					; is  only  calculated  and  the  routine returns (in TMSG format).  The
   581					; current time is always placed in CURTIM (in seconds).
   582					;
   583					;    Call sequence: 	GO  RUNTME	; call the routine
   584					;			RTN+1		; always returns +1
   585					;#********************************************************************
   586
   587	000557'	261 17 0 00 000000 	RUNTME:	RPUT	(0,1,2,3)		; save AC's
   588
   589
   590					; Get the microsecond count
   591
   592	000563'	332 00 0 00 030037 		SKIPE	USER			; in user mode?
   593	000564'	254 00 0 00 000567'		JRST	RUNTM0			; yes
   594	000565'	7 020 04 0 00 000647'		DATAI	20,TMRUN1		; exec mode. get dble word time
   595	000566'	254 00 0 00 000571'		JRST	RUNTM1			; go to common code
   596	000567'	260 17 0 00 000521'	RUNTM0:	GO	MONTIM			; get time from mon calls to AC1,AC2
   597	000570'	124 01 0 00 000647'		DMOVEM	1,TMRUN1		; save microsecond count in double word
   598
   599					; Calculate time
   600
   601	000571'	120 00 0 00 000647'	RUNTM1:	DMOVE	TMRUN1			; get current run time
   602	000572'	115 00 0 00 000517'		DSUB	TMRST1			; calculates actual run time
   603	000573'	244 00 0 00 777764 		ASHC	-^D12			; right justify
   604	000574'	234 00 0 00 004046'		DIV	[^D1000]		; convert us to ms
   605	000575'	202 00 0 00 000653'		MOVEM	DEBTIM			; save in debug time location
   606	000576'	202 01 0 00 000654'		MOVEM	1,USTIM			; save microseconds also
   607	000577'	230 00 0 00 004046'		IDIV	[^D1000]		; convert ms to seconds
   608	000600'	202 00 0 00 000651'		MOVEM	CURTIM			; save in current time location
   609
   610					; Exit if not printing
   611
   612	000601'	336 00 0 00 000003 		SKIPN	3			; message to print?
   613						JRST	[RGET	(3,2,1,0)	; no - restore AC's and
   614	000602'	254 00 0 00 004047'			 RTN]			;   return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 16
DFNIAU	MAC	 6-Aug-83 09:31		Clock Handling Routines                                                            SEQ 0781

   615
   616					; Print the time
   617
   618	000603'	256 00 0 00 000003 		XCT	3			; print the message
   619	000604'	231 00 0 00 000074 		IDIVI	^D60			; compute minutes, seconds
   620	000605'	202 01 0 00 000003 		MOVEM	1,3			; save seconds
   621	000606'	231 00 0 00 000074 		IDIVI	^D60			; compute hours, minutes
   622	000607'	322 00 0 00 000620'		JUMPE	RUNTM2			; print hours if not zero
   623
   624					; Print hours
   625
   626	000610'	332 00 0 00 006255'		SKIPE	FORPNT			; forced print?
   627	000611'	037 15 0 00 000001 		PNTDCF				; yes - print hours
   628	000612'	336 00 0 00 006255'		SKIPN	FORPNT			; forced print?
   629	000613'	037 15 0 00 000000 		PNTDEC				; no - print hours
   630
   631	000614'	332 00 0 00 006255'		SKIPE	FORPNT			; forced print?
   632	000615'	037 01 0 00 004054'		FMSG	<h >			; yes
   633	000616'	336 00 0 00 006255'		SKIPN	FORPNT			; forced print?
   634	000617'	037 00 0 00 004054'		TMSG	<h >			; no
   635
   636					; Print minutes
   637
   638	000620'	200 00 0 00 000001 	RUNTM2:	MOVE	1
   639	000621'	332 00 0 00 006255'		SKIPE	FORPNT			; forced print?
   640	000622'	037 15 0 00 000001 		PNTDCF				; yes - print minutes
   641	000623'	336 00 0 00 006255'		SKIPN	FORPNT			; forced print?
   642	000624'	037 15 0 00 000000 		PNTDEC				; no - print minutes
   643	000625'	332 00 0 00 006255'		SKIPE	FORPNT			; forced print?
   644	000626'	037 01 0 00 004055'		FMSG	<m >			; yes
   645	000627'	336 00 0 00 006255'		SKIPN	FORPNT			; forced print?
   646	000630'	037 00 0 00 004055'		TMSG	<m >			; no
   647
   648					; Print seconds
   649
   650	000631'	200 00 0 00 000003 		MOVE	3
   651	000632'	332 00 0 00 006255'		SKIPE	FORPNT			; forced print?
   652	000633'	037 15 0 00 000001 		PNTDCF				; yes - print seconds
   653	000634'	336 00 0 00 006255'		SKIPN	FORPNT			; forced print?
   654	000635'	037 15 0 00 000000 		PNTDEC				; no - print seconds
   655	000636'	332 00 0 00 006255'		SKIPE	FORPNT			; forced print?
   656	000637'	037 01 0 00 004056'		FMSG	<s >
   657	000640'	336 00 0 00 006255'		SKIPN	FORPNT			; forced print?
   658	000641'	037 00 0 00 004057'		TMSG	<s>
   659
   660	000642'	262 17 0 00 000003 	RUNTMX:	RGET	(3,2,1,0)		; restore AC's
   661
   662	000646'	263 17 0 00 000000 		RTN				;   and exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 17
DFNIAU	MAC	 6-Aug-83 09:31		Clock Handling Routines                                                            SEQ 0782

   663
   664					; Timer routine storage
   665
   666	000647'				TMRUN1:	BLOCK	2			; microsecond runtime saved here...
   667
   668	000651'	000000	000000		CURTIM:	0				; current time in seconds
   669	000652'	000000	000000		MAXTIM:	0				; maximum wait time
   670	000653'	000000	000000		DEBTIM:	0				; current time in milliseconds
   671	000654'	000000	000000		USTIM:	0				; current usecs (additional to DEBTIM)
   672
   673
   674					;#********************************************************************
   675					;* PSTAMP - Check for an 'S' typed.
   676					;#********************************************************************
   677
   678	000655'	261 17 0 00 000000 	PSTAMP:	RPUT	(0,1,2,3,4)		; save AC's
   679
   680	000662'	200 00 0 00 006262'		MOVE	LCHAR#			; get last character typed
   681	000663'	306 00 0 00 000123 		CAIN	123			; was it an upper case-s?
   682	000664'	254 00 0 00 000671'		JRST	PSTAM0			; yes - print current statistics
   683	000665'	306 00 0 00 000163 		CAIN	163			; lower case-s?
   684	000666'	254 00 0 00 000671'		JRST	PSTAM0			; yes - print current statistics
   685	000667'	302 00 0 00 000023 		CAIE	023			; control-s?
   686	000670'	254 00 0 00 000707'		JRST	PSTAMX			; no - exit
   687
   688					; Print runtime data
   689
   690	000671'	037 01 0 00 004060'	PSTAM0:	FMSGC	<** Test >
   691	000672'	200 00 0 00 000000*		MOVE	TSTNUM			; get test number
   692	000673'	037 17 0 00 000003 		PNTOCF				; print it
   693	000674'	200 00 0 00 000000*		MOVE	TSTSUB			; get subtest number
   694	000675'	322 00 0 00 000700'		JUMPE	.+3			; zero?  yes - continue
   695	000676'	037 01 0 00 003641'		FMSG	<->			; no - print it
   696	000677'	037 17 0 00 000003 		PNTOCF
   697	000700'	037 01 0 00 004063'		FMSG	< at >
   698	000701'	260 17 0 00 000551'		GO	PTIMEF			; print current time
   699	000702'	037 01 0 00 004064'		FMSG	< in Pass >
   700	000703'	200 00 0 00 000000*		MOVE	TSTREP			; get pass count
   701	000704'	350 00 0 00 000000 		AOS
   702	000705'	037 15 0 00 000001 		PNTDCF				; print it
   703	000706'	037 01 0 00 004066'		FMSGD	<. **>
   704
   705	000707'	402 00 0 00 006262'	PSTAMX:	SETZM	LCHAR			; clear last character typed location
   706	000710'	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
   707
   708	000715'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 18
DFNIAU	MAC	 6-Aug-83 09:31		Clock Handling Routines                                                            SEQ 0783

   709
   710					;#********************************************************************
   711					;* .DELAY - Delay a specified amount of time (in milliseconds)
   712					;#********************************************************************
   713
   714	000716'	261 17 0 00 000000 	.DELAY:	RPUT	(0,1,2,3,$SVUUO,$SVUPC)	; save AC's ...
   715
   716	000724'	332 00 0 00 030037 		SKIPE	USER			; user mode?
   717	000725'	254 00 0 00 000740'		JRST	.DELA1			; yes - go handle
   718
   719					; Exec mode - inspect timers
   720
   721	000726'	135 00 0 00 003651'		LDB	[POINT 23,$SVUUO,35] 	; get address (millisecond count)
   722	000727'	400 03 0 00 000000 		SETZ	3,			; set up so RUNTME doesn't print time
   723	000730'	260 17 0 00 000557'		GO	RUNTME			; get initial time
   724	000731'	200 02 0 00 000653'		MOVE	2,DEBTIM		; get time in msecs
   725	000732'	272 00 0 00 000002 		ADDM	2			; add in the time to delay
   726	000733'	400 03 0 00 000000 	.DELA0:	SETZ	3,			; set up so RUNTME doesn't print time
   727	000734'	260 17 0 00 000557'		GO	RUNTME			; get time
   728	000735'	313 02 0 00 000653'		CAMLE	2,DEBTIM		; done?
   729	000736'	254 00 0 00 000733'		JRST	.DELA0			; no - keep checking time
   730	000737'	254 00 0 00 000742'		JRST	.DELAX			; yes - exit
   731
   732					; User mode - use DISMS JSYS
   733
   734	000740'	135 01 0 00 003651'	.DELA1:	LDB	1,[POINT 23,$SVUUO,35] 	; get address (millisecond count)
   735	000741'	104 00 0 00 000167 		DISMS				; wait
   736
   737					; Exit
   738
   739	000742'	262 17 0 00 030114 	.DELAX:	RGET	($SVUPC,$SVUUO,3,2,1,0)	; restore AC's ...
   740
   741	000750'	263 17 0 00 000000 		RTN				; exit
   742
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 19
DFNIAU	MAC	 6-Aug-83 09:31		TOPS10/20 Related Routines                                                         SEQ 0784

   743						SUBTTL	TOPS10/20 Related Routines
   744
   745					;#********************************************************************
   746					;* .RESET - Subroutine to issue a RESET JSYS/UUO
   747					;
   748					;   In exec mode it does nothing. In user mode it issues the appropriate
   749					; RESET UUO/JSYS that may be desirable at the start or end of a program.
   750					;#********************************************************************
   751
   752	000751'	336 00 0 00 030037 	.RESET:	SKIPN	USER			; user mode?
   753	000752'	263 17 0 00 000000 		RTN				; no - exit
   754	000753'	336 00 0 00 030516 		SKIPN	MONTYP			; TOPS20? (non-zero)
   755	000754'	254 00 0 00 000760'		JRST	RST10			; no - TOPS10
   756	000755'	104 00 0 00 000147 		RESET				; do a RESET
   757	000756'	320 17 0 00 003716'		ERCAL	[RTN]			; error rtn
   758	000757'	254 00 0 00 000762'		JRST	RSTX			; to exit code
   759	000760'	047000	000000		RST10:	047000,,000000			; RESET UUO, CALLI AC,0 ...
   760	000761'	255 00 0 00 000000 		JFCL				; error rtn
   761	000762'	263 17 0 00 000000 	RSTX:	RTN				; exit
   762
   763
   764					;#********************************************************************
   765					;* .CLOSE - Subroutine to close opened files
   766					;
   767					;   This  does  nothing in exec mode.  In  user mode under TOPS10 and
   768					; TOPS20 it takes the necessary steps to close  the output file which
   769					; is necessary if  you've been outputting to a disk  file and wish to
   770					; leave the program ....
   771					;
   772					;   Note *** Once you do a close from a Ctrl-C intercept the PNT File
   773					; gets closed correctly but if you continue, the SUBRTN PKG creates a
   774					; new PNT File and you lose the old one.
   775					;#********************************************************************
   776
   777	000763'	336 00 0 00 030037 	.CLOSE:	SKIPN	USER			; skip if we're in user mode
   778	000764'	263 17 0 00 000000 		RTN				; exec mode
   779	000765'	037 05 0 00 000002 		DROPDV				; SUBRTN PKG UUO or it won't work ok
   780	000766'	261 17 0 00 000001 		PUT	1			; save AC
   781	000767'	336 00 0 00 030516 		SKIPN	MONTYP			; TOPS10?
   782	000770'	254 00 0 00 000775'		JRST	CLS10			; yes - go handle 
   783	000771'	201 01 0 00 400000 		MOVEI	1,.FHSLF		; no - get fork handle
   784	000772'	104 00 0 00 000034 		CLZFF				; close all files JSYS ..
   785	000773'	320 17 0 00 003716'		ERCAL	[RTN]			; error return
   786	000774'	254 00 0 00 000777'		JRST	CLSX			; exit
   787	000775'	070000	000000		CLS10:	070000,,000000			; CLOSE D,0 UUO ... closes files
   788	000776'	255 00 0 00 000000 		JFCL
   789	000777'	262 17 0 00 000001 	CLSX:	GET	1			; restore AC
   790	001000'	263 17 0 00 000000 		RTN				;  and exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 20
DFNIAU	MAC	 6-Aug-83 09:31		TOPS10/20 Related Routines                                                         SEQ 0785

   791
   792					;#********************************************************************
   793					;* .EXIT - Subroutine to exit job in user mode
   794					;
   795					; In exec mode it does nothing.  In user mode it issues the appropriate
   796					; EXIT UUO or HALTF JSYS getting you back to monitor level.   This also
   797					; allows you to continue with a continue command.
   798					;
   799					; Call	seq:
   800					;	GO	.EXIT		; the call
   801					;	RTN1			; rtn+1 always
   802					;#********************************************************************
   803
   804	001001'	336 00 0 00 030037 	.EXIT:	SKIPN	USER		; user mode?
   805	001002'	263 17 0 00 000000 		RTN			; no - exec mode - exit
   806
   807	001003'	261 17 0 00 000001 		PUT	1		; save AC1
   808	001004'	336 00 0 00 030516 		SKIPN	MONTYP		; TOPS20?
   809	001005'	254 00 0 00 001012'		JRST	EXT10		; no - TOPS10
   810
   811	001006'	201 01 0 00 400000 		MOVEI	1,.FHSLF	; get fork handle
   812	001007'	104 00 0 00 000170 		HALTF			; halt... to monitor level
   813	001010'	255 00 0 00 000000 		JFCL			; here on a continue command
   814	001011'	254 00 0 00 001014'		JRST	EXTX		; to exit code
   815
   816	001012'	047040	000012		EXT10:	047040,,000012		; EXIT 1,  UUO  (CALLI  12 F=1)
   817	001013'	255 00 0 00 000000 		JFCL			; here on a continue command
   818
   819	001014'	262 17 0 00 000001 	EXTX:	GET	1		; restore the AC
   820	001015'	263 17 0 00 000000 		RTN			; exit
   821
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 21
DFNIAU	MAC	 6-Aug-83 09:31		File Handling Routines                                                             SEQ 0786

   822						SUBTTL	File Handling Routines
   823
   824					;#*********************************************************************
   825					;* CHRIN - Routine to read an ASCII character from the selected file.
   826					;#*********************************************************************
   827
   828	001016'	037 06 0 00 000004 	CHRIN:	FREAD				; tell DIAMON to get a file character
   829	001017'	263 17 0 00 000000 		RTN				; error or eof detected during reading
   830	001020'	322 00 0 00 001016'		JUMPE	CHRIN			; eat all null characters
   831	001021'	350 00 0 17 000000 		AOS	(P)			; normal exit +2
   832	001022'	263 17 0 00 000000 		RTN
   833
   834
   835					;#*********************************************************************
   836					;* CHRINS - Routine to read an ASCII character from the selected file.
   837					;#*********************************************************************
   838
   839	001023'	261 17 0 00 000000 	CHRINS:	PUT	0			; save AC0
   840	001024'	037 06 0 00 000004 		FREAD				; get a file character
   841	001025'	254 00 0 00 001035'		JRST	CHRINX			; error or eof detected during reading
   842	001026'	322 00 0 00 001024'		JUMPE	.-2			; eat all null characters
   843	001027'	350 00 0 17 777777 		AOS	-1(P)			; normal exit +2
   844	001030'	202 00 0 17 000000 		MOVEM	(P)			; put character on stack
   845	001031'	332 00 0 00 000000*		SKIPE	FINECH			; echo flag set?
   846	001032'	037 12 0 00 000001 		PNTCHF				; yes - echo the character
   847	001033'	262 17 0 00 000000 		GET	0			; restore AC0
   848	001034'	263 17 0 00 000000 		RTN
   849
   850	001035'	037 01 0 00 004070'	CHRINX:	FMSGC	<[End of >		; end of file
   851	001036'	200 00 0 00 000000*		MOVE	TAKFIL			; print file name
   852	001037'	037 01 0 00 000002 		PNTSXF
   853	001040'	037 01 0 00 000056 		PNTCIF	"."
   854	001041'	200 00 0 00 000000#		MOVE	TAKFIL+1
   855	001042'	037 01 0 00 000002 		PNTSXF
   856	001043'	037 01 0 00 004073'		FMSGD	<]>
   857	001044'	402 00 0 00 000000*		SETZM	FINPUT			; clear 'file input' flag
   858	001045'	262 17 0 00 000000 		GET	0			; restore AC0
   859	001046'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 22
DFNIAU	MAC	 6-Aug-83 09:31		File Handling Routines                                                             SEQ 0787

   860
   861					;#********************************************************************
   862					;* FGETW - Get microword entry from file
   863					;
   864					; Arguments:  None (but file is already open and ready for use)
   865					;
   866					; Function:   Read a file entry consisting of '[ADDR]=Microword Data'
   867					;
   868					; Returns:    +1 - Error/EOF occurred
   869					;             +2 - OK - Address is in CADDR
   870					;			Microword is in CWORDL,CWORDR
   871					;#********************************************************************
   872
   873	001047'	261 17 0 00 000000 	FGETW:	RPUT	(0,1,2)			; save AC's
   874
   875	001052'	402 00 0 00 000000*		SETZM	CADDR			; clear address
   876	001053'	402 00 0 00 000000*		SETZM	CWORDL			; clear left half
   877	001054'	402 00 0 00 000000*		SETZM	CWORDR			; clear right half
   878	001055'	260 17 0 00 001114'		GO	FGETA			; get load address
   879	001056'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   880	001057'	202 01 0 00 001052*		MOVEM	1,CADDR			; save address
   881	001060'	260 17 0 00 001016'		GO	CHRIN			; search for the = sign
   882	001061'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   883	001062'	302 00 0 00 000075 		CAIE	"="			; equal sign?
   884	001063'	254 00 0 00 001060'		JRST	.-3			; keep looking
   885	001064'	260 17 0 00 001136'		GO	FGETD			; get a 4 digit number
   886	001065'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   887	001066'	137 01 0 00 004074'		DPB	1,[POINT 12,CWORDL,17]	; save it
   888	001067'	260 17 0 00 001136'		GO	FGETD			; get a 4 digit number
   889	001070'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   890	001071'	137 01 0 00 004075'		DPB	1,[POINT 12,CWORDL,29]	; save it
   891	001072'	260 17 0 00 001136'		GO	FGETD			; get a 4 digit number
   892	001073'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   893	001074'	246 01 0 00 777772 		LSHC	1,-^D6			; right shift 6 bits
   894	001075'	137 01 0 00 004076'		DPB	1,[POINT 6,CWORDL,35]	; save 4 of the bits
   895	001076'	400 01 0 00 000000 		SETZ	1,			; clear AC1
   896	001077'	246 01 0 00 000006 		LSHC	1,^D6			; left shift 6 bits
   897	001100'	137 01 0 00 004077'		DPB	1,[POINT 6,CWORDR,11]	; save remaining 6 bits
   898	001101'	260 17 0 00 001136'		GO	FGETD			; get a 4 digit number
   899	001102'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   900	001103'	137 01 0 00 004100'		DPB	1,[POINT 12,CWORDR,23]	; save it
   901	001104'	260 17 0 00 001136'		GO	FGETD			; get a 4 digit number
   902	001105'	254 00 0 00 001110'		 JRST	FGETWE			; error/EOF occurred
   903	001106'	137 01 0 00 004101'		DPB	1,[POINT 12,CWORDR,35]	; save it
   904	001107'	350 00 0 17 777775 		AOS	-3(P)			; done - set up RTN+2
   905	001110'	262 17 0 00 000002 	FGETWE:	RGET	(2,1,0)			; restore AC's
   906
   907	001113'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 23
DFNIAU	MAC	 6-Aug-83 09:31		File Handling Routines                                                             SEQ 0788

   908
   909					;#********************************************************************
   910					;* FGETA - Obtain microcode load address 'ADDR:' from file
   911					;
   912					; Returns:    +1 - Error/EOF occurred
   913					;             +2 - OK - AC1 contains octal address
   914					;#********************************************************************
   915
   916	001114'	261 17 0 00 000000 	FGETA:	PUT	0			; save AC0
   917	001115'	260 17 0 00 001016'	FGETA0:	GO	CHRIN			; get a character
   918	001116'	254 00 0 00 001126'		 JRST	FGETAE			; exit - error or EOF occurred
   919	001117'	306 00 0 00 000073 		CAIN	";"			; comment character?
   920	001120'	260 17 0 00 001130'		GO	FSKIPC			; yes - go skip it
   921	001121'	302 00 0 00 000133 		CAIE	"["			; found beginning of address?
   922	001122'	254 00 0 00 001115'		JRST	FGETA0			; no - keep looking
   923	001123'	260 17 0 00 001136'		GO	FGETD			; get up to 4 digit # ended by CR or ]
   924	001124'	254 00 0 00 001126'		 JRST	FGETAE			; exit - error or EOF occurred
   925	001125'	350 00 0 17 777777 		AOS	-1(P)
   926	001126'	262 17 0 00 000000 	FGETAE:	GET	0			; restore AC0
   927	001127'	263 17 0 00 000000 		RTN				; return
   928
   929	001130'	260 17 0 00 001016'	FSKIPC:	GO	CHRIN			; get a character
   930	001131'	254 00 0 00 001126'		 JRST	FGETAE			; exit - error or EOF occurred
   931	001132'	302 00 0 00 000015 		CAIE	15			; CRLF yet?
   932	001133'	306 00 0 00 000012 		CAIN	12
   933	001134'	263 17 0 00 000000 		RTN				; yes - return
   934	001135'	254 00 0 00 001130'		JRST	FSKIPC			; no - keep looking for it
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 24
DFNIAU	MAC	 6-Aug-83 09:31		File Handling Routines                                                             SEQ 0789

   935
   936					;#********************************************************************
   937					;* FGETD - Obtain microcode data entry from file (4 digits).
   938					;
   939					; Returns:    +1 - Error/EOF occurred
   940					;             +2 - OK - AC1 contains octal data
   941					;#********************************************************************
   942
   943	001136'	261 17 0 00 000000 	FGETD:	RPUT	(0,2)			; save AC's
   944
   945	001140'	400 01 0 00 000000 		SETZ	1,			; clear result
   946	001141'	201 02 0 00 000004 		MOVEI	2,4			; up to 4 digits
   947	001142'	260 17 0 00 001016'	FGETD0:	GO	CHRIN			; get a digit
   948	001143'	254 00 0 00 001160'		 JRST	FGETDE			; error - exit
   949	001144'	306 00 0 00 000015 		CAIN	15			; carriage return?
   950	001145'	254 00 0 00 001157'		JRST	FGETD1			; yes - done - exit
   951	001146'	306 00 0 00 000135 		CAIN	"]"			; end of address field?
   952	001147'	254 00 0 00 001157'		JRST	FGETD1			; yes - done - exit
   953	001150'	301 00 0 00 000060 		CAIL	60			; is character between
   954	001151'	303 00 0 00 000067 		CAILE	67			;   0 and 7?
   955	001152'	254 00 0 00 001160'		JRST	FGETDE			; no - error - exit
   956	001153'	275 00 0 00 000060 		SUBI	60			; normalize to 0-7
   957	001154'	242 01 0 00 000003 		LSH	1,3			; multiply result so far by 8
   958	001155'	272 00 0 00 000001 		ADDM	1			; add current digit
   959	001156'	367 02 0 00 001142'		SOJG	2,FGETD0		; loop till done
   960	001157'	350 00 0 17 777776 	FGETD1:	AOS	-2(P)			; ok - set up RTN+2
   961	001160'	262 17 0 00 000002 	FGETDE:	RGET	(2,0)			; restore AC's
   962
   963	001162'	263 17 0 00 000000 		RTN				; return
   964
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 25
DFNIAU	MAC	 6-Aug-83 09:31		Data Pattern Generator/Compare Routines                                            SEQ 0790

   965						SUBTTL	Data Pattern Generator/Compare Routines
   966
   967					;#********************************************************************
   968					;* BUFGEN - Generate the specified data pattern in the data buffer.
   969					;* BUFCOM - Compare the data buffer with expected data
   970					;
   971					; Arguments:  AC2 - Length in words
   972					;	      AC3 - Address of buffer
   973					;	      PAT - Data pattern
   974					;	      TFMFLG - Format (0-Compat,1-Hiden)
   975					;
   976					; Returns (BUFCOM):  AC1 - Number of words in error
   977					;#********************************************************************
   978
   979	001163'	402 00 0 00 006271'	BUFCOM:	SETZM	WRDERR			; clear words in error count
   980	001164'	476 00 0 00 006256'		SETOM	GENFLG#			; set to 'compare data'
   981	001165'	476 00 0 00 006257'		SETOM	GENREP#			; set 'report errors' flag
   982	001166'	335 00 0 00 000001 		SKIPGE	1			; report errors?
   983	001167'	402 00 0 00 006257'		SETZM	GENREP			; no - clear 'report errors' flag
   984	001170'	217 00 0 00 000001 		MOVMS	1			; get absolute value
   985	001171'	334 00 0 00 000000 		SKIPA
   986	001172'	402 00 0 00 006256'	BUFGEN:	SETZM	GENFLG			; set to 'generate data'
   987	001173'	202 01 0 00 006260'		MOVEM	1,GENTYP#		; save type of transfer
   988	001174'	322 14 0 00 003716'		JUMPE	PAT,[RTN]		; exit immediately if pat is zero
   989	001175'	261 17 0 00 000000 		RPUT	(0,1,2,3,5,6,7,PAT)	; save some AC's
   990
   991
   992					; Handle buffer length - cannot exceed 256 words
   993
   994	001205'	200 01 0 00 000002 		MOVE	1,2			; get number of full words in buffer
   995	001206'	303 01 0 00 000400 		CAILE	1,^D256			; over 256 words?
   996	001207'	201 01 0 00 000400 		MOVEI	1,^D256			; yes - limit to 256 words
   997	001210'	200 02 0 00 000003 		MOVE	2,3			; get buffer address
   998	001211'	202 02 0 00 006246'		MOVEM	2,ABUFF#		; save buffer address
   999	001212'	213 00 0 00 000001 		MOVNS	1			; generate AOBJN word to sequence
  1000	001213'	506 01 0 00 000002 		HRLM	1,2			;   through the buffer
  1001
  1002					; Now generate/compare the data (for a constant pattern)
  1003					; ------------------------------------------------------
  1004
  1005	001214'	301 14 0 00 000116 		CAIL	PAT,VPATRN		; skip if a constant pattern
  1006	001215'	254 00 0 00 001227'		JRST	BUFG1			; go generate variable pattern
  1007	001216'	200 07 0 14 001333'	BUFG0:	MOVE	7,PATBUF(PAT)		; get pattern
  1008	001217'	336 00 0 00 000000*		SKIPN	TFMFLG			; COMPAT mode?
  1009	001220'	620 07 0 00 000017 		TRZ	7,17			; yes - clear rightmost 4 bits
  1010	001221'	336 00 0 00 006256'		SKIPN	GENFLG			; compare data?
  1011	001222'	202 07 0 02 000000 		MOVEM	7,(2)			; no - put into buffer
  1012	001223'	332 00 0 00 006256'		SKIPE	GENFLG			; compare data?
  1013						GO	[CAME	7,(2)		; yes - compare it
  1014							 GO	DATMES		; error - go handle
  1015	001224'	260 17 0 00 004102'			 RTN]
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 26
DFNIAU	MAC	 6-Aug-83 09:31		Data Pattern Generator/Compare Routines                                            SEQ 0791

  1016
  1017					; Now do next word
  1018
  1019	001225'	253 02 0 00 001216'		AOBJN	2,BUFG0			; loop till done
  1020	001226'	254 00 0 00 001246'		JRST	BUFGX			; all done - exit
  1021
  1022					; Now generate/compare the data (for a variable pattern)
  1023					; ------------------------------------------------------
  1024
  1025					; Generate first word of buffer
  1026
  1027	001227'	201 05 0 00 000005 	BUFG1:	MOVEI	5,5			; current byte count
  1028	001230'	201 06 0 00 000005 		MOVEI	6,5			; set 'half byte' in progress
  1029	001231'	200 07 0 14 001333'		MOVE	7,PATBUF(PAT)		; get pattern pointer word
  1030	001232'	552 07 0 00 006270'		HRRZM	7,VARPAT#		; put adr of 2nd instruction in VARPAT
  1031	001233'	207 00 0 00 000007 		MOVSS	7			; swap address of pointer
  1032	001234'	256 00 0 07 000000 		XCT	(7)			; get first word of pattern
  1033	001235'	334 00 0 00 000000 		SKIPA				; continue
  1034
  1035					; Generate successive words of variable pattern
  1036
  1037	001236'	256 00 1 00 006270'	BUFG2:	XCT	@VARPAT			; generate another word of pattern
  1038	001237'	336 00 0 00 001217*		SKIPN	TFMFLG			; COMPAT mode?
  1039	001240'	620 07 0 00 000017 		TRZ	7,17			; yes - clear rightmost 4 bits
  1040	001241'	336 00 0 00 006256'		SKIPN	GENFLG			; compare data?
  1041	001242'	202 07 0 02 000000 		MOVEM	7,(2)			; no - put into buffer
  1042	001243'	332 00 0 00 006256'		SKIPE	GENFLG			; compare data?
  1043						GO	[CAME	7,(2)		; yes - compare it
  1044							 GO	DATMES		; error - go handle
  1045	001244'	260 17 0 00 004102'			 RTN]
  1046
  1047					; Now do next word
  1048
  1049	001245'	253 02 0 00 001236'		AOBJN	2,BUFG2			; loop till done
  1050
  1051					; All done - exit
  1052
  1053	001246'	336 00 0 00 006256'	BUFGX:	SKIPN	GENFLG			; compare data?
  1054	001247'	254 00 0 00 001262'		JRST	BUFGXZ			; no - exit
  1055	001250'	337 00 0 00 006271'		SKIPG	WRDERR#			; any compare errors?
  1056	001251'	254 00 0 00 001260'		JRST	BUFGXY			; no - return
  1057	001252'	336 00 0 00 006257'		SKIPN	GENREP			; report errors?
  1058	001253'	254 00 0 00 001260'		JRST	BUFGXY			; no - return
  1059	001254'	037 00 0 00 004105'		TMSGC	<Words in error = >
  1060	001255'	200 00 0 00 006271'		MOVE	WRDERR
  1061	001256'	037 15 0 00 000000 		PNTDEC
  1062	001257'	037 00 0 00 003645'		TMSG	<.>
  1063	001260'	200 01 0 00 006271'	BUFGXY:	MOVE	1,WRDERR		; get number of errors
  1064	001261'	202 01 0 17 777774 		MOVEM	1,-4(P)			; save it
  1065	001262'	262 17 0 00 000014 	BUFGXZ:	RGET	(PAT,7,6,5,3,2,1,0)	; restore AC's
  1066
  1067	001272'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 27
DFNIAU	MAC	 6-Aug-83 09:31		Data Pattern Generator/Compare Routines                                            SEQ 0792

  1068
  1069					;#********************************************************************
  1070					;* DATMES - A data comparison error has been found.  Report the error,
  1071					;* printing a maximum of three lines of errors.
  1072					;#********************************************************************
  1073
  1074	001273'	261 17 0 00 000000 	DATMES:	RPUT	(0,1,2,3)		; save AC's
  1075
  1076	001277'	336 00 0 00 006257'		SKIPN	GENREP			; report errors?
  1077	001300'	254 00 0 00 001301'		JRST	DATM0			; no - skip this
  1078	001301'	350 03 0 00 006271'	DATM0:	AOS	3,WRDERR		; increment error count
  1079
  1080					; Now see if should be printed
  1081
  1082	001302'	336 00 0 00 006257'		SKIPN	GENREP			; report errors?
  1083	001303'	254 00 0 00 001326'		JRST	DATMX			; no - exit
  1084	001304'	307 03 0 00 000003 		CAIG	3,3			; already print 3 of them?
  1085	001305'	254 00 0 00 001307'		JRST	DATM1			; no - go print
  1086	001306'	254 00 0 00 001326'		JRST	DATMX			; yes - exit
  1087
  1088					; Now print
  1089
  1090	001307'	302 03 0 00 000001 	DATM1:	CAIE	3,1			; first data error?
  1091	001310'	254 00 0 00 001313'		JRST	.+3			; no - don't print headers ...
  1092	001311'	037 00 0 00 004111'		TMSGC	<Data Compare Error:>
  1093	001312'	037 00 0 00 004116'		TMSGC	<Word   ---Correct---   ---Actual---->
  1094	001313'	550 00 0 02 000001 		HRRZ	1(2)			; get word number, numbered
  1095	001314'	274 00 0 00 006246'		SUB	ABUFF			;   from 1 ...
  1096	001315'	202 00 0 00 006251'		MOVEM	CWORDN#			; save current word number
  1097	001316'	037 00 0 00 030242 		PCRL
  1098	001317'	006 04 0 00 000000 		PDEC	4,0			; print it
  1099	001320'	037 00 0 00 003655'		TMSG	<   >			; print spaces
  1100	001321'	200 00 0 00 000007 		MOVE	7			; get correct data
  1101	001322'	037 13 0 00 000000 		PNTHW				; print it 
  1102	001323'	037 00 0 00 003654'		TMSG	<  >			; print some more spaces
  1103	001324'	200 00 0 02 000000 		MOVE	(2)			; get actual data
  1104	001325'	037 13 0 00 000000 		PNTHW				; print it
  1105
  1106					; Exit
  1107
  1108	001326'	262 17 0 00 000003 	DATMX:	RGET	(3,2,1,0)		; restore AC's
  1109
  1110	001332'	263 17 0 00 000000 		RTN				; return
  1111
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 28
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0793

  1112						SUBTTL	Data Patterns
  1113
  1114					;#********************************************************************
  1115					;* Data Patterns
  1116					;
  1117					; Here are the locations called by the BUFGEN and BUFCOM routines
  1118					; indexed by the pattern number.
  1119					;#********************************************************************
  1120
  1121	001333'	000000	000000		PATBUF:	0				; unused
  1122	001334'	000000	000000			0				; 1 - zeros
  1123	001335'	777777	777777			-1				; 2 - ones
  1124	001336'	525252	525252			525252525252			; 3 - alternate bit in 36-bit word
  1125	001337'	252525	252525			252525252525			; 4 - alternate bit in 36-bit word
  1126	001340'	000000	000001			1				; 5 - floating 1's
  1127	001341'	000000	000002			2				; 6
  1128	001342'	000000	000004			4				; 7
  1129	001343'	000000	000010			10				; 10
  1130	001344'	000000	000020			20				; 11
  1131	001345'	000000	000040			40				; 12
  1132	001346'	000000	000100			100				; 13
  1133	001347'	000000	000200			200				; 14
  1134	001350'	000000	000400			400				; 15
  1135	001351'	000000	001000			1000				; 16
  1136	001352'	000000	002000			2000				; 17
  1137	001353'	000000	004000			4000				; 20
  1138	001354'	000000	010000			10000				; 21
  1139	001355'	000000	020000			20000				; 22
  1140	001356'	000000	040000			40000				; 23
  1141	001357'	000000	100000			100000				; 24
  1142	001360'	000000	200000			200000				; 25
  1143	001361'	000000	400000			400000				; 26
  1144	001362'	000001	000000			1,,0				; 27
  1145	001363'	000002	000000			2,,0				; 30
  1146	001364'	000004	000000			4,,0				; 31
  1147	001365'	000010	000000			10,,0				; 32
  1148	001366'	000020	000000			20,,0				; 33
  1149	001367'	000040	000000			40,,0				; 34
  1150	001370'	000100	000000			100,,0				; 35
  1151	001371'	000200	000000			200,,0				; 36
  1152	001372'	000400	000000			400,,0				; 37
  1153	001373'	001000	000000			1000,,0				; 40
  1154	001374'	002000	000000			2000,,0				; 41
  1155	001375'	004000	000000			4000,,0				; 42
  1156	001376'	010000	000000			10000,,0			; 43
  1157	001377'	020000	000000			20000,,0			; 44
  1158	001400'	040000	000000			40000,,0			; 45
  1159	001401'	100000	000000			100000,,0			; 46
  1160	001402'	200000	000000			200000,,0			; 47
  1161	001403'	400000	000000			400000,,0			; 50
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 29
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0794

  1162	001404'	777777	777776			777777,,777776			; 51 - floating 0's
  1163	001405'	777777	777775			777777,,777775			; 52
  1164	001406'	777777	777773			777777,,777773			; 53
  1165	001407'	777777	777767			777777,,777767			; 54
  1166	001410'	777777	777757			777777,,777757			; 55
  1167	001411'	777777	777737			777777,,777737			; 56
  1168	001412'	777777	777677			777777,,777677			; 57
  1169	001413'	777777	777577			777777,,777577			; 60
  1170	001414'	777777	777377			777777,,777377			; 61
  1171	001415'	777777	776777			777777,,776777			; 62
  1172	001416'	777777	775777			777777,,775777			; 63
  1173	001417'	777777	773777			777777,,773777			; 64
  1174	001420'	777777	767777			777777,,767777			; 65
  1175	001421'	777777	757777			777777,,757777			; 66
  1176	001422'	777777	737777			777777,,737777			; 67
  1177	001423'	777777	677777			777777,,677777			; 70
  1178	001424'	777777	577777			777777,,577777			; 71
  1179	001425'	777777	377777			777777,,377777			; 72
  1180	001426'	777776	777777			777776,,777777			; 73
  1181	001427'	777775	777777			777775,,777777			; 74
  1182	001430'	777773	777777			777773,,777777			; 75
  1183	001431'	777767	777777			777767,,777777			; 76
  1184	001432'	777757	777777			777757,,777777			; 77
  1185	001433'	777737	777777			777737,,777777			; 100
  1186	001434'	777677	777777			777677,,777777			; 101
  1187	001435'	777577	777777			777577,,777777			; 102
  1188	001436'	777377	777777			777377,,777777			; 103
  1189	001437'	776777	777777			776777,,777777			; 104
  1190	001440'	775777	777777			775777,,777777			; 105
  1191	001441'	773777	777777			773777,,777777			; 106
  1192	001442'	767777	777777			767777,,777777			; 107
  1193	001443'	757777	777777			757777,,777777			; 110
  1194	001444'	737777	777777			737777,,777777			; 111
  1195	001445'	677777	777777			677777,,777777			; 112
  1196	001446'	577777	777777			577777,,777777			; 113
  1197	001447'	377777	777777			377777,,777777			; 114
  1198
  1199			000115		FILLFP==.-PATBUF			; read fill pattern
  1200
  1201	001450'	400000	000001			400000,,000001			; 115
  1202
  1203					; Pattern codes from here require execution of special routines
  1204
  1205			000116		VPATRN==.-PATBUF
  1206
  1207					; Each location contains addresses, the first address should be used
  1208					; to generate the first word in a buffer, the second  should be used
  1209					; to generate each remaining word.  An execute is  performed  on the
  1210					; instruction in the specified address.  The data is returned in AC7.
  1211
  1212	001451'	004126'	004127'			[GO PATRAN],,[GO PATRA1]	; 116 - random numbers
  1213	001452'	004130'	004132'			[GO PATADR],,[ADD 7,[1,,1]]	; 117 - memory address pattern
  1214	001453'	004133'	004134'			[GO PATFON],,[GO PATFO1]	; 120 - floating ones
  1215	001454'	004135'	004136'			[GO PATFZE],,[GO PATFZ1]	; 121 - floating zeroes
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 30
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0795

  1216
  1217			004137'		PATCN2==[BYTE (8)1,2,3,4]
  1218			004140'		PATCN3==[BYTE (7)1,2,3,4,5]
  1219			004141'		PATCN4==[BYTE (6)1,2,3,4,5,6]
  1220
  1221	001455'	004142'	004143'			[MOVE 7,PATCN2],,[GO PATCN8]	; 122 - count pattern in 8-bit bytes
  1222	001456'	004144'	004145'			[MOVE 7,PATCN3],,[GO PATCN7]	; 123 - count pattern in 7-bit bytes
  1223	001457'	004146'	004147'			[MOVE 7,PATCN4],,[GO PATCN6]	; 124 - count pattern in 6-bit bytes
  1224	001460'	004150'	004151'			[MOVE 7,PATBUF+3],,[SETCA 7,]	; 125 - alternating 36-bit pattern
  1225	001461'	004152'	004045'			[MOVE 7,TPAT],,[JFCL]		; 126 - operator selected pattern
  1226
  1227			000127		FILLVP==.-PATBUF			; read fill pattern
  1228
  1229	001462'	004154'	004045'			[MOVE 7,[400000,,1]],,[JFCL]	; 127 - read buffer fill pattern
  1230
  1231			000127		MAXPAT==.-PATBUF-1			; maximum pattern number allowed
  1232
  1233					; Random number generator
  1234
  1235	001463'	200 07 0 00 001464'	PATRAN:	MOVE	7,.+1			; get base number
  1236	001464'	202 07 0 00 006263'		MOVEM	7,OLDRAN#		; save it
  1237	001465'	263 17 0 00 000000 		RTN
  1238
  1239	001466'	270 07 0 00 030022 	PATRA1:	ADD	7,RANDBS		; modify number in AC7
  1240	001467'	241 07 0 00 777774 		ROT	7,-4			; to create a new number
  1241	001470'	447 07 0 00 006263'		EQVB	7,OLDRAN		; put result in AC7 and OLDRAN
  1242	001471'	263 17 0 00 000000 		RTN
  1243
  1244					; Put address of data pattern in AC7
  1245
  1246	001472'	550 07 0 00 000002 	PATADR:	HRRZ	7,2			; get buffer address
  1247	001473'	504 07 0 00 000007 		HRL	7,7			; put in both halves
  1248	001474'	263 17 0 00 000000 		RTN
  1249
  1250					; Floating ones
  1251
  1252	001475'	201 07 0 00 000001 	PATFON:	MOVEI	7,1			; get rightmost bit
  1253	001476'	332 00 0 00 001237*		SKIPE	TFMFLG			; HIDEN format?
  1254	001477'	201 07 0 00 000020 		MOVEI	7,20			; yes - get rightmost bit
  1255	001500'	263 17 0 00 000000 		RTN				; return
  1256
  1257	001501'	241 07 0 00 000001 	PATFO1:	ROT	7,1			; rotate 1 bit
  1258	001502'	306 07 0 00 000001 		CAIN	7,1			; a 1 bit?
  1259	001503'	201 07 0 00 000020 		MOVEI	7,20			; yes - position properly
  1260	001504'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 31
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0796

  1261
  1262					; Floating zeroes
  1263
  1264	001505'	201 07 0 00 000001 	PATFZE:	MOVEI	7,1			; get rightmost bit
  1265	001506'	332 00 0 00 001476*		SKIPE	TFMFLG			; HIDEN format?
  1266	001507'	201 07 0 00 000020 		MOVEI	7,20			; yes - get rightmost bit
  1267	001510'	430 07 0 00 004155'		XOR	7,[-1]			; complement
  1268	001511'	263 17 0 00 000000 		RTN				; return
  1269
  1270	001512'	660 07 0 00 000017 	PATFZ1:	TRO	7,17			; ensure bits will be shifted as 1's
  1271	001513'	241 07 0 00 000001 		ROT	7,1			; rotate 1 bit
  1272	001514'	606 07 0 00 000001 		TRNN	7,1			; shifted the 0 into bit position 1?
  1273	001515'	200 07 0 00 004156'		MOVE	7,[-1,,777757]		; yes - position properly
  1274	001516'	263 17 0 00 000000 		RTN				; return
  1275
  1276					; Count the number in AC7 in 8-bit bytes
  1277
  1278	001517'	332 00 0 00 000000*	PATCN8:	SKIPE	TBSDFL			; BSD style datagram?
  1279	001520'	336 00 0 00 001506*		SKIPN	TFMFLG			; yes - HIDEN format?
  1280	001521'	334 00 0 00 000000 		SKIPA				; no - continue
  1281	001522'	254 00 0 00 001534'		JRST	PATC8A			; yes - go handle
  1282	001523'	201 05 0 00 000004 		MOVEI	5,4			; set up to loop 4 times
  1283	001524'	135 06 0 00 004157'		LDB	6,[POINT 8,7,31]	; get last byte into AC6
  1284	001525'	350 00 0 00 000006 		AOS	6			; increment byte number
  1285	001526'	405 06 0 00 000377 		ANDI	6,377			; clear all but one byte
  1286	001527'	242 07 0 00 000010 		LSH	7,8			; shift word
  1287	001530'	436 06 0 00 000007 		ORM	6,7			; merge with new byte
  1288	001531'	367 05 0 00 001525'		SOJG	5,.-4			; loop on 5 bytes
  1289	001532'	242 07 0 00 000004 		LSH	7,4			; shift over and clear bit 32-35
  1290	001533'	263 17 0 00 000000 		RTN				; return
  1291
  1292	001534'	261 17 0 00 000004 	PATC8A:	PUT	4			; save AC4
  1293	001535'	201 04 0 00 000004 		MOVEI	4,4			; set up to loop 4 times
  1294	001536'	350 00 0 00 000005 		AOS	5			; increment byte number
  1295	001537'	303 05 0 00 000377 		CAILE	5,377			; between 1 and 377?
  1296	001540'	201 05 0 00 000001 		MOVEI	5,1			; no - set to 1
  1297	001541'	242 07 0 00 000010 		LSH	7,8			; shift word
  1298	001542'	436 05 0 00 000007 		ORM	5,7			; merge with new byte
  1299	001543'	367 04 0 00 001536'		SOJG	4,.-5			; loop on 5 bytes
  1300	001544'	242 07 0 00 000004 		LSH	7,4			; shift over and clear bit 32-35
  1301						JUMPN	6,[LSHC	6,-4		; half-byte zero? no - insert half
  1302							   SETZ	6,		;   byte, clear half byte, and
  1303							   GET	4		;   exit
  1304	001545'	326 06 0 00 004160'			   RTN]
  1305	001546'	350 00 0 00 000005 		AOS	5			; increment current byte
  1306	001547'	200 06 0 00 000005 		MOVE	6,5			; get half byte
  1307	001550'	135 04 0 00 004164'		LDB	4,[POINT 4,5,31]	; get 4 leftmost bits
  1308	001551'	137 04 0 00 004165'		DPB	4,[POINT 4,7,35]	; save them
  1309	001552'	262 17 0 00 000004 		GET	4			; restore AC4
  1310	001553'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 32
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0797

  1311
  1312					; Count the number in AC7 in 7-bit bytes
  1313
  1314	001554'	201 05 0 00 000005 	PATCN7:	MOVEI	5,5			; set up to loop 5 times
  1315	001555'	135 06 0 00 004166'		LDB	6,[POINT 7,7,34]	; get last byte into AC6
  1316	001556'	350 00 0 00 000006 		AOS	6			; increment byte number
  1317	001557'	405 06 0 00 000177 		ANDI	6,177			; clear all but one byte
  1318	001560'	242 07 0 00 000007 		LSH	7,7			; shift word
  1319	001561'	436 06 0 00 000007 		ORM	6,7			; merge with new byte
  1320	001562'	367 05 0 00 001556'		SOJG	5,.-4			; loop on 5 bytes
  1321	001563'	242 07 0 00 000001 		LSH	7,1			; shift over and clear bit 35
  1322	001564'	263 17 0 00 000000 		RTN				; return
  1323
  1324					; Count the number in AC7 in 6-bit bytes
  1325
  1326	001565'	201 05 0 00 000006 	PATCN6:	MOVEI	5,6			; set up to loop 6 times
  1327	001566'	550 06 0 00 000007 		HRRZ	6,7			; get word into AC6
  1328	001567'	350 00 0 00 000006 		AOS	6			; increment byte number
  1329	001570'	405 06 0 00 000077 		ANDI	6,77			; clear all but one byte
  1330	001571'	242 07 0 00 000006 		LSH	7,6			; shift word
  1331	001572'	436 06 0 00 000007 		ORM	6,7			; merge with new byte
  1332	001573'	367 05 0 00 001567'		SOJG	5,.-4			; loop on four bytes
  1333	001574'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 33
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0798

  1334
  1335					;#********************************************************************
  1336					;* PATPNT - Translate pattern number to description
  1337					;#********************************************************************
  1338
  1339	001575'	037 00 0 00 004167'	PATPNT:	TMSG	<0 - Illegal>		; unused
  1340	001576'	037 00 0 00 004172'		TMSG	<1 - zeros>
  1341	001577'	037 00 0 00 004174'		TMSG	<2 - ones>
  1342	001600'	037 00 0 00 004176'		TMSG	<3 - alternating 5252..>
  1343	001601'	037 00 0 00 004203'		TMSG	<4 - alternating 2525..>
  1344	001602'	037 00 0 00 004210'		TMSG	<5 - 0,,1>
  1345	001603'	037 00 0 00 004212'		TMSG	<6 - 0,,2>
  1346	001604'	037 00 0 00 004214'		TMSG	<7 - 0,,4>
  1347	001605'	037 00 0 00 004216'		TMSG	<10 - 0,,10>
  1348	001606'	037 00 0 00 004221'		TMSG	<11 - 0,,20>
  1349	001607'	037 00 0 00 004224'		TMSG	<12 - 0,,40>
  1350	001610'	037 00 0 00 004227'		TMSG	<13 - 0,,100>
  1351	001611'	037 00 0 00 004232'		TMSG	<14 - 0,,200>
  1352	001612'	037 00 0 00 004235'		TMSG	<15 - 0,,400>
  1353	001613'	037 00 0 00 004240'		TMSG	<16 - 0,,1000>
  1354	001614'	037 00 0 00 004243'		TMSG	<17 - 0,,2000>
  1355	001615'	037 00 0 00 004246'		TMSG	<20 - 0,,4000>
  1356	001616'	037 00 0 00 004251'		TMSG	<21 - 0,,10000>
  1357	001617'	037 00 0 00 004254'		TMSG	<22 - 0,,20000>
  1358	001620'	037 00 0 00 004257'		TMSG	<23 - 0,,40000>
  1359	001621'	037 00 0 00 004262'		TMSG	<24 - 0,,100000>
  1360	001622'	037 00 0 00 004265'		TMSG	<25 - 0,,200000>
  1361	001623'	037 00 0 00 004270'		TMSG	<26 - 0,,400000>
  1362	001624'	037 00 0 00 004273'		TMSG	<27 - 1,,0>
  1363	001625'	037 00 0 00 004275'		TMSG	<30 - 2,,0>
  1364	001626'	037 00 0 00 004277'		TMSG	<31 - 4,,0>
  1365	001627'	037 00 0 00 004301'		TMSG	<32 - 10,,0>
  1366	001630'	037 00 0 00 004304'		TMSG	<33 - 20,,0>
  1367	001631'	037 00 0 00 004307'		TMSG	<34 - 40,,0>
  1368	001632'	037 00 0 00 004312'		TMSG	<35 - 100,,0>
  1369	001633'	037 00 0 00 004315'		TMSG	<36 - 200,,0>
  1370	001634'	037 00 0 00 004320'		TMSG	<37 - 400,,0>
  1371	001635'	037 00 0 00 004323'		TMSG	<40 - 1000,,0>
  1372	001636'	037 00 0 00 004326'		TMSG	<41 - 2000,,0>
  1373	001637'	037 00 0 00 004331'		TMSG	<42 - 4000,,0>
  1374	001640'	037 00 0 00 004334'		TMSG	<43 - 10000,,0>
  1375	001641'	037 00 0 00 004337'		TMSG	<44 - 20000,,0>
  1376	001642'	037 00 0 00 004342'		TMSG	<45 - 40000,,0>
  1377	001643'	037 00 0 00 004345'		TMSG	<46 - 100000,,0>
  1378	001644'	037 00 0 00 004350'		TMSG	<47 - 200000,,0>
  1379	001645'	037 00 0 00 004353'		TMSG	<50 - 400000,,0>
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 34
DFNIAU	MAC	 6-Aug-83 09:31		Data Patterns                                                                      SEQ 0799

  1380	001646'	037 00 0 00 004356'		TMSG	<51 - 777777,,777776>
  1381	001647'	037 00 0 00 004362'		TMSG	<52 - 777777,,777775>
  1382	001650'	037 00 0 00 004366'		TMSG	<53 - 777777,,777773>
  1383	001651'	037 00 0 00 004372'		TMSG	<54 - 777777,,777767>
  1384	001652'	037 00 0 00 004376'		TMSG	<55 - 777777,,777757>
  1385	001653'	037 00 0 00 004402'		TMSG	<56 - 777777,,777737>
  1386	001654'	037 00 0 00 004406'		TMSG	<57 - 777777,,777677>
  1387	001655'	037 00 0 00 004412'		TMSG	<60 - 777777,,777577>
  1388	001656'	037 00 0 00 004416'		TMSG	<61 - 777777,,777377>
  1389	001657'	037 00 0 00 004422'		TMSG	<62 - 777777,,776777>
  1390	001660'	037 00 0 00 004426'		TMSG	<63 - 777777,,775777>
  1391	001661'	037 00 0 00 004432'		TMSG	<64 - 777777,,773777>
  1392	001662'	037 00 0 00 004436'		TMSG	<65 - 777777,,767777>
  1393	001663'	037 00 0 00 004442'		TMSG	<66 - 777777,,757777>
  1394	001664'	037 00 0 00 004446'		TMSG	<67 - 777777,,737777>
  1395	001665'	037 00 0 00 004452'		TMSG	<70 - 777777,,677777>
  1396	001666'	037 00 0 00 004456'		TMSG	<71 - 777777,,577777>
  1397	001667'	037 00 0 00 004462'		TMSG	<72 - 777777,,377777>
  1398	001670'	037 00 0 00 004466'		TMSG	<73 - 777776,,777777>
  1399	001671'	037 00 0 00 004472'		TMSG	<74 - 777775,,777777>
  1400	001672'	037 00 0 00 004476'		TMSG	<75 - 777773,,777777>
  1401	001673'	037 00 0 00 004502'		TMSG	<76 - 777767,,777777>
  1402	001674'	037 00 0 00 004506'		TMSG	<77 - 777757,,777777>
  1403	001675'	037 00 0 00 004512'		TMSG	<100 - 777737,,777777>
  1404	001676'	037 00 0 00 004517'		TMSG	<101 - 777677,,777777>
  1405	001677'	037 00 0 00 004524'		TMSG	<102 - 777577,,777777>
  1406	001700'	037 00 0 00 004531'		TMSG	<103 - 777377,,777777>
  1407	001701'	037 00 0 00 004536'		TMSG	<104 - 776777,,777777>
  1408	001702'	037 00 0 00 004543'		TMSG	<105 - 775777,,777777>
  1409	001703'	037 00 0 00 004550'		TMSG	<106 - 773777,,777777>
  1410	001704'	037 00 0 00 004555'		TMSG	<107 - 767777,,777777>
  1411	001705'	037 00 0 00 004562'		TMSG	<110 - 757777,,777777>
  1412	001706'	037 00 0 00 004567'		TMSG	<111 - 737777,,777777>
  1413	001707'	037 00 0 00 004574'		TMSG	<112 - 677777,,777777>
  1414	001710'	037 00 0 00 004601'		TMSG	<113 - 577777,,777777>
  1415	001711'	037 00 0 00 004606'		TMSG	<114 - 377777,,777777>
  1416	001712'	037 00 0 00 004613'		TMSG	<115 - 400000,,1>
  1417	001713'	037 00 0 00 004617'		TMSG	<116 - random numbers>
  1418	001714'	037 00 0 00 004624'		TMSG	<117 - memory address pattern>
  1419	001715'	037 00 0 00 004632'		TMSG	<120 - floating ones>
  1420	001716'	037 00 0 00 004636'		TMSG	<121 - floating zeros>
  1421	001717'	037 00 0 00 004643'		TMSG	<122 - count pattern in 8-bit bytes>
  1422	001720'	037 00 0 00 004652'		TMSG	<123 - count pattern in 7-bit bytes>
  1423	001721'	037 00 0 00 004661'		TMSG	<124 - count pattern in 6-bit bytes>
  1424	001722'	037 00 0 00 004670'		TMSG	<125 - alternating 36-bit pattern>
  1425	001723'	037 00 0 00 004677'		TMSG	<126 - opr select pattern>
  1426	001724'	037 00 0 00 004704'		TMSG	<127 - 400000,,1>
  1427
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 35
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0800

  1428						SUBTTL	Switch Handling Routines
  1429
  1430					;#********************************************************************
  1431					;* .SWCHP - Print switch settings in English
  1432					;#********************************************************************
  1433
  1434	001725'	261 17 0 00 000000 	.SWCHP:	RPUT	(0,1,2,3,4)		; save AC's
  1435
  1436	001732'	037 01 0 00 004710'		FMSGC	<Switches:  >
  1437	001733'	403 02 0 00 000004 		SETZB	2,4			; init print, switch count AC's
  1438	001734'	400 03 0 00 000000 		SETZ	3,			; set up AC3 to point to
  1439	001735'	661 03 0 00 400000 		TLO	3,(1B0)			;   the leftmost switch
  1440	001736'	260 17 0 00 001764'		GO	SWITT			; get program switches
  1441	001737'	037 13 0 00 000001 		PNTHWF				; print in octal first
  1442	001740'	037 01 0 00 003654'		FMSG	<  >
  1443	001741'	260 17 0 00 001764'		GO	SWITT			; get program switches
  1444
  1445	001742'	616 00 0 00 000003 	.SWCH0:	TDNN	3			; this switch set?
  1446	001743'	254 00 0 00 001752'		JRST	.SWCH1			; no - continue
  1447	001744'	271 04 0 00 000007 		ADDI	4,7			; 6 more characters printed
  1448	001745'	303 04 0 00 000052 		CAILE	4,^D42			; print 42 characters yet?
  1449	001746'	037 01 0 00 004713'		FMSGC	<			   > ; yes - continue on next line
  1450	001747'	303 04 0 00 000052 		CAILE	4,^D42			; print 42 characters yet?
  1451	001750'	201 04 0 00 000007 		MOVEI	4,7			; yes - reinit print counter
  1452						XCT	[FMSG	<ABORT >	; 0
  1453							 FMSG	<RSTART >	; 1
  1454							 FMSG	<TOTALS >	; 2
  1455							 FMSG	<NOPNT >	; 3
  1456							 FMSG	<PNTLPT >	; 4
  1457							 FMSG	<DING >		; 5
  1458							 FMSG	<LOOPER >	; 6
  1459							 FMSG	<ERSTOP >	; 7
  1460							 FMSG	<PALERS >	; 8
  1461							 FMSG	<RELIAB >	; 9
  1462							 FMSG	<TXTINH >	; 10
  1463							 FMSG	<PAGINH >	; 11
  1464							 FMSG	<MODDVC >	; 12
  1465							 FMSG	<CASINH >	; 13
  1466							 FMSG	<OPRSEL >	; 14
  1467							 FMSG	<CHAIN >	; 15
  1468							 FMSG	<KA10 >		; 16
  1469							 JFCL
  1470							 FMSG	<TRACE >	; 18
  1471							 FMSG	<INHFLT >	; 19
  1472							 FMSG	<INHMSG >	; 20
  1473							 FMSG	<LOOPGM >	; 21
  1474							 FMSG	<LOOPTS >	; 22
  1475							 FMSG	<RUNALL >	; 23
  1476							 FMSG	<DSPEAR >	; 24
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 36
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0801

  1477  1478							 FMSG	<UDEBUG >	; 25
  1479							 FMSG	<MDEBUG >	; 26
  1480							 FMSG	<LDEBUG >	; 27
  1481							 FMSG	<DDEBUG >	; 28
  1482							 JFCL			; 29
  1483							 JFCL			; 30
  1484							 JFCL			; 31
  1485							 JFCL			; 32
  1486							 JFCL			; 33
  1487							 JFCL			; 34
  1488	001751'	256 00 0 02 005005'			 JFCL](2)		; 35
  1489	001752'	242 03 0 00 777777 	.SWCH1:	LSH	3,-1			; right shift the switch pointer
  1490	001753'	350 00 0 00 000002 		AOS	2			; increment text pointer
  1491	001754'	326 03 0 00 001742'		JUMPN	3,.SWCH0		; done?  no - continue
  1492	001755'	037 01 0 00 030242 		PCRLF
  1493	001756'	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  1494
  1495	001763'	263 17 0 00 000000 		RTN				; return
  1496
  1497
  1498					;#********************************************************************
  1499					;* SWITT - Get value of switches
  1500					;#********************************************************************
  1501
  1502	001764'	200 00 0 00 030046 	SWITT:	MOVE	CONSW			; get switches
  1503	001765'	336 00 0 00 030037 		SKIPN	USER			; user mode?
  1504	001766'	037 10 0 00 000002 		SWITCH				; no - get switches from KLDCP
  1505	001767'	434 00 0 00 001771'		IOR	SWRGT			; insert addl right hand switches
  1506	001770'	263 17 0 00 000000 		RTN				; return
  1507
  1508	001771'	000000	000000		SWRGT:	0				; right hand switches
  1509
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 37
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0802

  1510
  1511					;#********************************************************************
  1512					;* .ISWT - Complete switch handling
  1513					;
  1514					; This routine will print out switches if desired, and then enter left
  1515					; hand switches (if user mode) and then enter right hand switches.
  1516					;
  1517					;#********************************************************************
  1518
  1519					; Print program switches if desired
  1520
  1521	001772'	261 17 0 00 000000 	.ISWT:	RPUT	(0,1)			; save AC's
  1522
  1523	001774'	260 17 0 00 002032'		GO	.SWPNT			; print switches if desired
  1524
  1525					; Now look at switches and determine if we should enter them
  1526
  1527	001775'	260 17 0 00 001764'	.ISWT2:	GO	SWITT			; get switches
  1528	001776'	202 00 0 00 006264'		MOVEM	SAVSWW#			; save switches
  1529	001777'	202 00 0 00 006247'		MOVEM	CONSWW#			; save in work location
  1530	002000'	037 01 0 00 005051'		FMSGC	<Switches = >
  1531	002001'	037 13 0 00 000001 		PNTHWF
  1532	002002'	037 01 0 00 030242 		PCRLF
  1533	002003'	476 00 0 00 006267'		SETOM	SWPSWW#			; set switches printed flag
  1534	002004'	336 00 0 00 030037 		SKIPN	USER			; user mode?
  1535	002005'	254 00 0 00 002007'		JRST	.ISWT7			; no - don't ask for left hand switches
  1536
  1537					; Now input the switches
  1538
  1539	002006'	260 17 0 00 002043'	.ISWT6:	GO	.SLEFT			; get left hand switches
  1540
  1541					; Now get right hand switches
  1542
  1543	002007'	332 00 0 00 030037 	.ISWT7:	SKIPE	USER			; user mode?
  1544	002010'	254 00 0 00 002013'		JRST	.ISWTB			; yes - go ask for them
  1545
  1546					; In exec mode get switches which may have been entered already
  1547
  1548	002011'	260 17 0 00 001764'	.ISWT8:	GO	SWITT			; get switches
  1549	002012'	202 00 0 00 006247'		MOVEM	CONSWW			; save switches
  1550
  1551					; Now input the switches
  1552
  1553	002013'	260 17 0 00 002144'	.ISWTB:	GO	.SRIGT			; go get right hand switches
  1554
  1555					; Now ensure right hand switches are saved and print out new switches
  1556					; if they changed.
  1557
  1558	002014'	200 00 0 00 006247'	.ISWTX:	MOVE	CONSWW			; get switches
  1559	002015'	552 00 0 00 001771'		HRRZM	SWRGT			; make sure right half is saved away
  1560	002016'	202 00 0 00 030046 		MOVEM	CONSW			; save in real switches location also
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 38
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0803

  1561	002017'	260 17 0 00 001764'		GO	SWITT			; get switches
  1562	002020'	312 00 0 00 006264'		CAME	SAVSWW			; same as original switches?
  1563	002021'	254 00 0 00 002024'		JRST	.ISWTY			; no - go print them out
  1564	002022'	332 00 0 00 006267'		SKIPE	SWPSWW#			; switches already printed?
  1565	002023'	254 00 0 00 002027'		JRST	.ISWTZ			; yes - don't print them
  1566	002024'	037 01 0 00 005054'	.ISWTY:	FMSGC	<SWITCHES = >
  1567	002025'	037 13 0 00 000001 		PNTHWF
  1568	002026'	037 01 0 00 030242 		PCRLF
  1569	002027'	262 17 0 00 000001 	.ISWTZ:	RGET	(1,0)			; done with switch handling
  1570
  1571	002031'	263 17 0 00 000000 		RTN				; return
  1572
  1573					; Print switches available
  1574
  1575	002032'	037 01 0 00 000026 	.SWPNT:	PFORCE				; handle Control-O
  1576	002033'	200 00 0 00 005067'		MOVE	[FMSGC	<Print the selectable pgm switches?>]
  1577	002034'	260 17 0 00 000061'		GO	TTYYES			; go get response
  1578	002035'	263 17 0 00 000000 		RTN				; no - return
  1579	002036'	037 00 1 00 002040'		PNTMSG	@.SWTXT			; yes - print it
  1580	002037'	263 17 0 00 000000 		RTN				; return
  1581
  1582	002040'				.SWTXT:	[ASCII	/
  1583					----Left Side Switches--------	      ----Right Side Switches------
  1584
  1585					SW    KL10     11    Function         SW   Value  Function
  1586					--    ----    ----   --------	      --   -----  --------
  1587					 0   400000  100000  Abort	      18  400000  Program trace
  1588					 1   200000  040000  Restart	      19  200000  Inhibit fault isolation
  1589					 2   100000  020000  Totals	      20  100000  Inhibit error messages
  1590	002040'	000000	005070'		 3   040000  010000  No print	      21  040000  Loop on program/]
  1591						[ASCII	/
  1592					 4   020000  004000  Print on LPT     22  020000  Loop on test
  1593					 5   010000  002000  Ding bell on err 23  010000  Run all test segments
  1594					 6   004000  001000  Loop on error    24  004000  Disable SPEAR reporting
  1595					 7   002000  000400  Halt on error    25  002000  User mode debug
  1596					 8   001000  000200  Print all errors 26  001000  Error message debug
  1597	002041'	000000	005223'		 9   000400  000100  Reliability mode 27  000400  Test debug   /]
  1598						[ASCIZ	/
  1599					10   000200  000040  Text inhibit     28  000200  Load microcode debug
  1600					11   000100  000020  Inhibit paging
  1601					12   000040  000010  Mod device codes
  1602					13   000020  000004  Inhibit cache
  1603					14   000010  000002  Operator select
  1604					15   000004  000001  Chain.. for DIAMON
  1605					16   000002          KA10 50 Hertz power
  1606	002042'	000000	005346'		/]
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 39
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0804

  1607
  1608					;#********************************************************************
  1609					;* .SLEFT - Input left hand switches
  1610					;#********************************************************************
  1611
  1612	002043'	261 17 0 00 000000 	.SLEFT:	RPUT	(0,1,2,3,4,5,6)		; save AC's
  1613
  1614
  1615	002052'	554 00 0 00 006247'	.SLF1:	HLRZ	CONSWW			; print out left hand switches as
  1616	002053'	037 01 0 00 030242 		PCRLF				;   they currently are
  1617	002054'	037 17 0 00 000003 		PNTOCF
  1618	002055'	037 01 0 00 005444'		FMSG	<  LH Switches <# or ?> - >
  1619	002056'	260 17 0 00 002255'		GO	.SWIN			; go input switches
  1620	002057'	254 00 0 00 002063'		JRST	.SLF2			; typed a ?
  1621	002060'	254 00 0 00 002052'		JRST	.SLF1			; error - re-ask question
  1622	002061'	506 01 0 00 006247'		HRLM	1,CONSWW		; save left hand switches
  1623	002062'	254 00 0 00 002134'		JRST	.SLFX			; exit
  1624
  1625	002063'	037 01 0 00 030242 	.SLF2:	PCRLF
  1626	002064'	037 01 0 00 005452'		PNTMSF	[ASCIZ /Type  Y,N,^,CR,^Z/]
  1627	002065'	037 01 0 00 030243 		PCRL2F
  1628	002066'	201 05 0 00 000001 		MOVEI	5,1			; init pointer to switch to ask
  1629	002067'	275 05 0 00 000002 	.SLF3:	SUBI	5,2			; back up
  1630	002070'	350 00 0 00 000005 	.SLF4:	AOS	5			; forward
  1631	002071'	335 00 0 00 000005 		SKIPGE	5			; backed up too much?
  1632	002072'	400 05 0 00 000000 		SETZ	5,			; yes - init pointer to first switch
  1633	002073'	303 05 0 00 000015 		CAILE	5,^D13			; reach end yet?
  1634	002074'	254 00 0 00 002134'		JRST	.SLFX			; yes - exit
  1635
  1636	002075'	200 04 0 05 002316'	.SLF5:	MOVE	4,.LSWTN(5)		; get proper bit in AC4
  1637	002076'	200 00 0 00 006247'		MOVE	CONSWW			; get switches
  1638	002077'	616 00 0 00 000004 		TDNN	4
  1639	002100'	037 01 0 00 005456'		FMSG	<N >
  1640	002101'	612 00 0 00 000004 		TDNE	4
  1641	002102'	037 01 0 00 005457'		FMSG	<Y >
  1642	002103'	200 00 0 05 002300'		MOVE	.LSWIT(5)		; get SIXBIT switch name
  1643	002104'	037 01 0 00 000002 		PNTSXF				; print it
  1644	002105'	037 00 0 00 005460'		TMSG	< - >
  1645	002106'	037 11 0 00 000003 		TTYINP 
  1646	002107'	306 00 0 00 000015 		CAIN	15			; carraige return?
  1647	002110'	260 17 0 00 000045'		GO	CLRBUF			; clear input buffer
  1648	002111'	306 00 0 00 000015 		CAIN	15			; carraige return?
  1649	002112'	254 00 0 00 002070'		JRST	.SLF4			; yes - next switch
  1650	002113'	037 01 0 00 030242 		PCRLF
  1651	002114'	306 00 0 00 000032 		CAIN	32			; Control-Z?
  1652	002115'	254 00 0 00 002134'		JRST	.SLFX			; yes - exit
  1653	002116'	306 00 0 00 000136 		CAIN	136			; ^ back up?
  1654	002117'	254 00 0 00 002067'		JRST	.SLF3			; yes - go back up
  1655	002120'	306 00 0 00 000131 		CAIN	"Y"			; Y?
  1656	002121'	254 00 0 00 002130'		JRST	.SLF6			; yes - set switch
  1657	002122'	302 00 0 00 000116 		CAIE	"N"			; N?
  1658	002123'	254 00 0 00 002075'		JRST	.SLF5			; no - unrecognizable - reask question
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 40
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0805

  1659	002124'	200 00 0 00 006247'		MOVE	CONSWW			; get switches
  1660	002125'	412 00 0 00 000004 		ANDCAM	4			; clear switch
  1661	002126'	202 00 0 00 006247'		MOVEM	CONSWW			; save switches
  1662	002127'	254 00 0 00 002070'		JRST	.SLF4			; continue
  1663	002130'	200 00 0 00 006247'	.SLF6:	MOVE	CONSWW			; get switches
  1664	002131'	434 00 0 00 000004 		IOR	4			; set switch
  1665	002132'	202 00 0 00 006247'		MOVEM	CONSWW			; save switches
  1666	002133'	254 00 0 00 002070'		JRST	.SLF4			; continue
  1667
  1668	002134'	262 17 0 00 000006 	.SLFX:	RGET	(6,5,4,3,2,1,0)		; restore AC's
  1669
  1670	002143'	263 17 0 00 000000 		RTN				; return
  1671
  1672
  1673					;#********************************************************************
  1674					;* .SRIGT - Enter right hand switches
  1675					;#********************************************************************
  1676
  1677	002144'	261 17 0 00 000000 	.SRIGT:	RPUT	(0,1,2,3,4,5,6)		; save AC's
  1678
  1679
  1680	002153'	550 00 0 00 006247'	.SRG2:	HRRZ	CONSWW			; print out right hand switches as
  1681	002154'	037 01 0 00 030242 		PCRLF				;   they currently are
  1682	002155'	037 17 0 00 000003 		PNTOCF
  1683	002156'	037 01 0 00 005461'		FMSG	<  RH Switches <# or ?> - >
  1684	002157'	260 17 0 00 002255'		GO	.SWIN			; go input switches
  1685	002160'	254 00 0 00 002164'		JRST	.SRG3			; typed a ?
  1686	002161'	254 00 0 00 002153'		JRST	.SRG2			; error - re-ask question
  1687	002162'	542 01 0 00 006247'		HRRM	1,CONSWW			; save right hand switches
  1688	002163'	254 00 0 00 002245'		JRST	.SRGX			; exit this switch handling
  1689
  1690	002164'	037 01 0 00 005452'	.SRG3:	PNTMSF	[ASCIZ /Type  Y,N,^,CR,^Z/]
  1691	002165'	037 01 0 00 030243 		PCRL2F
  1692	002166'	201 05 0 00 000001 		MOVEI	5,1			; init pointer to switch to ask
  1693	002167'	275 05 0 00 000002 	.SRG4:	SUBI	5,2			; back up
  1694	002170'	350 00 0 00 000005 	.SRG5:	AOS	5			; forward
  1695	002171'	335 00 0 00 000005 		SKIPGE	5			; backed up too much?
  1696	002172'	400 05 0 00 000000 		SETZ	5,			; yes - init pointer to first switch
  1697	002173'	303 05 0 00 000021 		CAILE	5,^D17			; reach end yet?
  1698	002174'	254 00 0 00 002245'		JRST	.SRGX			; yes
  1699	002175'	336 00 0 05 002334'		SKIPN	.RSWIT(5)		; switch zero?
  1700	002176'	254 00 0 00 002170'		JRST	.SRG5			; yes - go handle next one
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 41
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0806

  1701
  1702	002177'	201 04 0 00 400000 	.SRG6:	MOVEI	4,400000		; get a bit set in AC4
  1703	002200'	210 06 0 00 000005 		MOVN	6,5			; negate for shifting
  1704	002201'	242 04 0 06 000000 		LSH	4,(6)			; shift over properly
  1705	002202'	200 00 0 00 006247'		MOVE	CONSWW			; get switches
  1706	002203'	616 00 0 00 000004 		TDNN	4
  1707	002204'	037 01 0 00 005456'		FMSG	<N >
  1708	002205'	612 00 0 00 000004 		TDNE	4
  1709	002206'	037 01 0 00 005457'		FMSG	<Y >
  1710	002207'	200 00 0 05 002334'		MOVE	.RSWIT(5)		; get SIXBIT switch name
  1711	002210'	037 01 0 00 000002 		PNTSXF				; print it
  1712	002211'	037 00 0 00 005460'		TMSG	< - >
  1713	002212'	037 11 0 00 000003 		TTYINP 
  1714	002213'	306 00 0 00 000015 		CAIN	15			; carraige return?
  1715	002214'	260 17 0 00 000045'		GO	CLRBUF			; clear input buffer
  1716	002215'	306 00 0 00 000015 		CAIN	15			; carraige return?
  1717	002216'	254 00 0 00 002170'		JRST	.SRG5			; yes - next switch
  1718	002217'	037 01 0 00 030242 		PCRLF
  1719	002220'	306 00 0 00 000032 		CAIN	32			; Control-Z?
  1720	002221'	254 00 0 00 002245'		JRST	.SRGX			; yes - exit
  1721	002222'	302 00 0 00 000136 		CAIE	136			; ^ back up?
  1722	002223'	254 00 0 00 002231'		JRST	.SRG6B			; no - continue
  1723	002224'	322 05 0 00 002177'		JUMPE	5,.SRG6			; at first switch? - yes - reask
  1724	002225'	370 00 0 00 000005 	.SRG6A:	SOS	5			; decrement switch
  1725	002226'	336 00 0 05 002334'		SKIPN	.RSWIT(5)		; this switch exists?
  1726	002227'	254 00 0 00 002225'		JRST	.SRG6A			; no - try previous one
  1727	002230'	254 00 0 00 002177'		JRST	.SRG6			; yes - now continue
  1728
  1729	002231'	306 00 0 00 000131 	.SRG6B:	CAIN	"Y"			; Y?
  1730	002232'	254 00 0 00 002241'		JRST	.SRG7			; yes - set switch
  1731	002233'	302 00 0 00 000116 		CAIE	"N"			; N?
  1732	002234'	254 00 0 00 002177'		JRST	.SRG6			; no - unrecognizable - reask question
  1733	002235'	200 00 0 00 006247'		MOVE	CONSWW			; get switches
  1734	002236'	620 00 0 04 000000 		TRZ	(4)			; clear switch
  1735	002237'	202 00 0 00 006247'		MOVEM	CONSWW			; save switches
  1736	002240'	254 00 0 00 002170'		JRST	.SRG5			; continue
  1737	002241'	200 00 0 00 006247'	.SRG7:	MOVE	CONSWW			; get switches
  1738	002242'	660 00 0 04 000000 		TRO	(4)			; set switch
  1739	002243'	202 00 0 00 006247'		MOVEM	CONSWW			; save switches
  1740	002244'	254 00 0 00 002170'		JRST	.SRG5			; continue
  1741
  1742	002245'	262 17 0 00 000006 	.SRGX:	RGET	(6,5,4,3,2,1,0)		; restore AC's
  1743
  1744	002254'	263 17 0 00 000000 		RTN				; return
  1745
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 42
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0807

  1746
  1747					;#********************************************************************
  1748					; .SWIN - Input switches (either as # or ?)
  1749					; 
  1750					; Return +1 - ? typed
  1751					;	 +2 - error
  1752					;	 +3 - # typed (in AC1)
  1753					;	 +4 - no change
  1754					;#********************************************************************
  1755
  1756	002255'	037 11 0 00 000003 	.SWIN:	TTYINP				; get image mode character
  1757	002256'	306 00 0 00 000015 		CAIN	15			; CR typed?
  1758						PJRST	[GO	CLRBUF		; clear input buffer
  1759							 AOS	(P)		; increment return
  1760							 AOS	(P)		; increment return
  1761							 AOS	(P)		; increment return
  1762							 PCRLF
  1763	002257'	254 00 0 00 005467'			 RTN]
  1764	002260'	306 00 0 00 000077 		CAIN	"?"			; ? typed?
  1765						PJRST	[PCRL2F			; yes - exit
  1766	002261'	254 00 0 00 005475'			 RTN]
  1767	002262'	400 01 0 00 000000 		SETZ	1,			; clear number for starters
  1768	002263'	301 00 0 00 000060 	.SWIN0:	CAIL	"0"			; number typed is in a valid
  1769	002264'	303 00 0 00 000067 		CAILE	"7"			;   range?
  1770						PJRST	[AOS	(P)		; no - error return
  1771							 PCRLF
  1772	002265'	254 00 0 00 005472'			 RTN]
  1773	002266'	275 00 0 00 000060 		SUBI	60			; normalize to 0..7
  1774	002267'	242 01 0 00 000003 		LSH	1,3			; shift over current copy of number
  1775	002270'	270 01 0 00 000000 		ADD	1,0			; add in new digit
  1776	002271'	037 11 0 00 000003 		TTYINP				; get a new character
  1777	002272'	302 00 0 00 000015 		CAIE	15			; carraige return?
  1778	002273'	254 00 0 00 002263'		JRST	.SWIN0			; no - go decode as a digit
  1779	002274'	260 17 0 00 000045'		GO	CLRBUF			; clear out extra 
  1780	002275'	350 00 0 17 000000 		AOS	(P)			; set up return+2
  1781	002276'	350 00 0 17 000000 		AOS	(P)
  1782	002277'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 43
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0808

  1783
  1784					;#********************************************************************
  1785					; .LSWIT - Table of left hand switch names 
  1786					;#********************************************************************
  1787
  1788	002300'	41 42 57 62 64 00 	.LSWIT:	SIXBIT	/ABORT /
  1789	002301'	62 63 64 41 62 64 		SIXBIT	/RSTART/
  1790	002302'	64 57 64 41 54 63 		SIXBIT	/TOTALS/
  1791	002303'	56 57 60 56 64 00 		SIXBIT	/NOPNT /
  1792	002304'	60 56 64 54 60 64 		SIXBIT	/PNTLPT/
  1793	002305'	44 51 56 47 00 00 		SIXBIT	/DING  /
  1794	002306'	54 57 57 60 45 62 		SIXBIT	/LOOPER/
  1795	002307'	45 62 63 64 57 60 		SIXBIT	/ERSTOP/
  1796	002310'	60 41 54 45 62 63 		SIXBIT	/PALERS/
  1797	002311'	62 45 54 51 41 42 		SIXBIT	/RELIAB/
  1798	002312'	64 70 64 51 56 50 		SIXBIT	/TXTINH/
  1799	002313'	55 57 44 44 66 43 		SIXBIT	/MODDVC/
  1800	002314'	57 60 62 63 45 54 		SIXBIT	/OPRSEL/
  1801	002315'	43 50 41 51 56 00 		SIXBIT	/CHAIN /
  1802
  1803	002316'	400000	000000		.LSWTN:	400000,,0			; ABORT
  1804	002317'	200000	000000			200000,,0			; RSTART
  1805	002320'	100000	000000			100000,,0			; TOTALS
  1806	002321'	040000	000000			040000,,0			; NOPNT
  1807	002322'	020000	000000			020000,,0			; PNTLPT
  1808	002323'	010000	000000			010000,,0			; DING
  1809	002324'	004000	000000			004000,,0			; LOOPER
  1810	002325'	002000	000000			002000,,0			; ERSTOP
  1811	002326'	001000	000000			001000,,0			; PALERS
  1812	002327'	000400	000000			000400,,0			; RELIAB
  1813	002330'	000200	000000			000200,,0			; TXTINH
  1814	002331'	000040	000000			000040,,0			; MODDVC
  1815	002332'	000010	000000			000010,,0			; OPRSEL
  1816	002333'	000004	000000			000004,,0			; CHAIN
  1817
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 44
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0809

  1818
  1819					;#********************************************************************
  1820					; .RSWIT - Table of right hand switch names 
  1821					;#********************************************************************
  1822
  1823					; Here is the switch prompt table of SIXBIT switch names to use
  1824
  1825	002334'	64 62 41 43 45 00 	.RSWIT:	SIXBIT	/TRACE/			; switch 18
  1826	002335'	51 56 50 46 54 64 		SIXBIT	/INHFLT/		; switch 19
  1827	002336'	51 56 50 55 63 47 		SIXBIT	/INHMSG/		; switch 20
  1828	002337'	54 57 57 60 47 55 		SIXBIT	/LOOPGM/		; switch 21
  1829	002340'	54 57 57 60 64 63 		SIXBIT	/LOOPTS/		; switch 22
  1830	002341'	62 65 56 41 54 54 		SIXBIT	/RUNALL/		; switch 23
  1831	002342'	44 63 60 45 41 62 		SIXBIT	/DSPEAR/		; switch 24
  1832	002343'	65 44 45 42 65 47 		SIXBIT	/UDEBUG/		; switch 25
  1833	002344'	55 44 45 42 65 47 		SIXBIT	/MDEBUG/		; switch 26
  1834	002345'	54 44 45 42 65 47 		SIXBIT	/LDEBUG/		; switch 27
  1835	002346'	44 44 45 42 65 47 		SIXBIT	/DDEBUG/		; switch 28
  1836	002347'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 29
  1837	002350'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 30
  1838	002351'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 31
  1839	002352'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 32
  1840	002353'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 33
  1841	002354'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 34
  1842	002355'	65 56 65 63 45 44 		SIXBIT	/UNUSED/		; switch 35
  1843
  1844
  1845					;#*********************************************************************
  1846					;* SWCHPT - Prints current state of switches
  1847					;#*********************************************************************
  1848
  1849	002356'	261 17 0 00 000000 	SWCHPT:	PUT	0
  1850	002357'	037 00 0 00 005477'		TMSG	<Switches - >
  1851	002360'	200 00 0 00 030046 		MOVE	CONSW
  1852	002361'	037 13 0 00 000001 		PNTHWF
  1853	002362'	037 00 0 00 005443'		TMSGC	<>
  1854	002363'	262 17 0 00 000000 		GET	0
  1855	002364'	263 17 0 00 000000 		RTN
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 45
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0810

  1856
  1857					;#********************************************************************
  1858					;* SWCOM - Switch complement routine
  1859					;
  1860					; Argument:	AC1 - Contains switch command number (0-x)
  1861					;#********************************************************************
  1862
  1863	002365'	261 17 0 00 000000 	SWCOM:	RPUT	(0,1,2)			; save AC's
  1864
  1865	002370'	200 02 0 01 002447'		MOVE	2,SWCOMP(1)		; get text
  1866	002371'	200 01 0 01 002424'		MOVE	1,SWCOMT(1)		; get switch in octal
  1867	002372'	336 00 0 00 030037 		SKIPN	USER			; user mode?
  1868	002373'	607 01 0 00 777777 		TLNN	1,777777		; no - left hand switch set?
  1869	002374'	254 00 0 00 002404'		JRST	SWCOM0			; no - continue
  1870
  1871					; Cannot complement
  1872
  1873	002375'	037 01 0 00 005502'		FMSGC	<[Alter >
  1874	002376'	256 00 0 00 000002 		XCT	2
  1875	002377'	037 01 0 00 005504'		FMSG	< with PDP11 Switch >
  1876	002400'	200 01 0 17 777777 		MOVE	1,-1(P)			; get switch number
  1877						XCT	[FMSG	<12>		; print it
  1878							 FMSG	<11>
  1879							 FMSG	<10>
  1880							 FMSG	<8>
  1881							 FMSG	<7>
  1882							 FMSG	<6>
  1883							 FMSG	<5>
  1884	002401'	256 00 0 01 005520'			 FMSG	<1>](1)
  1885	002402'	037 01 0 00 005530'		FMSGD	< only]>
  1886	002403'	254 00 0 00 002420'		JRST	SWCOMX			; exit
  1887
  1888					; Ok to complement
  1889
  1890	002404'	260 17 0 00 001764'	SWCOM0:	GO	SWITT			; get switches
  1891	002405'	430 00 0 00 000001 		XOR	1			; complement as specified
  1892	002406'	202 00 0 00 030046 		MOVEM	CONSW			; save switches
  1893	002407'	552 00 0 00 001771'		HRRZM	SWRGT			; save right hand switches
  1894	002410'	037 01 0 00 005532'		FMSGC	<[>
  1895	002411'	256 00 0 00 000002 		XCT	2			; print text
  1896	002412'	260 17 0 00 001764'		GO	SWITT			; get switches
  1897	002413'	404 00 0 00 000001 		AND	1			; get only this switch
  1898	002414'	332 00 0 00 000000 		SKIPE				; did it get set?
  1899	002415'	037 01 0 00 005533'		FMSGD	< On]>			; yes
  1900	002416'	336 00 0 00 000000 		SKIPN				; did it get set?
  1901	002417'	037 01 0 00 005535'		FMSGD	< Off]>			; no
  1902	002420'	262 17 0 00 000002 	SWCOMX:	RGET	(2,1,0)			; restore AC's
  1903
  1904	002423'	263 17 0 00 000000 		RTN				; continue
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 46
DFNIAU	MAC	 6-Aug-83 09:31		Switch Handling Routines                                                           SEQ 0811

  1905
  1906					; Switches in octal
  1907
  1908	002424'	040000	000000		SWCOMT:	040000,,0			; NOPNT
  1909	002425'	020000	000000			020000,,0			; PNTLPT
  1910	002426'	010000	000000			010000,,0			; DING
  1911	002427'	002000	000000			002000,,0			; ERSTOP
  1912	002430'	001000	000000			001000,,0			; PALERS
  1913	002431'	000400	000000			000400,,0			; RELIAB
  1914	002432'	000200	000000			000200,,0			; TXTINH
  1915	002433'	000010	000000			000010,,0			; OPRSEL
  1916	002434'	000000	400000			0,,400000			; TRACE
  1917	002435'	000000	200000			0,,200000			; INHFLT
  1918	002436'	000000	100000			0,,100000			; INHMSG
  1919	002437'	000000	040000			0,,040000			; LOOPGM
  1920	002440'	000000	020000			0,,020000			; LOOPTS
  1921	002441'	000000	010000			0,,010000			; RUNALL
  1922	002442'	000000	004000			0,,004000			; DSPEAR
  1923	002443'	000000	002000			0,,002000			; UDEBUG
  1924	002444'	000000	001000			0,,001000			; MDEBUG
  1925	002445'	000000	000400			0,,000400			; LDEBUG
  1926	002446'	000000	000200			0,,000200			; DDEBUG
  1927
  1928					; Switch text
  1929
  1930	002447'	037 01 0 00 005537'	SWCOMP:	FMSG	<NOPNT>
  1931	002450'	037 01 0 00 005541'		FMSG	<PNTLPT>
  1932	002451'	037 01 0 00 005543'		FMSG	<DING>
  1933	002452'	037 01 0 00 005544'		FMSG	<ERSTOP>
  1934	002453'	037 01 0 00 005546'		FMSG	<PALERS>
  1935	002454'	037 01 0 00 005550'		FMSG	<RELIAB>
  1936	002455'	037 01 0 00 005552'		FMSG	<TXTINH>
  1937	002456'	037 01 0 00 005554'		FMSG	<OPRSEL>
  1938	002457'	037 01 0 00 005556'		FMSG	<TRACE>
  1939	002460'	037 01 0 00 005560'		FMSG	<INHFLT>
  1940	002461'	037 01 0 00 005562'		FMSG	<INHMSG>
  1941	002462'	037 01 0 00 005564'		FMSG	<LOOPGM>
  1942	002463'	037 01 0 00 005566'		FMSG	<LOOPTS>
  1943	002464'	037 01 0 00 005570'		FMSG	<RUNALL>
  1944	002465'	037 01 0 00 005572'		FMSG	<DSPEAR>
  1945	002466'	037 01 0 00 005574'		FMSG	<UDEBUG>
  1946	002467'	037 01 0 00 005576'		FMSG	<MDEBUG>
  1947	002470'	037 01 0 00 005600'		FMSG	<LDEBUG>
  1948	002471'	037 01 0 00 005602'		FMSG	<DDEBUG>
  1949
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 47
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0812

  1950						SUBTTL	Miscellaneous Routines
  1951
  1952					;#********************************************************************
  1953					;* PARSER - Additional CPU parity error service
  1954					;
  1955					; This routine is called by the subroutine package automatically when the
  1956					; processor is interrupted with a memory parity error.  It furnishes some
  1957					; additional useful information.  (A) IPA status (B) Channel  status.  If
  1958					; running on a KL10 in exec mode, and the parity error occurs not  in the
  1959					; program area but the  data  buffer, the  error will be cleared and  the
  1960					; diagnostic will be forced to loop on the error.
  1961					;#********************************************************************
  1962
  1963	002472'	332 00 0 00 030037 	PARSER:	SKIPE	USER			; user mode?
  1964	002473'	260 17 0 00 000000*		GO	FFF			; yes - fatal error
  1965	002474'	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
  1966
  1967	002476'	402 00 0 00 000001 		SETZM	1
  1968	002477'	260 17 0 00 000000*		GO	RDCSR			; read CSR register
  1969	002500'	255 00 0 00 000000 		 JFCL				; error return
  1970	002501'	037 01 0 00 005604'		FMSGC	<************* Memory Parity Error Occurred *************>
  1971	002502'	037 01 0 00 005620'		FMSGC	<CSR:  >
  1972	002503'	200 00 0 00 000001 		MOVE	1
  1973	002504'	037 13 0 00 000001 		PNTHWF
  1974	002505'	260 17 0 00 000000*		GO	GETLOG			; get logout area for channel
  1975	002506'	260 17 0 00 000000*		GO	LOGPNT			; print logout data
  1976	002507'	336 00 0 00 030041 		SKIPN	KLFLG			; KL-PROCESSOR?
  1977	002510'	260 17 0 00 002473*		GO	FFF			; no - fatal error
  1978	002511'	255 00 0 00 000000 		JFCL				; yes
  1979	002512'	256 00 0 00 005622'		XCT	[700400,,0]		; read error addr register
  1980	002513'	404 00 0 00 005623'		AND	0,[17,777777]		; save 22 bit address
  1981	002514'	202 00 0 00 006274'		MOVEM	XYZ#			; save
  1982	002515'	311 00 1 00 006246'		CAML	0,@ABUFF#		; in buffer area
  1983	002516'	254 00 0 00 002521'		JRST	CORECT			; yes. we can continue
  1984	002517'	037 01 0 00 005624'		FMSGCD	<Error not in data buffer area, cannot continue>
  1985	002520'	260 17 0 00 002510*		GO	FFF			; fatal out
  1986
  1987	002521'	037 01 0 00 005637'	CORECT:	FMSGCD	<Error is in the data buffer, diag will continue>
  1988	002522'	256 00 0 00 005652'		XCT	[700240,,0]		; CONI APR
  1989	002523'	554 00 0 00 000000 		HLRZ	0,0			; swaps flags to right
  1990	002524'	435 00 0 00 000001 		IORI	0,1			; include PI channel
  1991	002525'	405 00 0 00 007777 		ANDI	0,7777			; save FLAGS and PI
  1992	002526'	434 00 0 00 005653'		IOR	0,[700200,,120000]	; clr and re-enable
  1993	002527'	256 00 0 00 000000 		XCT	0			; does the CONO
  1994	002530'	256 00 0 00 005652'		XCT	[700240,,0]		; another CONI
  1995	002531'	262 17 0 00 000001 		GET	1
  1996	002532'	262 17 0 00 000000 		GET	0
  1997	002533'	254 12 1 00 030104 		JEN	@ITRCH1			; dismiss the interrupt
  1998
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 48
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0813

  1999
  2000					;#********************************************************************
  2001					;* .COMM - Match a command entered against a command table.
  2002					;
  2003					; Handle erroneous input by returning to re-ask question.
  2004					;
  2005					; Arguments:	AC1 - Contains the SIXBIT command entered
  2006					;		AC2 - Contains address of command table
  2007					;
  2008					; Returns:	RTN+1 - Return error address (for re-asking question)
  2009					;		RTN+2 - Valid command recognized, offset in command
  2010					;			table is returned in AC1
  2011					;
  2012					;#********************************************************************
  2013
  2014	002534'	261 17 0 00 000000 	.COMM:	RPUT	(0,2,3)			; save some AC's
  2015
  2016	002537'	202 01 0 00 002561'		MOVEM	1,.CTYP			; save command typed
  2017
  2018					; Now look through each command
  2019
  2020	002540'	474 03 0 00 000000 		SETO	3,			; init test check pointer
  2021	002541'	350 00 0 00 000003 	.COMM0:	AOS	3			; point to next command
  2022	002542'	260 17 0 00 002565'		GO	.COMM2			; see if this is the test selected
  2023	002543'	254 00 0 00 002541'		JRST	.COMM0			; no - try next command
  2024	002544'	254 00 0 00 002551'		JRST	.COMM1			; yes - go handle
  2025
  2026					; Error exit
  2027
  2028	002545'	262 17 0 00 000003 		RGET	(3,2,0)			; restore AC's
  2029
  2030	002550'	263 17 0 00 000000 		RTN				; return + 1 (error)
  2031
  2032					; Found a valid command
  2033
  2034	002551'	202 03 0 00 002560'	.COMM1:	MOVEM	3,.CGOT			; save command number
  2035	002552'	202 03 0 00 000001 		MOVEM	3,1			; put into AC1
  2036	002553'	262 17 0 00 000003 		RGET	(3,2,0)			; restore AC's
  2037
  2038	002556'	350 00 0 17 000000 		AOS	(P)			; set up return + 2 (valid return)
  2039	002557'	263 17 0 00 000000 		RTN
  2040
  2041					; Storage areas
  2042
  2043	002560'	000000	000000		.CGOT:	0				; command number
  2044
  2045	002561'	000000	000000		.CTYP:	0				; command typed (SIXBIT)
  2046	002562'	000000	000000			0
  2047
  2048	002563'	000000	000000		.CTBL:	0				; command to compare
  2049	002564'	000000	000000			0
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 49
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0814

  2050
  2051					;#********************************************************************
  2052					;* .COMM2 - Compare command typed to table to see if valid
  2053					;
  2054					; AC2 - Contains address of sixbit command table
  2055					; AC3 - Contains current command number (0..)
  2056					;#********************************************************************
  2057
  2058	002565'	261 17 0 00 000000 	.COMM2:	RPUT	(0,1,2,3)		; save AC's
  2059
  2060	002571'	270 02 0 00 000003 		ADD	2,3			; calculate address of entry to compare
  2061	002572'	200 00 0 02 000000 		MOVE	(2)			; get cmd table entry
  2062	002573'	322 00 0 00 002622'		JUMPE	.COMM6			; reached end of table? - yes - exit
  2063	002574'	202 00 0 00 002563'		MOVEM	.CTBL			; save cmd table entry
  2064	002575'	200 02 0 00 005654'		MOVE	2,[POINT 6,.CTYP,5]	; set up byte pointers
  2065	002576'	200 03 0 00 005655'		MOVE	3,[POINT 6,.CTBL,5]	;   ...
  2066	002577'	135 00 0 00 000002 	.COMM3:	LDB	0,2			; get character of typed
  2067	002600'	135 01 0 00 000003 		LDB	1,3			; get character of table
  2068	002601'	322 00 0 00 002607'		JUMPE	.COMM4			; end of typed? yes - done
  2069	002602'	312 00 0 00 000001 		CAME	1			; no - same as table?
  2070	002603'	254 00 0 00 002615'		JRST	.COMM5			; no - no match - exit
  2071	002604'	133 00 0 00 000002 		IBP	2			; increment byte pointers
  2072	002605'	133 00 0 00 000003 		IBP	3			;   ...
  2073	002606'	254 00 0 00 002577'		JRST	.COMM3			; end of table entry? no - keep looping
  2074	002607'	262 17 0 00 000003 	.COMM4:	RGET	(3,2,1,0)		; yes - match - done
  2075
  2076	002613'	350 00 0 17 000000 		AOS	(P)			; set up return+2
  2077	002614'	263 17 0 00 000000 		RTN				; return+2
  2078	002615'	262 17 0 00 000003 	.COMM5:	RGET	(3,2,1,0)		; no match
  2079
  2080	002621'	263 17 0 00 000000 		RTN				; return+1
  2081	002622'	262 17 0 00 000003 	.COMM6:	RGET	(3,2,1,0)		; return as end of list
  2082
  2083	002626'	350 00 0 17 000000 		AOS	(P)			; set up return+2
  2084	002627'	350 00 0 17 000000 		AOS	(P)			; set up return+3
  2085	002630'	263 17 0 00 000000 		RTN				; return+3
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 50
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0815

  2086
  2087					;#********************************************************************
  2088					;* .SARG - Obtain SIXBIT argument
  2089					;
  2090					; Arguments:  ARGFLG - 0 - No more arguments
  2091					;		      -1 - More arguments have been given
  2092					;	      AC1 - Contains executable help message
  2093					;
  2094					; Returns:  ARGUM - Contains SIXBIT argument
  2095					;	    ARGFLG - Updated
  2096					;	    +1 - Error occurred/Altmode typed/Question mark typed
  2097					;	    +2 - No argument
  2098					;	    +3 - Ok
  2099					;#********************************************************************
  2100
  2101	002631'	261 17 0 00 000000 	.SARG:	RPUT	(0,1,2,3,ALTMGO)	; save AC's
  2102
  2103						MOVEI	[SETOM	ALTF		; set up altmode handling to exit
  2104							 PCRL			;   +1 after setting altmode flag
  2105	002636'	201 00 0 00 005656'			 JRST	.SARX1]		;   and skipping a line
  2106	002637'	202 00 0 00 030063 		MOVEM	ALTMGO
  2107
  2108					; Check if any arguments were given at all
  2109
  2110	002640'	336 00 0 00 003052'		SKIPN	ARGFLG			; any arguments?
  2111	002641'	254 00 0 00 002662'		JRST	.SARX2			; no - exit 'no argument'
  2112
  2113					; Check for file input
  2114
  2115	002642'	332 00 0 00 001044*		SKIPE	FINPUT			; file input?
  2116						JRST	[GO	FSARG		; yes - input octal argument
  2117							 JRST	.SARX1		; error or EOF occurred
  2118	002643'	254 00 0 00 005661'			 JRST	.SARG1]		; continue
  2119
  2120					; Input SIXBIT argument
  2121
  2122	002644'	037 10 0 00 000003 	.SARG0:	TTSIXB				; get argument
  2123	002645'	007 00 0 00 002671'		ALTCHK	.SARGA			; error - go handle
  2124
  2125					; Check result
  2126
  2127					.SARG1:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
  2128							 CAIN	40		;   looking for an argument, if not
  2129							 JRST	.SARG0		;   exit
  2130	002646'	322 00 0 00 005664'			 JRST	.SARX2]
  2131	002647'	202 00 0 00 003051'		MOVEM	ARGUM			; save argument
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 51
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0816

  2132
  2133					; Check for last argument
  2134
  2135	002650'	402 00 0 00 003052'		SETZM	ARGFLG			; clear 'argument typed' flag
  2136	002651'	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
  2137	002652'	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
  2138	002653'	476 00 0 00 003052'		SETOM	ARGFLG			; no - set 'argument typed' flag
  2139
  2140					; Check if this should have been the last argument
  2141
  2142	002654'	331 00 0 17 777775 		SKIPL	-3(P)			; help message negative?
  2143	002655'	254 00 0 00 002661'		JRST	.+4			; no - exit
  2144	002656'	260 17 0 00 003077'		GO	LASARG			; check for last argument
  2145	002657'	254 00 0 00 002663'		JRST	.SARX1			; error - exit +1
  2146						JRST	[MOVM	1,-3(P)		; any help here?
  2147							 JUMPE	1,.SARX1	; no - continue
  2148							 XCT	1		; yes - execute it
  2149	002660'	254 00 0 00 005670'			 JRST	.SARX1]		; yes - handle
  2150	002661'	350 00 0 17 777773 		AOS	-5(P)			; adjust return
  2151	002662'	350 00 0 17 777773 	.SARX2:	AOS	-5(P)			; adjust return
  2152
  2153					; Exit
  2154
  2155	002663'	262 17 0 00 030063 	.SARX1:	RGET	(ALTMGO,3,2,1,0)	; restore AC's
  2156
  2157	002670'	263 17 0 00 000000 		RTN				; return
  2158
  2159					; Altmode typed
  2160
  2161	002671'	262 17 0 00 006273'	.SARGA:	GET	XXT#			; adjust stack properly
  2162	002672'	336 00 0 00 030225 		SKIPN	$TWCNT			; did a timeout occur?
  2163	002673'	254 00 0 00 002662'		JRST	.SARX2			; yes - assume 'no argument'
  2164	002674'	200 01 0 00 030231 		MOVE	1,$TTCHR		; no - get character typed
  2165	002675'	306 01 0 00 000077 		CAIN	1,77			; was a question mark typed?
  2166						JRST	[MOVM	1,-3(P)		; yes - any help here?
  2167							 JUMPE	1,.SARX1	; no - exit
  2168					 		 XCT	1		; yes - execute it
  2169	002676'	254 00 0 00 005670'			 JRST	.SARX1]		; exit
  2170	002677'	302 01 0 00 000040 		CAIE	1,40			; space (delimiter character) typed?
  2171						JRST	[FMSGCD	<? Argument error> ; no - error - exit
  2172	002700'	254 00 0 00 005701'			 JRST	.SARX1]
  2173	002701'	254 00 0 00 002646'		JRST	.SARG1			; continue
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 52
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0817

  2174
  2175					;#********************************************************************
  2176					;* .OARG - Obtain octal argument
  2177					;
  2178					; Arguments:  ARGFLG - 0 - No more arguments
  2179					;		      -1 - More arguments have been given
  2180					;	      AC1 - Contains executable help message
  2181					;
  2182					; Returns:  ARGUM - Contains octal argument
  2183					;	    ARGFLG - Updated
  2184					;
  2185					;	    +1 - Error occurred/Altmode typed/Question mark typed
  2186					;	    +2 - No argument
  2187					;	    +3 - Ok
  2188					;#********************************************************************
  2189
  2190	002702'	261 17 0 00 000000 	.OARG:	RPUT	(0,1,2,3,ALTMGO)	; save AC's
  2191
  2192						MOVEI	[SETOM	ALTF		; set up altmode handling to exit
  2193							 PCRL			;   +1 after setting altmode flag
  2194	002707'	201 00 0 00 005703'			 JRST	.OARX1]		;   and skipping a line
  2195	002710'	202 00 0 00 030063 		MOVEM	ALTMGO
  2196
  2197					; Check if any arguments were given at all
  2198
  2199	002711'	336 00 0 00 003052'		SKIPN	ARGFLG			; any arguments?
  2200	002712'	254 00 0 00 002734'		JRST	.OARX2			; no - exit 'no argument'
  2201
  2202					; Check for file input
  2203
  2204	002713'	332 00 0 00 002642*		SKIPE	FINPUT			; file input?
  2205						JRST	[GO	FOARG		; yes - input octal argument
  2206							 JRST	.OARX1		; error or EOF occurred
  2207	002714'	254 00 0 00 005706'			 JRST	.OARG1]		; continue
  2208
  2209					; Input octal argument
  2210
  2211	002715'	037 03 0 00 000003 	.OARG0:	TTIOCT				; get a number
  2212	002716'	007 00 0 00 002743'		ALTCHK	.OARGA			; error - go handle
  2213
  2214					; Check result
  2215
  2216	002717'	202 00 0 00 003051'	.OARG1:	MOVEM	ARGUM			; save argument
  2217	002720'	336 00 0 00 030510 		SKIPN	TTNBRF			; any number typed?
  2218						JRST	[MOVE	1,$TTCHR	; anything typed?  if a space, keep
  2219							 CAIN	1,40		;   looking for an argument, if not
  2220							 JRST	.OARG0		;   exit
  2221	002721'	254 00 0 00 005711'	 		 JRST	.OARX2]
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 53
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0818

  2222
  2223					; Check for last argument
  2224
  2225	002722'	402 00 0 00 003052'		SETZM	ARGFLG			; clear 'argument typed' flag
  2226	002723'	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
  2227	002724'	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
  2228	002725'	476 00 0 00 003052'		SETOM	ARGFLG			; no - set 'argument typed' flag
  2229
  2230					; Check if this should have been the last argument
  2231
  2232	002726'	331 00 0 17 777775 		SKIPL	-3(P)			; help message negative?
  2233	002727'	254 00 0 00 002733'		JRST	.+4			; no - exit
  2234	002730'	260 17 0 00 003077'		GO	LASARG			; check for last argument
  2235	002731'	254 00 0 00 002735'		JRST	.OARX1			; error - exit +1
  2236						JRST	[MOVM	1,-3(P)		; any help here?
  2237							 JUMPE	1,.OARX1	; no - continue
  2238							 XCT	1		; yes - execute it
  2239	002732'	254 00 0 00 005715'			 JRST	.OARX1]		; yes - handle
  2240	002733'	350 00 0 17 777773 		AOS	-5(P)			; adjust return
  2241	002734'	350 00 0 17 777773 	.OARX2:	AOS	-5(P)			; adjust return
  2242
  2243					; Exit
  2244
  2245	002735'	262 17 0 00 030063 	.OARX1:	RGET	(ALTMGO,3,2,1,0)	; restore AC's
  2246
  2247	002742'	263 17 0 00 000000 		RTN				; return
  2248
  2249					; Altmode typed
  2250
  2251	002743'	262 17 0 00 006273'	.OARGA:	GET	XXT#			; adjust stack properly
  2252	002744'	336 00 0 00 030225 		SKIPN	$TWCNT			; did a timeout occur?
  2253	002745'	254 00 0 00 002734'		JRST	.OARX2			; yes - assume 'no argument'
  2254	002746'	200 01 0 00 030231 		MOVE	1,$TTCHR		; no - get character typed
  2255	002747'	306 01 0 00 000077 		CAIN	1,77			; was a question mark typed?
  2256						JRST	[MOVM	1,-3(P)		; yes - any help here?
  2257							 JUMPE	1,.OARX1	; no - exit
  2258					 		 XCT	1		; yes - execute it
  2259	002750'	254 00 0 00 005715'			 JRST	.OARX1]		; exit
  2260	002751'	302 01 0 00 000040 		CAIE	1,40			; space (delimiter character) typed?
  2261						JRST	[FMSGCD	<? Argument error> ; no - error - exit
  2262	002752'	254 00 0 00 005721'			 JRST	.OARX1]
  2263	002753'	200 00 0 00 030233 		MOVE	$TYPNB			; get number typed
  2264	002754'	254 00 0 00 002717'		JRST	.OARG1			;   and exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 54
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0819

  2265
  2266					;#********************************************************************
  2267					;* DECYN - Decode an argument which should be NO or YES
  2268					;
  2269					; Arguments:  ARGUM - Contains sixbit argument
  2270					;
  2271					; Return:     +1 - Unrecognizable (print message also)
  2272					;	      +2 - No
  2273					;	      +3 - Yes
  2274					;#********************************************************************
  2275
  2276	002755'	261 17 0 00 000000 	DECYN:	RPUT	(0,1,2)			; save AC's
  2277
  2278	002760'	200 01 0 00 003051'		MOVE	1,ARGUM			; get command into AC1
  2279	002761'	201 02 0 00 002773'		MOVEI	2,DECLIS		; get address of cmd list
  2280	002762'	260 17 0 00 002534'		GO	.COMM			; handle command decoding
  2281						 JRST	[FMSGCD	<? Unrecognized argument>
  2282	002763'	254 00 0 00 005731'			 JRST	DECERR]
  2283	002764'	332 00 0 00 000001 		SKIPE	1			; NO typed?
  2284	002765'	350 00 0 17 777775 		AOS	-3(P)		; increment return
  2285	002766'	350 00 0 17 777775 		AOS	-3(P)		; increment return
  2286	002767'	262 17 0 00 000002 	DECERR:	RGET	(2,1,0)		; restore AC's
  2287
  2288	002772'	263 17 0 00 000000 		RTN			; return
  2289
  2290	002773'	56 57 00 00 00 00 	DECLIS:	SIXBIT	/NO/
  2291	002774'	71 45 63 00 00 00 		SIXBIT	/YES/
  2292	002775'	000 00 0 00 000000 		Z
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 55
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0820

  2293
  2294					;#********************************************************************
  2295					;* .DARG - Obtain octal/decimal argument
  2296					;
  2297					; Arguments:  ARGFLG - 0 - No more arguments
  2298					;		      -1 - More arguments have been given
  2299					;	      AC1 - Contains executable help message
  2300					;
  2301					; Returns:  ARGUM - Contains octal argument
  2302					;	    ARGFLG - Updated
  2303					;
  2304					;	    +1 - Error occurred/Altmode typed/Question mark typed
  2305					;	    +2 - No argument
  2306					;	    +3 - Ok
  2307					;#********************************************************************
  2308
  2309	002776'	261 17 0 00 000000 	.DARG:	RPUT	(0,1,2,3,ALTMGO)	; save AC's
  2310
  2311						MOVEI	[SETOM	ALTF		; set up altmode handling to exit
  2312							 PCRL			;   +1 after setting altmode flag
  2313	003003'	201 00 0 00 005733'			 JRST	.DARX1]		;   and skipping a line
  2314	003004'	202 00 0 00 030063 		MOVEM	ALTMGO
  2315
  2316					; Check if any arguments were given at all
  2317
  2318	003005'	336 00 0 00 003052'		SKIPN	ARGFLG			; any arguments?
  2319	003006'	254 00 0 00 003030'		JRST	.DARX2			; no - exit 'no argument'
  2320
  2321					; Check for file input
  2322
  2323	003007'	332 00 0 00 002713*		SKIPE	FINPUT			; file input?
  2324						JRST	[GO	FOARG		; yes - input octal argument
  2325							 JRST	.DARX1		; error or EOF occurred
  2326	003010'	254 00 0 00 005736'			 JRST	.DARG1]		; continue
  2327
  2328					; Input octal/decimal argument
  2329
  2330	003011'	037 05 0 00 000003 	.DARG0:	TTICNV				; get a number
  2331	003012'	007 00 0 00 003037'		ALTCHK	.DARGA			; error - go handle
  2332
  2333					; Check result
  2334
  2335	003013'	202 00 0 00 003051'	.DARG1:	MOVEM	ARGUM			; save argument
  2336	003014'	336 00 0 00 030510 		SKIPN	TTNBRF			; any number typed?
  2337						JRST	[MOVE	1,$TTCHR	; anything typed?  if a space, keep
  2338							 CAIN	1,40		;   looking for an argument, if not
  2339							 JRST	.DARG0		;   exit
  2340	003015'	254 00 0 00 005741'			 JRST	.DARX2]
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 56
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0821

  2341
  2342					; Check for last argument
  2343
  2344	003016'	402 00 0 00 003052'		SETZM	ARGFLG			; clear 'argument typed' flag
  2345	003017'	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
  2346	003020'	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
  2347	003021'	476 00 0 00 003052'		SETOM	ARGFLG			; no - set 'argument typed' flag
  2348
  2349					; Check if this should have been the last argument
  2350
  2351	003022'	331 00 0 17 777775 		SKIPL	-3(P)			; help message negative?
  2352	003023'	254 00 0 00 003027'		JRST	.+4			; no - exit
  2353	003024'	260 17 0 00 003077'		GO	LASARG			; check for last argument
  2354	003025'	254 00 0 00 003031'		JRST	.DARX1			; error - exit +1
  2355						JRST	[MOVM	1,-3(P)		; any help here?
  2356							 JUMPE	1,.DARX1	; no - continue
  2357							 XCT	1		; yes - execute it
  2358	003026'	254 00 0 00 005745'			 JRST	.DARX1]		; yes - handle
  2359	003027'	350 00 0 17 777773 		AOS	-5(P)			; adjust return
  2360	003030'	350 00 0 17 777773 	.DARX2:	AOS	-5(P)			; adjust return
  2361
  2362					; Exit
  2363
  2364	003031'	262 17 0 00 030063 	.DARX1:	RGET	(ALTMGO,3,2,1,0)	; restore AC's
  2365
  2366	003036'	263 17 0 00 000000 		RTN				; return
  2367
  2368	003037'	262 17 0 00 006273'	.DARGA:	GET	XXT#			; adjust stack properly
  2369	003040'	336 00 0 00 030225 		SKIPN	$TWCNT			; did a timeout occur?
  2370	003041'	254 00 0 00 003030'		JRST	.DARX2			; yes - assume 'no argument'
  2371	003042'	200 01 0 00 030231 		MOVE	1,$TTCHR		; no - get character typed
  2372	003043'	306 01 0 00 000077 		CAIN	1,77			; was a question mark typed?
  2373						JRST	[MOVM	1,-3(P)		; yes - any help here?
  2374							 JUMPE	1,.DARX1	; no - exit
  2375					 		 XCT	1		; yes - execute it
  2376	003044'	254 00 0 00 005745'			 JRST	.DARX1]		; exit
  2377	003045'	302 01 0 00 000040 		CAIE	1,40			; space (delimiter character) typed?
  2378						JRST	[FMSGCD	<? Argument error> ; no - error - exit
  2379	003046'	254 00 0 00 005751'			 JRST	.DARX1]
  2380	003047'	200 00 0 00 030233 		MOVE	$TYPNB			; get number typed
  2381	003050'	254 00 0 00 003013'		JRST	.DARG1			;   and exit
  2382
  2383					; Argument variables
  2384
  2385	003051'	000000	000000		ARGUM:	0
  2386	003052'	000000	000000		ARGFLG:	0
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 57
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0822

  2387
  2388					;#********************************************************************
  2389					;* CHKARG - Check for argument when there shouldn't be any
  2390					;
  2391					; Arguments:	AC1 - Contains confirmation message
  2392					;
  2393					; Return:	+1 - An argument was typed
  2394					;		+2 - No argument was typed
  2395					;#********************************************************************
  2396
  2397	003053'	261 17 0 00 000000 	CHKARG:	RPUT	(0,1,ALTMGO)		; save AC's
  2398
  2399	003056'	336 00 0 00 003052'		SKIPN	ARGFLG			; any argument at all?
  2400	003057'	254 00 0 00 003072'		JRST	CHKARX			; no - exit +2
  2401						MOVEI	[SETOM	ALTF		; set up altmode handling to exit
  2402							 PCRL			;   +1 after setting altmode flag
  2403	003060'	201 00 0 00 005753'			 JRST	CHKARA]		;   and skipping a line
  2404	003061'	202 00 0 00 030063 		MOVEM	ALTMGO
  2405
  2406					; Input argument to see if ? typed
  2407
  2408	003062'	332 00 0 00 003007*		SKIPE	FINPUT			; file input switch set?
  2409						JRST	[GO	FEOL		; yes - move to end of line
  2410	003063'	254 00 0 00 005756'			 JRST	CHKARX]
  2411	003064'	037 05 0 00 000003 	CHKAR0:	TTICNV				; get a number
  2412						ALTCHK	[GET	XXT#		; adjust stack properly
  2413							 SKIPN	$TWCNT		; did a timeout occur?
  2414							 JRST	CHKARY		; yes - error
  2415							 MOVE	1,$TTCHR	; no - get character typed
  2416							 CAIE	1,77		; was a question mark typed?
  2417							 JRST	.+1		; no - error
  2418							 XCT	-1(P)		; print help message
  2419	003065'	007 00 0 00 005760'			 JRST	CHKARA]		;   and exit
  2420	003066'	336 00 0 00 030510 		SKIPN	TTNBRF			; any number typed?
  2421						JRST	[MOVE	$TTCHR		; anything typed?  if a space, keep
  2422							 CAIN	40		;   looking for an argument, if not
  2423							 JRST	CHKAR0		;   exit
  2424							 CAIN	15
  2425							 JRST	CHKARX
  2426	003067'	254 00 0 00 005770'			 JRST	CHKARY]
  2427
  2428	003070'	037 01 0 00 005776'	CHKARY:	FMSGCD	<? No argument expected>
  2429	003071'	334 00 0 00 000000 		SKIPA
  2430	003072'	350 00 0 17 777775 	CHKARX:	AOS	-3(P)			; adjust stack
  2431	003073'	262 17 0 00 030063 	CHKARA:	RGET	(ALTMGO,1,0)		; restore AC's
  2432
  2433	003076'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 58
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0823

  2434
  2435					;#********************************************************************
  2436					;* LASARG - Check for last argument when there shouldn't be any more
  2437					;
  2438					; Return:	+1 - Error - more arguments
  2439					;		+2 - Question mark typed
  2440					;		+3 - No more arguments typed
  2441					;#********************************************************************
  2442
  2443	003077'	261 17 0 00 000000 	LASARG:	RPUT	(0,1,ALTMGO)		; save AC's
  2444
  2445	003102'	336 00 0 00 003052'		SKIPN	ARGFLG			; any argument at all?
  2446	003103'	254 00 0 00 003116'		JRST	LASARX			; no - exit +3
  2447						MOVEI	[SETOM	ALTF		; set up altmode handling to exit
  2448							 PCRL			;   +1 after setting altmode flag
  2449	003104'	201 00 0 00 006004'			 JRST	LASARA]		;   and skipping a line
  2450	003105'	202 00 0 00 030063 		MOVEM	ALTMGO
  2451	003106'	332 00 0 00 003062*		SKIPE	FINPUT			; file input switch set?
  2452						JRST	[GO	FEOL		; yes - move to end of line
  2453	003107'	254 00 0 00 006007'			 JRST	LASARX]
  2454	003110'	037 05 0 00 000003 	LASAR0:	TTICNV				; get a number
  2455						ALTCHK	[GET	XXT#		; adjust stack properly
  2456							 SKIPN	$TWCNT		; did a timeout occur?
  2457							 JRST	LASAR1		; yes - error
  2458							 MOVE	1,$TTCHR	; get character typed
  2459							 CAIE	1,77		; question mark?
  2460							 JRST	.+1		; yes - continue
  2461	003111'	007 00 0 00 006011'			 JRST	LASARX+1] 	; no - handle
  2462	003112'	336 00 0 00 030510 		SKIPN	TTNBRF			; any number typed?
  2463						JRST	[MOVE	$TTCHR		; anything typed?  if a space, keep
  2464							 CAIN	40		;   looking for an argument, if not
  2465							 JRST	LASAR0		;   exit
  2466							 CAIN	15
  2467							 JRST	LASARX
  2468	003113'	254 00 0 00 006020'			 JRST	LASAR1]
  2469
  2470	003114'	037 01 0 00 006026'	LASAR1:	FMSGCD	<? Too many arguments>
  2471	003115'	254 00 0 00 003120'		JRST	.+3
  2472	003116'	350 00 0 17 777775 	LASARX:	AOS	-3(P)			; adjust stack
  2473	003117'	350 00 0 17 777775 		AOS	-3(P)
  2474	003120'	262 17 0 00 030063 	LASARA:	RGET	(ALTMGO,1,0)		; restore AC's
  2475
  2476	003123'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 59
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0824

  2477
  2478					;#********************************************************************
  2479					;* FIOFF - Routine to turn off the 'file input' switch
  2480					;#********************************************************************
  2481
  2482	003124'	336 00 0 00 003106*	FIOFF:	SKIPN	FINPUT			; switch set?
  2483	003125'	263 17 0 00 000000 		RTN				; no - return
  2484	003126'	261 17 0 00 000000 		PUT	0			; yes - save AC0
  2485	003127'	037 01 0 00 006033'		FMSGC	<[Input from >		; print message
  2486	003130'	200 00 0 00 001036*		MOVE	TAKFIL			; print file name
  2487	003131'	037 01 0 00 000002 		PNTSXF
  2488	003132'	037 01 0 00 000056 		PNTCIF	"."
  2489	003133'	200 00 0 00 000000#		MOVE	TAKFIL+1
  2490	003134'	037 01 0 00 000002 		PNTSXF
  2491	003135'	037 01 0 00 006036'		FMSGD	< aborted]>
  2492	003136'	402 00 0 00 003124*		SETZM	FINPUT			; clear 'file input' flag
  2493	003137'	262 17 0 00 000000 		GET	0			; restore AC0
  2494	003140'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 60
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0825

  2495
  2496					;#********************************************************************
  2497					;* FINCMD - Input a sixbit command from a file
  2498					;
  2499					; Return +1 - Error/EOF
  2500					;	 +2 - Sixbit word in AC0
  2501					;#********************************************************************
  2502
  2503	003141'	261 17 0 00 000001 	FINCMD:	RPUT	(1,2)			; save AC's
  2504
  2505	003143'	402 00 0 00 006253'		SETZM	FINSIX#			; initialize word
  2506	003144'	400 01 0 00 000000 		SETZ	1,			; byte count
  2507	003145'	200 02 0 00 006041'		MOVE	2,[POINT 6,FINSIX]	; initial byte pointer
  2508
  2509	003146'	260 17 0 00 001023'	FINCM0:	GO	CHRINS			; get a character
  2510	003147'	254 00 0 00 003175'		 JRST	FINCMX			; exit - error or EOF occurred
  2511	003150'	306 00 0 00 000040 		CAIN	" "			; space typed?
  2512	003151'	254 00 0 00 003165'		JRST	FINCMC			; yes - exit valid command in AC0
  2513	003152'	306 00 0 00 000054 		CAIN	","			; comma typed?
  2514	003153'	254 00 0 00 003165'		JRST	FINCMC			; yes - exit valid command in AC0
  2515	003154'	306 00 0 00 000015 		CAIN	15			; carriage return typed?
  2516	003155'	254 00 0 00 003165'		JRST	FINCMC			; yes - exit valid command in AC0
  2517	003156'	350 00 0 00 000001 		AOS	1			; increment byte count
  2518	003157'	303 00 0 00 000140 		CAILE	140			; lowercase?
  2519	003160'	275 00 0 00 000040 		SUBI	40			; yes - make into upper case
  2520	003161'	275 00 0 00 000040 		SUBI	40			; convert to sixbit
  2521	003162'	307 01 0 00 000006 		CAIG	1,6			; exceed 6 characters?
  2522	003163'	136 00 0 00 000002 		IDPB	2			; no - save sixbit byte
  2523	003164'	254 00 0 00 003146'		JRST	FINCM0			; get next character
  2524
  2525					; Exit with command in AC0
  2526
  2527	003165'	202 00 0 00 030231 	FINCMC:	MOVEM	$TTCHR			; save last character typed
  2528	003166'	306 00 0 00 000015 		CAIN	15			; carriage return?
  2529						GO	[GO	CHRINS		; yes - strip off the line feed also
  2530							 JFCL
  2531	003167'	260 17 0 00 006042'			 RTN]
  2532	003170'	200 00 0 00 006253'		MOVE	FINSIX			; get sixbit command
  2533	003171'	350 00 0 17 777776 		AOS	-2(P)			; set up return + 1
  2534	003172'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  2535
  2536	003174'	263 17 0 00 000000 		RTN				; return
  2537
  2538					; Exit with error or EOF condition
  2539
  2540	003175'	260 17 0 00 003124'	FINCMX:	GO	FIOFF			; clear 'file input' switch
  2541	003176'	400 00 0 00 000000 		SETZ	0,			; clear command typed
  2542	003177'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  2543
  2544	003201'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 61
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0826

  2545
  2546					;#********************************************************************
  2547					;* FSARG - Input a sixbit argument from a file
  2548					;
  2549					; Return +1 - Error/EOF
  2550					;	 +2 - Sixbit word in AC0
  2551					;#********************************************************************
  2552
  2553	003202'	261 17 0 00 000001 	FSARG:	RPUT	(1,2)			; save AC's
  2554
  2555	003204'	402 00 0 00 006253'		SETZM	FINSIX			; initialize word
  2556	003205'	400 01 0 00 000000 		SETZ	1,			; byte count
  2557	003206'	200 02 0 00 006041'		MOVE	2,[POINT 6,FINSIX]	; initial byte pointer
  2558
  2559	003207'	260 17 0 00 001023'	FSARG0:	GO	CHRINS			; get a character
  2560	003210'	254 00 0 00 003236'		 JRST	FSARGX			; exit - error or EOF occurred
  2561	003211'	306 00 0 00 000040 		CAIN	" "			; space typed?
  2562	003212'	254 00 0 00 003226'		JRST	FSARGC			; yes - exit valid command in AC0
  2563	003213'	306 00 0 00 000054 		CAIN	","			; comma typed?
  2564	003214'	254 00 0 00 003226'		JRST	FSARGC			; yes - exit valid command in AC0
  2565	003215'	306 00 0 00 000015 		CAIN	15			; carriage return typed?
  2566	003216'	254 00 0 00 003226'		JRST	FSARGC			; yes - exit valid command in AC0
  2567	003217'	350 00 0 00 000001 		AOS	1			; increment byte count
  2568	003220'	303 00 0 00 000140 		CAILE	140			; lowercase?
  2569	003221'	275 00 0 00 000040 		SUBI	40			; yes - make into upper case
  2570	003222'	275 00 0 00 000040 		SUBI	40			; convert to sixbit
  2571	003223'	307 01 0 00 000006 		CAIG	1,6			; exceed 6 characters?
  2572	003224'	136 00 0 00 000002 		IDPB	2			; no - save sixbit byte
  2573	003225'	254 00 0 00 003207'		JRST	FSARG0			; get next character
  2574
  2575					; Exit with command in AC0
  2576
  2577	003226'	202 00 0 00 030231 	FSARGC:	MOVEM	$TTCHR			; save last character typed
  2578	003227'	306 00 0 00 000015 		CAIN	15			; carriage return?
  2579						GO	[GO	CHRINS		; yes - strip off the line feed also
  2580							 JFCL
  2581	003230'	260 17 0 00 006042'			 RTN]
  2582	003231'	200 00 0 00 006253'		MOVE	FINSIX			; get sixbit command
  2583	003232'	350 00 0 17 777776 		AOS	-2(P)			; set up return + 1
  2584	003233'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  2585
  2586	003235'	263 17 0 00 000000 		RTN				; return
  2587
  2588					; Exit with error or EOF condition
  2589
  2590	003236'	260 17 0 00 003124'	FSARGX:	GO	FIOFF			; clear 'file input' switch
  2591	003237'	400 00 0 00 000000 		SETZ	0,			; clear command typed
  2592	003240'	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  2593
  2594	003242'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 62
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0827

  2595
  2596					;#********************************************************************
  2597					;* FOARG - Input a octal argument from a file
  2598					;
  2599					; Return +1 - Error/EOF
  2600					;	 +2 - Octal data in AC0
  2601					;#********************************************************************
  2602
  2603	003243'	261 17 0 00 000001 	FOARG:	RPUT	(1,2,3)			; save AC's
  2604
  2605	003246'	400 01 0 00 000000 		SETZ	1,			; initialize byte count
  2606	003247'	403 02 0 00 000003 		SETZB	2,3			; initialize octal and decimal result
  2607	003250'	476 00 0 00 006254'		SETOM	FOFLAG#			; set 'octal' flag
  2608	003251'	260 17 0 00 001023'	FOARG0:	GO	CHRINS			; get a character
  2609	003252'	254 00 0 00 003317'		 JRST	FOARGX			; exit - error or EOF occurred
  2610	003253'	306 00 0 00 000040 		CAIN	" "			; space typed?
  2611	003254'	254 00 0 00 003303'		JRST	FOARGC			; yes - exit valid command in AC0
  2612	003255'	306 00 0 00 000054 		CAIN	","			; comma typed?
  2613	003256'	254 00 0 00 003303'		JRST	FOARGC			; yes - exit valid command in AC0
  2614	003257'	306 00 0 00 000015 		CAIN	15			; carriage return typed?
  2615	003260'	254 00 0 00 003303'		JRST	FOARGC			; yes - exit valid command in AC0
  2616	003261'	306 00 0 00 000056 		CAIN	"."			; decimal point typed?
  2617	003262'	402 00 0 00 006254'		SETZM	FOFLAG			; yes - clear octal flag
  2618	003263'	306 00 0 00 000056 		CAIN	"."			; decimal point typed?
  2619	003264'	254 00 0 00 003251'		JRST	FOARG0			; yes - keep looking for delimiter
  2620	003265'	350 00 0 00 000001 		AOS	1			; increment byte count
  2621	003266'	303 01 0 00 000014 		CAILE	1,^D12			; exceed 12 digits?
  2622	003267'	254 00 0 00 003317'		JRST	FOARGX			; yes - exit - error
  2623	003270'	275 00 0 00 000060 		SUBI	60			; convert to octal 0..n
  2624	003271'	331 00 0 00 000000 		SKIPL	0			; decimal or octal?
  2625	003272'	303 00 0 00 000011 		CAILE	^D9			; (between 0 and 9)
  2626	003273'	254 00 0 00 003317'		JRST	FOARGX			; no - exit - error
  2627	003274'	221 02 0 00 000012 		IMULI	2,^D10			; update decimal number
  2628	003275'	272 00 0 00 000002 		ADDM	2			;  ...
  2629	003276'	242 03 0 00 000003 		LSH	3,3			; update octal number
  2630	003277'	272 00 0 00 000003 		ADDM	3			;  ...
  2631	003300'	303 00 0 00 000007 		CAILE	7			; decimal number?
  2632	003301'	402 00 0 00 006254'		SETZM	FOFLAG			; yes - clear octal flag
  2633	003302'	254 00 0 00 003251'		JRST	FOARG0			; get next character
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 63
DFNIAU	MAC	 6-Aug-83 09:31		Miscellaneous Routines                                                             SEQ 0828

  2634
  2635					; Exit with command in AC0
  2636
  2637	003303'	476 00 0 00 030510 	FOARGC:	SETOM	TTNBRF			; indicate that a number was typed
  2638	003304'	202 00 0 00 030231 		MOVEM	$TTCHR			; save last character typed
  2639	003305'	306 00 0 00 000015 		CAIN	15			; carriage return?
  2640						GO	[GO	CHRINS		; yes - strip off the line feed also
  2641							 JFCL
  2642	003306'	260 17 0 00 006042'			 RTN]
  2643	003307'	200 00 0 00 000002 		MOVE	2			; get decimal number
  2644	003310'	332 00 0 00 006254'		SKIPE	FOFLAG			; octal number?
  2645	003311'	200 00 0 00 000003 		MOVE	3			; yes - get octal number
  2646	003312'	350 00 0 17 777775 		AOS	-3(P)			; set up return + 1
  2647	003313'	262 17 0 00 000003 		RGET	(3,2,1)			; restore AC's
  2648
  2649	003316'	263 17 0 00 000000 		RTN				; return
  2650
  2651					; Exit with error or EOF condition
  2652
  2653	003317'	260 17 0 00 003124'	FOARGX:	GO	FIOFF			; clear 'file input' switch
  2654	003320'	400 00 0 00 000000 		SETZ	0,			; clear command typed
  2655	003321'	262 17 0 00 000003 		RGET	(3,2,1)			; restore AC's
  2656
  2657	003324'	263 17 0 00 000000 		RTN				; return
  2658
  2659
  2660					;#********************************************************************
  2661					;* FEOL - Skip characters until end of line is reached
  2662					;#********************************************************************
  2663
  2664	003325'	261 17 0 00 000000 	FEOL:	PUT	0			; save AC0
  2665	003326'	260 17 0 00 001023'	FEOL0:	GO	CHRINS			; get a character
  2666	003327'	254 00 0 00 003332'		JRST	FEOLX			; error/EOF - exit
  2667	003330'	302 00 0 00 000012 		CAIE	12			; LF yet?
  2668	003331'	254 00 0 00 003326'		JRST	FEOL0			; no - keep looking
  2669	003332'	262 17 0 00 000000 	FEOLX:	GET	0			; restore AC0
  2670	003333'	263 17 0 00 000000 		RTN				; return
  2671
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 64
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0829

  2672						SUBTTL	Scope Looping And Error Reporting Routine
  2673
  2674					;#*********************************************************************
  2675					;* SCOPE1 - Error reporter and scope loop controller
  2676					;
  2677					; This routine is responsible for error reporting and scope looping.
  2678					; Error looping and print options are controlled by switches.
  2679					;
  2680					; Switch Options:
  2681					; --------------
  2682					;
  2683					; DING - 0 No bell on error
  2684					;	 1 Ring bell on error (forced)
  2685					;
  2686					; LOOPER - 0 Proceed on error
  2687					;	   1 Loop on first occurence of an error
  2688					;
  2689					; ERSTOP - 0 Don't halt on error
  2690					;	   1 Halt on error (exec mode only)
  2691					;
  2692					; PALERS - 0 Print error data on first occurance of error only
  2693					;	   1 Print error data for all repetitive errors
  2694					;
  2695					; The following two locations should be initialized by the mainline to 0
  2696					; at the start of each test:  	ERFLG	Error/no-error flag
  2697					;				ERCNT	A local error counter
  2698					;				ERRPC	PC of last error
  2699					;
  2700					; The scope/error handler  is called by executing a UUO whose E-field is a
  2701					; pointer to additional error information. The UUO has a skip and non-skip
  2702					; return  to  provide the necessary  looping  capabilities.  The  non-skip
  2703					; return is the  loop  on error return and the skip return is the continue
  2704					; test  (or  no error)  return.  Pgm  branching is accomplished by placing
  2705					; appropriate JRSTs in the return locations.
  2706					;
  2707					; Example:	CONSZ   DEV,ARG		; test instruction
  2708					; -------	SETOM	ERFLG		; detected an error
  2709					;		SCOPE	TAG		; call the routine via UUO
  2710					;		JRST	ERADR		; loop return
  2711					;		JRST	OKADR		; continue return
  2712					;
  2713					;	TAG:	Cntrl Bits,,ADDR	; variable # of error descriptor
  2714					;		Cntrl Bits,,ADDR	;   entries
  2715					;		 ...
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 65
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0830

  2716
  2717					; Each word specifies messages or print routines.  Each  message  printed
  2718					; is followed by a CRLF.  The right half of each word is a pointer to the
  2719					; start of the  ASCIZ  message or print routine.  The left half furnishes
  2720					; message control  information to SCOPE, decoded as follows:
  2721					;
  2722					;   1B2 (MSG) - Right half of word is address of an ASCIZ message.
  2723					;
  2724					;   2B2 (CALL) - Right half of word is address of a special print
  2725					;		 routine.  SCOPE saves AC's 0,1,2,3 so this routine
  2726					;		 does not have to preserve these.
  2727					;
  2728					;   3B2 (GOTO) - Right half of word is address where to resume this
  2729					;		 error descriptor table.
  2730					;
  2731					;   1B3 (TXNOT) - Print/call entry if TXTINH not set
  2732					;
  2733					;   1B4 (TXYES) - Print/call entry if TXTINH set
  2734					;
  2735					;   3B4 (TXALL) - Print/call entry always
  2736					;
  2737					;   1B5 (LAST) - Right half of word is address of an ASCIZ message.
  2738					;
  2739					; These bits allows short and normal printout modes, branching, and two
  2740					; level module callout priority.
  2741					;
  2742					; Example: (TXTINH is not set)
  2743					;
  2744					;	+-+-+-+-+-+-+
  2745					;	ERROR: TEST-XXX (Ebus test)
  2746					;	SCOPE PC = XXXXXX   TEST PC = XXXXXX   SWITCHES = XXXXXX XXXXXX
  2747					;	Error description ...
  2748					;	Error description ...
  2749					;		...
  2750					;	-------------
  2751					;
  2752					; Example: (TXTINH is set)
  2753					;
  2754					;	+-+-+-+-+-+-+
  2755					;	ERROR:  TST-XXX SCOPE PC-XXXXXX SW-XXXXXX XXXXXX
  2756					;	Error description ...
  2757					;	Error description ...
  2758					;		...
  2759					;	-------------
  2760					;
  2761					; NOTE:  If the diagnostic is in debug mode (UDEBUG switch set), no error
  2762					;  messages are normally printed.  With MDEBUG switch set, the error flag
  2763					;  is set thereby causing each error message to be printed.
  2764					;#*********************************************************************
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 66
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0831

  2765
  2766	003334'	261 17 0 00 030114 	SCOPE1:	PUT	$SVUPC			; save the UUO PC
  2767	003335'	261 17 0 00 030113 		PUT	$SVUUO			; save the actual UUO
  2768	003336'	261 17 0 00 000000 		RPUT	(0,1,2)			; save some AC's
  2769
  2770
  2771					; The stack now looks like this:
  2772					;
  2773					;   -5(P) The return addr for SCOPE UUO
  2774					;   -4(P) The address from which the SCOPE UUO was called
  2775					;   -3(P) The actual UUO that was executed "SCOPE"
  2776					;   -2(P) AC0 from before the UUO
  2777					;   -1(P) AC1 from before the UUO
  2778					;    0(P) AC2 from before the UUO
  2779
  2780					; Get switches
  2781
  2782	003341'	260 17 0 00 001764'		GO	SWITT			; get switches
  2783	003342'	202 00 0 00 006266'		MOVEM	SCOSW#			; save switches
  2784
  2785					; Handle SPEAR error report
  2786
  2787	003343'	332 00 0 00 000015 		SKIPE	ERFLG			; error occurred?
  2788	003344'	260 17 0 00 000000*		GO	SPREP2			; yes - report it
  2789
  2790					; Handle debug printout / error handling
  2791
  2792	003345'	332 00 0 00 000000*		SKIPE	UDEBUG			; no-IPA debug mode?
  2793	003346'	400 15 0 00 000000 		SETZ	ERFLG,			; yes - clear error flag
  2794	003347'	332 00 0 00 000000*		SKIPE	MDEBUG			; error message debug mode?
  2795	003350'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2796
  2797					; Update scope PC
  2798
  2799	003351'	550 00 0 17 777774 		HRRZ	-4(P)			; get PC of the scope call
  2800	003352'	202 00 0 00 006265'		MOVEM	SCOPC#			; save it (scope PC)
  2801
  2802					; Error occurred?
  2803
  2804	003353'	322 15 0 00 003413'		JUMPE	ERFLG,SCOP4		; an error occurred? - no check looping
  2805
  2806					; Error did occur - update error PC / print error message
  2807
  2808	003354'	316 00 0 00 030052 		CAMN	ERRPC			; error has already occurred here?
  2809	003355'	254 00 0 00 003363'		JRST	SCOP0			; yes - go check if print
  2810	003356'	200 00 0 00 006265'		MOVE	SCOPC			; get scope PC
  2811	003357'	202 00 0 00 030052 		MOVEM	ERRPC			; save as error PC
  2812	003360'	200 00 0 00 000674*		MOVE	TSTSUB			; get current offset
  2813	003361'	202 00 0 00 003630'		MOVEM	SCOOFF			; save as error offset
  2814	003362'	254 00 0 00 003371'		JRST	SCOP2			; go print error
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 67
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0832

  2815
  2816					; Must also check if this is a multiple error from a execute table.  Check
  2817					; TSTSUB against SCOOFF - if different then it is not a repeat error.
  2818
  2819	003363'	200 00 0 00 003630'	SCOP0:	MOVE	SCOOFF			; last offset presented to SCOPE
  2820	003364'	312 00 0 00 003360*		CAME	TSTSUB			; same as current offset?
  2821	003365'	254 00 0 00 003371'		JRST	SCOP2			; yes - go check if print
  2822
  2823					; This is a repeat error here, check if print all errors
  2824
  2825	003366'	200 00 0 00 006266'	SCOP1:	MOVE	SCOSW			; get switches
  2826	003367'	607 00 0 00 001000 		TLNN	PALERS			; print all errors?
  2827	003370'	254 00 0 00 003401'		JRST	SCOP3			; no - go ring bell/error halt
  2828
  2829					; Print error message
  2830
  2831	003371'	200 00 0 00 006266'	SCOP2:	MOVE	SCOSW			; get switches
  2832	003372'	602 00 0 00 100000 		TRNE	INHMSG			; inhibit error messages?
  2833	003373'	254 00 0 00 003401'		JRST	SCOP3			; yes - skip this
  2834	003374'	260 17 0 00 003500'		GO	ERHDR			; print the standard error heading
  2835	003375'	550 01 0 17 777775 		HRRZ	1,-3(P)			; get the e-field of the UUO
  2836	003376'	332 00 0 00 000001 		SKIPE	1			; table address given?
  2837	003377'	260 17 0 00 003561'		GO	ERPNT			; yes - go handle error table
  2838	003400'	037 00 0 00 006045'		TMSGCD	<------------->
  2839
  2840					; Handle bell and error halt functions.
  2841
  2842	003401'	200 00 0 00 006266'	SCOP3:	MOVE	SCOSW			; get switches
  2843	003402'	603 00 0 00 010000 		TLNE	DING			; ding set?
  2844	003403'	037 01 0 00 000007 		PBELL				; yes - do it
  2845	003404'	200 00 0 00 006266'		MOVE	SCOSW			; get switches
  2846	003405'	607 00 0 00 002000 		TLNN	ERSTOP			; halt on error?
  2847	003406'	254 00 0 00 003413'		JRST	SCOP4			; no - continue
  2848	003407'	332 00 0 00 030037 		SKIPE	USER			; user mode?
  2849	003410'	476 00 0 00 000000*		SETOM	ALTF			; yes - set abort flag
  2850	003411'	336 00 0 00 030037 		SKIPN	USER			; user mode?
  2851	003412'	037 14 0 00 000004 		ERRHLT				; yes - halt
  2852
  2853					; Error reporting (if any) is done.  Now check loop on error switch.
  2854
  2855	003413'	200 00 0 00 006266'	SCOP4:	MOVE	SCOSW			; get switches
  2856	003414'	607 00 0 00 004000 		TLNN	LOOPER			; loop on error?
  2857	003415'	254 00 0 00 003443'		JRST	SCOPXX			; no - exit +2/3
  2858	003416'	326 15 0 00 003424'		JUMPN	ERFLG,SCOPX1		; yes - error - yes - exit +1 (loop)
  2859
  2860					; Error looping is enabled, but error flag was not set.  First check if we
  2861					; are at the same place as the last error - if not, exit +3 because it is 
  2862					; not yet time to loop.  If yes, exit +1, loop on error.
  2863
  2864	003417'	200 00 0 00 006265'		MOVE	SCOPC			; get scope PC and see if this is
  2865	003420'	315 00 0 00 030052 		CAMGE	ERRPC			;    earlier than the error PC?
  2866	003421'	254 00 0 00 003443'		JRST	SCOPXX			; earlier - exit +3
  2867	003422'	336 00 0 00 030052 		SKIPN	ERRPC			; no error yet at all?
  2868	003423'	254 00 0 00 003443'		JRST	SCOPXX			; no - exit +3
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 68
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0833

  2869
  2870					; Exit +1 (loop return)
  2871
  2872	003424'	037 07 0 00 000003 	SCOPX1:	TTALTM				; see if opr wants to abort
  2873	003425'	334 00 0 00 000000 		SKIPA				; no - continue
  2874	003426'	254 00 0 00 003450'		JRST	SCOPX2			; yes - altmode exit
  2875	003427'	332 00 0 00 003410*		SKIPE	ALTF			; 'altmode typed' flag set?
  2876	003430'	254 00 0 00 003450'		JRST	SCOPX2			; yes - altmode exit
  2877	003431'	336 00 0 00 006262'		SKIPN	LCHAR			; last character in here already?
  2878	003432'	202 00 0 00 006262'		MOVEM	LCHAR			; no - save 'last char typed'
  2879	003433'	200 00 0 00 006265'		MOVE	SCOPC			; get scope PC
  2880	003434'	202 00 0 00 030052 		MOVEM	ERRPC			; update error PC
  2881	003435'	262 17 0 00 000002 		RGET	(2,1,0,$SVUUO,$SVUPC)	; restore things
  2882
  2883	003442'	263 17 0 00 000000 		RTN				; exit
  2884
  2885					; Exit +2/3 (altmode return / normal return)
  2886
  2887	003443'	037 07 0 00 000003 	SCOPXX:	TTALTM				; see if opr wants to abort
  2888	003444'	334 00 0 00 000000 		SKIPA				; no - continue
  2889	003445'	254 00 0 00 003450'		JRST	SCOPX2			; yes - altmode exit
  2890	003446'	336 00 0 00 003427*		SKIPN	ALTF			; 'altmode typed' flag set?
  2891	003447'	254 00 0 00 003460'		JRST	SCOPX3			; no - exit +3 (normal return)
  2892
  2893					; Altmode return
  2894
  2895	003450'	262 17 0 00 000002 	SCOPX2:	RGET	(2,1,0,$SVUUO,$SVUPC)	; restore things
  2896
  2897	003455'	350 00 0 17 000000 		AOS	(P)			; set up return +1
  2898	003456'	476 00 0 00 003446*		SETOM	ALTF			; set 'altmode typed' flag
  2899	003457'	263 17 0 00 000000 		RTN				; exit
  2900
  2901					; Normal return - also check for S typed
  2902
  2903	003460'	336 00 0 00 006262'	SCOPX3:	SKIPN	LCHAR			; last character in here already?
  2904	003461'	202 00 0 00 006262'		MOVEM	LCHAR			; no - save 'last char typed'
  2905	003462'	260 17 0 00 000655'		GO	PSTAMP			; check for S typed
  2906	003463'	200 00 0 00 006266'		MOVE	SCOSW			; get switches
  2907	003464'	602 00 0 00 010000 		TRNE	RUNALL			; run all test segments?
  2908	003465'	400 15 0 00 000000 		SETZ	ERFLG,			; yes - clear error flag
  2909	003466'	602 00 0 00 001000 		TRNE	DEBUG2			; error message debug?
  2910	003467'	400 15 0 00 000000 		SETZ	ERFLG,			; yes - clear error flag
  2911	003470'	262 17 0 00 000002 		RGET	(2,1,0,$SVUUO,$SVUPC)	; restore things
  2912
  2913	003475'	350 00 0 17 000000 		AOS	(P)			; set up return +3
  2914	003476'	350 00 0 17 000000 		AOS	(P)			; set up return +3
  2915	003477'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 69
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0834

  2916
  2917					;#********************************************************************
  2918					; ERHDR - Print the standard header messages
  2919					;#********************************************************************
  2920
  2921	003500'	037 01 0 00 000026 	ERHDR:	PFORCE				; handle Control-O
  2922	003501'	037 00 0 00 006051'		TMSGC	<+-+-+-+-+-+-+>
  2923	003502'	332 00 0 00 000000*		SKIPE	EDEBUG			; expanded data switch set?
  2924						GO	[TMSGC	<Port->		; yes - print what port
  2925							 LDB	[POINT 3,MBCN,9];   this is
  2926							 PNT2
  2927							 TMSG	< Addr->
  2928							 LDB	[POINT 8,SADDR,31]
  2929							 PNT3
  2930							 LDB	[POINT 8,SADDR,23]
  2931							 PNT3
  2932							 LDB	[POINT 8,SADDR,15]
  2933							 PNT3
  2934							 LDB	[POINT 8,SADDR,7]
  2935							 PNT3
  2936							 LDB	[POINT 8,SADDR+1,31]
  2937							 PNT3
  2938							 LDB	[POINT 8,SADDR+1,23]
  2939							 PNT3
  2940							 PSP
  2941							 MOVEI	1,.PRIOU
  2942							 SETO	2,
  2943							 MOVE	3,[220101,,0]
  2944							 SKIPE	USER
  2945							 ODTIM
  2946	003503'	260 17 0 00 006071'			 RTN]
  2947	003504'	037 00 0 00 006120'		TMSGC	<Error:  >
  2948	003505'	260 17 0 00 000000*		GO	TSTPNT			; print test number
  2949	003506'	200 00 0 00 006266'		MOVE	SCOSW			; get switches
  2950	003507'	603 00 0 00 000200 		TLNE	TXTINH			; short printout desired?
  2951	003510'	254 00 0 00 003535'		JRST	ERSHRT			; yes - go handle
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 70
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0835

  2952
  2953					; Regular format error header
  2954
  2955	003511'	037 00 0 00 006123'	ERNRML:	TMSGC	<Error PC = >
  2956	003512'	550 00 0 17 777772 		HRRZ	-6(P)			; get adr where SCOPE was called
  2957	003513'	274 00 0 00 000000*		SUB	TSTOFF			; normalize to relocatable address
  2958	003514'	037 16 0 00 000003 		PNTOCS				; print it
  2959	003515'	037 00 0 00 006126'		TMSG	<'>
  2960	003516'	336 00 0 00 000703*		SKIPN	TSTREP			; pass 1?
  2961	003517'	254 00 0 00 003524'		JRST	ERNRM0			; yes - don't print pass #
  2962	003520'	037 00 0 00 006127'		TMSG	<  Pass >
  2963	003521'	200 00 0 00 003516*		MOVE	TSTREP			; get pass count
  2964	003522'	350 00 0 00 000000 		AOS
  2965	003523'	037 15 0 00 000000 		PNTDEC				; print it
  2966	003524'	037 00 0 00 006131'	ERNRM0:	TMSG	<  Switches = >
  2967	003525'	200 00 0 00 006266'		MOVE	SCOSW			; get switches
  2968	003526'	037 13 0 00 000000 		PNTHW				; print
  2969	003527'	335 00 0 00 000000*		SKIPGE	UVERSN			; using operational microcode?
  2970	003530'	263 17 0 00 000000 		RTN				; no - exit
  2971	003531'	037 00 0 00 006134'		TMSG	<  Ucode version >	; yes - print out the version
  2972	003532'	200 00 0 00 003527*		MOVE	UVERSN			; get version number
  2973	003533'	037 16 0 00 000003 		PNTOCS				; print it
  2974	003534'	263 17 0 00 000000 		RTN				; exit
  2975
  2976					; Short format error header
  2977
  2978	003535'	037 00 0 00 006140'	ERSHRT:	TMSG	<  Error PC >
  2979	003536'	550 00 0 17 777772 		HRRZ	-6(P)			; pick up error PC
  2980	003537'	274 00 0 00 003513*		SUB	TSTOFF			; normalize to relocatable address
  2981	003540'	037 16 0 00 000003 		PNTOCS				; print the error PC
  2982	003541'	037 00 0 00 006126'		TMSG	<'>
  2983	003542'	336 00 0 00 003521*		SKIPN	TSTREP			; pass 1?
  2984	003543'	254 00 0 00 003550'		JRST	ERSHR0			; yes - don't print pass #
  2985	003544'	037 00 0 00 006127'		TMSG	<  Pass >
  2986	003545'	200 00 0 00 003542*		MOVE	TSTREP			; get pass count
  2987	003546'	350 00 0 00 000000 		AOS
  2988	003547'	037 15 0 00 000000 		PNTDEC				; print it
  2989	003550'	037 00 0 00 006143'	ERSHR0:	TMSG	<  SW >
  2990	003551'	200 00 0 00 006266'		MOVE	SCOSW			; get switches
  2991	003552'	037 13 0 00 000000 		PNTHW				; print
  2992	003553'	335 00 0 00 003532*		SKIPGE	UVERSN			; using operational microcode?
  2993	003554'	263 17 0 00 000000 		RTN				; no - exit
  2994	003555'	037 00 0 00 006145'		TMSG	<  uVER >		; yes - print out the version
  2995	003556'	200 00 0 00 003553*		MOVE	UVERSN			; get version number
  2996	003557'	037 16 0 00 000003 		PNTOCS				; print it
  2997	003560'	263 17 0 00 000000 		RTN				; exit
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 71
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0836

  2998
  2999					;#********************************************************************
  3000					; ERPNT - Print error description based on error descriptor table
  3001					;#********************************************************************
  3002
  3003	003561'	202 01 0 00 006252'	ERPNT:	MOVEM	1,ERDES#		; save addr of error descriptor table
  3004	003562'	336 01 1 00 006252'	ERPN0:	SKIPN	1,@ERDES		; get entry - zero?
  3005	003563'	263 17 0 00 000000 		RTN				; yes - exit
  3006
  3007	003564'	350 00 0 00 006252'		AOS	ERDES			; update to point at next one
  3008	003565'	135 02 0 00 006147'		LDB	2,[POINT 3,1,2]		; get entry type
  3009						GO	@[ERPNE			; yes - dispatch
  3010							  ERPNM			; handle message
  3011							  ERPNC			; handle call
  3012							  ERPNG			; handle goto
  3013							  ERPNE			; out of range
  3014							  ERPNE			; out of range
  3015							  ERPNE			; out of range
  3016	003566'	260 17 1 02 006150'			  ERPNE](2)		; out of range
  3017	003567'	607 01 0 00 010000 		TLNN	1,(LAST)		; last entry?
  3018	003570'	254 00 0 00 003562'		JRST	ERPN0			; no - get next entry
  3019	003571'	263 17 0 00 000000 		RTN				; yes - return
  3020
  3021					; Error (entry type out of range)
  3022
  3023	003572'	037 00 0 00 006160'	ERPNE:	TMSGC	<? Error descriptor entry type out of range>
  3024	003573'	263 17 0 00 000000 		RTN				; return
  3025
  3026					; Handle message
  3027
  3028	003574'	200 00 0 00 006266'	ERPNM:	MOVE	SCOSW			; get switches
  3029	003575'	603 00 0 00 000200 		TLNE	TXTINH			; text inhibit set?
  3030						PJRST	[TLNN	1,(TXYES)	; yes - print it?
  3031							 JRST	.+1		; no - exit
  3032							 PCRL			; yes - print it
  3033							 PNTMSG	@1		;   and return
  3034	003576'	254 00 0 00 006171'			 RTN]
  3035	003577'	607 00 0 00 000200 		TLNN	TXTINH			; text inhibit set?
  3036						PJRST	[TLNN	1,(TXNOT)	; no - print it?
  3037							 RTN			; no - return
  3038							 PCRL			; yes - print it
  3039							 PNTMSG	@1		;   and return
  3040	003600'	254 00 0 00 006176'			 RTN]
  3041	003601'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page 72
DFNIAU	MAC	 6-Aug-83 09:31		Scope Looping And Error Reporting Routine                                          SEQ 0837

  3042
  3043					; Handle goto
  3044
  3045	003602'	552 02 0 00 006252'	ERPNG:	HRRZM	2,ERDES			; update table address
  3046	003603'	263 17 0 00 000000 		RTN				; exit
  3047
  3048					; Handle call
  3049
  3050	003604'	200 00 0 00 006266'	ERPNC:	MOVE	SCOSW			; get switches
  3051	003605'	603 00 0 00 000200 		TLNE	TXTINH			; text inhibit set?
  3052						JRST	[TLNN	1,(TXYES)	; yes - call routine?
  3053							 JRST	.+1		; no - exit
  3054	003606'	254 00 0 00 006203'			 JRST	ERPNCG]		; yes - call routine
  3055	003607'	607 00 0 00 000200 		TLNN	TXTINH			; text inhibit set?
  3056						PJRST	[TLNN	1,(TXNOT)	; no - call routine?
  3057							 RTN			; no - return
  3058	003610'	254 00 0 00 006206'			 JRST	ERPNCG]		; yes - call routine
  3059	003611'	263 17 0 00 000000 		RTN				; return
  3060	003612'	261 17 0 00 000000 	ERPNCG:	RPUT	(0,1,2,3,4,5)		; save some AC's
  3061
  3062	003620'	260 17 1 00 000001 		GO	@1			; call the routine
  3063	003621'	262 17 0 00 000005 		RGET	(5,4,3,2,1,0)		; restore AC's
  3064
  3065	003627'	263 17 0 00 000000 		RTN				; exit
  3066
  3067					; Miscellaneous (used for tests that have an execute table)
  3068
  3069	003630'	000000	000000		SCOOFF:	0				; error offset
  3070
  3071
  3072					;#********************************************************************
  3073					; End Stmt for DFNIAU.MAC module
  3074					;#********************************************************************
  3075
  3076						XLIST
  3077
NO ERRORS DETECTED

PROGRAM BREAK IS 006275
CPU TIME USED 00:12.134

80P CORE USED
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page S-1
DFNIAU	MAC	 6-Aug-83 09:31		SYMBOL TABLE                                                                       SEQ 0838

ABUFF		006246'		DROPDV	037240	000002		FSARGX		003236'		PCRL2F	037040	030243		
ALTCHH		000031'	ent	EDEBUG		003502'	ext	FSKIPC		001130'		PCRLF	037040	030242		
ALTCHK	007000	000000		ERCAL	320740	000000	int	GENFLG		006256'		PDEC	006000	000000		
ALTCHX		000042'		ERDES		006252'		GENREP		006257'		PDEC0		000431'		
ALTF		006004'	ext	ERFLG		000015		GENTYP		006260'		PDECF0		000457'		
ALTMGO		030063		ERHDR		003500'		GET	262740	000000		PDECFS		000467'		
ARGFLG		003052'	int	ERNRM0		003524'		GETLOG		002505'	ext	PDECSS		000441'		
ARGUM		003051'	int	ERNRML		003511'		GO	260740	000000		PFORCE	037040	000026		
BUFCOM		001163'	ent	ERPN0		003562'		HALTF	104000	000170	int	PJRST	254000	000000		
BUFG0		001216'		ERPNC		003604'		INHMSG		100000	spd	PNT2	037100	000000		
BUFG1		001227'		ERPNCG		003612'		INITM		006261'		PNT3	037140	000000		
BUFG2		001236'		ERPNE		003572'		ITRCH1		030104		PNTCHF	037500	000001		
BUFGEN		001172'	ent	ERPNG		003602'		JEN	254500	000000		PNTCIF	037040	000000		
BUFGX		001246'		ERPNM		003574'		KLFLG		030041		PNTDCF	037640	000001		
BUFGXY		001260'		ERPNT		003561'		LASAR0		003110'		PNTDEC	037640	000000		
BUFGXZ		001262'		ERRHLT	037600	000004		LASAR1		003114'		PNTDS	037700	000000		
CADDR		001057'	ext	ERRPC		030052		LASARA		003120'		PNTDSF	037700	000001		
CFIBF	104000	000100		ERSHR0		003550'		LASARG		003077'	ent	PNTHW	037540	000000		
CHKAR0		003064'		ERSHRT		003535'		LASARX		003116'		PNTHWF	037540	000001		
CHKARA		003073'		ERSTOP		002000	spd	LAST	010000	000000	spd	PNTMSF	037040	000000		
CHKARG		003053'	ent	EXT10		001012'		LCHAR		006262'	int	PNTMSG	037000	000000		
CHKARX		003072'		EXTX		001014'		LOGPNT		002506'	ext	PNTOCF	037740	000003		
CHKARY		003070'		FEOL		003325'		LOOPER		004000	spd	PNTOCS	037700	000003		
CHRIN		001016'		FEOL0		003326'		MAXPAT		000127	spd	PNTSXF	037040	000002		
CHRINS		001023'		FEOLX		003332'		MAXTIM		000652'	int	PPDEC		000422'	ent	
CHRINX		001035'		FFF		002520'	ext	MBCN		000016		PPDECF		000450'	ent	
CLRBFI	051440	000000		FGETA		001114'		MDEBUG		003347'	ext	PSDN		000105'	ent	
CLRBUF		000045'	ent	FGETA0		001115'		MONTI0		000530'		PSDNF		000113'		
CLS10		000775'		FGETAE		001126'		MONTI1		000533'		PSP	037000	000040		
CLSX		000777'		FGETD		001136'		MONTIM		000521'	ent	PSTAM0		000671'		
CLZFF	104000	000034	int	FGETD0		001142'		MONTYP		030516		PSTAMP		000655'	ent	
CONSW		030046		FGETD1		001157'		ODTIM	104000	000220	int	PSTAMX		000707'		
CONSWW		006247'		FGETDE		001160'		OLDRAN		006263'		PTIME		000543'	ent	
CONVS0		000006'		FGETW		001047'	ent	P		000017		PTIMEF		000551'		
CONVS1		000022'		FGETWE		001110'		PALERS		001000	spd	PUT	261740	000000		
CONVSE		000017'		FILLFP		000115	spd	PARSER		002472'	ent	RADLSC		030264		
CONVSP		000027'		FILLVP		000127	spd	PAT		000014		RANDBS		030022		
CONVSS		006250'		FINCM0		003146'		PATADR		001472'		RDCSR		002477'	ext	
CONVSX		000000'	ent	FINCMC		003165'		PATBUF		001333'	ent	RESET	104000	000147	int	
CORECT		002521'		FINCMD		003141'	ent	PATC8A		001534'		RST10		000760'		
CURTIM		000651'	int	FINCMX		003175'		PATCN2		004137'	spd	RSTX		000762'		
CWORDL		004076'	ext	FINECH		001031'	ext	PATCN3		004140'	spd	RTN	263740	000000		
CWORDN		006251'		FINPUT		003136'	ext	PATCN4		004141'	spd	RUNALL		010000	spd	
CWORDR		004101'	ext	FINSIX		006253'		PATCN6		001565'		RUNTM0		000567'		
DATM0		001301'		FIOFF		003124'	ent	PATCN7		001554'		RUNTM1		000571'		
DATM1		001307'		FOARG		003243'	ent	PATCN8		001517'		RUNTM2		000620'		
DATMES		001273'		FOARG0		003251'		PATFO1		001501'		RUNTME		000557'	ent	
DATMX		001326'		FOARGC		003303'		PATFON		001475'		RUNTMX		000642'		
DEBTIM		000653'	int	FOARGX		003317'		PATFZ1		001512'		SADDR		006065'	ext	
DEBUG2		001000	spd	FOFLAG		006254'		PATFZE		001505'		SAVSWW		006264'		
DECERR		002767'		FORPNT		006255'	int	PATPNT		001575'	ent	SCOOFF		003630'	int	
DECLIS		002773'		FREAD	037300	000004		PATRA1		001466'		SCOP0		003363'		
DECYN		002755'	ent	FSARG		003202'		PATRAN		001463'		SCOP1		003366'		
DING		010000	spd	FSARG0		003207'		PBELL	037040	000007		SCOP2		003371'		
DISMS	104000	000167	int	FSARGC		003226'		PCRL	037000	030242		SCOP3		003401'		
.MAIN	MACRO %53A(1152) 20:09 24-Sep-84 Page S-2
DFNIAU	MAC	 6-Aug-83 09:31		SYMBOL TABLE                                                                       SEQ 0839

SCOP4		003413'		XX		006272'		.PNTDC		000202'	ent	
SCOPC		006265'		XXT		006273'		.PNTDL		000262'	ent	
SCOPE1		003334'	ent	XYZ		006274'		.PNTDP		000342'	ent	
SCOPX1		003424'		ZU		000000'		.PNTOC		000121'	ent	
SCOPX2		003450'		$CHRIN		030232		.PNTP0		000362'		
SCOPX3		003460'		$SVUPC		030114		.PNTP1		000366'		
SCOPXX		003443'		$SVUUO		030113		.PRIOU		000101	sin	
SCOSW		006266'	int	$TTCHR		030231		.RESET		000751'	ent	
SPATAB		000163'		$TWCNT		030225		.RSWIT		002334'	int	
SPREP2		003344'	ext	$TYPNB		030233		.SARG		002631'	ent	
STCLOK		000476'	ent	.CGOT		002560'	int	.SARG0		002644'		
STCU		000510'		.CLOSE		000763'	ent	.SARG1		002646'		
STCX		000514'		.COMM		002534'	ent	.SARGA		002671'		
SWCHPT		002356'	ent	.COMM0		002541'		.SARX1		002663'		
SWCOM		002365'	ent	.COMM1		002551'		.SARX2		002662'		
SWCOM0		002404'		.COMM2		002565'		.SLEFT		002043'		
SWCOMP		002447'		.COMM3		002577'		.SLF1		002052'		
SWCOMT		002424'		.COMM4		002607'		.SLF2		002063'		
SWCOMX		002420'		.COMM5		002615'		.SLF3		002067'		
SWITCH	037400	000002		.COMM6		002622'		.SLF4		002070'		
SWITT		001764'	ent	.CTBL		002563'		.SLF5		002075'		
SWPSWW		006267'		.CTYP		002561'		.SLF6		002130'		
SWRGT		001771'	int	.DARG		002776'	ent	.SLFX		002134'		
TAKFIL		003130'	ext	.DARG0		003011'		.SRG2		002153'		
TBSDFL		001517'	ext	.DARG1		003013'		.SRG3		002164'		
TFMFLG		001520'	ext	.DARGA		003037'		.SRG4		002167'		
TIME	104000	000014	int	.DARX1		003031'		.SRG5		002170'		
TMRST1		000517'		.DARX2		003030'		.SRG6		002177'		
TMRUN1		000647'		.DELA0		000733'		.SRG6A		002225'		
TPAT		004152'	ext	.DELA1		000740'		.SRG6B		002231'		
TSTNUM		000672'	ext	.DELAX		000742'		.SRG7		002241'		
TSTOFF		003537'	ext	.DELAY		000716'	ent	.SRGX		002245'		
TSTPC		000000	ext	.EXIT		001001'	ent	.SRIGT		002144'		
TSTPNT		003505'	ext	.FHSLF		400000	sin	.SWCH0		001742'		
TSTREP		003545'	ext	.ISWT		001772'	ent	.SWCH1		001752'		
TSTSUB		003364'	ext	.ISWT2		001775'		.SWCHP		001725'	ent	
TTALTM	037340	000003		.ISWT6		002006'		.SWIN		002255'		
TTICNV	037240	000003		.ISWT7		002007'		.SWIN0		002263'		
TTIOCT	037140	000003		.ISWT8		002011'		.SWPNT		002032'		
TTNBRF		030510		.ISWTB		002013'		.SWTXT		002040'		
TTSIXB	037400	000003		.ISWTX		002014'		
TTYINP	037440	000003		.ISWTY		002024'		
TTYY0		000065'		.ISWTZ		002027'		
TTYY1		000067'		.LSWIT		002300'	int	
TTYYES		000061'	ent	.LSWTN		002316'		
TXNOT	040000	000000	spd	.OARG		002702'	ent	
TXTINH		000200	spd	.OARG0		002715'		
TXYES	020000	000000	spd	.OARG1		002717'		
UDEBUG		003345'	ext	.OARGA		002743'		
USER		030037		.OARX1		002735'		
USTIM		000654'	int	.OARX2		002734'		
UVERSN		003556'	ext	.PNTD0		000222'		
VARPAT		006270'		.PNTD1		000226'		
VPATRN		000116	spd	.PNTD2		000302'		
WRDERR		006271'	int	.PNTD3		000306'		
ABUFF	   998#	   998	  1095	  1982#	  1982
ALTCHH	    10	   117#                                                                                                    SEQ 0840
ALTCHX	   120	   123	   127#
ALTF	    48#	  2103	  2192	  2311	  2401	  2447	  2849	  2875	  2890	  2898
ALTMGO	   129	  2103	  2106	  2155	  2192	  2195	  2245	  2311	  2314	  2364	  2399	  2404	  2431	  2445
	  2450	  2474
ARGFLG	    38	  2110	  2135	  2138	  2199	  2225	  2228	  2318	  2344	  2347	  2386#	  2399	  2445
ARGUM	    38	  2131	  2216	  2278	  2335	  2385#
BUFCOM	    27	   979#
BUFG0	  1007#	  1019
BUFG1	  1006	  1027#
BUFG2	  1037#	  1049
BUFGEN	    27	   986#
BUFGX	  1020	  1053#
BUFGXY	  1056	  1058	  1063#
BUFGXZ	  1054	  1065#
CADDR	    47#	    49#	   875	   880
CHKAR0	  2411#	  2423
CHKARA	  2403	  2419	  2431#
CHKARG	    37	  2397#
CHKARX	  2400	  2410	  2425	  2430#
CHKARY	  2414	  2426	  2428#
CHRIN	   828#	   830	   881	   917	   929	   947
CHRINS	   839#	  2509	  2529	  2559	  2579	  2608	  2640	  2665
CHRINX	   841	   850#
CLRBUF	     9	   136#	  1647	  1715	  1758	  1779
CLS10	   782	   787#
CLSX	   786	   789#
CONSW	  1502	  1560	  1851	  1892
CONSWW	  1529#	  1529	  1549	  1558	  1615	  1622	  1637	  1659	  1661	  1663	  1665	  1680	  1687	  1705
	  1733	  1735	  1737	  1739
CONVS0	    80#	    88
CONVS1	    81	    98#
CONVSE	    84	    92#
CONVSP	    78	    80	   104#
CONVSS	    76#	    76	    77
CONVSX	    10	    74#
CORECT	  1983	  1987#
CURTIM	    15	   608	   668#
CWORDL	    47#	   876	   887	   890	   894
CWORDN	  1096#	  1096
CWORDR	    47#	   877	   897	   900	   903
DATM0	  1077	  1078#
DATM1	  1085	  1090#
DATMES	  1014	  1044	  1074#
DATMX	  1083	  1086	  1108#
DEBTIM	    15	   605	   670#	   724	   728
DEBUG2	  2909
DECERR	  2282	  2286#
DECLIS	  2279	  2290#
DECYN	    37	  2276#
DING	  2843
EDEBUG	    47#	  2923
ERDES	  3003#	  3003	  3004	  3007	  3045
ERFLG	  2787	  2793	  2795	  2804	  2858	  2908	  2910                                                             SEQ 0841
ERHDR	  2834	  2921#
ERNRM0	  2961	  2966#
ERNRML	  2955#
ERPN0	  3004#	  3018
ERPNC	  3011	  3050#
ERPNCG	  3054	  3058	  3060#
ERPNE	  3009	  3013	  3014	  3015	  3016	  3023#
ERPNG	  3012	  3045#
ERPNM	  3010	  3028#
ERPNT	  2837	  3003#
ERRPC	  2808	  2811	  2865	  2867	  2880
ERSHR0	  2984	  2989#
ERSHRT	  2951	  2978#
ERSTOP	  2846
EXT10	   809	   816#
EXTX	   814	   819#
FEOL	  2409	  2452	  2664#
FEOL0	  2665#	  2668
FEOLX	  2666	  2669#
FFF	    53#	  1964	  1977	  1985
FGETA	   878	   916#
FGETA0	   917#	   922
FGETAE	   918	   924	   926#	   930
FGETD	   885	   888	   891	   898	   901	   923	   943#
FGETD0	   947#	   959
FGETD1	   950	   952	   960#
FGETDE	   948	   955	   961#
FGETW	    23	   873#
FGETWE	   879	   882	   886	   889	   892	   899	   902	   905#
FILLFP	  1199#
FILLVP	  1227#
FINCM0	  2509#	  2523
FINCMC	  2512	  2514	  2516	  2527#
FINCMD	    23	  2503#
FINCMX	  2510	  2540#
FINECH	    49#	   845
FINPUT	    49#	   857	  2115	  2204	  2323	  2408	  2451	  2482	  2492
FINSIX	  2505#	  2505	  2507	  2532	  2555	  2557	  2582
FIOFF	    37	  2482#	  2540	  2590	  2653
FOARG	    23	  2205	  2324	  2603#
FOARG0	  2608#	  2619	  2633
FOARGC	  2611	  2613	  2615	  2637#
FOARGX	  2609	  2622	  2626	  2653#
FOFLAG	  2607#	  2607	  2617	  2632	  2644
FORPNT	    15	   554#	   554	   561	   626	   628	   631	   633	   639	   641	   643	   645	   651	   653
	   655	   657
FSARG	  2116	  2553#
FSARG0	  2559#	  2573
FSARGC	  2562	  2564	  2566	  2577#
FSARGX	  2560	  2590#
FSKIPC	   920	   929#	   934
GENFLG	   980#	   980	   986	  1010	  1012	  1040	  1042	  1053
GENREP	   981#	   981	   983	  1057	  1076	  1082                                                                     SEQ 0842
GENTYP	   987#	   987
GETLOG	    53#	  1974
INHMSG	  2832
INITM	   503#	   503	   538#	   538	   539#	   539	   540#	   540
ITRCH1	  1997
KLFLG	  1976
LASAR0	  2454#	  2465
LASAR1	  2457	  2468	  2470#
LASARA	  2449	  2474#
LASARG	    37	  2144	  2234	  2353	  2443#
LASARX	  2446	  2453	  2461	  2467	  2472#
LAST	  3017
LCHAR	    15	   680#	   680	   705	  2877	  2878	  2903	  2904
LOGPNT	    53#	  1975
LOOPER	  2856
MAXPAT	  1231#
MAXTIM	    15	   669#
MBCN	  2925
MDEBUG	    47#	  2794
MONTI0	   530	   535#
MONTI1	   534	   538#
MONTIM	    14	   504	   528#	   596
MONTYP	   141	   143	   529	   754	   781	   808
OLDRAN	  1236#	  1236	  1241
P	   101	   174	   188	   197	   213	   214	   260	   261	   307	   308	   354	   355	   831	   843
	   844	   904	   925	   960	  1064	  1759	  1760	  1761	  1770	  1780	  1781	  1876	  2038	  2076
	  2083	  2084	  2142	  2146	  2150	  2151	  2166	  2232	  2236	  2240	  2241	  2256	  2284	  2285
	  2351	  2355	  2359	  2360	  2373	  2418	  2430	  2472	  2473	  2533	  2583	  2646	  2799	  2835
	  2897	  2913	  2914	  2956	  2979
PALERS	  2826
PARSER	    37	  1963#
PAT	   988	   991	  1005	  1007	  1029	  1065
PATADR	  1213	  1246#
PATBUF	    27	  1007	  1029	  1121#	  1199	  1205	  1224	  1227	  1231
PATC8A	  1281	  1292#
PATCN2	  1217#	  1221
PATCN3	  1218#	  1222
PATCN4	  1219#	  1223
PATCN6	  1223	  1326#
PATCN7	  1222	  1314#
PATCN8	  1221	  1278#
PATFO1	  1214	  1257#
PATFON	  1214	  1252#
PATFZ1	  1215	  1270#
PATFZE	  1215	  1264#
PATPNT	    27	  1339#
PATRA1	  1212	  1239#
PATRAN	  1212	  1235#
PDEC0	   403#	   410
PDECF0	   442#	   449
PDECFS	   441	   449#
PDECSS	   402	   410#
PPDEC	    10	   398#                                                                                                    SEQ 0843
PPDECF	    10	   437#
PSDN	    10	   186#
PSDNF	   195#
PSTAM0	   682	   684	   690#
PSTAMP	    14	   678#	  2905
PSTAMX	   686	   705#
PTIME	    14	   552#
PTIMEF	   559#	   698
RADLSC	   403	   405	   442	   444
RANDBS	  1239
RDCSR	    53#	  1968
RST10	   755	   759#
RSTX	   758	   761#
RUNALL	  2907
RUNTM0	   593	   596#
RUNTM1	   595	   601#
RUNTM2	   622	   638#
RUNTME	    14	   555	   562	   587#	   723	   727
RUNTMX	   660#
SADDR	    48#	  2928	  2930	  2932	  2934	  2936	  2938
SAVSWW	  1528#	  1528	  1562
SCOOFF	    43	  2813	  2819	  3069#
SCOP0	  2809	  2819#
SCOP1	  2825#
SCOP2	  2814	  2821	  2831#
SCOP3	  2827	  2833	  2842#
SCOP4	  2804	  2847	  2855#
SCOPC	  2800#	  2800	  2810	  2864	  2879
SCOPE1	    42	  2766#
SCOPX1	  2858	  2872#
SCOPX2	  2874	  2876	  2889	  2895#
SCOPX3	  2891	  2903#
SCOPXX	  2857	  2866	  2868	  2887#
SCOSW	    43	  2783#	  2783	  2825	  2831	  2842	  2845	  2855	  2906	  2949	  2967	  2990	  3028	  3050
SPATAB	   226	   235#	   290	   340	   384
SPREP2	    47#	  2788
STCLOK	    14	   493#
STCU	   496	   503#
STCX	   502	   507#
SWCHPT	    32	  1849#
SWCOM	    32	  1863#
SWCOM0	  1869	  1890#
SWCOMP	  1865	  1930#
SWCOMT	  1866	  1908#
SWCOMX	  1886	  1902#
SWITT	    32	  1440	  1443	  1502#	  1527	  1548	  1561	  1890	  1896	  2782
SWPSWW	  1533#	  1533	  1564#	  1564
SWRGT	    33	  1505	  1508#	  1559	  1893
TAKFIL	    49#	   851	   854	  2486	  2489
TBSDFL	    49#	  1278
TFMFLG	    49#	  1008	  1038	  1253	  1265	  1279
TMRST1	   501	   506	   511#	   602
TMRUN1	   594	   597	   601	   666#                                                                                    SEQ 0844
TPAT	    49#	  1225
TSTNUM	    48#	   691
TSTOFF	    48#	  2957	  2980
TSTPC	    48#
TSTPNT	    48#	  2948
TSTREP	    48#	   700	  2960	  2963	  2983	  2986
TSTSUB	    48#	   693	  2812	  2820
TTNBRF	  2217	  2336	  2420	  2462	  2637
TTYY0	   161#	   165	   172
TTYY1	   163#	   166
TTYYES	     9	   158#	  1577
TXNOT	  3036	  3056
TXTINH	  2950	  3029	  3035	  3051	  3055
TXYES	  3030	  3052
UDEBUG	    47#	  2792
USER	   136	   495	   592	   716	   752	   777	   804	  1503	  1534	  1543	  1867	  1963	  2848	  2850
	  2944
USTIM	    15	   606	   671#
UVERSN	    47#	  2969	  2972	  2992	  2995
VARPAT	  1030#	  1030	  1037
VPATRN	  1005	  1205#
WRDERR	    28	   979	  1055#	  1055	  1060	  1063	  1078
XX	   128#	   128	   215#	   215	   262#	   262	   309#	   309	   356#	   356
XXT	  2161#	  2161	  2251#	  2251	  2368#	  2368	  2412#	  2412	  2455#	  2455
XYZ	  1981#	  1981
ZU	    60#
$CHRIN	   118
$SVUPC	   210	   229	   257	   294	   304	   341	   351	   388	   400	   406	   427	   439	   445	   466
	   716	   739	  2766	  2883	  2897	  2913
$SVUUO	   125	   210	   220	   231	   257	   270	   277	   284	   296	   304	   317	   324	   331	   343
	   351	   364	   371	   378	   390	   400	   401	   408	   429	   439	   440	   447	   468	   716
	   721	   734	   741	  2767	  2883	  2897	  2913
$TTCHR	  2127	  2136	  2164	  2218	  2226	  2254	  2337	  2345	  2371	  2415	  2421	  2458	  2463	  2527
	  2577	  2638
$TWCNT	   164	  2162	  2252	  2369	  2413	  2456
$TYPNB	  2263	  2380
.CGOT	    38	  2034	  2043#
.CLOSE	    19	   777#
.COMM	    37	  2014#	  2280
.COMM0	  2021#	  2023
.COMM1	  2024	  2034#
.COMM2	  2022	  2058#
.COMM3	  2066#	  2073
.COMM4	  2068	  2074#
.COMM5	  2070	  2078#
.COMM6	  2062	  2081#
.CTBL	  2048#	  2063	  2065
.CTYP	  2016	  2045#	  2064
.DARG	    37	  2309#
.DARG0	  2330#	  2339
.DARG1	  2326	  2335#	  2381
.DARGA	  2331	  2368#
.DARX1	  2313	  2325	  2354	  2356	  2358	  2364#	  2374	  2376	  2379                                             SEQ 0845
.DARX2	  2319	  2340	  2360#	  2370
.DELA0	   726#	   729
.DELA1	   717	   734#
.DELAX	   730	   739#
.DELAY	    14	   714#
.EXIT	    19	   804#
.FHSLF	   535	   783	   811
.ISWT	    32	  1521#
.ISWT2	  1527#
.ISWT6	  1539#
.ISWT7	  1535	  1543#
.ISWT8	  1548#
.ISWTB	  1544	  1553#
.ISWTX	  1558#
.ISWTY	  1563	  1566#
.ISWTZ	  1565	  1569#
.LSWIT	    33	  1642	  1788#
.LSWTN	  1636	  1803#
.OARG	    37	  2190#
.OARG0	  2211#	  2220
.OARG1	  2207	  2216#	  2264
.OARGA	  2212	  2251#
.OARX1	  2194	  2206	  2235	  2237	  2239	  2245#	  2257	  2259	  2262
.OARX2	  2200	  2221	  2241#	  2253
.PNTD0	   265#	   268
.PNTD1	   266	   269#
.PNTD2	   312#	   315
.PNTD3	   313	   316#
.PNTDC	    10	   255#
.PNTDL	    10	   302#
.PNTDP	    10	   349#
.PNTOC	    10	   208#
.PNTP0	   359#	   362
.PNTP1	   360	   363#
.PRIOU	  2941
.RESET	    19	   752#
.RSWIT	    33	  1699	  1710	  1725	  1825#
.SARG	    37	  2101#
.SARG0	  2122#	  2129
.SARG1	  2118	  2127#	  2173
.SARGA	  2123	  2161#
.SARX1	  2105	  2117	  2145	  2147	  2149	  2155#	  2167	  2169	  2172
.SARX2	  2111	  2130	  2151#	  2163
.SLEFT	  1539	  1612#
.SLF1	  1615#	  1621
.SLF2	  1620	  1625#
.SLF3	  1629#	  1654
.SLF4	  1630#	  1649	  1662	  1666
.SLF5	  1636#	  1658
.SLF6	  1656	  1663#
.SLFX	  1623	  1634	  1652	  1668#
.SRG2	  1680#	  1686
.SRG3	  1685	  1690#                                                                                                    SEQ 0846
.SRG4	  1693#
.SRG5	  1694#	  1700	  1717	  1736	  1740
.SRG6	  1702#	  1723	  1727	  1732
.SRG6A	  1724#	  1726
.SRG6B	  1722	  1729#
.SRG7	  1730	  1737#
.SRGX	  1688	  1698	  1720	  1742#
.SRIGT	  1553	  1677#
.SWCH0	  1445#	  1491
.SWCH1	  1446	  1489#
.SWCHP	    32	  1434#
.SWIN	  1619	  1684	  1756#
.SWIN0	  1768#	  1778
.SWPNT	  1523	  1575#
.SWTXT	  1579	  1582#
ALTCHK	   164	  2123	  2212	  2331	  2412	  2455
CFIBF	   144                                                                                                             SEQ 0847
CLRBFI	   142
CLZFF	   784
DISMS	   735
DROPDV	   779
ERCAL	   537	   757	   785
ERRHLT	  2851
FMSG	   162	   196	   450	   451	   452	   453	   454	   455	   456	   457	   458	   459	   460	   461
	   462	   463	   464	   465	   632	   644	   656	   695	   697	   699	  1442	  1452	  1453	  1454
	  1455	  1456	  1457	  1458	  1459	  1460	  1461	  1462	  1463	  1464	  1465	  1466	  1467	  1468
	  1470	  1471	  1472	  1473	  1474	  1475	  1476	  1478	  1479	  1480	  1481	  1618	  1639	  1641
	  1683	  1707	  1709	  1875	  1877	  1878	  1879	  1880	  1881	  1882	  1883	  1884	  1930	  1931
	  1932	  1933	  1934	  1935	  1936	  1937	  1938	  1939	  1940	  1941	  1942	  1943	  1944	  1945
	  1946	  1947	  1948
FMSGC	   690	   850	  1436	  1449	  1530	  1566	  1576	  1873	  1894	  1970	  1971	  2485
FMSGCD	  1984	  1987	  2171	  2261	  2281	  2378	  2428	  2470
FMSGD	   703	   856	  1885	  1899	  1901	  2491
FREAD	   828	   840
GET	    92	    94	    99	   101	   124	   127	   128	   145	   147	   175	   177	   192	   201	   215
	   229	   231	   262	   294	   296	   309	   341	   343	   356	   388	   390	   406	   408	   427
	   429	   445	   447	   466	   468	   507	   509	   544	   556	   563	   613	   660	   662	   706
	   708	   739	   741	   789	   819	   847	   858	   905	   907	   926	   961	   963	  1065	  1067
	  1108	  1110	  1303	  1309	  1493	  1495	  1569	  1571	  1668	  1670	  1742	  1744	  1854	  1902
	  1904	  1995	  1996	  2028	  2030	  2036	  2038	  2074	  2076	  2078	  2080	  2081	  2083	  2155
	  2157	  2161	  2245	  2247	  2251	  2286	  2288	  2364	  2366	  2368	  2412	  2431	  2433	  2455
	  2474	  2476	  2493	  2534	  2536	  2542	  2544	  2584	  2586	  2592	  2594	  2647	  2649	  2655
	  2657	  2669	  2881	  2883	  2895	  2897	  2911	  2913	  3063	  3065
GO	   273	   280	   320	   327	   367	   374	   504	   555	   562	   596	   698	   723	   727	   878
	   881	   885	   888	   891	   898	   901	   917	   920	   923	   929	   947	  1013	  1014	  1043
	  1044	  1212	  1213	  1214	  1215	  1221	  1222	  1223	  1440	  1443	  1523	  1527	  1539	  1548
	  1553	  1561	  1577	  1619	  1647	  1684	  1715	  1758	  1779	  1890	  1896	  1964	  1968	  1974
	  1975	  1977	  1985	  2022	  2116	  2144	  2205	  2234	  2280	  2324	  2353	  2409	  2452	  2509
	  2529	  2540	  2559	  2579	  2590	  2608	  2640	  2653	  2665	  2782	  2788	  2834	  2837	  2905
	  2924	  2948	  3009	  3062
HALTF	   812
JEN	  1997
ODTIM	  2945
PBELL	  2844
PCRL	  1097	  2104	  2193	  2312	  2402	  2448	  3032	  3038
PCRL2F	  1627	  1691	  1765
PCRLF	  1492	  1532	  1568	  1616	  1625	  1650	  1681	  1718	  1762	  1771
PDEC	  1098
PFORCE	  1575	  2921
PJRST	  1758	  1765	  1770	  3030	  3036	  3056
PNT2	  2926
PNT3	  2929	  2931	  2933	  2935	  2937	  2939
PNTCHF	   846
PNTCIF	   200	   853	  2488
PNTDCF	   199	   627	   640	   652	   702
PNTDEC	   190	   292	   337	   386	   629	   642	   654	  1061	  2965	  2988
PNTDS	   404
PNTDSF	   443
PNTHW	  1101	  1104	  2968	  2991
PNTHWF	  1441	  1531	  1567	  1852	  1973                                                                             SEQ 0848
PNTMSF	   162	   196	   450	   451	   452	   453	   454	   455	   456	   457	   458	   459	   460	   461
	   462	   463	   464	   465	   632	   644	   656	   690	   695	   697	   699	   703	   850	   856
	  1436	  1442	  1449	  1452	  1453	  1454	  1455	  1456	  1457	  1458	  1459	  1460	  1461	  1462
	  1463	  1464	  1465	  1466	  1467	  1468	  1470	  1471	  1472	  1473	  1474	  1475	  1476	  1478
	  1479	  1480	  1481	  1530	  1566	  1576	  1618	  1626	  1639	  1641	  1683	  1690	  1707	  1709
	  1873	  1875	  1877	  1878	  1879	  1880	  1881	  1882	  1883	  1884	  1885	  1894	  1899	  1901
	  1930	  1931	  1932	  1933	  1934	  1935	  1936	  1937	  1938	  1939	  1940	  1941	  1942	  1943
	  1944	  1945	  1946	  1947	  1948	  1970	  1971	  1984	  1987	  2171	  2261	  2281	  2378	  2428
	  2470	  2485	  2491
PNTMSG	   187	   191	   236	   237	   238	   239	   240	   241	   242	   243	   244	   245	   246	   247
	   248	   249	   269	   275	   282	   316	   322	   329	   363	   369	   376	   411	   412	   413
	   414	   415	   416	   417	   418	   419	   420	   421	   422	   423	   424	   425	   426	   634
	   646	   658	  1059	  1062	  1092	  1093	  1099	  1102	  1339	  1340	  1341	  1342	  1343	  1344
	  1345	  1346	  1347	  1348	  1349	  1350	  1351	  1352	  1353	  1354	  1355	  1356	  1357	  1358
	  1359	  1360	  1361	  1362	  1363	  1364	  1365	  1366	  1367	  1368	  1369	  1370	  1371	  1372
	  1373	  1374	  1375	  1376	  1377	  1378	  1379	  1380	  1381	  1382	  1383	  1384	  1385	  1386
	  1387	  1388	  1389	  1390	  1391	  1392	  1393	  1394	  1395	  1396	  1397	  1398	  1399	  1400
	  1401	  1402	  1403	  1404	  1405	  1406	  1407	  1408	  1409	  1410	  1411	  1412	  1413	  1414
	  1415	  1416	  1417	  1418	  1419	  1420	  1421	  1422	  1423	  1424	  1425	  1426	  1579	  1644
	  1712	  1850	  1853	  2838	  2922	  2924	  2927	  2947	  2955	  2959	  2962	  2966	  2971	  2978
	  2982	  2985	  2989	  2994	  3023	  3033	  3039
PNTOCF	   692	   696	  1617	  1682
PNTOCS	   228	  2958	  2973	  2981	  2996
PNTSXF	   852	   855	  1643	  1711	  2487	  2490
PSP	  2940
PUT	    74	    76	   117	   138	   140	   158	   160	   186	   195	   208	   210	   212	   255	   257
	   259	   302	   304	   306	   349	   351	   353	   398	   400	   437	   439	   493	   495	   528
	   552	   559	   587	   589	   678	   680	   714	   716	   780	   807	   839	   873	   875	   916
	   943	   945	   989	   991	  1074	  1076	  1292	  1434	  1436	  1521	  1523	  1612	  1614	  1677
	  1679	  1849	  1863	  1865	  1965	  1967	  2014	  2016	  2058	  2060	  2101	  2103	  2190	  2192
	  2276	  2278	  2309	  2311	  2397	  2399	  2443	  2445	  2484	  2503	  2505	  2553	  2555	  2603
	  2605	  2664	  2766	  2767	  2768	  2770	  3060	  3062
RESET	   756
RGET	    92	    99	   145	   175	   229	   294	   341	   388	   406	   427	   445	   466	   507	   613
	   660	   706	   739	   905	   961	  1065	  1108	  1493	  1569	  1668	  1742	  1902	  2028	  2036
	  2074	  2078	  2081	  2155	  2245	  2286	  2364	  2431	  2474	  2534	  2542	  2584	  2592	  2647
	  2655	  2881	  2895	  2911	  3063
RPUT	    74	   138	   158	   208	   255	   302	   349	   398	   437	   493	   587	   678	   714	   873
	   943	   989	  1074	  1434	  1521	  1612	  1677	  1863	  1965	  2014	  2058	  2101	  2190	  2276
	  2309	  2397	  2443	  2503	  2553	  2603	  2768	  3060
RTN	    94	   102	   137	   147	   177	   193	   202	   231	   276	   283	   296	   323	   330	   343
	   370	   377	   390	   408	   429	   447	   468	   509	   537	   545	   557	   564	   614	   662
	   708	   741	   753	   757	   761	   778	   785	   790	   805	   820	   829	   832	   848	   859
	   907	   927	   933	   963	   988	  1015	  1045	  1067	  1110	  1237	  1242	  1248	  1255	  1260
	  1268	  1274	  1290	  1304	  1310	  1322	  1333	  1495	  1506	  1571	  1578	  1580	  1670	  1744
	  1763	  1766	  1772	  1782	  1855	  1904	  2030	  2039	  2077	  2080	  2085	  2157	  2247	  2288
	  2366	  2433	  2476	  2483	  2494	  2531	  2536	  2544	  2581	  2586	  2594	  2642	  2649	  2657
	  2670	  2883	  2899	  2915	  2946	  2970	  2974	  2993	  2997	  3005	  3019	  3024	  3034	  3037
	  3040	  3041	  3046	  3057	  3059	  3065
SWITCH	  1504
TIME	   536
TMSG	   187	   191	   236	   237	   238	   239	   240	   241	   242	   243	   244	   245	   246	   247
	   248	   249	   269	   275	   282	   316	   322	   329	   363	   369	   376	   411	   412	   413     SEQ 0849
	   414	   415	   416	   417	   418	   419	   420	   421	   422	   423	   424	   425	   426	   634
	   646	   658	  1062	  1099	  1102	  1339	  1340	  1341	  1342	  1343	  1344	  1345	  1346	  1347
	  1348	  1349	  1350	  1351	  1352	  1353	  1354	  1355	  1356	  1357	  1358	  1359	  1360	  1361
	  1362	  1363	  1364	  1365	  1366	  1367	  1368	  1369	  1370	  1371	  1372	  1373	  1374	  1375
	  1376	  1377	  1378	  1379	  1380	  1381	  1382	  1383	  1384	  1385	  1386	  1387	  1388	  1389
	  1390	  1391	  1392	  1393	  1394	  1395	  1396	  1397	  1398	  1399	  1400	  1401	  1402	  1403
	  1404	  1405	  1406	  1407	  1408	  1409	  1410	  1411	  1412	  1413	  1414	  1415	  1416	  1417
	  1418	  1419	  1420	  1421	  1422	  1423	  1424	  1425	  1426	  1644	  1712	  1850	  2927	  2959
	  2962	  2966	  2971	  2978	  2982	  2985	  2989	  2994
TMSGC	  1059	  1092	  1093	  1853	  2922	  2924	  2947	  2955	  3023
TMSGCD	  2838
TTALTM	  2872	  2887
TTICNV	  2330	  2411	  2454
TTIOCT	  2211
TTSIXB	   163	  2122
TTYINP	  1645	  1713	  1756	  1776
		LINK symbol map of	DFNIA	version (2)		page 1
	Produced by LINK version 5A(1775) on 24-Sep-84 at 20:10:11                                                         SEQ 0850

	Low  segment starts at	     0 ends at	212664 length	212665 = 139P
	75 words free in Low segment
	324 Global symbols loaded, therefore min. hash size is 361
	Start address is  30000, located in program DFNIA

		*************

JOBDAT-INITIAL-SYMBOLS

	Zero length module

		*************

DFNIA	from XTRA:DFNIAT.REL	created by MACRO on 24-Sep-84 at 19:59:38
	Low  segment starts at	   140 ends at	 30740 length	 30601 (octal), 12673. (decimal)


		*************

DFNIA	from DSK:DFNIA1.REL	created by MACRO on 24-Sep-84 at 20:01:38
	Low  segment starts at	 30741 ends at	165222 length	134262 (octal), 47282. (decimal)

	ALTF	      165104	Global	Relocatable 		BPACK	       65733	Entry	Absolute    	
	BPACKN	       65731	Entry	Absolute    		BUFF	      115613	Global	Absolute    	
	CADDR	       35604	Global	Absolute    		CALPAR	       42551	Entry	Absolute    	
	CHKINT	       66516	Entry	Absolute    		CHKRQV	       67151	Entry	Absolute    	
	CHKRSP	       67100	Entry	Absolute    		CMDOPC	       70164	Entry	Absolute    	
	CNTPNT	       67575	Entry	Absolute    		CONPNT	       43073	Entry	Absolute    	
	CONTBL	       43151	Global	Absolute    		CONVIR	       66652	Entry	Absolute    	
	CSRENG	       42627	Entry	Absolute    		CSRPNT	       42605	Entry	Absolute    	
	CWORDL	       35605	Global	Absolute    		CWORDR	       35606	Global	Absolute    	
	DDEBUG	      165112	Global	Relocatable 		DDUMP	       37533	Global	Absolute    	
	DISMS	104000000167	Global	Absolute    		DRCRAM	       36263	Entry	Absolute    	
	DSPRIN	       33706	Global	Absolute    		DWCRAM	       36231	Entry	Absolute    	
	EDEBUG	      165117	Global	Relocatable 		FINECH	      165121	Global	Relocatable 	
	FINPUT	      165122	Global	Relocatable 		GETJI	104000000507	Global	Absolute    	
	GETQUE	       66766	Entry	Absolute    		GTAD	104000000227	Global	Absolute    	
	INSQUE	       66703	Entry	Absolute    		IPRINT	       41302	Entry	Absolute    	
	LDEBUG	      165127	Global	Relocatable 		MCAT17	      115356	Global	Absolute    	
	MDEBUG	      165133	Global	Relocatable 		MLNUM	      165134	Global	Relocatable 	
	MLOADN	       64353	Entry	Absolute    		MLOADY	       64355	Entry	Absolute    	
	MTABLE	      115320	Global	Absolute    		MVPNT	       64536	Entry	Absolute    	
	NEWENT	      165143	Global	Relocatable 		NUMENT	       66650	Global	Absolute    	
	OPCPNT	       70134	Entry	Absolute    		PACK4T	       67677	Entry	Absolute    	
	PACKET	       72114	Global	Absolute    		PARFLG	       33670	Global	Absolute    	
	PCB	       72000	Global	Absolute    		PGMNAM	       30600	Global	Absolute    	
	PMODE	      115611	Global	Absolute    		PNTRSP	       42227	Entry	Absolute    	
	PPAKC	       67436	Entry	Absolute    		PPAKF	       67500	Entry	Absolute    	
	PPAKR	       67466	Entry	Absolute    		PPCB	       70747	Entry	Absolute    	
	PPCBD	       71023	Entry	Absolute    		PQUEUE	       67305	Entry	Absolute    	
	PTABLE	      105000	Global	Absolute    		PTTFQ	      105070	Global	Absolute    	
	PUTQUE	       67022	Entry	Absolute    		RDADDR	       65672	Entry	Absolute    	
	RQAFLG	      165166	Global	Relocatable 		RSPONS	       73000	Global	Absolute    	
		LINK symbol map of	DFNIA	version (2)		page 2
DFNIA                                                                                                                      SEQ 0851
	RSPQUE	      165170	Entry	Relocatable 		RUPDAT	       43511	Entry	Absolute    	
	RWAIT	       66476	Entry	Absolute    		SADDR	       33704	Global	Absolute    	
	SETDSA	       42324	Entry	Absolute    		SETENA	       42264	Entry	Absolute    	
	SPEAR2	      165206	Global	Relocatable 		SPREP2	      115421	Global	Absolute    	
	STARCV	       43676	Global	Absolute    		START	       30611	Entry	Absolute    	
	STARTA	       30722	Entry	Absolute    		STASNT	       43665	Global	Absolute    	
	SUPDAT	       43461	Entry	Absolute    		SYERR	104000000527	Global	Absolute    	
	TAKFIL	       31561	Global	Absolute    		TAMC	       65725	Global	Absolute    	
	TBSDFL	       65712	Global	Absolute    		TBYTE	       65720	Global	Absolute    	
	TDEST	       65715	Global	Absolute    		TFLOAD	       43715	Entry	Absolute    	
	TFMFLG	       65711	Global	Absolute    		TH4000	       65726	Global	Absolute    	
	TIDLE	       65646	Entry	Absolute    		TLOAD	       64666	Entry	Absolute    	
	TPAT	       65722	Global	Absolute    		TPCB	       64711	Entry	Absolute    	
	TPDFLG	       65714	Global	Absolute    		TPRMSC	       65727	Global	Absolute    	
	TPTTVL	       65717	Global	Absolute    		TRACE	       42350	Entry	Absolute    	
	TREGD	       65724	Global	Absolute    		TREGN	       65723	Global	Absolute    	
	TRETRY	       65730	Global	Absolute    		TRSFLG	       65713	Global	Absolute    	
	TSLOAD	      165211	Global	Relocatable 		TSTEND	       42406	Entry	Absolute    	
	TSTFLG	      115601	Global	Absolute    		TSTMSK	      115602	Global	Absolute    	
	TSTNAM	       32120	Global	Absolute    		TSTNUM	      115576	Global	Absolute    	
	TSTOFF	      115606	Global	Absolute    		TSTPC	      115600	Global	Absolute    	
	TSTPNT	       42411	Entry	Absolute    		TSTREP	      115603	Global	Absolute    	
	TSTSUB	      115577	Global	Absolute    		TSTTAB	       32037	Global	Absolute    	
	TWORD	       65721	Global	Absolute    		TXADDL	      165215	Global	Relocatable 	
	UDEBUG	      165216	Global	Relocatable 		UVERSN	      165217	Global	Relocatable 	
	.RREXP	           4	Global	Absolute    Suppressed

		*************

.MAIN	from DSK:DFNIA2.REL	created by MACRO on 24-Sep-84 at 20:08:01
	Low  segment starts at	165223 ends at	170435 length	  3213 (octal),  1675. (decimal)

	MPRINT	      170031	Entry	Relocatable 		MSTART	      170020	Entry	Relocatable 	
	MWAIT	      167761	Entry	Relocatable 		SAVCOD	      170060	Global	Relocatable 	
	SAVCSR	      170055	Global	Relocatable 		SAVEBU	      170057	Global	Relocatable 	
	SAVLAR	      170056	Global	Relocatable 		T2M	      165731	Entry	Relocatable 	
	T3M	      167324	Entry	Relocatable 		TST1	      165223	Entry	Relocatable 	
	TST2	      165700	Entry	Relocatable 		TST3	      167246	Entry	Relocatable 	

		*************

.MAIN	from DSK:DFNIA3.REL	created by MACRO on 24-Sep-84 at 20:08:37
	Low  segment starts at	170436 ends at	200552 length	 10115 (octal),  4173. (decimal)

	CRCOFF	      172376	Global	Relocatable 		CRCSAV	      172375	Global	Relocatable 	
	CRCTAB	      172377	Global	Relocatable 		PDUMP	      176734	Entry	Relocatable 	
	TST10	      171320	Entry	Relocatable 		TST11	      171561	Entry	Relocatable 	
	TST12	      172043	Entry	Relocatable 		TST13	      172741	Entry	Relocatable 	
	TST14	      173232	Entry	Relocatable 		TST15	      173523	Entry	Relocatable 	
	TST16	      173753	Entry	Relocatable 		TST17	      174210	Entry	Relocatable 	
	TST20	      174443	Entry	Relocatable 		TST21	      174710	Entry	Relocatable 	
	TST22	      175157	Entry	Relocatable 		TST23	      175414	Entry	Relocatable 	
	TST24	      175651	Entry	Relocatable 		TST25	      176077	Entry	Relocatable 	
	TST26	      176320	Entry	Relocatable 		TST27	      176336	Entry	Relocatable 	
		LINK symbol map of	DFNIA	version (2)		page 3
.MAIN                                                                                                                      SEQ 0852
	TST4	      170436	Entry	Relocatable 		TST5	      170543	Entry	Relocatable 	
	TST6	      170763	Entry	Relocatable 		TST7	      171140	Entry	Relocatable 	

		*************

.MAIN	from DSK:DFNIAI.REL	created by MACRO on 24-Sep-84 at 20:09:03
	Low  segment starts at	200553 ends at	204367 length	  3615 (octal),  1933. (decimal)

	AADDR	      201205	Global	Relocatable 		CBASE	      202145	Global	Relocatable 	
	CCWPNT	      202425	Entry	Relocatable 		CHINIT	      202152	Entry	Relocatable 	
	CHKCSR	      201100	Entry	Relocatable 		CLREBU	      201064	Entry	Relocatable 	
	DEVREL	      202670	Entry	Relocatable 		DEVREQ	      202725	Entry	Relocatable 	
	DSETUP	      202547	Entry	Relocatable 		EADDR	      201204	Global	Relocatable 	
	ENABLE	      203165	Entry	Relocatable 		EPCAP	104000000151	Global	Absolute    	
	EPTJMP	      202143	Global	Relocatable 		ERCAL	320740000000	Global	Absolute    	
	ERESET	      200742	Entry	Relocatable 		ERSTR	104000000011	Global	Absolute    	
	FFF	      203205	Entry	Relocatable 		GETLOG	      202364	Entry	Relocatable 	
	HAVIPA	      203072	Global	Relocatable 		ICWA0	      202133	Global	Relocatable 	
	INITPD	      201315	Entry	Relocatable 		INITPI	      201272	Entry	Relocatable 	
	INTAPR	      201737	Global	Relocatable 		INTCON	      201713	Global	Relocatable 	
	INTCSR	      202033	Global	Relocatable 		INTEND	      202103	Global	Relocatable 	
	INTNUM	      201642	Global	Relocatable 		INTPC	      201643	Global	Relocatable 	
	INTTIM	      201763	Global	Relocatable 		INTTYP	      201667	Global	Relocatable 	
	INTUSE	      202007	Global	Relocatable 		IPACLR	      201025	Entry	Relocatable 	
	IPASRT	      201117	Entry	Relocatable 		IPASST	      201206	Entry	Relocatable 	
	IPASTP	      201151	Entry	Relocatable 		ISTOP	      200751	Entry	Relocatable 	
	LDCRAM	      200610	Entry	Relocatable 		LDCSR	      200563	Entry	Relocatable 	
	LDEBUF	      200553	Entry	Relocatable 		LDRAR	      200574	Entry	Relocatable 	
	LOCDON	      203136	Global	Relocatable 		LOCPHY	      203101	Entry	Relocatable 	
	LOGBUF	      202146	Global	Relocatable 		LOGPNT	      202446	Entry	Relocatable 	
	PISYOF	      201347	Entry	Relocatable 		PISYON	      201352	Entry	Relocatable 	
	RDCRAM	      200670	Entry	Relocatable 		RDCSR	      200633	Entry	Relocatable 	
	RDEBUF	      200623	Entry	Relocatable 		RDLAR	      200657	Entry	Relocatable 	
	REL	      202712	Entry	Relocatable 		REQ1	      202751	Entry	Relocatable 	
	REQ2	      202761	Entry	Relocatable 		RPCAP	104000000150	Global	Absolute    	
	SDATA	      201203	Global	Relocatable 		SETEBU	      201032	Entry	Relocatable 	
	SETLAR	      201047	Entry	Relocatable 		SETVEC	      201355	Entry	Relocatable 	
	SLAST	      201202	Global	Relocatable 		SNARKF	      204366	Global	Relocatable 	
	SNEXT	      201201	Global	Relocatable 		USRIO	104000000310	Global	Absolute    	
	USRIOF	      203157	Entry	Relocatable 		USRION	      203137	Entry	Relocatable 	
	.CONI	      200701	Entry	Relocatable 		.CONO	      200711	Entry	Relocatable 	
	.DATAI	      200722	Entry	Relocatable 		.DATAO	      200732	Entry	Relocatable 	
	.FHSLF	      400000	Global	Absolute    Suppressed	.INPNT	      202104	Entry	Relocatable 	
	.INWD1	      202131	Global	Relocatable 		.INWD2	      202132	Global	Relocatable 	
	.PIOFF	      201321	Entry	Relocatable 		.PION	      201333	Entry	Relocatable 	

		*************

.MAIN	from DSK:DFNIAU.REL	created by MACRO on 24-Sep-84 at 20:09:32
	Low  segment starts at	204370 ends at	212664 length	  6275 (octal),  3261. (decimal)

	ALTCHH	      204421	Entry	Relocatable 		ARGFLG	      207442	Global	Relocatable 	
	ARGUM	      207441	Global	Relocatable 		BUFCOM	      205553	Entry	Relocatable 	
	BUFGEN	      205562	Entry	Relocatable 		CHKARG	      207443	Entry	Relocatable 	
		LINK symbol map of	DFNIA	version (2)		page 4
.MAIN                                                                                                                      SEQ 0853
	CLRBUF	      204435	Entry	Relocatable 		CLZFF	104000000034	Global	Absolute    	
	CONVSX	      204370	Entry	Relocatable 		CURTIM	      205241	Global	Relocatable 	
	DEBTIM	      205243	Global	Relocatable 		DECYN	      207345	Entry	Relocatable 	
	FGETW	      205437	Entry	Relocatable 		FINCMD	      207531	Entry	Relocatable 	
	FIOFF	      207514	Entry	Relocatable 		FOARG	      207633	Entry	Relocatable 	
	FORPNT	      212645	Global	Relocatable 		HALTF	104000000170	Global	Absolute    	
	LASARG	      207467	Entry	Relocatable 		LCHAR	      212652	Global	Relocatable 	
	MAXTIM	      205242	Global	Relocatable 		MONTIM	      205111	Entry	Relocatable 	
	ODTIM	104000000220	Global	Absolute    		PARSER	      207062	Entry	Relocatable 	
	PATBUF	      205723	Entry	Relocatable 		PATPNT	      206165	Entry	Relocatable 	
	PPDEC	      205012	Entry	Relocatable 		PPDECF	      205040	Entry	Relocatable 	
	PSDN	      204475	Entry	Relocatable 		PSTAMP	      205245	Entry	Relocatable 	
	PTIME	      205133	Entry	Relocatable 		RESET	104000000147	Global	Absolute    	
	RUNTME	      205147	Entry	Relocatable 		SCOOFF	      210220	Global	Relocatable 	
	SCOPE1	      207724	Entry	Relocatable 		SCOSW	      212656	Global	Relocatable 	
	STCLOK	      205066	Entry	Relocatable 		SWCHPT	      206746	Entry	Relocatable 	
	SWCOM	      206755	Entry	Relocatable 		SWITT	      206354	Entry	Relocatable 	
	SWRGT	      206361	Global	Relocatable 		TIME	104000000014	Global	Absolute    	
	TTYYES	      204451	Entry	Relocatable 		USTIM	      205244	Global	Relocatable 	
	WRDERR	      212661	Global	Relocatable 		.CGOT	      207150	Global	Relocatable 	
	.CLOSE	      205353	Entry	Relocatable 		.COMM	      207124	Entry	Relocatable 	
	.DARG	      207366	Entry	Relocatable 		.DELAY	      205306	Entry	Relocatable 	
	.EXIT	      205371	Entry	Relocatable 		.ISWT	      206362	Entry	Relocatable 	
	.LSWIT	      206670	Global	Relocatable 		.OARG	      207272	Entry	Relocatable 	
	.PNTDC	      204572	Entry	Relocatable 		.PNTDL	      204652	Entry	Relocatable 	
	.PNTDP	      204732	Entry	Relocatable 		.PNTOC	      204511	Entry	Relocatable 	
	.PRIOU	         101	Global	Absolute    Suppressed	.RESET	      205341	Entry	Relocatable 	
	.RSWIT	      206724	Global	Relocatable 		.SARG	      207221	Entry	Relocatable 	
	.SWCHP	      206315	Entry	Relocatable 	

		*************
	Index to LINK symbol map of	DFNIA	version (2)		page 5
                                                                                                                           SEQ 0854
	Name	Page	Name	Page	Name	Page	Name	Page

	DFNIA	 1	.MAIN	 2	.MAIN	 3	.MAIN	 3
	DFNIA	 1	.MAIN	 2

	[End of LINK map of	DFNIA]