Google
 

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





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

        PRODUCT CODE:           AH-T732AA-DD

        DIAGNOSTIC CODE:        DFPTA

        PRODUCT NAME:           DFPTAA0 Port Basic Device Diagnostic

        VERSION:                0.1

        DATE RELEASED:          December 31, 1984

        MAINTAINED BY:          Peripherals/CPS Engineering

        AUTHOR:                 Richard Stockdale



                        COPYRIGHT (C) 1984

                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-DFPTA-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.3.1       Port Configuration . . . . . . . . . . . . . . . 7
        4.4       Optional Restart Address . . . . . . . . . . . . . 7

        5.0     PROGRAM STOPPING PROCEDURE . . . . . . . . . . . . . 8

        6.0     PROGRAM OPERATING PROCEDURE  . . . . . . . . . . . . 9
        6.1       Overview . . . . . . . . . . . . . . . . . . . . . 9
        6.2       Configuration  . . . . . . . . . . . . . . . . . . 9
        6.2.1       Configuration Report . . . . . . . . . . . . . . 9
        6.2.2       Configuration Modification . . . . . . . . . . . 9
        6.2.3       Reconfiguration Capability . . . . . . . . . .  10
        6.3       Choosing Run Time Options  . . . . . . . . . . .  10
        6.4       Modes of Diagnostic Operation  . . . . . . . . .  10
        6.5       Scope Looping  . . . . . . . . . . . . . . . . .  10
        6.6       General User Interface Philosophy  . . . . . . .  10
        6.6.1       User Interface . . . . . . . . . . . . . . . .  11
        6.7       Terminal Input . . . . . . . . . . . . . . . . .  11
        6.7.1       General  . . . . . . . . . . . . . . . . . . .  11
        6.7.2       Control-C Capability (Ctrl-C)  . . . . . . . .  11
        6.7.3       Control-O Capability (Ctrl-O)  . . . . . . . .  11
        6.7.4       Control-Q Capability (Ctrl-Q)  . . . . . . . .  12
        6.7.5       Control-S Capability (Ctrl-S)  . . . . . . . .  12
        6.7.6       Control-T Capability (Ctrl-T)  . . . . . . . .  12
        6.7.7       Control-U Capability (Ctrl-U)  . . . . . . . .  12
        6.7.8       Control-Z Capability (Ctrl-Z)  . . . . . . . .  12
        6.7.9       Question Mark (?)  . . . . . . . . . . . . . .  12
        6.7.10      Altmode (ESC)  . . . . . . . . . . . . . . . .  13
        6.8       Terminal Output  . . . . . . . . . . . . . . . .  13

        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-DFPTA-A-D                                          Page iii
Table of Contents                                                                                                          SEQ 0003


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

        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  . . . . . . . .  28
        9.2.2.1       TOPS-10  . . . . . . . . . . . . . . . . . .  28
        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  . . . . . . . . . . . . . . . .  29
        9.5.1       Error Resolution . . . . . . . . . . . . . . .  29
        9.5.2       Fault Detection And Isolation  . . . . . . . .  29
        9.5.3       Fault Detection  . . . . . . . . . . . . . . .  29
        9.6       Network Descriptions . . . . . . . . . . . . . .  29
        9.6.1       EBUS Module networks . . . . . . . . . . . . .  29
        9.6.1.1       E1 - EBUS Control Logic  . . . . . . . . . .  30
        9.6.1.2       E2 - CC EBUS RQST  . . . . . . . . . . . . .  30
        9.6.1.3       E3 - CC GRNT CSR . . . . . . . . . . . . . .  30
        9.6.1.4       E4 - Interrupt Logic . . . . . . . . . . . .  30
        9.6.1.5       E5 - Clock Logic . . . . . . . . . . . . . .  30
        9.6.1.6       E6 - Clear Logic . . . . . . . . . . . . . .  30
        9.6.1.7       E7 - Magic # Field Decode  . . . . . . . . .  30
        9.6.1.8       E8 - CC CSR CHNG . . . . . . . . . . . . . .  31
        9.6.1.9       E9 - KMUX  . . . . . . . . . . . . . . . . .  31
        9.6.1.10      E10 - EMUX . . . . . . . . . . . . . . . . .  31
        9.6.1.11      E11 - RMUX/CSR 25-31 . . . . . . . . . . . .  31
        9.6.1.12      E12 - CSR 11-13/19-22/33-35  . . . . . . . .  31
        9.6.1.13      E13 - CSR 04 Rqst Exam/Dep . . . . . . . . .  31
        9.6.1.14      E14 - CSR 05 Rqst Interrupt/CC INTR ACTIVE .  31
        9.6.1.15      E15 - CSR 06/07 CRAM PE/MBUS Error . . . . .  32
        9.6.1.16      E16 - CSR 24 EBUS PE . . . . . . . . . . . .  32
        9.6.1.17      E17 - CSR 32 MPROC Run . . . . . . . . . . .  32
        9.6.1.18      E18 - KMUX Parity Generation . . . . . . . .  32
        9.6.1.19      E19 - EBUS Parity Checking . . . . . . . . .  32
        9.6.1.20      E20 - EBUF . . . . . . . . . . . . . . . . .  32
        9.6.1.21      E21 - EBUS Data Xcvr's . . . . . . . . . . .  32
        9.6.1.22      E22 - EBUS Control Xcvr's  . . . . . . . . .  32
        9.6.1.23      E23 - 2901's/Carry Logic . . . . . . . . . .  33
        9.6.1.24      E24 - Constant MUX . . . . . . . . . . . . .  33
        9.6.2       MPROC Module networks  . . . . . . . . . . . .  33
        9.6.2.1       M1 - MPROC Run Clocks  . . . . . . . . . . .  33
        9.6.2.2       M2 - Local Memory Control  . . . . . . . . .  33
        9.6.2.3       M3 - MBUS Error Detect Logic . . . . . . . .  33
        9.6.2.4       M4 - CRAM Read/Write Control . . . . . . . .  33
MAINDEC-10-DFPTA-A-D                                           Page iv
Table of Contents                                                                                                          SEQ 0004


        9.6.2.5       M5 - Jump ADDR MUX . . . . . . . . . . . . .  33
        9.6.2.6       M6 - CC MUX  . . . . . . . . . . . . . . . .  34
        9.6.2.7       M7 - 2910 MicroSequencer . . . . . . . . . .  34
        9.6.2.8       M8 - CRAM ADDR MUX . . . . . . . . . . . . .  34
        9.6.2.9       M9 - LAR . . . . . . . . . . . . . . . . . .  34
        9.6.2.10      M10 - CRAM 0000-7777 . . . . . . . . . . . .  34
        9.6.2.11      M11 - Cond/Skip Decoder  . . . . . . . . . .  34
        9.6.2.12      M12 - CRAM Control Register  . . . . . . . .  34
        9.6.2.13      M13 - Local Storage RAM  . . . . . . . . . .  34
        9.6.2.14      M14 - Local Storage Addr Register  . . . . .  35
        9.6.2.15      M15 - RAM Mode MUX . . . . . . . . . . . . .  35
        9.6.2.16      M16 - RAR  . . . . . . . . . . . . . . . . .  35
        9.6.2.17      M17 - Right CRAM Load Buffer . . . . . . . .  35
        9.6.2.18      M18 - Left CRAM Load Buffer  . . . . . . . .  35
        9.6.2.19      M19 - MW Out MUX . . . . . . . . . . . . . .  35
        9.6.3       CBUS Module networks . . . . . . . . . . . . .  35
        9.6.3.1       C1 - CBUS Control Logic  . . . . . . . . . .  35
        9.6.3.2       C2 - Clock Logic . . . . . . . . . . . . . .  35
        9.6.3.3       C3 - Reset Logic . . . . . . . . . . . . . .  36
        9.6.3.4       C4 - Clear Logic . . . . . . . . . . . . . .  36
        9.6.3.5       C5 - 'CC CBUS AVAIL' . . . . . . . . . . . .  36
        9.6.3.6       C6 - 'CC CB LST WD'/ 'CC CHAN ERR' . . . . .  36
        9.6.3.7       C7 - 'CLR CC CODE' . . . . . . . . . . . . .  36
        9.6.3.8       C8 - Magic # Field Decode  . . . . . . . . .  36
        9.6.3.9       C9 - 'CC CBUS PAR ERR' . . . . . . . . . . .  36
        9.6.3.10      C10 - 'CC PLI PAR ERR' . . . . . . . . . . .  36
        9.6.3.11      C11 - Parity Predictor . . . . . . . . . . .  37
        9.6.3.12      C12 - Formatter Control  . . . . . . . . . .  37
        9.6.3.13      C13 - PLI Control Logic  . . . . . . . . . .  37
        9.6.3.14      C14 - CBUS Input Buffer  . . . . . . . . . .  37
        9.6.3.15      C15 - CBUS Output Buffer . . . . . . . . . .  37
        9.6.3.16      C16 - CBUS Out Par Gen . . . . . . . . . . .  37
        9.6.3.17      C17 - CBUS In Par Checker  . . . . . . . . .  37
        9.6.3.18      C18 - DMUX . . . . . . . . . . . . . . . . .  37
        9.6.3.19      C19 - SMUX . . . . . . . . . . . . . . . . .  37
        9.6.3.20      C20 - Mvr/Fmtr . . . . . . . . . . . . . . .  38
        9.6.3.21      C21 - PLI Logic  . . . . . . . . . . . . . .  38
        9.6.3.22      C22 - PMUX . . . . . . . . . . . . . . . . .  38
        9.6.3.23      C23 - CMUX . . . . . . . . . . . . . . . . .  38
        9.6.3.24      C24 - CBUF . . . . . . . . . . . . . . . . .  38
        9.7       Performance During Hardware Failures . . . . . .  38
        9.7.1       CPU/Memory Failures  . . . . . . . . . . . . .  38
        9.7.2       Power Fail/Restart . . . . . . . . . . . . . .  38
        9.7.3       Port Failure . . . . . . . . . . . . . . . . .  38
        9.7.4       Unexpected Traps . . . . . . . . . . . . . . .  39
        9.8       Program Applications . . . . . . . . . . . . . .  39
        9.8.1       Users and Uses . . . . . . . . . . . . . . . .  39
        9.8.2       Engineering Usage  . . . . . . . . . . . . . .  39
        9.8.3       Manufacturing Usage  . . . . . . . . . . . . .  39
        9.8.4       Customer Services Usage  . . . . . . . . . . .  39
        9.8.5       Customer Usage . . . . . . . . . . . . . . . .  40
        9.9       Test Design  . . . . . . . . . . . . . . . . . .  40
        9.9.1       Type of Tests  . . . . . . . . . . . . . . . .  40
        9.9.2       Test Flow  . . . . . . . . . . . . . . . . . .  41
        9.9.2.1       Starting the Test  . . . . . . . . . . . . .  41
        9.9.2.2       Stopping the Test  . . . . . . . . . . . . .  42
MAINDEC-10-DFPTA-A-D                                            Page v
Table of Contents                                                                                                          SEQ 0005


        9.9.2.3       Obtaining Run Time Status (Control-T)  . . .  42
        9.9.2.4       Obtaining Run Time Status (S or Control-S) .  42

        10.0    TEST DESCRIPTIONS  . . . . . . . . . . . . . . . .  43
        10.1      Test Description Assumptions . . . . . . . . . .  43
        10.2      Test Description Overview  . . . . . . . . . . .  43
        10.3      Program Option Selections  . . . . . . . . . . .  44
        10.3.1      Basic Description  . . . . . . . . . . . . . .  44
        10.3.2      Commands Available . . . . . . . . . . . . . .  44
        10.3.3      Detailed Command Description . . . . . . . . .  45
        10.3.3.1      Hardware Tests . . . . . . . . . . . . . . .  45
        10.3.3.2      General Commands . . . . . . . . . . . . . .  47
        10.3.3.3      Test Control Commands  . . . . . . . . . . .  48
        10.3.3.4      Switches . . . . . . . . . . . . . . . . . .  50
        10.4      Hardware Tests . . . . . . . . . . . . . . . . .  52
        10.4.1      Hardware Tests - EBUS Module . . . . . . . . .  52
        10.4.1.1      EBUS Interface Tests . . . . . . . . . . . .  52
        10.4.1.2      CSR Register Tests . . . . . . . . . . . . .  52
        10.4.1.3      EBUF Tests (MBus Loopback) . . . . . . . . .  52
        10.4.1.4      CSR Bit 18 'Clear Port' Tests  . . . . . . .  52
        10.4.1.5      'Diag Test Ebuf'/Initialized . . . . . . . .  52
        10.4.1.6      Parity Generators/Checkers Tests . . . . . .  53
        10.4.1.7      CSR Read Only Bits . . . . . . . . . . . . .  53
        10.4.1.8      CSR 01 'DIAG RQST CSR' . . . . . . . . . . .  53
        10.4.1.9      CSR 02 'DIAG CSR CHNG' . . . . . . . . . . .  53
        10.4.1.10     Contant MUX  . . . . . . . . . . . . . . . .  53
        10.4.1.11     CSR 05 'Rqst Int' Bit  . . . . . . . . . . .  53
        10.4.1.12     CSR 06 'CRAM PE' Bit . . . . . . . . . . . .  53
        10.4.1.13     CSR 07 'MBUS Err' Bit  . . . . . . . . . . .  54
        10.4.1.14     CSR Bits 11,12,13  . . . . . . . . . . . . .  54
        10.4.1.15     MPROC Run Bit  . . . . . . . . . . . . . . .  54
        10.4.1.16     CSR 22 'Diag Single Cyc' . . . . . . . . . .  54
        10.4.1.17     PIA Level Selection  . . . . . . . . . . . .  54
        10.4.1.18     IOP Function Words . . . . . . . . . . . . .  54
        10.4.1.19     CSR Bits 25-31 . . . . . . . . . . . . . . .  54
        10.4.1.20     2901 Isolation Tests . . . . . . . . . . . .  55
        10.4.1.21     2901 Boolean Tests (Direct Input/0)  . . . .  55
        10.4.1.22     2901 Register File Tests . . . . . . . . . .  55
        10.4.1.23     2901 ALU Function Tests  . . . . . . . . . .  55
        10.4.1.24     Register Interference Tests  . . . . . . . .  55
        10.4.1.25     Q-Register Shifter Tests . . . . . . . . . .  56
        10.4.1.26     RAM Register Shifter Tests . . . . . . . . .  56
        10.4.2      Hardware Tests - MPROC Module  . . . . . . . .  56
        10.4.2.1      CRAM Tests . . . . . . . . . . . . . . . . .  56
        10.4.2.2      RAR/LAR Tests  . . . . . . . . . . . . . . .  56
        10.4.2.3      Cram Ctrl Register Tests . . . . . . . . . .  56
        10.4.2.4      MBUS Error Tests . . . . . . . . . . . . . .  56
        10.4.2.5      Condition Code Tests . . . . . . . . . . . .  57
        10.4.2.6      Local Storage Tests  . . . . . . . . . . . .  57
        10.4.2.7      Miscellaneous MPROC Tests  . . . . . . . . .  57
        10.4.2.8      2910 Basic Instruction Tests . . . . . . . .  57
        10.4.3      Hardware Tests - CBUS Module . . . . . . . . .  58
        10.4.3.1      Basic CBUS Tests . . . . . . . . . . . . . .  58
        10.4.3.2      CBUS Data Transfer Tests . . . . . . . . . .  58
        10.4.3.3      Mover/Formatter Tests  . . . . . . . . . . .  59
        10.4.3.4      Miscellaneous CBUS Tests . . . . . . . . . .  59
MAINDEC-10-DFPTA-A-D                                           Page vi
Table of Contents                                                                                                          SEQ 0006


        10.4.3.5      Parity Predictor Tests . . . . . . . . . . .  59
        10.5      Debug Test . . . . . . . . . . . . . . . . . . .  61
        10.5.1      Basic Description  . . . . . . . . . . . . . .  61
        10.5.2      Commands Available . . . . . . . . . . . . . .  61
        10.5.3      Detailed Command Description . . . . . . . . .  64
        10.5.3.1      General Commands . . . . . . . . . . . . . .  64
        10.5.3.2      Device Selection Commands  . . . . . . . . .  67
        10.5.3.3      Starting, Stopping, Initializing the Port  .  68
        10.5.3.4      Handling Port Registers  . . . . . . . . . .  70
        10.5.3.5      Handling Port CRAM Locations . . . . . . . .  72
        10.5.3.6      2901 Commands  . . . . . . . . . . . . . . .  74
        10.5.3.7      Local Storage Commands . . . . . . . . . . .  75
        10.5.3.8      Special Scope Functions  . . . . . . . . . .  76
        10.5.3.9      Mark Bit Commands  . . . . . . . . . . . . .  77
        10.5.3.10     Breakpoint Commands  . . . . . . . . . . . .  78
        10.5.3.11     Microcode Commands . . . . . . . . . . . . .  79
        10.5.3.12     Miscellaneous Commands . . . . . . . . . . .  81
        10.5.3.13     Data Transfer Commands . . . . . . . . . . .  84
        10.5.3.14     Switches . . . . . . . . . . . . . . . . . .  85

        11.0    PROGRAM RUN TIME . . . . . . . . . . . . . . . . .  87
MAINDEC-10-DFPTA-A-D                                              Page 1
PROGRAM ABSTRACT                                                                                                           SEQ 0007


1.0  PROGRAM ABSTRACT

       DFPTA is the basic device diagnostic for the CI20/NI20 controller
    on  the KL10.  It is intended to detect and isolate hard or stuck at
    faults in the  device.   It  is  used  by  Manufacturing  to  repair
    CI20/NI20  modules.   It  is  used  by  Field  Service to verify the
    operation of a port or to isolate a fault to a replaceable module.

       DFPTA tests one or two CI20/NI20  controllers.   Each  controller
    consists of three port modules residing in RH20 slot #5 or #7.

       DFPTA isolates faults  to  a  network  of  failing  chips.   Each
    network   is   a  set  of  chips,  generally  functionally  related.
    Typically, several networks are  printed,  with  the  first  network
    being the most probable.

       DFPTA consists of two major program sections:

     o  Test section - Contains all of the hardware tests.  This section
        is used to debug a module or verify a port.

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


2.0  REQUIREMENTS

    2.1  Hardware Requirements

       Hardware requirements consist of:

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

     o  An CI20/NI20 Port in RH slot 5 or RH slot 7 or both.

     o  A load device




    2.1.1  KL10 Microcode Requirements

       The  CI20/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 96K 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.0 or above is required.
MAINDEC-10-DFPTA-A-D                                              Page 3
REQUIREMENTS                                                                                                               SEQ 0009


    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.
MAINDEC-10-DFPTA-A-D                                              Page 4
PROGRAM LOADING PROCEDURE                                                                                                  SEQ 0010


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-DFPTA-A-D                                              Page 5
PROGRAM STARTING PROCEDURE                                                                                                 SEQ 0011


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, DFPTA, 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.  The
    diagnostic then looks at RH slots 5 and  7,  print  what  ports  are
    available, and asks the user what ports to test.

       If OPRSEL switch is not set, the diagnostic will test every  port
    that  exists  and  is  selectable.   If  this  switch  is  set,  the
    diagnostic will ask what ports to test.

       For example (OPRSEL switch not set):

    |  D20MON CMD - DFPTA
    |
    |  DFPTA Port Basic Diagnostic
    |  VERSION 0.1, SV=0.15, TOPS-20, KL10, CPU#=2263
    |
    |  SWITCHES = 000000 000000
    |
    |  MEMORY MAP =
    |  FROM     TO         SIZE/K
    |  00000000 00263777     90
    |
MAINDEC-10-DFPTA-A-D                                              Page 6
PROGRAM STARTING PROCEDURE                                                                                                 SEQ 0012


    |  Port Configuration:
    |    Port  Exists  Selectable  Selected
    |     NI    No        Yes         No
    |     CI    Yes       Yes         Yes
    |
    |  [CI port selected]
    |
    |  End pass 1. at 3m 48s 
    |
    |  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 - DFPTA
    |
    |  DFPTA Port Basic Diagnostic
    |  VERSION 0.1, SV=0.15, TOPS-20, KL10, CPU#=2263
    |
    |  SWITCHES = 000010 000000
    |
    |  MEMORY MAP =
    |  FROM     TO         SIZE/K
    |  00000000 00263777     90
    |
    |  Port Configuration:
    |    Port  Exists  Selectable  Selected
    |     NI    No        Yes         No
    |     CI    Yes       Yes         Yes
    |
    |  Test NI port? (Y or N) - N
    |
    |  Test CI port? (Y or N) - Y
    |
    |  [CI port selected]
    |
    |  Type ? for help
    |
    |  What test - 


       The diagnostic asks what device to test, and then 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.
MAINDEC-10-DFPTA-A-D                                              Page 7
PROGRAM STARTING PROCEDURE                                                                                                 SEQ 0013


    4.3.1  Port Configuration

       In the "Port Configuration"  printout  above,  'Port  Exists'  is
    determined  by a CONI.  If the 'port present' bit is set, then 'Port
    Exists' will be a 'Yes'.  If the port is broken, this bit may not be
    seen,  thereby  causing  'Port Exists' to be 'No'.  If this happens,
    the port should be selected for testing anyway.

       If 'Port Selectable' is 'Yes',  the  port  may  be  selected  for
    testing.   Both  NI and CI ports are always selectable in exec mode.
    In user mode a port is selectable only if the  diagnostic  can  take
    control of the port via a DIAG JSYS.

       'Port Selected' is initially 'Yes' if  the  port  is  selectable.
    Printing out the configuration at a later time will show which ports
    have actually been selected.



    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-DFPTA-A-D                                              Page 8
PROGRAM STOPPING PROCEDURE                                                                                                 SEQ 0014


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-DFPTA-A-D                                              Page 9
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0015


6.0  PROGRAM OPERATING PROCEDURE

    6.1  Overview

       The diagnostic is designed to perform repair level testing of the
    CI20/NI20 controller.

       Essentially, the diagnostic consists of a series of  tests  which
    test  each  of  the  modules.  Some of these are in the form of KL10
    based tests using CONO, CONI, DATAO, and DATAI's.  The remainder are
    microcode routines which are loaded into the port CRAM and executed.



    6.2  Configuration

       When the diagnostic starts up it  assumes  that  a  port  may  be
    located  in RH20 slot #5 or #7.  It will select both the possible NI
    port and the CI port for testing.  If user mode, the diagnostic will
    ask  the system for each port.  If it does not succeed, it will mark
    that port as unselectable and will deselect it.

       Then the diagnostic prints a port configuration report  and  asks
    the  user  what ports to test.  If the port to test has already been
    selected via switches NIPORT and CIPORT,  the  diagnostic  will  not
    ask.



    6.2.1  Configuration Report

       The port configuration looks like so:

    |  Port Configuration:
    |    Port  Exists  Selectable  Selected
    |     NI    No        Yes         No
    |     CI    Yes       Yes         Yes


       This report is printed at diagnostic startup.   It  can  also  be
    obtained  at  any  other  time  with  the  command  'CONPNT'  (Print
    Configuration), if the switch 'OPRSEL' is set.



    6.2.2  Configuration Modification

       If switch 'OPRSEL' is  set  the  selected  configuration  can  be
    modified  using  the 'SELECT' command to reselect what port to test.
    Only those ports which are selectable can be selected or deselected.

       See Section 10.5.3.2 'Device Selection Commands' for more details
    concerning this command.
MAINDEC-10-DFPTA-A-D                                             Page 10
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0016


    6.2.3  Reconfiguration Capability

       If switch 'OPRSEL' is set, configuration can be redone using  the
    'CONFIG'  command to determine the configuration anew, print out the
    configuration and ask what port to test.

       See Section 10.5.3.2 'Device Selection Commands' for more details
    concerning this command.



    6.3  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.4  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,  speed  of
    operation,  and  choice of tests to run.  The diagnostic runs faster
    in exec mode for obvious reasons.  Also, the PI system is  not  used
    in  user mode - this means that certain interrupt logic tests do not
    run in user mode.

       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.5  Scope Looping

       Scope looping is supported by the  diagnostic.   Several  of  the
    program   switches   described   in  Section  7.0  'Program  Options
    (Switches)' may be used to cause looping on error and  affect  error
    printout when looping.



    6.6  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
MAINDEC-10-DFPTA-A-D                                             Page 11
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0017


    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.6.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.7  Terminal Input

    6.7.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.7.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.



    6.7.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.
MAINDEC-10-DFPTA-A-D                                             Page 12
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0018


    6.7.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.7.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.7.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.7.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.7.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.



    6.7.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.
MAINDEC-10-DFPTA-A-D                                             Page 13
PROGRAM OPERATING PROCEDURE                                                                                                SEQ 0019


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



    6.7.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.8  Terminal Output

       The terminal output generated by the diagnostic consists of:


     o  Program initialization information

     o  Program questions/messages

     o  Test error messages


       Much  of  this  output  can  be  affected  by  program  switches,
    specifically, NOPNT, PNTLPT, TXTINH, and INHMSG.
MAINDEC-10-DFPTA-A-D                                             Page 14
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0020


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-DFPTA-A-D                                             Page 15
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0021






    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    Loop on error.

    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-DFPTA-A-D                                             Page 16
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0022


                                   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-DFPTA-A-D                                             Page 17
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0023


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


    Switch 6 (LOOPER)

       This switch causes error looping within a test.   Looping  occurs
    in  the first failing test.  The diagnostic continues to loop on the
    test or a portion thereof even if it stops failing, until the LOOPER
    switch is reset or an altmode is typed.


    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)
MAINDEC-10-DFPTA-A-D                                             Page 18
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0024


       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.


    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-DFPTA-A-D                                             Page 19
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0025


    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)    SDEBUG     0    Normal operation.
                              1    Test execute debug mode.

    28 (000200)    LDEBUG     0    Normal operation.
                              1    Inhibit loading of test microcode.

    29 (000100)    IDEBUG     0    Normal operation.
                              1    Fault isolation debug mode.

    30 (000040)    NIPORT     0    Do not specifically select NI port
                                   for testing.
                              1    Select NI port for testing.

    31 (000020)    CIPORT     0    Do not specifically select CI port
                                   for testing.
                              1    Select CI port for testing.

    32 (000010)    Unused

    33 (000004)    Unused
MAINDEC-10-DFPTA-A-D                                             Page 20
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0026


    34 (000002)    MMPROC     0    The MPROC module is inserted.
                              1    The MPROC module is not inserted.

    35 (000001)    MCBUS      0    The CBUS module is inserted.
                              1    The CBUS module is not inserted.




    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  or  if it is one the the tests that cannot be run in
    user  mode,  the  test  name  is  printed  followed  by  the  phrase
    '(Disabled)' or '(Inhibited)'.


    Switch 19 (INHFLT)

       If set, this switch inhibits fault isolation.  All selected tests
    are  run  even  if  the fault isolation algorithm indicates that the
    test need not be run.  Fault isolation data may still  be  obtained;
    however, the result is probably not be as valid.

       If not set, only those tests are run which  the  fault  isolation
    algorithm determines should be run.


    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 an error.


    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.
MAINDEC-10-DFPTA-A-D                                             Page 21
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0027




    Switch 22 (LOOPTS)

       This switch allows a specified test to be looped on forever.   It
    is  equivalent  to  specifying  'EB22 377777777777' to run test EBUS
    test 22 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.

       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
MAINDEC-10-DFPTA-A-D                                             Page 22
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0028


    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 (SDEBUG)

       This switch is used for diagnostic debug purposes.  If set,  each
    table  entry  of  a  table  driven  test  is  printed as the test is
    executed.


    Switch 28 (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.


    Switch 29 (IDEBUG)


       This switch is used to debug the fault isolation  algorithm.   If
    set,  the  possible  faulty  networks and probably good networks are
    printed at various stages during testing.

       If not set, testing occurs as usual, with  the  usual  amount  of
    printout.


    Switch 30 (NIPORT)
    Switch 31 (CIPORT)


       When the diagnostic determines  the  hardware  configuration,  it
    finds  out  if  what  ports  exist  and  whether  or not each can be
    selected for testing.  In exec mode a port can be  selected  whether
    or  not  it  appears  to exist.  In user mode the diagnostic must be
    able to successfully request the port from the system  in  order  to
    determine that the port is selectable.

       If neither switch is set, the diagnostic will ask what  ports  to
    test.

       If at least one of the  switches  is  set,  the  diagnostic  will
    select  the  port  or  ports  specified whether or not it appears to
    exist, unless the port cannot be selected  (user  mode  only).   The
    diagnostic  will  not  ask the use whether or not the port should be
    tested.


    Switch 32 - Unused

    Switch 33 - Unused
MAINDEC-10-DFPTA-A-D                                             Page 23
PROGRAM OPTIONS (SWITCHES)                                                                                                 SEQ 0029




    Switch 34 - MMPROC

       This switch, when set, is used to indicate to the diagnostic that
    the  Microprocessor  control module is not inserted.  No tests which
    require use of that module are run.

       If this switch is not set, the diagnostic  runs  any  test  which
    requires  at  least an EBUS and MPROC module, but not a CBUS module.
    If neither this switch nor MCBUS switch  is  set,  tests  using  any
    module may be run.


    Switch 35 - MCBUS

       This switch, when set, is used to indicate to the diagnostic that
    the CBUS module is not inserted.  No tests which require use of that
    module are run.

       If this switch  is  not  set,  the  diagnostic  runs  all  tests,
    depending only on the state of Switch 34.
MAINDEC-10-DFPTA-A-D                                             Page 24
ERRORS                                                                                                                     SEQ 0030


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-DFPTA-A-D                                             Page 25
ERRORS                                                                                                                     SEQ 0031


       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:

    |  +-+-+-+-+-+-+
    |  CI Error:  TEST CB1-1 - Fmtr Data Loopback
    |  Test PC = 222'  Scope PC = 237'  Switches = 020010 000000 
    |  Data loopback through Fmtr failed (result in EBUF)
    |  Start Addr:  0000 , # Steps:  6.
    |  End Addr - Correct:  5004 
    |              Actual:  4002 
    |  EBUF - Correct:  777777 777777 
    |          Actual:  000000 230014 
    |  -------------


       This error printout gives the following data:


     o  Port indication - CI.

     o  Test name - CB1-1 (CBUS test #1 segment #1),  name  of  test  is
        'Fmtr Data Loopback'.

     o  Test PC - 222' - address of the start of the  test.   Note  that
        this is a relative address as will be found in the test listing.

     o  Scope PC - 237' - 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  'Data  loopback  through  Fmtr  failed  (result  in   EBUF)'   -
        description of error.
MAINDEC-10-DFPTA-A-D                                             Page 26
ERRORS                                                                                                                     SEQ 0032


     o  Test related information such as

         o  Starting CRAM address - 0000

         o  Number of single steps done - 6.


     o  Error information such as

         o  Where the test should have stopped (CRAM address  5004)  and
            where it actually did (CRAM address 4002)

         o  EBUF data correct and actual



       If TXTINH is set, the printout looks like:

    |  +-+-+-+-+-+-+
    |  CI Error:  TEST CB1-1  Scope PC 237'  SW 020210 003020 
    |  Start  0000 , # Steps  6.
    |  End (C):  5004 
    |      (A):  0000 
    |  EBUF (C):  777777 777777 
    |       (A):  000000 230014 
    |  -------------




    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

    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-DFPTA-A-D                                             Page 27
PROGRAM DESCRIPTION                                                                                                        SEQ 0033


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

       DFPTA is a basic device diagnostic intended to detect and isolate
    hard  or  stuck  at faults for the CI20/NI20 controller on the KL10.
    It tests only CI20/NI20 controllers consisting  of  3  port  modules
    located in RH20 slots #5 and #7.



    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 EBUS interface is tested, then other portions of the EBUS
    module.  Then, the data path used in loading  microcode  is  tested.
    Then,  microcode  is loaded and the 2910 sequencer is tested.  Then,
    more of the EBUS module is tested including the 2901's.  Then,  more
    of the MPROC module.  Then, the CBUS internal data path, followed by
    the channel interface, followed by the rest of the CBUS module.

       If test tracing is being done, it will be noted  that  the  tests
    are not run in numerical sequence.

       If fault isolation is disabled (the INHFLT switch  is  set),  the
    diagnostic  runs  each test in numerical sequence - EBUS tests, then
    MPROC tests, then CBUS tests.



    9.2  Run-Time Dynamics

    9.2.1  Memory Allocation Requirements

       The diagnostic loads and executes in less  than  96K  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).
MAINDEC-10-DFPTA-A-D                                             Page 28
PROGRAM DESCRIPTION                                                                                                        SEQ 0034


    9.2.2  Operating System Interactions

    9.2.2.1  TOPS-10

       The diagnostic does not run under TOPS-10.



    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 the  CI  connection  before  running
    this  diagnostic.   This  is  done  by  dismounting  any  structures
    currently mounted on any HSC50's on the CI and terminating any other
    open  connections  that may exist.  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.0  or
    newer).   There are some restrictions imposed upon the diagnostic in
    user mode that are listed in Section 9.2.3 'User Mode Restrictions'.
MAINDEC-10-DFPTA-A-D                                             Page 29
PROGRAM DESCRIPTION                                                                                                        SEQ 0035


    9.5  Fault Detection

    9.5.1  Error Resolution

       The diagnostic isolates faults to a  network  of  failing  chips.
    Each  network  is  a  set  of chips, generally functionally related.
    Typically, several networks are  printed,  with  the  first  network
    being the most probable.



    9.5.2  Fault Detection And Isolation

       The purpose of the diagnostic is to diagnose hard faults  on  the
    CI20/NI20  Controller  and  to  isolate  those  faults to a specific
    failing field replaceable unit (FRU).   The  diagnostic  testing  is
    performed by a bottom up testing technique.  This is accomplished by
    performing a basic operation and then using that verified  logic  to
    verify the functionality of more logic.

       The diagnostic should detect 99% of  solid  faults  in  the  port
    modules 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.   When  done  the  failing  module is called out
    followed by a list of failing networks.

       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  restart   the
    diagnostic  and  run  the  tests  over  again  with the test tracing
    switch, 'TRACE', set.  Then, the failing test can be observed.  From
    this  point, the diagnostic listing for the test should be inspected
    to see what is being done.  If the port was executing  microcode  at
    this  time,  the  LAR  can  be  read and microcode single stepped to
    duplicate the failure.



    9.6  Network Descriptions

    9.6.1  EBUS Module networks
MAINDEC-10-DFPTA-A-D                                             Page 30
PROGRAM DESCRIPTION                                                                                                        SEQ 0036


    9.6.1.1  E1 - EBUS Control Logic

       This consists of most of the control logic  on  page  EBI1  which
    does  DATAI, DATAO, CONI, CONO decoding, IOP decoding, and interrupt
    handling.



    9.6.1.2  E2 - CC EBUS RQST

       This is located on page EBI1 and consists of  the  control  logic
    driving the condition code 'EBI1 CCEBUSRQST'.



    9.6.1.3  E3 - CC GRNT CSR

       This is located on page EBI1 and consists of  the  control  logic
    driving  the  condition  code  'EBI1  CCGRNTCSR' and several related
    signals 'EBI1 MPRQSTCSRLTCH' and 'EBI1 PORTGRNTCSR'.



    9.6.1.4  E4 - Interrupt Logic

       This is located on  page  EBI2,  labelled  'Interrupt  Generation
    Logic'.   Also  included  is two related pieces of logic on the same
    page which drive the signals 'EBI2 LOADEBUS' and 'EBI2 XFER'.



    9.6.1.5  E5 - Clock Logic

       This consists of the inverters  on  page  EBI2  from  which  come
    clocks 1 and 3.



    9.6.1.6  E6 - Clear Logic

       This is located on page EBI2, and consists of the  logic  driving
    the  signals  'EBI2 CLREBUF', 'EBI2 CLEARA' and 'EBI2 CLEARB'.  Also
    included is a bit of logic  on  page  EBI4  which  determines  'EBI4
    CSR18'.



    9.6.1.7  E7 - Magic # Field Decode

       This is located on page EBI2.
MAINDEC-10-DFPTA-A-D                                             Page 31
PROGRAM DESCRIPTION                                                                                                        SEQ 0037


    9.6.1.8  E8 - CC CSR CHNG

       This is located on page EBI2, and consists  of  the  logic  which
    drives the condition code 'EBI2 CCCSRCHNG'.



    9.6.1.9  E9 - KMUX

       This is located on page EBI3, labelled 'KMUX'.  Also included  is
    the  enable logic on page EBI2, 'EBI2 ENAKMUX', 'EBI2 EBPAROUT', and
    'EBI2 EBPARACT'.



    9.6.1.10  E10 - EMUX

       This is located on page EBI3, labelled 'EMUX'.  Also included  is
    the enable on page EBI2, 'EBI2 ENAEMUX'.



    9.6.1.11  E11 - RMUX/CSR 25-31

       This is located on page EBI4, and consists of the  control  logic
    driving CSR bits 25-31 and the RMUX (labelled appropriately).  There
    is also a gate on page  EBI2  which  is  included,  which  is  'EBI2
    RMUXLOADCSR'.



    9.6.1.12  E12 - CSR 11-13/19-22/33-35

       This is located on page EBI4, and consists of the  control  logic
    driving CSR bits 11-13, 19-23 and 33-35.



    9.6.1.13  E13 - CSR 04 Rqst Exam/Dep

       This is located on page EBI4, and consists of the  control  logic
    driving the signal 'EBI4 CSR04'.



    9.6.1.14  E14 - CSR 05 Rqst Interrupt/CC INTR ACTIVE

       This is located on page EBI4, and consists of the  control  logic
    driving  the  signals  'EBI4 CSR05', 'EBI4 MPROCERR', 'EBI4 CLRRUN',
    and 'EBI4 CCINTRACTIVE'.
MAINDEC-10-DFPTA-A-D                                             Page 32
PROGRAM DESCRIPTION                                                                                                        SEQ 0038


    9.6.1.15  E15 - CSR 06/07 CRAM PE/MBUS Error

       This is located on page EBI4, and consists of the  control  logic
    driving the signals 'EBI4 CSR06' and 'EBI4 CSR07'.



    9.6.1.16  E16 - CSR 24 EBUS PE

       This is located on page EBI4, and consists of the  control  logic
    driving the signals 'EBI4 CSR24' and 'EBI4 CCEBPARERR'.



    9.6.1.17  E17 - CSR 32 MPROC Run

       This is located on page EBI4, and consists of the  control  logic
    driving the signal 'EBI4 CSR32'.



    9.6.1.18  E18 - KMUX Parity Generation

       This  is  located  on  page  EBI5,  and  consists  of  5   parity
    generators, the output of which is 'EBI5 KMUXPAR H'.



    9.6.1.19  E19 - EBUS Parity Checking

       This  is  located  on  page  EBI5,  and  consists  of  5   parity
    generators, the output of which is 'EBI5 EBPARERR H'.



    9.6.1.20  E20 - EBUF

       This is located on page EBI5, labelled 'EBUF'.



    9.6.1.21  E21 - EBUS Data Xcvr's

       This is located on the top half of page EBI6, and consists all of
    the EBUS transceivers carrying data signals.



    9.6.1.22  E22 - EBUS Control Xcvr's

       This is located on the bottom half of page EBI6, and consists all
    of the EBUS transceivers carrying control signals.
MAINDEC-10-DFPTA-A-D                                             Page 33
PROGRAM DESCRIPTION                                                                                                        SEQ 0039


    9.6.1.23  E23 - 2901's/Carry Logic

       This occupies all of pages EBI7 and EBI8.



    9.6.1.24  E24 - Constant MUX

       This is located on page EBI9, labelled 'CNST MUX'.



    9.6.2  MPROC Module networks

    9.6.2.1  M1 - MPROC Run Clocks

       This is located on page MPR1, labelled 'uPROC Run Clocks'.   Also
    included  are  the  'MPR1  CLK1A,  CLK2A, CLK3A, CLK4A' also on page
    MPR1.  Also, 'MPR1 CSR32' and  'MPR1  Error'  are  grouped  in  this
    category.



    9.6.2.2  M2 - Local Memory Control

       This is located on page MPR1, labelled 'Local Memory Control'.



    9.6.2.3  M3 - MBUS Error Detect Logic

       This is located on page MPR2, labelled 'MBUS Error Detect Logic'.
    Also  included  are  two  inverters  on page MPR1 'MPR1 EnaEMUX' and
    'MPR1 EnaCMUX'.



    9.6.2.4  M4 - CRAM Read/Write Control

       This is located on page MPR2, labelled 'CRAM Read/Write Control'.
    Also  included  is  some inverters on MPR1 which fan out some of the
    cram control signals.



    9.6.2.5  M5 - Jump ADDR MUX

       This is located on page MPR3, labelled 'Jmp MUX'.
MAINDEC-10-DFPTA-A-D                                             Page 34
PROGRAM DESCRIPTION                                                                                                        SEQ 0040


    9.6.2.6  M6 - CC MUX

       This is located on page MPR3, labelled 'CC MUX'.



    9.6.2.7  M7 - 2910 MicroSequencer

       This is located on page MPR3, labelled 'MICROSEQR'.



    9.6.2.8  M8 - CRAM ADDR MUX

       This is located on page MPR3, labelled 'Addr MUX'.



    9.6.2.9  M9 - LAR

       This is located on page MPR3, labelled 'LAR'.   Loading  the  LAR
    requires  the  signal  'MPR1 LOADLAR' which is located on page MPR1.
    The logic involved with this is included in this category.



    9.6.2.10  M10 - CRAM 0000-7777

       This consists of all of the 4k x 4 rams on pages MPR4 and MPR5.



    9.6.2.11  M11 - Cond/Skip Decoder

       This is located on page MPR6, labelled 'Cond/Skip Decoder'.



    9.6.2.12  M12 - CRAM Control Register

       This occupies all of page MPR7, labelled 'CRAM Ctrl  Reg'.   Also
    included  here are the parity checkers for this register, located on
    page MPR6, labelled 'CRAM Par Chkr'.



    9.6.2.13  M13 - Local Storage RAM

       This is located on page MPR8, labelled 'Local Store'.
MAINDEC-10-DFPTA-A-D                                             Page 35
PROGRAM DESCRIPTION                                                                                                        SEQ 0041


    9.6.2.14  M14 - Local Storage Addr Register

       This is located on page MPR8, labelled 'Loc Stor Addr  Reg'.   In
    addition, the signal 'MPR1 CLKSADREG' is included, on page MPR1.



    9.6.2.15  M15 - RAM Mode MUX

       This is located on page MPR8, labelled 'RAM Mode MUX'.



    9.6.2.16  M16 - RAR

       This is located on page MPR9, labelled 'RAR'.



    9.6.2.17  M17 - Right CRAM Load Buffer

       This is located on page MPR9, labelled 'Right CRAM Load Buff'.



    9.6.2.18  M18 - Left CRAM Load Buffer

       This is located on page MPR9, labelled 'Left CRAM Load Buff'.



    9.6.2.19  M19 - MW Out MUX

       This is located on page MPRA, labelled 'MW Out MUX'.



    9.6.3  CBUS Module networks

    9.6.3.1  C1 - CBUS Control Logic

       This consists of the logic which controls the  operation  of  the
    channel,  including  the  logic  which  cycles  through  the select,
    request, wait, and data states  and  the  logic  which  handles  the
    'MPSTORECBUS'  and  'MPWRITEMEM'  signals.   This  is found on pages
    CBI1, CBI2, and CBI5.



    9.6.3.2  C2 - Clock Logic

       This is located on page CBI1, labelled 'Clock Generation Logic'.
MAINDEC-10-DFPTA-A-D                                             Page 36
PROGRAM DESCRIPTION                                                                                                        SEQ 0042


    9.6.3.3  C3 - Reset Logic

       This is found on page CBI1, a group of inverters with the  output
    signal 'CBI1 Reset L'.



    9.6.3.4  C4 - Clear Logic

       This is found on page CBI2, two inverters and two nand gates with
    the input signal 'MPR1 ClearA L'.



    9.6.3.5  C5 - 'CC CBUS AVAIL'

       This consists of the logic which implements this  condition  code
    and it is located on page CBI2.



    9.6.3.6  C6 - 'CC CB LST WD'/ 'CC CHAN ERR'

       This consists of the logic which implements these condition codes
    and it is located on page CBI2.



    9.6.3.7  C7 - 'CLR CC CODE'

       This is found on  page  CBI2,  having  the  output  signal  'CBI2
    ClrCCCode L'.



    9.6.3.8  C8 - Magic # Field Decode

       The magic number field is  decoded  on  page  CBI3.   This  logic
    occupies  most of this page.  A few inverters are also shown on page
    CBI4 - 'CBI4 EnaCMUXA' and 'CBI4 PlinToCMUXA'.



    9.6.3.9  C9 - 'CC CBUS PAR ERR'

       This consists of the logic which implements this  condition  code
    and it is located on page CBI3.



    9.6.3.10  C10 - 'CC PLI PAR ERR'

       This consists of the logic which implements this  condition  code
    and it is located on page CBI3.
MAINDEC-10-DFPTA-A-D                                             Page 37
PROGRAM DESCRIPTION                                                                                                        SEQ 0043


    9.6.3.11  C11 - Parity Predictor

       This is located on page CBI4, labelled 'Parity Predictor'.



    9.6.3.12  C12 - Formatter Control

       This is located on page CBI4, labelled 'Formatter Control'.



    9.6.3.13  C13 - PLI Control Logic

       This is located on page CBI4, labelled 'PLI Ctrl Logic'.



    9.6.3.14  C14 - CBUS Input Buffer

       This is located on page CBI5, labelled 'CBUS Input Buffer'.



    9.6.3.15  C15 - CBUS Output Buffer

       This is located on page CBI5, labelled 'CBUS Output Buffer'.



    9.6.3.16  C16 - CBUS Out Par Gen

       This is located on page CBI6, labelled 'CBUS Out Par Gen'.



    9.6.3.17  C17 - CBUS In Par Checker

       This is located on page CBI6, labelled 'CBUS In Par Checker'.



    9.6.3.18  C18 - DMUX

       This is located on page CBI7, labelled 'DMUX'.



    9.6.3.19  C19 - SMUX

       This is located on page CBI7, labelled 'SMUX'.
MAINDEC-10-DFPTA-A-D                                             Page 38
PROGRAM DESCRIPTION                                                                                                        SEQ 0044


    9.6.3.20  C20 - Mvr/Fmtr

       This is located on page CBI8, labelled 'Mvr/Fmtr'.



    9.6.3.21  C21 - PLI Logic

       This  occupies  most  of  page  CBI9,  labelled  'PLI  Par  Input
    Checker', 'PLI Par Output Generator', and 'PLI Output Buffer'.



    9.6.3.22  C22 - PMUX

       This is located on page CBI9, labelled 'PMUX'.



    9.6.3.23  C23 - CMUX

       This is located on page CBIA, labelled 'CMUX'.



    9.6.3.24  C24 - CBUF

       This is located on page CBIA, labelled 'CBUF'.



    9.7  Performance During Hardware Failures

    9.7.1  CPU/Memory Failures

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



    9.7.2  Power Fail/Restart

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



    9.7.3  Port Failure

       Hardware failure in the port is anticipated  and  results  in  an
    error message.
MAINDEC-10-DFPTA-A-D                                             Page 39
PROGRAM DESCRIPTION                                                                                                        SEQ 0045


    9.7.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.8  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.8.1  Users and Uses

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



    9.8.2  Engineering Usage

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



    9.8.3  Manufacturing Usage

       This  diagnostic  is  used  by  Manufacturing  as  part  of   the
    acceptance  procedure  for  an CI20/NI20.  It is also used to repair
    faulty port modules (EBus Interface,  Micro-Processor  Control,  and
    CBus Interface modules).



    9.8.4  Customer Services Usage

       Customer Services uses  the  diagnostic  as  part  of  acceptance
    procedure,  when  an  CI20/NI20 is sent to a customer in a drop ship
    environment.  Customer Services also uses this during CM and PM.
MAINDEC-10-DFPTA-A-D                                             Page 40
PROGRAM DESCRIPTION                                                                                                        SEQ 0046


    9.8.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
    their account sales representative  if  any  difficulties  arose  or
    problems discovered.



    9.9  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.9.1  Type of Tests

       There are three types of tests:


     o  Hardware Test
MAINDEC-10-DFPTA-A-D                                             Page 41
PROGRAM DESCRIPTION                                                                                                        SEQ 0047


     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
    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 breadboard  debug,  but  may  be
    used later by Customer Services or Manufacturing.



    9.9.2  Test Flow

       If only one port is being tested, all of the tests specified  are
    run on the port.  Then fault isolation data is printed if any errors
    occurred.

       If both NI and CI ports  are  being  tested  simultaneously,  the
    diagnostic  runs  all  of  the tests on the NI first, printing fault
    isolation data afterwards.  Then all of the tests are run on the  CI
    following by printing fault isolation data.

       The following sections describe starting and stopping tests.



    9.9.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)' or '(inhibited)' if the test actually is not  going  to
    be run.
MAINDEC-10-DFPTA-A-D                                             Page 42
PROGRAM DESCRIPTION                                                                                                        SEQ 0048


       A test is disabled if such has been specified  with  the  DISABLE
    test  command.  A test is inhibited only in user mode where the test
    cannot be run because it uses the PI system or causes  page  faults.
    There are about 15 of these tests.



    9.9.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:

     o  D20MON CMD -

     o  DIAMON CMD -

     o  MAGMON CMD -

     o  What Test -

     o  @ (TOPS-20 prompt)

     o  o >.  (KLDCP prompt)




    9.9.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.9.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-DFPTA-A-D                                             Page 43
TEST DESCRIPTIONS                                                                                                          SEQ 0049


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-DFPTA-A-D                                             Page 44
TEST DESCRIPTIONS                                                                                                          SEQ 0050


    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    All tests (n times)
    EBUS n   EBus module tests
    SEQ n    SEQ related tests
    ALU n    2901 related tests
    MPROC n  MPROC module tests
    CBUS n   CBus module tests
    MBUS n   MBUS related tests
    XXm n    Test m, category XX (where XX can be EB,SE,AL,MP,CB)

    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)
    LISTEB n  List EBus module tests (or test n)
    LISTSE n  List Sequencer related tests
    LISTAL n  List 2901's related tests
    LISTMP n  List MPROC module tests
    LISTCB n  List CBus module tests

    Device Selection Commands:
    -------------------------
MAINDEC-10-DFPTA-A-D                                             Page 45
TEST DESCRIPTIONS                                                                                                          SEQ 0051



    CONFIG      Determine/print configuration
    CONPNT      Print configuration
    SELECT      Select device to test

    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
    LOOPER  Complement 'loop 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
    SDEBUG  Complement 'test debug' switch
    LDEBUG  Complement 'load microcode debug' switch
    IDEBUG  Complement 'fault isolation debug' switch
    NIPORT  Complement 'Select NI port' switch
    CIPORT  Complement 'Select CI port' switch
    MPROC   Complement 'missing MPROC module' switch
    MCBUS   Complement 'missing CBUS module' 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.
MAINDEC-10-DFPTA-A-D                                             Page 46
TEST DESCRIPTIONS                                                                                                          SEQ 0052


       If fault isolation is not inhibited, fault isolation data will be
    printed  upon  completion  of  the  tests.  If testing is aborted by
    typing an altmode, the fault  isolation  data  is  printed  at  that
    point.

       EBUS n

       This command will run all EBUS module tests in the same manner as
    ALL above.  This includes the 2901 ALU testing.

       SEQ n

       This command will run all 2910 micro-sequencer tests in the  same
    manner as ALL above.

       ALU n

       This command will run all 2901 ALU tests in the  same  manner  as
    ALL above.

       MPROC n

       This command will run all MPROC module tests in the  same  manner
    as ALL above.

       CBUS n

       This command will run all CBUS module tests in the same manner as
    ALL above.

       MBUS n

       This command will run all MBUS cable related tests  in  the  same
    manner as ALL above.  The diagnostic also prints a short description
    of how to debug an MBUS problem.  This description follows:

    |  To isolate a possible MBUS problem:
    |
    |   (1) Disconnect MBUS cable from EBUS module.
    |       Run MBUS tests with MMPROC and MCBUS switches set.
    |       Failed - EBUS module is at fault.  Stop.
    |       Passed - MBUS cable or MPROC or CBUS modules at fault.
    |                Continue at next step to isolate further.
    |
    |   (2) Connect MBUS cable to EBUS module only.
    |       Run MBUS tests with MMPROC and MCBUS switches set.
    |       Failed - MBUS cable is at fault.  Stop.
    |       Passed - MBUS cable or MPROC or CBUS modules at fault.
    |                Continue at next step to isolate further.
    |
    |   (3) Connect MBUS cable to EBUS and MPROC modules only.
    |       Run MBUS tests with MCBUS switch set.
    |       Failed - MPROC module is at fault.  Stop.
    |       Passed - CBUS module at fault.  Stop.
MAINDEC-10-DFPTA-A-D                                             Page 47
TEST DESCRIPTIONS                                                                                                          SEQ 0053


       XXm n

       This command is given to run a single test.   The  test  name  is
    given  as a 1 or 2 letter test category followed by the test number.
    The test categories and sample test names are as follows:

     o  Ebus module test .....  EB10 or E10

     o  2910 Sequencer test ..  SE10 or S10

     o  2901 ALU test ........  AL10 or A10

     o  MPROC module test ....  MP10 or M10

     o  CBUS module test .....  CB10 or C10


       A repeat count may be given.  If 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 'DFPTA.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
    file  will  terminate  with the command.  The diagnostic prints each
    command and result on the terminal as it executes each command.
MAINDEC-10-DFPTA-A-D                                             Page 48
TEST DESCRIPTIONS                                                                                                          SEQ 0054


       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.

       Test names are given as 'Test Class' 'Test  Number',  where  test
    class is:


     o  SE or S - 2910 sequencer tests

     o  MP or M - Mproc module tests

     o  AL or A - 2901 ALU tests

     o  CB or C - CBus module tests

     o  EB or E - EBus module tests
MAINDEC-10-DFPTA-A-D                                             Page 49
TEST DESCRIPTIONS                                                                                                          SEQ 0055


       Sample test names are SE1, SE27, EB1, E1, AL20, ...

       Example:

    |  What test - ENABLE EB3,EB4
    |  What test - DISABL EB3,EB4,S2,SE70,AL10,A11


       DISLIS

       This command lists what tests have been disabled.  Example:

    |  What test - DISLIS
    |
    |  EB1 EB3 EB4 SE1 SE2 MP1 MP2 


       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 name such as MP2 is typed,
    only the description for that test will be printed.  Example:

    |  What test - LIST EB2
    |
    |  EB2 - RH20/Port Interaction
    |
    |  What test - LIST
    |
    |  EB1 - CONI Works?
    |  EB2 - RH20/Port Interaction
    |  EB3 - RH20/Port Interaction
    |  ...
        

       LISTxx n,n

       Test descriptions can be selected for printing within a class.  A
    command  of  the  form  'LIST'  followed  by  the  'test class' code
    specifies tests within the test class.  The commands are as follows:

     o  LISTEB n,n - List EBus module tests (or test n)

     o  LISTSE n,n - List Sequencer related tests

     o  LISTAL n,n - List 2901's related tests

     o  LISTMP n,n - List MPROC module tests

     o  LISTCB n,n - List CBus module tests
MAINDEC-10-DFPTA-A-D                                             Page 50
TEST DESCRIPTIONS                                                                                                          SEQ 0056


       Up to 2 numeric arguments may  be  given  which  are  decoded  as
    follows:

     o  No arguments - all tests are listed.

     o  One argument - such as 'LISTSE 4' - list only the specified test
        (in this example it is test SE4).

     o  Two arguments - such as 'LISTSE 4,10' - list tests 4 through  10
        in the selected test class.


       Example:

    |  What test - LISTSE 4,5
    |
    |  SE4 - JZ Instruction - Effect on Reg/Ctr
    |  SE5 - CONT Instruction
    |
    |  What test - LISTMP
    |
    |  MP1 - CRAM Data Test RAR12=0
    |  MP2 - CRAM Data Test RAR12=1
    |  ...




    10.3.3.4  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 - 
    |  ...
MAINDEC-10-DFPTA-A-D                                             Page 51
TEST DESCRIPTIONS                                                                                                          SEQ 0057


    |
    |  4000  RH Switches <# or ?> - ?
    |
    |  Type  Y,N,^,CR,^Z
    |
    |  N TRACE - 
    |  N INHFLT - 
    |  ...


       SWPRIN

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


    NOPNT    RELIAB   TRACE    DSPEAR   UDEBUG
    PNTLPT   TXTINH   INHFLT   NIPORT   MDEBUG
    DING     OPRSEL   INHMSG   CIPORT   SDEBUG
    LOOPER            LOOPGM   MPROC    LDEBUG
    ERSTOP            LOOPTS   MCBUS
    PALERS            RUNALL

       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-DFPTA-A-D                                             Page 52
TEST DESCRIPTIONS                                                                                                          SEQ 0058


    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 Module

    10.4.1.1  EBUS Interface Tests

    EB1 - CONI Works?
    EB2 - RH20/Port Interaction
    EB3 - RH20/Port Interaction
    EB4 - RH20/Port Interaction
    EB5 - RH20/Port Interaction



    10.4.1.2  CSR Register Tests

    EB6 - CSR Cleared After Reset
    EB7 - Read/Write CSR Bits
    EB10 - CSR Bits Interaction



    10.4.1.3  EBUF Tests (MBus Loopback)

    EB11 - EBUF Access Test
    EB12 - EBUF/CSR Conflict Test
    EB13 - KMUX Parity Generators
    EB14 - EBUF/CSR Conflict Test
    EB15 - EBUF Reset Test
    EB16 - EBUF Data Path Test



    10.4.1.4  CSR Bit 18 'Clear Port' Tests

    EB17 - CSR Bit 18 Self Clearing Test
    EB20 - CSR Bit 18 Reset Test
    EB21 - CSR Bit 18 Reset Test



    10.4.1.5  'Diag Test Ebuf'/Initialized

    EB22 - Read/Write EBUF When Ucode Running
MAINDEC-10-DFPTA-A-D                                             Page 53
TEST DESCRIPTIONS                                                                                                          SEQ 0059


    10.4.1.6  Parity Generators/Checkers Tests

    EB23 - Par Gen - Not Forcing an Error
    EB24 - Par Gen - Forcing an Error



    10.4.1.7  CSR Read Only Bits

    EB25 - Read only CSR Bits



    10.4.1.8  CSR 01 'DIAG RQST CSR'

    EB26 - CSR 01 'DIAG RQST CSR'
    EB27 - CSR 01 'DIAG RQST CSR'
    EB30 - CSR 01 'DIAG RQST CSR'
    EB31 - CSR 01 'DIAG RQST CSR'
    EB32 - CSR 01 'DIAG RQST CSR'
    EB33 - CSR 01 'DIAG RQST CSR'



    10.4.1.9  CSR 02 'DIAG CSR CHNG'

    EB34 - CSR 02 'DIAG CSR CHNG'



    10.4.1.10  Contant MUX

    EB35 - Constant MUX
    EB36 - Constant MUX Interference
    EB37 - CSR Bit 24 - EBUS PE Occurs at Wrong Time
    EB40 - EBUS Transfer via DATAO's
    EB41 - EBUS Transfer via DATAI's



    10.4.1.11  CSR 05 'Rqst Int' Bit

    EB42 - CSR 05 'Rqst Interrupt'
    EB43 - CSR 05 'Rqst Interrupt'
    EB44 - CSR 05 'Rqst Interrupt'



    10.4.1.12  CSR 06 'CRAM PE' Bit

    EB45 - CSR 06 'CRAM Par Err'
MAINDEC-10-DFPTA-A-D                                             Page 54
TEST DESCRIPTIONS                                                                                                          SEQ 0060


    10.4.1.13  CSR 07 'MBUS Err' Bit

    EB46 - CSR 07 'MBUS Err'



    10.4.1.14  CSR Bits 11,12,13

    EB47 - CSR 11 'Idle' Bit
    EB50 - CSR 12 'Disable Complete' Bit
    EB51 - CSR 13 'Enable Complete' Bit



    10.4.1.15  MPROC Run Bit

    EB53 - MPROC Run Bit
    EB54 - Basic KMUX Parity Test
    EB55 - Clearing MPROC Run Bit
    EB56 - Clearing MPROC Run Bit



    10.4.1.16  CSR 22 'Diag Single Cyc'

    EB57 - Verify 'Diag Single Cyc'



    10.4.1.17  PIA Level Selection

    EB60 - PI Level n/0 Interrupts
    EB61 - Check PIA Level 0
    EB62 - Check Interrupt on Level 1-7
    EB63 - CSR 05 'Rqst Interrupt' Clearing



    10.4.1.18  IOP Function Words

    EB64 - IOP Function 0 - 40+2N Interrupt
    EB65 - IOP Function 1 - 40+2N Interrupt
    EB70 - IOP Function 4 - Examine
    EB71 - IOP Function 5 - Deposit
    EB72 - IOP Function 7 - Examine/Increment



    10.4.1.19  CSR Bits 25-31

    EB73 - CSR 25-26 & 28 KL-side
    EB74 - CSR 25-26 & 28 Port-side
    EB75 - CSR 27 & 30-31 KL-side
    EB76 - CSR 27 & 30-31 Port-side
MAINDEC-10-DFPTA-A-D                                             Page 55
TEST DESCRIPTIONS                                                                                                          SEQ 0061


    10.4.1.20  2901 Isolation Tests

    AL1 - 2901 0's Test
    AL2 - 2901 1's Test



    10.4.1.21  2901 Boolean Tests (Direct Input/0)

    AL3 - 2901 OR Test - D OR 0
    AL4 - 2901 AND Test - D AND 0
    AL5 - 2901 NOT_R_AND_S Test - D NOT_RS 0
    AL6 - 2901 XOR Test - D XOR 0
    AL7 - 2901 XNOR Test - D XNOR 0
    AL10 - 2901 R+S Test - D + 0
    AL11 - 2901 R-S Test - D - 0
    AL12 - 2901 S-R Test - 0 - D



    10.4.1.22  2901 Register File Tests

    AL13 - 2901 Writing/Reading Registers
    AL14 - 2901 Q-Register Test
    AL15 - 2901 Register Interference Test



    10.4.1.23  2901 ALU Function Tests

    AL16 - 2901 OR Test
    AL17 - 2901 AND Test
    AL20 - 2901 NOT_R_AND_S Test
    AL21 - 2901 XOR Test
    AL22 - 2901 XNOR Test
    AL23 - 2901 R + S Test - No Carry
    AL24 - 2901 R + S Test - With Carry
    AL25 - 2901 R - S Test - No Carry
    AL26 - 2901 R - S Test - With Carry
    AL27 - 2901 S - R Test - No Carry
    AL30 - 2901 S - R Test - With Carry



    10.4.1.24  Register Interference Tests

    AL31 - 2901 Q-Register Interference Test
    AL32 - 2901 RAM Register Interference Test
MAINDEC-10-DFPTA-A-D                                             Page 56
TEST DESCRIPTIONS                                                                                                          SEQ 0062


    10.4.1.25  Q-Register Shifter Tests

    AL33 - Q-Register Shift
    AL34 - Q-Register Right/Left Shift



    10.4.1.26  RAM Register Shifter Tests

    AL35 - RAM Register Shift
    AL36 - RAM Data Movement Test
    AL37 - RAM/Q-Register Data Movement Test
    AL40 - RAM Data Movement/Shifting Test
    AL41 - RAM/Q-Reg Data Movement/Shifting Test
    AL42 - 2901 Register / Constant Mux Test



    10.4.2  Hardware Tests - MPROC Module

    10.4.2.1  CRAM Tests

    MP1 - CRAM Data Test RAR12=0
    MP2 - CRAM Data Test RAR12=1
    MP3 - CRAM Addressing Test



    10.4.2.2  RAR/LAR Tests

    MP4 - RAR/LAR Data Path Test - LDCRAM
    MP5 - RAR/LAR Data Path Test - RDCRAM



    10.4.2.3  Cram Ctrl Register Tests

    MP6 - Cram Ctrl Register Test
    MP7 - Cram Ctrl Register Test



    10.4.2.4  MBUS Error Tests

    MP10 - MBUS Error Test (MPROC module only)
    MP11 - MBUS Error Test
    MP12 - MBUS Error Test (MPROC module only)
    MP13 - MBUS Error Test
MAINDEC-10-DFPTA-A-D                                             Page 57
TEST DESCRIPTIONS                                                                                                          SEQ 0063


    10.4.2.5  Condition Code Tests

    MP14 - CCCbusAvail Test
    MP15 - CCGrntCSR Test
    MP16 - CCFEQ0 Test
    MP17 - CCCSRChng Test
    MP20 - CCEbParErr Test
    MP21 - CCRcvrBufAFul Test
    MP22 - CCRcvrBufBFul Test
    MP23 - CCXmtrAttn Test
    MP24 - CCEbusRqst Test
    MP25 - CCIntrActive Test
    MP26 - CCMBSign Test
    MP27 - CCMVParChk Test
    MP30 - CCCbusParErr Test
    MP31 - CCPliParErr Test
    MP32 - CCChanErr Test
    MP33 - CCCbLstWd Test



    10.4.2.6  Local Storage Tests

    MP34 - Basic Local Store Test
    MP35 - Local Store Data Test
    MP36 - Local Store Address Test
    MP37 - Local Store RAM Mode Test



    10.4.2.7  Miscellaneous MPROC Tests

    MP40 - Jump MUX Test
    MP41 - CRAM Ctl Reg Parity Generators Test



    10.4.2.8  2910 Basic Instruction Tests

    SE1 - JMAP Instruction
    SE2 - JZ Instruction
    SE3 - JZ Instruction - Effect on Reg/Ctr
    SE4 - JZ Instruction - Effect on Reg/Ctr
    SE5 - CONT Instruction
    SE6 - CJP Instruction
    SE7 - CJV Instruction
    SE10 - CJS Instruction
    SE11 - CJS Instruction
    SE12 - CJS Instruction
    SE13 - CRTN Instruction
    SE14 - CRTN Instruction
    SE15 - Stack location #1
    SE16 - Stack location #2
    SE17 - Stack location #3
    SE20 - Stack location #4
    SE21 - Stack location #5
MAINDEC-10-DFPTA-A-D                                             Page 58
TEST DESCRIPTIONS                                                                                                          SEQ 0064


    SE22 - Increment/Decrement Stack Pointer
    SE23 - Increment/Decrement Stack Pointer
    SE24 - Increment/Decrement Stack Pointer
    SE25 - Increment/Decrement Stack Pointer
    SE26 - Increment/Decrement Stack Pointer
    SE30 - CJPP Instruction
    SE31 - CJPP Instruction
    SE32 - CJPP Instruction
    SE33 - LDCT Instruction
    SE34 - LDCT Instruction
    SE35 - Register/Counter
    SE36 - JRP Instruction
    SE37 - JSRP Instruction
    SE40 - JSRP Instruction
    SE41 - JSRP Instruction
    SE42 - PUSH Instruction
    SE43 - PUSH Instruction
    SE44 - PUSH Instruction
    SE45 - LOOP Instruction
    SE46 - LOOP Instruction
    SE47 - LOOP Instruction
    SE50 - RFCT Instruction
    SE51 - RFCT Instruction
    SE52 - RFCT Instruction
    SE53 - RFCT Instruction
    SE54 - RPCT Instruction
    SE55 - RPCT Instruction
    SE56 - TWB Instruction
    SE57 - TWB Instruction
    SE60 - TWB Instruction
    SE61 - TWB Instruction
    SE62 - TWB Instruction
    SE63 - TWB Instruction
    SE64 - Stack Interference Tests
    SE65 - Stack Interference Tests
    SE66 - Reg/Ctr Interference Tests
    SE67 - Reg/Ctr Interference Tests
    SE70 - Full Speed Sequencer Test



    10.4.3  Hardware Tests - CBUS Module

    10.4.3.1  Basic CBUS Tests

    CB1 - Fmtr Data Loopback
    CB2 - PLI Buffer Data Loopback



    10.4.3.2  CBUS Data Transfer Tests

    CB3 - CBUS to EBUF Data Transfer
    CB4 - 2901 to CBUS Data Transfer
    CB5 - CBUS to 2901 Multiple Word Transfer
    CB6 - 2901 to CBUS Multiple Word Transfer
MAINDEC-10-DFPTA-A-D                                             Page 59
TEST DESCRIPTIONS                                                                                                          SEQ 0065


    CB7 - CBUS to EBUS Data Transfer
    CB10 - EBUS to CBUS Data Transfer



    10.4.3.3  Mover/Formatter Tests

    CB11 - Fmtr Cleared by 'Port Clear'
    CB12 - Fmtr Basic Up Shifting Test
    CB13 - Fmtr Up Shift 4 Test - BUS Ctl=Cbus
    CB14 - Fmtr Up Shift 4 Test - BUS Ctl=Fmtr
    CB15 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0
    CB16 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0
    CB17 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
    CB20 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
    CB21 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0
    CB22 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0
    CB23 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=1
    CB24 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
    CB25 - Fmtr Basic Down Shifting Test
    CB26 - Fmtr Down Shift 4 Test
    CB27 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=0
    CB30 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=0
    CB31 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=1
    CB32 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=1
    CB33 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=0
    CB34 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=0
    CB35 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=1
    CB36 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=1
    CB37 - Fmtr Ring Buffer Test



    10.4.3.4  Miscellaneous CBUS Tests

    CB40 - CMUX Selected by PLINTOCMUX
    CB41 - CBUF Loaded Correctly
    CB42 - PMUX Selected by MPCBUFTOPLOUT
    CB43 - PMUX Selected by MPCBUFTOPLOUT/MPZEROLFTNIB
    CB44 - DMUX Selected Correctly
    CB45 - CBUS Parity Checking - CBUS to CBUS Module
    CB46 - CBUS Parity Checking - CBUS Module to CBUS
    CB47 - CBUS Parity Checking - CBUS to CBUS Module
    CB50 - T Field Timing
    CB51 - CBUS Store
    CB52 - CBUS Input Buffer



    10.4.3.5  Parity Predictor Tests

    CB53 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=0
    CB54 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=1
    CB55 - Parity Predictor - Fmtr to PLOUT
    CB56 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=0
    CB57 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=1
MAINDEC-10-DFPTA-A-D                                             Page 60
TEST DESCRIPTIONS                                                                                                          SEQ 0066


    CB60 - Parity Predictor - Fmtr to CBOUT
MAINDEC-10-DFPTA-A-D                                             Page 61
TEST DESCRIPTIONS                                                                                                          SEQ 0067


    10.5  Debug Test

    10.5.1  Basic Description

       This test allows the selection of different operations  that  may
    be  done  on port.  In some cases, probably rarely, a field engineer
    may wish to diagnose an 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)

    Device Selection Commands:
    -------------------------

    CONFIG      Determine/print configuration
    CONPNT      Print configuration
    SELECT      Select device to test

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

    RESET       Issue EBUS Reset
    CLEAR       Issue a 'Port Clear'
MAINDEC-10-DFPTA-A-D                                             Page 62
TEST DESCRIPTIONS                                                                                                          SEQ 0068



    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
    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

    Special Scope Functions:
MAINDEC-10-DFPTA-A-D                                             Page 63
TEST DESCRIPTIONS                                                                                                          SEQ 0069


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

    LCONI       Loop on CONI
    LCONO dat   Loop on CONO
    LDATAI      Loop on DATAI
    LDATAO dat  Loop on DATAO
    LROUTN dat  Loop on user supplied routine at DROUTN:

    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

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

    BREAK adr,adr   Set breakpoint
    RBREAK adr,adr  Remove breakpoint
    CBREAK adr,adr  Clear all breakpoints
    LBREAK adr,adr  List breakpoints
    PBREAK adr      Proceed from breakpoint
    WBREAK          Print breakpoint data

    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 

    Miscellaneous Commands:
    ----------------------

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

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

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

    RDINIT    Initialize everything for a read
    WRINIT    Initialize everything for a write
MAINDEC-10-DFPTA-A-D                                             Page 64
TEST DESCRIPTIONS                                                                                                          SEQ 0070


    BPRINT n  Print buffer contents (n locations)
    CCWPNT    Print CCW list
    LOGPNT    Print logout data
    COMPAR    Compare data buffer

    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
    LOOPER  Complement 'loop 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
    SDEBUG  Complement 'test debug' switch
    LDEBUG  Complement 'load microcode debug' switch
    IDEBUG  Complement 'fault isolation debug' switch
    NIPORT  Complement 'Select NI port' switch
    CIPORT  Complement 'Select CI port' switch
    MPROC   Complement 'missing MPROC module' switch
    MCBUS   Complement 'missing CBUS module' switch




    10.5.3  Detailed Command Description

       In more detail these commands are as follows:



    10.5.3.1  General Commands

       HELP

       This command prints a one line description similar to  the  above
    for each command.
MAINDEC-10-DFPTA-A-D                                             Page 65
TEST DESCRIPTIONS                                                                                                          SEQ 0071


       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.

        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.
MAINDEC-10-DFPTA-A-D                                             Page 66
TEST DESCRIPTIONS                                                                                                          SEQ 0072


        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 buffer length to be used  when  generating
        CCW  lists.   Any  length  up  to  102400 (decimal) words may be
        specified.  However, note that the buffer is only 512 words long
        and  each  CCW  in  the  CCW  list  points  to the same starting
        location.  This is so that a 512 word buffer  can  be  used  and
        much longer data transfers can be specified.

        The initial length is  128  words.   To  find  out  the  current
        setting, type SET LEN <CR>.

     o  SET PAT n.

        This command specifies the data pattern to be used  by  commands
        which  generate  CCW  lists  and  set  up buffer contents and do
        buffer compares.  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

        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.
MAINDEC-10-DFPTA-A-D                                             Page 67
TEST DESCRIPTIONS                                                                                                          SEQ 0073


        The initial file name is 'CI20.ULD'.  To find  out  the  current
        setting, type SET FNAME <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 'DFPTA.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 DFPTA) command
    in the take file will  terminate  use  of  the  current  file.   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.



    10.5.3.2  Device Selection Commands

       CONFIG

       This command causes the diagnostic to reconfigure.  It determines
    whether or not an NI or CI port exists, and if each is selectable by
    the diagnostic.  Then the configuration is printed and  the  port(s)
    to test are queried as follows:

    |  Port Configuration:
    |    Port  Exists  Selectable  Selected
    |     NI    Yes       Yes         Yes
    |     CI    Yes       Yes         Yes
MAINDEC-10-DFPTA-A-D                                             Page 68
TEST DESCRIPTIONS                                                                                                          SEQ 0074


    |
    |  Test NI port? (Y or N) - N
    |
    |  Test CI port? (Y or N) - Y
    |
    |  [CI port selected]


       CONPNT

       This  command  prints  the  configuration  determined   at   last
    configuration  as  modified  by any selection of ports to test.  For
    example:

    |  Port Configuration:
    |    Port  Exists  Selectable  Selected
    |     NI    Yes       Yes         No
    |     CI    Yes       Yes         Yes


       SELECT port,port

       This  command  allows  the  current  selection  of  ports  to  be
    modified.  There are two alternate formats for this command.  First,
    SELECT <CR> will cause the diagnostic to query which port to  select
    as follows:

    |  What test - SELECT
    |
    |  Test NI port? (Y or N) - N
    |
    |  Test CI port? (Y or N) - Y
    |
    |  [CI port selected]


       The selection may be stated  in  the  SELECT  command  by  typing
    SELECT  NI  <CR> or SELECT CI <CR> or SELECT NI,CI <CR>.  An example
    follows:

    |  What test - SELECT NI,CI
    |
    |  [NI port selected]
    |  [CI port selected]




    10.5.3.3  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.
MAINDEC-10-DFPTA-A-D                                             Page 69
TEST DESCRIPTIONS                                                                                                          SEQ 0075


       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

     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.
MAINDEC-10-DFPTA-A-D                                             Page 70
TEST DESCRIPTIONS                                                                                                          SEQ 0076


       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


       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.4  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
MAINDEC-10-DFPTA-A-D                                             Page 71
TEST DESCRIPTIONS                                                                                                          SEQ 0077


       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.

       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)
MAINDEC-10-DFPTA-A-D                                             Page 72
TEST DESCRIPTIONS                                                                                                          SEQ 0078


       ZRAR

       Zero RAR register.



    10.5.3.5  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.

     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> ...
MAINDEC-10-DFPTA-A-D                                             Page 73
TEST DESCRIPTIONS                                                                                                          SEQ 0079


    |  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>


       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 - 
MAINDEC-10-DFPTA-A-D                                             Page 74
TEST DESCRIPTIONS                                                                                                          SEQ 0080


    |  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
    |     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.6  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.
MAINDEC-10-DFPTA-A-D                                             Page 75
TEST DESCRIPTIONS                                                                                                          SEQ 0081


     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
    |


       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.7  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.
MAINDEC-10-DFPTA-A-D                                             Page 76
TEST DESCRIPTIONS                                                                                                          SEQ 0082


     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
    |


       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.8  Special Scope Functions

       These commands allow scope loops to be set up for  only  doing  a
    CONI, CONO, DATAI, or DATAO.  The diagnostic will repeatedly perform
    the operation and not print out anything until altmode is typed.

       LCONI

       Loop on CONI instruction (CONI 564,1 or CONI 574,1)

       LCONO dat

       Loop on CONO instruction (CONO 564,dat or  CONO  574,dat).   This
    writes the CSR register continuously.  The data to write to CSR must
    be specified up to 6 octal digits.
MAINDEC-10-DFPTA-A-D                                             Page 77
TEST DESCRIPTIONS                                                                                                          SEQ 0083


       LDATAI

       Loop on DATAI instruction (DATAI 564,1 or DATAI 564,1).  This may
    read  the  LAR or a CRAM location or the EBUF depending on the state
    of CSR bits 'Test EBUF' and 'Select LAR'.  To  set  up  the  CSR  as
    desired  just  do  an EEBUF or ELAR or ECRAM instruction just before
    this command.

       LDATAO dat

       Loop on DATAO instruction (DATAO 564,1 or DATAO 574,1).  The data
    to  write  must  be  specified.   This  may  write the LAR or a CRAM
    location or the EBUF depending on the state of CSR bit  'Test  EBUF'
    and  the leftmost bit of the data given to write.  To set up the CSR
    as desired just do an EEBUF or ELAR  instruction  just  before  this
    command.

       LROUTN dat

       This command allows the user to enter a routine at label  DROUTN:
    and loop on it continuously until an altmode is typed.  There are 15
    locations free at DROUTN:  to insert code.   An  octal  argument  is
    optional and is available in location 'ARGUM' if typed.



    10.5.3.9  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.
MAINDEC-10-DFPTA-A-D                                             Page 78
TEST DESCRIPTIONS                                                                                                          SEQ 0084


       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.10  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.

       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.

       PBREAK adr

       Proceed from breakpoint.  The address given will be used  as  the
    restart  address.   If none is given, the address read by the WBREAK
    command is used.  This command causes several things to be done:

    1.  The CRAM location to restart at is read and rewritten with  good
        parity.

    2.  The RAR is written with the start address.
MAINDEC-10-DFPTA-A-D                                             Page 79
TEST DESCRIPTIONS                                                                                                          SEQ 0085


    3.  The EBUF is written with  the  EBUF  data  read  by  the  WBREAK
        command.

    4.  The port is restarted.


       WBREAK

       Assuming the port has just halted because  of  a  CRAM  PE,  this
    command  is  used  to  print  breakpoint  related data - the address
    stopped at and the contents of the EBUF.

       This command also saves this data so  that  a  subsequent  PBREAK
    command  can  be  used  to  restart  the  port at the correct place,
    restoring the EBUF also.   Note  that  restarting  is  not  possible
    unless  the  instruction  to  restart  at  is  an unconditional jump
    instruction.



    10.5.3.11  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.

       Test names are given as 'Test Class' 'Test  Number',  where  test
    class is:


     o  SE or S - 2910 sequencer tests

     o  MP or M - Mproc module tests

     o  AL or A - 2901 ALU tests

     o  CB or C - CBus module tests

     o  EB or E - EBus module tests


       Sample test names are SE1, SE27, EB1, E1, AL20, ...

       LOAD tst

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

    |  DEBUG> LOAD SE27
    |
    |  [Done - Number of CRAM locations loaded/verified = 17.]
MAINDEC-10-DFPTA-A-D                                             Page 80
TEST DESCRIPTIONS                                                                                                          SEQ 0086


       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 SE30
    |
    |  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 
    |     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 CRAM.  The file used is the default
    file  name  CI20.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 does not verify the microcode it has loaded.  Example:

    |  DEBUG> FLOAD
    |
    |  [Reading file: CI20.ULD]
    |
    |  [Number of CRAM locations loaded = 3040.]
    |
    |  [Ucode version 402]


       FVERFY

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

    |  DEBUG> FVERFY
    |
    |  [Reading ucode file: CI20.ULD]
    |
    |  Verify error at CRAM location 0000 
    |   Correct: 0001 0000 1631 6702 0060
    |   Actual:  0000 0000 0400 0000 0000
    |
    |  Verify error at CRAM location 0001 
    |   Correct: 0025 6000 4315 6542 0060
    |   Actual:  0000 0000 1400 0000 0040
    |
    |  Verify error at CRAM location 0007 
    |   Correct: 0004 4000 7510 7542 0060
    |   Actual:  0000 0000 7400 0000 0340
    |
MAINDEC-10-DFPTA-A-D                                             Page 81
TEST DESCRIPTIONS                                                                                                          SEQ 0087


    |  Verify error at CRAM location 0025 
    |   Correct: 0031 4145 4731 6723 0060
    |   Actual:  0000 0002 5400 0000 1240
    |
    |  [Number of CRAM locations verified = 3040.  Errors = 27.]


       FLIST

       List microcode in file in field format.  The  file  used  is  the
    default  file  name  CI20.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> FLIST
    |
    |  [Reading ucode file: CI20.ULD]
    |
    |  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  CI20.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
    |
    |  [Reading ucode file: CI20.ULD]
    |
    |  0000 / 0001 0000 1631 6702 0060
    |  0001 / 0025 6000 4315 6542 0060
    |  0007 / 0004 4000 7510 7542 0060
    |  ...




    10.5.3.12  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
MAINDEC-10-DFPTA-A-D                                             Page 82
TEST DESCRIPTIONS                                                                                                          SEQ 0088


    |
    |  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.

       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
MAINDEC-10-DFPTA-A-D                                             Page 83
TEST DESCRIPTIONS                                                                                                          SEQ 0089




       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:

    |  What test - CCODE
    |
    |  CC On:   CBAV FEQ0 CSRC MVRP PLPE CBLW
    |  CC Off:  GCSR EBPE AFUL BFUL 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, and ZLOCS.

       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, and ZLOCS.

       IPRINT
MAINDEC-10-DFPTA-A-D                                             Page 84
TEST DESCRIPTIONS                                                                                                          SEQ 0090


       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.13  Data Transfer Commands

       RDINIT

       This command performs initialization in preparation  for  a  read
    (port  writing  into KL10 memory).  The diagnostic builds a CCW list
    that will transfer the number of words specified by the last SET LEN
    command.  It also initializes the buffer by filling it with the data
    pattern '400000,,000001'.

       WRINIT

       This command performs initialization in preparation for  a  write
    (port  reading  KL10 memory).  The diagnostic builds a CCW list that
    will transfer the number of words specified  by  the  last  SET  LEN
    command.  It also initializes the buffer by filling it with the data
    pattern selected by the last SET PAT command.

       BPRINT n

       This command prints buffer contents (n locations).  If no  length
    is  specified  the diagnostic prints the entire buffer the length of
    which is determined by a previous SET LEN command.  For example:

    |  DEBUG> BPRINT 7
    |
    |  Wrd 0.  777777 777777   777777 777777   777777 777777   777777 777777 
    |  Wrd 4.  777777 777777   777777 777777   777777 777777 


       CCWPNT
MAINDEC-10-DFPTA-A-D                                             Page 85
TEST DESCRIPTIONS                                                                                                          SEQ 0091


       This command prints the CCW list  last  generated  by  a  RDINIT,
    WRINIT, or START command.  Example:

    |  DEBUG> CCWPNT
    |
    |  CCW List:
    |    #  Op Code   Word Cnt  Buffer Adr    This data transfer is 100000
    |    -  -------   --------  ----------    words long.  The buffer is
    |    1  Dt-fwd        512   00047000      only 512 words long so the
    |   ..                                    buffer address remains the
    |  304  Dt-fwd-hlt    160   00047000      same for the entire transfer.


       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
    |
    |  Channel-7 Logout Data
    |  Loc   Contents
    |   1    ICW: 000000 000000 
    |   2    SW1:   CLP points to: 0
    |   3    Last Updated CCW: 000000 000000    WC=0.  ADR=0


       COMPAR

       Compare data buffer.  The data compare is done based on the  word
    count  set up earlier by a SET LEN command.  Normally a data compare
    could be  done  after  running  some  microcode  which  did  a  data
    transfer.   No  data  comparisons  are done unless the diagnostic is
    specifically requested to do so.  Example:

    |  DEBUG> COMPAR
    |
    |  Data Compare Error:
    |  Word    --Correct Data--      ---Actual Data--
    |      2      525252 525252         400000 000001 
    |      4      525252 525252         400000 000001 
    |      6      525252 525252         400000 000001 
    |  Words in error = 64.




    10.5.3.14  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.
MAINDEC-10-DFPTA-A-D                                             Page 86
TEST DESCRIPTIONS                                                                                                          SEQ 0092


    |  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 - 
    |  N INHFLT - 
    |  ...


       SWPRIN

       Print current switch settings.  Example:

    |  DEBUG> SWPRIN
    |
    |  Switches:  020010 002000   PNTLPT OPRSEL UDEBUG 


    NOPNT    RELIAB   TRACE    DSPEAR   UDEBUG
    PNTLPT   TXTINH   INHFLT   NIPORT   MDEBUG
    DING     OPRSEL   INHMSG   CIPORT   SDEBUG
    LOOPER            LOOPGM   MPROC    LDEBUG
    ERSTOP            LOOPTS   MCBUS
    PALERS            RUNALL

       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-DFPTA-A-D                                             Page 87
PROGRAM RUN TIME                                                                                                           SEQ 0093


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  per  port,
    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.
------------------------------------------------------------------------
                                                                                                                           SEQ 0094
VERSION:	MAINDEC-10-DFPTA-A	Version 0.1

AUTHOR:		Richard Stockdale

DATE:		December 31, 1983

REASON:		Original release.

------------------------------------------------------------------------
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 1             
                                                                                                                           SEQ 0095




















				   DOCUMENT
				**************
				  DFPTA  LST
				**************

















		    COPYRIGHT 1984
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 2             
                                                                                                                           SEQ 0096

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


	1	

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

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

	1223	ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979

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

	1589	IPA REGISTER STORAGE

	3	Externs / Entrys

	125	Initialization

	295	Test/Command Selection

	1627	Test Dispatching

	2677	Port Debugger

	6881	Program Utility Routines

	7744	SPEAR Reporting

	7943	Test Execute Routines

	10242	Miscellaneous Test Variables

	1	EBUS Module Tests

	7510	EBUS Module Error Printing Routines

	1	MP Control Module:  2910 Basic Instruction Tests

	1	EBUS/MPROC 2901 Tests (Part 1)

	1	EBUS/MPROC 2901 Tests (Part 2)

	30	Register Interference Tests

	1	EBUS/MPROC 2901 Tests (Part 3)
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 3             
                                                                                                                           SEQ 0097

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


	26	Register Interference Tests

	1	EBUS/MPROC 2901 Tests (Part 4)

	1	MPROC Module Tests

	7115	Miscellaneous Routines

	1	CBUS MODULE TESTS

	1	CBUS MODULE TESTS

	1	Port Controller Utility Package

	60	Port Register Read/Write Routines

	387	Port Specific Utility Routines

	796	PI System Routines

	1208	Page Fail Handling Routines

	1294	Channel Handling Routines

	2017	User Mode Support Routines

	2477	Miscellaneous Routines

	1	UTILITY Routines Module

	64	Printout/Typin Routines

	324	Clock Handling Routines

	604	TOPS10/20 Related Routines

	683	File Handling Routines

	870	Data Pattern Generator/Compare Routines

	1054	Data Patterns

	1332	Switch Handling Routines
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 4             
                                                                                                                           SEQ 0098

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


	1864	Miscellaneous Routines

	2586	Scope Looping And Error Reporting Routine
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 5             
                                                                                                                           SEQ 0099
		*****************************************************************
	1	DFPTA TITLE FILE
		*****************************************************************

		27		Copyright (C) 1982
				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

		51	 Program Parameters

		67	 Assembly Parameters

		98	 Channel Logout Status Bits

		114	 Right Hand Switches

		135	 Macro Definitions

		139	 Text macros

		166	 ASCII text macro

		172	 RPUT/RGET - Multiple put/get

		204	 Test descriptor entry generator macros

		217	 Network Definitions

		293	 SSTABLE - Single step table entry generator macro

		316	 ATABLE - Single step table entry generator macro (with EBUF checking)
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 6             
                                                                                                                           SEQ 0100
		333	 TTABLE - Test execute table entry generator macro

		351	 CTABLE - Data test execute table entry generator macro

		368	 ITABLE - Interrupt test execute table entry generator macro

		386	 Test Dispatch Table Definitions

		409	 Port CONI/CONO CSR Bit Assignments

		442	 OPDEF Definitions

		462	 Bit Definitions For "SCOPE" UUO Handler - Error Message Printer

		475	 Bit Definitions For Microcode executer routine (MEXEC)

		487	 Bit Definitions For Test executer routine (TEXEC)

		504	 Bit Definitions For Data Test executer routine (CEXEC)

		521	 Bit Definitions For Interrupt Test executer routine (IEXEC)

		538	 Microword Field Definitions

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

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

		987	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

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

		1020	SPECIAL SUBPROGRAM LINKAGES

		1031	SPECIAL SUBROUTINE FATAL HALTS
			USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 7             
                                                                                                                           SEQ 0101
		*****************************************************************
	1223	ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
		*****************************************************************

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

		*****************************************************************
	1589	IPA REGISTER STORAGE
		*****************************************************************

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

		*****************************************************************
	125	Initialization
		*****************************************************************

		*****************************************************************
	295	Test/Command Selection
		*****************************************************************

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

		536	 INDLIS - List of classes that may be specified with individual test numbers

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

		617	 DISGO - Test dispatch addresses

		691	 MBUS - Execute MBUS related tests

		734	 ALL    Execute all tests
			 EBUS   Execute EBus module tests
			 SEQ    Execute SEQ related tests
			 ALU    Execute 2901 related tests
			 MPROC  Execute MPROC module tests
			 MBUS   Execute MBUS related tests
			 CBUS   Execute CBus module tests

		767	 ISOPNT - Print fault isolation data

		863	 Network Data Areas

		951	 TSTLIS - List test description for all tests.
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 8             
                                                                                                                           SEQ 0102
		998	 TSTLST - List test description for either single test or class of tests.

		1074	 TSTDIA - Return to DIAMON

		1085	 TSTDDT - Enter DDT

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

		1114	 CONFIG - Determine/print device configuration

		1193	 CONPNT - Print configuration

		1226	 TSTSEL - Select device(s) to test

		1385	 TSTHLP - Help for 'WHAT TEST' question.

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

		1516	 TSTDSL - List disabled tests

		1546	 TSTSWI/TSTSWP - Input switches / Print switch selections

		1563	 TSTSSW - Switch complement commands

		1575	 TSTTAK - Take commands from a file
			 TSTTAN - Take commands from a file without echoing results

		*****************************************************************
	1627	Test Dispatching
		*****************************************************************

		1630	 TSTSPC - Run only one test

		1657	 RANGEN - Random number generator

		1714	 TSTDIS - Dispatch to the tests

		1970	 Test Dispatch List - in sequential order

		2230	 Test Dispatch List - in order for fault isolation

		2531	 FLTHAN - Fault handler

		2566	 FLTCHK - See if this test should fail based on possible modules list

		2602	 TSTDEC - Decode test specified as XXnnn where XX is the test class
			          and nnn is the test number.
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 9             
                                                                                                                           SEQ 0103
		*****************************************************************
	2677	Port Debugger
		*****************************************************************

		2680	 TSTDEB - Console command utility for the port.

		2985	 .DBCMD - List of acceptable commands

		3140	 .DBDIS - List of dispatch addresses

		3297	 DHELP - Print DEBUG> help message

		3466	 DSET - Set/clear/print options

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

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

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

		3582	 DSETEB - Set/clear preserve EBUF for single stepping

		3605	 DSETLN - Set length of data transfer

		3630	 DSETDA - Set data pattern to insert in buffer

		3673	 DSETFN - Set default microcode file name

		3703	 DSETWH - Print all selected options

		3721	 DSETFA - Set failing network

		3765	 DSETPL - List data patterns

		3810	 DSETHE - Set help message

		3839	 Program Flags

		3854	 DECSR - Examine CSR register

		3868	 DDCSR - Deposit CSR register

		3883	 DZCSR - Zero CSR register

		3895	 DCONI - Loop on CONI's

		3908	 DCONO - Loop on CONO's

		3925	 DDATI - Loop on DATAI's
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 10            
                                                                                                                           SEQ 0104
		3938	 DDATO - Loop on DATAO's

		3954	 DROUTN - Routine to do special diagnostic loop

		3983	 DRESET - Issue an EBUS Reset

		3994	 DCLEAR - Issue a 'Port Clear'

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

		4020	 DSTART - Start the port

		4065	 DSTOP - Stop the port

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

		4195	 DSSPNT - Print single step history

		4219	 DSSCLR - Clear single step history data

		4240	 PNTHST - Print a single step history entry

		4263	 SAVHST - Save single step history data

		4288	 DCONT - Continue the port

		4316	 DEEBUF - Examine EBUF register

		4338	 DDEBUF - Deposit EBUF register
			 DZEBUF - Zero EBUF register

		4365	 DELAR - Examine LAR register

		4386	 DDRAR - Deposit RAR register

		4404	 DZRAR - Zero RAR register

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

		4425	 DDCRAM - Change CRAM locations.

		4433	 DBCRAM - Change CRAM locations by field

		4441	 DACRAM - Alter CRAM locations.

		4449	 DZCRAM -- Zero CRAM addresses specified.

		4457	 DLCRAM -- List CRAM addresses specified.
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 11            
                                                                                                                           SEQ 0105
		5048	 DEALU - Examine 2901 registers

		5150	 DDALU - Deposit register 

		5227	 DZALU - Zero 2901 registers

		5345	 DELOCS - Examine local storage 

		5448	 DDLOCS - Deposit local storage 

		5520	 DZLOCS - Zero local storage 

		5637	 DMARK - Set mark bit in CRAM locations

		5680	 DRMARK - Remove mark bit in CRAM locations

		5723	 DCMARK - Clear all mark bits

		5796	 DLMARK - List locations with mark bit set

		5882	 DENEXT - Examine next

		5947	 DDNEXT - Deposit next

		5998	 DESTAK - examine 2910 stack

		6052	 DBREAK - Set breakpoint

		6103	 DRBRK - Remove breakpoint

		6142	 DCBRK - Clear all breakpoints 

		6210	 DLBRK - List breakpoints

		6299	 DLOAD - Load microcode into CRAM from a test.

		6334	 DLIST - List microcode from test

		6363	 DFLOAD - Load microcode from file into CRAM

		6399	 DFVERF - Verify microcode from file versus CRAM

		6463	 DFLIST - List microcode in file

		6492	 DFEXAM - Examine microcode in file

		6521	 DTRANS - Translate CSR bits to English

		6536	 DCCODE - Print condition codes
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 12            
                                                                                                                           SEQ 0106
		6633	 DFILLN - Fill CRAM with special data (J=PC+1,OPCode)

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

		6684	 DRDINI - Initialize everything for a read

		6711	 DWRINI - Initialize everything for a write

		6721	 DBPNT - Print buffer contents

		6754	 DCWPNT - Print CCW list

		6765	 DLGPNT - Print logout data

		6779	 DCOMPA - Compare data buffer

		6799	 DSWIT - Switch complement commands

		6813	 IPRINT - Print interrupt history

		6871	 IINIT - Initialize interrupt system

		*****************************************************************
	6881	Program Utility Routines
		*****************************************************************

		6884	 TRACE - Program Trace Routine

		6958	 TSTGET - Get test related data based on test dispatch address

		6999	 SELTST - Select a test to run.

		7033	 CHKTST - Check if this is a valid test to execute and set up test type.

		7080	 TSTPNT - Print test name/number

		7104	 ODELAY - Delay a specified amount of time (in milliseconds in AC0)

		7137	 DDELAY - Delay a specified amount of time (in milliseconds in AC0)

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

		7299	 MVPNT - Print verify error data

		7350	 MLIST - List microcode of a test

		7388	 PNTCRM - Print CRAM word
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 13            
                                                                                                                           SEQ 0107
		7473	 PNTWD - Print a CRAM word (xxxx xxxx xxxx xxxx xxxx)

		7499	 CALPAR - Calculate parity for a CRAM location

		7550	 TLOAD - Load microcode/verify it for a test

		7598	 CSRPNT - Print CSR register as 'CSR: xxxxxx,,xxxxxx' followed by
			          English translation.

		7618	 CSRENG - Print CSR data in English

		7652	 CSRENB - CSR bits

		7699	 SAVCRM - Save specified CRAM locations in a buffer

		7719	 RESCRM - Restore CRAM locations

		*****************************************************************
	7744	SPEAR Reporting
		*****************************************************************

		7747	 SPREP1 - Print initial SPEAR report 'diagnostic started'

		7800	 SPREP2 - Print error or successful completion SPEAR report

		7929	 GETPPN - Find out PPN number

		*****************************************************************
	7943	Test Execute Routines
		*****************************************************************

		7946	 SEXEC - Execute entries in a 'Single Step Table'

		8167	 SSPNT - Print out single step data that resulted in an error

		8216	 AEXEC - ALU type test execute routine

		8349	 AAPNT - Print results message

		8407	 BEXEC - Execute entries in a 'Single Step Table', verifying EBUF data

		8647	 BBPNT - Print out single step data that resulted in an error

		8724	 TEXEC - Test execute routine

		8994	 TTPNT - Print out error data

		9056	 CEXEC - Data test execute routine
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 14            
                                                                                                                           SEQ 0108
		9439	 CCPNT - Print out error data

		9532	 IEXEC - Interrupt test execute routine

		10065	 IIPNT - Print out error data

		*****************************************************************
	10242	Miscellaneous Test Variables
		*****************************************************************

		10294	 Data Buffer Areas For Reading And Writing

		10303	 Data transfer paramters

		10323	 Special code to test SPEAR entries

		10366	 Special code to produce an EXE version

		*****************************************************************
	1	EBUS Module Tests
		*****************************************************************

		47	 TEST 1 - Is there an port out there?

		96	 Test 2 - RH20/Port Interaction

		200	 Test 3 - RH20/Port Interaction

		301	 Test 4 - RH20/Port Interaction

		405	 Test 5 - RH20/Port Interaction

		505	 Test 6 - CSR Cleared After Reset

		567	 Test 7 - Read/Write CSR Bits

		732	 TEST 10 - CSR Bits Interaction

		832	 TEST 11 - EBUF Access Test

		886	 TEST 12 - EBUF/CSR Conflict Test

		947	 TEST 13 - KMUX Parity Generators

		1091	 TEST 14 - EBUF/CSR Conflict Test

		1175	 TEST 15 - EBUF Reset Test

		1240	 TEST 16 - EBUF Data Path Test
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 15            
                                                                                                                           SEQ 0109
		1399	 TEST 17 - CSR Bit 18 Self Clearing Test

		1449	 TEST 20 - CSR Bit 18 Reset Test

		1500	 TEST 21 - CSR Bit 18 Reset Test

		1558	 TEST 22 - Read/Write EBUF When Ucode Running

		1653	 TEST 23 - Par Gen - Not Forcing an Error

		1838	 TEST 24 - Par Gen - Forcing an Error

		1928	 TEST 25 - Read only CSR Bits

		2030	 TEST 26 - CSR 01 'DIAG RQST CSR'

		2116	 TEST 27 - CSR 01 'DIAG RQST CSR'

		2206	 TEST 30 - CSR 01 'DIAG RQST CSR'

		2290	 TEST 31 - CSR 01 'DIAG RQST CSR'

		2377	 TEST 32 - CSR 01 'DIAG RQST CSR'

		2456	 TEST 33 - CSR 01 'DIAG RQST CSR'

		2540	 TEST 34 - CSR 02 'DIAG CSR CHNG'

		2642	 Test 35 - Constant MUX

		2876	 Test 36 - Constant MUX Interference

		2964	 TEST 37 - CSR Bit 24 - EBUS PE Occurs at Wrong Time

		3021	 TEST 40 - EBUS Transfer via DATAO's

		3144	 TEST 41 - EBUS Transfer via DATAI's

		3300	 TEST 42 - CSR 05 'Rqst Interrupt'

		3378	 TEST 43 - CSR 05 'Rqst Interrupt'

		3454	 TEST 44 - CSR 05 'Rqst Interrupt'

		3530	 TEST 45 - CSR 06 'CRAM Par Err'

		3604	 TEST 46 - CSR 07 'MBUS Err'

		3684	 TEST 47 - CSR 11 'Idle' Bit
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 16            
                                                                                                                           SEQ 0110
		3906	 TEST 50 - CSR 12 'Disable Complete' Bit

		4127	 TEST 51 - CSR 13 'Enable Complete' Bit

		4346	 TEST 52 - x

		4358	 TEST 53 - MPROC Run Bit

		4435	 TEST 54 - Basic KMUX Parity Test

		4527	 TEST 55 - Clearing MPROC Run Bit

		4610	 TEST 56 - Clearing MPROC Run Bit

		4688	 TEST 57 - Verify 'Diag Single Cyc'

		4764	 TEST 60 - PI Level n/0 Interrupts

		4948	 TEST 61 - Check PIA Level 0

		5045	 TEST 62 - Check Interrupt on Level 1-7

		5172	 TEST 63 - CSR 05 'Rqst Interrupt' Clearing

		5292	 TEST 64 - IOP Function 0 - 40+2N Interrupt

		5564	 TEST 65 - IOP Function 1 - 40+2N Interrupt

		5835	 TEST 66 - x

		5848	 TEST 67 - x

		5860	 TEST 70 - IOP Function 4 - Examine

		6119	 TEST 71 - IOP Function 5 - Deposit

		6384	 TEST 72 - IOP Function 7 - Examine/Increment

		6641	 TEST 73 - CSR 25-26 & 28 KL-side

		6844	 TEST 74 - CSR 25-26 & 28 Port-side

		7066	 TEST 75 - CSR 27 & 30-31 KL-side

		7232	 TEST 76 - CSR 27 & 30-31 Port-side
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 17            
                                                                                                                           SEQ 0111
		*****************************************************************
	7510	EBUS Module Error Printing Routines
		*****************************************************************

		7606	 PFPNT - Print page fail data

		7624	 INTPNT - Print interrupt activity

		*****************************************************************
	1	MP Control Module:  2910 Basic Instruction Tests
		*****************************************************************

		34	 Test 1 - JMAP Instruction

		204	 Test 2 - JZ Instruction

		319	 Test 3 - JZ Instruction - Effect on Reg/Ctr

		442	 Test 4 - JZ Instruction - Effect on Reg/Ctr

		565	 Test 5 - CONT Instruction

		715	 Test 6 - CJP Instruction

		807	 Test 7 - CJV Instruction

		898	 Test 10 - CJS Instruction

		989	 Test 11 - CJS Instruction

		1075	 Test 12 - CJS Instruction

		1168	 Test 13 - CRTN Instruction

		1250	 Test 14 - CRTN Instruction

		1367	 Test 15 - Stack location #1

		1532	 Test 16 - Stack location #2

		1697	 Test 17 - Stack location #3

		1864	 Test 20 - Stack location #4

		2027	 Test 21 - Stack location #5

		2194	 Test 22 - Increment/Decrement Stack Pointer

		2285	 Test 23 - Increment/Decrement Stack Pointer
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 18            
                                                                                                                           SEQ 0112
		2379	 Test 24 - Increment/Decrement Stack Pointer

		2474	 Test 25 - Increment/Decrement Stack Pointer

		2571	 Test 26 - Increment/Decrement Stack Pointer

		2670	 Test 27 - x

		2680	 Test 30 - CJPP Instruction

		2779	 Test 31 - CJPP Instruction

		2903	 Test 32 - CJPP Instruction

		2993	 Test 33 - LDCT Instruction

		3070	 Test 34 - LDCT Instruction

		3174	 Test 35 - Register/Counter

		3404	 Test 36 - JRP Instruction

		3509	 Test 37 - JSRP Instruction

		3625	 Test 40 - JSRP Instruction

		3742	 Test 41 - JSRP Instruction

		3832	 Test 42 - PUSH Instruction

		3952	 Test 43 - PUSH Instruction

		4059	 Test 44 - PUSH Instruction

		4155	 Test 45 - LOOP Instruction

		4266	 Test 46 - LOOP Instruction

		4374	 Test 47 - LOOP Instruction

		4477	 Test 50 - RFCT Instruction

		4779	 Test 51 - RFCT Instruction

		4879	 Test 52 - RFCT Instruction

		5067	 Test 53 - RFCT Instruction

		5440	 Test 54 - RPCT Instruction
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 19            
                                                                                                                           SEQ 0113
		5558	 Test 55 - RPCT Instruction

		5807	 Test 56 - TWB Instruction

		5907	 Test 57 - TWB Instruction

		5992	 Test 60 - TWB Instruction

		6083	 Test 61 - TWB Instruction

		6192	 Test 62 - TWB Instruction

		6299	 Test 63 - TWB Instruction

		6383	 Test 64 - Stack Interference Tests

		6531	 Test 65 - Stack Interference Tests

		6676	 Test 66 - Reg/Ctr Interference Tests

		6852	 Test 67 - Reg/Ctr Interference Tests

		7006	 TEST 70 - Full Speed Sequencer Test

		*****************************************************************
	1	EBUS/MPROC 2901 Tests (Part 1)
		*****************************************************************

		47	 Test 1 - 2901 0's Test

		291	 Test 2 - 2901 1's Test

		649	 Test 3 - 2901 OR Test - D OR 0

		749	 Test 4 - 2901 AND Test - D AND 0

		839	 Test 5 - 2901 NOT_R_AND_S Test - D NOT_RS 0

		929	 Test 6 - 2901 XOR Test - D XOR 0

		1028	 Test 7 - 2901 XNOR Test - D XNOR 0

		1127	 Test 10 - 2901 R+S Test - D + 0

		1226	 Test 11 - 2901 R-S Test - D - 0

		1325	 Test 12 - 2901 S-R Test - 0 - D

		1428	 Test 13 - 2901 Writing/Reading Registers
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 20            
                                                                                                                           SEQ 0114
		1832	 Test 14 - 2901 Q-Register Test

		1929	 Test 15 - 2901 Register Interference Test

		2134	 Test 16 - 2901 OR Test

		2385	 Test 17 - 2901 AND Test

		2619	 Test 20 - 2901 NOT_R_AND_S Test

		2865	 Test 21 - 2901 XOR Test

		3153	 Test 22 - 2901 XNOR Test

		3520	 Test 23 - 2901 R + S Test, No Carry

		3847	 Test 24 - 2901 R + S Test, With Carry

		4178	 Test 25 - 2901 R - S Test - Without Carry

		4496	 Test 26 - 2901 R - S Test - With Carry

		4804	 Test 27 - 2901 S - R Test - Without Carry

		5120	 Test 30 - 2901 S - R Test - With Carry

		5440	 ADDLOG - Routine to logically add 2 numbers

		*****************************************************************
	1	EBUS/MPROC 2901 Tests (Part 2)
		*****************************************************************

		*****************************************************************
	30	Register Interference Tests
		*****************************************************************

		33	 Test 31 - 2901 Q-Register Interference Test

		*****************************************************************
	1	EBUS/MPROC 2901 Tests (Part 3)
		*****************************************************************
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 21            
                                                                                                                           SEQ 0115
		*****************************************************************
	26	Register Interference Tests
		*****************************************************************

		29	 TEST 32 - 2901 RAM Register Interference Test

		*****************************************************************
	1	EBUS/MPROC 2901 Tests (Part 4)
		*****************************************************************

		31	 TEST 33 - Q-Register Shift

		199	 TEST 34 - Q-Register Right/Left Shift

		357	 TEST 35 - RAM Register Shift

		1024	 TEST 36 - RAM Data Movement Test

		1383	 TEST 37 - RAM/Q-Register Data Movement Test

		1582	 TEST 40 - RAM Data Movement/Shifting Test

		1781	 TEST 41 - RAM/Q-Reg Data Movement/Shifting Test

		1977	 TEST 42 - 2901 Register / Constant Mux Test

		*****************************************************************
	1	MPROC Module Tests
		*****************************************************************

		45	 TEST 1 - CRAM Data Test (RAR12=0)

		207	 TEST 2 - CRAM Test (RAR12=1)

		302	 TEST 3 - CRAM Addressing Test

		390	 TEST 4 - RAR/LAR Data Path Test - LDCRAM

		505	 TEST 5 - RAR/LAR Data Path Test - RDCRAM

		625	 TEST 6 - Cram Ctrl Register Test

		874	 TEST 7 - Cram Ctrl Register Test

		1123	 TEST 10 - MBUS Error Test (MPROC module only)

		1242	 TEST 11 - MBUS Error Test (CBUS module only)

		1336	 TEST 12 - MBUS Error Test (MPROC module only)
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 22            
                                                                                                                           SEQ 0116
		1481	 TEST 13 - MBUS Error Test (CBUS module only)

		1586	 TEST 14 - CCCbusAvail Test

		1879	 TEST 15 - CCGrntCSR Test

		2137	 TEST 16 - CCFEQ0 Test

		2721	 TEST 17 - CCCSRChng Test

		2945	 TEST 20 - CCEbParErr Test

		3123	 TEST 21 - CCRcvrBufAFul Test

		3315	 TEST 22 - CCRcvrBufBFul Test

		3507	 TEST 23 - CCXmtrAttn Test

		3699	 TEST 24 - CCEbusRqst Test

		3911	 TEST 25 - CCIntrActive Test

		4115	 TEST 26 - CCMBSign Test

		4312	 TEST 27 - CCMVParChk Test

		4610	 TEST 30 - CCCbusParErr Test

		4851	 TEST 31 - CCPliParErr Test

		5178	 TEST 32 - CCChanErr Test

		5461	 TEST 33 - CCCbLstWd Test

		5694	 TEST 34 - Basic Local Store Test

		5826	 TEST 35 - Local Store Data Test

		6555	 TEST 36 - Local Store Address Test

		6759	 TEST 37 - Local Store RAM Mode Test

		6871	 Test 40 - Jump Mux Test

		6973	 TEST 41 - CRAM Control Register Parity Generators Test
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 23            
                                                                                                                           SEQ 0117
		*****************************************************************
	7115	Miscellaneous Routines
		*****************************************************************

		*****************************************************************
	1	CBUS MODULE TESTS
		*****************************************************************

		41	 Test 1 - Fmtr Data Loopback

		621	 Test 2 - PLI Buffer Data Loopback

		836	 Test 3 - CBUS to EBUF Data Transfer

		977	 Test 4 - 2901 to CBUS Data Transfer

		1133	 Test 5 - CBUS to 2901 Multiple word Transfer

		1462	 Test 6 - 2901 to CBUS Multiple word Transfer

		1829	 Test 7 - CBUS to EBUS Data Transfer

		2113	 Test 10 - EBUS to CBUS Data Transfer

		2413	 Test 11 - Fmtr Cleared by 'Port Clear'

		2491	 Test 12 - Fmtr Basic Up Shifting Test

		2606	 Test 13 - Fmtr Up Shift 4 Test - BUS Ctl=Cbus

		2917	 Test 14 - Fmtr Up Shift 4 Test - BUS Ctl=Fmtr

		3227	 Test 15 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0

		3552	 Test 16 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0

		3875	 Test 17 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1

		4198	 Test 20 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1

		4522	 Test 21 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0

		4810	 Test 22 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0

		5097	 Test 23 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=1

		5383	 Test 24 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=1

		5672	 Test 25 - Fmtr Basic Down Shifting Test
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 24            
                                                                                                                           SEQ 0118
		5786	 Test 26 - Fmtr Down Shift 4 Test

		6105	 Test 27 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=0

		6433	 Test 30 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=0

		6759	 Test 31 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=1

		7087	 Test 32 - Fmtr Down Shift 4 (from PLIN) Test - SELRHTNIB=1

		7415	 Test 33 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=0

		7707	 Test 34 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=0

		7998	 Test 35 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=1

		8288	 Test 36 - Fmtr Down Shift 8 (from PLIN) Test - SELRHTNIB=1

		8577	 Test 37 - Fmtr Ring Buffer Test

		*****************************************************************
	1	CBUS MODULE TESTS
		*****************************************************************

		33	 Test 40 - CMUX Selected by PLINTOCMUX

		225	 Test 41 - CBUF Loaded Correctly

		465	 Test 42 - PMUX Selected by MPCBUFTOPLOUT

		576	 Test 43 - PMUX Selected by MPCBUFTOPLOUT/MPZEROLFTNIB

		687	 Test 44 - DMUX Selected Correctly

		915	 Test 45 - CBUS Parity Checking - CBUS to CBUS Module

		1121	 Test 46 - CBUS Parity Checking - CBUS Module to CBUS

		1286	 Test 47 - CBUS Parity Checking - CBUS to CBUS Module

		1532	 Test 50 - T Field Timing Test

		1673	 Test 51 - CBUS Store

		1902	 Test 52 - CBUS Input Buffer

		1988	 Test 53 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=0

		2331	 Test 54 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=1
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 25            
                                                                                                                           SEQ 0119
		2660	 Test 55 - Parity Predictor - Fmtr to PLOUT

		2956	 Test 56 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=0

		3256	 Test 57 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=1

		3568	 Test 60 - Parity Predictor - Fmtr to CBOUT

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

		*****************************************************************
	60	Port Register Read/Write Routines
		*****************************************************************

		63	 Notes On I/O Routine Design

		113	 Port Register Load Routines

		125	 LDEBUF - Load EBUF

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

		156	 LDRAR - Load RAR

		182	 LDCRAM - Load CRAM

		203	 Port Register Read Routines

		220	 RDEBUF - Read EBUF

		237	 RDCSR - Read CSR

		255	 RDLAR - Read LAR

		279	 RDCRAM - Read CRAM

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

		317	 .CONO - Do a simple CONO

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

		357	 .DATAO - Do a simple DATAO

		376	 ERESET - Issue an EBUS reset
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 26            
                                                                                                                           SEQ 0120
		*****************************************************************
	387	Port Specific Utility Routines
		*****************************************************************

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

		437	 IPACLR - Issue a port clear

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

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

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

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

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

		623	 IPASTP - Stop the port

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

		*****************************************************************
	796	PI System Routines
		*****************************************************************

		799	 INITPI - Initialize and Turn On PI System

		841	 .PIOFF - Detach port from PI system 

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

		875	 PISYOF - Turn PI system off

		884	 PISYON - Turn PI system on

		892	 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)

		1159	 .INPNT - Print special interrupt data
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 27            
                                                                                                                           SEQ 0121
		*****************************************************************
	1208	Page Fail Handling Routines
		*****************************************************************

		1211	 PFSET - Set up EPT locations 500-502 to handle page fails

		1244	 PFCLR - Restore EPT locations 500-502 to original values

		1258	 PFCHK - Check reason for page fail and dispatch appropriately

		*****************************************************************
	1294	Channel Handling Routines
		*****************************************************************

		1297	 Routines To Interface With A Channel

		1333	 CHINIT - Channel Initialization Routine

		1391	 GENCCW - Channel Command Word Generator

		1543	 GRINDF - Subroutine to build a forward transfer CCW list.

		1569	******** Next 2 instructions are ommitted for DFPTA tests. ****************
			******** This causes every CCW to start at same memory location. **********

		1594	 CCWST - RH20 CCW Store Routine

		1620	 GETLOG - Snapshot The Channel Logout Area

		1658	 LOGPNT - Channel Logout Printer

		1732	 CCWPNT - Channel Command List Printer

		1822	 CHP20 - Builds a TOPS20 User Mode Channel Program

		1887	 CHP10 - Builds a TOPS10 Channel Command List

		1941	 DIAGER - Report Monitor Call Error In User Mode

		1965	 Some Channel Routine Variables

		1996	 CHDATA - Obtain channel logout data and inspect results
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 28            
                                                                                                                           SEQ 0122
		*****************************************************************
	2017	User Mode Support Routines
		*****************************************************************

		2020	 DSETUP - Setup Routine For Diagnostic Function

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

		2151	 DEVREL - User Mode Release Routine

		2241	 DEVREQ - User Mode Request Routine

		2333	 ENDIAG - Enable the NI/CI port

		2352	 DGEPNT - Decode and print DIAG error

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

		2456	 ENABLE - Enable Capabilities of This Process

		*****************************************************************
	2477	Miscellaneous Routines
		*****************************************************************

		2480	 FFF - Routine To Handle Fatals

		*****************************************************************
	1	UTILITY Routines Module
		*****************************************************************

		*****************************************************************
	64	Printout/Typin Routines
		*****************************************************************

		67	 CONVSX - Convert sixbit to octal

		110	 ALTCHH - Handle altmode intercept

		135	 CLRBUF - Clear input buffer

		152	 TTYYES - Answer yes or no question

		182	 PSDN - Prints signed decimal numbers

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

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

		286	 PPDECF - Force print decimal number in a field of size x.
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 29            
                                                                                                                           SEQ 0123
		*****************************************************************
	324	Clock Handling Routines
		*****************************************************************

		327	 STCLOK - Initialize program runtime clock

		369	 MONTIM - Read program runtime from monitor

		403	 PTIME - Print time of day

		421	 RUNTME - Calculate and print program runtime

		529	 PSTAMP - Check for an 'S' typed.

		570	 LSTAMP - Check for an 'S' typed.

		*****************************************************************
	604	TOPS10/20 Related Routines
		*****************************************************************

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

		626	 .CLOSE - Subroutine to close opened files

		654	 .EXIT - Subroutine to exit job in user mode

		*****************************************************************
	683	File Handling Routines
		*****************************************************************

		686	 FINIT - Initialize reading of microcode file

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

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

		749	 FFAIL - Routine to report "DIAMON" open failure on a selected file.

		767	 FGETW - Get microword entry from file

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

		842	 FGETD - Obtain microcode data entry from file (4 digits).
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 30            
                                                                                                                           SEQ 0124
		*****************************************************************
	870	Data Pattern Generator/Compare Routines
		*****************************************************************

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

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

		*****************************************************************
	1054	Data Patterns
		*****************************************************************

		1057	 Data Patterns

		1240	 PATPNT - Translate pattern number to description

		*****************************************************************
	1332	Switch Handling Routines
		*****************************************************************

		1335	 .SWCHP - Print switch settings in English

		1403	 SWITT - Get value of switches

		1416	 .ISWT - Complete switch handling

		1513	 .SLEFT - Input left hand switches

		1578	 .SRIGT - Enter right hand switches

		1749	 SWCHPT - Prints current state of switches

		1761	 SWCOM - Switch complement routine (AC1 has switch command number 0-n)

		*****************************************************************
	1864	Miscellaneous Routines
		*****************************************************************

		1867	 PARSER - Additional CPU parity error service

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

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

		2002	 .SARG - Obtain SIXBIT argument

		2090	 .OARG - Obtain octal argument
DFPTA  LST                                                              DECDOC VER  00.25   17-OCT-84 09:22:59   PAGE 31            
                                                                                                                           SEQ 0125
		2181	 DECYN - Decode an argument which should be NO or YES

		2209	 .DARG - Obtain octal/decimal argument

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

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

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

		2411	 FINCMD - Input a sixbit command from a file

		2461	 FSARG - Input a sixbit argument from a file

		2511	 FOARG - Input a octal argument from a file

		2575	 FEOL - Skip characters until end of line is reached

		*****************************************************************
	2586	Scope Looping And Error Reporting Routine
		*****************************************************************

		2589	 SCOPE1 - Error reporter and scope loop controller
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 1
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0126

     1						SUBTTL	DFPTA TITLE FILE
     2
     3						SALL
     4
     5						UNIVERSAL DFPTA
     6						SEARCH	MONSYM
     7
     8						EXTERN	START,STARTA,PGMNAM,SCOPE1
     9						EXTERN	PPDEC,PPDECF,ALTCHH,.PNTOC
    10
    11						.REQUIRE DFPTA1
    12						.REQUIRE DFPTA2
    13						.REQUIRE DFPTA3
    14						.REQUIRE DFPTA4
    15						.REQUIRE DFPTA5
    16						.REQUIRE DFPTA6
    17						.REQUIRE DFPTA7
    18						.REQUIRE DFPTA8
    19						.REQUIRE DFPTA9
    20						.REQUIRE DFPTAA
    21						.REQUIRE DFPTAI
    22						.REQUIRE DFPTAU
    23
    24			000000			MCNVER==0
    25			000001			DECVER==1
    26
    27					;*	Copyright (C) 1982
    28					;*	DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
    29					;*	
    30					;*	This software is furnished under a license  for  use  only
    31					;*	on a single computer system and  may  be  copied only with
    32					;*	the inclusion of the of the above copyright  notice.  This
    33					;*	software, or any other copies thereof, may not be provided
    34					;*	or otherwise made available to any other person except for
    35					;*	use  on such system and to one who agrees to these license
    36					;*	terms. Title to and ownership of the software shall at all
    37					;*	times remain in DEC.
    38					;*	
    39					;*	The information in this  document  is  subject  to  change
    40					;*	without notice and should not be construed as a commitment
    41					;*	by Digital Equipment Corporation.
    42					;*	
    43					;*	DEC assumes  no  responsibility for the use or reliability
    44					;*	of its software on equipment which is not supplied by DEC.
    45					;*
    46					;*	Author:		Dick Stockdale
    47					;*	Maintainer:	36-Bit Diagnostic Engineering
    48
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 2
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0127

    49
    50					;#********************************************************************
    51					;* Program Parameters
    52					;#********************************************************************
    53
    54					; AC Assignments.
    55
    56			000014			PAT=14				; data pattern in use
    57			000015			ERFLG=15			; error flag (gets cleared by SCOPER)
    58			000016			MBCN=16				; channel 54000,,0 to 57400,,0
    59			000017			P=17				; stack pointer
    60
    61					; Size Of Channel Control Word Buffer
    62
    63			000315			CBUFSZ==^D205			; 200 words (enough for 102400 words)
    64
    65
    66					;#********************************************************************
    67					;* Assembly Parameters
    68					;#********************************************************************
    69
    70			000005			ITERAT==5			; default to 5 passes
    71			000001			KL10==1				; assemble for KL10
    72			000001			EXCASB==1			; assemble for exec mode
    73			000001			USRASB==1			; assemble for user mode
    74			000001			MEMMAP==1			; allow memory to be mapped
    75
    76			000001			$LPAPER==1			; don't list literals
    77
    78			030000			SADR1=BEGIN
    79			030000			SADR2=BEGIN
    80			030000			SADR3=BEGIN
    81			030007			SADR4=SRTDDT
    82			000000*			SADR5=START			; ^C restart
    83			030007			SADR6=SRTDDT
    84		254200	000000*			SADR7=HALT START
    85		254200	000000*			SADR8=HALT START
    86		254200	000000*			SADR9=HALT START
    87		254200	000000*			SADR10=HALT START
    88		254200	000000*			SADR11=HALT START
    89
    90		711523	655207			PAREA1==711523,,655207		; random number base
    91			000000			PAREA2==0
    92		444660	644100			PAREA3==SIXBIT/DFPTA/
    93		605664	000000			PAREA4==SIXBIT/PNT/
    94			000000			PAREA5==0
    95			000000			PAREA6==0
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 3
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0128

    96
    97					;#************************************************************
    98					;* Channel Logout Status Bits
    99					;#************************************************************
   100
   101		400000	000000			LOGO==1B0			; channel log out bit
   102		200000	000000			MPER==1B1			; memory parity error
   103		100000	000000			ADRPE==1B2			; set when no address parity error
   104		040000	000000			NOTWC0==1B3			; not word count zero
   105		020000	000000			NEXM==1B4			; non-existant memory
   106		000400	000000			LAXER==1B9			; last xfer error
   107		000200	000000			IPAER==1B10			; IPA20 error
   108		000100	000000			LGWC==1B11			; long word count
   109		000040	000000			SHWC==1B12			; short word count
   110		000020	000000			OVN==1B13			; overrrun
   111
   112
   113					;#********************************************************************
   114					;* Right Hand Switches
   115					;#********************************************************************
   116
   117			400000			TRACET==1B18			; program test # trace feature
   118			200000			INHFLT==1B19			; inhibit fault isolation
   119			100000			INHMSG==1B20			; inhibit error message printout
   120			040000			LOOPGM==1B21			; loop on program
   121			020000			LOOPTS==1B22			; loop on test
   122			010000			RUNALL==1B23			; run all segments of a test	
   123			004000			DSPEAR==1B24			; disable SPEAR switch
   124			002000			DEBUG1==1B25			; debug mode (debug without a port)
   125			001000			DEBUG2==1B26			; debug mode (print error messages)
   126			000400			DEBUG3==1B27			; debug mode (print single step data)
   127			000200			DEBUG4==1B28			; debug mode (don't load test ucode)
   128			000100			DEBUG5==1B29			; debug mode (for fault isolation)
   129			000040			NIPORT==1B30			; NI port
   130			000020			CIPORT==1B31			; CI port
   131			000002			MMPROC==1B34			; missing Mproc module
   132			000001			MCBUS==1B35			; missing Cbus module
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 4
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0129

   133
   134					;#*********************************************************************
   135					;* Macro Definitions
   136					;#*********************************************************************
   137
   138					;#********************************************************************
   139					;* Text macros
   140					;#********************************************************************
   141
   142						DEFINE	TMSG(TEXT),<PNTMSG	[ASCIZ ^TEXT^]>
   143
   144						DEFINE	TMSGC(TEXT),<PNTMSG	[ASCIZ ^
   145					TEXT^]>
   146
   147						DEFINE	TMSGD(TEXT),<PNTMSG	[ASCIZ ^TEXT
   148					^]>
   149
   150						DEFINE	TMSGCD(TEXT),<PNTMSG	[ASCIZ ^
   151					TEXT
   152					^]>
   153						DEFINE	FMSG(TEXT),<PNTMSF	[ASCIZ ^TEXT^]>
   154
   155						DEFINE	FMSGC(TEXT),<PNTMSF	[ASCIZ ^
   156					TEXT^]>
   157
   158						DEFINE	FMSGD(TEXT),<PNTMSF	[ASCIZ ^TEXT
   159					^]>
   160
   161						DEFINE	FMSGCD(TEXT),<PNTMSF	[ASCIZ ^
   162					TEXT
   163					^]>
   164
   165					;#********************************************************************
   166					;* ASCII text macro
   167					;#********************************************************************
   168
   169						DEFINE	TASCIZ (TEXT)<[ASCIZ /TEXT/]>
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 5
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0130

   170
   171					;#********************************************************************
   172					;* RPUT/RGET - Multiple put/get
   173					;#********************************************************************
   174
   175						DEFINE	RPUT (R0,R1<-1>,R2<-1>,R3<-1>,R4<-1>,R5<-1>,R6<-1>,R7<-1>,R8<-1>,R9<-1>)<
   176						PUT	R0
   177						XLIST
   178						IFGE R1,<PUT	R1>
   179						IFGE R2,<PUT	R2>
   180						IFGE R3,<PUT	R3>
   181						IFGE R4,<PUT	R4>
   182						IFGE R5,<PUT	R5>
   183						IFGE R6,<PUT	R6>
   184						IFGE R7,<PUT	R7>
   185						IFGE R8,<PUT	R8>
   186						IFGE R9,<PUT	R9>
   187						LIST>
   188
   189						DEFINE	RGET (R0,R1<-1>,R2<-1>,R3<-1>,R4<-1>,R5<-1>,R6<-1>,R7<-1>,R8<-1>,R9<-1>)<
   190						GET	R0
   191						XLIST
   192						IFGE R1,<GET	R1>
   193						IFGE R2,<GET	R2>
   194						IFGE R3,<GET	R3>
   195						IFGE R4,<GET	R4>
   196						IFGE R5,<GET	R5>
   197						IFGE R6,<GET	R6>
   198						IFGE R7,<GET	R7>
   199						IFGE R8,<GET	R8>
   200						IFGE R9,<GET	R9>
   201						LIST>
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 6
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0131

   202
   203					;#********************************************************************
   204					;* Test descriptor entry generator macros
   205					;#********************************************************************
   206
   207			000003			TENLEN==3			; length of test descriptor entry
   208
   209						DEFINE	TEST	(TADD,TMASK,TMCODE,TDESC)<
   210						XLIST
   211						TMASK!TADD
   212						TMCODE,,[ASCIZ ^TDESC^]
   213						LIST>
   214
   215
   216					;#********************************************************************
   217					;* Network Definitions
   218					;#********************************************************************
   219
   220			000001			E1==1
   221			000002			E2==2
   222			000003			E3==3
   223			000004			E4==4
   224			000005			E5==5
   225			000006			E6==6
   226			000007			E7==7
   227			000010			E8==^D8
   228			000011			E9==^D9
   229			000012			E10==^D10
   230			000013			E11==^D11
   231			000014			E12==^D12
   232			000015			E13==^D13
   233			000016			E14==^D14
   234			000017			E15==^D15
   235			000020			E16==^D16
   236			000021			E17==^D17
   237			000022			E18==^D18
   238			000023			E19==^D19
   239			000024			E20==^D20
   240			000025			E21==^D21
   241			000026			E22==^D22
   242			000027			E23==^D23
   243			000030			E24==^D24
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 7
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0132

   244
   245			000031			M1==^D25
   246			000032			M2==^D26
   247			000033			M3==^D27
   248			000034			M4==^D28
   249			000035			M5==^D29
   250			000036			M6==^D30
   251			000037			M7==^D31
   252			000040			M8==^D32
   253			000041			M9==^D33
   254			000042			M10==^D34
   255			000043			M11==^D35
   256			000044			M12==^D36
   257			000045			M13==^D37
   258			000046			M14==^D38
   259			000047			M15==^D39
   260			000050			M16==^D40
   261			000051			M17==^D41
   262			000052			M18==^D42
   263			000053			M19==^D43
   264
   265			000054			C1==^D44
   266			000055			C2==^D45
   267			000056			C3==^D46
   268			000057			C4==^D47
   269			000060			C5==^D48
   270			000061			C6==^D49
   271			000062			C7==^D50
   272			000063			C8==^D51
   273			000064			C9==^D52
   274			000065			C10==^D53
   275			000066			C11==^D54
   276			000067			C12==^D55
   277			000070			C13==^D56
   278			000071			C14==^D57
   279			000072			C15==^D58
   280			000073			C16==^D59
   281			000074			C17==^D60
   282			000075			C18==^D61
   283			000076			C19==^D62
   284			000077			C20==^D63
   285			000100			C21==^D64
   286			000101			C22==^D65
   287			000102			C23==^D66
   288			000103			C24==^D67
   289
   290		400000	000000			MLAST==1B0
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 8
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0133

   291
   292					;#********************************************************************
   293					;* SSTABLE - Single step table entry generator macro
   294					;
   295					; SSLAST - No arguments used
   296					; SSSTRT - Arguments:	ARG1 - # ssteps
   297					;			ARG2 - Start address
   298					;			ARG3 - End address
   299					; SSCONT - Arguments:   ARG1 - # ssteps
   300					;			ARG2 - End address
   301					; SSCALL - Argument:  ARG1 - Routine address
   302					; SSCHK -- Argument:  ARG1 - Routine address
   303					; SSJRST - Argument:  ARG1 - Table address
   304					;#********************************************************************
   305
   306						DEFINE	STABLE	(CMD,ARG1,ARG2,ARG3)<
   307						IFE CMD,<0>				; SSLAST
   308						IFE CMD-1,<1B2!ARG1_^D24!ARG2_^D12!ARG3>; SSTRT
   309						IFE CMD-2,<2B2!ARG1_^D24!ARG2>		; SSCONT
   310						IFE CMD-3,<3B2!ARG1>			; SSCALL
   311						IFE CMD-4,<4B2!ARG1>			; SSCHK
   312						IFE CMD-5,<5B2!ARG1>>			; SSJRST
   313
   314
   315					;#********************************************************************
   316					;* ATABLE - Single step table entry generator macro (with EBUF checking)
   317					;
   318					; This is same as STABLE except that an additional word is used to
   319					; save the correct EBUF contents.
   320					;#********************************************************************
   321
   322						DEFINE	ATABLE	(CMD,ARG1,ARG2,ARG3,ARG4<0>)<
   323						IFE CMD,<0>				; SSLAST
   324						IFE CMD-1,<1B2!ARG1_^D24!ARG2_^D12!ARG3>; SSTRT
   325						IFE CMD-2,<2B2!ARG1_^D24!ARG2>		; SSCONT
   326						IFE CMD-3,<3B2!ARG1>			; SSCALL
   327						IFE CMD-4,<4B2!ARG1>			; SSCHK
   328						IFE CMD-5,<5B2!ARG1>			; SSJRST
   329						IFE CMD-1,<ARG4>
   330						IFE CMD-2,<ARG4>>
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 9
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0134

   331
   332					;#********************************************************************
   333					;* TTABLE - Test execute table entry generator macro
   334					;
   335					; This is same as STABLE except for different command definitions.
   336					;#********************************************************************
   337
   338						DEFINE	TTABLE	(CMD,ARG1,ARG2<0>)<
   339						IFE CMD,<0>			; TLAST
   340						IFE CMD-1,<1B3!ARG1>		; TSTART
   341						IFE CMD-2,<2B3!ARG1>		; TCONT
   342						IFE CMD-3,<3B3!ARG1>		; TCALL
   343						IFE CMD-4,<4B3!ARG1>		; TCALLC
   344						IFE CMD-5,<5B3!ARG1_^D18!ARG2>	; TCHECK
   345						IFE CMD-6,<6B3!ARG1>		; TJRST
   346						IFE CMD-7,<7B3!ARG1>		; TEXIT
   347						IFE CMD-10,<10B3!ARG1>>		; TSSTAR
   348
   349
   350					;#********************************************************************
   351					;* CTABLE - Data test execute table entry generator macro
   352					;#********************************************************************
   353
   354						DEFINE	CTABLE	(CMD,ARG1,ARG2)<
   355						IFE CMD,<0>			; CLAST
   356						IFE CMD-1,<1B3!ARG1_^D18!ARG2>	; CSETRD
   357						IFE CMD-2,<2B3!ARG1_^D18!ARG2>	; CSETWR
   358						IFE CMD-3,<3B3!ARG1_^D18!ARG2>	; CSETRW
   359						IFE CMD-4,<4B3!ARG1>		; CSTART
   360						IFE CMD-5,<5B3!ARG1>		; CCALL
   361						IFE CMD-6,<6B3!ARG1>		; CCALLC
   362						IFE CMD-7,<7B3!ARG1_^D18!ARG2>	; CWAIT
   363						IFE CMD-10,<10B3>		; CCOMP
   364						IFE CMD-11,<11B3!ARG1>		; CJRST
   365						IFE CMD-12,<12B3>>		; CEXIT
   366
   367					;#********************************************************************
   368					;* ITABLE - Interrupt test execute table entry generator macro
   369					;#********************************************************************
   370
   371						DEFINE	ITABLE	(CMD,ARG1,ARG2)<
   372						IFE CMD,<0>			; ILAST
   373						IFE CMD-1,<1B3!ARG1_^D18!ARG2>	; ISETEX
   374						IFE CMD-2,<2B3!ARG1_^D18!ARG2>	; ISETDE
   375						IFE CMD-3,<3B3!ARG1_^D18!ARG2>	; ISETID
   376						IFE CMD-4,<4B3!ARG1_^D18!ARG2>	; ISETIN
   377						IFE CMD-5,<5B3!ARG1_^D18!ARG2>	; ISETEI
   378						IFE CMD-6,<6B3!ARG1>		; ICALL
   379						IFE CMD-7,<7B3!ARG1>		; ICALLC
   380						IFE CMD-10,<10B3!ARG1>		; IWAIT
   381						IFE CMD-11,<11B3!ARG1>		; IJRST
   382						IFE CMD-12,<12B3!ARG1>		; ISTART
   383						IFE CMD-13,<13B3>>		; IEXIT
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 10
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0135

   384
   385					;#********************************************************************
   386					;* Test Dispatch Table Definitions
   387					;#********************************************************************
   388
   389		400000	000000			EBUS==1B0			; EBus tests
   390		200000	000000			MPROC==1B1			; Mproc tests
   391		100000	000000			CBUS==1B2			; CBus tests
   392		040000	000000			SEQ==1B3			; 2910 tests
   393		020000	000000			ALU==1B4			; 2901 tests
   394		010000	000000			MBUS==1B5			; MBUS tests
   395		770000	000000			ALL==77B5			; All tests
   396
   397			000000			ZEBUS==0B17			; EBUS class test
   398		000001	000000			ZSEQ==1B17			; SEQ class test
   399		000002	000000			ZALU==2B17			; ALU class test
   400		000003	000000			ZMPROC==3B17			; MPROC class test
   401		000004	000000			ZCBUS==4B17			; CBUS class test
   402
   403		001000	000000			TUSER==1B8			; cannot run test in user mode
   404		000400	000000			NDMP==1B9			; need Mproc module to run
   405		000200	000000			NDCB==1B10			; need Mproc & CBus module to run
   406		000100	000000			TDENA==1B11			; test dispatch enable (0-yes,1-no)
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 11
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0136

   407
   408					;#*********************************************************************
   409					;* Port CONI/CONO CSR Bit Assignments
   410					;#*********************************************************************
   411
   412		400000	000000			PORTP==1B0			; port present
   413		200000	000000			CSRRQS==1B1			; diag request CSR
   414		100000	000000			CSRCHN==1B2			; diag CSR changed
   415		040000	000000			DINIT==1B3			; diag initialized
   416		010000	000000			RQINT==1B5			; request interrupt
   417		004000	000000			CRAMPE==1B6			; CRAM parity error
   418		002000	000000			MBERR==1B7			; MBUS error
   419		000100	000000			IDLE==1B11			; IDLE loop
   420		000040	000000			DCOMP==1B12			; disable complete
   421		000020	000000			ECOMP==1B13			; enable complete
   422			400000			PCLEAR==1B18			; port clear
   423			200000			TSTEBF==1B19			; diag test EBUF
   424			100000			GENEPE==1B20			; diag generate EBUS parity error
   425			040000			SELLAR==1B21			; diag select LAR/SQR
   426			020000			SINCYC==1B22			; diag single cycle
   427			010000			SPARE1==1B23			; spare bit
   428			004000			EBUSPE==1B24			; EBUS parity error
   429			002000			FQUERR==1B25			; free queue error
   430			001000			MVRERR==1B26			; data mover error
   431			000400			CMDQAV==1B27			; command queue available
   432			000200			RESQAV==1B28			; response queue available
   433			000100			SPARE2==1B29			; spare bit
   434			000040			PDSABL==1B30			; disable
   435			000020			PENABL==1B31			; enable
   436			000010			MPRUN==1B32			; mproc run
   437			000004			PIA00==1B33			; PIA field bit 0
   438			000002			PIA01==1B34			; PIA field bit 1
   439			000001			PIA02==1B35			; PIA field bit 2
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 12
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0137

   440
   441					;#*********************************************************************
   442					;* OPDEF Definitions
   443					;#*********************************************************************
   444
   445		104000	000000			OPDEF	JSYS    [104000,,0]	; TOPS-20 command
   446		104000	000100			OPDEF	CFIBF   [JSYS 100]	; clear TOPS-20 input buffer
   447
   448		001000	000000			OPDEF	PNTOCC	[1B8]		; print n digits leading 0's suppressed
   449		002000	000000			OPDEF	PDECF   [2B8]		; force print decimal number
   450		006000	000000			OPDEF	PDEC    [6B8]		; print decimal number
   451		007000	000000			OPDEF	ALTCHK  [7B8]		; check for altmode character typed
   452		027000	000000			OPDEF	SCOPER	[27B8]		; error handler UUO
   453
   454			000000*			LUUO1==.PNTOC			; service routine for n digit octal
   455			000000*			LUUO2==PPDECF			; force print decimal number
   456			000000*			LUUO6==PPDEC			; print decimal number
   457			000000*			LUUO7==ALTCHH			; check if an altmode was typed
   458			000000*			LUUO27=SCOPE1			; scope loop/error print routine
   459
   460
   461					;#*********************************************************************
   462					;* Bit Definitions For "SCOPE" UUO Handler - Error Message Printer
   463					;#*********************************************************************
   464
   465		100000	000000			MSG==1B2			; ASCIZ message
   466		200000	000000			CALL==2B2			; call special print routine
   467		300000	000000			GOTO==3B2			; goto (new address of error table)
   468		040000	000000			TXNOT==1B3			; print/call entry if TXTINH not set
   469		020000	000000			TXYES==1B4			; print/call entry if TXTINH set
   470		060000	000000			TXALL==3B4			; print/call entry always
   471		010000	000000			LAST==1B5			; last table entry
   472
   473
   474					;#*********************************************************************
   475					;* Bit Definitions For Microcode executer routine (MEXEC)
   476					;#*********************************************************************
   477
   478			000000			SSLAST==0			; last entry
   479			000001			SSSTRT==1			; single step with start addr given
   480			000002			SSCONT==2			; single step without start addr given
   481			000003			SSCALL==3			; call a routine
   482			000004			SSCHK==	4			; call a routine and exit + 1 if test
   483										;   is complete, + 2 if not.
   484			000005			SSJRST==5			; go to new table location
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 13
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0138

   485
   486					;#*********************************************************************
   487					;* Bit Definitions For Test executer routine (TEXEC)
   488					;#*********************************************************************
   489
   490			000000			TLAST==0			; last entry
   491			000001			TSTART==1			; start port at a particular address
   492			000002			TCONT==2			; continue from where stopped
   493			000003			TCALL==3			; call routine
   494			000004			TCALLC==4			; call routine and conditionally
   495										;   exit test 
   496			000005			TCHECK==5			; check CSR for completion code
   497			000006			TJRST==6			; go to new table location
   498			000007			TEXIT==7			; exit test (if any error yet)
   499			000010			TSSTAR==10			; start port at a particular address
   500										;   without doing a port clear first
   501
   502
   503					;#*********************************************************************
   504					;* Bit Definitions For Data Test executer routine (CEXEC)
   505					;#*********************************************************************
   506
   507			000000			CLAST==0			; last entry
   508			000001			CSETRD==1			; set up read data transfer
   509			000002			CSETWR==2			; set up write data transfer
   510			000003			CSETRW==3			; set up read/write data transfer
   511			000004			CSTART==4			; start port at particular address
   512			000005			CCALL==5			; call routine
   513			000006			CCALLC==6			; call routine/conditionally exit test 
   514			000007			CWAIT==7			; wait for DT completion
   515			000010			CCOMP==10			; compare data buffer
   516			000011			CJRST==11			; go to new table location
   517			000012			CEXIT==12			; exit test (if any error yet)
   518
   519
   520					;#*********************************************************************
   521					;* Bit Definitions For Interrupt Test executer routine (IEXEC)
   522					;#*********************************************************************
   523
   524			000000			ILAST==0			; last entry
   525			000001			ISETEX==1			; set up examine
   526			000002			ISETDE==2			; set up deposit
   527			000003			ISETID==3			; set up increment/decrement
   528			000004			ISETIN==4			; set up interrupt
   529			000005			ISETEI==5			; set up examine/increment
   530			000006			ICALL==6			; call routine
   531			000007			ICALLC==7			; call routine/conditionally exit test 
   532			000010			IWAIT==10			; wait for interrupt completion
   533			000011			IJRST==11			; go to new table location
   534			000012			ISTART==12			; start port at particular address
   535			000013			IEXIT==13			; exit test (if any error yet)
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 14
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0139

   536
   537					;#********************************************************************
   538					;* Microword Field Definitions
   539					;
   540					;  These definitions are arranged for the macro which generates pairs
   541					;  of microwords as (addr & parity flags & left 20 bits,right 36 bits).
   542					;  These are of the form:
   543					;
   544					;  Word 1:  Bits 00-11 - Microword load address (0000-7777)
   545					;		 12-35 - Bits 0-23 of microword to load
   546					;  Word 2:  Bits 00-34 - Bits 24-57,59 of microword to load
   547					;	         35 ---- Force Bad Parity flag
   548					;
   549					;  In detail:
   550					;
   551					;  Word 1:  Bits 00-11 - Microword load address
   552					;		 12-23 - MWJMPFLD
   553					;		 24    - MWPAR
   554					;		 25    - MWOUTPUTENA
   555					;		 26-35 - MWMGCFLD
   556					;
   557					;  Word 2:  Bits 00-02 - MWSORCEFLD
   558					;		 03-05 - MWFUNCTFLD
   559					;		 06-08 - MWDESTFLD
   560					;		 09    - MWCCENA
   561					;		 10    - MWRAMODE
   562					;		 11-14 - MWPORTAFLD
   563					;		 15-18 - MWPORTBFLD
   564					;		 19-23 - MWSKIPFLD
   565					;		 24-26 - MWBUSCTLFLD
   566					;		 27    - MWCARRY
   567					;		 28-31 - MWCTRLFLD
   568					;		 32    - MWTIMEFLD
   569					;		 33    - MWSPARE00
   570					;		 34    - MWMARKBIT
   571					;
   572					;		 35    - Force bad parity flag
   573					;
   574					;  The microwords are generated using a set of field  definitions
   575					;  describing how the two words are to be constructed. Each field
   576					;  is defined as a bit position in the first word, a bit position
   577					;  in the right word, and a magnitude describing the size  of the
   578					;  field.  These are defined as follows:
   579					;
   580					;      .Lxxxx - Specifies the rightmost bit position of the field
   581					;		in the left word. If the field does not appear in
   582					;		left word, this will be zero.
   583					;
   584					;      .Rxxxx - Specifies the rightmost bit position of the field
   585					;		in the right word.  If the field  does not appear
   586					;		in right word, this will be zero.
   587					;
   588					;      .Mxxxx - Specifies the maximum magnitude of the  field  in
   589					;		the word.
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 15
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0140

   590
   591					;  The microwords are generated as follows:
   592					;
   593					;  Left word = ((value AND .Mxxxx) times .Lxxxx) ! next field ...
   594					;  Right word = ((value AND .Mxxxx) times .Rxxxx) ! next field ...
   595					;
   596					;  Parity is calculated prior to loading into the CRAM.  The parity
   597					;  bit  may be specified explicitly by specifying EVEN or ODD.  The
   598					;  microcode  loader  will  ensure  that the word has the specified
   599					;  parity.  If not specified, the correct parity will be calculated.
   600					;
   601					;  Sample microword definitions:
   602					;
   603					;  (a) Specify:  J 1000, OUTENA, SORCE fld = 2, DEST fld = 3
   604					;		 load address = 120
   605					;
   606					;      Type:     MWORD	<ADDR=120,J=1000,OENA,SORC=2,DEST=3>
   607					;#********************************************************************
   608
   609		000100	000000			.LADDR==1B11			; MW load address
   610			000000			.RADDR==0
   611			007777			.MADDR==7777
   612
   613			010000			.LJ==1B23			; MW jump field         (00:11)
   614			000000			.RJ==0
   615			007777			.MJ==7777
   616
   617			004000			.LPAR==1B24			; MW parity		(12:12)
   618			000000			.RPAR==0
   619			000001			.MPAR==1
   620
   621			002000			.LOENA==1B25			; MW output enable      (13:13)
   622			000000			.ROENA==0
   623			000001			.MOENA==1
   624
   625			000001			.LMGC==1B35			; MW magic number field (14:23)
   626			000000			.RMGC==0
   627			001777			.MMGC==1777
   628
   629			000000			.LSORC==0			; MW source field       (24:26)
   630		100000	000000			.RSORC==1B2
   631			000007			.MSORC==7
   632
   633			000000				.LSAQ==0		; Source = AQ
   634			000000				.RSAQ==0B2
   635			000007				.MSAQ==7
   636
   637			000000				.LSAB==0		; Source = AB
   638		100000	000000				.RSAB==1B2
   639			000007				.MSAB==7
   640
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 16
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0141

   641			000000				.LS0Q==0		; Source = 0Q
   642		200000	000000				.RS0Q==2B2
   643			000007				.MS0Q==7
   644
   645			000000				.LS0B==0		; Source = 0B
   646		300000	000000				.RS0B==3B2
   647			000007				.MS0B==7
   648
   649			000000				.LS0A==0		; Source = 0A
   650		400000	000000				.RS0A==4B2
   651			000007				.MS0A==7
   652
   653			000000				.LSDA==0		; Source = DA
   654		500000	000000				.RSDA==5B2
   655			000007				.MSDA==7
   656
   657			000000				.LSDQ==0		; Source = DQ
   658		600000	000000				.RSDQ==6B2
   659			000007				.MSDQ==7
   660
   661			000000				.LSD0==0		; Source = D0
   662		700000	000000				.RSD0==7B2
   663			000007				.MSD0==7
   664
   665			000000			.LFUNC==0			; MW function field     (27:29)
   666		010000	000000			.RFUNC==1B5
   667			000007			.MFUNC==7
   668
   669			000000				.LPLUS==0		; R PLUS S function
   670			000000				.RPLUS==0B5
   671			000007				.MPLUS==7
   672
   673			000000				.LSMIN==0		; R MINUS S function
   674		010000	000000				.RSMIN==1B5
   675			000007				.MSMIN==7
   676
   677			000000				.LRMIN==0		; R MINUS S function
   678		020000	000000				.RRMIN==2B5
   679			000007				.MRMIN==7
   680
   681			000000				.LOR==0			; R OR S function
   682		030000	000000				.ROR==3B5
   683			000007				.MOR==7
   684
   685			000000				.LAND==0		; R AND S function
   686		040000	000000				.RAND==4B5
   687			000007				.MAND==7
   688
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 17
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0142

   689			000000				.LNAND==0		; NOT R AND S function
   690		050000	000000				.RNAND==5B5
   691			000007				.MNAND==7
   692
   693			000000				.LXOR==0		; R XOR S function
   694		060000	000000				.RXOR==6B5
   695			000007				.MXOR==7
   696
   697			000000				.LXNOR==0		; R XNOR S function
   698		070000	000000				.RXNOR==7B5
   699			000007				.MXNOR==7
   700
   701			000000			.LD==0				; MW destination field  (30:32)
   702		001000	000000			.RD==1B8
   703			000007			.MD==7
   704
   705			000000			.LCENA==0			; MW CC enable          (33:33)
   706		000400	000000			.RCENA==1B9
   707			000001			.MCENA==1
   708
   709			000000				.LDISA==0		; MW CC disable
   710			000000				.RDISA==0B9
   711			000001				.MDISA==1
   712
   713			000000				.LENA==0		; MW CC enable
   714		000400	000000				.RENA==1B9
   715			000001				.MENA==1
   716
   717			000000			.LRAM==0			; MW RAM mode           (34:34)
   718		000200	000000			.RRAM==1B10
   719			000001			.MRAM==1
   720
   721			000000			.LA==0				; MW Port A field       (35:38)
   722		000010	000000			.RA==1B14
   723			000017			.MA==17
   724
   725			000000			.LB==0				; MW Port B field       (39:42)
   726			400000			.RB==1B18
   727			000017			.MB==17
   728
   729			000000			.LSK==0				; MW skip field         (43:47)
   730			010000			.RSK==1B23
   731			000037			.MSK==37
   732
   733			000000				.LCCON==0		; Select CC 'on' (CCCSRCHNG)
   734			030000				.RCCON==03B23
   735			000037				.MCCON==37
   736
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 18
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0143

   737			000000				.LCCOF==0		; Select CC 'off' (CCGRNTCSR)
   738			010000				.RCCOF==01B23
   739			000037				.MCCOF==37
   740
   741			000000				.LCCCA==0		; Select CCCBUSAVAIL
   742			000000				.RCCCA==0B23
   743			000037				.MCCCA==37
   744
   745			000000				.LCCGC==0		; Select CCGRNTCSR
   746			010000				.RCCGC==01B23
   747			000037				.MCCGC==37
   748
   749			000000				.LCCFZ==0		; Select CCFEQ0
   750			020000				.RCCFZ==02B23
   751			000037				.MCCFZ==37
   752
   753			000000				.LCCCC==0		; Select CCCSRCHNG
   754			030000				.RCCCC==03B23
   755			000037				.MCCCC==37
   756
   757			000000				.LCCEB==0		; Select CCEBPARERR
   758			040000				.RCCEB==4B23
   759			000037				.MCCEB==37
   760
   761			000000				.LCCAF==0		; Select CCRCVRBUFAFUL
   762			050000				.RCCAF==5B23
   763			000037				.MCCAF==37
   764
   765			000000				.LCCBF==0		; Select CCRCVRBUFBFUL
   766			060000				.RCCBF==6B23
   767			000037				.MCCBF==37
   768
   769			000000				.LCCXA==0		; Select CCXMTRATTN
   770			070000				.RCCXA==7B23
   771			000037				.MCCXA==37
   772
   773			000000				.LCCER==0		; Select CCEBUSRQST
   774			100000				.RCCER==10B23
   775			000037				.MCCER==37
   776
   777			000000				.LCCIA==0		; Select CCINTRACTIVE
   778			110000				.RCCIA==11B23
   779			000037				.MCCIA==37
   780
   781			000000				.LCCMB==0		; Select CCMBSIGN
   782			120000				.RCCMB==12B23
   783			000037				.MCCMB==37
   784
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 19
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0144

   785			000000				.LCCMP==0		; Select CCMVRPARCHK
   786			130000				.RCCMP==13B23
   787			000037				.MCCMP==37
   788
   789			000000				.LCCCP==0		; Select CCCBUSPARERR
   790			140000				.RCCCP==14B23
   791			000037				.MCCCP==37
   792
   793			000000				.LCCPP==0		; Select CCPLIPARERR
   794			150000				.RCCPP==15B23
   795			000037				.MCCPP==37
   796
   797			000000				.LCCCE==0		; Select CCCHANERR
   798			160000				.RCCCE==16B23
   799			000037				.MCCCE==37
   800
   801			000000				.LCCLW==0		; Select CCCBLSTWD
   802			170000				.RCCLW==17B23
   803			000037				.MCCLW==37
   804
   805			000000				.LLSAD==0		; Load SAD Reg
   806			200000				.RLSAD==20B23
   807			000037				.MLSAD==37
   808
   809			000000				.LSKMB==0		; Select MBUS field
   810			210000				.RSKMB==21B23
   811			000037				.MSKMB==37
   812
   813			000000				.LLDLM==0		; Load Local Mem
   814			230000				.RLDLM==23B23
   815			000037				.MLDLM==37
   816
   817			000000				.LRDLM==0		; Read Local Mem
   818			220000				.RRDLM==22B23
   819			000037				.MRDLM==37
   820
   821			000000				.LSKCN==0		; Select constant field
   822			240000				.RSKCN==24B23
   823			000037				.MSKCN==37
   824
   825			000000			.LBUS==0			; MW bus control field  (48:50)
   826			001000			.RBUS==1B26
   827			000007			.MBUS==7
   828
   829			000000				.LSELP==0		; Select PLI field
   830			001000				.RSELP==1B26
   831			000007				.MSELP==7
   832
   833			000000				.LSELM==0		; Select Mbus field
   834			002000				.RSELM==2B26
   835			000007				.MSELM==7
   836
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 20
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0145

   837			000000				.LSELF==0		; Select Fmtr field
   838			003000				.RSELF==3B26
   839			000007				.MSELF==7
   840
   841			000000				.LSELC==0		; Select Cbus field
   842			004000				.RSELC==4B26
   843			000007				.MSELC==7
   844
   845			000000				.LSELE==0		; Select Ebus field
   846			005000				.RSELE==5B26
   847			000007				.MSELE==7
   848
   849			000000			.LCRY==0			; MW carry              (51:51)
   850			000400			.RCRY==1B27
   851			000001			.MCRY==1
   852
   853			000000			.LOP==0				; MW control field      (52:55)
   854			000020			.ROP==1B31
   855			000017			.MOP==17
   856
   857			000000				.LJZ==0			; Jump zero instruction
   858			000000				.RJZ==00B31
   859			000017				.MJZ==17
   860
   861			000000				.LCJS==0		; Conditional JSB pipeline instruction
   862			000020				.RCJS==01B31
   863			000017				.MCJS==17
   864
   865			000000				.LJMAP==0		; Jump MAP instruction
   866			000040				.RJMAP==02B31
   867			000017				.MJMAP==17
   868
   869			000000				.LCJP==0		; Conditional jump pipeline instruction
   870			000060				.RCJP==03B31
   871			000017				.MCJP==17
   872
   873			000000				.LPUSH==0		; Push/cond load counter instruction
   874			000100				.RPUSH==04B31
   875			000017				.MPUSH==17
   876
   877			000000				.LJSRP==0		; Cond JSB R/Pipeline instruction
   878			000120				.RJSRP==05B31
   879			000017				.MJSRP==17
   880
   881			000000				.LCJV==0		; Conditional jump vector instruction
   882			000140				.RCJV==06B31
   883			000017				.MCJV==17
   884
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 21
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0146

   885			000000				.LJRP==0		; Cond jump R/Pipeline instruction
   886			000160				.RJRP==07B31
   887			000017				.MJRP==17
   888
   889			000000				.LRFCT==0		; Repeat loop, counter#0 instruction
   890			000200				.RRFCT==10B31
   891			000017				.MRFCT==17
   892
   893			000000				.LRPCT==0		; Repeat pipeline, counter#0 instr
   894			000220				.RRPCT==11B31
   895			000017				.MRPCT==17
   896
   897			000000				.LCRTN==0		; Conditional RTN instruction
   898			000240				.RCRTN==12B31
   899			000017				.MCRTN==17
   900
   901			000000				.LCJPP==0		; Cond jump pipeline and pop instr
   902			000260				.RCJPP==13B31
   903			000017				.MCJPP==17
   904
   905			000000				.LLDCT==0		; Load counter and continue instruction
   906			000300				.RLDCT==14B31
   907			000017				.MLDCT==17
   908
   909			000000				.LLOOP==0		; Test end loop instruction
   910			000320				.RLOOP==15B31
   911			000017				.MLOOP==17
   912
   913			000000				.LCONT==0		; Continue instruction
   914			000340				.RCONT==16B31
   915			000017				.MCONT==17
   916
   917			000000				.LTWB==0		; Three way branch instruction
   918			000360				.RTWB==17B31
   919			000017				.MTWB==17
   920
   921			000000			.LTIM==0			; time field
   922			000010			.RTIM==1B32
   923			000001			.MTIM==1
   924
   925			000000			.LSPAR==0			; 1st spare bit
   926			000004			.RSPAR==1B33
   927			000001			.MSPAR==1
   928
   929			000000			.LMARK==0			; mark bit
   930			000002			.RMARK==1B34
   931			000001			.MMARK==1
   932
   933			000000			.LBAD==0			; force bad parity
   934			000001			.RBAD==1B35
   935			000001			.MBAD==1
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 22
DFPTAT	MAC	18-Apr-83 11:33		DFPTA TITLE FILE                                                                   SEQ 0147

   936
   937					;#********************************************************************
   938					;* Microword Macros (Note: If ADDR not specified, 'ADDR'+1 is used).
   939					;
   940					;  Left word = ((value AND .Mxxxx) times .Lxxxx) ! next field ...
   941					;  Right word = ((value AND .Mxxxx) times .Rxxxx) ! next field ...
   942					;
   943					;  Samples:	MWORD	<J=1000,OENA,SORC=2,DEST=3>
   944					;		MWORD	<J=0,OENA,SORC=2,DEST=3>
   945					;#********************************************************************
   946
   947					; CALC - Insert field value into the microwords under construction
   948
   949						DEFINE	CALC($ARG1)<
   950						IFE .L'$ARG1-1B11,<%ADDR==$ARG2>
   951						IFN .L'$ARG1-1B11,<%ML=%ML!<<$ARG2&.M'$ARG1>*.L'$ARG1>
   952								   %MR=%MR!<<$ARG2&.M'$ARG1>*.R'$ARG1>>>
   953
   954					; CONCAT - Build string argument
   955
   956						DEFINE	CONCAT($A)<
   957						$B=<SIXBIT /$A/>_-36		; get right justified character in
   958						$CHR=$CHR_6+$B>			;   octal and accumulate in string
   959
   960					; FIELD - Decode argument in the form XXXX=NNNN into XXXX and NNNN
   961
   962						DEFINE	FIELD($ARG)<
   963						$CHR=0				; init string argument
   964						$GARG=0				; init numeric argument
   965						IRPC $ARG,<IFN $GARG,<$ARG2=$ARG2*8+$ARG>
   966							  IFIDN "=",$ARG,<$GARG=1
   967									 $ARG2=0>
   968							  IFE $GARG,<CONCAT $ARG>
   969							  IFE $GARG,<$ARG2=1>>
   970						CALC \'$CHR>			; enter into microword
   971
   972					; MWORD - Build microwords
   973
   974						DEFINE	MWORD ($FLD)<
   975						%ML==0				; init left word
   976						%MR==0				; init right word
   977						IRP $FLD,<DEFINE MFLD($A)<FIELD $A>
   978							 MFLD	$FLD>
   979						%ML==%ML!%ADDR_^D24
   980						%ADDR==%ADDR+1
   981						EXP	%ML,%MR>		; done
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 1
PARAM	KLM	18-Sep-79 17:16		*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979                              SEQ 0148

   982					SUBTTL	*PARAM*	CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979
   983
   984					DEFINE	S,<; *********************************************************************>
   985
   986					; **********************************************************************
   987					;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
   988					;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
   989					;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
   990					; **********************************************************************
   991
   992			400000		ABORT==	400000			;ABORT PROGRAM ON PASS COMPLETION
   993			200000		RSTART==200000			;RESTART TEST, PRINT TOTALS
   994			100000		TOTALS==100000			;PRINT TOTALS, CONTINUE
   995
   996			040000		NOPNT==	040000			;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
   997			020000		PNTLPT==020000			;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
   998			010000		DING==	010000			;RING BELL ON ERROR
   999
  1000			004000		LOOPER==004000			;ENTER EXERCISE/CHECK LOOP ON ERROR
  1001			002000		ERSTOP==002000			;HALT ON TEST ERROR
  1002			001000		PALERS==001000			;PRINT ALL ERRORS
  1003
  1004			000400		RELIAB==000400			;RELIABILITY MODE
  1005			000200		TXTINH==000200			;INHIBIT ERROR TEXT
  1006			000100		INHPAG==000100			;INHIBIT PAGING
  1007
  1008			000040		MODDVC==000040			;MODIFY DEVICE CODE
  1009			000020		INHCSH==000020			;INHIBIT CACHE
  1010			000010		OPRSEL==000010			;OPERATOR SELECTION
  1011
  1012			000004		CHAIN==	000004			;CHAIN CONTROL SWITCH
  1013
  1014			000002		KAHZ50==000002			;KA10 50 HERTZ POWER
  1015
  1016									;SWITCH 17 RESERVED !!!
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 2
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0149

  1017					SUBTTL	*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979
  1018
  1019					; **********************************************************************
  1020					;*SPECIAL SUBPROGRAM LINKAGES
  1021					; **********************************************************************
  1022
  1023			027772		FSELNK=	27772	;FILE SELECT LINK
  1024			027773		FRDLNK=	27773	;FILE READ LINK
  1025			027774		LDLNK=	27774	;LOAD LINKAGE ADDRESS
  1026			027775		DDTLNK=	27775	;DDT LINKAGE ADDRESS
  1027			027776		MODLNK=	27776	;OPERATIONAL MODE CHECK LINKAGE ADDRESS
  1028			027777		SUBLNK=	27777	;SUBROUTINE LINKAGE ADDRESS
  1029
  1030					; **********************************************************************
  1031					;*SPECIAL SUBROUTINE FATAL HALTS
  1032					;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
  1033					; **********************************************************************
  1034
  1035					;ADDRESS   TAG	REASON
  1036					;---------------------
  1037
  1038					; 1010 	NOEXEC	;PROGRAM NOT CODED FOR EXEC MODE OPERATION
  1039					; 1011  PLERR	;FATAL PUSH LIST POINTER ERROR
  1040					; 1012  PLERR1	;INITIAL PUSH LIST POINTER ERROR
  1041					; 1013  MUOERR	;MUUO WITH LUUO HANDLER WIPED OUT
  1042					; 1014  DTEBER	;DTE20 INTERRUPT WITHOUT DOORBELL
  1043					; 1015  DTECER	;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
  1044					; 1016  CPIERR	;CPU INITIALIZATION ERROR
  1045					; 1017  EOPERR	;END OF PROGRAM ERROR
  1046					; 1020  LUOERR	;INTERRUPT WITH LUUO HANDLER WIPED OUT
  1047
  1048					; **********************************************************************
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 3
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0150

  1049					; **********************************************************************
  1050					;OPERATOR DEFINITIONS (NON-UUO'S)
  1051					; **********************************************************************
  1052
  1053		260740	000000		OPDEF	GO	[PUSHJ	P,]	;SUBROUTINE CALL
  1054		263740	000000		OPDEF	RTN	[POPJ	P,]	;SUBROUTINE RETURN 
  1055		261740	000000		OPDEF	PUT	[PUSH	P,]	;PUT DATA ON PUSH LIST
  1056		262740	000000		OPDEF	GET	[POP	P,]	;GET DATA FROM PUSH LIST 
  1057		254000	000000		OPDEF	PJRST	[JRST	]	;JRST TO ROUTINE THAT RTN'S
  1058		254200	000000		OPDEF	HALT	[JRST	4,]	;DEFINITION FOR DDT
  1059		254100	000000		OPDEF	JRSTF	[JRST	2,]	;DEFINITION FOR DDT
  1060		254500	000000		OPDEF	JEN	[JRST	12,]	;DEFINITION FOR DDT
  1061
  1062					; **********************************************************************
  1063					;SUBROUTINE INITIALIZATION CALL
  1064					; **********************************************************************
  1065
  1066		265000	030011		OPDEF	PGMINT	[JSP	0,SBINIT]	;SUBROUTINE INITIALIZATION
  1067
  1068					; **********************************************************************
  1069					;HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
  1070					; **********************************************************************
  1071
  1072		037640	000004		OPDEF	FATAL	[37B8!15B12!4]	;FATAL PROGRAMMING HALT
  1073		037600	000004		OPDEF	ERRHLT	[37B8!14B12!4]	;PROGRAM ERROR HALT
  1074
  1075					; **********************************************************************
  1076					;TERMINAL INPUT UUO'S
  1077					;ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
  1078					;CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
  1079					; **********************************************************************
  1080
  1081		037000	000003		OPDEF	TTICHR 	[37B8!0B12!3]	;TTY, INPUT ANY CHARACTER
  1082		037040	000003		OPDEF	TTIYES	[37B8!1B12!3]	;TTY, NORMAL RETURN Y
  1083		037100	000003		OPDEF	TTINO	[37B8!2B12!3]	;TTY, NORMAL RETURN N
  1084		037140	000003		OPDEF	TTIOCT	[37B8!3B12!3]	;TTY, INPUT OCTAL WORD
  1085		037200	000003		OPDEF	TTIDEC	[37B8!4B12!3]	;TTY, INPUT DECIMAL WORD
  1086		037240	000003		OPDEF	TTICNV	[37B8!5B12!3]	;TTY, INPUT CONVERTABLE WORD
  1087		037300	000003		OPDEF	TTLOOK	[37B8!6B12!3]	;TTY, KEYBOARD CHECK
  1088		037340	000003		OPDEF	TTALTM	[37B8!7B12!3]	;TTY, ALT-MODE CHECK
  1089		037400	000003		OPDEF	TTSIXB	[37B8!10B12!3]	;TTY, INPUT SIXBIT WORD
  1090		037440	000003		OPDEF	TTYINP	[37B8!11B12!3]	;TTY, IMAGE MODE INPUT
  1091		037500	000003		OPDEF	TTICLR	[37B8!12B12!3]	;TTY, CLEAR INPUT
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 4
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0151

  1092					;TERMINAL OUTPUT UUO'S.
  1093
  1094		037000	000000		OPDEF	PNTA	[37B8!0B12!0]	;PRINT ASCII WORD
  1095		037000	000001		OPDEF	PNTAF	[37B8!0B12!1]	;PRINT ASCII WORD FORCED
  1096		037740	000000		OPDEF	PNTAL	[37B8!17B12!0]	;PRINT ASCIZ LINE
  1097		037740	000001		OPDEF	PNTALF	[37B8!17B12!1]	;PRINT ASCIZ LINE FORCED
  1098		037600	000003		OPDEF	PSIXL	[37B8!14B12!3]	;PRINT SIXBIT'Z LINE
  1099		037640	000003		OPDEF	PSIXLF	[37B8!15B12!3]	;PRINT SIXBIT'Z LINE FORCED
  1100		037000	000000		OPDEF	PNTMSG	[37B8!0B12!0]	;PRINT MESSAGE IMMEDIATE
  1101		037040	000000		OPDEF	PNTMSF	[37B8!1B12!0]	;PRINT MESSAGE IMMEDIATE FORCED
  1102		037100	000000		OPDEF	PSIXM	[37B8!2B12!0]	;PRINT SIXBIT'Z MSG IMMEDIATE
  1103		037200	000000		OPDEF	PSIXMF	[37B8!4B12!0]	;PRINT SIXBIT'Z MSG IMM FORCED
  1104		037000	000000		OPDEF	PNTCI	[37B8!0B12!0]	;PRINT CHARACTER IMMEDIATE
  1105		037040	000000		OPDEF	PNTCIF	[37B8!1B12!0]	;PRINT CHARACTER IMMEDIATE FORCED
  1106		037500	000000		OPDEF	PNTCHR	[37B8!12B12!0]	;PRINT CHARACTER
  1107		037500	000001		OPDEF	PNTCHF	[37B8!12B12!1]	;PRINT CHARACTER FORCED
  1108		037040	000000		OPDEF	PNT1	[37B8!1B12!0]	;PRINT ONE OCTAL DIGIT
  1109		037040	000001		OPDEF	PNT1F	[37B8!1B12!1]	;PRINT 1 OCTAL DIGIT FORCED	
  1110		037100	000000		OPDEF	PNT2	[37B8!2B12!0]	;PRINT TWO OCTAL DIGITS
  1111		037100	000001		OPDEF	PNT2F	[37B8!2B12!1]	;PRINT 2 OCTAL DIGITS FORCED	
  1112		037140	000000		OPDEF	PNT3	[37B8!3B12!0]	;PRINT THREE OCTAL DIGITS
  1113		037140	000001		OPDEF	PNT3F	[37B8!3B12!1]	;PRINT THREE OCTAL DIGITS FORCED	
  1114		037200	000000		OPDEF	PNT4	[37B8!4B12!0]	;PRINT FOUR OCTAL DIGITS
  1115		037200	000001		OPDEF	PNT4F	[37B8!4B12!1]	;PRINT FOUR OCTAL DIGITS FORCED
  1116		037240	000000		OPDEF	PNT5	[37B8!5B12!0]	;PRINT FIVE OCTAL DIGITS
  1117		037240	000001		OPDEF	PNT5F	[37B8!5B12!1]	;PRINT FIVE OCTAL DIGITS FORCED
  1118		037300	000000		OPDEF	PNT6	[37B8!6B12!0]	;PRINT SIX OCTAL DIGITS
  1119		037300	000001		OPDEF	PNT6F	[37B8!6B12!1]	;PRINT SIX OCTAL DIGITS FORCED
  1120		037340	000000		OPDEF	PNT7	[37B8!7B12!0]	;PRINT 7 OCTAL DIGITS
  1121		037340	000001		OPDEF	PNT7F	[37B8!7B12!1]	;PRINT 7 OCTAL DIGITS FORCED
  1122		037440	000000		OPDEF	PNT11	[37B8!11B12!0]	;PRINT 11 OCTAL DIGITS
  1123		037440	000001		OPDEF	PNT11F	[37B8!11B12!1]	;PRINT 11 OCTAL DIGITS FORCED.
  1124		037400	000000		OPDEF	PNTADR	[37B8!10B12!0]	;PRINT PHYSICAL ADDRESS
  1125		037400	000001		OPDEF	PNTADF	[37B8!10B12!1]	;PRINT PHYSICAL ADDRESS FORCED
  1126		037600	000000		OPDEF	PNTOCT  [37B8!14B12!0]	;PRINT FULL WORD OCTAL
  1127		037600	000001		OPDEF	PNTOTF	[37B8!14B12!1]	;PRINT FULL WORD OCTAL FORCED
  1128		037540	000000		OPDEF	PNTHW	[37B8!13B12!0]	;PRINT OCTAL HALF WORDS, 6 SP 6
  1129		037540	000001		OPDEF	PNTHWF	[37B8!13B12!1]	;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
  1130		037700	000003		OPDEF	PNTOCS	[37B8!16B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S
  1131		037740	000003		OPDEF	PNTOCF	[37B8!17B12!3]	;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
  1132		037640	000000		OPDEF	PNTDEC	[37B8!15B12!0]	;PRINT DECIMAL, SUPRESS LEADING 0'S
  1133		037640	000001		OPDEF	PNTDCF	[37B8!15B12!1]	;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
  1134		037700	000000		OPDEF	PNTDS	[37B8!16B12!0]	;PRINT DECIMAL, SPACES FOR LD 0'S
  1135		037700	000001		OPDEF	PNTDSF	[37B8!16B12!1]	;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 5
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0152

  1136		037200	000002		OPDEF	PNTNM	[37B8!4B12!2]	;PRINT PROGRAM NAME
  1137		037000	000002		OPDEF	PNTSIX	[37B8!0B12!2]	;PRINT SIXBIT WORD
  1138		037040	000002		OPDEF	PNTSXF	[37B8!1B12!2]	;PRINT SIXBIT WORD FORCED
  1139		037240	000002		OPDEF	DROPDV	[37B8!5B12!2]	;CLOSE LOGICAL FILE, USER MODE
  1140		037100	000002		OPDEF	PNTCW	[37B8!2B12!2]	;PRINT DF10 CONTROL WORD
  1141		037140	000002		OPDEF	PNTCWF	[37B8!3B12!2]	;PRINT DF10 CONTROL WORD FORCED
  1142		037000	030242		OPDEF	PCRL	[37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
  1143		037040	030242		OPDEF	PCRLF	[37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
  1144		037000	000040		OPDEF	PSP	[37B8!0B12!40]	;PRINT SPACE
  1145		037040	000040		OPDEF	PSPF	[37B8!1B12!40]	;PRINT SPACE FORCED
  1146		037000	030243		OPDEF	PCRL2	[37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
  1147		037040	030243		OPDEF	PCRL2F	[37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
  1148		037040	000007		OPDEF	PBELL	[37B8!1B12!7]	;PRINT TTY BELL
  1149
  1150		037040	000026		OPDEF	PFORCE	[37B8!1B12!26]	;PRINT FORCE, CONTROL O OVERRIDE
  1151
  1152					DEFINE	PMSG	(ARG),<
  1153						PSIXM	[SIXBIT\ARG'_\]>
  1154
  1155					DEFINE	PMSGF	(ARG),<
  1156						PSIXMF	[SIXBIT\ARG'_\]>
  1157
  1158					;SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
  1159					;	CONSERVES CORE OVER ASCIZ
  1160
  1161					DEFINE	SIXBTZ	(ARG),<	[SIXBIT\ARG'_\]>
  1162
  1163					;CONSOLE SWITCH INPUT UUO.
  1164					;READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
  1165					; USER MODE.
  1166
  1167		037400	000002		OPDEF	SWITCH	[37B8!10B12!2]	;INPUT CONSOLE SWITCHES
  1168
  1169					;CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
  1170					;EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
  1171
  1172		037540	000004		OPDEF	CLOKOP	[37B8!13B12!4]	;CLOCK OPERATION UUO - PDP-11 CLOCK
  1173		037200	000004		OPDEF	MTROP	[37B8!4B12!4]	;CLOCK OPERATION UUO - DK20 METER
  1174
  1175					;KL10 ONLY CACHE OPERATION UUO'S
  1176
  1177		037040	000004		OPDEF	CINVAL	[37B8!1B12!4]	;CACHE INVALIDATE
  1178		037100	000004		OPDEF	CFLUSH	[37B8!2B12!4]	;CACHE FLUSH
  1179		037140	000004		OPDEF	CWRTBI	[37B8!3B12!4]	;CACHE WRITE-BACK & INVALIDATE
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 6
PARAM	KLM	18-Sep-79 17:16		*PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979                                SEQ 0153

  1180					;END OF PASS/PROGRAM UUOS
  1181
  1182					;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
  1183					;DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
  1184
  1185		037500	000004		OPDEF	ENDUUO	[37B8!12B12!4]	;UUO TO DISPLAY LIGHTS
  1186		037700	000004		OPDEF	EOPUUO	[37B8!16B12!4]	;END OF PROGRAM UUO
  1187
  1188					;MEMORY MANAGEMENT UUO'S
  1189					;UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
  1190					;ADDRESS CONVERSION, ETC...
  1191
  1192		037000	000004		OPDEF	MAPMEM	[37B8!0B12!4]	;MAP MEMORY
  1193		037500	000002		OPDEF	MEMZRO	[37B8!12B12!2]	;ZERO MEMORY
  1194		037440	000002		OPDEF	MEMSEG	[37B8!11B12!2]	;SETUP MEMORY SEGMENT
  1195		037540	000002		OPDEF	MAPADR	[37B8!13B12!2]	;VIRTUAL TO PHYSICAL ADR CONVERT
  1196		037640	000002		OPDEF	MAPCNK	[37B8!15B12!2]	;MAP MEMORY CHUNK
  1197		037600	000002		OPDEF	MAPSET	[37B8!14B12!2]	;SET KI10 EXEC PAGE MAP
  1198		037740	000002		OPDEF	MAPPNT	[37B8!17B12!2]	;PRINT MEMORY MAP
  1199
  1200					;DEVICE CODE MODIFICATION UUO
  1201					;ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
  1202					;IOT'S TO A DIFFERENT DEVICE CODE.
  1203
  1204		037340	000002		OPDEF	MODPCU	[37B8!7B12!2]	;MODIFY PERHIPERAL CODE, USER
  1205		037300	000002		OPDEF	MODPCP	[37B8!6B12!2]	;MODIFY PERHIPERAL CODE, PROGRAM
  1206
  1207			030000			IFNDEF	MODDVL,<MODDVL==BEGIN>
  1208			030000			IFNDEF	MODDVU,<MODDVU==BEGIN>
  1209
  1210					;"DIAMON" FILE SELECTION AND READ UUOS
  1211
  1212		037240	000004		OPDEF	FSELECT	[37B8!5B12!4]	;FILE SELECTION
  1213		037300	000004		OPDEF	FREAD	[37B8!6B12!4]	;FILE READ - ASCII DATA
  1214		037340	000004		OPDEF	FRD36	[37B8!7B12!4]	;FILE READ - 36 BIT DATA
  1215		037400	000004		OPDEF	FRD8	[37B8!10B12!4]	;FILE READ - 8 BIT DATA
  1216
  1217					;KI10 ONLY UUO FOR PRINTING MARGIN VALUES
  1218
  1219		037700	000002		OPDEF	PNTMGN	[37B8!16B12!2]	;PRINT MARGIN VALUE
  1220
  1221						XLIST
  1222					IFNDEF	KLOLD,<LIST
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 7
PARAM	KLM	18-Sep-79 17:16		ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979                                       SEQ 0154

  1223					SUBTTL	ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
  1224
  1225					; **********************************************************************
  1226					;ERROR HANDLER PARAMETERS
  1227					; **********************************************************************
  1228
  1229		036000	000000		OPDEF	ERUUO	[36B8]		;ERROR CALL UUO
  1230		035000	000000		OPDEF	ERLOOP	[35B8]		;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
  1231		035040	000000		OPDEF	ERLP1	[35B8!1B12]	;ERROR LOOP IF PC'S MATCH
  1232		035100	000000		OPDEF	ERLP2	[35B8!2B12]	;ERROR LOOP IF ANY ERROR
  1233		034000	000000		OPDEF	REPTUO	[34B8]		;REPEAT LOOP UUO
  1234
  1235					;THE ERROR HANDLER MACROS
  1236
  1237					;A MACRO TO REPORT AN ERROR AND LOOP
  1238
  1239						DEFINE	ERROR	(ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
  1240												SALL
  1241						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
  1242							   CORECT,,ACTUAL
  1243							   [SIXBIT\D'_\],,ERR]
  1244												XALL
  1245						ERLOOP	ADR		;IF ERROR, LOOP TO ADR
  1246					>
  1247
  1248					;A MACRO TO REPORT AN ERROR AND NOT LOOP
  1249
  1250						DEFINE	ERROR1	(FORMAT,CORECT,ACTUAL,F,D,ERR)<
  1251												SALL
  1252						ERUUO	FORMAT,[T,,[SIXBIT\F'_\]
  1253							   CORECT,,ACTUAL
  1254							   [SIXBIT\D'_\],,ERR]
  1255												XALL>
  1256
  1257					>;END OF KLOLD CONDITIONAL
  1258
  1259						XLIST
  1260						LIST
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 1
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0155

  1261					SUBTTL	*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
  1262
  1263	030000					LOC	30000
  1264
  1265					; **********************************************************************
  1266					;PROGRAM STARTING ADDRESSES
  1267					;THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
  1268					;NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
  1269					;OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
  1270					;MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
  1271					; **********************************************************************
  1272
  1273	030000	254 00 1 00 027776 	BEGIN:	JRST	@MODLNK		;STAND-ALONE START
  1274	030001	254 00 0 00 000000*	$START:	JRST	START		;MODE CHECK STARTING ADDRESS
  1275
  1276	030002	254 00 1 00 027774 	DIAGMN:	JRST	@LDLNK		;DIAGNOSTIC MONITOR START
  1277
  1278	030003	254 00 1 00 027774 	SYSEXR:	JRST	@LDLNK		;SYSTEM EXERCISER START
  1279
  1280	030004	254 00 0 00 030000 	SFSTRT:	JRST	SADR1		;SPECIAL FEATURE START
  1281
  1282	030005	254 00 0 00 030000 	PFSTRT:	JRST	SADR2		;POWER FAIL RESTART
  1283
  1284	030006	254 00 0 00 030000 	REENTR:	JRST	SADR3		;REENTER START(USUALLY USER MODE ONLY)
  1285
  1286	030007				SRTDDT:				;COMMONLY MISTAKEN NAME FOR "DDTSRT"
  1287	030007	254 00 1 00 027775 	DDTSRT:	JRST	@DDTLNK		;DDT START
  1288
  1289	030010	254 00 0 00 000000*	BEGIN1:	JRST	STARTA		;LOOP START(END OF PASS COMES HERE)
  1290	030011	254 00 1 00 027777 	SBINIT:	JRST	@SUBLNK		;PMGINT LINKAGE
  1291	030012	000000	000000		RETURN:	0			;RETURN ADDRESS STORAGE
  1292
  1293	030013	254200	030001*		START1:	SADR7			;OPTIONAL STARTING ADR/INSTRUCTIONS
  1294	030014	254200	030013*		START2:	SADR8			; "
  1295	030015	254200	030014*		START3:	SADR9			; "
  1296	030016	254200	030015*		START4:	SADR10			; "
  1297	030017	254200	030016*		START5:	SADR11			; "
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 2
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0156

  1298					; **********************************************************************
  1299					;PROGRAM FIXED PARAMETER AREA
  1300					; **********************************************************************
  1301
  1302	030020	444660	644100		PNTNAM:	PAREA3		;SIXBIT PROGRAM NAME
  1303	030021	605664	000000		PNTEXT:	PAREA4		;SIXBIT PROGRAM EXTENSION
  1304	030022	711523	655207		RANDBS:	PAREA1		;RANDOM BASE NUMBER
  1305	030023	000000	000000		SWTEXR:	PAREA2		;SYSTEM EXERCISER SWITCHES
  1306	030024	000000	000005		ITRCNT:	ITERAT		;PROGRAM ITERATIONS
  1307	030025	000000000000#		$PNAME:	PGMNAM		;POINTER TO PROGRAMS NAME
  1308	030026	000000	000001		$PVER:	MCNVER,,DECVER	;MCN & DEC VERSION LEVEL
  1309	030027	000000	030000		$MODVL:	MODDVL		;DEVICE CODE CHANGE LOWER LIMIT
  1310	030030	000000	030000		$MODVU:	MODDVU		;DEVICE CODE CHANGE UPPER LIMIT
  1311	030031	777777	777777		$EMODE:	IFNDEF EXCASB,<0> IFDEF EXCASB,<-1>	;EXEC ALLOWED
  1312	030032	777777	777777		$UMODE:	IFNDEF USRASB,<0> IFDEF USRASB,<-1>	;USER ALLOWED
  1313	030033	000000	000000		$DSKUP:	IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1>	;DISK UPDATE MODE
  1314	030034	777777	777777		$MMAP:	IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1>	;ALLOW MEMORY RTNS
  1315	030035	000000	000000		PAREA7:	PAREA5		;OPTIONAL PARAMETER
  1316	030036	000000	000000		PAREA8:	PAREA6		;OPTIONAL PARAMETER
  1317
  1318					; **********************************************************************
  1319					;PROGRAM VARIABLE PARAMETER AREA
  1320					; **********************************************************************
  1321
  1322	030037	000000	000000		USER:	0		; 0 = EXEC, -1 = USER MODE FLAG
  1323	030040	000000	000000		KAIFLG:	0		;PROCESSOR TYPE, 0 = KA10, -1 = KI10
  1324	030041	000000	000000		KLFLG:	0		;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
  1325	030042	777777	777777		MONFLG:	-1		;DIAG MONITOR SPECIAL USER FLAG
  1326	030043	000000	000000		MONCTL:	0		;DIAG MON/SYS EXR FLAG
  1327	030044	000000	000000		MONTEN:	0		;-1= LOADED BY 10
  1328	030045	000000	000000		CLOCKF:	0		;CLOCK TICKED FLAG
  1329	030046	000000	000000		CONSW:	0		;CONSOLE SWITCH SETTINGS
  1330	030047	000000	000000		PASCNT:	0		;PROGRAM PASS COUNT
  1331	030050	000000	000000		RUNFLG:	0		;PROGRAM RUN FLAG
  1332	030051	000000	000000		TESTPC:	0		;SUBTEST PC
  1333	030052	000000	000000		ERRPC:	0		;ERROR PC
  1334	030053	000000	000000		ERRTLS:	0		;ERROR TOTALS
  1335	030054	000000	000000		TICKS:	0		;PROGRAM RUNNING TIME
  1336	030055	000000	000000		MARGIN:	0		;KI10 MARGIN WORD VALUE
  1337	030056	000000	000000		$ONETM:	0		;SUBROUTINE INITIALIZATION FLAG
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 3
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0157

  1338					; **********************************************************************
  1339					;SPECIAL PROGRAM DISPATCH ADDRESSES
  1340					; **********************************************************************
  1341
  1342	030057	037 12 0 00 000004 	BEGEND:	ENDUUO		;END OF PASS
  1343	030060	254 00 0 00 030010 	$BEND1:	JRST	BEGIN1	;KEEP RUNNING PROGRAM
  1344	030061	037 16 0 00 000004 	$BEND2:	EOPUUO		;END OF PROGRAM - NO RETURN
  1345	030062	000000000000#		CNTLC:	SADR5		;CONTROL C XFER ADDRESS
  1346	030063	000000	030007		ALTMGO:	SADR6		;ALTMODE XFER ADDRESS
  1347	030064				CPOPJ1:			;SKIP RETURN
  1348	030064	350 00 0 17 000000 	UUOSKP:	AOS	(P)	;SKIP RETURN FROM UUO
  1349	030065				CPOPJ:			;NON-SKIP REGULAR RETURN
  1350	030065	263 17 0 00 000000 	UUOEXT:	RTN		;UUO RETURN
  1351	030066	255 00 0 00 000000 	UUORTN:	JFCL		;ADDITIONAL USERS UUO ROUTINE
  1352	030067	255 00 0 00 000000 	$UORTX:	JFCL		;ADDITIONAL UUO LINKAGE
  1353	030070	255 00 0 00 000000 	$UUOER:	JFCL		;INITED AS (JRST $UOERX)
  1354	030071	255 00 0 00 000000 	$ITRHL:	JFCL		;ADDITIONAL INTERRUPT LINKAGE
  1355	030072	255 00 0 00 000000 	$ITRX1:	JFCL		; "
  1356	030073	255 00 0 00 000000 	$USRHL:	JFCL		; "
  1357	030074	255 00 0 00 000000 	$RSRTX:	JFCL		;ADDITIONAL POWER FAIL LINKAGE
  1358	030075	255 00 0 00 000000 	$RSRTY:	JFCL		; "
  1359	030076	255 00 0 00 000000 	RESRT1:	JFCL		; INITED AS (JRST RESRTX)
  1360	030077	255 00 0 00 000000 	RESRT2:	JFCL		; "
  1361	030100	255 00 0 00 000000 	$PARER:	JFCL		;ADDITIONAL PARITY ERROR LINKAGE
  1362	030101	255 00 0 00 000000 	ERMORE:	JFCL		;ADDITIONAL ERROR HANDLER LINKAGE
  1363	030102	254 04 0 00 030102 		HALT	.	;IMPROPER TRANSFER HALT
  1364
  1365	030103	000000	000000		$PSHER:	0		;INITED AS (JRST PSHERR)
  1366	030104	000000	000000		ITRCH1:	0		;PC & FLAGS OF CURRENT INTERRUPT
  1367	030105	000000	000000			0		;INITED AS (JRST $ITRC1)
  1368
  1369					; **********************************************************************
  1370					;PROCESSOR CONTROL STORAGE
  1371					; **********************************************************************
  1372
  1373	030106	000000	000000		$ACC0:	0		;INTERRUPT SAVED AC0
  1374	030107	000000	000000		$SVPI:	0		;INTERRUPT SAVED PI
  1375	030110	000000	000000		$SVAPR:	0		;INTERRUPT SAVED APR
  1376	030111	000000	000000		$SVPAG:	0		;INTERRUPT SAVED PAG (DATAI)
  1377	030112	000000	000000		$SPAG1:	0		;INTERRUPT SAVED PAG (CONI)
  1378
  1379	030113	000000	000000		$SVUUO:	0		;CURRENT USERS UUO
  1380	030114	000000	000000		$SVUPC:	0		;PC OF CURRENT USERS UUO
  1381
  1382	030115	000000	000000		REPTU:	0		;REPEAT UUO ITERATIONS
  1383	030116	000000	000000		SCOPE:	0		;ERROR HANDLER SCOPE LOOP FLAG
  1384	030117	000000	000000		%CORFLG:0		; " CORRECT FLAG
  1385	030120	000000	000000		%COREC:	0		; " CORRECT DATA
  1386	030121	000000	000000		%ACTFL:	0		; " ACTUAL FLAG
  1387	030122	000000	000000		%ACTUL:	0		; " ACTUAL DATA
  1388	030123	000000	000000		%DISCR:	0		; " DISCREPENCY DATA
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 4
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0158

  1389					; **********************************************************************
  1390					;UUO DISPATCH TABLE
  1391					; **********************************************************************
  1392						XLIST
  1393						LIST
  1394	030124	000000*	030070		UUODIS:	LUUO1,,$UUOER
  1395	030125	030070	000000*			LUUO3,,LUUO2
  1396	030126	030070	030070			LUUO5,,LUUO4
  1397	030127	000000*	000000*			LUUO7,,LUUO6
  1398	030130	030070	030070			LUUO11,,LUUO10
  1399	030131	030070	030070			LUUO13,,LUUO12
  1400	030132	030070	030070			LUUO15,,LUUO14
  1401	030133	030070	030070			LUUO17,,LUUO16
  1402	030134	030070	030070			LUUO21,,LUUO20
  1403	030135	030070	030070			LUUO23,,LUUO22
  1404	030136	030070	030070			LUUO25,,LUUO24
  1405	030137	000000*	030070			LUUO27,,LUUO26
  1406	030140	030070	030070			LUUO31,,LUUO30
  1407	030141	030070	030070			LUUO33,,LUUO32
  1408
  1409					; **********************************************************************
  1410					;MEMORY MANAGMENT STORAGE
  1411					; **********************************************************************
  1412
  1413	030142	000000	000000		DF22F:	0		;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
  1414	030143	000000	000000		MAPNEW:	0		;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
  1415	030144	000000	000000		MEMTOT:	0		;TOTAL MEMORY SIZE IN K (1024.)
  1416	030145	000000	000000		MEMLOW:	0		;LOWEST USABLE MEMORY
  1417	030146				MEMSIZ:	BLOCK ^D41	;MEMORY SEGMENT POINTER TABLE
  1418
  1419					; **********************************************************************
  1420					;PRINT CONTROL STORAGE
  1421					; **********************************************************************
  1422
  1423	030217	000000	000000		PNTFLG:	0		;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
  1424	030220	000000	000000		PNTENB:	0		;PRINT ENABLE
  1425	030221	000000	000000		PDISF:	0		;PRINT DISABLED FLAG
  1426	030222	000000	000000		PNTINH:	0		;INHIBIT PRINT INPUT CHECKS
  1427	030223	000000	000000		PNTSPC:	0		;PRINT SPACE CONTROL
  1428	030224	000000	000000		OPTIME:	0		;TYPE-IN WAIT TIME
  1429	030225	000000	000000		$TWCNT:	0		;TIME WAITED
  1430	030226	000000	000000		$DVOFF:	0		;LOGICAL DEVICE INITED FLAG
  1431	030227	000000	000000		TTYFIL:	0		;TTY EXEC FILLERS FLAG
  1432	030230	000000	000000		TTYSPD:	0		;TTY EXEC BAUD RATE
  1433	030231	000000	000000		$TTCHR:	0		;ACTUAL TYPED IN CHAR
  1434	030232	000000	000000		$CHRIN:	0		;UPPER CASED & PARITY STRIPPED CHAR
  1435	030233	000000	000000		$TYPNB:	0		;TYPED IN NUMBER
  1436	030234	000000	000000		$CRLF:	0		;FREE CR/LF FLAG
  1437	030235	000000	000000		$TABF:	0		;TAB CONVERSION FLAG
  1438	030236	000000	000000		$FFF:	0		;FORM FEED CONVERSION FLAG
  1439	030237	000000	000000		$VTF:	0		;VERTICAL TAB CONVERSION FLAG
  1440	030240	000000	000000		USRLFF:	0		;USER LF FILLERS
  1441	030241	000000	000000		USRCRF:	0		;USER CR FILLERS
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 5
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0159

  1442					; **********************************************************************
  1443					;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
  1444					;TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
  1445					;	MOVEI	NAME
  1446					;	PNTA		;OR PNTAF
  1447					; **********************************************************************
  1448
  1449	030242				CRLF:	ASCII/
  1450	030242	015 012 000 000 000 	/
  1451	030243				CRLF2:	ASCII/
  1452
  1453	030243	015 012 015 012 000 	/
  1454	030244	054 000 000 000 000 	COMMA:	ASCII/,/
  1455	030245	056 000 000 000 000 	PERIOD:	ASCII/./
  1456	030246	040 000 000 000 000 	SPACE:	ASCII/ /
  1457	030247	011 000 000 000 000 	TAB:	ASCII/	/
  1458	030250				MINUS:
  1459	030250	055 000 000 000 000 	HYPEN:	ASCII/-/
  1460	030251	053 000 000 000 000 	PLUS:	ASCII/+/
  1461	030252	052 000 000 000 000 	AST:	ASCII/*/
  1462	030253	100 000 000 000 000 	ATSIN:	ASCII/@/
  1463	030254	050 000 000 000 000 	LFP:	ASCII/(/
  1464	030255	051 000 000 000 000 	RTP:	ASCII/)/
  1465	030256	007 0000000000 		BELL:	BYTE (7) 007
  1466	030257	077 000 000 000 000 	QUEST:	ASCII/?/
  1467	030260	057 000 000 000 000 	SLASH:	ASCII!/!
  1468	030261	044 000 000 000 000 	DOLLAR:	ASCII/$/
  1469	030262	000000	000012		RADIX:	^D10			;DECIMAL PRINT RADIX
  1470	030263	000000	000040		RADLSP:	40			;DECIMAL PRINT LEADING CHAR
  1471	030264	000000	000012		RADLSC:	^D10			;DECIMAL PRINT LEADING CHAR COUNT
  1472
  1473					; **********************************************************************
  1474					;USER MODE OUTPUT FILE INFORMATION
  1475					; **********************************************************************
  1476
  1477	030265				$OBUF:	BLOCK	3		;LOGICAL FILE OUTPUT BUFFER HEADER
  1478	030270	60 62 51 56 64 00 	$OUTNM:	SIXBIT	/PRINT/		;FILE NAME
  1479	030271	60 56 64 00 00 00 	$OUTEX:	SIXBIT	/PNT/		;FILE NAME EXTENSION
  1480	030272					BLOCK	2
  1481
  1482					; **********************************************************************
  1483					;DISK UPDATE MODE FILE INFORMATION
  1484					; **********************************************************************
  1485
  1486	030274				$IBUF:	BLOCK	3
  1487	030277	60 62 51 56 64 00 	$INNM:	SIXBIT	/PRINT/
  1488	030300	60 56 64 00 00 00 	$INEXT:	SIXBIT	/PNT/
  1489	030301					BLOCK	2
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 6
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0160

  1490					; **********************************************************************
  1491					;PUSHDOWN LIST CONTROL INFORMATION
  1492					; **********************************************************************
  1493
  1494	030303	777577	030303		PLIST:	PLIST-PLISTE,,PLIST
  1495	030304				PLISTS:	BLOCK	200
  1496	030504	000000	000000		PLISTE:	0		;END OF PUSHDOWN LIST
  1497
  1498					; **********************************************************************
  1499					;POWER LINE CLOCK FREQUENCY FLAG
  1500					; **********************************************************************
  1501
  1502	030505	000000	000000		CYCL60:	0	;0 = 60, -1 = 50 CYCLE
  1503
  1504					; **********************************************************************
  1505					;KL10 CACHE CONTROL FLAGS
  1506					; **********************************************************************
  1507
  1508	030506	000000	000000		CSHFLG:	0	;ALLOW CACHE IF 0
  1509	030507	000000	000000		CSHMEM:	0	;CACHE MEMORY SEGMENTS IF 0
  1510
  1511					; **********************************************************************
  1512					;NUMBER INPUT DIGIT FLAG
  1513					; **********************************************************************
  1514
  1515	030510	000000	000000		TTNBRF:	0	;-1 IF ANY DIGIT TYPED
  1516
  1517					; **********************************************************************
  1518					;KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
  1519					; **********************************************************************
  1520
  1521	030511	000000	000000		PVPAGI:	0	;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
  1522
  1523					; **********************************************************************
  1524					;ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
  1525					; **********************************************************************
  1526
  1527	030512	000000	000000		%ERHI1:	0	;IF NON-ZERO, XCT'D AT START OF %ERUUO
  1528	030513	000000	000000		%ERHI2:	0	;IF NON-ZERO, XCT'D AT END OF %ERUUO
  1529	030514	000000	000000		%ERHI3:	0	;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
  1530
  1531					; **********************************************************************
  1532					;SPECIAL USERS UUO INTERCEPT INSTRUCTION
  1533					; **********************************************************************
  1534
  1535	030515	000000	000000		$$UUO:	0	;IF NON-ZERO, XCT'D AT START OF $UORTN
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 7
FIXED	KLM	18-Sep-79 17:18		*FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979                           SEQ 0161

  1536					; **********************************************************************
  1537					;USER MODE MONITOR TYPE FLAG
  1538					; **********************************************************************
  1539
  1540	030516	000000	000000		MONTYP:	0	;0 = TOPS10, -1 = TOPS20
  1541
  1542					; **********************************************************************
  1543					;SPECIAL USERS MUUO INTERCEPT INSTRUCTION
  1544					; **********************************************************************
  1545
  1546	030517	000000	000000		$$MUUO:	0	;IF NON-ZERO, XCT'D AT START OF MUUOER
  1547
  1548					; **********************************************************************
  1549					;SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
  1550					; **********************************************************************
  1551
  1552	030520	000000	000000		$$OUTER:0	;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
  1553
  1554					; **********************************************************************
  1555					;"SWITCH" CALL USAGE CONTROL
  1556					; **********************************************************************
  1557
  1558	030521	000000	000000		$$TOGGLE:0	;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
  1559
  1560					; **********************************************************************
  1561					;SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
  1562					; **********************************************************************
  1563
  1564	030522	000000	000000		$$TAX1:	0	;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
  1565	030523	000000	000000		$$TAX2:	0	;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
  1566
  1567					; **********************************************************************
  1568					;SM10 (KS-10) PROCESSOR TYPE FLAG
  1569					; **********************************************************************
  1570
  1571	030524	000000	000000		SM10:	0	;IF -1 THIS IS A KS-10
  1572
  1573					; **********************************************************************
  1574					;RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
  1575					; **********************************************************************
  1576
  1577	030525	000000	000000		SWPTAB:	0	;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
  1578
  1579					; **********************************************************************
  1580					;SPECIAL FUTURE EXPANSION ROOM
  1581					; **********************************************************************
  1582
  1583					; **********************************************************************
  1584					;END OF FIXED STORAGE
  1585					; **********************************************************************
  1586
  1587	030577					LOC	30577
  1588	030577	000000	000000		ENDFIX:	0		;END OF FIXED STORAGE
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page 1
DFPTAE	MAC	20-Sep-82 09:16		IPA REGISTER STORAGE                                                               SEQ 0162

  1589						SUBTTL	IPA REGISTER STORAGE
  1590
  1591					;#********************************************************************
  1592					; End of DFPTAT,PARAM,FIXED,DFPTAE files
  1593					;#********************************************************************
  1594
  1595						XLIST
  1596
NO ERRORS DETECTED

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

71P CORE USED
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page S-1
DFPTAE	MAC	20-Sep-82 09:16		SYMBOL TABLE                                                                       SEQ 0163

ABORT		400000	spd	CIPORT		000020	spd	E15		000017	spd	IDLE	000100	000000	spd	
ADRPE	100000	000000	spd	CJRST		000011	spd	E16		000020	spd	IEXIT		000013	spd	
ALL	770000	000000	spd	CLAST		000000	spd	E17		000021	spd	IJRST		000011	spd	
ALTCHH		000000	ext	CLK		001000	spd	E18		000022	spd	ILAST		000000	spd	
ALTCHK	007000	000000		CLKCLR		001000	spd	E19		000023	spd	INHCSH		000020	spd	
ALTMGO		030063		CLKDIS		004000	spd	E2		000002	spd	INHFLT		200000	spd	
ALU	020000	000000	spd	CLKENB		002000	spd	E20		000024	spd	INHMSG		100000	spd	
ANXM		010000	spd	CLKU		001000	spd	E21		000025	spd	INHPAG		000100	spd	
AROV		400000	spd	CLOCKF		030045		E22		000026	spd	INXM		000100	spd	
AROVU		000010	spd	CLOKOP	037540	000004		E23		000027	spd	IOCLR		200000	spd	
AST		030252		CMDQAV		000400	spd	E24		000030	spd	IPAER	000200	000000	spd	
ATSIN		030253		CNTLC		030062		E3		000003	spd	ISETDE		000002	spd	
BEGEND		030057		COMMA		030244		E4		000004	spd	ISETEI		000005	spd	
BEGIN		030000		CONSW		030046		E5		000005	spd	ISETEX		000001	spd	
BEGIN1		030010		CPOPJ		030065		E6		000006	spd	ISETID		000003	spd	
BELL		030256		CPOPJ1		030064		E7		000007	spd	ISETIN		000004	spd	
BIS		020000	spd	CRAMPE	004000	000000	spd	E8		000010	spd	ISTART		000012	spd	
C1		000054	spd	CRLF		030242		E9		000011	spd	ITERAT		000005	spd	
C10		000065	spd	CRLF2		030243		EBUS	400000	000000	spd	ITRCH1		030104		
C11		000066	spd	CRY0		200000	spd	EBUSPE		004000	spd	ITRCNT		030024		
C12		000067	spd	CRY1		100000	spd	ECOMP	000020	000000	spd	IWAIT		000010	spd	
C13		000070	spd	CSETRD		000001	spd	ENDFIX		030577		JEN	254500	000000		
C14		000071	spd	CSETRW		000003	spd	ENDUUO	037500	000004		JOB41		000041	spd	
C15		000072	spd	CSETWR		000002	spd	EOPUUO	037700	000004		JOBAPR		000125	spd	
C16		000073	spd	CSHFLG		030506		ERFLG		000015		JOBCNI		000126	spd	
C17		000074	spd	CSHMEM		030507		ERLOOP	035000	000000		JOBDDT		000074	spd	
C18		000075	spd	CSRCHN	100000	000000	spd	ERLP1	035040	000000		JOBFF		000121	spd	
C19		000076	spd	CSRRQS	200000	000000	spd	ERLP2	035100	000000		JOBOPC		000130	spd	
C2		000055	spd	CSTART		000004	spd	ERMORE		030101		JOBREL		000044	spd	
C20		000077	spd	CWAIT		000007	spd	ERRHLT	037600	000004		JOBREN		000124	spd	
C21		000100	spd	CWRTBI	037140	000004		ERRPC		030052		JOBSA		000120	spd	
C22		000101	spd	CYCL60		030505		ERRTLS		030053		JOBSYM		000116	spd	
C23		000102	spd	DCK		000040	spd	ERSTOP		002000	spd	JOBTPC		000127	spd	
C24		000103	spd	DCOMP	000040	000000	spd	ERUUO	036000	000000		JOBUSY		000117	spd	
C3		000056	spd	DDTLNK		027775		EXCASB		000001	spd	JOBUUO		000040	spd	
C4		000057	spd	DDTSRT		030007		EXIOT		004000	spd	JOBVER		000137	spd	
C5		000060	spd	DEBUG1		002000	spd	FATAL	037640	000004		JRSTF	254100	000000		
C6		000061	spd	DEBUG2		001000	spd	FOV		040000	spd	JSYS	104000	000000		
C7		000062	spd	DEBUG3		000400	spd	FOVU		000100	spd	KAHZ50		000002	spd	
C8		000063	spd	DEBUG4		000200	spd	FQUERR		002000	spd	KAIFLG		030040		
C9		000064	spd	DEBUG5		000100	spd	FRD36	037340	000004		KL10		000001	spd	
CALL	200000	000000	spd	DECVER		000001	spd	FRD8	037400	000004		KLFLG		030041		
CBUFSZ		000315	spd	DF22F		030142		FRDLNK		027773		LAPRAL		127520	spd	
CBUS	100000	000000	spd	DIAGMN		030002		FREAD	037300	000004		LAPRP1		000001	spd	
CCA		000014	spd	DING		010000	spd	FSELEC	037240	000004		LAPRP2		000002	spd	
CCALL		000005	spd	DINIT	040000	000000	spd	FSELNK		027772		LAPRP3		000003	spd	
CCALLC		000006	spd	DOLLAR		030261		FXU		000100	spd	LAPRP4		000004	spd	
CCOMP		000010	spd	DROPDV	037240	000002		GENEPE		100000	spd	LAPRP5		000005	spd	
CEXIT		000012	spd	DSPEAR		004000	spd	GET	262740	000000		LAPRP6		000006	spd	
CFIBF	104000	000100		E1		000001	spd	GO	260740	000000		LAPRP7		000007	spd	
CFLUSH	037100	000004		E10		000012	spd	GOTO	300000	000000	spd	LAROVT		000421	spd	
CHAIN		000004	spd	E11		000013	spd	HALT	254200	000000		LAST	010000	000000	spd	
CHNOFF		001000	spd	E12		000014	spd	HYPEN		030250		LAXER	000400	000000	spd	
CHNON		002000	spd	E13		000015	spd	ICALL		000006	spd	LCASDE		000020	spd	
CINVAL	037040	000004		E14		000016	spd	ICALLC		000007	spd	LCASLD		200000	spd	
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page S-2
DFPTAE	MAC	20-Sep-82 09:16		SYMBOL TABLE                                                                       SEQ 0164

LCASLO		400000	spd	LOOPER		004000	spd	LUUO		000040	spd	MARGIN		030055		
LCASWB		200000	spd	LOOPGM		040000	spd	LUUO1		000000*	spd	MBCN		000016		
LCASWD		000020	spd	LOOPTS		020000	spd	LUUO10		030070		MBERR	002000	000000	spd	
LCCASD		020020	spd	LPAREN		001000	spd	LUUO11		030070		MBUS	010000	000000	spd	
LCHNOF		001000	spd	LPARER		001000	spd	LUUO12		030070		MCBUS		000001	spd	
LCHNON		002000		LPDOVT		000422	spd	LUUO13		030070		MCNVER		000000	spd	
LCIOPF		020400	spd	LPFWPC		000426	spd	LUUO14		030070		MEMLOW		030145		
LCNTRP		000434	spd	LPGFTR		000427	spd	LUUO15		030070		MEMMAP		000001	spd	
LCNXER		022000	spd	LPICH1		000100	spd	LUUO16		030070		MEMSEG	037440	000002		
LCPAER		021000	spd	LPICH2		000040	spd	LUUO17		030070		MEMSIZ		030146		
LCPWRF		020100	spd	LPICH3		000020	spd	LUUO2		000000*	spd	MEMTOT		030144		
LCSBER		024000	spd	LPICH4		000010	spd	LUUO20		030070		MEMZRO	037500	000002		
LCSLOA		200000	spd	LPICH5		000004	spd	LUUO21		030070		MINUS		030250		
LCSLOO		400000	spd	LPICH6		000002	spd	LUUO22		030070		MLAST	400000	000000	spd	
LCTRP		000435	spd	LPICH7		000001	spd	LUUO23		030070		MMPROC		000002	spd	
LCWSX		000040	spd	LPICHA		000177	spd	LUUO24		030070		MODDVC		000040	spd	
LDATAF		000200	spd	LPICLR		010000	spd	LUUO25		030070		MODDVL		030000	spd	
LDCASD		040020	spd	LPIIP1		040000	spd	LUUO26		030070		MODDVU		030000	spd	
LDIOPF		040400	spd	LPIIP2		020000	spd	LUUO27		000000*		MODLNK		027776		
LDLNK		027774		LPIIP3		010000	spd	LUUO3		030070		MODPCP	037300	000002		
LDNXER		042000	spd	LPIIP4		004000	spd	LUUO30		030070		MODPCU	037340	000002		
LDPAER		041000	spd	LPIIP5		002000	spd	LUUO31		030070		MONCTL		030043		
LDPWRF		040100	spd	LPIIP6		001000	spd	LUUO32		030070		MONFLG		030042		
LDSBER		044000	spd	LPIIP7		000400	spd	LUUO33		030070		MONTEN		030044		
LECASD		100020	spd	LPIOFF		000400	spd	LUUO4		030070		MONTYP		030516		
LEIOPF		100400	spd	LPION		000200	spd	LUUO5		030070		MPER	200000	000000	spd	
LENXER		102000	spd	LPNTRP		000436	spd	LUUO6		000000*	spd	MPROC	200000	000000	spd	
LEPAER		101000	spd	LPRCH1		000100	spd	LUUO7		000000*	spd	MPRUN		000010	spd	
LEPWRF		100100	spd	LPRCH2		000040	spd	LUUOI		000041	spd	MPVU		020000	spd	
LESBER		104000	spd	LPRCH3		000020	spd	LWRITE		000100	spd	MSG	100000	000000	spd	
LEUPFW		000420	spd	LPRCH4		000010	spd	M1		000031	spd	MTROP	037200	000004		
LEVNCD		100000	spd	LPRCH5		000004	spd	M10		000042	spd	MVRERR		001000	spd	
LEVNPA		400000	spd	LPRCH6		000002	spd	M11		000043	spd	NDCB	000200	000000	spd	
LEVNPD		200000	spd	LPRCH7		000001	spd	M12		000044	spd	NDMP	000400	000000	spd	
LEXCMP		000000	spd	LPTRP		000437	spd	M13		000045	spd	NEXM	020000	000000	spd	
LFLGCL		020000	spd	LPWRFE		000100	spd	M14		000046	spd	NIPORT		000040	spd	
LFLGDS		040000	spd	LPWRFL		000100	spd	M15		000047	spd	NOPNT		040000	spd	
LFLGEN		100000	spd	LREQSE		004000	spd	M16		000050	spd	NOTWC0	040000	000000	spd	
LFLGST		010000	spd	LRQCLR		020000	spd	M17		000051	spd	NXMU		010000	spd	
LFP		030254		LSBSEN		004000	spd	M18		000052	spd	OPRSEL		000010	spd	
LGWC	000100	000000	spd	LSBUSE		004000	spd	M19		000053	spd	OPTIME		030224		
LINSTF		000400	spd	LSCASD		010020	spd	M2		000032	spd	OVN	000020	000000	spd	
LINT		000010	spd	LSECMO		040000	spd	M3		000033	spd	P		000017		
LIOCLR		200000	spd	LSIOPF		010400	spd	M4		000034	spd	PAG		000010	spd	
LIOPFE		000400	spd	LSMODE		040000	spd	M5		000035	spd	PALERS		001000	spd	
LKNTRP		000430	spd	LSNTRP		000432	spd	M6		000036	spd	PARCLR		200000	spd	
LKTRP		000431	spd	LSNXER		012000	spd	M7		000037	spd	PARDIS		100000	spd	
LLACBL		400000	spd	LSPAER		011000	spd	M8		000040	spd	PAREA1	711523	655207	spd	
LLDUSB		100000	spd	LSPWRF		010100	spd	M9		000041	spd	PAREA2		000000	spd	
LLPRCN		200000	spd	LSSBER		014000	spd	MAPADR	037540	000002		PAREA3	444660	644100	spd	
LMUUO		000424	spd	LSTRP		000433	spd	MAPCNK	037640	000002		PAREA4	605664	000000	spd	
LMUUOP		000425	spd	LTRP3T		000423	spd	MAPMEM	037000	000004		PAREA5		000000	spd	
LNXMEN		002000	spd	LTRPAE		020000	spd	MAPNEW		030143		PAREA6		000000	spd	
LNXMER		002000	spd	LTRPEN		020000	spd	MAPPNT	037740	000002		PAREA7		030035		
LOGO	400000	000000	spd	LUSCMP		000040	spd	MAPSET	037600	000002		PAREA8		030036		
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page S-3
DFPTAE	MAC	20-Sep-82 09:16		SYMBOL TABLE                                                                       SEQ 0165

PARENB		040000	spd	PNT7F	037340	000001		RELIAB		000400	spd	SUBLNK		027777		
PARU		004000	spd	PNTA	037000	000000		REPT		000015	spd	SWITCH	037400	000002		
PASCNT		030047		PNTADF	037400	000001		REPT1		000016	spd	SWPTAB		030525		
PAT		000014		PNTADR	037400	000000		REPTU		030115		SWTEXR		030023		
PBELL	037040	000007		PNTAF	037000	000001		REPTUO	034000	000000		SYSEXR		030003		
PCLEAR		400000	spd	PNTAL	037740	000000		REQSET		004000	spd	TAB		030247		
PCRL	037000	030242		PNTALF	037740	000001		RESQAV		000200	spd	TCALL		000003	spd	
PCRL2	037000	030243		PNTCHF	037500	000001		RESRT1		030076		TCALLC		000004	spd	
PCRL2F	037040	030243		PNTCHR	037500	000000		RESRT2		030077		TCHECK		000005	spd	
PCRLF	037040	030242		PNTCI	037000	000000		RETURN		030012		TCONT		000002	spd	
PDEC	006000	000000		PNTCIF	037040	000000		RQINT	010000	000000	spd	TDENA	000100	000000	spd	
PDECF	002000	000000		PNTCW	037100	000002		RSTART		200000	spd	TENLEN		000003	spd	
PDISF		030221		PNTCWF	037140	000002		RTN	263740	000000		TESTPC		030051		
PDLOVU		200000	spd	PNTDCF	037640	000001		RTP		030255		TEXIT		000007	spd	
PDSABL		000040	spd	PNTDEC	037640	000000		RUNALL		010000	spd	TICKS		030054		
PENABL		000020	spd	PNTDS	037700	000000		RUNFLG		030050		TJRST		000006	spd	
PERIOD		030245		PNTDSF	037700	000001		SADR1		030000		TLAST		000000	spd	
PFORCE	037040	000026		PNTENB		030220		SADR10	254200	000000*		TOTALS		100000	spd	
PFSTRT		030005		PNTEXT		030021		SADR11	254200	000000*		TRACET		400000	spd	
PGMINT	265000	030011		PNTFLG		030217		SADR2		030000		TSSTAR		000010	spd	
PGMNAM		000000	ext	PNTHW	037540	000000		SADR3		030000		TSTART		000001	spd	
PIA00		000004	spd	PNTHWF	037540	000001		SADR4		030007		TSTEBF		200000	spd	
PIA01		000002	spd	PNTINH		030222		SADR5		000000*		TTALTM	037340	000003		
PIA02		000001	spd	PNTLPT		020000	spd	SADR6		030007		TTICHR	037000	000003		
PICHN1		000100	spd	PNTMGN	037700	000002		SADR7	254200	000000*		TTICLR	037500	000003		
PICHN2		000040	spd	PNTMSF	037040	000000		SADR8	254200	000000*		TTICNV	037240	000003		
PICHN3		000020	spd	PNTMSG	037000	000000		SADR9	254200	000000*		TTIDEC	037200	000003		
PICHN4		000010	spd	PNTNAM		030020		SBINIT		030011		TTINO	037100	000003		
PICHN5		000004	spd	PNTNM	037200	000002		SCOPE		030116		TTIOCT	037140	000003		
PICHN6		000002	spd	PNTOCC	001000	000000		SCOPE1		000000	ext	TTIYES	037040	000003		
PICHN7		000001	spd	PNTOCF	037740	000003		SCOPER	027000	000000		TTLOOK	037300	000003		
PICHNA		000177	spd	PNTOCS	037700	000003		SELLAR		040000	spd	TTNBRF		030510		
PICLR		010000	spd	PNTOCT	037600	000000		SEQ	040000	000000	spd	TTSIXB	037400	000003		
PIOFF		000400	spd	PNTOTF	037600	000001		SFSTRT		030004		TTYFIL		030227		
PION		000200	spd	PNTSIX	037000	000002		SHWC	000040	000000	spd	TTYINP	037440	000003		
PJRST	254000	000000		PNTSPC		030223		SINCYC		020000	spd	TTYSPD		030230		
PLIST		030303		PNTSXF	037040	000002		SLASH		030260		TUSER	001000	000000	spd	
PLISTE		030504		PORTP	400000	000000	spd	SM10		030524		TXALL	060000	000000	spd	
PLISTS		030304		PPDEC		030127	ext	SPACE		030246		TXNOT	040000	000000	spd	
PLUS		030251		PPDECF		030125	ext	SPARE1		010000	spd	TXTINH		000200	spd	
PNT1	037040	000000		PSIXL	037600	000003		SPARE2		000100	spd	TXYES	020000	000000	spd	
PNT11	037440	000000		PSIXLF	037640	000003		SRTDDT		030007		USER		030037		
PNT11F	037440	000001		PSIXM	037100	000000		SSCALL		000003	spd	USERF		010000	spd	
PNT1F	037040	000001		PSIXMF	037200	000000		SSCHK		000004	spd	USRASB		000001	spd	
PNT2	037100	000000		PSP	037000	000040		SSCONT		000002	spd	USRCRF		030241		
PNT2F	037100	000001		PSPF	037040	000040		SSJRST		000005	spd	USRLFF		030240		
PNT3	037140	000000		PUT	261740	000000		SSLAST		000000	spd	UUODIS		030124		
PNT3F	037140	000001		PVPAGI		030511		SSSTRT		000001	spd	UUOEXT		030065		
PNT4	037200	000000		PWFCLR		400000	spd	START		030017	ext	UUORTN		030066		
PNT4F	037200	000001		QUEST		030257		START1		030013		UUOSKP		030064		
PNT5	037240	000000		RADIX		030262		START2		030014		ZALU	000002	000000	spd	
PNT5F	037240	000001		RADLSC		030264		START3		030015		ZCBUS	000004	000000	spd	
PNT6	037300	000000		RADLSP		030263		START4		030016		ZEBUS		000000	spd	
PNT6F	037300	000001		RANDBS		030022		START5		030017		ZMPROC	000003	000000	spd	
PNT7	037340	000000		REENTR		030006		STARTA		030010	ext	ZSEQ	000001	000000	spd	
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page S-4
DFPTAE	MAC	20-Sep-82 09:16		SYMBOL TABLE                                                                       SEQ 0166

$$MUUO		030517		%CORFL		030117		.LJ		010000	spd	.MCCCC		000037	spd	
$$OUTE		030520		%DISCR		030123		.LJMAP		000000	spd	.MCCCE		000037	spd	
$$TAX1		030522		%ERHI1		030512		.LJRP		000000	spd	.MCCCP		000037	spd	
$$TAX2		030523		%ERHI2		030513		.LJSRP		000000	spd	.MCCEB		000037	spd	
$$TOGG		030521		%ERHI3		030514		.LJZ		000000	spd	.MCCER		000037	spd	
$$UUO		030515		.JB41		000041	spd	.LLDCT		000000	spd	.MCCFZ		000037	spd	
$ACC0		030106		.JBAPR		000125	spd	.LLDLM		000000	spd	.MCCGC		000037	spd	
$BEND1		030060		.JBCNI		000126	spd	.LLOOP		000000	spd	.MCCIA		000037	spd	
$BEND2		030061		.JBDDT		000074	spd	.LLSAD		000000	spd	.MCCLW		000037	spd	
$CHRIN		030232		.JBFF		000121	spd	.LMARK		000000	spd	.MCCMB		000037	spd	
$CRLF		030234		.JBOPC		000130	spd	.LMGC		000001	spd	.MCCMP		000037	spd	
$DEVCH		000017	spd	.JBREL		000044	spd	.LNAND		000000	spd	.MCCOF		000037	spd	
$DSKUP		030033		.JBREN		000124	spd	.LOENA		002000	spd	.MCCON		000037	spd	
$DVCH1		000016	spd	.JBSA		000120	spd	.LOP		000000	spd	.MCCPP		000037	spd	
$DVOFF		030226		.JBSYM		000116	spd	.LOR		000000	spd	.MCCXA		000037	spd	
$EMODE		030031		.JBTPC		000127	spd	.LPAR		004000	spd	.MCENA		000001	spd	
$FFF		030236		.JBUSY		000117	spd	.LPLUS		000000	spd	.MCJP		000017	spd	
$IBUF		030274		.JBUUO		000040	spd	.LPUSH		000000	spd	.MCJPP		000017	spd	
$INEXT		030300		.JBVER		000137	spd	.LRAM		000000	spd	.MCJS		000017	spd	
$INNM		030277		.LA		000000	spd	.LRDLM		000000	spd	.MCJV		000017	spd	
$ITRHL		030071		.LADDR	000100	000000	spd	.LRFCT		000000	spd	.MCONT		000017	spd	
$ITRX1		030072		.LAND		000000	spd	.LRMIN		000000	spd	.MCRTN		000017	spd	
$LPAPE		000001	spd	.LB		000000	spd	.LRPCT		000000	spd	.MCRY		000001	spd	
$MMAP		030034		.LBAD		000000	spd	.LS0A		000000	spd	.MD		000007	spd	
$MODVL		030027		.LBUS		000000	spd	.LS0B		000000	spd	.MDISA		000001	spd	
$MODVU		030030		.LCCAF		000000	spd	.LS0Q		000000	spd	.MENA		000001	spd	
$OBUF		030265		.LCCBF		000000	spd	.LSAB		000000	spd	.MFUNC		000007	spd	
$ONETM		030056		.LCCCA		000000	spd	.LSAQ		000000	spd	.MJ		007777	spd	
$OUTEX		030271		.LCCCC		000000	spd	.LSD0		000000	spd	.MJMAP		000017	spd	
$OUTNM		030270		.LCCCE		000000	spd	.LSDA		000000	spd	.MJRP		000017	spd	
$PARER		030100		.LCCCP		000000	spd	.LSDQ		000000	spd	.MJSRP		000017	spd	
$PNAME		030025		.LCCEB		000000	spd	.LSELC		000000	spd	.MJZ		000017	spd	
$PSHER		030103		.LCCER		000000	spd	.LSELE		000000	spd	.MLDCT		000017	spd	
$PVER		030026		.LCCFZ		000000	spd	.LSELF		000000	spd	.MLDLM		000037	spd	
$RSRTX		030074		.LCCGC		000000	spd	.LSELM		000000	spd	.MLOOP		000017	spd	
$RSRTY		030075		.LCCIA		000000	spd	.LSELP		000000	spd	.MLSAD		000037	spd	
$SPAG1		030112		.LCCLW		000000	spd	.LSK		000000	spd	.MMARK		000001	spd	
$START		030001		.LCCMB		000000	spd	.LSKCN		000000	spd	.MMGC		001777	spd	
$SVAPR		030110		.LCCMP		000000	spd	.LSKMB		000000	spd	.MNAND		000007	spd	
$SVPAG		030111		.LCCOF		000000	spd	.LSMIN		000000	spd	.MOENA		000001	spd	
$SVPI		030107		.LCCON		000000	spd	.LSORC		000000	spd	.MOP		000017	spd	
$SVUPC		030114		.LCCPP		000000	spd	.LSPAR		000000	spd	.MOR		000007	spd	
$SVUUO		030113		.LCCXA		000000	spd	.LTIM		000000	spd	.MPAR		000001	spd	
$TABF		030235		.LCENA		000000	spd	.LTWB		000000	spd	.MPLUS		000007	spd	
$TTCHR		030231		.LCJP		000000	spd	.LXNOR		000000	spd	.MPUSH		000017	spd	
$TWCNT		030225		.LCJPP		000000	spd	.LXOR		000000	spd	.MRAM		000001	spd	
$TYPNB		030233		.LCJS		000000	spd	.MA		000017	spd	.MRDLM		000037	spd	
$UMODE		030032		.LCJV		000000	spd	.MADDR		007777	spd	.MRFCT		000017	spd	
$UORTX		030067		.LCONT		000000	spd	.MAND		000007	spd	.MRMIN		000007	spd	
$USRHL		030073		.LCRTN		000000	spd	.MB		000017	spd	.MRPCT		000017	spd	
$UUOER		030070		.LCRY		000000	spd	.MBAD		000001	spd	.MS0A		000007	spd	
$VTF		030237		.LD		000000	spd	.MBUS		000007	spd	.MS0B		000007	spd	
%ACTFL		030121		.LDISA		000000	spd	.MCCAF		000037	spd	.MS0Q		000007	spd	
%ACTUL		030122		.LENA		000000	spd	.MCCBF		000037	spd	.MSAB		000007	spd	
%COREC		030120		.LFUNC		000000	spd	.MCCCA		000037	spd	.MSAQ		000007	spd	
DFPTA	MACRO %53A(1152) 09:26 16-Oct-84 Page S-5
DFPTAE	MAC	20-Sep-82 09:16		SYMBOL TABLE                                                                       SEQ 0167

.MSD0		000007	spd	.RJ		000000	spd	
.MSDA		000007	spd	.RJMAP		000040	spd	
.MSDQ		000007	spd	.RJRP		000160	spd	
.MSELC		000007	spd	.RJSRP		000120	spd	
.MSELE		000007	spd	.RJZ		000000	spd	
.MSELF		000007	spd	.RLDCT		000300	spd	
.MSELM		000007	spd	.RLDLM		230000	spd	
.MSELP		000007	spd	.RLOOP		000320	spd	
.MSK		000037	spd	.RLSAD		200000	spd	
.MSKCN		000037	spd	.RMARK		000002	spd	
.MSKMB		000037	spd	.RMGC		000000	spd	
.MSMIN		000007	spd	.RNAND	050000	000000	spd	
.MSORC		000007	spd	.ROENA		000000	spd	
.MSPAR		000001	spd	.ROP		000020	spd	
.MTIM		000001	spd	.ROR	030000	000000	spd	
.MTWB		000017	spd	.RPAR		000000	spd	
.MXNOR		000007	spd	.RPLUS		000000	spd	
.MXOR		000007	spd	.RPUSH		000100	spd	
.PNTOC		000000	ext	.RRAM	000200	000000	spd	
.RA	000010	000000	spd	.RRDLM		220000	spd	
.RADDR		000000	spd	.RRFCT		000200	spd	
.RAND	040000	000000	spd	.RRMIN	020000	000000	spd	
.RB		400000	spd	.RRPCT		000220	spd	
.RBAD		000001	spd	.RS0A	400000	000000	spd	
.RBUS		001000	spd	.RS0B	300000	000000	spd	
.RCCAF		050000	spd	.RS0Q	200000	000000	spd	
.RCCBF		060000	spd	.RSAB	100000	000000	spd	
.RCCCA		000000	spd	.RSAQ		000000	spd	
.RCCCC		030000	spd	.RSD0	700000	000000	spd	
.RCCCE		160000	spd	.RSDA	500000	000000	spd	
.RCCCP		140000	spd	.RSDQ	600000	000000	spd	
.RCCEB		040000	spd	.RSELC		004000	spd	
.RCCER		100000	spd	.RSELE		005000	spd	
.RCCFZ		020000	spd	.RSELF		003000	spd	
.RCCGC		010000	spd	.RSELM		002000	spd	
.RCCIA		110000	spd	.RSELP		001000	spd	
.RCCLW		170000	spd	.RSK		010000	spd	
.RCCMB		120000	spd	.RSKCN		240000	spd	
.RCCMP		130000	spd	.RSKMB		210000	spd	
.RCCOF		010000	spd	.RSMIN	010000	000000	spd	
.RCCON		030000	spd	.RSORC	100000	000000	spd	
.RCCPP		150000	spd	.RSPAR		000004	spd	
.RCCXA		070000	spd	.RTIM		000010	spd	
.RCENA	000400	000000	spd	.RTWB		000360	spd	
.RCJP		000060	spd	.RXNOR	070000	000000	spd	
.RCJPP		000260	spd	.RXOR	060000	000000	spd	
.RCJS		000020	spd	
.RCJV		000140	spd	
.RCONT		000340	spd	
.RCRTN		000240	spd	
.RCRY		000400	spd	
.RD	001000	000000	spd	
.RDISA		000000	spd	
.RENA	000400	000000	spd	
.RFUNC	010000	000000	spd	
ABORT	   992#
ADRPE	   103#                                                                                                            SEQ 0168
ALL	   395#
ALTCHH	     9#	   457
ALTMGO	  1346#
ALU	   393#
ANXM	  1260#
AROV	  1260#
AROVU	  1260#
AST	  1461#
ATSIN	  1462#
BEGEND	  1342#
BEGIN	    78	    79	    80	  1207	  1208	  1273#
BEGIN1	  1289#	  1343
BELL	  1465#
BIS	  1260#
C1	   265#
C10	   274#
C11	   275#
C12	   276#
C13	   277#
C14	   278#
C15	   279#
C16	   280#
C17	   281#
C18	   282#
C19	   283#
C2	   266#
C20	   284#
C21	   285#
C22	   286#
C23	   287#
C24	   288#
C3	   267#
C4	   268#
C5	   269#
C6	   270#
C7	   271#
C8	   272#
C9	   273#
CALL	   466#
CBUFSZ	    63#
CBUS	   391#
CCA	  1260#
CCALL	   512#
CCALLC	   513#
CCOMP	   515#
CEXIT	   517#
CHAIN	  1012#
CHNOFF	  1260#
CHNON	  1260#
CIPORT	   130#
CJRST	   516#
CLAST	   507#
CLK	  1260#                                                                                                            SEQ 0169
CLKCLR	  1260#
CLKDIS	  1260#
CLKENB	  1260#
CLKU	  1260#
CLOCKF	  1328#
CMDQAV	   431#
CNTLC	  1345#
COMMA	  1454#
CONSW	  1329#
CPOPJ	  1349#
CPOPJ1	  1347#
CRAMPE	   417#
CRLF	  1142	  1143	  1449#
CRLF2	  1146	  1147	  1451#
CRY0	  1260#
CRY1	  1260#
CSETRD	   508#
CSETRW	   510#
CSETWR	   509#
CSHFLG	  1508#
CSHMEM	  1509#
CSRCHN	   414#
CSRRQS	   413#
CSTART	   511#
CWAIT	   514#
CYCL60	  1502#
DCK	  1260#
DCOMP	   420#
DDTLNK	  1026#	  1287
DDTSRT	  1287#
DEBUG1	   124#
DEBUG2	   125#
DEBUG3	   126#
DEBUG4	   127#
DEBUG5	   128#
DECVER	    25#	  1308
DF22F	  1413#
DIAGMN	  1276#
DING	   998#
DINIT	   415#
DOLLAR	  1468#
DSKUPD	  1313
DSPEAR	   123#
E1	   220#
E10	   229#
E11	   230#
E12	   231#
E13	   232#
E14	   233#
E15	   234#
E16	   235#
E17	   236#
E18	   237#                                                                                                            SEQ 0170
E19	   238#
E2	   221#
E20	   239#
E21	   240#
E22	   241#
E23	   242#
E24	   243#
E3	   222#
E4	   223#
E5	   224#
E6	   225#
E7	   226#
E8	   227#
E9	   228#
EBUS	   389#
EBUSPE	   428#
ECOMP	   421#
ENDFIX	  1588#
ERFLG	    57#
ERMORE	  1362#
ERRPC	  1333#
ERRTLS	  1334#
ERSTOP	  1001#
EXCASB	    72#	  1311
EXIOT	  1260#
FOV	  1260#
FOVU	  1260#
FQUERR	   429#
FRDLNK	  1024#
FSELNK	  1023#
FXU	  1260#
GENEPE	   424#
GOTO	   467#
HYPEN	  1459#
ICALL	   530#
ICALLC	   531#
IDLE	   419#
IEXIT	   535#
IJRST	   533#
ILAST	   524#
INHCSH	  1009#
INHFLT	   118#
INHMSG	   119#
INHPAG	  1006#
INXM	  1260#
IOCLR	  1260#
IPAER	   107#
ISETDE	   526#
ISETEI	   529#
ISETEX	   525#
ISETID	   527#
ISETIN	   528#
ISTART	   534#                                                                                                            SEQ 0171
ITERAT	    70#	  1306
ITRCH1	  1366#
ITRCNT	  1306#
IWAIT	   532#
JOB41	  1260#
JOBAPR	  1260#
JOBCNI	  1260#
JOBDDT	  1260#
JOBFF	  1260#
JOBOPC	  1260#
JOBREL	  1260#
JOBREN	  1260#
JOBSA	  1260#
JOBSYM	  1260#
JOBTPC	  1260#
JOBUSY	  1260#
JOBUUO	  1260#
JOBVER	  1260#
KA10	  1260
KAHZ50	  1014#
KAIFLG	  1323#
KI10	  1260
KL10	    71#	  1260
KL10P0	  1260
KLFLG	  1324#
KLOLD	  1222
LAPRAL	  1260#
LAPRP1	  1260#
LAPRP2	  1260#
LAPRP3	  1260#
LAPRP4	  1260#
LAPRP5	  1260#
LAPRP6	  1260#
LAPRP7	  1260#
LAROVT	  1260#
LAST	   471#
LAXER	   106#
LCASDE	  1260#
LCASLD	  1260#
LCASLO	  1260#
LCASWB	  1260#
LCASWD	  1260#
LCCASD	  1260#
LCHNOF	  1260#
LCHNON	  1260#
LCIOPF	  1260#
LCNTRP	  1260#
LCNXER	  1260#
LCPAER	  1260#
LCPWRF	  1260#
LCSBER	  1260#
LCSLOA	  1260#
LCSLOO	  1260#                                                                                                            SEQ 0172
LCTRP	  1260#
LCWSX	  1260#
LDATAF	  1260#
LDCASD	  1260#
LDIOPF	  1260#
LDLNK	  1025#	  1276	  1278
LDNXER	  1260#
LDPAER	  1260#
LDPWRF	  1260#
LDSBER	  1260#
LECASD	  1260#
LEIOPF	  1260#
LENXER	  1260#
LEPAER	  1260#
LEPWRF	  1260#
LESBER	  1260#
LEUPFW	  1260#
LEVNCD	  1260#
LEVNPA	  1260#
LEVNPD	  1260#
LEXCMP	  1260#
LFLGCL	  1260#
LFLGDS	  1260#
LFLGEN	  1260#
LFLGST	  1260#
LFP	  1463#
LGWC	   108#
LINSTF	  1260#
LINT	  1260#
LIOCLR	  1260#
LIOPFE	  1260#
LKNTRP	  1260#
LKTRP	  1260#
LLACBL	  1260#
LLDUSB	  1260#
LLPRCN	  1260#
LMUUO	  1260#
LMUUOP	  1260#
LNXMEN	  1260#
LNXMER	  1260#
LOGO	   101#
LOOPER	  1000#
LOOPGM	   120#
LOOPTS	   121#
LPAREN	  1260#
LPARER	  1260#
LPDOVT	  1260#
LPFWPC	  1260#
LPGFTR	  1260#
LPICH1	  1260#
LPICH2	  1260#
LPICH3	  1260#
LPICH4	  1260#                                                                                                            SEQ 0173
LPICH5	  1260#
LPICH6	  1260#
LPICH7	  1260#
LPICHA	  1260#
LPICLR	  1260#
LPIIP1	  1260#
LPIIP2	  1260#
LPIIP3	  1260#
LPIIP4	  1260#
LPIIP5	  1260#
LPIIP6	  1260#
LPIIP7	  1260#
LPIOFF	  1260#
LPION	  1260#
LPNTRP	  1260#
LPRCH1	  1260#
LPRCH2	  1260#
LPRCH3	  1260#
LPRCH4	  1260#
LPRCH5	  1260#
LPRCH6	  1260#
LPRCH7	  1260#
LPTRP	  1260#
LPWRFE	  1260#
LPWRFL	  1260#
LREQSE	  1260#
LRQCLR	  1260#
LSBSEN	  1260#
LSBUSE	  1260#
LSCASD	  1260#
LSECMO	  1260#
LSIOPF	  1260#
LSMODE	  1260#
LSNTRP	  1260#
LSNXER	  1260#
LSPAER	  1260#
LSPWRF	  1260#
LSSBER	  1260#
LSTRP	  1260#
LTRP3T	  1260#
LTRPAE	  1260#
LTRPEN	  1260#
LUSCMP	  1260#
LUUO	  1260#
LUUO1	   454#	  1393	  1394
LUUO10	  1393	  1398
LUUO11	  1393	  1398
LUUO12	  1393	  1399
LUUO13	  1393	  1399
LUUO14	  1393	  1400
LUUO15	  1393	  1400
LUUO16	  1393	  1401
LUUO17	  1393	  1401                                                                                                     SEQ 0174
LUUO2	   455#	  1393	  1395
LUUO20	  1393	  1402
LUUO21	  1393	  1402
LUUO22	  1393	  1403
LUUO23	  1393	  1403
LUUO24	  1393	  1404
LUUO25	  1393	  1404
LUUO26	  1393	  1405
LUUO27	   458#	  1393	  1405
LUUO3	  1393	  1395
LUUO30	  1393	  1406
LUUO31	  1393	  1406
LUUO32	  1393	  1407
LUUO33	  1393	  1407
LUUO4	  1393	  1396
LUUO5	  1393	  1396
LUUO6	   456#	  1393	  1397
LUUO7	   457#	  1393	  1397
LUUOI	  1260#
LWRITE	  1260#
M1	   245#
M10	   254#
M11	   255#
M12	   256#
M13	   257#
M14	   258#
M15	   259#
M16	   260#
M17	   261#
M18	   262#
M19	   263#
M2	   246#
M3	   247#
M4	   248#
M5	   249#
M6	   250#
M7	   251#
M8	   252#
M9	   253#
MAPNEW	  1414#
MARGIN	  1336#
MBCN	    58#
MBERR	   418#
MBUS	   394#
MCBUS	   132#
MCNVER	    24#	  1308
MEMLOW	  1416#
MEMMAP	    74#	  1314
MEMSIZ	  1417#
MEMTOT	  1415#
MINUS	  1458#
MLAST	   290#
MMPROC	   131#                                                                                                            SEQ 0175
MODDVC	  1008#
MODDVL	  1207	  1207#	  1309
MODDVU	  1208	  1208#	  1310
MODLNK	  1027#	  1273
MONCTL	  1326#
MONFLG	  1325#
MONTEN	  1327#
MONTYP	  1540#
MPER	   102#
MPROC	   390#
MPRUN	   436#
MPVU	  1260#
MSG	   465#
MVRERR	   430#
NDCB	   405#
NDMP	   404#
NEXM	   105#
NIPORT	   129#
NOPNT	   996#
NOTWC0	   104#
NXMU	  1260#
OPRSEL	  1010#
OPTIME	  1428#
OVN	   110#
P	    59#	  1053	  1054	  1055	  1056	  1260#	  1348
PAG	  1260#
PALERS	  1002#
PARCLR	  1260#
PARDIS	  1260#
PAREA1	    90#	  1304
PAREA2	    91#	  1305
PAREA3	    92#	  1302
PAREA4	    93#	  1303
PAREA5	    94#	  1315
PAREA6	    95#	  1316
PAREA7	  1315#
PAREA8	  1316#
PARENB	  1260#
PARU	  1260#
PASCNT	  1330#
PAT	    56#
PCLEAR	   422#
PDISF	  1425#
PDLOVU	  1260#
PDSABL	   434#
PENABL	   435#
PERIOD	  1455#
PFSTRT	  1282#
PGMNAM	     8#	  1307
PIA00	   437#
PIA01	   438#
PIA02	   439#
PICHN1	  1260#                                                                                                            SEQ 0176
PICHN2	  1260#
PICHN3	  1260#
PICHN4	  1260#
PICHN5	  1260#
PICHN6	  1260#
PICHN7	  1260#
PICHNA	  1260#
PICLR	  1260#
PIOFF	  1260#
PION	  1260#
PLIST	  1494#	  1494
PLISTE	  1494	  1496#
PLISTS	  1495#
PLUS	  1460#
PNTENB	  1424#
PNTEXT	  1303#
PNTFLG	  1423#
PNTINH	  1426#
PNTLPT	   997#
PNTNAM	  1302#
PNTSPC	  1427#
PORTP	   412#
PPDEC	     9#	   456
PPDECF	     9#	   455
PVPAGI	  1521#
PWFCLR	  1260#
QUEST	  1466#
RADIX	  1469#
RADLSC	  1471#
RADLSP	  1470#
RANDBS	  1304#
REENTR	  1284#
RELIAB	  1004#
REPT	  1260#
REPT1	  1260#
REPTU	  1382#
REQSET	  1260#
RESQAV	   432#
RESRT1	  1359#
RESRT2	  1360#
RETURN	  1291#
RQINT	   416#
RSTART	   993#
RTP	  1464#
RUNALL	   122#
RUNFLG	  1331#
SADR1	    78#	  1280
SADR10	    87#	  1296
SADR11	    88#	  1297
SADR2	    79#	  1282
SADR3	    80#	  1284
SADR4	    81#
SADR5	    82#	  1345                                                                                                     SEQ 0177
SADR6	    83#	  1346
SADR7	    84#	  1293
SADR8	    85#	  1294
SADR9	    86#	  1295
SBINIT	  1066	  1290#
SCOPE	  1383#
SCOPE1	     8#	   458
SELLAR	   425#
SEQ	   392#
SFSTRT	  1280#
SHWC	   109#
SINCYC	   426#
SLASH	  1467#
SM10	  1571#
SPACE	  1456#
SPARE1	   427#
SPARE2	   433#
SRTDDT	    81	    83	  1286#
SSCALL	   481#
SSCHK	   482#
SSCONT	   480#
SSJRST	   484#
SSLAST	   478#
SSSTRT	   479#
START	     8#	    82	    84	    85	    86	    87	    88	  1274
START1	  1293#
START2	  1294#
START3	  1295#
START4	  1296#
START5	  1297#
STARTA	     8#	  1289
SUBLNK	  1028#	  1290
SWPTAB	  1577#
SWTEXR	  1305#
SYSEXR	  1278#
TAB	  1457#
TCALL	   493#
TCALLC	   494#
TCHECK	   496#
TCONT	   492#
TDENA	   406#
TENLEN	   207#
TESTPC	  1332#
TEXIT	   498#
TICKS	  1335#
TJRST	   497#
TLAST	   490#
TOTALS	   994#
TRACET	   117#
TSSTAR	   499#
TSTART	   491#
TSTEBF	   423#
TTNBRF	  1515#                                                                                                            SEQ 0178
TTYFIL	  1431#
TTYSPD	  1432#
TUSER	   403#
TXALL	   470#
TXNOT	   468#
TXTINH	  1005#
TXYES	   469#
USER	  1322#
USERF	  1260#
USRASB	    73#	  1312
USRCRF	  1441#
USRLFF	  1440#
UUODIS	  1394#
UUOEXT	  1350#
UUORTN	  1351#
UUOSKP	  1348#
ZALU	   399#
ZCBUS	   401#
ZEBUS	   397#
ZMPROC	   400#
ZSEQ	   398#
$$MUUO	  1546#
$$OUTE	  1552#
$$TAX1	  1564#
$$TAX2	  1565#
$$TOGG	  1558#
$$UUO	  1535#
$ACC0	  1373#
$BEND1	  1343#
$BEND2	  1344#
$CHRIN	  1434#
$CRLF	  1436#
$DEVCH	  1260#
$DSKUP	  1313#
$DVCH1	  1260#
$DVOFF	  1430#
$EMODE	  1311#
$FFF	  1438#
$IBUF	  1486#
$INEXT	  1488#
$INNM	  1487#
$ITRHL	  1354#
$ITRX1	  1355#
$LPAPE	    76#
$MMAP	  1314#
$MODVL	  1309#
$MODVU	  1310#
$OBUF	  1477#
$ONETM	  1337#
$OUTEX	  1479#
$OUTNM	  1478#
$PAPER	  1260
$PARER	  1361#                                                                                                            SEQ 0179
$PNAME	  1307#
$PSHER	  1365#
$PVER	  1308#
$RSRTX	  1357#
$RSRTY	  1358#
$SPAG1	  1377#
$START	  1274#
$SVAPR	  1375#
$SVPAG	  1376#
$SVPI	  1374#
$SVUPC	  1380#
$SVUUO	  1379#
$TABF	  1437#
$TTCHR	  1433#
$TWCNT	  1429#
$TYPNB	  1435#
$UMODE	  1312#
$UORTX	  1352#
$USRHL	  1356#
$UUOER	  1353#	  1394
$VTF	  1439#
%ACTFL	  1386#
%ACTUL	  1387#
%COREC	  1385#
%CORFL	  1384#
%DISCR	  1388#
%ERHI1	  1527#
%ERHI2	  1528#
%ERHI3	  1529#
.JB41	  1260#
.JBAPR	  1260#
.JBCNI	  1260#
.JBDDT	  1260#
.JBFF	  1260#
.JBOPC	  1260#
.JBREL	  1260#
.JBREN	  1260#
.JBSA	  1260#
.JBSYM	  1260#
.JBTPC	  1260#
.JBUSY	  1260#
.JBUUO	  1260#
.JBVER	  1260#
.LA	   721#
.LADDR	   609#
.LAND	   685#
.LB	   725#
.LBAD	   933#
.LBUS	   825#
.LCCAF	   761#
.LCCBF	   765#
.LCCCA	   741#
.LCCCC	   753#                                                                                                            SEQ 0180
.LCCCE	   797#
.LCCCP	   789#
.LCCEB	   757#
.LCCER	   773#
.LCCFZ	   749#
.LCCGC	   745#
.LCCIA	   777#
.LCCLW	   801#
.LCCMB	   781#
.LCCMP	   785#
.LCCOF	   737#
.LCCON	   733#
.LCCPP	   793#
.LCCXA	   769#
.LCENA	   705#
.LCJP	   869#
.LCJPP	   901#
.LCJS	   861#
.LCJV	   881#
.LCONT	   913#
.LCRTN	   897#
.LCRY	   849#
.LD	   701#
.LDISA	   709#
.LENA	   713#
.LFUNC	   665#
.LJ	   613#
.LJMAP	   865#
.LJRP	   885#
.LJSRP	   877#
.LJZ	   857#
.LLDCT	   905#
.LLDLM	   813#
.LLOOP	   909#
.LLSAD	   805#
.LMARK	   929#
.LMGC	   625#
.LNAND	   689#
.LOENA	   621#
.LOP	   853#
.LOR	   681#
.LPAR	   617#
.LPLUS	   669#
.LPUSH	   873#
.LRAM	   717#
.LRDLM	   817#
.LRFCT	   889#
.LRMIN	   677#
.LRPCT	   893#
.LS0A	   649#
.LS0B	   645#
.LS0Q	   641#
.LSAB	   637#                                                                                                            SEQ 0181
.LSAQ	   633#
.LSD0	   661#
.LSDA	   653#
.LSDQ	   657#
.LSELC	   841#
.LSELE	   845#
.LSELF	   837#
.LSELM	   833#
.LSELP	   829#
.LSK	   729#
.LSKCN	   821#
.LSKMB	   809#
.LSMIN	   673#
.LSORC	   629#
.LSPAR	   925#
.LTIM	   921#
.LTWB	   917#
.LXNOR	   697#
.LXOR	   693#
.MA	   723#
.MADDR	   611#
.MAND	   687#
.MB	   727#
.MBAD	   935#
.MBUS	   827#
.MCCAF	   763#
.MCCBF	   767#
.MCCCA	   743#
.MCCCC	   755#
.MCCCE	   799#
.MCCCP	   791#
.MCCEB	   759#
.MCCER	   775#
.MCCFZ	   751#
.MCCGC	   747#
.MCCIA	   779#
.MCCLW	   803#
.MCCMB	   783#
.MCCMP	   787#
.MCCOF	   739#
.MCCON	   735#
.MCCPP	   795#
.MCCXA	   771#
.MCENA	   707#
.MCJP	   871#
.MCJPP	   903#
.MCJS	   863#
.MCJV	   883#
.MCONT	   915#
.MCRTN	   899#
.MCRY	   851#
.MD	   703#
.MDISA	   711#                                                                                                            SEQ 0182
.MENA	   715#
.MFUNC	   667#
.MJ	   615#
.MJMAP	   867#
.MJRP	   887#
.MJSRP	   879#
.MJZ	   859#
.MLDCT	   907#
.MLDLM	   815#
.MLOOP	   911#
.MLSAD	   807#
.MMARK	   931#
.MMGC	   627#
.MNAND	   691#
.MOENA	   623#
.MOP	   855#
.MOR	   683#
.MPAR	   619#
.MPLUS	   671#
.MPUSH	   875#
.MRAM	   719#
.MRDLM	   819#
.MRFCT	   891#
.MRMIN	   679#
.MRPCT	   895#
.MS0A	   651#
.MS0B	   647#
.MS0Q	   643#
.MSAB	   639#
.MSAQ	   635#
.MSD0	   663#
.MSDA	   655#
.MSDQ	   659#
.MSELC	   843#
.MSELE	   847#
.MSELF	   839#
.MSELM	   835#
.MSELP	   831#
.MSK	   731#
.MSKCN	   823#
.MSKMB	   811#
.MSMIN	   675#
.MSORC	   631#
.MSPAR	   927#
.MTIM	   923#
.MTWB	   919#
.MXNOR	   699#
.MXOR	   695#
.PNTOC	     9#	   454
.RA	   722#
.RADDR	   610#
.RAND	   686#
.RB	   726#                                                                                                            SEQ 0183
.RBAD	   934#
.RBUS	   826#
.RCCAF	   762#
.RCCBF	   766#
.RCCCA	   742#
.RCCCC	   754#
.RCCCE	   798#
.RCCCP	   790#
.RCCEB	   758#
.RCCER	   774#
.RCCFZ	   750#
.RCCGC	   746#
.RCCIA	   778#
.RCCLW	   802#
.RCCMB	   782#
.RCCMP	   786#
.RCCOF	   738#
.RCCON	   734#
.RCCPP	   794#
.RCCXA	   770#
.RCENA	   706#
.RCJP	   870#
.RCJPP	   902#
.RCJS	   862#
.RCJV	   882#
.RCONT	   914#
.RCRTN	   898#
.RCRY	   850#
.RD	   702#
.RDISA	   710#
.RENA	   714#
.RFUNC	   666#
.RJ	   614#
.RJMAP	   866#
.RJRP	   886#
.RJSRP	   878#
.RJZ	   858#
.RLDCT	   906#
.RLDLM	   814#
.RLOOP	   910#
.RLSAD	   806#
.RMARK	   930#
.RMGC	   626#
.RNAND	   690#
.ROENA	   622#
.ROP	   854#
.ROR	   682#
.RPAR	   618#
.RPLUS	   670#
.RPUSH	   874#
.RRAM	   718#
.RRDLM	   818#
.RRFCT	   890#                                                                                                            SEQ 0184
.RRMIN	   678#
.RRPCT	   894#
.RS0A	   650#
.RS0B	   646#
.RS0Q	   642#
.RSAB	   638#
.RSAQ	   634#
.RSD0	   662#
.RSDA	   654#
.RSDQ	   658#
.RSELC	   842#
.RSELE	   846#
.RSELF	   838#
.RSELM	   834#
.RSELP	   830#
.RSK	   730#
.RSKCN	   822#
.RSKMB	   810#
.RSMIN	   674#
.RSORC	   630#
.RSPAR	   926#
.RTIM	   922#
.RTWB	   918#
.RXNOR	   698#
.RXOR	   694#
ALTCHK	   451#
ATABLE	   322#                                                                                                            SEQ 0185
CALC	   949#
CFIBF	   446#
CFLUSH	  1178#
CINVAL	  1177#
CLOKOP	  1172#
CONCAT	   956#
CTABLE	   354#
CWRTBI	  1179#
DROPDV	  1139#
ENDUUO	  1185#	  1342
EOPUUO	  1186#	  1344
ERLOOP	  1230#
ERLP1	  1231#
ERLP2	  1232#
ERRHLT	  1073#
ERROR	  1239#
ERROR1	  1250#
ERUUO	  1229#
FATAL	  1072#
FIELD	   962#
FMSG	   153#
FMSGC	   155#
FMSGCD	   161#
FMSGD	   158#
FRD36	  1214#
FRD8	  1215#
FREAD	  1213#
FSELEC	  1212#
GET	  1056#
GO	  1053#
HALT	    84	    85	    86	    87	    88	  1058#	  1363
ITABLE	   371#
JEN	  1060#
JRSTF	  1059#
JSYS	   445#	   446
MAPADR	  1195#
MAPCNK	  1196#
MAPMEM	  1192#
MAPPNT	  1198#
MAPSET	  1197#
MEMSEG	  1194#
MEMZRO	  1193#
MODPCP	  1205#
MODPCU	  1204#
MTROP	  1173#
MWORD	   974#
PBELL	  1148#
PCRL	  1142#
PCRL2	  1146#
PCRL2F	  1147#
PCRLF	  1143#
PDEC	   450#
PDECF	   449#                                                                                                            SEQ 0186
PFORCE	  1150#
PGMINT	  1066#
PJRST	  1057#
PMSG	  1152#
PMSGF	  1155#
PNT1	  1108#
PNT11	  1122#
PNT11F	  1123#
PNT1F	  1109#
PNT2	  1110#
PNT2F	  1111#
PNT3	  1112#
PNT3F	  1113#
PNT4	  1114#
PNT4F	  1115#
PNT5	  1116#
PNT5F	  1117#
PNT6	  1118#
PNT6F	  1119#
PNT7	  1120#
PNT7F	  1121#
PNTA	  1094#
PNTADF	  1125#
PNTADR	  1124#
PNTAF	  1095#
PNTAL	  1096#
PNTALF	  1097#
PNTCHF	  1107#
PNTCHR	  1106#
PNTCI	  1104#
PNTCIF	  1105#
PNTCW	  1140#
PNTCWF	  1141#
PNTDCF	  1133#
PNTDEC	  1132#
PNTDS	  1134#
PNTDSF	  1135#
PNTHW	  1128#
PNTHWF	  1129#
PNTMGN	  1219#
PNTMSF	  1101#
PNTMSG	  1100#
PNTNM	  1136#
PNTOCC	   448#
PNTOCF	  1131#
PNTOCS	  1130#
PNTOCT	  1126#
PNTOTF	  1127#
PNTSIX	  1137#
PNTSXF	  1138#
PSIXL	  1098#
PSIXLF	  1099#
PSIXM	  1102#                                                                                                            SEQ 0187
PSIXMF	  1103#
PSP	  1144#
PSPF	  1145#
PUT	  1055#
REPTUO	  1233#
RGET	   189#
RPUT	   175#
RTN	  1054#	  1350
S	   984#
SCOPER	   452#
SIXBTZ	  1161#
STABLE	   306#
SWITCH	  1167#
TASCIZ	   169#
TEST	   209#
TMSG	   142#
TMSGC	   144#
TMSGCD	   150#
TMSGD	   147#
TTABLE	   338#
TTALTM	  1088#
TTICHR	  1081#
TTICLR	  1091#
TTICNV	  1086#
TTIDEC	  1085#
TTINO	  1083#
TTIOCT	  1084#
TTIYES	  1082#
TTLOOK	  1087#
TTSIXB	  1089#
TTYINP	  1090#
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 1
DFPTA1	MAC	10-Oct-83 21:43		Externs / Entrys                                                                   SEQ 0188

     1						TITLE	DFPTA (Port Basic Device Diagnostic)
     2
     3						SUBTTL	Externs / Entrys
     4
     5						SALL
     6
     7						SEARCH	DFPTA,MONSYM
     8	000137					LOC	137
     9	000137	000000	000001			MCNVER,,DECVER
    10	030600					LOC	ENDFIX+1
    11
    12					; Miscellaneous stuff
    13
    14						INTERN	UDEBUG			; no-port user mode debug switch
    15						INTERN	MDEBUG			; error message debug switch
    16						INTERN	SDEBUG			; single step debug switch
    17						INTERN	LDEBUG			; ucode load debug switch
    18						INTERN	IDEBUG			; fault isolation debug switch
    19						INTERN	PGMNAM			; program name
    20						ENTRY	START,STARTA		; start addresses
    21						INTERN	BUFF			; data buffer
    22
    23					; Microcode routines
    24
    25						ENTRY	CALPAR,DWCRAM,DRCRAM,TLOAD,MLOADN,MLOADY
    26						INTERN	CADDR,CWORDL,CWORDR,PARFLG
    27
    28					; Miscellaneous routines
    29
    30						ENTRY	CSRPNT,CSRENG,TRACE,ODELAY,TSTPNT
    31						INTERN	TWORD,TPAT,FINPUT,FINECH
    32
    33					; Test variables
    34
    35						ENTRY	INDLIS,TSTNAM,TSTCLS,TSTNUM,TSTSUB,TSTPC,TSTADD,TSTFLG
    36						ENTRY	TSTMIC,TSTMSK,TSTREP,TSTOFF,SPEAR2,SPREP2
    37						INTERN	ALTF,TSLOD1,TSLOD2,TAKFIL,TSTINH,PMODE
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 2
DFPTA1	MAC	10-Oct-83 21:43		Externs / Entrys                                                                   SEQ 0189

    38
    39					; Test execute routines
    40
    41						ENTRY	SEXEC,SSPNT		; single step test
    42						INTERN	NSSTEP,SSADDR,SEADDR,SAADDR
    43
    44						ENTRY	AEXEC,AAPNT		; ALU type test
    45						INTERN	ALSRT,ALCSR,ALERR,ALCOR,ALACT,ALEBF,ALTIM
    46						INTERN	ALFLS,ALFLE,ALFLC,ALFLT
    47
    48						ENTRY	BEXEC,BBPNT		; basic ALU type test (same as SEXEC
    49						INTERN	CEBUF,AEBUF		;  but check EBUF data not next addr)
    50
    51						ENTRY	TEXEC,TTPNT		; test (full speed) type
    52						INTERN	TADDR,TADDRF,TCSRF,TEBUFC,TEBUFA
    53
    54						ENTRY	CEXEC,CCPNT		; data transfer type test
    55						INTERN	CCSR,CLEN,CPAT,CSTATF,CEBUFA,CEBUFC,QADDRF,QADDR,CDERR
    56
    57						ENTRY	IEXEC,IIPNT		; interrupt type test
    58						INTERN	ICSR,IADDR,IFLAG,IIOPF
    59
    60					; Interrupt activity print routines
    61
    62						ENTRY	IPRINT
    63
    64					; Channel/device handling variables
    65
    66						ENTRY	CBUF,CSTWRD,PORTCI,PORTNI,NISEL,CISEL,PORSEL,UUT
    67
    68					; EXTERN's located in DFPTA2,3,4,5,6,7,8,9,A.MAC (Tests)
    69
    70						EXTERN	TSTE1,TSTE2,TSTE3,TSTE4,TSTE5,TSTE6,TSTE7,TSTE10
    71						EXTERN	TSTE11,TSTE12,TSTE13,TSTE14,TSTE15,TSTE16,TSTE17,TSTE20
    72						EXTERN	TSTE21,TSTE22,TSTE23,TSTE24,TSTE25,TSTE26,TSTE27,TSTE30
    73						EXTERN	TSTE31,TSTE32,TSTE33,TSTE34,TSTE35,TSTE36,TSTE37,TSTE40
    74						EXTERN	TSTE41,TSTE42,TSTE43,TSTE44,TSTE45,TSTE46,TSTE47,TSTE50
    75						EXTERN	TSTE51,TSTE52,TSTE53,TSTE54,TSTE55,TSTE56,TSTE57,TSTE60
    76						EXTERN	TSTE61,TSTE62,TSTE63,TSTE64,TSTE65,TSTE66,TSTE67,TSTE70
    77						EXTERN	TSTE71,TSTE72,TSTE73,TSTE74,TSTE75,TSTE76
    78
    79						EXTERN	TSTS1,TSTS2,TSTS3,TSTS4,TSTS5,TSTS6,TSTS7,TSTS10
    80						EXTERN	TSTS11,TSTS12,TSTS13,TSTS14,TSTS15,TSTS16,TSTS17,TSTS20
    81						EXTERN	TSTS21,TSTS22,TSTS23,TSTS24,TSTS25,TSTS26,TSTS27,TSTS30
    82						EXTERN	TSTS31,TSTS32,TSTS33,TSTS34,TSTS35,TSTS36,TSTS37,TSTS40
    83						EXTERN	TSTS41,TSTS42,TSTS43,TSTS44,TSTS45,TSTS46,TSTS47,TSTS50
    84						EXTERN	TSTS51,TSTS52,TSTS53,TSTS54,TSTS55,TSTS56,TSTS57,TSTS60
    85						EXTERN	TSTS61,TSTS62,TSTS63,TSTS64,TSTS65,TSTS66,TSTS67,TSTS70
    86
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 3
DFPTA1	MAC	10-Oct-83 21:43		Externs / Entrys                                                                   SEQ 0190

    87						EXTERN	TSTA1,TSTA2,TSTA3,TSTA4,TSTA5,TSTA6,TSTA7,TSTA10
    88						EXTERN	TSTA11,TSTA12,TSTA13,TSTA14,TSTA15,TSTA16,TSTA17,TSTA20
    89						EXTERN	TSTA21,TSTA22,TSTA23,TSTA24,TSTA25,TSTA26,TSTA27,TSTA30
    90						EXTERN	TSTA31,TSTA32,TSTA33,TSTA34,TSTA35,TSTA36,TSTA37,TSTA40
    91						EXTERN	TSTA41,TSTA42
    92
    93						EXTERN	TSTU1,TSTU2,TSTU3,TSTU4,TSTU5,TSTU6,TSTU7,TSTU10
    94						EXTERN	TSTU11,TSTU12,TSTU13,TSTU14,TSTU15,TSTU16,TSTU17,TSTU20
    95						EXTERN	TSTU21,TSTU22,TSTU23,TSTU24,TSTU25,TSTU26,TSTU27,TSTU30
    96						EXTERN	TSTU31,TSTU32,TSTU33,TSTU34,TSTU35,TSTU36,TSTU37,TSTU40
    97						EXTERN	TSTU41
    98
    99						EXTERN	TSTC1,TSTC2,TSTC3,TSTC4,TSTC5,TSTC6,TSTC7,TSTC10
   100						EXTERN	TSTC11,TSTC12,TSTC13,TSTC14,TSTC15,TSTC16,TSTC17,TSTC20
   101						EXTERN	TSTC21,TSTC22,TSTC23,TSTC24,TSTC25,TSTC26,TSTC27,TSTC30
   102						EXTERN	TSTC31,TSTC32,TSTC33,TSTC34,TSTC35,TSTC36,TSTC37,TSTC40
   103						EXTERN	TSTC41,TSTC42,TSTC43,TSTC44,TSTC45,TSTC46,TSTC47,TSTC50
   104						EXTERN	TSTC51,TSTC52,TSTC53,TSTC54,TSTC55,TSTC56,TSTC57,TSTC60
   105
   106					; EXTERN's located in DFPTAI.MAC (Port Handling Routines module)
   107
   108						EXTERN	LDEBUF,LDRAR,LDCRAM,LDCSR,RDEBUF,RDLAR,RDCRAM,RDCSR
   109						EXTERN	SETEBU,SETLAR,CLREBU,CHKCSR,ERESET,IPACLR,ISTOP
   110						EXTERN	IPASRT,IPASTP,IPASST,SLAST,SNEXT,EADDR,AADDR,SDATA
   111						EXTERN	INITPI,INITPD,.PIOFF,.PION,SETVEC,.CONI,.CONO,.DATAO,.DATAI
   112						EXTERN	INTNUM,INTPC,INTTYP,INTCON,INTAPR,INTTIM,INTUSE,INTCSR,INTEND
   113						EXTERN	CHINIT,GENCCW,GETLOG,CCWPNT,LOGPNT,CBASE,LOGBUF,CHDATA
   114						EXTERN	DSETUP,DEVREQ,DEVREL,SNARKF,USRION,PFSET,.INPNT,.INWD1
   115						EXTERN	HAVENI,HAVECI,REQ1,REQ2,REL
   116
   117					; EXTERN's located in DFPTAU.MAC (Utility Routines module)
   118
   119						EXTERN	CLRBUF,TTYYES,STCLOK,RUNTME,CURTIM,DEBTIM,PNTDEV,.CLOSE
   120						EXTERN	FORPNT,CONVSX,FINIT,UNAME,FGETW,FINCMD,FIOFF,FOARG,.RESET
   121						EXTERN	.SWCHP,SWITT,.ISWT,SWCHPT,.RSWIT,.LSWIT,SWRGT,SWCOM,.PNTOC
   122						EXTERN	.COMM,.CGOT,.SARG,.OARG,.DARG,ARGFLG,ARGUM,CHKARG,LASARG,DECYN
   123						EXTERN	SCOOFF,SCOSW,BUFGEN,BUFCOM,WRDERR,PATPNT
   124
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 4
DFPTA1	MAC	10-Oct-83 21:43		Initialization                                                                     SEQ 0191

   125						SUBTTL	Initialization
   126
   127						SALL
   128
   129	030600				PGMNAM:	ASCIZ	$
   130	030600	015 012 104 106 120 	DFPTA Port Basic Diagnostic
   131	030601	124 101 040 120 157 
   132	030602	162 164 040 102 141 
   133	030603	163 151 143 040 104 
   134	030604	151 141 147 156 157 
   135	030605	163 164 151 143 015 
   136	030606	012 000 000 000 000 	$
   137
   138	030607	402 00 0 00 030056 	SB:	SETZM	$ONETM			; reinit everything
   139	030610				START:
   140
   141					; First clear debug switches and set up PGMINT variables - MAPNEW, PVPAGI
   142
   143	030610	402 00 0 00 064413'		SETZM	UDEBUG#			; no-port user mode debug switch
   144	030611	402 00 0 00 064352'		SETZM	MDEBUG#			; error message debug switch
   145	030612	402 00 0 00 064377'		SETZM	SDEBUG#			; single step debug switch
   146	030613	402 00 0 00 064346'		SETZM	LDEBUG#			; ucode load debug switch
   147	030614	402 00 0 00 064344'		SETZM	IDEBUG#			; fault isolation debug switch
   148	030615	476 00 0 00 030143 		SETOM	MAPNEW			; map all memory
   149	030616	476 00 0 00 030511 		SETOM	PVPAGI			; always use paging
   150
   151					; MCPUS - Multiple cpu print switch - If this flag is cleared, the multiple
   152					; cpu message is printed in full, if set, only the question asking which
   153					; cpu to run on is asked.
   154
   155	030617	336 00 0 00 030056 		SKIPN	$ONETM			; first time through here?
   156	030620	402 00 0 00 064351'		SETZM	MCPUS#			; yes - clear the flag
   157
   158					; Set up cache usage
   159
   160	030621	402 00 0 00 030506 		SETZM	CSHFLG			; allow pgm and any buffer space 
   161	030622	402 00 0 00 030507 		SETZM	CSHMEM			;   to be in cache
   162
   163					; Init file input switch
   164
   165	030623	402 00 0 00 064341'		SETZM	FINPUT#			; initialize 'file input' switch
   166	030624	476 00 0 00 064340'		SETOM	FINECH#			; set echo switch
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 5
DFPTA1	MAC	10-Oct-83 21:43		Initialization                                                                     SEQ 0192

   167
   168					; Init flags/switches
   169
   170	030625	402 00 0 00 064343'		SETZM	FMTTYP#			; allow all data formats
   171	030626	402 00 0 00 064327'		SETZM	BONETM#			; clear $ONETM flag
   172	030627	336 00 0 00 030056 		SKIPN	$ONETM			; 1st time pgm init?
   173	030630	476 00 0 00 064327'		SETOM	BONETM			; yes - set $ONETM flag
   174	030631	332 00 0 00 030056 		SKIPE	$ONETM			; 1st time pgm init?
   175	030632	254 00 0 00 030644 		JRST	STRT1			; no - skip next bit of code
   176
   177					; First time only code
   178
   179	030633	402 00 0 00 000000*		SETZM	SWRGT			; yes - clear right hand switches
   180	030634	201 00 0 00 000000*		MOVEI	.RSWIT			; get start addr of prompt table
   181	030635	202 00 0 00 030525 		MOVEM	SWPTAB			; setup for switch prompting
   182
   183					; Init print enable & forced print switch, and SPEAR flags
   184
   185	030636	211 00 0 00 023420 		MOVNI	^D10000			; set the printout limit
   186	030637	202 00 0 00 030220 		MOVEM	PNTENB			; so won't die too soon
   187	030640	402 00 0 00 000000*		SETZM	FORPNT			; clear forced print switch
   188	030641	402 00 0 00 030521 		SETZM	$$TOGGLE		; enable switches
   189	030642	402 00 0 00 064401'		SETZM	SPEAR1#			; clear 'SPEAR initial msg prnted' flag
   190	030643	402 00 0 00 064402'		SETZM	SPEAR2#			; clear 'SPEAR err/fin msg prnted' flag
   191
   192					; Standard startup and handle paging and clock
   193
   194	030644	260 17 0 00 000000*	STRT1:	GO	.RESET			; reset everything
   195	030645	265 00 0 00 030011 		PGMINT				; init the program
   196	030646	476 00 0 00 030516 		SETOM	MONTYP			; force to be TOPS-20
   197	030647	205 00 0 00 500000 		MOVSI	500000			; access bits for the page table
   198	030650	502 00 0 00 000400 		HLLM	400			; maps 340000 to physical 0
   199	030651	201 00 0 00 340000 		MOVEI	340000			; causes paging when E is calculated
   200	030652	202 00 0 00 000000*		MOVEM	CBASE			; channel routines now page correctly
   201	030653	260 17 0 00 000000*		GO	STCLOK			; start the clock...
   202	030654	402 00 0 00 030047 		SETZM	PASCNT			; clear pass count
   203
   204					; Initialize page fault handler
   205
   206	030655	260 17 0 00 000000*		GO	PFSET			; set up for page faults on EBUS xfrs
   207
   208					; Set/clear debug switches
   209
   210	030656	402 00 0 00 064413'		SETZM	UDEBUG			; clear no-port user mode debug switch
   211	030657	402 00 0 00 064352'		SETZM	MDEBUG			; clear error message debug switch
   212	030660	402 00 0 00 064346'		SETZM	LDEBUG			; clear ucode load debug switch
   213	030661	402 00 0 00 064344'		SETZM	IDEBUG			; fault isolation debug switch
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 6
DFPTA1	MAC	10-Oct-83 21:43		Initialization                                                                     SEQ 0193

   214	030662	260 17 0 00 000000*		GO	SWITT			; get switches
   215	030663	602 00 0 00 002000 		TRNE	DEBUG1			; debug switch set?
   216	030664	476 00 0 00 064413'		SETOM	UDEBUG			; set no-port user mode debug switch
   217	030665	602 00 0 00 001000 		TRNE	DEBUG2			; debug switch set?
   218	030666	476 00 0 00 064352'		SETOM	MDEBUG			; set error message debug switch
   219	030667	602 00 0 00 000200 		TRNE	DEBUG4			; debug switch set?
   220	030670	476 00 0 00 064346'		SETOM	LDEBUG			; set ucode load debug switch
   221	030671	602 00 0 00 000100 		TRNE	DEBUG5			; debug switch set?
   222	030672	476 00 0 00 064344'		SETOM	IDEBUG			; set fault isolation debug switch
   223	030673	201 00 0 00 000005 		MOVEI	ITERAT			; get default pass count
   224	030674	202 00 0 00 030024 		MOVEM	ITRCNT			; save in FIXED area location
   225	030675	402 00 0 00 046330 		SETZM	PMODE			; set program mode to 'no test'
   226
   227					; Determine configuration
   228
   229	030676	260 17 0 00 032142 		GO	CONFIG			; determine configuration
   230	030677	260 17 0 00 030662*		GO	SWITT			; get program switches
   231	030700	607 00 0 00 000010 		TLNN	OPRSEL			; operator select switch set?
   232						JRST	[GO	TSTSEX		; no - print selection and
   233							 MOVE	NISEL		;   continue.  If no ports
   234							 IOR	CISEL		;   are selected, exit.
   235							 TRNN	4
   236							 JRST	STARTB
   237	030701	254 00 0 00 051516 			 JRST	STARTA]
   238	030702	602 00 0 00 000040 		TRNE	NIPORT			; NI port selected explicitly?
   239						GO	[MOVE	1,NISEL		; yes - get NI select word
   240							 TRNN	1,4		; actually selected?
   241							 TRZ	NIPORT		; no - clear switch
   242	030703	260 17 0 00 051524 			 RTN]
   243	030704	602 00 0 00 000020 		TRNE	CIPORT			; CI port selected explicitly?
   244						GO	[MOVE	1,CISEL		; yes - get CI select word
   245							 TRNN	1,4		; actually selected?
   246							 TRZ	CIPORT		; no - clear switch
   247	030705	260 17 0 00 051530 			 RTN]
   248	030706	606 00 0 00 000060 		TRNN	NIPORT!CIPORT		; any ports selected?
   249	030707	260 17 0 00 032274 		GO	TSTSEG			; no - ask what devices to test
   250
   251					; Handle SPEAR reporting
   252
   253	030710	260 17 0 00 043471 		GO	SPREP1			; do initial SPEAR report
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 7
DFPTA1	MAC	10-Oct-83 21:43		Initialization                                                                     SEQ 0194

   254
   255					; Go do a test
   256
   257	030711	260 17 0 00 000000*	STARTA:	GO	INITPI			; initialize PI system
   258	030712	260 17 0 00 000000*		GO	SETVEC			; set up vector addresses
   259	030713	260 17 0 00 030753 		GO	DISPAT			; do a test
   260	030714	332 00 0 00 064326'		SKIPE	ALTF			; altmode typed?
   261	030715	254 00 0 00 030733 		JRST	STARTB			; yes - exit
   262	030716	260 17 0 00 030677*		GO	SWITT			; get switches
   263	030717	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
   264	030720	260 17 0 00 030734 		GO	PASPNT			; no - print end of pass
   265	030721	260 17 0 00 030716*		GO	SWITT			; get switches
   266	030722	336 00 0 00 030037 		SKIPN	USER			; user mode?
   267	030723	607 00 0 00 400000 		TLNN	ABORT			; abort switch set?
   268	030724	334 00 0 00 000000 		SKIPA				; no (or user mode) - continue
   269	030725	254 00 0 00 030733 		JRST	STARTB			; yes - exit
   270	030726	037 12 0 00 000004 		ENDUUO				; end of pass handling
   271	030727	254 00 0 00 030711 		JRST	STARTA			; ITRCNT not exhausted - continue
   272	030730	260 17 0 00 030721*		GO	SWITT			; get switches
   273	030731	602 00 0 00 040000 		TRNE	LOOPGM			; loop on program switch set?
   274	030732	254 00 0 00 030711 		JRST	STARTA			; yes - loop forever
   275	030733	037 16 0 00 000004 	STARTB:	EOPUUO				; ITRCNT exhausted - exit pgm
   276
   277					; Print pass count
   278
   279	030734	200 00 0 00 030047 	PASPNT:	MOVE	PASCNT			; get pass count
   280	030735	350 00 0 00 000000 		AOS				; increment by 1
   281	030736	231 00 0 00 000012 		IDIVI	^D10			; divide by 10
   282	030737	332 00 0 00 000000 		SKIPE				; print pass number only for passes
   283	030740	326 01 0 00 051527 		JUMPN	1,[RTN]			;    1,2..7,10,20,30,40 ...
   284	030741	037 00 0 00 051534 		TMSGC	<End pass >		; print it
   285	030742	200 00 0 00 030047 		MOVE	PASCNT
   286	030743	350 00 0 00 000000 		AOS
   287	030744	037 15 0 00 000000 		PNTDEC
   288	030745	037 00 0 00 051537 		TMSG	<. at >
   289	030746	402 00 0 00 030640*		SETZM	FORPNT			; clear force print
   290	030747	200 03 0 00 051541 		MOVE	3,[JFCL]		; set up timer routine
   291	030750	260 17 0 00 000000*		GO	RUNTME			; print current time
   292	030751	037 00 0 00 030242 		PCRL
   293	030752	263 17 0 00 000000 		RTN				; return
   294
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 8
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0195

   295						SUBTTL	Test/Command Selection
   296
   297					;#*********************************************************************
   298					;* DISPAT - Routine to dispatch to proper test as typed by the operator
   299					;*	   in response to the 'WHAT TEST' prompt.
   300					;
   301					; COMMAND	DEFINITION
   302					; -------	----------
   303					; ALL	n	All tests
   304					; EBUS	n	EBus module tests
   305					; SEQ	n	SEQ related tests
   306					; ALU	n	2901 related tests
   307					; MPROC	n	MPROC module tests
   308					; CBUS	n	CBus module tests
   309					; MBUS	n	MBUS related tests
   310					; XXn	n	Test n, category XX (where XX can be EB,SE,AL,MP,CB)
   311					;
   312					; Other tests:
   313					;
   314					; DEBUG		Enter port debugger
   315					;
   316					; CONFIG	Determine/print configuration
   317					; CONPNT	Print configuration
   318					; SELECT	Select devices
   319					; DIAMON	Enter DIAMON
   320					; DDT   	Enter DDT
   321					; HELP  	Print this text
   322					; EXIT  	Exit program 
   323					;
   324					; TAKE		Take commands from a file
   325					; NTAKE		Take commands from a file (without echoing them)
   326					;
   327					; ENABLE	Enable execution of a test
   328					; DISABL	Disable execution of a test
   329					; DISLIS	List disabled tests
   330					;
   331					; LIST n	List all tests
   332					; LISTEB n	List EBus module tests
   333					; LISTMP n	List MPROC module tests
   334					; LISTCB n	List CBus module tests
   335					; LISTSE n	List Sequencer related tests
   336					; LISTAL n	List 2901's related tests
   337					;
   338					; Switches:  To complement switch, type switch name
   339					;
   340					; SWITCH	Enter switches
   341					; SWPRIN	Print current switches
   342					;
   343					; NOPNT   LOOPER  RELIAB   TRACE   LOOPGM  DSPEAR  SDEBUG  NIPORT  MMPROC
   344					; PNTLPT  ERSTOP  TXTINH   INHFLT  LOOPTS  UDEBUG  LDEBUG  CIPORT  MCBUS
   345					; DING    PALERS  OPRSEL   INHMSG  RUNALL  MDEBUG  IDEBUG
   346					;#********************************************************************
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 9
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0196

   347
   348	030753	402 00 0 00 064326'	DISPAT:	SETZM	ALTF#			; clear 'altmode typed' flag
   349
   350	030754	260 17 0 00 030730*		GO	SWITT			; get switches
   351	030755	603 00 0 00 000010 		TLNE	OPRSEL			; OPRSEL switch set?
   352	030756	037 01 0 00 051542 		FMSGCD	<Type ? for help>	; yes - print this
   353
   354					; Do a little initialization - first set up altmode transfer address
   355
   356	030757	260 17 0 00 030754*	DISP0:	GO	SWITT			; get switches
   357	030760	603 00 0 00 000010 		TLNE	OPRSEL			; OPRSEL switch set?
   358						MOVEI	1,[PCRLF		; yes - set $ addr to print blank line
   359	030761	201 01 0 00 051546 			   JRST	DISP0]		;  line and continue at 'What test'
   360	030762	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
   361						MOVEI	1,[SETZM ALTF		; no - set up $ xfr addr to exit pass
   362							   GO	 FIOFF
   363	030763	201 01 0 00 051550 			   RTN]
   364	030764	202 01 0 00 030063 		MOVEM	1,ALTMGO		; store it
   365	030765	402 00 0 00 064326'		SETZM	ALTF			; clear 'altmode typed' flag
   366
   367					; Set up print limit, clear error flag, clear input buffer, set up MBCN
   368
   369	030766	201 00 0 00 011610 		MOVEI	^D5000			; re-set up print limit just in case
   370	030767	212 00 0 00 030220 		MOVNM	PNTENB			;   the last test exceeded it
   371	030770	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
   372	030771	260 17 0 00 000000*		GO	CLRBUF			; clear input buffer
   373	030772	476 00 0 00 064404'		SETOM	TSLOD1#			; initialize ucode loaded flag (NI)
   374	030773	476 00 0 00 064405'		SETOM	TSLOD2#			; initialize ucode loaded flag (CI)
   375
   376					; Set/clear debug switches
   377
   378	030774	402 00 0 00 064413'		SETZM	UDEBUG			; clear no-port user mode debug switch
   379	030775	402 00 0 00 064352'		SETZM	MDEBUG			; clear error message debug switch
   380	030776	402 00 0 00 064377'		SETZM	SDEBUG			; clear single step debug switch
   381	030777	402 00 0 00 064346'		SETZM	LDEBUG			; clear ucode load debug switch
   382	031000	402 00 0 00 064344'		SETZM	IDEBUG			; fault isolation debug switch
   383	031001	260 17 0 00 030757*		GO	SWITT			; get switches
   384	031002	602 00 0 00 002000 		TRNE	DEBUG1			; debug switch set?
   385	031003	476 00 0 00 064413'		SETOM	UDEBUG			; set no-port user mode debug switch
   386	031004	602 00 0 00 001000 		TRNE	DEBUG2			; debug switch set?
   387	031005	476 00 0 00 064352'		SETOM	MDEBUG			; set error message debug switch
   388	031006	602 00 0 00 000400 		TRNE	DEBUG3			; debug switch set?
   389	031007	476 00 0 00 064377'		SETOM	SDEBUG			; set single step debug switch
   390	031010	602 00 0 00 000200 		TRNE	DEBUG4			; debug switch set?
   391	031011	476 00 0 00 064346'		SETOM	LDEBUG			; set ucode load debug switch
   392	031012	602 00 0 00 000100 		TRNE	DEBUG5			; debug switch set?
   393	031013	476 00 0 00 064344'		SETOM	IDEBUG			; set fault isolation debug switch
   394	031014	402 00 0 00 046330 		SETZM	PMODE			; set program mode to 'no test'
   395	031015	402 00 0 00 064354'		SETZM	MULFLG#			; clear 'multiple examine' flag
   396	031016	476 00 0 00 064355'		SETOM	MULINI#			; set 'initial examine' flag
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 10
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0197

   397
   398					; Set up PI system in case any interrupts occur
   399
   400	031017	260 17 0 00 030711*		GO	INITPI			; init PI system
   401	031020	260 17 0 00 030712*		GO	SETVEC			; set up vector addresses
   402
   403					; Do ALL test automatically if OPRSEL switch is not set
   404
   405	031021	201 01 0 00 000001 		MOVEI	1,1			; set to ALL test
   406	031022	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
   407	031023	254 00 0 00 031111 		JRST	DISP2			; no - go do test
   408	031024	402 00 0 00 030047 		SETZM	PASCNT			; clear pass count
   409
   410					; Now handle a normal command
   411
   412	031025	402 00 0 00 000000*		SETZM	.INWD1			; clear special interrupt data
   413	031026	476 00 0 00 064327'		SETOM	BONETM			; set 'not first time' flag
   414	031027	336 00 0 00 064341'		SKIPN	FINPUT			; file input?
   415	031030	476 00 0 00 064340'		SETOM	FINECH			; no - ensure echo flag set
   416	031031	332 00 0 00 064340'		SKIPE	FINECH			; echo flag set?
   417						GO	[PFORCE			; no - print all this
   418							 PCRLF
   419							 FMSG	<What test - >
   420	031032	260 17 0 00 051556 			 RTN]
   421	031033	332 00 0 00 064341'		SKIPE	FINPUT			; file input?
   422						JRST	[GO	FINCMD		; yes - input sixbit cmd
   423							 JRST	DISP0		; error or EOF
   424	031034	254 00 0 00 051562 			 JRST	DISP0B]		; continue
   425	031035	037 10 0 00 000003 	DISP0A:	TTSIXB				; get the name in sixbit
   426						ALTCHK	[GET	XXW#		; adjust stack properly
   427							 SKIPN	$TWCNT		; did a timeout occur?
   428							 JRST	DISP0		; yes - keep looking for input
   429							 MOVE	1,$TTCHR	; no - get character typed
   430							 CAIN	1,40		; space (delimiter) typed?
   431							 JRST	.+1		; yes - continue (no error condition)
   432							 CAIN	1,77		; was a question mark typed?
   433							 JRST	DISQUE		; yes - handle
   434	031036	007 00 0 00 051565 			 JRST	DISPE]		; no - error - reask question
   435					DISP0B:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
   436							 CAIN	40		;   looking for an argument, if not
   437							 JRST	DISP0A		;   exit
   438	031037	322 00 0 00 051576 			 JRST	DISP0]
   439	031040	202 00 0 00 064412'		MOVEM	TSTSAV#			; save the typed name
   440	031041	402 00 0 00 000000*		SETZM	ARGFLG			; clear 'argument given' flag
   441	031042	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
   442	031043	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
   443	031044	476 00 0 00 031041*		SETOM	ARGFLG			; set 'argument given' flag
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 11
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0198

   444
   445					; Process command
   446
   447	031045	200 01 0 00 064412'	DISP1:	MOVE	1,TSTSAV		; get command into AC1
   448	031046	201 02 0 00 031132 		MOVEI	2,DISLIS		; get address of cmd list
   449	031047	260 17 0 00 000000*		GO	.COMM			; handle command decoding
   450	031050	334 00 0 00 000000 		 SKIPA				; error return
   451	031051	254 00 0 00 031111 		JRST	DISP2			; dispatch to test
   452
   453					; Now check to see if a test number was selected in the form
   454					; XXnnn where XX is the test class and nnn is the test number.
   455
   456	031052	260 17 0 00 034133 		GO	TSTDEC			; check for alternate format
   457	031053	254 00 0 00 031073 		 JRST	DISPD			; error return (unrecognizable)
   458	031054	254 00 0 00 031060 		 JRST	DISPR			; error return (range error)
   459	031055	370 00 0 00 046311 		SOS	TSTADD			; good - adjust for SELTST
   460	031056	260 17 0 00 032566 		GO	TSTSPC			; execute it
   461	031057	254 00 0 00 031112 		JRST	DISPX			; end of test
   462
   463					; Range error
   464
   465	031060	202 01 0 00 064375'	DISPR:	MOVEM	1,SAVMAX#		; save maximum test number
   466	031061	037 01 0 00 051602 		FMSGC	<? >			; print error message
   467	031062	200 01 0 00 046304 		MOVE	1,TSTCLS
   468	031063	200 00 0 01 031133 		MOVE	DISLIS+1(1)
   469	031064	037 01 0 00 000002 		PNTSXF
   470	031065	037 01 0 00 051603 		FMSG	< Test selected is not in range 1->
   471	031066	200 00 0 00 064375'		MOVE	SAVMAX			; get range
   472	031067	037 17 0 00 000003 		PNTOCF				; print it
   473	031070	037 01 0 00 030242 		PCRLF
   474	031071	260 17 0 00 000000*		GO	FIOFF			; turn off file input
   475	031072	254 00 0 00 030757 		JRST	DISP0			; continue
   476
   477					; Possibly a DEBUG command was typed - check for this and handle
   478
   479	031073	200 01 0 00 064412'	DISPD:	MOVE	1,TSTSAV		; get command into AC1
   480	031074	201 02 0 00 034303 		MOVEI	2,.DBCMD		; get address of cmd list
   481	031075	260 17 0 00 031047*		GO	.COMM			; handle command decoding
   482	031076	254 00 0 00 031106 		 JRST	DISPE			; unrecognizable
   483	031077	260 17 0 00 032335 		GO	PTEST			; determine port to use
   484	031100	260 17 0 00 032354 		GO	PTESTP			; print results
   485	031101	322 16 0 00 030757 		JUMPE	MBCN,DISP0		; exit if no ports are selected
   486	031102	260 17 0 00 000000*		GO	DEVREQ			; ensure the device is selected
   487	031103	334 00 0 00 000000 		SKIPA				; error - continue
   488	031104	260 17 1 01 034453 		GO	@.DBDIS(1)		; dispatch to test
   489	031105	254 00 0 00 030757 		JRST	DISP0			; return to 'DEBUG>' prompt
   490
   491					; Unrecognized command
   492
   493	031106	037 01 0 00 051612 	DISPE:	FMSGCD	<? Unrecognizable - Type ? for help>
   494	031107	260 17 0 00 031071*		GO	FIOFF			; turn off file input
   495	031110	254 00 0 00 030757 		JRST	DISP0
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 12
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0199

   496
   497					; Dispatch to test
   498
   499	031111	260 17 1 01 031222 	DISP2:	GO	@DISGO(1)		; dispatch to test
   500
   501					; End of command - if OPRSEL switch set, ask for command
   502					;		   if OPRSEL switch not set, it is end of pass
   503
   504	031112	260 17 0 00 031001*	DISPX:	GO	SWITT			; get program switches
   505	031113	603 00 0 00 000010 		TLNE	OPRSEL			; OPRSEL set?
   506	031114	254 00 0 00 030757 		JRST	DISP0			; yes - not really end of pass
   507	031115	263 17 0 00 000000 		RTN				; no - end of pass
   508
   509					; Handle ? typed
   510
   511	031116	037 01 0 00 000026 	DISQUE:	PFORCE				; handle Control-O
   512	031117	037 00 1 00 031121 		PNTMSG	@DISQUU			; print text
   513	031120	254 00 0 00 030757 		JRST	DISP0			; continue
   514
   515	031121				DISQUU:	[ASCII	/
   516					Tests	    Other	  Switches
   517					-----   --------------  ----------------------
   518					ALL     ENABLE  LIST    NOPNT   TRACE   UDEBUG
   519					EBUS    DISABL  LISTEB  PNTLPT  INHFLT  MDEBUG
   520					SEQ     DISLIS  LISTSE  DING    INHMSG  SDEBUG
   521					ALU             LISTAL  LOOPER  LOOPGM  LDEBUG
   522					MPROC   CONFIG  LISTMP  ERSTOP  LOOPTS  IDEBUG
   523	031121	000000	051622		CBUS    CONPNT  LISTCB  PALERS  RUNALL  NIPORT /]
   524						[ASCIZ	/
   525					MBUS    SELECT  TAKE    RELIAB  TXTINH  CIPORT
   526					                NTAKE   OPRSEL          DSPEAR
   527					DEBUG   DIAMON  HELP            SWITCH  MMPROC
   528					        DDT     EXIT            SWPRIN  MCBUS
   529					(Or XXn where n is test #,
   530					 and XX is test category
   531					 EB,SE,AL,MP,CB)
   532	031122	000000	051733		/]
   533
   534
   535					;#********************************************************************
   536					;* INDLIS - List of classes that may be specified with individual test numbers
   537					;#********************************************************************
   538
   539	031123	45 42 00 00 00 00 	INDLIS:	SIXBIT	/EB/			; an EBus module tests
   540	031124	63 45 00 00 00 00 		SIXBIT	/SE/			; an Sequencer related tests
   541	031125	41 54 00 00 00 00 		SIXBIT	/AL/			; an 2901's related tests
   542	031126	55 60 00 00 00 00 		SIXBIT	/MP/			; an MPROC module tests
   543	031127	43 42 00 00 00 00 		SIXBIT	/CB/			; an CBus module tests
   544	031130	55 42 00 00 00 00 		SIXBIT	/MB/			; an MBUS related tests
   545	031131	000 00 0 00 000000 		Z				; list terminator
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 13
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0200

   546
   547					;#*********************************************************************
   548					;* DISLIS -- List of all valid test names that can be typed
   549					;#*********************************************************************
   550
   551	031132	777777	777655		DISLIS:	-123				; ignore
   552	031133	41 54 54 00 00 00 		SIXBIT	/ALL/			; execute all tests
   553	031134	45 42 65 63 00 00 		SIXBIT	/EBUS/			; execute EBus module tests
   554	031135	63 45 61 00 00 00 		SIXBIT	/SEQ/			; execute Sequencer related tests
   555	031136	41 54 65 00 00 00 		SIXBIT	/ALU/			; execute 2901's related tests
   556	031137	55 60 62 57 43 00 		SIXBIT	/MPROC/			; execute MPROC module tests
   557	031140	43 42 65 63 00 00 		SIXBIT	/CBUS/			; execute CBus module tests
   558	031141	55 42 65 63 00 00 		SIXBIT	/MBUS/			; execute MBUS related tests
   559	031142	62 41 56 44 57 55 		SIXBIT	/RANDOM/		; execute tests randomly
   560
   561					; Other tests/switches ...
   562
   563	031143	64 41 53 45 00 00 		SIXBIT	/TAKE/			; take commands from a file
   564	031144	56 64 41 53 45 00 		SIXBIT	/NTAKE/			; take commands from a file
   565	031145	44 45 42 65 47 00 		SIXBIT	/DEBUG/			; execute debugger test
   566	031146	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; determine configuration
   567	031147	43 57 56 60 56 64 		SIXBIT	/CONPNT/		; print configuration
   568	031150	63 45 54 45 43 64 		SIXBIT	/SELECT/		; select device(s) to test
   569	031151	44 51 41 55 57 56 		SIXBIT	/DIAMON/		; exit to DIAMON
   570	031152	44 44 64 00 00 00 		SIXBIT	/DDT/			; enter DDT
   571	031153	45 70 51 64 00 00 		SIXBIT	/EXIT/			; exit pgm
   572	031154	50 45 54 60 00 00 		SIXBIT	/HELP/			; help
   573
   574	031155	45 56 41 42 54 45 		SIXBIT	/ENABLE/		; enable execution of a test
   575	031156	44 51 63 41 42 54 		SIXBIT	/DISABL/		; disable execution of a test
   576	031157	44 51 63 54 51 63 		SIXBIT	/DISLIS/		; list disabled tests
   577
   578	031160	54 51 63 64 00 00 		SIXBIT	/LIST/			; list all tests
   579	031161	54 51 63 64 45 42 		SIXBIT	/LISTEB/		; list EBus module tests
   580	031162	54 51 63 64 63 45 		SIXBIT	/LISTSE/		; list Sequencer related tests
   581	031163	54 51 63 64 41 54 		SIXBIT	/LISTAL/		; list 2901's related tests
   582	031164	54 51 63 64 55 60 		SIXBIT	/LISTMP/		; list MPROC module tests
   583	031165	54 51 63 64 43 42 		SIXBIT	/LISTCB/		; list CBus module tests
   584
   585	031166	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; input switches
   586	031167	63 67 60 62 51 56 		SIXBIT	/SWPRIN/		; print switch selections
   587
   588	031170	56 57 60 56 64 00 		SIXBIT	/NOPNT/			; don't print anything
   589	031171	60 56 64 54 60 64 		SIXBIT	/PNTLPT/		; print on printer
   590	031172	44 51 56 47 00 00 		SIXBIT	/DING/			; ding on error
   591	031173	54 57 57 60 45 62 		SIXBIT	/LOOPER/		; loop on error
   592	031174	45 62 63 64 57 60 		SIXBIT	/ERSTOP/		; halt on error
   593	031175	60 41 54 45 62 63 		SIXBIT	/PALERS/		; print all errors
   594	031176	62 45 54 51 41 42 		SIXBIT	/RELIAB/		; reliability testing
   595	031177	64 70 64 51 56 50 		SIXBIT	/TXTINH/		; shorten printing
   596	031200	57 60 62 63 45 54 		SIXBIT	/OPRSEL/		; operator select
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 14
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0201

   597	031201	64 62 41 43 45 00 		SIXBIT	/TRACE/			; trace pgm flow
   598	031202	51 56 50 46 54 64 		SIXBIT	/INHFLT/		; inhibit fault isolation
   599	031203	51 56 50 55 63 47 		SIXBIT	/INHMSG/		; inhibit error messages
   600	031204	54 57 57 60 47 55 		SIXBIT	/LOOPGM/		; loop on program
   601	031205	54 57 57 60 64 63 		SIXBIT	/LOOPTS/		; loop on test
   602	031206	62 65 56 41 54 54 		SIXBIT	/RUNALL/		; run all test segments
   603	031207	44 63 60 45 41 62 		SIXBIT	/DSPEAR/		; disable SPEAR reporting
   604	031210	65 44 45 42 65 47 		SIXBIT	/UDEBUG/		; no-port user mode debug switch
   605	031211	55 44 45 42 65 47 		SIXBIT	/MDEBUG/		; error message debug switch
   606	031212	63 44 45 42 65 47 		SIXBIT	/SDEBUG/		; single step debug switch
   607	031213	54 44 45 42 65 47 		SIXBIT	/LDEBUG/		; ucode load debug switch
   608	031214	51 44 45 42 65 47 		SIXBIT	/IDEBUG/		; fault isolation debug switch
   609	031215	56 51 60 57 62 64 		SIXBIT	/NIPORT/		; NI port selected
   610	031216	43 51 60 57 62 64 		SIXBIT	/CIPORT/		; CI port selected
   611	031217	55 55 60 62 57 43 		SIXBIT	/MMPROC/		; missing Mproc module
   612	031220	55 43 42 65 63 00 		SIXBIT	/MCBUS/			; missing Cbus module
   613	031221	000 00 0 00 000000 		Z
   614
   615
   616					;#********************************************************************
   617					;* DISGO - Test dispatch addresses
   618					;#********************************************************************
   619
   620	031222	000000	051527		DISGO:	[RTN]				; ignore
   621	031223	000000	031334			TSTEXE				; ALL - execute all tests
   622	031224	000000	031334			TSTEXE				; EBUS - execute EBus module tests
   623	031225	000000	031334			TSTEXE				; SEQ - execute SEQ related tests
   624	031226	000000	031334			TSTEXE				; ALU - execute 2901 related tests
   625	031227	000000	031334			TSTEXE				; MPROC - execute MPROC module tests
   626	031230	000000	031334			TSTEXE				; CBUS - execute CBus module tests
   627	031231	000000	031311			TSTMBU				; MBUS - execute MBUS related tests
   628	031232	000000	032632			TSTRAN				; RANDOM - execute tests randomly
   629
   630	031233	000000	032532			TSTTAK				; TAKE - take commands from a file
   631	031234	000000	032530			TSTTAN				; NTAKE - take commands from a file
   632	031235	000000	034203			TSTDEB				; DEBUG - execute debugger test
   633						[GO	CONFIG			; CONFIG - determine configuration
   634						 GO	TSTSEL
   635	031236	000000	052021			 RTN]
   636						[MOVE	1,[FMSGCD (CONPNT <CR>)]; CONPNT - print configuration
   637						 GO	CHKARG
   638						 RTN
   639						 GO	CONPNT
   640	031237	000000	052031			 RTN]
   641	031240	000000	032233			TSTSEL				; SELECT - select port to test
   642	031241	000000	032113			TSTDIA				; DIAMON - re-enter DIAMON
   643	031242	000000	032120			TSTDDT				; DDT - enter DDT
   644	031243	000000	032131			TSTHLT				; EXIT - exit
   645	031244	000000	032371			TSTHLP				; HELP - help
   646	031245	000000	032433			TSTENA				; ENABLE - enable test
   647	031246	000000	032427			TSTDSA				; DISABL - disable test
   648	031247	000000	032461			TSTDSL				; DISLIS - list disabled tests
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 15
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0202

   649
   650			000026		SRTLIS==.-DISGO
   651
   652	031250	000000	032014			TSTLIS				; LIST - list all tests
   653	031251	000000	032044			TSTLST				; LISTEB - list EBus module tests
   654	031252	000000	032044			TSTLST				; LISTSE - list Sequencer related tests
   655	031253	000000	032044			TSTLST				; LISTAL - list 2901's related tests
   656	031254	000000	032044			TSTLST				; LISTMP - list MPROC module tests
   657	031255	000000	032044			TSTLST				; LISTCB - list CBus module tests
   658
   659	031256	000000	032507			TSTSWI				; SWITCH - input switches
   660	031257	000000	032514			TSTSWP				; SWPRIN - print switch selections
   661
   662			000036		SWSTT==.-DISGO
   663
   664	031260	000000	032521			TSTSSW				; NOPNT
   665	031261	000000	032521			TSTSSW				; PNTLPT
   666	031262	000000	032521			TSTSSW				; DING
   667	031263	000000	032521			TSTSSW				; LOOPER
   668	031264	000000	032521			TSTSSW				; ERSTOP
   669	031265	000000	032521			TSTSSW				; PALERS
   670	031266	000000	032521			TSTSSW				; RELIAB
   671	031267	000000	032521			TSTSSW				; TXTINH
   672	031270	000000	032521			TSTSSW				; OPRSEL
   673	031271	000000	032521			TSTSSW				; TRACE
   674	031272	000000	032521			TSTSSW				; INHFLT
   675	031273	000000	032521			TSTSSW				; INHMSG
   676	031274	000000	032521			TSTSSW				; LOOPGM
   677	031275	000000	032521			TSTSSW				; LOOPTS
   678	031276	000000	032521			TSTSSW				; RUNALL
   679	031277	000000	032521			TSTSSW				; DSPEAR
   680	031300	000000	032521			TSTSSW				; UDEBUG
   681	031301	000000	032521			TSTSSW				; MDEBUG
   682	031302	000000	032521			TSTSSW				; SDEBUG
   683	031303	000000	032521			TSTSSW				; LDEBUG
   684	031304	000000	032521			TSTSSW				; IDEBUG
   685	031305	000000	032521			TSTSSW				; NIPORT
   686	031306	000000	032521			TSTSSW				; CIPORT
   687	031307	000000	032521			TSTSSW				; MMPROC
   688	031310	000000	032521			TSTSSW				; MCBUS
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 16
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0203

   689
   690					;#********************************************************************
   691					;* MBUS - Execute MBUS related tests
   692					;#********************************************************************
   693
   694	031311	402 00 0 00 064350'	TSTMBU:	SETZM	MBARGF#			; clear 'MBUS argument given' flag
   695	031312	336 00 0 00 031044*		SKIPN	ARGFLG			; argument given?
   696	031313	254 00 0 00 031324 		JRST	TSTMB0			; no - continue
   697	031314	210 01 0 00 052043 		MOVN	1,[FMSGCD (Cmd RepeatCount <CR>)]
   698	031315	260 17 0 00 000000*		GO	.DARG			; yes - get repeat count argument
   699	031316	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   700	031317	334 00 0 00 000000 		 SKIPA				; no argument given
   701	031320	200 00 0 00 000000*		MOVE	ARGUM			; get argument
   702	031321	202 00 0 00 064347'		MOVEM	MBARG#			; save it
   703	031322	402 00 0 00 031312*		SETZM	ARGFLG			; fool TSTEXE argument handling
   704	031323	476 00 0 00 064350'		SETOM	MBARGF			; set 'MBUS argument given' flag
   705
   706					; Print directions
   707
   708	031324	037 01 0 00 000026 	TSTMB0:	PFORCE				; handle Control-O
   709						TMSGC	<
   710					To isolate a possible MBUS problem:
   711					
   712					 (1) Disconnect MBUS cable from EBUS module.
   713					     Run MBUS tests with MMPROC and MCBUS switches set.
   714					     Failed - EBUS module is at fault.  Stop.
   715					     Passed - MBUS cable or MPROC or CBUS modules at fault.
   716	031325	037 00 0 00 052044 	              Continue at next step to isolate further.>
   717						TMSGC	<
   718					 (2) Connect MBUS cable to EBUS module only.
   719					     Run MBUS tests with MMPROC and MCBUS switches set.
   720					     Failed - MBUS cable is at fault.  Stop.
   721					     Passed - MBUS cable or MPROC or CBUS modules at fault.
   722	031326	037 00 0 00 052142 	              Continue at next step to isolate further.>
   723						TMSGCD	<
   724					 (3) Connect MBUS cable to EBUS and MPROC modules only.
   725					     Run MBUS tests with MCBUS switch set.
   726					     Failed - MPROC module is at fault.  Stop.
   727	031327	037 00 0 00 052230 	     Passed - CBUS module at fault.  Stop.>
   728	031330	037 01 0 00 000026 		PFORCE
   729	031331	200 00 0 00 052300 		MOVE	[MBUS]			; get test mask
   730	031332	202 00 0 00 046313 		MOVEM	TSTMSK			; save test mask
   731	031333	254 00 0 00 031336 		PJRST	TSTEXG			; do the tests
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 17
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0204

   732
   733					;#********************************************************************
   734					;* ALL    Execute all tests
   735					;* EBUS   Execute EBus module tests
   736					;* SEQ    Execute SEQ related tests
   737					;* ALU    Execute 2901 related tests
   738					;* MPROC  Execute MPROC module tests
   739					;* MBUS   Execute MBUS related tests
   740					;* CBUS   Execute CBus module tests
   741					;
   742					; All of these commands dispatch to TSTEXE which sets up test mask
   743					; and does dispatch to tests.
   744					;#********************************************************************
   745
   746					TSTEXE:	MOVE	[ALL			; get test mask
   747							 EBUS
   748							 SEQ
   749							 ALU
   750							 MPROC
   751							 CBUS
   752	031334	200 00 0 01 052300 			 MBUS]-1(1)
   753	031335	202 00 0 00 046313 		MOVEM	TSTMSK			; save test mask
   754	031336	260 17 0 00 032663 	TSTEXG:	GO	TSTDIS			; go dispatch to tests
   755
   756					; Handle SPEAR reporting
   757
   758	031337	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
   759	031340	260 17 0 00 043532 		GO	SPREP2			; do final SPEAR report
   760
   761					; Do fault isolation
   762
   763	031341	260 17 0 00 031343 		GO	ISOPNT
   764	031342	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 18
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0205

   765
   766					;#********************************************************************
   767					;* ISOPNT - Print fault isolation data
   768					;
   769					; The data printed is that collected by the test dispatch routine
   770					; consisting of 'NETBAD', the list of bad networks.  Also printed
   771					; is the module and name associated with each network.
   772					;#********************************************************************
   773
   774	031343	332 00 0 00 046316 	ISOPNT:	SKIPE	TSTMUL			; multiple tests being run?
   775	031344	332 00 0 00 046317 		SKIPE	TSTINH			; yes - inhibit fault isolation?
   776	031345	263 17 0 00 000000 		RTN				; yes - don't print anything
   777	031346	332 00 0 00 064342'		SKIPE	FLTPNT#			; already printed?
   778	031347	263 17 0 00 000000 		RTN				; yes - return
   779	031350	476 00 0 00 064342'		SETOM	FLTPNT			; ensure it doesn't get printed again
   780	031351	261 17 0 00 000000 		RPUT	(0,1,2,3,4,5)		; save AC's
   781
   782	031357	402 00 0 00 031471 		SETZM	NETPNT			; first initialize list of
   783	031360	200 00 0 00 052310 		MOVE	[NETPNT,,NETPNT+1]	;   networks to all zeros
   784	031361	251 00 0 00 031600 		BLT	NETPNT+^D71		;   (no networks)
   785	031362	403 01 0 00 000002 		SETZB	1,2			; clear AC1 and AC2
   786	031363	350 00 0 00 000002 	ISOPN0:	AOS	2			; point to next network
   787	031364	303 02 0 00 000110 		CAILE	2,^D72			; all done?
   788	031365	254 00 0 00 031374 		JRST	ISOPN1			; yes - go print it
   789	031366	200 00 0 02 031600 		MOVE	NETBAD-1(2)		; get probability of being bad
   790	031367	322 00 0 00 031363 		JUMPE	ISOPN0			; zero - check next network
   791	031370	516 00 0 01 031471 		HRLZM	NETPNT(1)		; save probability in left half
   792	031371	542 02 0 01 031471 		HRRM	2,NETPNT(1)		; save network number in right half
   793	031372	350 00 0 00 000001 		AOS	1			; increment number of networks to print
   794	031373	254 00 0 00 031363 		JRST	ISOPN0			; check next network
   795	031374	322 01 0 00 031462 	ISOPN1:	JUMPE	1,ISOPNX		; any to print? no - exit
   796
   797					; Sort the results
   798
   799	031375	400 02 0 00 000000 		SETZ	2,			; clear pointer to NETPNT
   800	031376	350 00 0 00 000002 	ISOPN2:	AOS	2			; point to next item
   801	031377	311 02 0 00 000001 		CAML	2,1			; done with list?
   802	031400	254 00 0 00 031423 		JRST	ISOPN5			; yes - go print it
   803	031401	200 03 0 00 000002 		MOVE	3,2			; get pointer to rest of list
   804	031402	350 00 0 00 000003 	ISOPN3:	AOS	3			; point to next item
   805	031403	313 03 0 00 000001 		CAMLE	3,1			; done with rest of list?
   806	031404	254 00 0 00 031376 		JRST	ISOPN2			; yes - try next item
   807	031405	574 04 0 02 031470 		HLRE	4,NETPNT-1(2)		; no - get the probability of
   808	031406	574 05 0 03 031470 		HLRE	5,NETPNT-1(3)		;   each network
   809	031407	311 04 0 00 000005 		CAML	4,5			; need to reverse items?
   810	031410	254 00 0 00 031402 		JRST	ISOPN3			; no - try next item
   811	031411	312 04 0 00 000005 		CAME	4,5			; need to reverse items?
   812	031412	254 00 0 00 031417 		JRST	ISOPN4			; yes - do it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 19
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0206

   813	031413	550 04 0 02 031470 		HRRZ	4,NETPNT-1(2)		; maybe - get the network
   814	031414	550 05 0 03 031470 		HRRZ	5,NETPNT-1(3)		;   numbers of each
   815	031415	311 04 0 00 000005 		CAML	4,5			; need to reverse items?
   816	031416	254 00 0 00 031402 		JRST	ISOPN3			; no - try next item
   817	031417	200 00 0 02 031470 	ISOPN4:	MOVE	NETPNT-1(2)		; yes - do so
   818	031420	250 00 0 03 031470 		EXCH	NETPNT-1(3)
   819	031421	202 00 0 02 031470 		MOVEM	NETPNT-1(2)
   820	031422	254 00 0 00 031402 		JRST	ISOPN3			; keep looping
   821
   822					; Print the results
   823
   824	031423	037 00 0 00 030242 	ISOPN5:	PCRL
   825	031424	260 17 0 00 000000*		GO	PNTDEV			; print device
   826	031425	550 02 0 00 031471 		HRRZ	2,NETPNT		; get network offset
   827	031426	200 02 0 02 031711 		MOVE	2,NETDES(2)		; get netword description
   828	031427	603 02 0 00 400000 		TLNE	2,(1B0)			; EBUS module?
   829	031430	037 00 0 00 052311 		TMSGD	< FRU:  EBUS module>	; yes - print it
   830	031431	603 02 0 00 200000 		TLNE	2,(1B1)			; MBUS module?
   831	031432	037 00 0 00 052316 		TMSGD	< FRU:  MPROC module>	; yes - print it
   832	031433	603 02 0 00 100000 		TLNE	2,(1B2)			; CBUS module?
   833	031434	037 00 0 00 052323 		TMSGD	< FRU:  CBUS module>	; yes - print it
   834	031435	603 02 0 00 040000 		TLNE	2,(1B3)			; MBUS cable?
   835	031436	037 00 0 00 052330 		TMSGD	< FRU:  MBUS cable>	; yes - print it
   836	031437	037 00 0 00 052334 		TMSGCD	<Faulty networks (in order of probability):>
   837	031440	474 03 0 00 000000 		SETO	3,			; pointer to list of networks
   838	031441	350 00 0 00 000003 	ISOPN6:	AOS	3			; point to next network
   839	031442	200 02 0 03 031471 		MOVE	2,NETPNT(3)		; get data
   840	031443	322 02 0 00 031461 		JUMPE	2,ISOPN8		; done? yes - exit
   841	031444	550 02 0 00 000002 		HRRZ	2,2			; get only network offset
   842	031445	550 02 0 02 031710 		HRRZ	2,NETDES-1(2)		; get address of ASCIZ message
   843	031446	037 00 0 00 052346 		TMSGC	<  >
   844	031447	336 00 0 00 064344'		SKIPN	IDEBUG			; fault isolation switch set?
   845	031450	254 00 0 00 031455 		JRST	ISOPN7			; no - continue
   846	031451	037 00 0 00 052347 		TMSG	<Weight >		; yes - print the weight
   847	031452	574 00 0 03 031471 		HLRE	NETPNT(3)		; get data
   848	031453	037 16 0 00 000003 		PNTOCS
   849	031454	037 00 0 00 000040 		PSP
   850	031455	037 00 1 00 000002 	ISOPN7:	PNTMSG	@2			; print it
   851	031456	336 00 0 00 064344'		SKIPN	IDEBUG			; fault isolation switch set?
   852	031457	307 03 0 00 000003 		CAIG	3,3			; no - already printed 4 networks?
   853	031460	254 00 0 00 031441 		JRST	ISOPN6			; no - loop till done
   854
   855					; Exit
   856
   857	031461	037 00 0 00 030242 	ISOPN8:	PCRL				; final CRLF
   858	031462	262 17 0 00 000005 	ISOPNX:	RGET	(5,4,3,2,1,0)		; restore AC's
   859
   860	031470	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 20
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0207

   861
   862					;#********************************************************************
   863					;* Network Data Areas
   864					;#********************************************************************
   865
   866	031471				NETPNT:	BLOCK	^D72			; networks in order of probability
   867	031601				NETBAD:	BLOCK	^D72			; probability that Network n is bad
   868
   869		400000	000000		NEBUS==1B0
   870		200000	000000		NMPROC==1B1
   871		100000	000000		NCBUS==1B2
   872		040000	000000		NMBUS==1B3
   873
   874					; EBUS Module networks
   875
   876	031711	400000	052351		NETDES:	NEBUS![ASCIZ ^E1:  EBUS Module - EBUS Control Logic^]
   877	031712	400000	052361			NEBUS![ASCIZ ^E2:  EBUS Module - CC EBUS RQST^]
   878	031713	400000	052370			NEBUS![ASCIZ ^E3:  EBUS Module - CC GRNT CSR^]
   879	031714	400000	052377			NEBUS![ASCIZ ^E4:  EBUS Module - Interrupt Logic^]
   880	031715	400000	052406			NEBUS![ASCIZ ^E5:  EBUS Module - Clock Logic^]
   881	031716	400000	052415			NEBUS![ASCIZ ^E6:  EBUS Module - Clear Logic^]
   882	031717	400000	052424			NEBUS![ASCIZ ^E7:  EBUS Module - Magic # Field Decode^]
   883	031720	400000	052434			NEBUS![ASCIZ ^E8:  EBUS Module - CC CSR CHNG^]
   884	031721	400000	052443			NEBUS![ASCIZ ^E9:  EBUS Module - KMUX^]
   885	031722	400000	052450			NEBUS![ASCIZ ^E10: EBUS Module - EMUX^]
   886	031723	400000	052455			NEBUS![ASCIZ ^E11: EBUS Module - RMUX/CSR 25-31^]
   887	031724	400000	052464			NEBUS![ASCIZ ^E12: EBUS Module - CSR 11-13/19-22/33-35^]
   888	031725	400000	052475			NEBUS![ASCIZ ^E13: EBUS Module - CSR 04 Rqst Exam/Dep^]
   889	031726	400000	052505			NEBUS![ASCIZ ^E14: EBUS Module - CSR 05 Rqst Interrupt/CC INTR ACTIVE^]
   890	031727	400000	052521			NEBUS![ASCIZ ^E15: EBUS Module - CSR 06/07 CRAM PE/MBUS Error^]
   891	031730	400000	052533			NEBUS![ASCIZ ^E16: EBUS Module - CSR 24 EBUS PE^]
   892	031731	400000	052542			NEBUS![ASCIZ ^E17: EBUS Module - CSR 32 Mproc Run^]
   893	031732	400000	052552			NEBUS![ASCIZ ^E18: EBUS Module - KMUX Parity Generation^]
   894	031733	400000	052563			NEBUS![ASCIZ ^E19: EBUS Module - EBUS Parity Checking^]
   895	031734	400000	052573			NEBUS![ASCIZ ^E20: EBUS Module - EBUF (Check MBUS cable connection)^]
   896	031735	400000	052606			NEBUS![ASCIZ ^E21: EBUS Module - EBUS Data Xcvr's^]
   897	031736	400000	052616			NEBUS![ASCIZ ^E22: EBUS Module - EBUS Control Xcvr's^]
   898	031737	400000	052626			NEBUS![ASCIZ ^E23: EBUS Module - 2901's/Carry Logic^]
   899	031740	400000	052636			NEBUS![ASCIZ ^E24: EBUS Module - Constant MUX^]
   900
   901					; MPROC Module networks
   902
   903	031741	200000	052645			NMPROC![ASCIZ ^M1:  MPROC Module - MPROC Run Clocks^]
   904	031742	200000	052655			NMPROC![ASCIZ ^M2:  MPROC Module - Local Memory Control^]
   905	031743	200000	052666			NMPROC![ASCIZ ^M3:  MPROC Module - MBUS Error Detect Logic^]
   906	031744	200000	052677			NMPROC![ASCIZ ^M4:  MPROC Module - CRAM Read/Write Control^]
   907	031745	200000	052710			NMPROC![ASCIZ ^M5:  MPROC Module - Jump ADDR MUX^]
   908	031746	200000	052717			NMPROC![ASCIZ ^M6:  MPROC Module - CC MUX^]
   909	031747	200000	052725			NMPROC![ASCIZ ^M7:  MPROC Module - 2910 MicroSequencer^]
   910	031750	200000	052735			NMPROC![ASCIZ ^M8:  MPROC Module - CRAM ADDR MUX^]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 21
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0208

   911	031751	200000	052744			NMPROC![ASCIZ ^M9:  MPROC Module - LAR^]
   912	031752	200000	052751			NMPROC![ASCIZ ^M10: MPROC Module - CRAM 0000-7777^]
   913	031753	200000	052760			NMPROC![ASCIZ ^M11: MPROC Module - Cond/Skip Decoder^]
   914	031754	200000	052770			NMPROC![ASCIZ ^M12: MPROC Module - CRAM Control Register^]
   915	031755	200000	053001			NMPROC![ASCIZ ^M13: MPROC Module - Local Storage RAM^]
   916	031756	200000	053011			NMPROC![ASCIZ ^M14: MPROC Module - Local Storage Addr Register^]
   917	031757	200000	053023			NMPROC![ASCIZ ^M15: MPROC Module - RAM Mode MUX^]
   918	031760	200000	053032			NMPROC![ASCIZ ^M16: MPROC Module - RAR^]
   919	031761	200000	053037			NMPROC![ASCIZ ^M17: MPROC Module - Right CRAM Load Buffer^]
   920	031762	200000	053050			NMPROC![ASCIZ ^M18: MPROC Module - Left CRAM Load Buffer^]
   921	031763	200000	053061			NMPROC![ASCIZ ^M19: MPROC Module - MW Out MUX^]
   922
   923					; CBUS Module networks
   924
   925	031764	100000	053070			NCBUS![ASCIZ ^C1:  CBUS Module - CBUS Control Logic^]
   926	031765	100000	053100			NCBUS![ASCIZ ^C2:  CBUS Module - Clock Logic^]
   927	031766	100000	053107			NCBUS![ASCIZ ^C3:  CBUS Module - Reset Logic^]
   928	031767	100000	053116			NCBUS![ASCIZ ^C4:  CBUS Module - Clear Logic^]
   929	031770	100000	053125			NCBUS![ASCIZ ^C5:  CBUS Module - 'CC CBUS AVAIL'^]
   930	031771	100000	053134			NCBUS![ASCIZ ^C6:  CBUS Module - 'CC CB LST WD'/ 'CC CHAN ERR'^]
   931	031772	100000	053146			NCBUS![ASCIZ ^C7:  CBUS Module - 'CLR CC CODE'^]
   932	031773	100000	053155			NCBUS![ASCIZ ^C8:  CBUS Module - Magic # Field Decode^]
   933	031774	100000	053165			NCBUS![ASCIZ ^C9:  CBUS Module - 'CC CBUS PAR ERR'^]
   934	031775	100000	053175			NCBUS![ASCIZ ^C10: CBUS Module - 'CC PLI PAR ERR'^]
   935	031776	100000	053205			NCBUS![ASCIZ ^C11: CBUS Module - Parity Predictor^]
   936	031777	100000	053215			NCBUS![ASCIZ ^C12: CBUS Module - Formatter Control^]
   937	032000	100000	053225			NCBUS![ASCIZ ^C13: CBUS Module - PLI Control Logic^]
   938	032001	100000	053235			NCBUS![ASCIZ ^C14: CBUS Module - CBUS Input Buffer^]
   939	032002	100000	053245			NCBUS![ASCIZ ^C15: CBUS Module - CBUS Output Buffer^]
   940	032003	100000	053255			NCBUS![ASCIZ ^C16: CBUS Module - CBUS Out Par Gen^]
   941	032004	100000	053265			NCBUS![ASCIZ ^C17: CBUS Module - CBUS In Par Checker^]
   942	032005	100000	053275			NCBUS![ASCIZ ^C18: CBUS Module - DMUX^]
   943	032006	100000	053302			NCBUS![ASCIZ ^C19: CBUS Module - SMUX^]
   944	032007	100000	053307			NCBUS![ASCIZ ^C20: CBUS Module - Mvr/Fmtr^]
   945	032010	100000	053315			NCBUS![ASCIZ ^C21: CBUS Module - PLI Logic (Check PLI cable connection)^]
   946	032011	100000	053331			NCBUS![ASCIZ ^C22: CBUS Module - PMUX^]
   947	032012	100000	053336			NCBUS![ASCIZ ^C23: CBUS Module - CMUX^]
   948	032013	100000	053343			NCBUS![ASCIZ ^C24: CBUS Module - CBUF^]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 22
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0209

   949
   950					;#********************************************************************
   951					;* TSTLIS - List test description for all tests.
   952					;
   953					; Argument:  XXn - list only one test
   954					;	     none - list all tests
   955					;#********************************************************************
   956
   957					; Check for argument
   958
   959	032014	201 00 0 00 001000 	TSTLIS:	MOVEI	1000			; set up default maximum
   960	032015	202 00 0 00 064410'		MOVEM	TSTL2			;   test limit
   961	032016	476 00 0 00 046317 		SETOM	TSTINH			; inhibit fault isolation
   962	032017	336 00 0 00 031322*		SKIPN	ARGFLG			; argument given?
   963	032020	254 00 0 00 032036 		JRST	TSTLI1			; no - do all tests
   964
   965					; Decode argument
   966
   967	032021	200 01 0 00 053361 	TSTLI0:	MOVE	1,[FMSGCD (LIST <CR> or LIST XXnnn XXnnn ... <CR>)]
   968	032022	260 17 0 00 000000*		GO	.SARG			; get SIXBIT argument
   969	032023	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
   970	032024	263 17 0 00 000000 		 RTN				; no more arguments
   971	032025	200 01 0 00 031320*		MOVE	1,ARGUM			; get argument
   972	032026	260 17 0 00 034133 		GO	TSTDEC			; decode as a test name
   973						 JRST	[FMSGCD	<? Argument not recognizable as a test name 'XXn'>
   974							 GO	FIOFF
   975	032027	254 00 0 00 053375 			 RTN]
   976						 JRST	[FMSGC	<? Test selected is not in range 1->
   977							 MOVE	1		; get range
   978							 PNTOCF			; print it
   979							 PCRLF
   980							 GO	FIOFF
   981	032030	254 00 0 00 053410 			 RTN]
   982	032031	200 00 0 00 046311 		MOVE	TSTADD			; get dispatch table address
   983	032032	202 00 0 00 064407'		MOVEM	TSTL1#			; save it as start address
   984	032033	202 00 0 00 064410'		MOVEM	TSTL2#			; save it as end address
   985	032034	260 17 0 00 032076 		GO	TSTLSS			; print it
   986	032035	254 00 0 00 032021 		JRST	TSTLI0			; next argument
   987
   988					; List all tests
   989
   990	032036	201 00 0 00 033146 	TSTLI1:	MOVEI	TDISP1			; get dispatch table address
   991	032037	202 00 0 00 064407'		MOVEM	TSTL1			; save it as start address
   992	032040	201 00 0 00 033516 		MOVEI	TEND-1			; get end of table
   993	032041	202 00 0 00 064410'		MOVEM	TSTL2			; save it as end address
   994	032042	260 17 0 00 032076 		GO	TSTLSS			; print them
   995	032043	263 17 0 00 000000 		RTN				; yes - return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 23
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0210

   996
   997					;#********************************************************************
   998					;* TSTLST - List test description for either single test or class of tests.
   999					;
  1000					; Argument(s):  n - list only one test
  1001					;		n,n - list range of tests
  1002					;	        none - list all tests
  1003					;#********************************************************************
  1004
  1005					; First set up class of tests
  1006
  1007	032044	275 01 0 00 000027 	TSTLST:	SUBI	1,SRTLIS+1		; normalize to 0..n
  1008	032045	202 01 0 00 046304 		MOVEM	1,TSTCLS		; save test class
  1009						XCT	[MOVEI	2,TEBUS		; get starting address in address
  1010							 MOVEI	2,TSEQ		;   table
  1011							 MOVEI	2,TALU
  1012							 MOVEI	2,TMPROC
  1013	032046	256 00 0 01 053416 			 MOVEI	2,TCBUS](1)
  1014	032047	202 02 0 00 064407'		MOVEM	2,TSTL1			; save as starting address
  1015	032050	202 02 0 00 064411'		MOVEM	2,TSTL3#		; save for later use
  1016						XCT	[MOVEI	2,TSEQ-1 	; get starting address in address
  1017							 MOVEI	2,TALU-1	;   table
  1018							 MOVEI	2,TMPROC-1
  1019							 MOVEI	2,TCBUS-1
  1020	032051	256 00 0 01 053423 			 MOVEI	2,TEND-1](1)
  1021	032052	202 02 0 00 064410'		MOVEM	2,TSTL2			; save as starting address
  1022	032053	200 03 0 00 000002 		MOVE	3,2			; calculate maximum test number
  1023	032054	274 03 0 00 064407'		SUB	3,TSTL1			;   that can be specified
  1024
  1025					; Check for argument(s)
  1026
  1027	032055	200 01 0 00 053442 		MOVE	1,[FMSGCD <LISTxx test# (CR) or LISTxx test#,test# (CR)>]
  1028	032056	260 17 0 00 031315*		GO	.DARG			; get test number
  1029	032057	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1030	032060	254 00 0 00 032076 		 JRST	TSTLSS			; no argument given
  1031	032061	370 01 0 00 032025*		SOS	1,ARGUM			; get argument (normalized to 0..n)
  1032	032062	311 01 0 00 000003 		CAML	1,3			; out of range?
  1033						JRST	[FMSGC	<? Test number out of range 1 - >
  1034							 MOVE	3
  1035							 PNTOCF
  1036							 PCRLF
  1037							 GO	FIOFF
  1038	032063	254 00 0 00 053452 			 RTN]
  1039	032064	272 01 0 00 064407'		ADDM	1,TSTL1			; adjust first test number
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 24
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0211

  1040	032065	210 01 0 00 053442 		MOVN	1,[FMSGCD <LISTxx test# (CR) or LISTxx test#,test# (CR)>]
  1041	032066	260 17 0 00 032056*		GO	.DARG			; get test number
  1042	032067	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1043						 JRST	[MOVE	TSTL1		; no 2nd argument given
  1044							 MOVEM	TSTL2
  1045	032070	254 00 0 00 053460 			 JRST	TSTLSS]
  1046	032071	370 01 0 00 032061*		SOS	1,ARGUM			; get argument (normalized to 0..n)
  1047	032072	311 01 0 00 000003 		CAML	1,3			; out of range?
  1048						JRST	[FMSGC	<? Test number out of range 1 - >
  1049							 MOVE	3
  1050							 PNTOCF
  1051							 PCRLF
  1052							 GO	FIOFF
  1053	032073	254 00 0 00 053452 			 RTN]
  1054	032074	270 01 0 00 064411'		ADD	1,TSTL3			; add to base
  1055	032075	202 01 0 00 064410'		MOVEM	1,TSTL2			; save second test number
  1056
  1057					; Print the test descriptions
  1058
  1059	032076	200 01 0 00 064407'	TSTLSS:	MOVE	1,TSTL1			; get dispatch table address
  1060	032077	037 00 0 00 030242 		PCRL
  1061	032100	313 01 0 00 064410'		CAMLE	1,TSTL2			; done yet?
  1062	032101	263 17 0 00 000000 		RTN				; yes - return
  1063	032102	202 01 0 00 046311 		MOVEM	1,TSTADD		; save dispatch table address
  1064	032103	260 17 0 00 042304 		GO	TSTGET			; get test data
  1065	032104	260 17 0 00 042405 		GO	TSTPNT			; no - print it
  1066	032105	350 00 0 00 064407'		AOS	TSTL1			; point to next test
  1067	032106	037 07 0 00 000003 		TTALTM				; no - altmode typed?
  1068	032107	254 00 0 00 032076 		JRST	TSTLSS			; no - keep loopint
  1069	032110	037 00 0 00 030242 		PCRL				; yes - a final CRLF
  1070	032111	476 00 0 00 064326'		SETOM	ALTF			; set altmode flag
  1071	032112	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 25
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0212

  1072
  1073					;#********************************************************************
  1074					;* TSTDIA - Return to DIAMON
  1075					;#********************************************************************
  1076
  1077	032113	200 01 0 00 053467 	TSTDIA:	MOVE	1,[FMSGCD (DIAMON <CR>)]
  1078	032114	260 17 0 00 000000*		GO	CHKARG			; check for argument
  1079	032115	263 17 0 00 000000 		RTN				; error - exit
  1080	032116	260 17 0 00 000000*		GO	DEVREL			; release the device
  1081	032117	254 00 0 00 020000 		JRST	20000			; enter DIAMON
  1082
  1083
  1084					;#********************************************************************
  1085					;* TSTDDT - Enter DDT
  1086					;#********************************************************************
  1087
  1088	032120	200 01 0 00 053473 	TSTDDT:	MOVE	1,[FMSGCD (DDT <CR>)]
  1089	032121	260 17 0 00 032114*		GO	CHKARG			; check for argument
  1090	032122	263 17 0 00 000000 		RTN				; error - exit
  1091	032123	037 01 0 00 053474 		FMSGCD	<Type RTN$X to continue>
  1092	032124	260 17 0 00 030007 		GO	SRTDDT			; enter DDT
  1093	032125	260 17 0 00 000000*		GO	INITPD			; init PI system
  1094	032126	260 17 0 00 031020*		GO	SETVEC			; set up vector addresses
  1095	032127	400 01 0 00 000000 		SETZ	1,			; clear AC1
  1096	032130	263 17 0 00 000000 		RTN				; ask for a test
  1097
  1098
  1099					;#********************************************************************
  1100					;* TSTHLT - Program halts - CONTINUE will start it back up.
  1101					;#********************************************************************
  1102
  1103	032131	200 01 0 00 053505 	TSTHLT:	MOVE	1,[FMSGCD (EXIT <CR>)]
  1104	032132	260 17 0 00 032121*		GO	CHKARG			; check for argument
  1105	032133	263 17 0 00 000000 		RTN				; error - exit
  1106	032134	260 17 0 00 032116*		GO	DEVREL			; release the device
  1107	032135	260 17 0 00 000000*		GO	.CLOSE			; close any open files
  1108	032136	332 00 0 00 020000 		SKIPE	20000			; DIAMON loaded?
  1109	032137	254 00 0 00 020000 		JRST	20000			; yes - return there
  1110	032140	254 04 0 00 032141 		HALT	.+1			; no - halt
  1111	032141	254 00 0 00 030610 		JRST	START			; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 26
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0213

  1112
  1113					;#********************************************************************
  1114					;* CONFIG - Determine/print device configuration
  1115					;
  1116					; Select word (NISEL or CISEL):
  1117					;  Bit 0 - Port exists - 0 - no   (This is determined by whether or not
  1118					;			 1 - yes   a CONI succeeds and bit 0 is set,
  1119					;				   indicating a port).
  1120					;      1 - Port selectable - 0 - no   (This is determined by whether
  1121					;			     1 - yes   or not a DEVREQ succeeds).
  1122					;      2 - Port selected - 0 - no
  1123					;			   1 - yes
  1124					;#********************************************************************
  1125
  1126					; Determine which ports are available and obtain each from system
  1127
  1128	032142	261 17 0 00 000000 	CONFIG:	RPUT	(0,1,2,3,4)		; save AC's
  1129
  1130	032147	260 17 0 00 000000*		GO	DSETUP			; set up DIAG JSYS
  1131	032150	260 17 0 00 000000*		GO	USRION			; set USRIOT bit
  1132	032151	201 03 0 00 000003 		MOVEI	3,3			; select NI port
  1133	032152	201 04 0 00 000003 		MOVEI	4,3			; select CI port
  1134	032153	336 00 0 00 064413'		SKIPN	UDEBUG			; debug mode?
  1135	032154	403 03 0 00 000004 		SETZB	3,4			; no - clear NI and CI selection
  1136
  1137					; Check for NI port
  1138
  1139	032155	200 16 0 00 046275 		MOVE	MBCN,PORTNI		; get NI port number
  1140	032156	260 17 0 00 000000*		GO	RDCSR			; read CSR register
  1141	032157	334 00 0 00 000000 		SKIPA				; failed
  1142						GO	[TLNE	1,400000	; is this a port?
  1143							 TRO	3,1		; yes - indicate such
  1144	032160	260 17 0 00 053506 			 RTN]
  1145
  1146					; Check for CI port
  1147
  1148	032161	200 16 0 00 046276 		MOVE	MBCN,PORTCI		; get CI port number
  1149	032162	260 17 0 00 032156*		GO	RDCSR			; read CSR register
  1150	032163	334 00 0 00 000000 		SKIPA				; failed
  1151						GO	[TLNE	1,400000	; is this a port?
  1152							 TRO	4,1		; yes - indicate such
  1153	032164	260 17 0 00 053511 			 RTN]
  1154
  1155					; Now check to see if NI port is available
  1156
  1157	032165	200 16 0 00 046275 		MOVE	MBCN,PORTNI		; set up MBCN number
  1158	032166	260 17 0 00 031102*		GO	DEVREQ			; request the device
  1159	032167	334 00 0 00 000000 		SKIPA				; failed - continue
  1160	032170	660 03 0 00 000002 		TRO	3,2			; set available bit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 27
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0214

  1161
  1162					; Now check to see if CI port is available
  1163
  1164	032171	200 16 0 00 046276 		MOVE	MBCN,PORTCI		; set up MBCN number
  1165	032172	260 17 0 00 032166*		GO	DEVREQ			; request the device
  1166	032173	334 00 0 00 000000 		SKIPA				; failed - continue
  1167	032174	660 04 0 00 000002 		TRO	4,2			; set available bit
  1168
  1169					; Now look at select switches and determine selection
  1170
  1171	032175	260 17 0 00 031112*		GO	SWITT			; get switches
  1172	032176	606 00 0 00 000060 		TRNN	NIPORT!CIPORT		; any port selected?
  1173	032177	474 00 0 00 000000 		SETO				; no - ensure both are selected
  1174	032200	602 00 0 00 000040 		TRNE	NIPORT			; NI port selected?
  1175						GO	[CAIN	3,3		; yes - set selected bit if
  1176							 TRO	3,4		;   the port exists and is
  1177	032201	260 17 0 00 053514 			 RTN]			;   selectable
  1178	032202	602 00 0 00 000020 		TRNE	CIPORT			; CI port selected?
  1179						GO	[CAIN	4,3		; yes - set selected bit if
  1180							 TRO	4,4		;   the port exists and is
  1181	032203	260 17 0 00 053517 			 RTN]			;   selectable
  1182	032204	202 03 0 00 046277 		MOVEM	3,NISEL			; save NI select bits
  1183	032205	202 04 0 00 046300 		MOVEM	4,CISEL			; save CI select bits
  1184
  1185					; Print configuration
  1186
  1187	032206	260 17 0 00 032215 		GO	CONPNT			; print configuration noted
  1188	032207	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  1189
  1190	032214	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 28
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0215

  1191
  1192					;#********************************************************************
  1193					;* CONPNT - Print configuration
  1194					;#********************************************************************
  1195
  1196	032215	261 17 0 00 000000 	CONPNT:	RPUT	(0,1)			; save AC's
  1197
  1198	032217	037 00 0 00 053522 		TMSGC	<Port Configuration:>
  1199	032220	037 00 0 00 053527 		TMSGC	<  Port  Exists  Selectable  Selected>
  1200	032221	037 00 0 00 053537 		TMSGC	<   NI    >
  1201	032222	200 01 0 00 046277 		MOVE	1,NISEL
  1202						XCT	[TMSG	 <No        No          No>
  1203							 TMSG	 <Yes       No          No>
  1204							 TMSG	 <No        Yes         No>
  1205							 TMSG	 <Yes       Yes         No>
  1206							 TMSG	 <No        No          No>
  1207							 TMSG	 <Yes       No          No>
  1208							 TMSG	 <No        Yes         Yes>
  1209	032223	256 00 0 01 053602 			 TMSG	 <Yes       Yes         Yes>](1)
  1210	032224	037 00 0 00 053612 		TMSGC	<   CI    >
  1211	032225	200 01 0 00 046300 		MOVE	1,CISEL
  1212						XCT	[TMSG	 <No        No          No>
  1213							 TMSG	 <Yes       No          No>
  1214							 TMSG	 <No        Yes         No>
  1215							 TMSG	 <Yes       Yes         No>
  1216							 TMSG	 <No        No          No>
  1217							 TMSG	 <Yes       No          No>
  1218							 TMSG	 <No        Yes         Yes>
  1219	032226	256 00 0 01 053602 			 TMSG	 <Yes       Yes         Yes>](1)
  1220	032227	037 00 0 00 030242 		PCRL
  1221	032230	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  1222
  1223	032232	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 29
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0216

  1224
  1225					;#********************************************************************
  1226					;* TSTSEL - Select device(s) to test
  1227					;#********************************************************************
  1228
  1229	032233	200 01 0 00 053626 	TSTSEL:	MOVE	1,[FMSGCD <SELECT NI or NI,CI or CI or SELECT (CR)>]
  1230	032234	260 17 0 00 032022*		GO	.SARG			; get SIXBIT argument
  1231	032235	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1232	032236	254 00 0 00 032274 		 JRST	TSTSEG			; no argument - query user
  1233	032237	200 01 0 00 032071*	TSTSE0:	MOVE	1,ARGUM			; get sixbit command
  1234						MOVEI	2,[SIXBIT /NI/		; get address of cmd list
  1235							   SIXBIT /CI/
  1236	032240	201 02 0 00 053627 			   0]
  1237	032241	260 17 0 00 031075*		GO	.COMM			; handle command decoding
  1238						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  1239							 GO	FIOFF
  1240	032242	254 00 0 00 053632 			 RTN]			; error return
  1241
  1242					; Have a command
  1243
  1244	032243	400 16 0 00 000000 		SETZ	MBCN,			; clear current selection
  1245	032244	200 00 0 00 046277 		MOVE	NISEL			; get NI select word
  1246	032245	620 00 0 00 000004 		TRZ	4			; clear select bit
  1247	032246	202 00 0 00 046277 		MOVEM	NISEL			; save it
  1248	032247	200 00 0 00 046300 		MOVE	CISEL			; get CI select word
  1249	032250	620 00 0 00 000004 		TRZ	4			; clear select bit
  1250	032251	202 00 0 00 046300 		MOVEM	CISEL			; save it
  1251	032252	306 01 0 00 000000 		CAIN	1,0			; NI specified?
  1252						GO	[MOVE	NISEL		; yes - set the select bit
  1253							 TRO	4
  1254							 TRNN	2
  1255							 JRST	[FMSGCD	<? NI port is not selectable>
  1256								 RTN]
  1257							 MOVEM	NISEL
  1258	032253	260 17 0 00 053646 			 RTN]
  1259	032254	306 01 0 00 000001 		CAIN	1,1			; CI specified?
  1260						GO	[MOVE	CISEL		; yes - set the select bit
  1261							 TRO	4
  1262							 TRNN	2
  1263							 JRST	[FMSGCD	<? CI port is not selectable>
  1264								 RTN]
  1265							 MOVEM	CISEL
  1266	032255	260 17 0 00 053665 			 RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 30
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0217

  1267
  1268					; Check for another argument
  1269
  1270	032256	210 01 0 00 053626 		MOVN	1,[FMSGCD <SELECT NI or NI,CI or CI or SELECT (CR)>]
  1271	032257	260 17 0 00 032234*		GO	.SARG			; get SIXBIT argument
  1272	032260	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1273	032261	254 00 0 00 032321 		 JRST	TSTSEX			; no argument - exit
  1274	032262	200 01 0 00 032237*		MOVE	1,ARGUM			; get sixbit command
  1275						MOVEI	2,[SIXBIT /NI/		; get address of cmd list
  1276							   SIXBIT /CI/
  1277	032263	201 02 0 00 053627 			   0]
  1278	032264	260 17 0 00 032241*		GO	.COMM			; handle command decoding
  1279						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  1280							 GO	FIOFF
  1281	032265	254 00 0 00 053632 			 RTN]			; error return
  1282
  1283					; Have a command
  1284
  1285	032266	400 16 0 00 000000 		SETZ	MBCN,			; clear current selection
  1286	032267	306 01 0 00 000000 		CAIN	1,0			; NI specified?
  1287						GO	[MOVE	NISEL		; yes - set the select bit
  1288							 TRO	4
  1289							 TRNN	2
  1290							 JRST	[FMSGCD	<? NI port is not selectable>
  1291								 RTN]
  1292							 MOVEM	NISEL
  1293	032270	260 17 0 00 053646 			 RTN]
  1294	032271	306 01 0 00 000001 		CAIN	1,1			; CI specified?
  1295						GO	[MOVE	CISEL		; yes - set the select bit
  1296							 TRO	4
  1297							 TRNN	2
  1298							 JRST	[FMSGCD	<? CI port is not selectable>
  1299								 RTN]
  1300							 MOVEM	CISEL
  1301	032272	260 17 0 00 053665 			 RTN]
  1302	032273	254 00 0 00 032321 		JRST	TSTSEX			; exit
  1303
  1304					; Check NI port
  1305
  1306	032274	400 16 0 00 000000 	TSTSEG:	SETZ	MBCN,			; clear current selection
  1307	032275	200 01 0 00 046277 		MOVE	1,NISEL			; get NI select word
  1308	032276	606 01 0 00 000002 		TRNN	1,2			; port selectable?
  1309	032277	254 00 0 00 032305 		JRST	TSTSG0			; no - continue
  1310	032300	200 00 0 00 053677 		MOVE	[FMSGC	<Test NI port?>]
  1311	032301	260 17 0 00 000000*		GO	TTYYES			; check for Y or N
  1312	032302	624 01 0 00 000004 		TRZA	1,4			; no - set no
  1313	032303	660 01 0 00 000004 		TRO	1,4			; yes - set yes
  1314	032304	202 01 0 00 046277 		MOVEM	1,NISEL			; save selection
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 31
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0218

  1315
  1316					; Check CI port
  1317
  1318	032305	200 01 0 00 046300 	TSTSG0:	MOVE	1,CISEL			; get CI select word
  1319	032306	606 01 0 00 000002 		TRNN	1,2			; port selectable?
  1320	032307	254 00 0 00 032321 		JRST	TSTSEX			; no - exit
  1321	032310	200 00 0 00 053704 		MOVE	[FMSGC	<Test CI port?>]
  1322	032311	260 17 0 00 032301*		GO	TTYYES			; check for Y or N
  1323	032312	624 01 0 00 000004 		TRZA	1,4			; no - set no
  1324	032313	660 01 0 00 000004 		TRO	1,4			; yes - set yes
  1325	032314	202 01 0 00 046300 		MOVEM	1,CISEL			; save selection
  1326
  1327					; Set up MBCN properly
  1328
  1329	032315	200 16 0 00 046275 		MOVE	MBCN,PORTNI		; get NI device code
  1330	032316	200 01 0 00 046277 		MOVE	1,NISEL			; get NI select word
  1331	032317	606 01 0 00 000004 		TRNN	1,4			; selected?
  1332	032320	200 16 0 00 046276 		MOVE	MBCN,PORTCI		; no - get CI device code
  1333
  1334					; Print selection
  1335
  1336	032321	200 00 0 00 046277 	TSTSEX:	MOVE	NISEL			; get NI select word
  1337	032322	602 00 0 00 000004 		TRNE	4			; selected?
  1338	032323	037 00 0 00 053705 		TMSGC	<[NI port selected]>	; yes - print such
  1339	032324	200 00 0 00 046300 		MOVE	CISEL			; get CI select word
  1340	032325	602 00 0 00 000004 		TRNE	4			; selected?
  1341	032326	037 00 0 00 053712 		TMSGC	<[CI port selected]>	; yes - print such
  1342	032327	200 00 0 00 046277 		MOVE	NISEL			; get NI select word
  1343	032330	434 00 0 00 046300 		IOR	CISEL			; include CI select word
  1344	032331	606 00 0 00 000004 		TRNN	4			; any selected?
  1345	032332	037 00 0 00 053717 		TMSGC	<[No ports selected]>	; no - print such
  1346	032333	037 00 0 00 030242 		PCRL
  1347	032334	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 32
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0219

  1348
  1349					;#********************************************************************
  1350					; PTEST - Determine port under test and set up MBCN
  1351					; PTESTP - Print port under test (if not already known)
  1352					;#********************************************************************
  1353
  1354	032335	261 17 0 00 000000 	PTEST:	PUT	0			; save AC0
  1355	032336	316 16 0 00 046275 		CAMN	MBCN,PORTNI		; NI port already selected?
  1356	032337	254 00 0 00 032352 		JRST	PTEST0			; yes - continue
  1357	032340	316 16 0 00 046276 		CAMN	MBCN,PORTCI		; no - CI port already selected?
  1358	032341	254 00 0 00 032352 		JRST	PTEST0			; yes - continue
  1359	032342	200 16 0 00 046275 		MOVE	MBCN,PORTNI		; no - set to NI port
  1360	032343	200 00 0 00 046277 		MOVE	NISEL			; get NI select bits
  1361	032344	602 00 0 00 000004 		TRNE	4			; select possible?
  1362	032345	254 00 0 00 032352 		JRST	PTEST0			; yes - continue
  1363	032346	200 16 0 00 046276 		MOVE	MBCN,PORTCI		; no - set to CI port
  1364	032347	200 00 0 00 046300 		MOVE	CISEL			; get CI select bits
  1365	032350	606 00 0 00 000004 		TRNN	4			; select possible?
  1366	032351	400 16 0 00 000000 		SETZ	MBCN,			; no - indicate such
  1367	032352	262 17 0 00 000000 	PTEST0:	GET	0			; restore AC0
  1368	032353	263 17 0 00 000000 		RTN				; return
  1369
  1370	032354	261 17 0 00 000000 	PTESTP:	PUT	0			; save AC0
  1371	032355	200 00 0 00 046277 		MOVE	NISEL			; get NI select word
  1372	032356	404 00 0 00 046300 		AND	CISEL			;   and CI select word
  1373	032357	606 00 0 00 000004 		TRNN	4			; both selected?
  1374	032360	254 00 0 00 032365 		JRST	PTESTX			; no - continue
  1375	032361	316 16 0 00 046275 		CAMN	MBCN,PORTNI		; NI port already selected?
  1376	032362	037 00 0 00 053724 		TMSGCD	<[Port under test - NI]>; yes - print such
  1377	032363	316 16 0 00 046276 		CAMN	MBCN,PORTCI		; CI port already selected?
  1378	032364	037 00 0 00 053732 		TMSGCD	<[Port under test - CI]>; yes - print such
  1379	032365	336 00 0 00 000016 	PTESTX:	SKIPN	MBCN			; any port selected?
  1380	032366	037 00 0 00 053740 		TMSGCD	<[Port under test - none]> ; no - print such
  1381	032367	262 17 0 00 000000 		GET	0			; restore AC0
  1382	032370	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 33
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0220

  1383
  1384					;#*********************************************************************
  1385					;* TSTHLP - Help for 'WHAT TEST' question.
  1386					;#*********************************************************************
  1387
  1388					TSTHLP:	MOVN	1,[FMSGD <
  1389					HELP ALL     CONFIG
  1390					     TESTS   LIST
  1391	032371	210 01 0 00 053763 	     MISC    SWITCH>]
  1392	032372	260 17 0 00 032257*		GO	.SARG			; get SIXBIT argument
  1393	032373	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1394						 GO	[MOVE	[SIXBIT /ALL/]	; no argument - assume all
  1395							 MOVEM	ARGUM
  1396	032374	260 17 0 00 053765 			 RTN]
  1397	032375	200 01 0 00 032262*		MOVE	1,ARGUM			; get sixbit command
  1398	032376	201 02 0 00 032411 		MOVEI	2,TSTHLC		; get address of cmd list
  1399	032377	260 17 0 00 032264*		GO	.COMM			; handle command decoding
  1400						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  1401							 GO	FIOFF
  1402	032400	254 00 0 00 053632 			 RTN]			; error return
  1403	032401	037 01 0 00 000026 		PFORCE				; handle Control-O
  1404	032402	200 02 0 00 000001 		MOVE	2,1			; get AC1
  1405	032403	336 03 0 01 032420 	TSTHL0:	SKIPN	3,TSTHLL(1)		; get address of TMSG
  1406	032404	263 17 0 00 000000 		RTN				; all done - exit
  1407	032405	256 00 0 00 000003 		XCT	3			; print it
  1408	032406	350 00 0 00 000001 		AOS	1			; point to next address
  1409	032407	322 02 0 00 032403 		JUMPE	2,TSTHL0		; loop till done
  1410	032410	263 17 0 00 000000 		RTN				; exit
  1411
  1412	032411	41 54 54 00 00 00 	TSTHLC:	SIXBIT	/ALL/			; print all help info
  1413	032412	64 45 63 64 63 00 		SIXBIT	/TESTS/			; print test commands
  1414	032413	55 51 63 43 00 00 		SIXBIT	/MISC/			; print miscellaneous commands
  1415	032414	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; print configuration commands
  1416	032415	54 51 63 64 00 00 		SIXBIT	/LIST/			; print list commands
  1417	032416	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; print switch commands
  1418	032417	000000	000000			0				; end of list
  1419
  1420	032420	037 00 0 00 053770 	TSTHLL:	TMSGCD	<Tests Available:>
  1421
  1422						TMSGD	<
  1423					ALL n   All tests (n times)
  1424					EBUS n  EBus module tests
  1425					SEQ n   SEQ related tests
  1426					ALU n   2901 related tests
  1427					MPROC n MPROC module tests
  1428					CBUS n  CBus module tests
  1429					MBUS n  MBUS related tests
  1430	032421	037 00 0 00 053775 	XXm n   Test m, category XX (where XX can be EB,SE,AL,MP,CB)>
  1431
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 34
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0221

  1432						TMSGD	<
  1433					TAKE    Take cmds from file
  1434					NTAKE   Take cmds from file (not echoed)
  1435					DEBUG   Enter port debugger
  1436					ENABLE n  Enable execution of test n
  1437					DISABL n  Disable execution of test n
  1438					DISLIS  List disabled tests
  1439					DIAMON  Enter DIAMON
  1440					DDT     Enter DDT
  1441					HELP    Print this
  1442	032422	037 00 0 00 054061 	EXIT    Exit program>
  1443
  1444						TMSGD	<
  1445					CONFIG  Determine/print configuration
  1446					CONPNT  Print configuration
  1447	032423	037 00 0 00 054154 	SELECT  Select device to test>
  1448
  1449						TMSGD	<
  1450					LIST n  List all tests (or just test n)
  1451					LISTEB n  List EBus module tests (or test n)
  1452					LISTSE n  List Sequencer related tests
  1453					LISTAL n  List 2901's related tests
  1454					LISTMP n  List MPROC module tests
  1455	032424	037 00 0 00 054201 	LISTCB n  List CBus module tests>
  1456
  1457						TMSGD	<
  1458					Switches:  To complement switch, type switch name
  1459					
  1460					SWITCH  Enter switches
  1461					SWPRIN  Print current switches
  1462					
  1463					NOPNT   LOOPER  RELIAB   TRACE   LOOPGM  DSPEAR  SDEBUG  NIPORT  MMPROC
  1464					PNTLPT  ERSTOP  TXTINH   INHFLT  LOOPTS  UDEBUG  LDEBUG  CIPORT  MCBUS
  1465	032425	037 00 0 00 054261 	DING    PALERS  OPRSEL   INHMSG  RUNALL  MDEBUG  IDEBUG>
  1466	032426	000000	000000			0
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 35
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0222

  1467
  1468					;#********************************************************************
  1469					;* TSTDSA - Disable a test.
  1470					;* TSTENA - Enable a test.
  1471					;#********************************************************************
  1472
  1473	032427	402 00 0 00 064336'	TSTDSA:	SETZM	ENATST#			; clear 'enable' flag
  1474	032430	200 00 0 00 054370 		MOVE	[FMSGCD (DISABL XXnnn XXnnn ... <CR>)]
  1475	032431	202 00 0 00 064403'		MOVEM	TMP1#
  1476	032432	254 00 0 00 032436 		JRST	TSTEN0			; continue
  1477	032433	476 00 0 00 064336'	TSTENA:	SETOM	ENATST#			; set 'enable' flag
  1478	032434	200 00 0 00 054400 		MOVE	[FMSGCD (ENABLE XXnnn XXnnn ... <CR>)]
  1479	032435	202 00 0 00 064403'		MOVEM	TMP1#
  1480	032436	336 00 0 00 032017*	TSTEN0:	SKIPN	ARGFLG			; argument given?
  1481						JRST	[FMSGCD	<? Missing argument>
  1482							 GO	FIOFF
  1483	032437	254 00 0 00 054406 			 RTN]
  1484
  1485					; Get an argument
  1486
  1487	032440	200 01 0 00 064403'	TSTDS0:	MOVE	1,TMP1			; get help string
  1488	032441	260 17 0 00 032372*		GO	.SARG			; yes - get SIXBIT argument
  1489	032442	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1490	032443	263 17 0 00 000000 		 RTN				; no more arguments
  1491	032444	200 01 0 00 032375*		MOVE	1,ARGUM			; get argument
  1492	032445	260 17 0 00 034133 		GO	TSTDEC			; decode as a test name
  1493						 JRST	[FMSGCD	<? Argument not recognizable as a test name 'XXn'>
  1494							 GO	FIOFF
  1495	032446	254 00 0 00 053375 			 RTN]
  1496						 JRST	[FMSGC	<? Test selected is not in range 1->
  1497							 MOVE	1		; get range
  1498							 PNTOCF			; print it
  1499							 PCRLF
  1500							 GO	FIOFF
  1501	032447	254 00 0 00 053410 			 RTN]
  1502
  1503					; Now perform the specified function
  1504
  1505	032450	260 17 0 00 042304 		GO	TSTGET			; get test data
  1506	032451	200 01 0 00 046307 		MOVE	1,TSTPC			; get test PC
  1507	032452	200 02 0 00 046310 		MOVE	2,TSTFLG		; get test flags
  1508	032453	332 00 0 00 064336'		SKIPE	ENATST			; 'enable' flag set?
  1509	032454	621 02 0 00 000100 		TLZ	2,(TDENA)		; yes - clear 'disable' bit
  1510	032455	336 00 0 00 064336'		SKIPN	ENATST			; 'enable' flag set?
  1511	032456	661 02 0 00 000100 		TLO	2,(TDENA)		; no - set 'disable' bit
  1512	032457	202 02 0 01 000001 		MOVEM	2,1(1)			; save flags + test address
  1513	032460	254 00 0 00 032440 		JRST	TSTDS0			; get next argument
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 36
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0223

  1514
  1515					;#********************************************************************
  1516					;* TSTDSL - List disabled tests
  1517					;#********************************************************************
  1518
  1519	032461	200 01 0 00 054415 	TSTDSL:	MOVE	1,[FMSGCD (DISLIS <CR>)]
  1520	032462	260 17 0 00 032132*		GO	CHKARG			; check for argument
  1521	032463	263 17 0 00 000000 		RTN				; error - exit
  1522	032464	476 00 0 00 046317 		SETOM	TSTINH			; initialize fault isolation flag
  1523	032465	201 00 0 00 033145 		MOVEI	TDISP1-1		; get address of dispatch table
  1524	032466	202 00 0 00 046311 		MOVEM	TSTADD			; save it
  1525	032467	400 06 0 00 000000 		SETZ	6,			; count of tests printed
  1526	032470	260 17 0 00 042332 	TSTDL0:	GO	SELTST			; select a test
  1527						 PJRST	[PCRL			; no more - return
  1528	032471	254 00 0 00 054416 			 RTN]
  1529	032472	255 00 0 00 000000 		 JFCL				; not valid (ignore)
  1530	032473	200 00 0 00 046310 		MOVE	TSTFLG			; get test flags
  1531	032474	607 00 0 00 000100 		TLNN	(TDENA)			; disabled?
  1532	032475	254 00 0 00 032470 		JRST	TSTDL0			; no - try next test
  1533	032476	377 00 0 00 000006 		SOSG	6			; done with line yet?
  1534						GO	[MOVEI	6,13		; yes - reset counter and
  1535							 PCRL			;   print a blank line
  1536	032477	260 17 0 00 054420 			 RTN]
  1537	032500	200 01 0 00 046304 		MOVE	1,TSTCLS		; get test class
  1538	032501	200 00 0 01 031123 		MOVE	INDLIS(1)		; get class description
  1539	032502	037 00 0 00 000002 		PNTSIX				; print it
  1540	032503	200 00 0 00 046305 		MOVE	TSTNUM			; get test number
  1541	032504	037 16 0 00 000003 		PNTOCS				; print it
  1542	032505	037 00 0 00 000040 		PSP
  1543	032506	254 00 0 00 032470 		JRST	TSTDL0			; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 37
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0224

  1544
  1545					;#********************************************************************
  1546					;* TSTSWI/TSTSWP - Input switches / Print switch selections
  1547					;#********************************************************************
  1548
  1549	032507	200 01 0 00 054427 	TSTSWI:	MOVE	1,[FMSGCD (SWITCH <CR>)]
  1550	032510	260 17 0 00 032462*		GO	CHKARG			; check for argument
  1551	032511	263 17 0 00 000000 		RTN				; error - exit
  1552	032512	260 17 0 00 000000*		GO	.ISWT			; input switches
  1553	032513	263 17 0 00 000000 		RTN				; ask for a test
  1554
  1555	032514	200 01 0 00 054434 	TSTSWP:	MOVE	1,[FMSGCD (SWPRIN <CR>)]
  1556	032515	260 17 0 00 032510*		GO	CHKARG			; check for argument
  1557	032516	263 17 0 00 000000 		RTN				; error - exit
  1558	032517	260 17 0 00 000000*		GO	.SWCHP			; print switches
  1559	032520	263 17 0 00 000000 		RTN				; ask for a test
  1560
  1561
  1562					;#********************************************************************
  1563					;* TSTSSW - Switch complement commands
  1564					;#********************************************************************
  1565
  1566	032521	200 01 0 00 054442 	TSTSSW:	MOVE	1,[FMSGCD (Switch Name <CR>)]
  1567	032522	260 17 0 00 032515*		GO	CHKARG			; check for argument
  1568	032523	263 17 0 00 000000 		RTN				; error - exit
  1569	032524	200 01 0 00 000000*		MOVE	1,.CGOT			; get dispatch number
  1570	032525	275 01 0 00 000036 		SUBI	1,SWSTT			; normalize to 0..
  1571	032526	260 17 0 00 000000*		GO	SWCOM			; complement switch
  1572	032527	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 38
DFPTA1	MAC	10-Oct-83 21:43		Test/Command Selection                                                             SEQ 0225

  1573
  1574					;#********************************************************************
  1575					;* TSTTAK - Take commands from a file
  1576					;* TSTTAN - Take commands from a file without echoing results
  1577					;
  1578					; This works by reading commands from a file as if they were being
  1579					; typed to the diagnostic directly.  Either end of file or the first
  1580					; occurrence of an error halts this procedure.
  1581					;#********************************************************************
  1582
  1583	032530	402 00 0 00 064340'	TSTTAN:	SETZM	FINECH			; clear echo switch
  1584	032531	334 00 0 00 000000 		SKIPA				; continue
  1585	032532	476 00 0 00 064340'	TSTTAK:	SETOM	FINECH			; set echo switch
  1586	032533	200 01 0 00 054453 		MOVE	1,[FMSGCD (TAKE <CR> or TAKE Fname Ext <CR>)]
  1587	032534	260 17 0 00 032441*		GO	.SARG			; get SIXBIT argument
  1588	032535	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1589	032536	254 00 0 00 032547 		 JRST	TSTTA0			; no more arguments
  1590	032537	200 01 0 00 032444*		MOVE	1,ARGUM			; get argument
  1591	032540	202 01 0 00 032564 		MOVEM	1,TAKFIL		; save file name
  1592	032541	210 01 0 00 054453 		MOVN	1,[FMSGCD (TAKE <CR> or TAKE Fname Ext <CR>)]
  1593	032542	260 17 0 00 032534*		GO	.SARG			; get SIXBIT argument
  1594	032543	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1595	032544	254 00 0 00 032547 		 JRST	TSTTA0			; no more arguments
  1596	032545	200 01 0 00 032537*		MOVE	1,ARGUM			; get argument
  1597	032546	202 01 0 00 032565 		MOVEM	1,TAKFIL+1		; save file name extension
  1598
  1599					; Now start reading the file specified
  1600
  1601	032547	260 17 0 00 031107*	TSTTA0:	GO	FIOFF			; shut off previous file input
  1602	032550	201 00 0 00 032564 		MOVEI	TAKFIL			; point to file name buffer
  1603	032551	037 05 0 00 000004 		FSELECT				; init the file
  1604						JRST	[FMSGC	<? Can't access ">
  1605							 MOVE	TAKFIL			; get file name
  1606							 PNTSXF				; print it
  1607							 PNTCIF	"."
  1608							 MOVE	TAKFIL+1		; get extension
  1609							 PNTSXF				; print it
  1610							 FMSGD	<" on selected load device.>
  1611	032552	254 00 0 00 054466 			 RTN]
  1612	032553	037 01 0 00 054476 		FMSGC	<[File input from: >
  1613	032554	200 00 0 00 032564 		MOVE	TAKFIL			; get the selected file name
  1614	032555	037 01 0 00 000002 		PNTSXF				; print it
  1615	032556	037 01 0 00 000056 		PNTCIF	"."
  1616	032557	200 00 0 00 032565 		MOVE	TAKFIL+1		; get the extension of file
  1617	032560	037 01 0 00 000002 		PNTSXF				; print it
  1618	032561	037 01 0 00 053745 		FMSGD	<]>
  1619	032562	476 00 0 00 064341'		SETOM	FINPUT			; set 'file input' flag
  1620	032563	263 17 0 00 000000 		RTN				; exit
  1621
  1622					; File name
  1623
  1624	032564	44 46 60 64 41 00 	TAKFIL:	SIXBIT	/DFPTA/
  1625	032565	43 55 44 00 00 00 		SIXBIT	/CMD/
  1626
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 39
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0226

  1627						SUBTTL	Test Dispatching
  1628
  1629					;#********************************************************************
  1630					;* TSTSPC - Run only one test
  1631					;#********************************************************************
  1632
  1633	032566	201 00 0 00 033106 	TSTSPC:	MOVEI	TSTALT			; set up altmode transfer address
  1634	032567	202 00 0 00 030063 		MOVEM	ALTMGO			;   to exit port testing
  1635	032570	402 00 0 00 046314 		SETZM	TSTREP			; clear pass count
  1636	032571	260 17 0 00 032175*		GO	SWITT			; get program switches
  1637	032572	602 00 0 00 020000 		TRNE	LOOPTS			; loop on test?
  1638						JRST	[HRLEI	377777		; yes - get 'infinite' repeat count
  1639	032573	254 00 0 00 054503 			 JRST	.+2]
  1640	032574	201 00 0 00 000001 		MOVEI	1			; no - set repeat count requested
  1641	032575	202 00 0 00 046315 		MOVEM	TSTREQ			;   to 1 pass
  1642	032576	402 00 0 00 046316 		SETZM	TSTMUL			; clear multiple test flag
  1643	032577	476 00 0 00 046317 		SETOM	TSTINH			; initialize fault isolation flag
  1644	032600	336 00 0 00 032436*		SKIPN	ARGFLG			; argument given?
  1645	032601	254 00 0 00 032610 		JRST	TSTSP0			; no - do the test
  1646	032602	210 01 0 00 054513 		MOVN	1,[FMSGCD (XXnnn RepeatCount <CR>)]
  1647	032603	260 17 0 00 032066*		GO	.DARG			; yes - get repeat count argument
  1648	032604	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1649	032605	334 00 0 00 000000 		 SKIPA				; no argument given
  1650	032606	200 00 0 00 032545*		MOVE	ARGUM			; get argument
  1651	032607	202 00 0 00 046315 		MOVEM	TSTREQ			; save it
  1652	032610	476 00 0 00 032600*	TSTSP0:	SETOM	ARGFLG			; remember that we had an argument
  1653	032611	254 00 0 00 032737 		JRST	TSTD3			; do the test
  1654
  1655
  1656					;#********************************************************************
  1657					;* RANGEN - Random number generator
  1658					;#********************************************************************
  1659
  1660	032612	261 17 0 00 000001 	RANGEN:	RPUT	(1,2)			; save AC's
  1661
  1662	032614	200 01 0 00 064367'		MOVE	1,RANNUM#		; get base number
  1663	032615	270 01 0 00 030022 		ADD	1,RANDBS		; modify number in AC1
  1664	032616	241 01 0 00 777774 		ROT	1,-4			; to create a new number
  1665	032617	447 01 0 00 064367'		EQVB	1,RANNUM		; put result in AC1 and RANNUM
  1666	032620	405 01 0 00 007777 		ANDI	1,7777			; save only 4 digits
  1667	032621	220 01 0 17 777777 		IMUL	1,-1(P)			; obtain (0..n-1)*10000
  1668	032622	242 01 0 00 777764 		LSH	1,-^D12			; obtain 0..n-1
  1669	032623	350 00 0 00 000001 		AOS	1			; obtain 1..n
  1670	032624	313 01 0 17 777777 		CAMLE	1,-1(P)			; in range?
  1671	032625	200 01 0 17 777777 		MOVE	1,-1(P)			; no - force it to be
  1672	032626	250 01 0 17 777777 		EXCH	1,-1(P)			; set up returned argument
  1673	032627	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  1674
  1675	032631	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 40
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0227

  1676
  1677					;#********************************************************************
  1678					; TSTRAN - Run tests randomly
  1679					;#********************************************************************
  1680
  1681	032632	201 00 0 00 032655 	TSTRAN:	MOVEI	TSTRAA			; set up altmode transfer address
  1682	032633	202 00 0 00 030063 		MOVEM	ALTMGO			;   to exit port testing
  1683	032634	402 00 0 00 046314 		SETZM	TSTREP			; clear pass count
  1684	032635	201 00 0 00 000001 		MOVEI	1			; set repeat count requested
  1685	032636	202 00 0 00 046315 		MOVEM	TSTREQ			;   to 1 pass
  1686	032637	402 00 0 00 046316 		SETZM	TSTMUL			; clear multiple test flag
  1687	032640	476 00 0 00 046317 		SETOM	TSTINH			; initialize fault isolation flag
  1688	032641	402 00 0 00 064366'		SETZM	RANCNT#			; initialize test count
  1689	032642	400 03 0 00 000000 		SETZ	3,			; set a a base number using the
  1690	032643	260 17 0 00 030750*		GO	RUNTME			;   program run time and save
  1691	032644	200 00 0 00 000000*		MOVE	CURTIM			;   it in RANNUM
  1692	032645	202 00 0 00 064367'		MOVEM	RANNUM
  1693
  1694					; Determine test to run
  1695
  1696	032646	201 01 0 00 000351 	TSTRA0:	MOVEI	1,TEND-TDISP1		; get range 1..MAXTST
  1697	032647	260 17 0 00 032612 		GO	RANGEN			; get a random number (in AC1)
  1698	032650	201 01 0 01 033144 		MOVEI	1,TDISP1-2(1)		; get test dispatch address
  1699	032651	202 01 0 00 046311 		MOVEM	1,TSTADD		; save it (test - 1)
  1700	032652	260 17 0 00 032737 		GO	TSTD3			; do the test
  1701	032653	350 01 0 00 064366'		AOS	1,RANCNT		; increment test count
  1702	032654	254 00 0 00 032646 		JRST	TSTRA0			; keep looping
  1703
  1704					; Altmode exit
  1705
  1706	032655	037 01 0 00 054514 	TSTRAA:	FMSGC	<[Testing aborted after >
  1707	032656	200 00 0 00 064366'		MOVE	RANCNT			; get test count
  1708	032657	037 15 0 00 000001 		PNTDCF				; print it
  1709	032660	037 01 0 00 054522 		FMSGD	< tests]>
  1710	032661	262 17 0 00 064417'		GET	XXX#			; pop off extra item
  1711	032662	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 41
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0228

  1712
  1713					;#*********************************************************************
  1714					;* TSTDIS - Dispatch to the tests
  1715					;#*********************************************************************
  1716
  1717					; Set up flags, defaults, etc.
  1718
  1719	032663	201 00 0 00 033106 	TSTDIS:	MOVEI	TSTALT			; set up altmode transfer address
  1720	032664	202 00 0 00 030063 		MOVEM	ALTMGO			;   to exit port testing
  1721	032665	402 00 0 00 046314 		SETZM	TSTREP			; clear pass count
  1722	032666	402 00 0 00 046315 		SETZM	TSTREQ			; set repeat count requested to 1
  1723	032667	350 00 0 00 046315 		AOS	TSTREQ			;   pass
  1724	032670	476 00 0 00 046316 		SETOM	TSTMUL			; set multiple test flag
  1725	032671	336 00 0 00 032610*		SKIPN	ARGFLG			; argument given?
  1726	032672	254 00 0 00 032702 		JRST	TSTD0			; no - do the tests
  1727	032673	210 01 0 00 052043 		MOVN	1,[FMSGCD (Cmd RepeatCount <CR>)]
  1728	032674	260 17 0 00 032603*		GO	.DARG			; yes - get repeat count argument
  1729	032675	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  1730	032676	334 00 0 00 000000 		 SKIPA				; no argument given
  1731	032677	200 00 0 00 032606*		MOVE	ARGUM			; get argument
  1732	032700	202 00 0 00 046315 		MOVEM	TSTREQ			; save it
  1733	032701	476 00 0 00 032671*		SETOM	ARGFLG			; remember that we had an argument
  1734
  1735					; If OPRSEL switch is not set then all tests are run.
  1736
  1737	032702	260 17 0 00 032571*	TSTD0:	GO	SWITT			; get the pgm switches
  1738	032703	135 01 0 00 054524 		LDB	1,[POINT 3,0,35]	; get only MMPROC and MCBUS switches
  1739						XCT	[JFCL			; print module status
  1740							 TMSGCD	<[Assuming CBUS module is missing]>
  1741							 TMSGCD	<[Assuming MPROC and CBUS modules are missing]>
  1742	032704	256 00 0 01 054547 			 TMSGCD	<[Assuming MPROC and CBUS modules are missing]>](1)
  1743	032705	402 00 0 00 046317 		SETZM	TSTINH			; initialize fault isolation flag
  1744	032706	602 00 0 00 200000 		TRNE	INHFLT			; inhibiting fault isolation?
  1745	032707	476 00 0 00 046317 		SETOM	TSTINH			; yes - set the flag
  1746	032710	201 00 0 00 033145 		MOVEI	TDISP1-1		; get address without fault isolation
  1747	032711	336 00 0 00 046317 		SKIPN	TSTINH			; inhibit fault isolation flag set?
  1748	032712	201 00 0 00 033517 		MOVEI	TDISP2-1		; no - get address with fault isolation
  1749	032713	202 00 0 00 046311 		MOVEM	TSTADD			; set up test dispatch table address
  1750	032714	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL set?
  1751	032715	254 00 0 00 032737 		JRST	TSTD3			; no - go run all of them
  1752
  1753					; Check for MBUS testing (if so, the pass count has already been obtained)
  1754
  1755	032716	200 00 0 00 046313 		MOVE	TSTMSK			; get test mask
  1756	032717	316 00 0 00 052300 		CAMN	[MBUS]			; MBUS command given?
  1757	032720	336 00 0 00 064350'		SKIPN	MBARGF			; 'MBUS argument given' flag set?
  1758	032721	254 00 0 00 032724 		JRST	TSTD1			; no - continue
  1759	032722	200 00 0 00 064347'		MOVE	MBARG			; get repeat count
  1760	032723	254 00 0 00 032736 		JRST	TSTD2			; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 42
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0229

  1761
  1762					; Handle pass count
  1763
  1764	032724	200 00 0 00 046315 	TSTD1:	MOVE	TSTREQ			; get argument typed
  1765	032725	332 00 0 00 032701*		SKIPE	ARGFLG			; any argument given?
  1766	032726	254 00 0 00 032736 		JRST	TSTD2			; yes - skip over this question
  1767	032727	332 00 0 00 064341'		SKIPE	FINPUT			; file input switch set?
  1768						JRST	[MOVEI	1		; yes - default to 1 iteration
  1769	032730	254 00 0 00 054553 			 JRST	TSTD2]
  1770	032731	037 01 0 00 054555 		FMSGC	<How many passes? (CR to loop forever) - >
  1771	032732	037 04 0 00 000003 		TTIDEC
  1772	032733	007 00 0 00 032724 		ALTCHK	TSTD1
  1773	032734	336 00 0 00 030510 		SKIPN	TTNBRF			; CR typed?
  1774	032735	200 00 0 00 054566 		MOVE	[377777,,777777]	; yes - loop forever
  1775	032736	202 00 0 00 046315 	TSTD2:	MOVEM	TSTREQ			; save count
  1776
  1777					; Save test class/number selection for multiple pass use
  1778
  1779	032737	200 00 0 00 046311 	TSTD3:	MOVE	TSTADD			; get test dispatch address
  1780	032740	202 00 0 00 064372'		MOVEM	SAVADD#			; save test dispatch address
  1781	032741	476 00 0 00 046330 		SETOM	PMODE			; set program mode to 'test'
  1782
  1783					; Check for whether or not to print end of pass messages
  1784
  1785	032742	402 00 0 00 064406'		SETZM	TSTEPP#			; clear flag
  1786	032743	260 17 0 00 032702*		GO	SWITT			; get switches
  1787	032744	603 00 0 00 000010 		TLNE	OPRSEL			; operator select?
  1788						GO	[MOVE	TSTREQ		; yes - set up to print end of
  1789							 CAILE	1		;   pass only if more than one
  1790							 SETOM	TSTEPP		;   pass was requested
  1791	032745	260 17 0 00 054567 			 RTN]
  1792
  1793					; Initialize test class/number selection
  1794
  1795	032746	200 00 0 00 064372'	TSTD4:	MOVE	SAVADD			; get test dispatch address
  1796	032747	202 00 0 00 046311 		MOVEM	TSTADD			; save test dispatch address
  1797
  1798					; Initialize device number
  1799
  1800	032750	476 00 0 00 046301 		SETOM	PORSEL			; initialize select word
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 43
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0230

  1801	
  1802					; Select next device
  1803
  1804	032751	400 00 0 00 000000 	TSTD5:	SETZ				; clear select word
  1805	032752	200 01 0 00 046301 		MOVE	1,PORSEL		; get current port
  1806	032753	306 01 0 00 000000 		CAIN	1,0			; NI port?
  1807	032754	200 00 0 00 046277 		MOVE	NISEL			; get NI select word
  1808	032755	306 01 0 00 000001 		CAIN	1,1			; CI port?
  1809	032756	200 00 0 00 046300 		MOVE	CISEL			; yes - get CI select word
  1810	032757	602 00 0 00 000004 		TRNE	4			; selected?
  1811	032760	260 17 0 00 033126 		GO	TSTEOP			; yes - print end of pass message
  1812	032761	602 00 0 00 000004 		TRNE	4			; selected?
  1813	032762	260 17 0 00 031343 		GO	ISOPNT			; yes - print fault isolation data
  1814	032763	350 01 0 00 046301 		AOS	1,PORSEL		; point to next device
  1815	032764	303 01 0 00 000001 		CAILE	1,1			; done yet?
  1816	032765	254 00 0 00 032774 		JRST	TSTD6			; yes - do next pass
  1817	032766	200 00 0 00 046277 		MOVE	NISEL			; get NI select word
  1818	032767	306 01 0 00 000001 		CAIN	1,1			; CI device?
  1819	032770	200 00 0 00 046300 		MOVE	CISEL			; yes - get CI select word
  1820	032771	606 00 0 00 000004 		TRNN	4			; selected?
  1821	032772	254 00 0 00 032751 		JRST	TSTD5			; no - check next device
  1822	032773	254 00 0 00 033006 		JRST	TSTD7			; yes - go test
  1823
  1824					; Decrement pass count
  1825
  1826	032774	260 17 0 00 031343 	TSTD6:	GO	ISOPNT			; print fault isolation data
  1827	032775	350 01 0 00 046314 		AOS	1,TSTREP		; increment pass count
  1828	032776	260 17 0 00 032743*		GO	SWITT			; get switches
  1829	032777	336 00 0 00 030037 		SKIPN	USER			; user mode?
  1830	033000	607 00 0 00 400000 		TLNN	ABORT			; abort switch set?
  1831	033001	334 00 0 00 000000 		SKIPA				; no - continue (or user mode)
  1832	033002	263 17 0 00 000000 		RTN				; exit
  1833	033003	373 00 0 00 046315 		SOSLE	TSTREQ			; passes all done?
  1834	033004	254 00 0 00 032746 		JRST	TSTD4			; no - keep looping
  1835	033005	263 17 0 00 000000 		RTN				; exit
  1836
  1837					; Initialize fault isolation data area
  1838
  1839	033006	200 16 0 00 046275 	TSTD7:	MOVE	MBCN,PORTNI		; get NI device code
  1840	033007	332 00 0 00 046301 		SKIPE	PORSEL			; CI port selected?
  1841	033010	200 16 0 00 046276 		MOVE	MBCN,PORTCI		; yes - get CI device code
  1842	033011	202 16 0 00 046302 		MOVEM	MBCN,UUT		; save unit under test
  1843	033012	260 17 0 00 032172*		GO	DEVREQ			; request the device
  1844	033013	254 00 0 00 032751 		JRST	TSTD5			; failed - exit pass
  1845	033014	402 00 0 00 031601 		SETZM	NETBAD			; clear first word
  1846	033015	200 00 0 00 054573 		MOVE	[NETBAD,,NETBAD+1]	; build BLT pointer
  1847	033016	251 00 0 00 031710 		BLT	NETBAD+^D71		; clear the areas
  1848	033017	402 00 0 00 064337'		SETZM	ERRCNT#			; clear error count
  1849	033020	402 00 0 00 064342'		SETZM	FLTPNT			; clear 'isolation data printed' flag
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 44
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0231

  1850
  1851					; Initialze test class/number at beginning of pass
  1852
  1853	033021	200 00 0 00 064372'		MOVE	SAVADD			; get test dispatch address
  1854	033022	202 00 0 00 046311 		MOVEM	TSTADD			; save it
  1855	033023	260 17 0 00 032776*		GO	SWITT			; get the pgm switches
  1856	033024	201 01 0 00 000001 		MOVEI	1,1			; initialize repeat count
  1857	033025	603 00 0 00 000400 		TLNE	RELIAB			; reliability switch set?
  1858	033026	201 01 0 00 000004 		MOVEI	1,4			; yes - set up count of 4
  1859	033027	202 01 0 00 046323 		MOVEM	1,TSTREL		; save it
  1860
  1861					; Now actually do the tests
  1862
  1863	033030	200 00 0 00 046323 	TSTD8:	MOVE	TSTREL			; get reliability count
  1864	033031	202 00 0 00 046324 		MOVEM	TSTCNT			; save it
  1865	033032	260 17 0 00 042332 		GO	SELTST			; select next test
  1866	033033	254 00 0 00 032751 		 JRST	TSTD5			; end of tests
  1867	033034	254 00 0 00 033076 		 JRST	TSTD12			; not a valid test
  1868	033035	200 16 0 00 046302 	TSTD9:	MOVE	MBCN,UUT		; valid test - set up MBCN
  1869	033036	260 17 1 00 046307 		GO	@TSTPC			; dispatch to test
  1870	033037	254 00 0 00 033076 		JRST	TSTD12			; disabled test - skip it
  1871	033040	332 00 0 00 046317 		SKIPE	TSTINH			; inhibit fault isolation?
  1872	033041	254 00 0 00 033067 		JRST	TSTD11			; yes - continue
  1873	033042	332 00 0 00 064344'		SKIPE	IDEBUG			; fault isolation debug mode?
  1874	033043	260 17 0 00 034105 		GO	FLTCHK			; yes - check if this test should fail
  1875	033044	322 15 0 00 033067 		JUMPE	ERFLG,TSTD11		; test did not fail - continue
  1876
  1877					; If this is the first failure, also set up new test dispatch table (as
  1878					; specified in the test itself).
  1879
  1880	033045	332 00 0 00 064337'		SKIPE	ERRCNT			; any errors yet?
  1881	033046	254 00 0 00 033052 		JRST	TSTD10			; no - continue
  1882	033047	200 00 0 00 046307 		MOVE	TSTPC			; get test PC
  1883	033050	271 00 0 00 000003 		ADDI	3			; point to new table address
  1884	033051	202 00 0 00 046311 		MOVEM	TSTADD			; set up new dispatch address
  1885
  1886					; Handle fault isolation
  1887
  1888	033052	350 00 0 00 064337'	TSTD10:	AOS	ERRCNT			; increment error count
  1889	033053	200 03 0 00 046320 		MOVE	3,TSTHIG		; get addr of high prob module list
  1890	033054	201 04 0 00 000014 		MOVEI	4,^D12			; weight of a high prob module
  1891	033055	332 00 0 00 064344'		SKIPE	IDEBUG			; fault isolation debug mode?
  1892						GO	[TMSGC	<*** >		; yes - print header ...
  1893							 MOVE	1,TSTCLS	; get test class
  1894							 MOVE	INDLIS(1)	; get class description
  1895							 PNTSIX			; print it
  1896							 MOVE	TSTNUM		; get test number
  1897							 PNTOCS			; print it
  1898							 TMSG	< ***>
  1899							 TMSGC	<High networks:  >
  1900	033056	260 17 0 00 054603 			 RTN]
  1901	033057	260 17 0 00 034067 		GO	FLTHAN			; go to fault handler
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 45
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0232

  1902	033060	200 03 0 00 046321 		MOVE	3,TSTLOW		; get addr of low prob module list
  1903	033061	201 04 0 00 000006 		MOVEI	4,^D6			; weight of a low prob module
  1904	033062	332 00 0 00 064344'		SKIPE	IDEBUG			; fault isolation debug mode?
  1905	033063	037 00 0 00 054614 		TMSGC	<Low networks:  >	; yes - print header
  1906	033064	260 17 0 00 034067 		GO	FLTHAN			; go to fault handler
  1907	033065	332 00 0 00 064344'		SKIPE	IDEBUG			; fault isolation debug mode?
  1908	033066	037 00 0 00 030242 		PCRL				; yes - end with a CRLF
  1909
  1910					; Dispatch is done - now check altmode
  1911
  1912	033067	332 00 0 00 064326'	TSTD11:	SKIPE	ALTF			; 'altmode typed' flag set?
  1913	033070	254 00 1 00 030063 		JRST	@ALTMGO			; yes - exit
  1914	033071	037 07 0 00 000003 		TTALTM				; altmode typed?
  1915	033072	334 00 0 00 000000 		SKIPA				; no - continue
  1916	033073	254 00 1 00 030063 		JRST	@ALTMGO			; yes - exit thru $ transfer address
  1917
  1918					; Loop till reliability count expired
  1919
  1920	033074	373 00 0 00 046324 		SOSLE	TSTCNT			; decrement reliability count
  1921	033075	254 00 0 00 033035 		JRST	TSTD9			; loop till done
  1922	033076	332 00 0 00 030037 	TSTD12:	SKIPE	USER			; user mode?
  1923	033077	254 00 0 00 033103 		JRST	.+4			; yes - continue
  1924	033100	260 17 0 00 033023*		GO	SWITT			; get switches
  1925	033101	603 00 0 00 200000 		TLNE	RSTART			; RSTART switch set?
  1926	033102	254 00 0 00 030610 		JRST	START			; yes - restart the diagnostic
  1927	033103	336 00 0 00 046316 		SKIPN	TSTMUL			; multiple tests being done?
  1928	033104	254 00 0 00 032751 		JRST	TSTD5			; no - check next device
  1929	033105	254 00 0 00 033030 		JRST	TSTD8			; yes - do next test
  1930
  1931					; Altmode transfer code
  1932
  1933	033106	037 01 0 00 054620 	TSTALT:	FMSGC	<[Testing aborted>
  1934	033107	336 00 0 00 046314 		SKIPN	TSTREP			; zero passes?
  1935	033110	254 00 0 00 033115 		JRST	TSTAL0			; yes - don't print how many
  1936	033111	037 01 0 00 054624 		FMSG	< after >
  1937	033112	200 00 0 00 046314 		MOVE	TSTREP			; get pass count
  1938	033113	037 15 0 00 000001 		PNTDCF				; print it
  1939	033114	037 01 0 00 054626 		FMSG	< passes>
  1940	033115	037 01 0 00 053745 	TSTAL0:	FMSGD	<]>
  1941	033116	260 17 0 00 032547*		GO	 FIOFF			; clear 'file input' switch
  1942	033117	476 00 0 00 064326'		SETOM	ALTF			; set altmode typed flag
  1943	033120	332 00 0 00 046316 		SKIPE	TSTMUL			; multiple test flag set?
  1944	033121	260 17 0 00 031343 		GO	ISOPNT			; yes - print final flt isolation data
  1945	033122	260 17 0 00 033100*		GO	SWITT			; get program switches
  1946	033123	607 00 0 00 000010 		TLNN	OPRSEL			; OPRSEL switch set?
  1947	033124	254 00 0 00 032113 		JRST	TSTDIA			; no - exit to DIAMON
  1948	033125	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 46
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0233

  1949
  1950					; End of pass message
  1951
  1952	033126	332 00 0 00 046316 	TSTEOP:	SKIPE	TSTMUL			; multiple tests being run?
  1953	033127	336 00 0 00 064406'		SKIPN	TSTEPP			; print end of pass messages?
  1954	033130	263 17 0 00 000000 		RTN				; no - return
  1955	033131	261 17 0 00 000000 		PUT	0			; save AC0
  1956	033132	260 17 0 00 031424*		GO	PNTDEV
  1957	033133	037 00 0 00 054630 		TMSG	< End Pass >		; yes - print pass count
  1958	033134	200 00 0 00 046314 		MOVE	TSTREP			;  ...
  1959	033135	350 00 0 00 000000 		AOS
  1960	033136	037 15 0 00 000000 		PNTDEC
  1961	033137	037 00 0 00 051537 		TMSG	<. at >
  1962	033140	402 00 0 00 030746*		SETZM	FORPNT			; clear force print
  1963	033141	200 03 0 00 051541 		MOVE	3,[JFCL]		; set up timer routine
  1964	033142	260 17 0 00 032643*		GO	RUNTME			; print current time
  1965	033143	037 00 0 00 030242 		PCRL
  1966	033144	262 17 0 00 000000 		GET	0			; restore AC0
  1967	033145	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 47
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0234

  1968
  1969					;#********************************************************************
  1970					;* Test Dispatch List - in sequential order
  1971					;#********************************************************************
  1972
  1973			000000		ZEB==0B2				; EBUS test
  1974		100000	000000		ZSE==1B2				; SEQ test
  1975		200000	000000		ZAL==2B2				; ALU test
  1976		300000	000000		ZMP==3B2				; MPROC test
  1977		400000	000000		ZCB==4B2				; CBUS test
  1978
  1979					; EBUS Tests
  1980
  1981	033146				TEBUS:
  1982	033146	000000000000#		TDISP1:	TSTE1		; EB1 - CONI Works?
  1983	033147	000000000000#			TSTE2		; EB2 - RH20/IPA Interaction
  1984	033150	000000000000#			TSTE3		; EB3 - RH20/IPA Interaction
  1985	033151	000000000000#			TSTE4		; EB4 - RH20/IPA Interaction
  1986	033152	000000000000#			TSTE5		; EB5 - RH20/IPA Interaction
  1987	033153	000000000000#			TSTE6		; EB6 - CSR Cleared After Reset
  1988	033154	000000000000#			TSTE7		; EB7 - Read/Write CSR Bits
  1989	033155	000000000000#			TSTE10		; EB10 - CSR Bits Interaction
  1990	033156	000000000000#			TSTE11		; EB11 - EBUF Access Test
  1991	033157	000000000000#			TSTE12		; EB12 - EBUF/CSR Conflict Test
  1992	033160	000000000000#			TSTE13		; EB13 - KMUX Parity Generators
  1993	033161	000000000000#			TSTE14		; EB14 - EBUF/CSR Conflict Test
  1994	033162	000000000000#			TSTE15		; EB15 - EBUF Reset Test
  1995	033163	000000000000#			TSTE16		; EB16 - EBUF Data Path Test
  1996	033164	000000000000#			TSTE17		; EB17 - CSR Bit 18 Self Clearing Test
  1997	033165	000000000000#			TSTE20		; EB20 - CSR Bit 18 Reset Test
  1998	033166	000000000000#			TSTE21		; EB21 - CSR Bit 18 Reset Test
  1999	033167	000000000000#			TSTE22		; EB22 - Read/Write EBUF When Ucode Running
  2000	033170	000000000000#			TSTE23		; EB23 - Par Gen - Not Forcing an Error
  2001	033171	000000000000#			TSTE24		; EB24 - Par Gen - Forcing an Error
  2002	033172	000000000000#			TSTE25		; EB25 - Read only CSR Bits
  2003	033173	000000000000#			TSTE26		; EB26 - CSR 01 'DIAG RQST CSR'
  2004	033174	000000000000#			TSTE27		; EB27 - CSR 01 'DIAG RQST CSR'
  2005	033175	000000000000#			TSTE30		; EB30 - CSR 01 'DIAG RQST CSR'
  2006	033176	000000000000#			TSTE31		; EB31 - CSR 01 'DIAG RQST CSR'
  2007	033177	000000000000#			TSTE32		; EB32 - CSR 01 'DIAG RQST CSR'
  2008	033200	000000000000#			TSTE33		; EB33 - CSR 01 'DIAG RQST CSR'
  2009	033201	000000000000#			TSTE34		; EB34 - CSR 02 'DIAG CSR CHNG'
  2010	033202	000000000000#			TSTE35		; EB35 - Constant MUX
  2011	033203	000000000000#			TSTE36		; EB36 - Constant MUX Interference
  2012	033204	000000000000#			TSTE37		; EB37 - CSR Bit 24 - EBUS PE Occurs at Wrong Time
  2013	033205	000000000000#			TSTE40		; EB40 - EBUS Transfer via DATAO's
  2014	033206	000000000000#			TSTE41		; EB41 - EBUS Transfer via DATAI's
  2015	033207	000000000000#			TSTE42		; EB42 - CSR 05 'Rqst Interrupt'
  2016	033210	000000000000#			TSTE43		; EB43 - CSR 05 'Rqst Interrupt'
  2017	033211	000000000000#			TSTE44		; EB44 - CSR 05 'Rqst Interrupt'
  2018	033212	000000000000#			TSTE45		; EB45 - CSR 06 'CRAM Par Err'
  2019	033213	000000000000#			TSTE46		; EB46 - CSR 07 'MBUS Err'
  2020	033214	000000000000#			TSTE47		; EB47 - CSR 11 'Spare' Bit
  2021	033215	000000000000#			TSTE50		; EB50 - CSR 12 'Disable Complete' Bit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 48
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0235

  2022	033216	000000000000#			TSTE51		; EB51 - CSR 13 'Enable Complete' Bit
  2023	033217	000000000000#			TSTE52		; x
  2024	033220	000000000000#			TSTE53		; EB53 - MPROC Run Bit
  2025	033221	000000000000#			TSTE54		; EB54 - Basic KMUX Parity
  2026	033222	000000000000#			TSTE55		; EB55 - Clearing MPROC Run Bit
  2027	033223	000000000000#			TSTE56		; EB56 - Clearing MPROC Run Bit
  2028	033224	000000000000#			TSTE57		; EB57 - Verify 'Diag Single Cyc'
  2029	033225	000000000000#			TSTE60		; EB60 - PI Level n/0 Interrupts
  2030	033226	000000000000#			TSTE61		; EB61 - Check PIA Level 0
  2031	033227	000000000000#			TSTE62		; EB62 - Check Interrupt on Level 1-7
  2032	033230	000000000000#			TSTE63		; EB63 - CSR 05 'Rqst Interrupt' Clearing
  2033	033231	000000000000#			TSTE64		; EB64 - IOP Function 0 - 40+2N Interrupt
  2034	033232	000000000000#			TSTE65		; EB65 - IOP Function 1 - 40+2N Interrupt
  2035	033233	000000000000#			TSTE66		; x
  2036	033234	000000000000#			TSTE67		; x
  2037	033235	000000000000#			TSTE70		; EB70 - IOP Function 4 - Examine
  2038	033236	000000000000#			TSTE71		; EB71 - IOP Function 5 - Deposit
  2039	033237	000000000000#			TSTE72		; EB72 - IOP Function 7 - Examine/Increment
  2040	033240	000000000000#			TSTE73		; EB73 - CSR 25-26,28 KL side
  2041	033241	000000000000#			TSTE74		; EB74 - CSR 25-26,28 Port side
  2042	033242	000000000000#			TSTE75		; EB75 - CSR 27,30-31 KL side
  2043	033243	000000000000#			TSTE76		; EB76 - CSR 27,30-31 Port side
  2044
  2045					; SEQ Tests
  2046
  2047	033244	000000000000#		TSEQ:	TSTS1		; SE1 - JMAP Instruction
  2048	033245	000000000000#			TSTS2		; SE2 - JZ Instruction
  2049	033246	000000000000#			TSTS3		; SE3 - JZ Instruction - Effect on Reg/Ctr
  2050	033247	000000000000#			TSTS4		; SE4 - JZ Instruction - Effect on Reg/Ctr
  2051	033250	000000000000#			TSTS5		; SE5 - CONT Instruction
  2052	033251	000000000000#			TSTS6		; SE6 - CJP Instruction
  2053	033252	000000000000#			TSTS7		; SE7 - CJV Instruction
  2054	033253	000000000000#			TSTS10		; SE10 - CJS Instruction
  2055	033254	000000000000#			TSTS11		; SE11 - CJS Instruction
  2056	033255	000000000000#			TSTS12		; SE12 - CJS Instruction
  2057	033256	000000000000#			TSTS13		; SE13 - CRTN Instruction
  2058	033257	000000000000#			TSTS14		; SE14 - CRTN Instruction
  2059	033260	000000000000#			TSTS15		; SE15 - Stack location #1
  2060	033261	000000000000#			TSTS16		; SE16 - Stack location #2
  2061	033262	000000000000#			TSTS17		; SE17 - Stack location #3
  2062	033263	000000000000#			TSTS20		; SE20 - Stack location #4
  2063	033264	000000000000#			TSTS21		; SE21 - Stack location #5
  2064	033265	000000000000#			TSTS22		; SE22 - Increment/Decrement Stack Pointer
  2065	033266	000000000000#			TSTS23		; SE23 - Increment/Decrement Stack Pointer
  2066	033267	000000000000#			TSTS24		; SE24 - Increment/Decrement Stack Pointer
  2067	033270	000000000000#			TSTS25		; SE25 - Increment/Decrement Stack Pointer
  2068	033271	000000000000#			TSTS26		; SE26 - Increment/Decrement Stack Pointer
  2069	033272	000000000000#			TSTS27		; SE27 - Overflowing the Stack
  2070	033273	000000000000#			TSTS30		; SE30 - CJPP Instruction
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 49
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0236

  2071	033274	000000000000#			TSTS31		; SE31 - CJPP Instruction
  2072	033275	000000000000#			TSTS32		; SE32 - CJPP Instruction
  2073	033276	000000000000#			TSTS33		; SE33 - LDCT Instruction
  2074	033277	000000000000#			TSTS34		; SE34 - LDCT Instruction
  2075	033300	000000000000#			TSTS35		; SE35 - Register/Counter
  2076	033301	000000000000#			TSTS36		; SE36 - JRP Instruction
  2077	033302	000000000000#			TSTS37		; SE37 - JSRP Instruction
  2078	033303	000000000000#			TSTS40		; SE40 - JSRP Instruction
  2079	033304	000000000000#			TSTS41		; SE41 - JSRP Instruction
  2080	033305	000000000000#			TSTS42		; SE42 - PUSH Instruction
  2081	033306	000000000000#			TSTS43		; SE43 - PUSH Instruction
  2082	033307	000000000000#			TSTS44		; SE44 - PUSH Instruction
  2083	033310	000000000000#			TSTS45		; SE45 - LOOP Instruction
  2084	033311	000000000000#			TSTS46		; SE46 - LOOP Instruction
  2085	033312	000000000000#			TSTS47		; SE47 - LOOP Instruction
  2086	033313	000000000000#			TSTS50		; SE50 - RFCT Instruction
  2087	033314	000000000000#			TSTS51		; SE51 - RFCT Instruction
  2088	033315	000000000000#			TSTS52		; SE52 - RFCT Instruction
  2089	033316	000000000000#			TSTS53		; SE53 - RFCT Instruction
  2090	033317	000000000000#			TSTS54		; SE54 - RPCT Instruction
  2091	033320	000000000000#			TSTS55		; SE55 - RPCT Instruction
  2092	033321	000000000000#			TSTS56		; SE56 - TWB Instruction
  2093	033322	000000000000#			TSTS57		; SE57 - TWB Instruction
  2094	033323	000000000000#			TSTS60		; SE60 - TWB Instruction
  2095	033324	000000000000#			TSTS61		; SE61 - TWB Instruction
  2096	033325	000000000000#			TSTS62		; SE62 - TWB Instruction
  2097	033326	000000000000#			TSTS63		; SE63 - TWB Instruction
  2098	033327	000000000000#			TSTS64		; SE64 - Stack Interference Tests
  2099	033330	000000000000#			TSTS65		; SE65 - Stack Interference Tests
  2100	033331	000000000000#			TSTS66		; SE66 - Reg/Ctr Interference Tests
  2101	033332	000000000000#			TSTS67		; SE67 - Reg/Ctr Interference Tests
  2102	033333	000000000000#			TSTS70		; SE70 - Full Speed Sequencer Test
  2103
  2104					; ALU Tests
  2105
  2106	033334	000000000000#		TALU:	TSTA1		; AL1 - 2901 0's Test
  2107	033335	000000000000#			TSTA2		; AL2 - 2901 1's Test
  2108	033336	000000000000#			TSTA3		; AL3 - 2901 OR Test - D OR 0
  2109	033337	000000000000#			TSTA4		; AL4 - 2901 AND Test - D AND 0
  2110	033340	000000000000#			TSTA5		; AL5 - 2901 NOT_R_AND_S Test - D NOT_RS 0
  2111	033341	000000000000#			TSTA6		; AL6 - 2901 XOR Test - D XOR 0
  2112	033342	000000000000#			TSTA7		; AL7 - 2901 XNOR Test - D XNOR 0
  2113	033343	000000000000#			TSTA10		; AL10 - 2901 R+S Test - D + 0
  2114	033344	000000000000#			TSTA11		; AL11 - 2901 R-S Test - D - 0
  2115	033345	000000000000#			TSTA12		; AL12 - 2901 S-R Test - 0 - D
  2116	033346	000000000000#			TSTA13		; AL13 - 2901 Writing/Reading Registers
  2117	033347	000000000000#			TSTA14		; AL14 - 2901 Q-Register Test
  2118	033350	000000000000#			TSTA15		; AL15 - 2901 Register Interference Test
  2119	033351	000000000000#			TSTA16		; AL16 - 2901 OR Test
  2120	033352	000000000000#			TSTA17		; AL17 - 2901 AND Test
  2121	033353	000000000000#			TSTA20		; AL20 - 2901 NOT_R_AND_S Test
  2122	033354	000000000000#			TSTA21		; AL21 - 2901 XOR Test
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 50
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0237

  2123	033355	000000000000#			TSTA22		; AL22 - 2901 XNOR Test
  2124	033356	000000000000#			TSTA23		; AL23 - 2901 R + S Test - No Carry
  2125	033357	000000000000#			TSTA24		; AL24 - 2901 R + S Test - With Carry
  2126	033360	000000000000#			TSTA25		; AL25 - 2901 R - S Test - No Carry
  2127	033361	000000000000#			TSTA26		; AL26 - 2901 R - S Test - With Carry
  2128	033362	000000000000#			TSTA27		; AL27 - 2901 S - R Test - No Carry
  2129	033363	000000000000#			TSTA30		; AL30 - 2901 S - R Test - With Carry
  2130	033364	000000000000#			TSTA31		; AL31 - 2901 Q-Register Interference Test
  2131	033365	000000000000#			TSTA32		; AL32 - 2901 RAM Register Interference Test
  2132	033366	000000000000#			TSTA33		; AL33 - Q-Register Shift
  2133	033367	000000000000#			TSTA34		; AL34 - Q-Register Right/Left Shift
  2134	033370	000000000000#			TSTA35		; AL35 - RAM Register Shift
  2135	033371	000000000000#			TSTA36		; AL36 - RAM Data Movement Test
  2136	033372	000000000000#			TSTA37		; AL37 - RAM/Q-Register Data Movement Test
  2137	033373	000000000000#			TSTA40		; AL40 - RAM Data Movement/Shifting Test
  2138	033374	000000000000#			TSTA41		; AL41 - RAM/Q-Reg Data Movement/Shifting Test
  2139	033375	000000000000#			TSTA42		; AL42 - 2901 Register / Constant Mux Test
  2140
  2141					; MPROC Tests
  2142
  2143	033376	000000000000#		TMPROC:	TSTU1		; MP1 - CRAM Data Test RAR12=0
  2144	033377	000000000000#			TSTU2		; MP2 - CRAM Data Test RAR12=1
  2145	033400	000000000000#			TSTU3		; MP3 - CRAM Addressing Test
  2146	033401	000000000000#			TSTU4		; MP4 - RAR/LAR Data Path Test - LDCRAM
  2147	033402	000000000000#			TSTU5		; MP5 - RAR/LAR Data Path Test - RDCRAM
  2148	033403	000000000000#			TSTU6		; MP6 - Cram Ctrl Register Test
  2149	033404	000000000000#			TSTU7		; MP7 - Cram Ctrl Register Test
  2150	033405	000000000000#			TSTU10		; MP10 - MBUS Error Test (MPROC module only)
  2151	033406	000000000000#			TSTU11		; MP11 - MBUS Error Test
  2152	033407	000000000000#			TSTU12		; MP12 - MBUS Error Test (MPROC module only)
  2153	033410	000000000000#			TSTU13		; MP13 - MBUS Error Test
  2154	033411	000000000000#			TSTU14		; MP14 - CCCbusAvail Test
  2155	033412	000000000000#			TSTU15		; MP15 - CCGrntCSR Test
  2156	033413	000000000000#			TSTU16		; MP16 - CCFEQ0 Test
  2157	033414	000000000000#			TSTU17		; MP17 - CCCSRChng Test
  2158	033415	000000000000#			TSTU20		; MP20 - CCEbParErr Test
  2159	033416	000000000000#			TSTU21		; MP21 - CCRcvrBufAFul Test
  2160	033417	000000000000#			TSTU22		; MP22 - CCRcvrBufBFul Test
  2161	033420	000000000000#			TSTU23		; MP23 - CCXmtrAttn Test
  2162	033421	000000000000#			TSTU24		; MP24 - CCEbusRqst Test
  2163	033422	000000000000#			TSTU25		; MP25 - CCIntrActive Test
  2164	033423	000000000000#			TSTU26		; MP26 - CCMBSign Test
  2165	033424	000000000000#			TSTU27		; MP27 - CCMVParChk Test
  2166	033425	000000000000#			TSTU30		; MP30 - CCCbusParErr Test
  2167	033426	000000000000#			TSTU31		; MP31 - CCPliParErr Test
  2168	033427	000000000000#			TSTU32		; MP32 - CCChanErr Test
  2169	033430	000000000000#			TSTU33		; MP33 - CCCbLstWd Test
  2170	033431	000000000000#			TSTU34		; MP34 - Basic Local Store Test
  2171	033432	000000000000#			TSTU35		; MP35 - Local Store Data Test
  2172	033433	000000000000#			TSTU36		; MP36 - Local Store Address Test
  2173	033434	000000000000#			TSTU37		; MP37 - Local Store RAM Mode Test
  2174	033435	000000000000#			TSTU40		; MP40 - Jump MUX Test
  2175	033436	000000000000#			TSTU41		; M41 - CRAM Ctl Reg Parity Generators Test
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 51
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0238

  2176
  2177					; CBUS Tests
  2178
  2179	033437	000000000000#		TCBUS:	TSTC1		; CB1 - Fmtr Data Loopback
  2180	033440	000000000000#			TSTC2		; CB2 - PLI Buffer Data Loopback
  2181	033441	000000000000#			TSTC3		; CB3 - CBUS to EBUF Data Transfer
  2182	033442	000000000000#			TSTC4		; CB4 - 2901 to CBUS Data Transfer
  2183	033443	000000000000#			TSTC5		; CB5 - CBUS to 2901 Multiple Word Transfer
  2184	033444	000000000000#			TSTC6		; CB6 - 2901 to CBUS Multiple Word Transfer
  2185	033445	000000000000#			TSTC7		; CB7 - CBUS to EBUS Data Transfer
  2186	033446	000000000000#			TSTC10		; CB10 - EBUS to CBUS Data Transfer
  2187	033447	000000000000#			TSTC11		; CB11 - Fmtr Cleared by 'Port Clear'
  2188	033450	000000000000#			TSTC12		; CB12 - Fmtr Basic Up Shifting Test
  2189	033451	000000000000#			TSTC13		; CB13 - Fmtr Up Shift 4 Test - BUS Ctl=Cbus
  2190	033452	000000000000#			TSTC14		; CB14 - Fmtr Up Shift 4 Test - BUS Ctl=Fmtr
  2191	033453	000000000000#			TSTC15		; CB15 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0
  2192	033454	000000000000#			TSTC16		; CB16 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0
  2193	033455	000000000000#			TSTC17		; CB17 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
  2194	033456	000000000000#			TSTC20		; CB20 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
  2195	033457	000000000000#			TSTC21		; CB21 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0
  2196	033460	000000000000#			TSTC22		; CB22 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0
  2197	033461	000000000000#			TSTC23		; CB23 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=1
  2198	033462	000000000000#			TSTC24		; CB24 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
  2199	033463	000000000000#			TSTC25		; CB25 - Fmtr Basic Down Shifting Test
  2200	033464	000000000000#			TSTC26		; CB26 - Fmtr Down Shift 4 Test
  2201	033465	000000000000#			TSTC27		; CB27 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=0
  2202	033466	000000000000#			TSTC30		; CB30 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=0
  2203	033467	000000000000#			TSTC31		; CB31 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=1
  2204	033470	000000000000#			TSTC32		; CB32 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=1
  2205	033471	000000000000#			TSTC33		; CB33 - Fmtr Down Shift 8 (from PLIN) Test SELRHTNIB=0
  2206	033472	000000000000#			TSTC34		; CB34 - Fmtr Down Shift 8 (from PLIN) Test SELRHTNIB=0
  2207	033473	000000000000#			TSTC35		; CB35 - Fmtr Down Shift 8 (from PLIN) Test SELRHTNIB=1
  2208	033474	000000000000#			TSTC36		; CB36 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=1
  2209	033475	000000000000#			TSTC37		; CB37 - Fmtr Ring Buffer Test
  2210	033476	000000000000#			TSTC40		; CB40 - CMUX Selected by PLINTOCMUX
  2211	033477	000000000000#			TSTC41		; CB41 - CBUF Loaded Correctly
  2212	033500	000000000000#			TSTC42		; CB42 - PMUX Selected by MPCBUFTOPLOUT
  2213	033501	000000000000#			TSTC43		; CB43 - PMUX Selected by MPCBUFTOPLOUT/MPZEROLFTNIB
  2214	033502	000000000000#			TSTC44		; CB44 - DMUX Selected Correctly
  2215	033503	000000000000#			TSTC45		; CB45 - CBUS Parity Checking - CBUS to CBUS Module
  2216	033504	000000000000#			TSTC46		; CB46 - CBUS Parity Checking - CBUS Module to CBUS
  2217	033505	000000000000#			TSTC47		; CB47 - CBUS Parity Checking - CBUS to CBUS Module
  2218	033506	000000000000#			TSTC50		; CB50 - T Field Timing Test
  2219	033507	000000000000#			TSTC51		; CB51 - CBUS Store
  2220	033510	000000000000#			TSTC52		; CB52 - CBUS Input Buffer
  2221	033511	000000000000#			TSTC53		; CB53 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=0
  2222	033512	000000000000#			TSTC54		; CB54 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=1
  2223	033513	000000000000#			TSTC55		; CB55 - Parity Predictor - Fmtr to PLOUT
  2224	033514	000000000000#			TSTC56		; CB56 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=0
  2225	033515	000000000000#			TSTC57		; CB57 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=1
  2226	033516	000000000000#			TSTC60		; CB60 - Parity Predictor - Fmtr to CBOUT
  2227	033517	777777	777777		TEND:	-1		; end of tests
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 52
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0239

  2228
  2229					;#********************************************************************
  2230					;* Test Dispatch List - in order for fault isolation
  2231					;#********************************************************************
  2232
  2233					; Basic EBUS Interface Logic
  2234
  2235	033520	000000000000#		TDISP2:	TSTE54		; EB54 - Basic KMUX Parity
  2236	033521	000000000000#			TSTE1		; EB1 - CONI Works?
  2237	033522	000000000000#			TSTE2		; EB2 - RH20/IPA Interaction
  2238	033523	000000000000#			TSTE3		; EB3 - RH20/IPA Interaction
  2239	033524	000000000000#			TSTE4		; EB4 - RH20/IPA Interaction
  2240	033525	000000000000#			TSTE5		; EB5 - RH20/IPA Interaction
  2241
  2242					; CSR Register Logic
  2243
  2244	033526	000000000000#			TSTE6		; EB6 - CSR Cleared After Reset
  2245	033527	000000000000#			TSTE7		; EB7 - Read/Write CSR Bits
  2246	033530	000000000000#			TSTE10		; EB10 - CSR Bits Interaction
  2247
  2248					; EBUF Logic
  2249
  2250	033531	000000000000#			TSTE11		; EB11 - EBUF Access Test
  2251	033532	000000000000#			TSTE12		; EB12 - EBUF/CSR Conflict Test
  2252	033533	000000000000#			TSTE14		; EB14 - EBUF/CSR Conflict Test
  2253	033534	000000000000#			TSTE15		; EB15 - EBUF Reset Test
  2254	033535	000000000000#			TSTE16		; EB16 - EBUF Data Path Test
  2255
  2256					; Reset Logic
  2257
  2258	033536	000000000000#			TSTE17		; EB17 - CSR Bit 18 Self Clearing Test
  2259	033537	000000000000#			TSTE20		; EB20 - CSR Bit 18 Reset Test
  2260	033540	000000000000#			TSTE21		; EB21 - CSR Bit 18 Reset Test
  2261
  2262					; EBUS Parity Logic
  2263
  2264	033541	000000000000#			TSTE23		; EB23 - Par Gen - Not Forcing an Error
  2265	033542	000000000000#			TSTE24		; EB24 - Par Gen - Forcing an Error
  2266
  2267					; Basic CRAM logic
  2268
  2269	033543	000000000000#			TSTU1		; MP1 - CRAM Data Test RAR12=0
  2270	033544	000000000000#			TSTU2		; MP2 - CRAM Data Test RAR12=1
  2271	033545	000000000000#			TSTU3		; MP3 - CRAM Addressing Test
  2272	033546	000000000000#			TSTU4		; MP4 - RAR/LAR Data Path Test - LDCRAM
  2273	033547	000000000000#			TSTU5		; MP5 - RAR/LAR Data Path Test - RDCRAM
  2274
  2275					; Run/Single Step Logic
  2276
  2277	033550	000000000000#			TSTE53		; EB53 - MPROC Run Bit
  2278	033551	000000000000#			TSTE57		; EB57 - Verify 'Diag Single Cyc'
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 53
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0240

  2279
  2280					; Addl CRAM tests
  2281
  2282	033552	000000000000#			TSTU6		; MP6 - Cram Ctrl Register Test
  2283	033553	000000000000#			TSTU7		; MP7 - Cram Ctrl Register Test
  2284	033554	000000000000#			TSTU41		; M41 - CRAM Ctl Reg Parity Generators Test
  2285
  2286					; Sequencer Tests
  2287
  2288	033555	000000000000#			TSTS1		; SE1 - JMAP Instruction
  2289	033556	000000000000#			TSTS2		; SE2 - JZ Instruction
  2290	033557	000000000000#			TSTS3		; SE3 - JZ Instruction - Effect on Reg/Ctr
  2291	033560	000000000000#			TSTS4		; SE4 - JZ Instruction - Effect on Reg/Ctr
  2292	033561	000000000000#			TSTS5		; SE5 - CONT Instruction
  2293	033562	000000000000#			TSTS6		; SE6 - CJP Instruction
  2294	033563	000000000000#			TSTS7		; SE7 - CJV Instruction
  2295	033564	000000000000#			TSTS10		; SE10 - CJS Instruction
  2296	033565	000000000000#			TSTS11		; SE11 - CJS Instruction
  2297	033566	000000000000#			TSTS12		; SE12 - CJS Instruction
  2298	033567	000000000000#			TSTS13		; SE13 - CRTN Instruction
  2299	033570	000000000000#			TSTS14		; SE14 - CRTN Instruction
  2300	033571	000000000000#			TSTS15		; SE15 - Stack location #1
  2301	033572	000000000000#			TSTS16		; SE16 - Stack location #2
  2302	033573	000000000000#			TSTS17		; SE17 - Stack location #3
  2303	033574	000000000000#			TSTS20		; SE20 - Stack location #4
  2304	033575	000000000000#			TSTS21		; SE21 - Stack location #5
  2305	033576	000000000000#			TSTS22		; SE22 - Increment/Decrement Stack Pointer
  2306	033577	000000000000#			TSTS23		; SE23 - Increment/Decrement Stack Pointer
  2307	033600	000000000000#			TSTS24		; SE24 - Increment/Decrement Stack Pointer
  2308	033601	000000000000#			TSTS25		; SE25 - Increment/Decrement Stack Pointer
  2309	033602	000000000000#			TSTS26		; SE26 - Increment/Decrement Stack Pointer
  2310	033603	000000000000#			TSTS27		; SE27 - Overflowing the Stack
  2311	033604	000000000000#			TSTS30		; SE30 - CJPP Instruction
  2312	033605	000000000000#			TSTS31		; SE31 - CJPP Instruction
  2313	033606	000000000000#			TSTS32		; SE32 - CJPP Instruction
  2314	033607	000000000000#			TSTS33		; SE33 - LDCT Instruction
  2315	033610	000000000000#			TSTS34		; SE34 - LDCT Instruction
  2316	033611	000000000000#			TSTS35		; SE35 - Register/Counter
  2317	033612	000000000000#			TSTS36		; SE36 - JRP Instruction
  2318	033613	000000000000#			TSTS37		; SE37 - JSRP Instruction
  2319	033614	000000000000#			TSTS40		; SE40 - JSRP Instruction
  2320	033615	000000000000#			TSTS41		; SE41 - JSRP Instruction
  2321	033616	000000000000#			TSTS42		; SE42 - PUSH Instruction
  2322	033617	000000000000#			TSTS43		; SE43 - PUSH Instruction
  2323	033620	000000000000#			TSTS44		; SE44 - PUSH Instruction
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 54
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0241

  2324	033621	000000000000#			TSTS45		; SE45 - LOOP Instruction
  2325	033622	000000000000#			TSTS46		; SE46 - LOOP Instruction
  2326	033623	000000000000#			TSTS47		; SE47 - LOOP Instruction
  2327	033624	000000000000#			TSTS50		; SE50 - RFCT Instruction
  2328	033625	000000000000#			TSTS51		; SE51 - RFCT Instruction
  2329	033626	000000000000#			TSTS52		; SE52 - RFCT Instruction
  2330	033627	000000000000#			TSTS53		; SE53 - RFCT Instruction
  2331	033630	000000000000#			TSTS54		; SE54 - RPCT Instruction
  2332	033631	000000000000#			TSTS55		; SE55 - RPCT Instruction
  2333	033632	000000000000#			TSTS56		; SE56 - TWB Instruction
  2334	033633	000000000000#			TSTS57		; SE57 - TWB Instruction
  2335	033634	000000000000#			TSTS60		; SE60 - TWB Instruction
  2336	033635	000000000000#			TSTS61		; SE61 - TWB Instruction
  2337	033636	000000000000#			TSTS62		; SE62 - TWB Instruction
  2338	033637	000000000000#			TSTS63		; SE63 - TWB Instruction
  2339	033640	000000000000#			TSTS64		; SE64 - Stack Interference Tests
  2340	033641	000000000000#			TSTS65		; SE65 - Stack Interference Tests
  2341	033642	000000000000#			TSTS66		; SE66 - Reg/Ctr Interference Tests
  2342	033643	000000000000#			TSTS67		; SE67 - Reg/Ctr Interference Tests
  2343	033644	000000000000#			TSTS70		; SE70 - Full Speed Sequencer Test
  2344
  2345					; Miscellaneous
  2346
  2347	033645	000000000000#			TSTE13		; EB13 - KMUX Parity Generators
  2348	033646	000000000000#			TSTE35		; EB35 - Constant MUX
  2349	033647	000000000000#			TSTE36		; EB36 - Constant MUX Interference
  2350	033650	000000000000#			TSTE37		; EB37 - CSR Bit 24 - EBUS PE Occurs at Wrong Time
  2351
  2352					; 2901 Tests
  2353
  2354	033651	000000000000#			TSTA1		; AL1 - 2901 0's Test
  2355	033652	000000000000#			TSTA2		; AL2 - 2901 1's Test
  2356	033653	000000000000#			TSTA3		; AL3 - 2901 OR Test - D OR 0
  2357	033654	000000000000#			TSTA4		; AL4 - 2901 AND Test - D AND 0
  2358	033655	000000000000#			TSTA5		; AL5 - 2901 NOT_R_AND_S Test - D NOT_RS 0
  2359	033656	000000000000#			TSTA6		; AL6 - 2901 XOR Test - D XOR 0
  2360	033657	000000000000#			TSTA7		; AL7 - 2901 XNOR Test - D XNOR 0
  2361	033660	000000000000#			TSTA10		; AL10 - 2901 R+S Test - D + 0
  2362	033661	000000000000#			TSTA11		; AL11 - 2901 R-S Test - D - 0
  2363	033662	000000000000#			TSTA12		; AL12 - 2901 S-R Test - 0 - D
  2364	033663	000000000000#			TSTA13		; AL13 - 2901 Writing/Reading Registers
  2365	033664	000000000000#			TSTA14		; AL14 - 2901 Q-Register Test
  2366	033665	000000000000#			TSTA15		; AL15 - 2901 Register Interference Test
  2367	033666	000000000000#			TSTA16		; AL16 - 2901 OR Test
  2368	033667	000000000000#			TSTA17		; AL17 - 2901 AND Test
  2369	033670	000000000000#			TSTA20		; AL20 - 2901 NOT_R_AND_S Test
  2370	033671	000000000000#			TSTA21		; AL21 - 2901 XOR Test
  2371	033672	000000000000#			TSTA22		; AL22 - 2901 XNOR Test
  2372	033673	000000000000#			TSTA23		; AL23 - 2901 R + S Test - No Carry
  2373	033674	000000000000#			TSTA24		; AL24 - 2901 R + S Test - With Carry
  2374	033675	000000000000#			TSTA25		; AL25 - 2901 R - S Test - No Carry
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 55
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0242

  2375	033676	000000000000#			TSTA26		; AL26 - 2901 R - S Test - With Carry
  2376	033677	000000000000#			TSTA27		; AL27 - 2901 S - R Test - No Carry
  2377	033700	000000000000#			TSTA30		; AL30 - 2901 S - R Test - With Carry
  2378	033701	000000000000#			TSTA31		; AL31 - 2901 Q-Register Interference Test
  2379	033702	000000000000#			TSTA32		; AL32 - 2901 RAM Register Interference Test
  2380	033703	000000000000#			TSTA33		; AL33 - Q-Register Shift
  2381	033704	000000000000#			TSTA34		; AL34 - Q-Register Right/Left Shift
  2382	033705	000000000000#			TSTA35		; AL35 - RAM Register Shift
  2383	033706	000000000000#			TSTA36		; AL36 - RAM Data Movement Test
  2384	033707	000000000000#			TSTA37		; AL37 - RAM/Q-Register Data Movement Test
  2385	033710	000000000000#			TSTA40		; AL40 - RAM Data Movement/Shifting Test
  2386	033711	000000000000#			TSTA41		; AL41 - RAM/Q-Reg Data Movement/Shifting Test
  2387	033712	000000000000#			TSTA42		; AL42 - 2901 Register / Constant Mux Test
  2388
  2389					; Miscellaneous Tests
  2390
  2391	033713	000000000000#			TSTE40		; EB40 - EBUS Transfer via DATAO's
  2392	033714	000000000000#			TSTE41		; EB41 - EBUS Transfer via DATAI's
  2393
  2394					; CSR Register Logic
  2395
  2396	033715	000000000000#			TSTE22		; EB22 - Read/Write EBUF When Ucode Running
  2397	033716	000000000000#			TSTE25		; EB25 - Read only CSR Bits
  2398	033717	000000000000#			TSTE26		; EB26 - CSR 01 'DIAG RQST CSR'
  2399	033720	000000000000#			TSTE27		; EB27 - CSR 01 'DIAG RQST CSR'
  2400	033721	000000000000#			TSTE30		; EB30 - CSR 01 'DIAG RQST CSR'
  2401	033722	000000000000#			TSTE31		; EB31 - CSR 01 'DIAG RQST CSR'
  2402	033723	000000000000#			TSTE32		; EB32 - CSR 01 'DIAG RQST CSR'
  2403	033724	000000000000#			TSTE33		; EB33 - CSR 01 'DIAG RQST CSR'
  2404	033725	000000000000#			TSTE34		; EB34 - CSR 02 'DIAG CSR CHNG'
  2405	033726	000000000000#			TSTE42		; EB42 - CSR 05 'Rqst Interrupt'
  2406	033727	000000000000#			TSTE43		; EB43 - CSR 05 'Rqst Interrupt'
  2407	033730	000000000000#			TSTE44		; EB44 - CSR 05 'Rqst Interrupt'
  2408	033731	000000000000#			TSTE45		; EB45 - CSR 06 'CRAM Par Err'
  2409	033732	000000000000#			TSTE46		; EB46 - CSR 07 'MBUS Err'
  2410	033733	000000000000#			TSTE47		; EB47 - CSR 11 'Spare' Bit
  2411	033734	000000000000#			TSTE50		; EB50 - CSR 12 'Disable Complete' Bit
  2412	033735	000000000000#			TSTE51		; EB51 - CSR 13 'Enable Complete' Bit
  2413	033736	000000000000#			TSTE73		; EB73 - CSR 25-26,28 KL side
  2414	033737	000000000000#			TSTE74		; EB74 - CSR 25-26,28 Port side
  2415	033740	000000000000#			TSTE75		; EB75 - CSR 27,30-31 KL side
  2416	033741	000000000000#			TSTE76		; EB76 - CSR 27,30-31 Port side
  2417	033742	000000000000#			TSTE55		; EB55 - Clearing MPROC Run Bit
  2418	033743	000000000000#			TSTE56		; EB56 - Clearing MPROC Run Bit
  2419
  2420					; MBUS Error Logic
  2421
  2422	033744	000000000000#			TSTU10		; MP10 - MBUS Error Test (MPROC module only)
  2423	033745	000000000000#			TSTU11		; MP11 - MBUS Error Test
  2424	033746	000000000000#			TSTU12		; MP12 - MBUS Error Test (MPROC module only)
  2425	033747	000000000000#			TSTU13		; MP13 - MBUS Error Test
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 56
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0243

  2426
  2427					; Local Storage Tests
  2428
  2429	033750	000000000000#			TSTU34		; MP34 - Basic Local Store Test
  2430	033751	000000000000#			TSTU35		; MP35 - Local Store Data Test
  2431	033752	000000000000#			TSTU36		; MP36 - Local Store Address Test
  2432	033753	000000000000#			TSTU37		; MP37 - Local Store RAM Mode Test
  2433
  2434					; Miscellaneous
  2435
  2436	033754	000000000000#			TSTU40		; MP40 - Jump MUX Test
  2437
  2438					; Interrupt Logic
  2439
  2440	033755	000000000000#			TSTE60		; EB60 - PI Level n/0 Interrupts
  2441	033756	000000000000#			TSTE61		; EB61 - Check PIA Level 0
  2442	033757	000000000000#			TSTE62		; EB62 - Check Interrupt on Level 1-7
  2443	033760	000000000000#			TSTE63		; EB63 - CSR 05 'Rqst Interrupt' Clearing
  2444	033761	000000000000#			TSTE64		; EB64 - IOP Function 0 - 40+2N Interrupt
  2445	033762	000000000000#			TSTE65		; EB65 - IOP Function 1 - 40+2N Interrupt
  2446	033763	000000000000#			TSTE70		; EB70 - IOP Function 4 - Examine
  2447	033764	000000000000#			TSTE71		; EB71 - IOP Function 5 - Deposit
  2448	033765	000000000000#			TSTE72		; EB72 - IOP Function 7 - Examine/Increment
  2449
  2450					; Basic CBUS Tests
  2451
  2452	033766	000000000000#			TSTC1		; CB1 - Fmtr Data Loopback
  2453	033767	000000000000#			TSTC2		; CB2 - PLI Buffer Data Loopback
  2454	033770	000000000000#			TSTC11		; CB11 - Fmtr Cleared by 'Port Clear'
  2455
  2456					; Condition Code Tests
  2457
  2458	033771	000000000000#			TSTU14		; MP14 - CCCbusAvail Test
  2459	033772	000000000000#			TSTU15		; MP15 - CCGrntCSR Test
  2460	033773	000000000000#			TSTU16		; MP16 - CCFEQ0 Test
  2461	033774	000000000000#			TSTU17		; MP17 - CCCSRChng Test
  2462	033775	000000000000#			TSTU20		; MP20 - CCEbParErr Test
  2463	033776	000000000000#			TSTU21		; MP21 - CCRcvrBufAFul Test
  2464	033777	000000000000#			TSTU22		; MP22 - CCRcvrBufBFul Test
  2465	034000	000000000000#			TSTU23		; MP23 - CCXmtrAttn Test
  2466	034001	000000000000#			TSTU24		; MP24 - CCEbusRqst Test
  2467	034002	000000000000#			TSTU25		; MP25 - CCIntrActive Test
  2468	034003	000000000000#			TSTU26		; MP26 - CCMBSign Test
  2469	034004	000000000000#			TSTU27		; MP27 - CCMVParChk Test
  2470	034005	000000000000#			TSTU30		; MP30 - CCCbusParErr Test
  2471	034006	000000000000#			TSTU31		; MP31 - CCPliParErr Test
  2472	034007	000000000000#			TSTU32		; MP32 - CCChanErr Test
  2473	034010	000000000000#			TSTU33		; MP33 - CCCbLstWd Test
  2474
  2475					; CBUS Data Transfer
  2476
  2477	034011	000000000000#			TSTC3		; CB3 - CBUS to EBUF Data Transfer
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 57
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0244

  2478	034012	000000000000#			TSTC4		; CB4 - 2901 to CBUS Data Transfer
  2479	034013	000000000000#			TSTC5		; CB5 - CBUS to 2901 Multiple Word Transfer
  2480	034014	000000000000#			TSTC6		; CB6 - 2901 to CBUS Multiple Word Transfer
  2481	034015	000000000000#			TSTC7		; CB7 - CBUS to EBUS Data Transfer
  2482	034016	000000000000#			TSTC10		; CB10 - EBUS to CBUS Data Transfer
  2483
  2484					; Formatter Tests
  2485
  2486	034017	000000000000#			TSTC12		; CB12 - Fmtr Basic Up Shifting Test
  2487	034020	000000000000#			TSTC13		; CB13 - Fmtr Up Shift 4 Test - BUS Ctl=Cbus
  2488	034021	000000000000#			TSTC14		; CB14 - Fmtr Up Shift 4 Test - BUS Ctl=Fmtr
  2489	034022	000000000000#			TSTC15		; CB15 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0
  2490	034023	000000000000#			TSTC16		; CB16 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=0
  2491	034024	000000000000#			TSTC17		; CB17 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
  2492	034025	000000000000#			TSTC20		; CB20 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
  2493	034026	000000000000#			TSTC21		; CB21 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0
  2494	034027	000000000000#			TSTC22		; CB22 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=0
  2495	034030	000000000000#			TSTC23		; CB23 - Fmtr Up Shift 8 (from PLIN) Test - SELRHTNIB=1
  2496	034031	000000000000#			TSTC24		; CB24 - Fmtr Up Shift 4 (from PLIN) Test - SELRHTNIB=1
  2497	034032	000000000000#			TSTC25		; CB25 - Fmtr Basic Down Shifting Test
  2498	034033	000000000000#			TSTC26		; CB26 - Fmtr Down Shift 4 Test
  2499	034034	000000000000#			TSTC27		; CB27 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=0
  2500	034035	000000000000#			TSTC30		; CB30 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=0
  2501	034036	000000000000#			TSTC31		; CB31 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=1
  2502	034037	000000000000#			TSTC32		; CB32 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=1
  2503	034040	000000000000#			TSTC33		; CB33 - Fmtr Down Shift 8 (from PLIN) Test SELRHTNIB=0
  2504	034041	000000000000#			TSTC34		; CB34 - Fmtr Down Shift 8 (from PLIN) Test SELRHTNIB=0
  2505	034042	000000000000#			TSTC35		; CB35 - Fmtr Down Shift 8 (from PLIN) Test SELRHTNIB=1
  2506	034043	000000000000#			TSTC36		; CB36 - Fmtr Down Shift 4 (from PLIN) Test SELRHTNIB=1
  2507	034044	000000000000#			TSTC37		; CB37 - Fmtr Ring Buffer Test
  2508
  2509					; Miscellaneous CBUS module tests
  2510
  2511	034045	000000000000#			TSTC40		; CB40 - CMUX Selected by PLINTOCMUX
  2512	034046	000000000000#			TSTC41		; CB41 - CBUF Loaded Correctly
  2513	034047	000000000000#			TSTC42		; CB42 - PMUX Selected by MPCBUFTOPLOUT
  2514	034050	000000000000#			TSTC43		; CB43 - PMUX Selected by MPCBUFTOPLOUT/MPZEROLFTNIB
  2515	034051	000000000000#			TSTC44		; CB44 - DMUX Selected Correctly
  2516	034052	000000000000#			TSTC45		; CB45 - CBUS Parity Checking - CBUS to CBUS Module
  2517	034053	000000000000#			TSTC46		; CB46 - CBUS Parity Checking - CBUS Module to CBUS
  2518	034054	000000000000#			TSTC47		; CB47 - CBUS Parity Checking - CBUS to CBUS Module
  2519	034055	000000000000#			TSTC50		; CB50 - T Field Timing Test
  2520	034056	000000000000#			TSTC51		; CB51 - CBUS Store
  2521	034057	000000000000#			TSTC52		; CB52 - CBUS Input Buffer
  2522	034060	000000000000#			TSTC53		; CB53 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=0
  2523	034061	000000000000#			TSTC54		; CB54 - Parity Predictor - CBIN to Fmtr/MPINDSTCOMP=1
  2524	034062	000000000000#			TSTC55		; CB55 - Parity Predictor - Fmtr to PLOUT
  2525	034063	000000000000#			TSTC56		; CB56 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=0
  2526	034064	000000000000#			TSTC57		; CB57 - Parity Predictor - PLIN to Fmtr/MPCOREDUMP=1
  2527	034065	000000000000#			TSTC60		; CB60 - Parity Predictor - Fmtr to CBOUT
  2528	034066	777777	777777			-1		; end of tests
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 58
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0245

  2529
  2530					;#********************************************************************
  2531					;* FLTHAN - Fault handler
  2532					;
  2533					; AC3 - Address of module list (0 if none, last entry has bit 0 set)
  2534					; AC4 - Weight to be added to probability list
  2535					;#********************************************************************
  2536
  2537	034067	322 03 0 00 051527 	FLTHAN:	JUMPE	3,[RTN]			; nothing? yes - return
  2538	034070	261 17 0 00 000001 		PUT	1			; save AC1
  2539	034071	550 01 0 03 000000 	FLTHA0:	HRRZ	1,(3)			; get module entry
  2540	034072	272 04 0 01 031600 		ADDM	4,NETBAD-1(1)		; update module probability count
  2541	034073	377 00 0 00 000004 		SOSG	4			; adjust weight - less than 1?
  2542	034074	201 04 0 00 000001 		MOVEI	4,1			; yes - ensure at least 1
  2543	034075	332 00 0 00 064344'		SKIPE	IDEBUG			; fault isolation debug mode?
  2544						GO	[RPUT	(0,1)		; yes - print it out
  2545							 HRRZ	1,NETDES-1(1)
  2546							 MOVE	1,@1
  2547							 LDB	[POINT 7,1,20]
  2548							 CAIN	72
  2549							 AND	1,[777760,,077777]
  2550							 LDB	[POINT 7,1,27]
  2551							 CAIN	72
  2552							 AND	1,[777777,,700377]
  2553							 MOVEI	1
  2554							 PNTAL
  2555							 PSP
  2556							 RGET	(1,0)
  2557	034076	260 17 0 00 054637 			 RTN]
  2558	034077	200 01 0 03 000000 		MOVE	1,(3)			; get module entry
  2559	034100	350 00 0 00 000003 		AOS	3			; point to next module entry
  2560	034101	607 01 0 00 400000 		TLNN	1,400000		; last one?
  2561	034102	254 00 0 00 034071 		JRST	FLTHA0			; no - loop till done
  2562	034103	262 17 0 00 000001 		GET	1			; restore AC1
  2563	034104	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 59
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0246

  2564
  2565					;#********************************************************************
  2566					;* FLTCHK - See if this test should fail based on possible modules list
  2567					;#********************************************************************
  2568
  2569	034105	261 17 0 00 000001 	FLTCHK:	PUT	1			; save AC1
  2570
  2571					; Check high probability modules
  2572
  2573	034106	200 03 0 00 046320 		MOVE	3,TSTHIG		; get addr of high prob module list
  2574	034107	322 03 0 00 034122 		JUMPE	3,FLTCH1		; nothing? yes - try low probability
  2575	034110	550 01 0 03 000000 	FLTCH0:	HRRZ	1,(3)			; get module entry
  2576	034111	316 01 0 00 046326 		CAMN	1,FLTNUM		; module matches fault?
  2577	034112	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2578	034113	200 01 0 03 000000 		MOVE	1,(3)			; get module entry
  2579	034114	350 00 0 00 000003 		AOS	3			; point to next module entry
  2580	034115	607 01 0 00 400000 		TLNN	1,400000		; last one?
  2581	034116	254 00 0 00 034110 		JRST	FLTCH0			; no - loop till done
  2582	034117	326 15 0 00 034131 		JUMPN	ERFLG,FLTCHX		; error flag set? yes - exit
  2583
  2584					; Check low probability modules
  2585
  2586	034120	200 03 0 00 046321 		MOVE	3,TSTLOW		; get addr of low prob module list
  2587	034121	322 03 0 00 034131 		JUMPE	3,FLTCHX		; nothing? yes - exit
  2588	034122	550 01 0 03 000000 	FLTCH1:	HRRZ	1,(3)			; get module entry
  2589	034123	316 01 0 00 046326 		CAMN	1,FLTNUM		; module matches fault?
  2590	034124	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  2591	034125	200 01 0 03 000000 		MOVE	1,(3)			; get module entry
  2592	034126	350 00 0 00 000003 		AOS	3			; point to next module entry
  2593	034127	607 01 0 00 400000 		TLNN	1,400000		; last one?
  2594	034130	254 00 0 00 034122 		JRST	FLTCH1			; no - loop till done
  2595
  2596					; Exit
  2597
  2598	034131	262 17 0 00 000001 	FLTCHX:	GET	1			; restore AC1
  2599	034132	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 60
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0247

  2600
  2601					;#********************************************************************
  2602					;* TSTDEC - Decode test specified as XXnnn where XX is the test class
  2603					;*          and nnn is the test number.
  2604					;
  2605					; Argument:	AC1 - Contains SIXBIT test specification
  2606					;
  2607					; Returns:	+1 - Test not recognized (AC1 not preserved).
  2608					;		+2 - Test number out of range (AC1 contains maximum
  2609					;		     test number.
  2610					;		+3 - Ok, AC1 contains test number decoded.  Also,
  2611					;		     TSTCLS, TSTNUM, TSTADD are set up.
  2612					;#********************************************************************
  2613
  2614	034133	261 17 0 00 000000 	TSTDEC:	RPUT	(0,2,3)			; save AC's
  2615
  2616	034136	200 03 0 00 000001 		MOVE	3,1			; save AC1
  2617
  2618					; Decode the 2 character test type
  2619
  2620	034137	135 01 0 00 054657 		LDB	1,[POINT 12,3,11]	; get first 2 characters
  2621	034140	242 01 0 00 000030 		LSH	1,^D24			; position correctly
  2622	034141	201 02 0 00 031123 		MOVEI	2,INDLIS		; get address of individual test list
  2623	034142	260 17 0 00 032377*		GO	.COMM			; handle command decoding
  2624	034143	254 00 0 00 034172 		 JRST	TSTDED			; check if only 1 character
  2625	034144	202 01 0 00 046304 		MOVEM	1,TSTCLS		; save test class
  2626
  2627					; Decode the test number
  2628
  2629	034145	135 01 0 00 054660 		LDB	1,[POINT 24,3,35]	; get test number
  2630	034146	242 01 0 00 000014 		LSH	1,^D12			; left justify
  2631	034147	260 17 0 00 000000*	TSTDE0:	GO	CONVSX			; convert to octal
  2632	034150	254 00 0 00 034166 		 JRST	TSTDEE			; error - continue
  2633	034151	202 01 0 00 046305 		MOVEM	1,TSTNUM		; save test number
  2634	034152	200 02 0 00 046304 		MOVE	2,TSTCLS		; get test class
  2635						XCT	[MOVEI	2,TSEQ-TEBUS	; get maximum tests in the
  2636							 MOVEI	2,TALU-TSEQ	;   particular category
  2637							 MOVEI	2,TMPROC-TALU
  2638							 MOVEI	2,TCBUS-TMPROC
  2639	034153	256 00 0 02 054661 			 MOVEI	2,TEND-TCBUS](2)
  2640	034154	303 01 0 00 000000 		CAILE	1,0			; test number in the range
  2641	034155	313 01 0 00 000002 		CAMLE	1,2			;   1..n?
  2642						JRST	[MOVE	1,2		; no - get maximum test number
  2643	034156	254 00 0 00 054666 			 JRST	TSTDER]		;   and exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 61
DFPTA1	MAC	10-Oct-83 21:43		Test Dispatching                                                                   SEQ 0248

  2644
  2645					; Succeeded, also set up TSTADD
  2646
  2647	034157	200 02 0 00 046304 		MOVE	2,TSTCLS		; get test class
  2648						XCT	[MOVEI	2,TEBUS		; get starting address in address
  2649							 MOVEI	2,TSEQ		;   table
  2650							 MOVEI	2,TALU
  2651							 MOVEI	2,TMPROC
  2652	034160	256 00 0 02 053416 			 MOVEI	2,TCBUS](2)
  2653	034161	270 02 0 00 000001 		ADD	2,1			; include the test number
  2654	034162	370 00 0 00 000002 		SOS	2			; allow for tests 1..
  2655	034163	202 02 0 00 046311 		MOVEM	2,TSTADD		; save the dispatch table address
  2656
  2657					; Exit
  2658
  2659	034164	350 00 0 17 777775 		AOS	-3(P)			; yes - set up RTN+3
  2660	034165	350 00 0 17 777775 	TSTDER:	AOS	-3(P)			; set up RTN+2
  2661	034166	262 17 0 00 000003 	TSTDEE:	RGET	(3,2,0)			; error return (nothing recognized)
  2662
  2663	034171	263 17 0 00 000000 		RTN				; return
  2664
  2665					; Command not recognized, maybe only one alphabetic character was given
  2666
  2667	034172	135 01 0 00 054670 	TSTDED:	LDB	1,[POINT 6,3,5]		; get first character
  2668	034173	242 01 0 00 000036 		LSH	1,^D30			; position correctly
  2669	034174	201 02 0 00 031123 		MOVEI	2,INDLIS		; get address of individual test list
  2670	034175	260 17 0 00 034142*		GO	.COMM			; handle command decoding
  2671	034176	254 00 0 00 034166 		 JRST	TSTDEE			; error return
  2672	034177	202 01 0 00 046304 		MOVEM	1,TSTCLS		; save test class
  2673	034200	135 01 0 00 054671 		LDB	1,[POINT 30,3,35]	; get test number
  2674	034201	242 01 0 00 000006 		LSH	1,6			; left justify
  2675	034202	254 00 0 00 034147 		JRST	TSTDE0			; continue 
  2676
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 62
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0249

  2677						SUBTTL	Port Debugger
  2678
  2679					;#*********************************************************************
  2680					;* TSTDEB - Console command utility for the port.
  2681					;
  2682					; Command		Action
  2683					; -------		------
  2684					;
  2685					;  ?		   Print list of commands available.
  2686					;
  2687					;  HELP		   Print list of commands and description.
  2688					;  EXIT		   Exit debugger mode and go back to 'What Test' level.
  2689					;  DDT		   Enter DDT.
  2690					;
  2691					;  TAKE		   Take commands from specified file
  2692					;
  2693					;  CONFIG	   Determine/print configuration
  2694					;  CONPNT	   Print configuration
  2695					;  SELECT	   Select device to test
  2696					;
  2697					;  SET ADDR adr		Set starting address for a START/CONT command.
  2698					;      CSR arg		Set starting data to be written to CSR for START/CONT.
  2699					;      PARITY arg	Set automatic parity generation flag when loading cram.
  2700					;      EBUF arg		Set preserve EBUF flag for single stepping.
  2701					;      LENGTH arg	Set length of data transfer operations.
  2702					;      DATA arg		Set data pattern to use for data transfer operations.
  2703					;      FNAME name ext	Set default microcode file name.
  2704					;      WHAT		Print current selections.
  2705					;      PATLIS		Print data patterns.
  2706					;
  2707					;  ECSR		   Print contents of the CSR register (in octal).
  2708					;  DCSR	arg	   Change the contents of the CSR registers.
  2709					;  ZCSR		   Clear CSR register.
  2710					;
  2711					;  RESET	   Issue an EBUS reset.
  2712					;  CLEAR	   Issue a 'Clear Port'.
  2713					;
  2714					;  START adr	   Start port microcode by setting CSR Bit 21 'MPROC Run'.
  2715					;		   If address is supplied, start at that address; if no
  2716					;		   address is supplied, start at location 0.
  2717					;
  2718					;  STOP		   Stop port microcode by clearing CSR Bit 21 'MPROC Run'.
  2719					;		   Report the last CRAM address also.
  2720					;
  2721					;  CONT		   Clear the single step bit and set 'MPROC Run' in the port.
  2722					;
  2723					;  SSTEP arg	   Single step the port microcode 'ARG' times.  Report 
  2724					;		   final CRAM address.
  2725					;
  2726					;  STRACE arg	   Single step the port microcode 'ARG' times.  Report 
  2727					;		   the CRAM address and CSR register contents after each
  2728					;		   micro-instruction.
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 63
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0250

  2729
  2730					;  Response		Action
  2731					;  --------		------
  2732					;
  2733					;  SPRINT arg	   Print single step history data, 'ARG' entries.
  2734					;  SCLEAR	   Clear single step history data.
  2735					;  SSINIT	   Initialize single step data
  2736					;
  2737					;  EEBUF	   Print contents of EBUF register.
  2738					;  DEBUF arg	   Deposit data to EBUF register.
  2739					;  ZEBUF	   Zero EBUF register.
  2740					;
  2741					;  ELAR		   Print contents of LAR register.
  2742					;  DRAR	arg	   Deposit data to RAR register.
  2743					;  ZRAR		   Zero RAR register.
  2744					;
  2745					;  DCRAM adr,adr   Deposit data into port CRAM addresses specified by 'adr1'
  2746					;		   and 'adr2'.  The data will be queried for each address.
  2747					;		   The port microcode must be stopped.
  2748					;
  2749					;  BCRAM adr,adr   Deposit data as above, data is queried by bit field.
  2750					;
  2751					;  ACRAM adr,adr   Alter CRAM locations, addresses selected as above.
  2752					;
  2753					;  ECRAM adr,adr   Examine port CRAM addresses.  'Adr1' and 'adr2' specify
  2754					;		   examine limits.  The port microcode must be stopped.
  2755					;
  2756					;  LCRAM adr,adr   List port CRAM addresses.  'Adr1' and 'adr2' specify
  2757					;		   examine limits.  The port microcode must be stopped.
  2758					;
  2759					;  ZCRAM adr,adr   Zero port CRAM addresses.  'Adr1' and 'adr2' specify
  2760					;		   examine limits.  The port microcode must be stopped.
  2761					;
  2762					;  ELOCS adr,adr   Examine local storage contents
  2763					;  DLOCS adr,data  Deposit local storage contents
  2764					;  ZLOCS adr,adr   Zero local storage contents
  2765					;
  2766					;  E2901 adr,adr   Examine 2901 registers
  2767					;  D2901 adr,data  Deposit 2901 registers
  2768					;  Z2901 adr,adr   Zero 2901 registers
  2769					;
  2770					;  LCONI	   Loop on CONI
  2771					;  LCONO	   Loop on CONO
  2772					;  LDATAI	   Loop on DATAI
  2773					;  LDATAO	   Loop on DATAO
  2774					;  LROUTN	   Loop on user supplied routine at DROUTN:
  2775					;
  2776					;  MARK adr..      Set mark bit in CRAM locations
  2777					;  RMARK adr..	   Remove mark bit at CRAM address 'adr'
  2778					;  CMARK adr,adr   Clear mark bit in CRAM locations
  2779					;  LMARK	   List locations with mark bit set
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 64
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0251

  2780
  2781					;  Response		Action
  2782					;  --------		------
  2783					;
  2784					;  BREAK adr..	   Set a breakpoint at CRAM address
  2785					;  RBREAK adr..	   Remove breakpoint at CRAM address 'adr'
  2786					;  CBREAK adr,adr  Clear all breakpoints
  2787					;  LBREAK adr,adr  List breakpoints
  2788					;
  2789					;  LOAD	arg	   Load microcode into CRAM from a test.  'Arg' specifies
  2790					;		   test number.
  2791					;  LIST arg	   List microcode of a test.  'Arg' specifies test number.
  2792					;  FLOAD 	   Load microcode from disk file into CRAM.
  2793					;  FVERFY	   Verify microcode loaded.
  2794					;  FLIST	   List microcode on disk file.
  2795					;  FEXAM	   Examine microcode on disk file.
  2796					;
  2797					;  TRANSL arg      Translate given CSR bits to English.
  2798					;  CCODE	  Print current status of condition codes.
  2799					;  ESTACK	  Examine 2910 stack contents
  2800					;
  2801					;  FILLNX arg	   Fill CRAM with data as 'J=.+1,CTL=x', where 'x' is given.
  2802					;  FILLPC arg	   Fill CRAM with data as 'J=.,CTL=x', where 'x' is given.
  2803					;
  2804					;  IPRINT	   Print interrupt history
  2805					;  ICLEAR	   Clear interrupt history
  2806					;  IINIT	   Initialize interrupt system
  2807					;
  2808					;  RDINIT	   Initialize e/g for a read
  2809					;  WRINIT	   Initialize e/g for a write
  2810					;  BPRINT	   Print buffer contents
  2811					;  CCWPNT	   Print CCW list
  2812					;  LOGPNT	   Print logout data
  2813					;  COMPAR	   Compare data buffer contents
  2814					;
  2815					;  Switches:  To complement switch, type switch name
  2816					;
  2817					;  SWITCH	   Enter switches
  2818					;  SWPRIN	   Print current switches
  2819					;
  2820					;  NOPNT   LOOPER  RELIAB   TRACE   LOOPGM  DSPEAR  SDEBUG  NIPORT  MMPROC
  2821					;  PNTLPT  ERSTOP  TXTINH   INHFLT  LOOPTS  UDEBUG  LDEBUG  CIPORT  MCBUS
  2822					;  DING    PALERS  OPRSEL   INHMSG  RUNALL  MDEBUG  IDEBUG
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 65
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0252

  2823
  2824					; Common Error Messages For 'DEBUG' Mode:
  2825					;
  2826					; "? Missing argument" - Response to "DEBUG>" prompt expects a command
  2827					;	plus an argument.
  2828					;
  2829					; "? Argument Error" - An attempt was made to decode an octal or decimal
  2830					;	argument.  It was undecipherable.
  2831					;
  2832					; "? Range nonsensical" - The beginning address is greater than ending
  2833					;	address.
  2834					;
  2835					; "? Range of CRAM locations is 0000-7777" - Argument(s) typed were not
  2836					;	it range.
  2837					;
  2838					; "? Port not stopped" - An operation requiring the port to be stopped
  2839					;	was issued when 'MPROC Run' was set.
  2840					;
  2841					; "? Port not running" - A function was issued to the port when it was
  2842					;	stopped.  It should have been running.
  2843					;
  2844					; "? Test number out of range" - In response to the Test Number question.
  2845					;
  2846					; "? Error accessing CSR registers" - A read of CSR register failed.
  2847					;
  2848					; "? CSR has MBUS Error bit set - must do a reset first" - A operation
  2849					;	requiring ability to write CSR was done, but MBUS ERROR bit
  2850					;	is set.
  2851					;
  2852					; "? Test specified does not have microcode" - An attempt to load ucode
  2853					;	from this test failed because the test doesn't have any.
  2854					;
  2855					; "? Unrecognized command" - Unrecognized command entered.
  2856					;#********************************************************************
  2857
  2858	034203	200 01 0 00 054675 	TSTDEB:	MOVE	1,[FMSGCD (DEBUG <CR>)]
  2859	034204	260 17 0 00 032522*		GO	CHKARG			; check for argument
  2860	034205	263 17 0 00 000000 		RTN				; error - exit
  2861	034206	202 17 0 00 064373'		MOVEM	P,SAVCMD#		; save stack pointer
  2862
  2863					; Determine port under test
  2864
  2865	034207	260 17 0 00 032335 	CMD0:	GO	PTEST			; determine port/set up MBCN
  2866	034210	260 17 0 00 032354 		GO	PTESTP			; print results
  2867	034211	322 16 0 00 051527 		JUMPE	MBCN,[RTN]		; exit if no ports are selected
  2868	034212	260 17 0 00 033012*		GO	DEVREQ			; request the device
  2869						JRST	[FMSGCD	<[? Configuration changed - reconfigure using the CONFIG command]>
  2870	034213	254 00 0 00 054714 			 RTN]				; failed - return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 66
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0253

  2871
  2872					; Initialize things
  2873
  2874	034214	260 17 0 00 000000*	CMD1:	GO	.INPNT			; print interrupt fielded (if any)
  2875	034215	402 00 0 00 064363'		SETZM	PCMD#			; clear the command storage
  2876	034216	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
  2877	034217	201 00 0 00 023420 		MOVEI	^D10000			; re-set up print limit just in case
  2878	034220	212 00 0 00 030220 		MOVNM	PNTENB			;   the last test exceeded it
  2879
  2880					; Set/clear debug switches
  2881
  2882	034221	402 00 0 00 064413'	CMD2:	SETZM	UDEBUG			; clear no-port user mode debug switch
  2883	034222	402 00 0 00 064352'		SETZM	MDEBUG			; clear error message debug switch
  2884	034223	402 00 0 00 064377'		SETZM	SDEBUG			; clear single step debug switch
  2885	034224	402 00 0 00 064346'		SETZM	LDEBUG			; clear ucode load debug switch
  2886	034225	402 00 0 00 064344'		SETZM	IDEBUG			; fault isolation debug switch
  2887	034226	260 17 0 00 033122*		GO	SWITT			; get switches
  2888	034227	602 00 0 00 002000 		TRNE	DEBUG1			; debug switch set?
  2889	034230	476 00 0 00 064413'		SETOM	UDEBUG			; set no-port user mode debug switch
  2890	034231	602 00 0 00 001000 		TRNE	DEBUG2			; debug switch set?
  2891	034232	476 00 0 00 064352'		SETOM	MDEBUG			; set error message debug switch
  2892	034233	602 00 0 00 000400 		TRNE	DEBUG3			; debug switch set?
  2893	034234	476 00 0 00 064377'		SETOM	SDEBUG			; set single step debug switch
  2894	034235	602 00 0 00 000200 		TRNE	DEBUG4			; debug switch set?
  2895	034236	476 00 0 00 064346'		SETOM	LDEBUG			; set ucode load debug switch
  2896	034237	602 00 0 00 000100 		TRNE	DEBUG5			; debug switch set?
  2897	034240	476 00 0 00 064344'		SETOM	IDEBUG			; set fault isolation debug switch
  2898	034241	402 00 0 00 046330 		SETZM	PMODE			; set program mode to 'no test'
  2899	034242	402 00 0 00 064354'		SETZM	MULFLG			; clear 'multiple examine' flag
  2900	034243	476 00 0 00 064355'		SETOM	MULINI			; set 'initial examine' flag
  2901
  2902					; Input command
  2903
  2904	034244	260 17 0 00 030771*		GO	CLRBUF			; clear input buffer
  2905					CMD3:	MOVEI	[PCRL			; set up $ transfer address
  2906							 SETZM	ALTF
  2907							 GO	FIOFF
  2908	034245	201 00 0 00 054716 			 JRST	CMD1]
  2909	034246	202 00 0 00 030063 		MOVEM	ALTMGO
  2910	034247	402 00 0 00 064326'		SETZM	ALTF			; clear 'altmode typed' flag
  2911	034250	336 00 0 00 064341'		SKIPN	FINPUT			; file input?
  2912	034251	476 00 0 00 064340'		SETOM	FINECH			; no - ensure echo flag set
  2913	034252	332 00 0 00 064340'		SKIPE	FINECH			; echo flag set?
  2914						GO	[PFORCE			; no - print all this
  2915							 PCRLF
  2916							 FMSG	(DEBUG> )
  2917	034253	260 17 0 00 054724 			 RTN]
  2918	034254	332 00 0 00 064341'		SKIPE	FINPUT			; file input?
  2919						JRST	[GO	FINCMD		; yes - input sixbit cmd
  2920							 JRST	CMD3		; error or EOF
  2921	034255	254 00 0 00 054730 			 JRST	CMD4]		; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 67
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0254

  2922
  2923	034256	037 10 0 00 000003 	CMD3A:	TTSIXB				; get operator input
  2924						ALTCHK	[GET	XXW#		; adjust stack properly
  2925							 SKIPN	$TWCNT		; did a timeout occur?
  2926							 JRST	CMD3		; yes - keep looking for input
  2927							 MOVE	1,$TTCHR	; no - get character typed
  2928							 CAIN	1,77		; was a question mark typed?
  2929							 JRST	CMDQUE		; yes - handle
  2930							 CAIN	1,40		; space (delimiter character) typed?
  2931							 JRST	.+1		; yes - continue (no error occurred)
  2932							 FMSGCD	<? Unrecognizable - Type ? for help>
  2933							 GO	FIOFF		; turn off file input
  2934	034257	007 00 0 00 054733 			 JRST	CMD1]		; error - reask question
  2935					CMD4:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
  2936							 CAIN	40		;   looking for an argument, if not
  2937							 JRST	CMD3A		;   exit
  2938	034260	322 00 0 00 054746 			 JRST	CMD3]
  2939	034261	202 00 0 00 064363'		MOVEM	PCMD			; save command typed
  2940	034262	402 00 0 00 032725*		SETZM	ARGFLG			; clear 'argument given' flag
  2941	034263	200 01 0 00 030231 		MOVE	1,$TTCHR		; get last character typed
  2942	034264	302 01 0 00 000015 		CAIE	1,15			; CR? (end of line)
  2943	034265	476 00 0 00 034262*		SETOM	ARGFLG			; set 'argument given' flag
  2944
  2945					; Decode the command
  2946
  2947	034266	200 01 0 00 064363'		MOVE	1,PCMD			; get sixbit command
  2948	034267	201 02 0 00 034303 		MOVEI	2,.DBCMD		; get address of cmd list
  2949	034270	260 17 0 00 034175*		GO	.COMM			; handle command decoding
  2950						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  2951							 GO	FIOFF
  2952	034271	254 00 0 00 054743 			 JRST	CMD1]		; error return
  2953	034272	260 17 1 01 034453 		GO	@.DBDIS(1)		; dispatch to test
  2954	034273	254 00 0 00 034214 		JRST	CMD1			; return to 'DEBUG>' prompt
  2955	034274	254 00 0 00 034207 		JRST	CMD0			; do port handling again
  2956
  2957					; Question mark typed
  2958
  2959	034275	037 01 0 00 000026 	CMDQUE:	PFORCE				; handle Control-O
  2960	034276	037 00 1 00 034300 		PNTMSG	@CMDQUU			; print text
  2961	034277	254 00 0 00 034214 		JRST	CMD1			; look for new command
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 68
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0255

  2962
  2963	034300				CMDQUU:	[ASCII	/   
  2964					--------- Miscellaneous --------------------    -- Switches -
  2965					HELP    IPRINT  START   EEBUF   DCRAM   LOAD    NOPNT   TRACE
  2966					EXIT    ICLEAR  STOP    DEBUF   BCRAM   LIST    PNTLPT  INHFLT
  2967					DDT     IINIT   CONT    ZEBUF   ACRAM   FLOAD   DING    INHMSG
  2968					SET     SSTEP                   ECRAM   FVERFY  LOOPER  LOOPGM
  2969	034300	000000	054752		TAKE    RDINIT  STRACE  ELAR    LCRAM   FLIST   ERSTOP  LOOPTS/]
  2970						[ASCII	/
  2971					NTAKE   WRINIT  SPRINT  DRAR    ZCRAM   FEXAM   PALERS  RUNALL
  2972					TRANSL  BPRINT  SCLEAR  ZRAR                    RELIAB  DSPEAR
  2973					FILLNX  CCWPNT  SSINIT          LCONI   BREAK   TXTINH  UDEBUG
  2974					FILLPC  LOGPNT          ELOCS   LCONO   RBREAK  OPRSEL  MDEBUG
  2975					        COMPAR  RESET   DLOCS   LDATAI  CBREAK          SDEBUG
  2976	034301	000000	055067		MARK            CLEAR   ZLOCS   LDATAO  LBREAK  NIPORT  LDEBUG /]
  2977						[ASCIZ	/
  2978					RMARK   CONFIG                  LROUTN          CIPORT  IDEBUG
  2979					CMARK   CONPNT  E2901   ECSR            CCODE           MMPROC
  2980					LMARK   SELECT  D2901   DCSR    ENEXT           SWITCH  MCBUS
  2981					                Z2901   ZCSR    DNEXT   ESTACK  SWPRIN
  2982	034302	000000	055204		/]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 69
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0256

  2983
  2984					;#********************************************************************
  2985					;* .DBCMD - List of acceptable commands
  2986					;#********************************************************************
  2987
  2988					; Miscellaneous commands
  2989
  2990	034303	777777	777655		.DBCMD:	-123				; ignore
  2991	034304	50 45 54 60 00 00 		SIXBIT	/HELP/			; print help message
  2992	034305	45 70 51 64 00 00 		SIXBIT	/EXIT/			; exit DEBUG mode
  2993	034306	44 44 64 00 00 00 		SIXBIT	/DDT/			; enter DDT
  2994
  2995	034307	63 45 64 00 00 00 		SIXBIT	/SET/			; set/print options
  2996	034310	64 41 53 45 00 00 		SIXBIT	/TAKE/			; take commands from a file
  2997	034311	56 64 41 53 45 00 		SIXBIT	/NTAKE/			; take commands from a file
  2998	034312	45 56 45 70 64 00 		SIXBIT	/ENEXT/			; examine next location
  2999	034313	44 56 45 70 64 00 		SIXBIT	/DNEXT/			; examine next location
  3000	034314	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; determine/print configuration
  3001	034315	43 57 56 60 56 64 		SIXBIT	/CONPNT/		; print configuration
  3002	034316	63 45 54 45 43 64 		SIXBIT	/SELECT/		; select device to test
  3003
  3004					; CSR commands
  3005
  3006	034317	45 43 63 62 00 00 		SIXBIT	/ECSR/			; examine CSR register
  3007	034320	44 43 63 62 00 00 		SIXBIT	/DCSR/			; deposit CSR register
  3008	034321	72 43 63 62 00 00 		SIXBIT	/ZCSR/			; zero CSR register
  3009
  3010	034322	62 45 63 45 64 00 		SIXBIT	/RESET/			; issue an EBUS Reset
  3011	034323	43 54 45 41 62 00 		SIXBIT	/CLEAR/			; issue a 'Port Clear'
  3012
  3013					; Start/stop/single step commands
  3014
  3015	034324	63 64 41 62 64 00 		SIXBIT	/START/			; start the port
  3016	034325	63 64 57 60 00 00 		SIXBIT	/STOP/			; stop the port
  3017	034326	43 57 56 64 00 00 		SIXBIT	/CONT/			; continue the port
  3018	034327	63 63 64 45 60 00 		SIXBIT	/SSTEP/			; single step the port
  3019	034330	63 64 62 41 43 45 		SIXBIT	/STRACE/		; single step the port while tracing
  3020	034331	63 60 62 51 56 64 		SIXBIT	/SPRINT/		; print single step history
  3021	034332	63 43 54 45 41 62 		SIXBIT	/SCLEAR/		; clear single step history data
  3022	034333	63 63 51 56 51 64 		SIXBIT	/SSINIT/		; set up ss start addr/data/history
  3023
  3024					; EBUF commands
  3025
  3026	034334	45 45 42 65 46 00 		SIXBIT	/EEBUF/			; examine EBUF register
  3027	034335	44 45 42 65 46 00 		SIXBIT	/DEBUF/			; deposit EBUF register
  3028	034336	72 45 42 65 46 00 		SIXBIT	/ZEBUF/			; zero EBUF register
  3029
  3030					; RAR/LAR commands
  3031
  3032	034337	45 54 41 62 00 00 		SIXBIT	/ELAR/			; examine LAR register
  3033	034340	44 62 41 62 00 00 		SIXBIT	/DRAR/			; deposit RAR register
  3034	034341	72 62 41 62 00 00 		SIXBIT	/ZRAR/			; zero RAR register
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 70
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0257

  3035
  3036					; CRAM commands
  3037
  3038	034342	44 43 62 41 55 00 		SIXBIT	/DCRAM/			; deposit into port CRAM
  3039	034343	42 43 62 41 55 00 		SIXBIT	/BCRAM/			; deposit into port CRAM by bit field
  3040	034344	41 43 62 41 55 00 		SIXBIT	/ACRAM/			; alter port CRAM
  3041	034345	45 43 62 41 55 00 		SIXBIT	/ECRAM/			; examine port CRAM
  3042	034346	54 43 62 41 55 00 		SIXBIT	/LCRAM/			; list port CRAM
  3043	034347	72 43 62 41 55 00 		SIXBIT	/ZCRAM/			; zero port CRAM
  3044
  3045					; 2901 command
  3046
  3047	034350	45 22 31 20 21 00 		SIXBIT	/E2901/			; examine 2901 registers
  3048	034351	44 22 31 20 21 00 		SIXBIT	/D2901/			; deposit 2901 registers
  3049	034352	72 22 31 20 21 00 		SIXBIT	/Z2901/			; zero 2901 registers
  3050
  3051					; Local storage commmands
  3052
  3053	034353	45 54 57 43 63 00 		SIXBIT	/ELOCS/			; examine local storage
  3054	034354	44 54 57 43 63 00 		SIXBIT	/DLOCS/			; deposit local storage
  3055	034355	72 54 57 43 63 00 		SIXBIT	/ZLOCS/			; zero local storage
  3056
  3057					; Scope looping commands
  3058
  3059	034356	54 43 57 56 51 00 		SIXBIT	/LCONI/			; loop on CONI
  3060	034357	54 43 57 56 57 00 		SIXBIT	/LCONO/			; loop on CONO
  3061	034360	54 44 41 64 41 51 		SIXBIT	/LDATAI/		; loop on DATAI
  3062	034361	54 44 41 64 41 57 		SIXBIT	/LDATAO/		; loop on DATAO
  3063	034362	54 62 57 65 64 56 		SIXBIT	/LROUTN/		; loop on routine
  3064
  3065					; Mark bit commands
  3066
  3067	034363	55 41 62 53 00 00 		SIXBIT	/MARK/			; set mark bit in locations
  3068	034364	62 55 41 62 53 00 		SIXBIT	/RMARK/			; remove mark bit in locations
  3069	034365	43 55 41 62 53 00 		SIXBIT	/CMARK/			; clear mark bit in locations
  3070	034366	54 55 41 62 53 00 		SIXBIT	/LMARK/			; list locations with mark bit set
  3071
  3072					; Breakpoint commands
  3073
  3074	034367	42 62 45 41 53 00 		SIXBIT	/BREAK/			; set breakpoint
  3075	034370	62 42 62 45 41 53 		SIXBIT	/RBREAK/		; remove breakpoint
  3076	034371	43 42 62 45 41 53 		SIXBIT	/CBREAK/		; clear all breakpoints
  3077	034372	54 42 62 45 41 53 		SIXBIT	/LBREAK/		; list breakpoints
  3078
  3079					; Microcode file commands
  3080
  3081	034373	54 57 41 44 00 00 		SIXBIT	/LOAD/			; load microcode from test into CRAM
  3082	034374	54 51 63 64 00 00 		SIXBIT	/LIST/			; list microcode from test
  3083	034375	46 54 57 41 44 00 		SIXBIT	/FLOAD/			; load microcode from file into CRAM
  3084	034376	46 66 45 62 46 71 		SIXBIT	/FVERFY/		; verify microcode loaded
  3085	034377	46 54 51 63 64 00 		SIXBIT	/FLIST/			; list microcode in file
  3086	034400	46 45 70 41 55 00 		SIXBIT	/FEXAM/			; examine microcode in file
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 71
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0258

  3087
  3088					; Miscellaneous commands
  3089
  3090	034401	64 62 41 56 63 54 		SIXBIT	/TRANSL/		; translate CSR bits
  3091	034402	43 43 57 44 45 00 		SIXBIT	/CCODE/			; print condition codes
  3092	034403	45 63 64 41 43 53 		SIXBIT	/ESTACK/		; examine 2910 stack contents
  3093	034404	46 51 54 54 56 70 		SIXBIT	/FILLNX/		; fill CRAM with special data
  3094	034405	46 51 54 54 60 43 		SIXBIT	/FILLPC/		; fill CRAM with special data
  3095	034406	51 60 62 51 56 64 		SIXBIT	/IPRINT/		; print interrupt history
  3096	034407	51 43 54 45 41 62 		SIXBIT	/ICLEAR/		; clear interrupt history
  3097	034410	51 51 56 51 64 00 		SIXBIT	/IINIT/			; initialize interrupt system
  3098
  3099					; Data transfer routines
  3100
  3101	034411	62 44 51 56 51 64 		SIXBIT	/RDINIT/		; initialize e/g for a read
  3102	034412	67 62 51 56 51 64 		SIXBIT	/WRINIT/		; initialize e/g for a write
  3103	034413	42 60 62 51 56 64 		SIXBIT	/BPRINT/		; print buffer contents
  3104	034414	43 43 67 60 56 64 		SIXBIT	/CCWPNT/		; print CCW list
  3105	034415	54 57 47 60 56 64 		SIXBIT	/LOGPNT/		; print logout data
  3106	034416	43 57 55 60 41 62 		SIXBIT	/COMPAR/		; compare data buffer
  3107
  3108					; Switches
  3109
  3110	034417	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; input switches
  3111	034420	63 67 60 62 51 56 		SIXBIT	/SWPRIN/		; print switch selections
  3112	034421	56 57 60 56 64 00 		SIXBIT	/NOPNT/			; don't print anything
  3113	034422	60 56 64 54 60 64 		SIXBIT	/PNTLPT/		; print on printer
  3114	034423	44 51 56 47 00 00 		SIXBIT	/DING/			; ding on error
  3115	034424	54 57 57 60 45 62 		SIXBIT	/LOOPER/		; loop on error
  3116	034425	45 62 63 64 57 60 		SIXBIT	/ERSTOP/		; halt on error
  3117	034426	60 41 54 45 62 63 		SIXBIT	/PALERS/		; print all errors
  3118	034427	62 45 54 51 41 42 		SIXBIT	/RELIAB/		; reliability testing
  3119	034430	64 70 64 51 56 50 		SIXBIT	/TXTINH/		; shorten printing
  3120	034431	57 60 62 63 45 54 		SIXBIT	/OPRSEL/		; operator select
  3121	034432	64 62 41 43 45 00 		SIXBIT	/TRACE/			; trace pgm flow
  3122	034433	51 56 50 46 54 64 		SIXBIT	/INHFLT/		; inhibit fault isolation
  3123	034434	51 56 50 55 63 47 		SIXBIT	/INHMSG/		; inhibit error messages
  3124	034435	54 57 57 60 47 55 		SIXBIT	/LOOPGM/		; loop on program
  3125	034436	54 57 57 60 64 63 		SIXBIT	/LOOPTS/		; loop on test
  3126	034437	62 65 56 41 54 54 		SIXBIT	/RUNALL/		; run all test segments
  3127	034440	44 63 60 45 41 62 		SIXBIT	/DSPEAR/		; disable SPEAR reporting
  3128	034441	65 44 45 42 65 47 		SIXBIT	/UDEBUG/		; no-port user mode debug switch
  3129	034442	55 44 45 42 65 47 		SIXBIT	/MDEBUG/		; error message debug switch
  3130	034443	63 44 45 42 65 47 		SIXBIT	/SDEBUG/		; single step debug switch
  3131	034444	54 44 45 42 65 47 		SIXBIT	/LDEBUG/		; ucode load debug switch
  3132	034445	51 44 45 42 65 47 		SIXBIT	/IDEBUG/		; fault isolation debug switch
  3133	034446	56 51 60 57 62 64 		SIXBIT	/NIPORT/		; NI port selected
  3134	034447	43 51 60 57 62 64 		SIXBIT	/CIPORT/		; CI port selected
  3135	034450	55 55 60 62 57 43 		SIXBIT	/MMPROC/		; missing Mproc module
  3136	034451	55 43 42 65 63 00 		SIXBIT	/MCBUS/			; missing Cbus module
  3137	034452	000 00 0 00 000000 		Z				; list terminator
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 72
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0259

  3138
  3139					;#********************************************************************
  3140					;* .DBDIS - List of dispatch addresses
  3141					;#********************************************************************
  3142
  3143	034453	000000	051527		.DBDIS:	[RTN]				; ignore
  3144	034454	000000	034622			DHELP				; HELP - print help message
  3145						[MOVE	1,[FMSGCD (EXIT <CR>)]	; EXIT - exit DEBUG mode
  3146						 GO	CHKARG
  3147						 RTN
  3148						 GET	XXX#
  3149	034455	000000	055266			 RTN]
  3150	034456	000000	032120			TSTDDT				; DDT - enter DDT
  3151
  3152	034457	000000	034710			DSET				; SET - set/clear/print options
  3153	034460	000000	032532			TSTTAK				; TAKE - take commands from file
  3154	034461	000000	032530			TSTTAN				; NTAKE - take commands from a file
  3155	034462	000000	040762			DENEXT				; ENEXT - examine next location
  3156	034463	000000	041037			DDNEXT				; DNEXT - deposit next location
  3157						[GO	CONFIG			; CONFIG - determine configuration
  3158						 GO	TSTSEL
  3159						 SETZM	MBCN
  3160						 AOS	(P)
  3161	034464	000000	055273			 RTN]
  3162						[MOVE	1,[FMSGCD (CONPNT <CR>)]; CONPNT - print configuration
  3163						 GO	CHKARG
  3164						 RTN
  3165						 GO	CONPNT
  3166	034465	000000	052031			 RTN]
  3167						[GO	TSTSEL			; SELECT - select device to test
  3168						 SETZM	MBCN
  3169						 AOS	(P)
  3170	034466	000000	055274			 RTN]
  3171	034467	000000	035276			DECSR				; ECSR - examine CSR register
  3172	034470	000000	035306			DDCSR				; DCSR - deposit CSR register
  3173	034471	000000	035315			DZCSR				; ZCSR - zero CSR register
  3174
  3175	034472	000000	035413			DRESET				; RESET - issue an EBUS Reset
  3176	034473	000000	035420			DCLEAR				; CLEAR - issue a 'Port Clear'
  3177
  3178	034474	000000	035440			DSTART				; START - start the port
  3179	034475	000000	035465			DSTOP				; STOP - stop the port
  3180	034476	000000	037056			DCONT				; CONT - continue the port
  3181	034477	000000	035510			DSSTEP				; SSTEP - single step the port
  3182	034500	000000	035505			DTRACE				; STRACE - sstep the port while tracing
  3183	034501	000000	035557			DSSPNT				; SPRINT - print single step history
  3184	034502	000000	035601			DSSCLR				; SCLEAR - clear single step history
  3185	034503	000000	035425			DSINIT				; SSINIT - set up ss addr/data/history
  3186
  3187	034504	000000	037073			DEEBUF				; EEBUF - examine EBUF register
  3188	034505	000000	037114			DDEBUF				; DEBUF - deposit EBUF register
  3189	034506	000000	037107			DZEBUF				; ZEBUF - zero EBUF register
  3190
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 73
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0260

  3191	034507	000000	037126			DELAR				; ELAR - examine LAR register
  3192	034510	000000	037146			DDRAR				; DRAR - deposit RAR register
  3193	034511	000000	037160			DZRAR				; ZRAR - zero RAR register
  3194
  3195	034512	000000	037173			DDCRAM				; DCRAM - deposit CRAM
  3196	034513	000000	037176			DBCRAM				; BCRAM - deposit CRAM by bit field
  3197	034514	000000	037201			DACRAM				; ACRAM - alter port CRAM
  3198	034515	000000	037170			DECRAM				; ECRAM - examine port CRAM
  3199	034516	000000	037207			DLCRAM				; LCRAM - list port CRAM
  3200	034517	000000	037204			DZCRAM				; ZCRAM - zero port CRAM
  3201
  3202	034520	000000	037756			DEALU				; E2901 - examine 2901 registers
  3203	034521	000000	040064			DDALU				; D2901 - deposit 2901 registers
  3204	034522	000000	040145			DZALU				; Z2901 - zero 2901 registers
  3205
  3206	034523	000000	040262			DELOCS				; ELOCS - examine local storage
  3207	034524	000000	040365			DDLOCS				; DLOCS - deposit local storage
  3208	034525	000000	040441			DZLOCS				; ZLOCS - zero local storage
  3209
  3210	034526	000000	035323			DCONI				; LCONI - loop on CONI
  3211	034527	000000	035333			DCONO				; LCONO - loop on CONO
  3212	034530	000000	035344			DDATI				; LDATAI - loop on DATAI
  3213	034531	000000	035353			DDATO				; LDATAO - loop on DATAO
  3214	034532	000000	035364			DROUTN				; LROUTN - loop on routine
  3215
  3216	034533	000000	040555			DMARK				; MARK - set mark bits
  3217	034534	000000	040604			DRMARK				; RMARK - remove mark bits
  3218	034535	000000	040633			DCMARK				; CMARK - clear mark bits
  3219	034536	000000	040704			DLMARK				; LMARK - list mark bits
  3220
  3221	034537	000000	041141			DBREAK				; BREAK - set breakpoint
  3222	034540	000000	041174			DRBRK				; RBREAK - remove breakpoint
  3223	034541	000000	041217			DCBRK				; CBREAK - clear all breakpoints
  3224	034542	000000	041263			DLBRK				; LBREAK - list breakpoints
  3225
  3226	034543	000000	041344			DLOAD				; LOAD - load test microcode in CRAM
  3227	034544	000000	041367			DLIST				; LIST - list test microcode
  3228	034545	000000	041404			DFLOAD				; FLOAD - load ucode from file to CRAM
  3229	034546	000000	041442			DFVERF				; FVERFY - verify microcode loaded
  3230	034547	000000	041534			DFLIST				; FLIST - list microcode in file
  3231	034550	000000	041563			DFEXAM				; FEXAM - examine microcode in file
  3232
  3233	034551	000000	041611			DTRANS				; TRANSL - translate CSR bits
  3234	034552	000000	041621			DCCODE				; CCODE - print condition codes
  3235	034553	000000	041101			DESTAK				; ESTACK - examine 2910 stack
  3236	034554	000000	041750			DFILLN				; FILLNX - fill CRAM with special data
  3237	034555	000000	041773			DFILLP				; FILLPC - fill CRAM with special data
  3238	034556	000000	042142			DIPRIN				; IPRINT - print interrupt history
  3239						[MOVE	1,[FMSGCD (ICLEAR <CR>)]; ICLEAR - clear interrupt history
  3240						 GO	CHKARG
  3241						 RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 74
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0261

  3242  3243						 SETZM	INTNUM
  3244						 MOVE	[INTNUM,,INTNUM+1]
  3245						 BLT	INTEND
  3246						 SETOM	INTNUM
  3247	034557	000000	055306			 RTN]
  3248	034560	000000	042216			DIINIT				; IINIT - initialize interrupt system
  3249
  3250	034561	000000	042014			DRDINI				; RDINIT - initialize for a read
  3251	034562	000000	042037			DWRINI				; WRINIT - initialize for a write
  3252	034563	000000	042044			DBPNT				; BPRINT - print buffer data
  3253	034564	000000	042077			DCWPNT				; CCWPNT - print CCW list
  3254	034565	000000	042105			DLGPNT				; LOGPNT - print logout data
  3255	034566	000000	042115			DCOMPA				; COMPAR - compare data buffer
  3256
  3257						[MOVE	1,[FMSGCD (SWITCH <CR>)]; SWITCH - input switches
  3258						 GO	CHKARG
  3259						 RTN
  3260						 GO	.ISWT
  3261	034567	000000	055316			 RTN]
  3262						[MOVE	1,[FMSGCD (SWPRIN <CR>)]; SWPRIN - print switches
  3263						 GO	CHKARG
  3264						 RTN
  3265						 GO	.SWCHP
  3266	034570	000000	055323			 RTN]
  3267
  3268			000116		SWSTP==.-.DBDIS
  3269
  3270	034571	000000	042131			DSWIT				; NOPNT
  3271	034572	000000	042131			DSWIT				; PNTLPT
  3272	034573	000000	042131			DSWIT				; DING
  3273	034574	000000	042131			DSWIT				; LOOPER
  3274	034575	000000	042131			DSWIT				; ERSTOP
  3275	034576	000000	042131			DSWIT				; PALERS
  3276	034577	000000	042131			DSWIT				; RELIAB
  3277	034600	000000	042131			DSWIT				; TXTINH
  3278	034601	000000	042131			DSWIT				; OPRSEL
  3279	034602	000000	042131			DSWIT				; TRACE
  3280	034603	000000	042131			DSWIT				; INHFLT
  3281	034604	000000	042131			DSWIT				; INHMSG
  3282	034605	000000	042131			DSWIT				; LOOPGM
  3283	034606	000000	042131			DSWIT				; LOOPTS
  3284	034607	000000	042131			DSWIT				; RUNALL
  3285	034610	000000	042131			DSWIT				; DSPEAR
  3286	034611	000000	042131			DSWIT				; UDEBUG
  3287	034612	000000	042131			DSWIT				; MDEBUG
  3288	034613	000000	042131			DSWIT				; SDEBUG	
  3289	034614	000000	042131			DSWIT				; LDEBUG
  3290	034615	000000	042131			DSWIT				; IDEBUG
  3291	034616	000000	042131			DSWIT				; NIPORT
  3292	034617	000000	042131			DSWIT				; CIPORT
  3293	034620	000000	042131			DSWIT				; MMPROC
  3294	034621	000000	042131			DSWIT				; MCBUS
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 75
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0262

  3295
  3296					;#*********************************************************************
  3297					;* DHELP - Print DEBUG> help message
  3298					;#*********************************************************************
  3299
  3300					DHELP:	MOVN	1,[FMSGD <
  3301					HELP ALL     RESET  LAR   SCOPE  DTXFR
  3302					     MISC    START  CRAM  MARK   SWITCH
  3303					     INTRPT  CSR    2901  BREAK
  3304	034622	210 01 0 00 055366 	     CONFIG  EBUF   LOCS  UCODE>]
  3305	034623	260 17 0 00 032542*		GO	.SARG			; get SIXBIT argument
  3306	034624	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3307						 GO	[MOVE	[SIXBIT /ALL/]	; no argument - assume all
  3308							 MOVEM	ARGUM
  3309	034625	260 17 0 00 053765 			 RTN]
  3310	034626	200 01 0 00 032677*		MOVE	1,ARGUM			; get sixbit command
  3311	034627	201 02 0 00 034642 		MOVEI	2,.HLCMD		; get address of cmd list
  3312	034630	260 17 0 00 034270*		GO	.COMM			; handle command decoding
  3313						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  3314							 GO	FIOFF
  3315	034631	254 00 0 00 053632 			 RTN]			; error return
  3316	034632	037 01 0 00 000026 		PFORCE				; handle Control-O
  3317	034633	200 02 0 00 000001 		MOVE	2,1			; get AC1
  3318	034634	336 03 0 01 034665 	DHELP0:	SKIPN	3,DHELP1(1)		; get address of TMSG
  3319	034635	263 17 0 00 000000 		RTN				; all done - exit
  3320	034636	256 00 0 00 000003 		XCT	3			; print it
  3321	034637	350 00 0 00 000001 		AOS	1			; point to next address
  3322	034640	322 02 0 00 034634 		JUMPE	2,DHELP0		; loop till done
  3323	034641	263 17 0 00 000000 		RTN				; exit
  3324
  3325	034642	41 54 54 00 00 00 	.HLCMD:	SIXBIT	/ALL/			; print all help info
  3326	034643	55 51 63 43 00 00 		SIXBIT	/MISC/			; print miscellaneous commands
  3327	034644	51 56 64 62 60 64 		SIXBIT	/INTRPT/		; print interrupt commands
  3328	034645	43 57 56 46 51 47 		SIXBIT	/CONFIG/		; print configuration commands
  3329	034646	62 45 63 45 64 00 		SIXBIT	/RESET/			; print reset commands
  3330	034647	63 64 41 62 64 00 		SIXBIT	/START/			; print start... commands
  3331	034650	43 63 62 00 00 00 		SIXBIT	/CSR/			; print CSR commands
  3332	034651	45 42 65 46 00 00 		SIXBIT	/EBUF/			; print EBUF commands
  3333	034652	54 41 62 00 00 00 		SIXBIT	/LAR/			; print LAR commands
  3334	034653	43 62 41 55 00 00 		SIXBIT	/CRAM/			; print CRAM commands
  3335	034654	22 31 20 21 00 00 		SIXBIT	/2901/			; print 2901 commands
  3336	034655	54 57 43 63 00 00 		SIXBIT	/LOCS/			; print local storage commands
  3337	034656	63 43 57 60 45 00 		SIXBIT	/SCOPE/			; print scope looping commands
  3338	034657	55 41 62 53 00 00 		SIXBIT	/MARK/			; print mark commands
  3339	034660	42 62 45 41 53 00 		SIXBIT	/BREAK/			; print breakpoint commands
  3340	034661	65 43 57 44 45 00 		SIXBIT	/UCODE/			; print microcode commands
  3341	034662	44 64 70 46 62 00 		SIXBIT	/DTXFR/			; print data transfer commands
  3342	034663	63 67 51 64 43 50 		SIXBIT	/SWITCH/		; print switch commands
  3343	034664	000000	000000			0				; end of list
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 76
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0263

  3344
  3345	034665	037 00 0 00 055367 	DHELP1:	TMSGCD	<DEBUG Commands:>
  3346
  3347						TMSGD	<
  3348					HELP arg    Print help
  3349					EXIT        Exit DEBUG mode
  3350					DDT         Enter DDT
  3351					SET opt arg    Set/clear/print options
  3352					TAKE file ext  Take commands from file
  3353					NTAKE file ext Take commands from file (unechoed)
  3354					TRANSL dat  Translate CSR data
  3355					CCODE       Print condition codes
  3356					ESTACK      Examine 2910 stack contents
  3357					FILLNX dat  Fill CRAM with 'J=.+1,CTL=dat'
  3358					FILLPC dat  Fill CRAM with 'J=.,CTL=dat'
  3359					ENEXT       Examine next
  3360	034666	037 00 0 00 055373 	DNEXT arg   Deposit next>
  3361
  3362						TMSGD	<
  3363					IPRINT      Print accumulated interrupt activity
  3364					ICLEAR      Clear accumulated interrupt activity
  3365	034667	037 00 0 00 055527 	IINIT       Init interrupt system>
  3366
  3367						TMSGD	<
  3368					CONFIG      Determine/print configuration
  3369					CONPNT      Print configuration
  3370	034670	037 00 0 00 055563 	SELECT      Select device to test>
  3371
  3372						TMSGD	<
  3373					RESET       Issue EBUS Reset
  3374	034671	037 00 0 00 055612 	CLEAR       Issue a 'Port Clear'>
  3375
  3376						TMSGD	<
  3377					START adr   Start the port microsequencer
  3378					STOP        Stop the port microsequencer
  3379					CONT        Continue the port microsequencer
  3380					SSTEP cnt   Single step the port microsequencer
  3381					STRACE cnt  Single step and trace execution
  3382					SPRINT cnt  Print single step history data
  3383					SCLEAR      Clear single step history data
  3384	034672	037 00 0 00 055630 	SSINIT      Set up ss addr/data/history>
  3385
  3386						TMSGD	<
  3387					ECSR        Examine CSR Register
  3388					DCSR dat    Deposit CSR Register
  3389	034673	037 00 0 00 055740 	ZCSR        Zero CSR Register>
  3390
  3391						TMSGD	<
  3392					EEBUF       Examine EBUF register
  3393					DEBUF dat   Deposit EBUF register
  3394	034674	037 00 0 00 055765 	ZEBUF       Zero EBUF register>
  3395
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 77
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0264

  3396						TMSGD	<
  3397					ELAR        Examine LAR register
  3398					DRAR dat    Deposit RAR register
  3399	034675	037 00 0 00 056012 	ZRAR        Zero RAR register>
  3400
  3401						TMSGD	<
  3402					DCRAM adr,adr  Deposit into CRAM
  3403					BCRAM adr,adr  Deposit into CRAM by fields
  3404					ACRAM adr,adr  Alter CRAM
  3405					ECRAM adr,adr  Examine CRAM
  3406					LCRAM adr,adr  List CRAM
  3407	034676	037 00 0 00 056037 	ZCRAM adr,adr  Zero CRAM>
  3408
  3409						TMSGD	<
  3410					E2901 reg,reg  Examine 2901 registers
  3411					D2901 reg,dat  Deposit 2901 register
  3412	034677	037 00 0 00 056105 	Z2901 reg,reg  Zero 2901 registers>
  3413
  3414						TMSGD	<
  3415					ELOCS adr,adr  Examine local storage
  3416					DLOCS adr,dat  Deposit local storage
  3417	034700	037 00 0 00 056135 	ZLOCS adr,adr  Zero local storage>
  3418
  3419						TMSGD	<
  3420					LCONI       Loop on CONI
  3421					LCONO dat   Loop on CONO
  3422					LDATAI      Loop on DATAI
  3423					LDATAO dat  Loop on DATAO
  3424	034701	037 00 0 00 056164 	LROUTN dat  Loop on user supplied routine at DROUTN:>
  3425
  3426						TMSGD	<
  3427					MARK adr,adr   Set mark bit
  3428					RMARK adr,adr  Remove mark bit
  3429					CMARK adr,adr  Clear all mark bits
  3430	034702	037 00 0 00 056225 	LMARK adr,adr  List mark bits>
  3431
  3432						TMSGD	<
  3433					BREAK adr,adr  Set breakpoint
  3434					RBREAK adr,adr Remove breakpoint
  3435					CBREAK adr,adr Clear all breakpoints
  3436	034703	037 00 0 00 056260 	LBREAK adr,adr List breakpoints>
  3437
  3438						TMSGD	<
  3439					LOAD tst    Load microcode from Test 'tst' into CRAM
  3440					LIST tst    List microcode from Test 'tst'
  3441					FLOAD       Load microcode from file into CRAM
  3442					FVERFY      Verify microcode loaded from file
  3443					FLIST       List microcode in file
  3444	034704	037 00 0 00 056314 	FEXAM       Examine microcode in file>
  3445
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 78
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0265

  3446						TMSGD	<
  3447					RDINIT    Initialize e/g for a read
  3448					WRINIT    Initialize e/g for a write
  3449					BPRINT n  Print buffer contents (n locations)  
  3450					CCWPNT    Print CCW list
  3451					LOGPNT    Print logout data
  3452	034705	037 00 0 00 056403 	COMPAR    Compare data buffer>
  3453
  3454						TMSGD	<
  3455					SWITCH  Enter switch information
  3456					SWPRIN  Print current switch settings
  3457					
  3458					(To complement switch setting, type switch name).
  3459					
  3460					NOPNT   LOOPER  RELIAB   TRACE   LOOPGM  DSPEAR  SDEBUG  NIPORT  MMPROC
  3461					PNTLPT  ERSTOP  TXTINH   INHFLT  LOOPTS  UDEBUG  LDEBUG  CIPORT  MCBUS
  3462	034706	037 00 0 00 056456 	DING    PALERS  OPRSEL   INHMSG  RUNALL  MDEBUG  IDEBUG>
  3463	034707	000000	000000			0
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 79
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0266

  3464
  3465					;#********************************************************************
  3466					;* DSET - Set/clear/print options
  3467					;#********************************************************************
  3468
  3469					DSET:	MOVE	1,[FMSGD <
  3470					SET ADDR    EBUF    PATLIS   WHAT
  3471					    CSR     LENGTH  FNAME    HELP
  3472	034710	200 01 0 00 056603 	    PARITY  PAT>]
  3473	034711	260 17 0 00 034623*		GO	.SARG			; get SIXBIT argument
  3474	034712	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3475						 JRST	[FMSGCD	<? Missing argument>
  3476							 GO	FIOFF
  3477	034713	254 00 0 00 054406 			 RTN]
  3478	034714	200 01 0 00 034626*		MOVE	1,ARGUM			; get sixbit command
  3479	034715	201 02 0 00 034722 		MOVEI	2,.STCMD		; get address of cmd list
  3480	034716	260 17 0 00 034630*		GO	.COMM			; handle command decoding
  3481						 JRST	[FMSGCD	<? Unrecognizable - Type ? for help>
  3482							 GO	FIOFF
  3483	034717	254 00 0 00 053632 			 RTN]			; error return
  3484	034720	260 17 1 01 034736 		GO	@.STDIS(1)		; dispatch to test
  3485	034721	263 17 0 00 000000 		RTN				; return to 'DEBUG>' prompt
  3486
  3487	034722	41 44 44 62 00 00 	.STCMD:	SIXBIT	/ADDR/			; set start address
  3488	034723	43 63 62 00 00 00 		SIXBIT	/CSR/			; set start data for CSR
  3489	034724	60 41 62 51 64 71 		SIXBIT	/PARITY/		; set/clr auto parity generation
  3490	034725	45 42 65 46 00 00 		SIXBIT	/EBUF/			; set/clr preserve EBUF
  3491	034726	54 45 56 47 64 50 		SIXBIT	/LENGTH/		; set length of data transfer
  3492	034727	60 41 64 00 00 00 		SIXBIT	/PAT/			; set data pattern
  3493	034730	46 56 41 55 45 00 		SIXBIT	/FNAME/			; set file name
  3494	034731	60 41 64 54 51 63 		SIXBIT	/PATLIS/		; list data patterns
  3495	034732	67 50 41 64 00 00 		SIXBIT	/WHAT/			; print options
  3496	034733	50 45 54 60 00 00 		SIXBIT	/HELP/			; set help message
  3497	034734	46 41 65 54 64 00 		SIXBIT	/FAULT/			; set failing test
  3498	034735	000 00 0 00 000000 		Z
  3499
  3500	034736	000000	034751		.STDIS:	DSETAD				; ADDR - set start address
  3501	034737	000000	034772			DSETCS				; CSR - set start CSR data
  3502	034740	000000	035007			DSETPR				; PARITY - set/clr auto par generation
  3503	034741	000000	035027			DSETEB				; EBUF - set/clr preserve EBUF flag
  3504	034742	000000	035047			DSETLN				; LENGTH - set buffer length
  3505	034743	000000	035067			DSETDA				; PAT - set data pattern
  3506	034744	000000	035127			DSETFN				; FNAME - set default ucode file name
  3507	034745	000000	035223			DSETPL				; PATLIS - list data patterns
  3508	034746	000000	035157			DSETWH				; WHAT - print options
  3509	034747	000000	035260			DSETHE				; HELP - set help message
  3510	034750	000000	035173			DSETFA				; FAULT - set failing test
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 80
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0267

  3511
  3512					;#********************************************************************
  3513					;* DSETAD - Set start address for START/SSTEP/CONT commands
  3514					;#********************************************************************
  3515
  3516	034751	210 01 0 00 056616 	DSETAD:	MOVN	1,[FMSGCD (SET ADDR addr (0-7777) <CR> or SET ADDR <CR>)]
  3517	034752	260 17 0 00 000000*		GO	.OARG			; get argument
  3518	034753	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3519	034754	254 00 0 00 034764 		 JRST	DSETA1			; no argument given
  3520	034755	200 00 0 00 034714*		MOVE	ARGUM			; get argument
  3521	034756	202 00 0 00 035267 		MOVEM	DSADDR			; save it
  3522	034757	301 00 0 00 000000 		CAIL	0			; out of range?
  3523	034760	303 00 0 00 007777 		CAILE	7777
  3524						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  3525							 GO	FIOFF
  3526	034761	254 00 0 00 056630 			 RTN]
  3527	034762	202 00 0 00 035267 		MOVEM	DSADDR			; no - save it
  3528	034763	263 17 0 00 000000 		RTN				; exit
  3529
  3530	034764	037 00 0 00 030242 	DSETA1:	PCRL
  3531	034765	037 00 0 00 056633 	DSETA2:	TMSG	<Start address ............. >
  3532	034766	200 00 0 00 035267 		MOVE	DSADDR
  3533	034767	037 16 0 00 000003 		PNTOCS
  3534	034770	037 00 0 00 030242 		PCRL
  3535	034771	263 17 0 00 000000 		RTN				; exit
  3536
  3537
  3538					;#********************************************************************
  3539					;* DSETCS - Set start CSR data for START/CONT commands
  3540					;#********************************************************************
  3541
  3542	034772	210 01 0 00 056651 	DSETCS:	MOVN	1,[FMSGCD (SET CSR xxxxxx <CR> or SET CSR <CR>)]
  3543	034773	260 17 0 00 034752*		GO	.OARG			; get argument
  3544	034774	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3545	034775	254 00 0 00 035001 		 JRST	DSETC1			; no argument given
  3546	034776	200 00 0 00 034755*		MOVE	ARGUM			; get argument
  3547	034777	202 00 0 00 035270 		MOVEM	DSDATA			; save it
  3548	035000	263 17 0 00 000000 		RTN				; exit
  3549
  3550	035001	037 00 0 00 030242 	DSETC1:	PCRL
  3551	035002	037 00 0 00 056652 	DSETC2:	TMSG	<Start CSR data ............ >
  3552	035003	200 00 0 00 035270 		MOVE	DSDATA
  3553	035004	037 16 0 00 000003 		PNTOCS
  3554	035005	037 00 0 00 030242 		PCRL
  3555	035006	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 81
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0268

  3556
  3557					;#********************************************************************
  3558					;* DSETPR - Set/clear automatic parity generation for load cram command
  3559					;#********************************************************************
  3560
  3561	035007	210 01 0 00 056670 	DSETPR:	MOVN	1,[FMSGCD (SET PAR NO or YES or SET PAR <CR>)]
  3562	035010	260 17 0 00 034711*		GO	.SARG			; get argument
  3563	035011	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3564	035012	254 00 0 00 035020 		 JRST	DSETP1			; no argument given
  3565	035013	260 17 0 00 000000*		GO	DECYN			; decode argument Y or N
  3566	035014	263 17 0 00 000000 		 RTN				; error - unrecognized
  3567						JRST	[SETZM	PARFLG		; no - clear the flag
  3568	035015	254 00 0 00 056671 			 RTN]
  3569	035016	476 00 0 00 035271 		SETOM	PARFLG			; yes - set it
  3570	035017	263 17 0 00 000000 		RTN				; exit
  3571
  3572	035020	037 00 0 00 030242 	DSETP1:	PCRL
  3573	035021	037 00 0 00 056673 	DSETP2:	TMSG	<Auto parity generation .... >
  3574	035022	332 00 0 00 035271 		SKIPE	PARFLG			; set?
  3575	035023	037 00 0 00 056701 		TMSGD	<YES>
  3576	035024	336 00 0 00 035271 		SKIPN	PARFLG			; set?
  3577	035025	037 00 0 00 056703 		TMSGD	<NO>
  3578	035026	263 17 0 00 000000 		RTN				; return
  3579
  3580
  3581					;#********************************************************************
  3582					;* DSETEB - Set/clear preserve EBUF for single stepping
  3583					;#********************************************************************
  3584
  3585	035027	210 01 0 00 056714 	DSETEB:	MOVN	1,[FMSGCD (SET EBUF NO or YES or SET EBUF <CR>)]
  3586	035030	260 17 0 00 035010*		GO	.SARG			; get argument
  3587	035031	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3588	035032	254 00 0 00 035040 		 JRST	DSETE1			; no argument given
  3589	035033	260 17 0 00 035013*		GO	DECYN			; decode argument Y or N
  3590	035034	263 17 0 00 000000 		 RTN				; error - unrecognized
  3591						JRST	[SETZM	PRSFLG		; no - clear the flag
  3592	035035	254 00 0 00 056715 			 RTN]
  3593	035036	476 00 0 00 035272 		SETOM	PRSFLG			; yes - set it
  3594	035037	263 17 0 00 000000 		RTN				; exit
  3595
  3596	035040	037 00 0 00 030242 	DSETE1:	PCRL
  3597	035041	037 00 0 00 056717 	DSETE2:	TMSG	<EBUF preserved in sstep ... >
  3598	035042	332 00 0 00 035272 		SKIPE	PRSFLG			; set?
  3599	035043	037 00 0 00 056701 		TMSGD	<YES>
  3600	035044	336 00 0 00 035272 		SKIPN	PRSFLG			; set?
  3601	035045	037 00 0 00 056703 		TMSGD	<NO>
  3602	035046	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 82
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0269

  3603
  3604					;#********************************************************************
  3605					;* DSETLN - Set length of data transfer
  3606					;#********************************************************************
  3607
  3608	035047	210 01 0 00 056737 	DSETLN:	MOVN	1,[FMSGCD (SET LEN length (1-102400.) or SET LEN <CR>)]
  3609	035050	260 17 0 00 032674*		GO	.DARG			; get argument
  3610	035051	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3611	035052	254 00 0 00 035061 		 JRST	DSETL1			; no argument given
  3612	035053	200 00 0 00 034776*		MOVE	ARGUM			; get argument
  3613	035054	303 00 0 00 000000 		CAILE	0			; argument in range 1-102400?
  3614	035055	303 00 0 00 310000 		CAILE	^D102400
  3615						JRST	[FMSGCD	<? Out of range 1-102400. words>
  3616							 GO	FIOFF
  3617	035056	254 00 0 00 056747 			 RTN]
  3618	035057	202 00 0 00 035273 		MOVEM	DSWORD			; save it
  3619	035060	263 17 0 00 000000 		RTN				; exit
  3620
  3621	035061	037 00 0 00 030242 	DSETL1:	PCRL
  3622	035062	037 00 0 00 056752 	DSETL2:	TMSG	<Buffer length (words) ..... >
  3623	035063	200 00 0 00 035273 		MOVE	DSWORD
  3624	035064	037 15 0 00 000000 		PNTDEC
  3625	035065	037 00 0 00 054465 		TMSGD	<.>
  3626	035066	263 17 0 00 000000 		RTN				; exit
  3627
  3628
  3629					;#********************************************************************
  3630					;* DSETDA - Set data pattern to insert in buffer
  3631					;#********************************************************************
  3632
  3633	035067	200 01 0 00 056775 	DSETDA:	MOVE	1,[FMSGCD (SET PAT number (1-126 octal)(126=opr sel) or SET PAT <CR>)]
  3634	035070	260 17 0 00 034773*		GO	.OARG			; get argument
  3635	035071	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3636	035072	254 00 0 00 035114 		 JRST	DSETD1			; no argument given
  3637	035073	200 00 0 00 035053*		MOVE	ARGUM			; get argument
  3638	035074	301 00 0 00 000001 		CAIL	1			; in range?
  3639	035075	303 00 0 00 000126 		CAILE	126
  3640						JRST	[FMSGCD	<? Out of range 1-126 octal>
  3641							 GO	FIOFF
  3642	035076	254 00 0 00 057005 			 RTN]
  3643	035077	202 00 0 00 035274 		MOVEM	DSPAT			; save it
  3644	035100	302 00 0 00 000126 		CAIE	126			; operator selected pattern?
  3645	035101	254 00 0 00 035110 		JRST	DSETDX			; no - exit
  3646	035102	200 01 0 00 057016 		MOVE	1,[FMSGCD <SET PAT 126,data (CR)>]
  3647	035103	260 17 0 00 035070*		GO	.OARG			; get argument
  3648	035104	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3649						 JRST	[FMSGCD	<? Missing argument>
  3650							 GO	FIOFF
  3651	035105	254 00 0 00 054406 			 RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 83
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0270

  3652	035106	200 00 0 00 035073*		MOVE	ARGUM			; get argument
  3653	035107	202 00 0 00 035275 		MOVEM	DSTPAT			; save it
  3654	035110	260 17 0 00 000000*	DSETDX:	GO	LASARG			; check for last argument
  3655	035111	263 17 0 00 000000 		RTN				; exit
  3656	035112	037 01 0 00 057010 		FMSGCD	<SET PAT 126,data (CR)>
  3657	035113	263 17 0 00 000000 		RTN				; exit
  3658
  3659	035114	037 00 0 00 030242 	DSETD1:	PCRL
  3660	035115	037 00 0 00 057017 	DSETD2:	TMSG	<Data pattern (#) .......... >
  3661	035116	200 01 0 00 035274 		MOVE	1,DSPAT			; get pattern
  3662	035117	256 00 0 01 000000*		XCT	PATPNT(1)		;  ...
  3663	035120	302 01 0 00 000126 		CAIE	1,126			; operator selected pattern?
  3664	035121	254 00 0 00 035125 		JRST	DSETD3			; no - continue
  3665	035122	037 00 0 00 053451 		TMSG	< - >			; yes - print it out
  3666	035123	200 00 0 00 035275 		MOVE	DSTPAT
  3667	035124	037 13 0 00 000000 		PNTHW
  3668	035125	037 00 0 00 030242 	DSETD3:	PCRL
  3669	035126	263 17 0 00 000000 		RTN				; exit
  3670
  3671
  3672					;#********************************************************************
  3673					;* DSETFN - Set default microcode file name
  3674					;#********************************************************************
  3675
  3676	035127	200 01 0 00 057037 	DSETFN:	MOVE	1,[FMSGCD (SET FNAME file ext <CR> or SET FNAME <CR>)]
  3677	035130	260 17 0 00 035030*		GO	.SARG			; get argument (file name)
  3678	035131	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3679	035132	254 00 0 00 035146 		 JRST	DSETF1			; no argument - print it out
  3680	035133	200 00 0 00 035106*		MOVE	ARGUM			; get argument
  3681	035134	202 00 0 00 064403'		MOVEM	TMP1			; save it
  3682	035135	210 01 0 00 057037 		MOVN	1,[FMSGCD (SET FNAME file ext <CR> or SET FNAME <CR>)]
  3683	035136	260 17 0 00 035130*		GO	.SARG			; get argument (extension)
  3684	035137	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3685	035140	254 00 0 00 035143 		 JRST	DSETF0			; no extension given - exit
  3686	035141	200 00 0 00 035133*		MOVE	ARGUM			; get 2nd argument
  3687	035142	202 00 0 00 000000#		MOVEM	UNAME+1			; save it
  3688	035143	200 00 0 00 064403'	DSETF0:	MOVE	TMP1			; get first argument
  3689	035144	202 00 0 00 000000*		MOVEM	UNAME			; save it
  3690	035145	263 17 0 00 000000 		RTN				; return
  3691
  3692	035146	037 00 0 00 030242 	DSETF1:	PCRL
  3693	035147	037 00 0 00 057040 	DSETF2:	TMSG	<Microcode file name ....... >
  3694	035150	200 00 0 00 035144*		MOVE	UNAME			; get name
  3695	035151	037 00 0 00 000002 		PNTSIX				; print it
  3696	035152	037 00 0 00 057046 		TMSG	<.>
  3697	035153	200 00 0 00 000000#		MOVE	UNAME+1			; get extension
  3698	035154	037 00 0 00 000002 		PNTSIX				; print it
  3699	035155	037 00 0 00 030242 		PCRL
  3700	035156	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 84
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0271

  3701
  3702					;#********************************************************************
  3703					;* DSETWH - Print all selected options
  3704					;#********************************************************************
  3705
  3706	035157	260 17 0 00 035110*	DSETWH:	GO	LASARG			; check for last argument
  3707	035160	263 17 0 00 000000 		RTN				; error - exit
  3708						JRST	[FMSGCD	(SET WHAT <CR>)	; ? typed - print msg and
  3709	035161	254 00 0 00 057053 			 RTN]			;   return
  3710	035162	037 00 0 00 057055 		TMSGCD	<Options:>
  3711	035163	260 17 0 00 034764 		GO	DSETA1			; print address
  3712	035164	260 17 0 00 035002 		GO	DSETC2			; print CSR data
  3713	035165	260 17 0 00 035021 		GO	DSETP2			; print parity flag
  3714	035166	260 17 0 00 035041 		GO	DSETE2			; print EBUF flag
  3715	035167	260 17 0 00 035062 		GO	DSETL2			; print length
  3716	035170	260 17 0 00 035115 		GO	DSETD2			; print data pattern
  3717	035171	260 17 0 00 035147 		GO	DSETF2			; print file name selected
  3718	035172	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 85
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0272

  3719
  3720					;#********************************************************************
  3721					;* DSETFA - Set failing network
  3722					;#********************************************************************
  3723
  3724					DSETFA:	MOVE	1,[FMSGCD (SET FAULT network # <CR> or SET FAULT <CR>
  3725					Where 1-30 = E1-E30
  3726					     31-53 = M1-M23
  3727	035173	200 01 0 00 057107 	     54-103 = C1-C30)]
  3728	035174	260 17 0 00 035103*		GO	.OARG			; get argument (network number)
  3729	035175	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3730	035176	254 00 0 00 035205 		 JRST	DSETB1			; no argument - print it out
  3731	035177	200 01 0 00 035141*		MOVE	1,ARGUM			; get argument
  3732	035200	301 01 0 00 000001 		CAIL	1,1			; in range 1-103 octal?
  3733	035201	303 01 0 00 000103 		CAILE	1,103
  3734						JRST	[TMSGCD	<? Network number out of range 1-103>
  3735							 GO	FIOFF
  3736	035202	254 00 0 00 057120 			 RTN]
  3737	035203	202 01 0 00 046326 		MOVEM	1,FLTNUM		; save network number
  3738	035204	263 17 0 00 000000 		RTN				; return
  3739
  3740	035205	037 00 0 00 057123 	DSETB1:	TMSGC	<Failing network ........... >
  3741	035206	200 00 0 00 046326 		MOVE	FLTNUM			; get network number
  3742	035207	037 16 0 00 000003 		PNTOCS				; print it
  3743	035210	200 01 0 00 046326 		MOVE	1,FLTNUM		; get network number
  3744	035211	307 01 0 00 000030 		CAIG	1,30			; EBUS network?
  3745						PJRST	[TMSG	< - E>		; yes - print it
  3746							 MOVE	1
  3747							 PNTOCS
  3748							 PCRL
  3749	035212	254 00 0 00 057133 			 RTN]
  3750	035213	307 01 0 00 000053 		CAIG	1,53			; MPROC network?
  3751						PJRST	[TMSG	< - M>		; yes - print it
  3752							 MOVE	1
  3753							 SUBI	30
  3754							 PNTOCS
  3755							 PCRL
  3756	035214	254 00 0 00 057141 			 RTN]
  3757	035215	037 00 0 00 057147 		TMSG	< - C>			; print CBUS network
  3758	035216	200 00 0 00 000001 		MOVE	1
  3759	035217	275 00 0 00 000053 		SUBI	53
  3760	035220	037 16 0 00 000003 		PNTOCS
  3761	035221	037 00 0 00 030242 		PCRL
  3762	035222	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 86
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0273

  3763
  3764					;#********************************************************************
  3765					;* DSETPL - List data patterns
  3766					;#********************************************************************
  3767
  3768	035223	200 01 0 00 057161 	DSETPL:	MOVE	1,[FMSGCD <SET PATLIS num1,num2 or SET PATLIS (CR)>]
  3769	035224	260 17 0 00 035174*		GO	.OARG			; get argument
  3770	035225	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3771						 JRST	[MOVE	PAT,DSPAT	; no argument - just print
  3772							 MOVEM	PAT,PAT1#	;   current selection
  3773							 MOVEM	PAT,PAT2#
  3774	035226	254 00 0 00 057162 			 JRST	DSETPP]
  3775	035227	200 00 0 00 035177*		MOVE	ARGUM			; get argument
  3776	035230	202 00 0 00 064361'		MOVEM	PAT1#			; save it
  3777
  3778	035231	200 01 0 00 057161 		MOVE	1,[FMSGCD <SET PATLIS num1,num2 or SET PATLIS (CR)>]
  3779	035232	260 17 0 00 035224*		GO	.OARG			; get argument
  3780	035233	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3781						 JRST	[MOVE	PAT,PAT1	; no 2nd argument - just print
  3782							 MOVEM	PAT,PAT2	;   one translation
  3783	035234	254 00 0 00 057166 			 JRST	DSETPP]
  3784	035235	200 00 0 00 035227*		MOVE	ARGUM			; get argument
  3785	035236	202 00 0 00 064362'		MOVEM	PAT2			; save it
  3786	035237	200 01 0 00 064362'		MOVE	1,PAT2			; get argument
  3787	035240	274 01 0 00 064361'		SUB	1,PAT1			; see if range ok
  3788						JUMPL	1,[FMSGCD <? Range nonsensical>
  3789							 GO	FIOFF
  3790	035241	321 01 0 00 057176 			 RTN]
  3791
  3792	035242	200 14 0 00 064361'	DSETPP:	MOVE	PAT,PAT1		; get pattern
  3793	035243	301 14 0 00 000001 		CAIL	PAT,1			; in range?
  3794	035244	303 14 0 00 000126 		CAILE	PAT,126
  3795						JRST	[FMSGCD	<? Out of range 1-126 octal>
  3796							 GO	FIOFF
  3797	035245	254 00 0 00 057005 			 RTN]
  3798	035246	037 00 0 00 030242 		PCRL
  3799	035247	256 00 0 14 035117*		XCT	PATPNT(PAT)		; print it
  3800	035250	350 00 0 00 000014 		AOS	PAT			; increment pattern number
  3801	035251	037 07 0 00 000003 		TTALTM				; altmode typed?
  3802	035252	334 00 0 00 000000 		SKIPA				; no - continue
  3803	035253	254 00 0 00 035256 		JRST	DSETPX			; yes - return
  3804	035254	317 14 0 00 064362'		CAMG	PAT,PAT2		; done yet?
  3805	035255	254 00 0 00 035243 		JRST	DSETPP+1		; no - loop till done
  3806	035256	037 00 0 00 030243 	DSETPX:	PCRL2				; final CRLF
  3807	035257	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 87
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0274

  3808
  3809					;#********************************************************************
  3810					;* DSETHE - Set help message
  3811					;#********************************************************************
  3812
  3813	035260	200 01 0 00 057205 	DSETHE:	MOVE	1,[FMSGCD (SET HELP <CR>)]
  3814	035261	260 17 0 00 034204*		GO	CHKARG			; check for argument
  3815	035262	263 17 0 00 000000 		RTN				; error - exit
  3816	035263	037 01 0 00 000026 		PFORCE				; handle Control-O
  3817	035264	037 00 1 00 035266 		PNTMSG	@DSETHL			; print text
  3818	035265	263 17 0 00 000000 		RTN				; exit
  3819
  3820	035266				DSETHL:	[ASCIZ	^
  3821					SET Command:
  3822
  3823					SET ADDR adr    - set start address
  3824					SET CSR data    - set start CSR data
  3825					SET PARITY arg* - set/clr auto par generation
  3826					SET EBUF arg*   - set/clr preserve EBUF flag
  3827					SET LENGTH len  - set buffer length
  3828					SET PAT n       - set data pattern
  3829					SET FNAME name ext - set default ucode file name
  3830					SET PATLIS arg  - list data patterns
  3831					SET WHAT        - print options
  3832					SET HELP        - print this
  3833
  3834					* Arg - YES or NO
  3835	035266	000000	057206		^]
  3836
  3837
  3838					;#********************************************************************
  3839					;* Program Flags
  3840					;#********************************************************************
  3841
  3842	035267	000000	000000		DSADDR:	0				; start address initially zero
  3843	035270	000000	000000		DSDATA:	0				; start data initially zero
  3844
  3845	035271	777777	777777		PARFLG:	-1				; 'automatic parity generation' flag
  3846	035272	777777	777777		PRSFLG:	-1				; 'preserve EBUF' flag
  3847
  3848	035273	000000	000200		DSWORD:	^D128				; buffer length
  3849
  3850	035274	000000	000001		DSPAT:	1				; data pattern
  3851	035275	000000	000000		DSTPAT:	0				; operator select pattern
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 88
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0275

  3852
  3853					;#*********************************************************************
  3854					;* DECSR - Examine CSR register
  3855					;#*********************************************************************
  3856
  3857	035276	200 01 0 00 057340 	DECSR:	MOVE	1,[FMSGCD (ECSR <CR>)]
  3858	035277	260 17 0 00 035261*		GO	CHKARG			; check for argument
  3859	035300	263 17 0 00 000000 		RTN				; error - exit
  3860	035301	260 17 0 00 032162*		GO	RDCSR			; read the CSR register
  3861	035302	037 00 0 00 057341 		 TMSGC	<[Rdcsr failed]>	; error return
  3862	035303	260 17 0 00 043215 		GO	CSRPNT			; print CSR data
  3863	035304	037 00 0 00 030242 		PCRL				; end of line
  3864	035305	263 17 0 00 000000 		RTN				; return
  3865
  3866
  3867					;#*********************************************************************
  3868					;* DDCSR - Deposit CSR register
  3869					;#*********************************************************************
  3870
  3871	035306	210 01 0 00 057352 	DDCSR:	MOVN	1,[FMSGCD (DCSR xxxxxx <CR>)]
  3872	035307	260 17 0 00 035232*		GO	.OARG			; get argument
  3873	035310	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3874						 JRST	[FMSGCD	<? Missing argument>
  3875							 GO	FIOFF
  3876	035311	254 00 0 00 054406 			 RTN]
  3877	035312	200 01 0 00 035235*		MOVE	1,ARGUM			; get argument
  3878	035313	260 17 0 00 000000*		GO	LDCSR			; write it
  3879	035314	263 17 0 00 000000 		RTN				; return
  3880
  3881
  3882					;#*********************************************************************
  3883					;* DZCSR - Zero CSR register
  3884					;#*********************************************************************
  3885
  3886	035315	200 01 0 00 057356 	DZCSR:	MOVE	1,[FMSGCD (ZCSR <CR>)]
  3887	035316	260 17 0 00 035277*		GO	CHKARG			; check for argument
  3888	035317	263 17 0 00 000000 		RTN				; error - exit
  3889	035320	400 01 0 00 000000 		SETZ	1,			; clear data
  3890	035321	260 17 0 00 035313*		GO	LDCSR			; write it
  3891	035322	263 17 0 00 000000 		RTN				; return
  3892
  3893
  3894					;#*********************************************************************
  3895					;* DCONI - Loop on CONI's
  3896					;#*********************************************************************
  3897
  3898	035323	200 01 0 00 057362 	DCONI:	MOVE	1,[FMSGCD (LCONI <CR>)]
  3899	035324	260 17 0 00 035316*		GO	CHKARG			; check for argument
  3900	035325	263 17 0 00 000000 		RTN				; error - exit
  3901	035326	260 17 0 00 035301*	DCONI1:	GO	RDCSR			; read the CSR register
  3902	035327	255 00 0 00 000000 		 JFCL				; error return
  3903	035330	037 07 0 00 000003 		TTALTM				; altmode typed?
  3904	035331	254 00 0 00 035326 		JRST	DCONI1			; no - keep looping
  3905	035332	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 89
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0276

  3906
  3907					;#*********************************************************************
  3908					;* DCONO - Loop on CONO's
  3909					;#*********************************************************************
  3910
  3911	035333	210 01 0 00 057370 	DCONO:	MOVN	1,[FMSGCD (LCONO xxxxxx <CR>)]
  3912	035334	260 17 0 00 035307*		GO	.OARG			; get argument
  3913	035335	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3914						 JRST	[FMSGCD	<? Missing argument>
  3915							 GO	FIOFF
  3916	035336	254 00 0 00 054406 			 RTN]
  3917	035337	200 01 0 00 035312*	DCONO1:	MOVE	1,ARGUM			; get argument
  3918	035340	260 17 0 00 035321*		GO	LDCSR			; write it
  3919	035341	037 07 0 00 000003 		TTALTM				; altmode typed?
  3920	035342	254 00 0 00 035337 		JRST	DCONO1			; no - keep looping
  3921	035343	263 17 0 00 000000 		RTN				; return
  3922
  3923
  3924					;#********************************************************************
  3925					;* DDATI - Loop on DATAI's
  3926					;#********************************************************************
  3927
  3928	035344	200 01 0 00 057375 	DDATI:	MOVE	1,[FMSGCD (LDATAI <CR>)]
  3929	035345	260 17 0 00 035324*		GO	CHKARG			; check for argument
  3930	035346	263 17 0 00 000000 		RTN				; error - exit
  3931	035347	260 17 0 00 000000*	DDATI1:	GO	RDEBUF			; do a DATAI
  3932	035350	037 07 0 00 000003 		TTALTM				; altmode typed?
  3933	035351	254 00 0 00 035347 		JRST	DDATI1			; no - keep looping
  3934	035352	263 17 0 00 000000 		RTN				; return
  3935
  3936
  3937					;#********************************************************************
  3938					;* DDATO - Loop on DATAO's
  3939					;#********************************************************************
  3940
  3941	035353	210 01 0 00 057403 	DDATO:	MOVN	1,[FMSGCD (LDATAO xxxxxx <CR>)]
  3942	035354	260 17 0 00 035334*		GO	.OARG			; get argument
  3943	035355	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3944						 JRST	[FMSGCD	<? Missing argument>
  3945							 GO	FIOFF
  3946	035356	254 00 0 00 054406 			 RTN]
  3947	035357	200 01 0 00 035337*	DDATO1:	MOVE	1,ARGUM			; get argument
  3948	035360	260 17 0 00 000000*		GO	LDEBUF			; do a DATAO
  3949	035361	037 07 0 00 000003 		TTALTM				; altmode typed?
  3950	035362	254 00 0 00 035357 		JRST	DDATO1			; no - keep looping
  3951	035363	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 90
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0277

  3952
  3953					;#********************************************************************
  3954					;* DROUTN - Routine to do special diagnostic loop
  3955					;#********************************************************************
  3956
  3957	035364	210 01 0 00 057412 	DROUTN:	MOVN	1,[FMSGCD (LROUTN xxxxxxxxxxxx <CR>)]
  3958	035365	260 17 0 00 035354*		GO	.OARG			; get argument
  3959	035366	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  3960	035367	255 00 0 00 000000 		 JFCL
  3961	035370	260 17 0 00 000000*	DROUT1:	GO	IPACLR			; do a 'port clear'
  3962	035371	255 00 0 00 000000 		JFCL
  3963	035372	255 00 0 00 000000 		JFCL
  3964	035373	255 00 0 00 000000 		JFCL
  3965	035374	255 00 0 00 000000 		JFCL
  3966	035375	255 00 0 00 000000 		JFCL
  3967	035376	255 00 0 00 000000 		JFCL
  3968	035377	255 00 0 00 000000 		JFCL
  3969	035400	255 00 0 00 000000 		JFCL
  3970	035401	255 00 0 00 000000 		JFCL
  3971	035402	255 00 0 00 000000 		JFCL
  3972	035403	255 00 0 00 000000 		JFCL
  3973	035404	255 00 0 00 000000 		JFCL
  3974	035405	255 00 0 00 000000 		JFCL
  3975	035406	255 00 0 00 000000 		JFCL
  3976	035407	255 00 0 00 000000 		JFCL
  3977	035410	037 07 0 00 000003 		TTALTM				; check for altmode typed
  3978	035411	254 00 0 00 035370 		JRST	DROUT1			; no - keep looping
  3979	035412	263 17 0 00 000000 		RTN				; yes - return
  3980
  3981
  3982					;#********************************************************************
  3983					;* DRESET - Issue an EBUS Reset
  3984					;#********************************************************************
  3985
  3986	035413	200 01 0 00 057416 	DRESET:	MOVE	1,[FMSGCD (RESET <CR>)]
  3987	035414	260 17 0 00 035345*		GO	CHKARG			; check for argument
  3988	035415	263 17 0 00 000000 		RTN				; error - exit
  3989	035416	260 17 0 00 000000*		GO	ERESET
  3990	035417	263 17 0 00 000000 		RTN				; return
  3991
  3992
  3993					;#********************************************************************
  3994					;* DCLEAR - Issue a 'Port Clear'
  3995					;#********************************************************************
  3996
  3997	035420	200 01 0 00 057422 	DCLEAR:	MOVE	1,[FMSGCD (CLEAR <CR>)]
  3998	035421	260 17 0 00 035414*		GO	CHKARG			; check for argument
  3999	035422	263 17 0 00 000000 		RTN				; error - exit
  4000	035423	260 17 0 00 035370*		GO	IPACLR			; do a 'port clear'
  4001	035424	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 91
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0278

  4002
  4003					;#********************************************************************
  4004					;* DSINIT - Set up start addr/data/history prior to single step command
  4005					;#********************************************************************
  4006
  4007	035425	200 01 0 00 057427 	DSINIT:	MOVE	1,[FMSGCD (SSINIT <CR>)]
  4008	035426	260 17 0 00 035421*		GO	CHKARG			; check for argument
  4009	035427	263 17 0 00 000000 		RTN				; error - exit
  4010	035430	200 00 0 00 035267 		MOVE	DSADDR			; get start address
  4011	035431	202 00 0 00 000000*		MOVEM	SNEXT			; save it for IPASST
  4012	035432	200 00 0 00 035270 		MOVE	DSDATA			; get start CSR data
  4013	035433	202 00 0 00 000000*		MOVEM	SDATA			; save it for IPASST
  4014	035434	260 17 0 00 034764 		GO	DSETA1			; print start address
  4015	035435	260 17 0 00 035002 		GO	DSETC2			; print start data
  4016	035436	260 17 0 00 035601 		GO	DSSCLR			; clear sstep history
  4017	035437	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 92
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0279

  4018
  4019					;#********************************************************************
  4020					;* DSTART - Start the port
  4021					;
  4022					; Arguments set up:
  4023					;
  4024					; DSADDR - Current start address which has been specified by either a
  4025					;	   'SETADD' command, or as an argument to the 'START' command.
  4026					; DSDATA - Current start CSR data specified by a 'SETCSR' command.
  4027					;
  4028					; Arguments set up for IPASST:
  4029					;
  4030					; SNEXT - Contents of DSADDR is used.
  4031					; SLAST - Contents of DSADDR is used.
  4032					; SDATA - Contents of DSDATA is used.
  4033					;#********************************************************************
  4034
  4035	035440	210 01 0 00 057437 	DSTART:	MOVN	1,[FMSGCD (START addr <CR> or START <CR>)]
  4036	035441	260 17 0 00 035365*		GO	.OARG			; get start address
  4037	035442	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4038	035443	334 01 0 00 035267 		 SKIPA	1,DSADDR		; no argument given
  4039
  4040					; Start it up
  4041
  4042	035444	260 17 0 00 000000*	DSTAR0:	GO	ISTOP			; stop the port
  4043	035445	200 01 0 00 035357*		MOVE	1,ARGUM			; get argument
  4044	035446	202 01 0 00 035431*		MOVEM	1,SNEXT			; set it up
  4045	035447	202 00 0 00 000000*		MOVEM	SLAST			; set it up
  4046	035450	200 00 0 00 035270 		MOVE	DSDATA			; get start data
  4047	035451	202 00 0 00 035433*		MOVEM	SDATA			; set it up
  4048	035452	260 17 0 00 000000*		GO	IPASRT			; start it up
  4049						 JRST	[FMSGCD	<? Error accessing CSR register>
  4050							 GO	FIOFF
  4051	035453	254 00 0 00 057447 			 RTN]
  4052						 JRST	[FMSGCD	<? Port not stopped>
  4053							 GO	FIOFF
  4054	035454	254 00 0 00 057457 			 RTN]
  4055	035455	334 00 0 00 000000 		 SKIPA				; error - Error bits set in CSR
  4056	035456	263 17 0 00 000000 		RTN				; exit
  4057	035457	037 01 0 00 057462 		FMSGCD	<? START failed - Error bits set in CSR>
  4058	035460	260 17 0 00 035326*		GO	RDCSR			; read CSR register
  4059	035461	255 00 0 00 000000 		JFCL				; ignore error
  4060	035462	260 17 0 00 043215 		GO	CSRPNT			; print CSR register
  4061	035463	037 00 0 00 030242 		PCRL				; end of line
  4062	035464	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 93
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0280

  4063
  4064					;#********************************************************************
  4065					;* DSTOP - Stop the port
  4066					;
  4067					; Arguments set by IPASTP:
  4068					;
  4069					; SNEXT - Set to stopping address.
  4070					; SDATA - Set to contents of CSR register.
  4071					;#********************************************************************
  4072
  4073	035465	200 01 0 00 057476 	DSTOP:	MOVE	1,[FMSGCD (STOP <CR>)]
  4074	035466	260 17 0 00 035426*		GO	CHKARG			; check for argument
  4075	035467	263 17 0 00 000000 		RTN				; error - exit
  4076	035470	260 17 0 00 000000*		GO	IPASTP			; stop it and get final address
  4077						 JRST	[FMSGCD	<? Error accessing CSR register>
  4078							 GO	FIOFF
  4079	035471	254 00 0 00 057447 			 RTN]
  4080						 JRST	[FMSGCD	<? Port not running>
  4081							 GO	FIOFF
  4082	035472	254 00 0 00 057504 			 RTN]
  4083	035473	254 00 0 00 035500 		 JRST	DSTOP1			; error - Error bits set in CSR
  4084	035474	037 00 0 00 057507 		TMSGC	<Port stopped.  Last Adr = >
  4085	035475	200 00 0 00 035446*		MOVE	SNEXT			; print it out
  4086	035476	037 04 0 00 000000 		PNT4
  4087	035477	334 00 0 00 000000 		SKIPA
  4088	035500	037 01 0 00 057515 	DSTOP1:	FMSGCD	<? Stop failed - Error bits set in CSR>
  4089	035501	200 01 0 00 035451*		MOVE	1,SDATA			; get CSR data
  4090	035502	260 17 0 00 043215 		GO	CSRPNT			; print CSR register
  4091	035503	037 00 0 00 030242 		PCRL				; end of line
  4092	035504	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 94
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0281

  4093
  4094					;#********************************************************************
  4095					;* DSSTEP - Single step the port
  4096					;* DTRACE - Single step the port and trace progress
  4097					;
  4098					; Arguments set up for IPASST:
  4099					;
  4100					; SNEXT - This is the address last set up by another single step
  4101					;	  command or by a SETSTR (set up start data) command.
  4102					;	  After each single step the LAR is read.  The contents
  4103					;	  of the LAR are put in SNEXT.
  4104					;
  4105					; SLAST - This is the address last executed.  SNEXT is put in this
  4106					;	  location before each single step
  4107					;
  4108					; SDATA - This is the data last set up by another single step
  4109					;	  command or by a SETSTR (set up start data) command.
  4110					;
  4111					; Both of these routines store single step data in a ring buffer which
  4112					; can be examined with a SPRINT command.  This is useful in debugging
  4113					; a microcode routine and instead of single stepping and tracing, you
  4114					; single step 500 times or until an error occurs, then examine last x
  4115					; locations to see what happened.
  4116					;#********************************************************************
  4117
  4118	035505	210 01 0 00 057537 	DTRACE:	MOVN	1,[FMSGCD (STRACE RepeatCount <CR> or STRACE <CR>)]
  4119	035506	476 00 0 00 064335'		SETOM	DTRFLG			; set trace flag
  4120	035507	254 00 0 00 035512 		JRST	DTRAC0			; continue
  4121
  4122	035510	402 00 0 00 064335'	DSSTEP:	SETZM	DTRFLG#			; clear trace flag
  4123	035511	210 01 0 00 057551 		MOVN	1,[FMSGCD (SSTEP RepeatCount <CR> or SSTEP <CR>)]
  4124
  4125	035512	402 00 0 00 035445*	DTRAC0:	SETZM	ARGUM			; set default argument
  4126	035513	350 00 0 00 035512*		AOS	ARGUM			;   to 1 single step
  4127	035514	260 17 0 00 035050*		GO	.DARG			; get argument
  4128	035515	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4129	035516	255 00 0 00 000000 		 JFCL				; no argument given
  4130	035517	260 17 0 00 035444*		GO	ISTOP			; stop the port
  4131	035520	200 02 0 00 035513*		MOVE	2,ARGUM			; get argument
  4132	035521	400 04 0 00 000000 		SETZ	4,			; clear count of single steps
  4133	035522	332 00 0 00 064335'		SKIPE	DTRFLG			; trace flag set?
  4134	035523	037 00 0 00 057552 		TMSGCD	< RAR   LAR   CSR (final)  SS#>
  4135
  4136					; Single step
  4137
  4138	035524	350 00 0 00 000004 	DSST0:	AOS	4			; increment count
  4139	035525	200 01 0 00 035272 		MOVE	1,PRSFLG		; get preserve EBUF flag
  4140	035526	200 00 0 00 035501*		MOVE	SDATA			; get initial CSR data
  4141	035527	202 00 0 00 064400'		MOVEM	SLDATA#			; save initial CSR data
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 95
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0282

  4142	035530	260 17 0 00 000000*		GO	IPASST			; single step once
  4143						 JRST	[FMSGCD	<? Error accessing CSR register>
  4144							 GO	FIOFF
  4145	035531	254 00 0 00 057447 			 RTN]
  4146						 JRST	[FMSGCD	<? Port not stopped>
  4147							 GO	FIOFF
  4148	035532	254 00 0 00 057457 			 RTN]
  4149						 JRST	[GO	SAVHST
  4150							 TMSGC	<[Error bits set in CSR]> 
  4151							 SKIPE	DTRFLG
  4152							 JRST	DSSTX
  4153							 TMSGC	<[>
  4154							 MOVE	4
  4155							 PNTOCS
  4156							 TMSGD	< ssteps done]>
  4157	035533	254 00 0 00 057574 			 JRST	DSSTX]
  4158	035534	260 17 0 00 037030 		GO	SAVHST			; save data for sstep history
  4159
  4160					; If tracing is being done
  4161
  4162	035535	200 01 0 00 035610 		MOVE	1,SSLOC			; get history location
  4163	035536	332 00 0 00 064335'		SKIPE	DTRFLG			; tracing being done?
  4164	035537	260 17 0 00 037011 		GO	PNTHST			; yes - print it
  4165
  4166					; Altmode and exit checking
  4167
  4168	035540	037 07 0 00 000003 	DSST1:	TTALTM				; altmode key struck?
  4169	035541	334 00 0 00 000000 		SKIPA				; no - proceed
  4170						JRST	[PCRL			; yes - print some final
  4171							 SKIPE	DTRFLG		;    data and exit
  4172							 RTN
  4173							 TMSG	<[>
  4174							 MOVE	4
  4175							 PNTOCS
  4176							 TMSGD	< ssteps done]>
  4177	035542	254 00 0 00 057606 			 JRST	DSSTX]
  4178	035543	367 02 0 00 035524 		SOJG	2,DSST0			; loop till done
  4179
  4180					; Exit
  4181
  4182	035544	037 00 0 00 057616 	DSSTX:	TMSGC	<LAR Last/>		; print LAR data
  4183	035545	200 00 0 00 035447*		MOVE	SLAST			; get last address
  4184	035546	037 04 0 00 000000 		PNT4				; print it
  4185	035547	037 00 0 00 057621 		TMSG	<  Next/>
  4186	035550	200 00 0 00 035475*		MOVE	SNEXT			; get next address
  4187	035551	037 04 0 00 000000 		PNT4				; print it
  4188	035552	037 00 0 00 057623 		TMSG	<  CSR/>		; print CSR data
  4189	035553	200 00 0 00 035526*		MOVE	SDATA			; get it
  4190	035554	037 13 0 00 000000 		PNTHW				; print it
  4191	035555	037 00 0 00 030242 		PCRL				; end of line
  4192	035556	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 96
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0283

  4193
  4194					;#********************************************************************
  4195					;* DSSPNT - Print single step history
  4196					;#********************************************************************
  4197
  4198	035557	201 00 0 00 000024 	DSSPNT:	MOVEI	^D20			; set default number of ssteps
  4199	035560	202 00 0 00 035520*		MOVEM	ARGUM			;   to print to 20
  4200	035561	210 01 0 00 057635 		MOVN	1,[FMSGCD (SPRINT EntryCount or SPRINT <CR>)]
  4201	035562	260 17 0 00 035514*		GO	.DARG			; get argument
  4202	035563	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4203	035564	255 00 0 00 000000 		 JFCL				; no argument given
  4204	035565	200 03 0 00 035560*		MOVE	3,ARGUM			; get argument
  4205	035566	200 01 0 00 035610 		MOVE	1,SSLOC			; get current location
  4206	035567	037 00 0 00 057552 		TMSGCD	< RAR   LAR   CSR (final)  SS#>
  4207	035570	260 17 0 00 037011 	DSSPN0:	GO	PNTHST			; print an item
  4208	035571	037 07 0 00 000003 		TTALTM				; altmode typed?
  4209	035572	334 00 0 00 000000 		SKIPA				; no - continue
  4210	035573	263 17 0 00 000000 		RTN				; yes - exit
  4211	035574	375 00 0 00 000001 		SOSGE	1			; decrement pointer - at start of list?
  4212	035575	201 01 0 00 000177 		MOVEI	1,177			; yes - point to end now
  4213	035576	333 00 0 01 035611 		SKIPLE	SSNUM(1)		; valid entry?
  4214	035577	367 03 0 00 035570 		SOJG	3,DSSPN0		; yes - loop till done
  4215	035600	263 17 0 00 000000 		RTN				; no - return
  4216
  4217
  4218					;#********************************************************************
  4219					;* DSSCLR - Clear single step history data
  4220					;#********************************************************************
  4221
  4222	035601	200 01 0 00 057642 	DSSCLR:	MOVE	1,[FMSGCD (SCLEAR <CR>)]
  4223	035602	260 17 0 00 035466*		GO	CHKARG			; check for argument
  4224	035603	263 17 0 00 000000 		RTN				; error - exit
  4225	035604	402 00 0 00 035610 		SETZM	SSLOC			; clear first word
  4226	035605	200 00 0 00 057643 		MOVE	[SSLOC,,SSLOC+1]	; build BLT pointer
  4227	035606	251 00 0 00 037010 		BLT	SSCSRN+177		; clear it
  4228	035607	263 17 0 00 000000 		RTN				; return
  4229
  4230					; Ring buffer and miscellaneous data
  4231
  4232	035610	000000	000000		SSLOC:	0				; pointer to single step entry
  4233	035611				SSNUM:	BLOCK	200			; latest single step number
  4234	036011				SSADRL:	BLOCK	200			; initial address
  4235	036211				SSADRN:	BLOCK	200			; final address
  4236	036411				SSCSRL:	BLOCK	200			; initial CSR
  4237	036611				SSCSRN:	BLOCK	200			; final CSR
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 97
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0284

  4238
  4239					;#********************************************************************
  4240					;* PNTHST - Print a single step history entry
  4241					;
  4242					; Argument:	AC1 - location to print (offset into tables)
  4243					;#********************************************************************
  4244
  4245	037011	261 17 0 00 000000 	PNTHST:	PUT	0			; save AC0
  4246	037012	200 00 0 01 036011 		MOVE	SSADRL(1)		; print LAR (last) contents
  4247	037013	037 04 0 00 000000 		PNT4
  4248	037014	037 00 0 00 051536 		TMSG	< >
  4249	037015	200 00 0 01 036211 		MOVE	SSADRN(1)		; print LAR (next) contents
  4250	037016	037 04 0 00 000000 		PNT4
  4251	037017	037 00 0 00 051536 		TMSG	< >
  4252	037020	200 00 0 01 036611 		MOVE	SSCSRN(1)		; get CSR (final) data
  4253	037021	037 13 0 00 000000 		PNTHW				; print it
  4254	037022	037 00 0 00 051536 		TMSG	< >
  4255	037023	200 00 0 01 035611 		MOVE	SSNUM(1)		; get sstep number
  4256	037024	037 16 0 00 000003 		PNTOCS				; print it
  4257	037025	037 00 0 00 030242 		PCRL
  4258	037026	262 17 0 00 000000 		GET	0			; restore AC0
  4259	037027	263 17 0 00 000000 		RTN				; return
  4260
  4261
  4262					;#********************************************************************
  4263					;* SAVHST - Save single step history data
  4264					;#********************************************************************
  4265
  4266	037030	261 17 0 00 000000 	SAVHST:	RPUT	(0,1,2)			; save AC's
  4267
  4268	037033	200 02 0 00 035610 		MOVE	2,SSLOC			; get last offset
  4269	037034	200 02 0 02 035611 		MOVE	2,SSNUM(2)		; get last number
  4270	037035	350 01 0 00 035610 		AOS	1,SSLOC			; get/increment offset
  4271	037036	301 01 0 00 000200 		CAIL	1,200			; overflow ring buffer yet?
  4272	037037	403 01 0 00 035610 		SETZB	1,SSLOC			; yes - reinitialize pointer
  4273	037040	350 00 0 00 000002 		AOS	2			; increment ss number
  4274	037041	202 02 0 01 035611 		MOVEM	2,SSNUM(1)		; save it
  4275	037042	200 00 0 00 035545*		MOVE	SLAST			; get initial address
  4276	037043	202 00 0 01 036011 		MOVEM	SSADRL(1)		; save it
  4277	037044	200 00 0 00 035550*		MOVE	SNEXT			; get final address
  4278	037045	202 00 0 01 036211 		MOVEM	SSADRN(1)		; save it
  4279	037046	200 00 0 00 064400'		MOVE	SLDATA			; get initial CSR data
  4280	037047	202 00 0 01 036411 		MOVEM	SSCSRL(1)		; save it
  4281	037050	200 00 0 00 035553*		MOVE	SDATA			; get final CSR data
  4282	037051	202 00 0 01 036611 		MOVEM	SSCSRN(1)		; save it
  4283	037052	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  4284
  4285	037055	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 98
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0285

  4286
  4287					;#********************************************************************
  4288					;* DCONT - Continue the port
  4289					;
  4290					; Arguments set up for IPASRT:
  4291					;
  4292					; SNEXT - Points to next address, from IPASTP or IPASST
  4293					; SDATA - Defaults to current contents of SDATA last set up by IPASTP.
  4294					;#********************************************************************
  4295
  4296	037056	200 01 0 00 057647 	DCONT:	MOVE	1,[FMSGCD (CONT <CR>)]
  4297	037057	260 17 0 00 035602*		GO	CHKARG			; check for argument
  4298	037060	263 17 0 00 000000 		RTN				; error - exit
  4299	037061	260 17 0 00 035452*		GO	IPASRT			; start it up
  4300						 JRST	[FMSGCD	<? Error accessing CSR register>
  4301							 GO	FIOFF
  4302	037062	254 00 0 00 057447 			 RTN]
  4303						 JRST	[FMSGCD	<? Port not stopped>
  4304							 GO	FIOFF
  4305	037063	254 00 0 00 057457 			 RTN]
  4306	037064	334 00 0 00 000000 		 SKIPA				; error - Error bits set in CSR
  4307	037065	263 17 0 00 000000 		RTN				; exit
  4308	037066	037 01 0 00 057650 		FMSGCD	<? CONT failed - Error bits set in CSR>
  4309	037067	200 01 0 00 037050*		MOVE	1,SDATA			; get CSR data
  4310	037070	260 17 0 00 043215 		GO	CSRPNT			; print CSR register
  4311	037071	037 01 0 00 030242 		PCRLF				; end of line
  4312	037072	263 17 0 00 000000 		RTN				; continue
  4313
  4314
  4315					;#********************************************************************
  4316					;* DEEBUF - Examine EBUF register
  4317					;#********************************************************************
  4318
  4319	037073	200 01 0 00 057664 	DEEBUF:	MOVE	1,[FMSGCD (EEBUF <CR>)]
  4320	037074	260 17 0 00 037057*		GO	CHKARG			; check for argument
  4321	037075	263 17 0 00 000000 		RTN				; error - exit
  4322	037076	260 17 0 00 035517*		GO	ISTOP			; stop the port
  4323	037077	260 17 0 00 000000*		GO	SETEBU			; ensure 'Test EBUF' bit is set
  4324						 JRST	[FMSGCD	<? Error accessing CSR register>
  4325							 GO	FIOFF
  4326	037100	254 00 0 00 057447 			 RTN]
  4327
  4328					; Now read the data
  4329
  4330	037101	260 17 0 00 035347*		GO	RDEBUF			; read EBUF
  4331	037102	037 00 0 00 057665 		TMSGC	<EBUF/ >		; print out the data
  4332	037103	200 00 0 00 000001 		MOVE	1
  4333	037104	037 13 0 00 000000 		PNTHW
  4334	037105	037 00 0 00 030242 		PCRL
  4335	037106	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 99
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0286

  4336
  4337					;#********************************************************************
  4338					;* DDEBUF - Deposit EBUF register
  4339					;* DZEBUF - Zero EBUF register
  4340					;#********************************************************************
  4341
  4342	037107	200 01 0 00 057672 	DZEBUF:	MOVE	1,[FMSGCD (ZEBUF <CR>)]
  4343	037110	260 17 0 00 037074*		GO	CHKARG			; check for argument
  4344	037111	263 17 0 00 000000 		RTN				; error - exit
  4345	037112	402 00 0 00 035565*		SETZM	ARGUM			; clear data
  4346	037113	254 00 0 00 037120 		JRST	DDEBU1			; continue
  4347
  4348	037114	210 01 0 00 057701 	DDEBUF:	MOVN	1,[FMSGCD (DEBUF xxxxxxxxxxxx <CR>)]
  4349	037115	260 17 0 00 035441*		GO	.OARG			; get argument
  4350	037116	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4351						 JRST	[FMSGCD	<? Missing argument>
  4352							 GO	FIOFF
  4353	037117	254 00 0 00 054406 			 RTN]
  4354	037120	260 17 0 00 037076*	DDEBU1:	GO	ISTOP			; stop the port
  4355	037121	260 17 0 00 037077*		GO	SETEBU			; ensure 'Test EBUF' bit is set
  4356						 JRST	[FMSGCD	<? Error accessing CSR register>
  4357							 GO	FIOFF
  4358	037122	254 00 0 00 057447 			 RTN]
  4359	037123	200 01 0 00 037112*		MOVE	1,ARGUM			; get argument
  4360	037124	260 17 0 00 035360*		GO	LDEBUF			; write it
  4361	037125	263 17 0 00 000000 		RTN				; continue
  4362
  4363
  4364					;#********************************************************************
  4365					;* DELAR - Examine LAR register
  4366					;#********************************************************************
  4367
  4368	037126	200 01 0 00 057705 	DELAR:	MOVE	1,[FMSGCD (ELAR <CR>)]
  4369	037127	260 17 0 00 037110*		GO	CHKARG			; check for argument
  4370	037130	263 17 0 00 000000 		RTN				; error - exit
  4371	037131	260 17 0 00 037120*		GO	ISTOP			; stop the port
  4372	037132	201 01 0 00 040000 		MOVEI	1,SELLAR		; get 'DIAG Sel LAR' bit
  4373	037133	260 17 0 00 035340*		GO	LDCSR			; write to CSR register
  4374	037134	260 17 0 00 000000*		GO	RDLAR			; read LAR
  4375	037135	037 00 0 00 057706 		TMSGC	<LAR: >			; print out the data
  4376	037136	200 00 0 00 000001 		MOVE	1
  4377	037137	037 16 0 00 000003 		PNTOCS
  4378	037140	037 00 0 00 057710 		TMSG	< (Adr: >
  4379	037141	242 01 0 00 777777 		LSH	1,-1			; don't print out RAR bit
  4380	037142	200 00 0 00 000001 		MOVE	1
  4381	037143	037 16 0 00 000003 		PNTOCS
  4382	037144	037 00 0 00 053441 		TMSGD	<)>
  4383	037145	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 100
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0287

  4384
  4385					;#********************************************************************
  4386					;* DDRAR - Deposit RAR register
  4387					;#********************************************************************
  4388
  4389	037146	210 01 0 00 057716 	DDRAR:	MOVN	1,[FMSGCD (DRAR addr <CR>)]
  4390	037147	260 17 0 00 037115*		GO	.OARG			; get test number
  4391	037150	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4392						 JRST	[FMSGCD	<? Missing argument>
  4393							 GO	FIOFF
  4394	037151	254 00 0 00 054406 			 RTN]
  4395	037152	260 17 0 00 037131*		GO	ISTOP			; stop the port
  4396	037153	400 01 0 00 000000 		SETZ	1,			; ensure we can write the RAR
  4397	037154	260 17 0 00 037133*		GO	LDCSR			;   by clearing CSR register
  4398	037155	200 01 0 00 037123*		MOVE	1,ARGUM			; get argument
  4399	037156	260 17 0 00 000000*		GO	LDRAR			; write it
  4400	037157	263 17 0 00 000000 		RTN				; continue
  4401
  4402
  4403					;#********************************************************************
  4404					;* DZRAR - Zero RAR register
  4405					;#********************************************************************
  4406
  4407	037160	200 01 0 00 057722 	DZRAR:	MOVE	1,[FMSGCD (ZRAR <CR>)]
  4408	037161	260 17 0 00 037127*		GO	CHKARG			; check for argument
  4409	037162	263 17 0 00 000000 		RTN				; error - exit
  4410	037163	260 17 0 00 037152*		GO	ISTOP			; stop the port
  4411	037164	400 01 0 00 000000 		SETZ	1,			; clear data
  4412	037165	260 17 0 00 037154*		GO	LDCSR			; clear CSR first
  4413	037166	260 17 0 00 037156*		GO	LDRAR			; write it
  4414	037167	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 101
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0288

  4415
  4416					;#*********************************************************************
  4417					;* DECRAM - Examine CRAM locations specified by "PARG1" and "PARG2".
  4418					;#*********************************************************************
  4419
  4420	037170	201 00 0 00 000000 	DECRAM:	MOVEI	0			; set the 'EDZL' flag
  4421	037171	202 00 0 00 064334'		MOVEM	DFLAG#			;   to 0 (Examine)
  4422	037172	254 00 0 00 037212 		JRST	DCOMGO			; process arguments
  4423
  4424					;#*********************************************************************
  4425					;* DDCRAM - Change CRAM locations.
  4426					;#*********************************************************************
  4427
  4428	037173	201 00 0 00 000001 	DDCRAM:	MOVEI	1			; set the 'EDZL' flag
  4429	037174	202 00 0 00 064334'		MOVEM	DFLAG			;   to 1 (Deposit)
  4430	037175	254 00 0 00 037212 		JRST	DCOMGO			; process arguments
  4431
  4432					;#*********************************************************************
  4433					;* DBCRAM - Change CRAM locations by field
  4434					;#*********************************************************************
  4435
  4436	037176	201 00 0 00 000002 	DBCRAM:	MOVEI	2			; set the 'EDZL' flag
  4437	037177	202 00 0 00 064334'		MOVEM	DFLAG			;   to 1 (Deposit)
  4438	037200	254 00 0 00 037212 		JRST	DCOMGO			; process arguments
  4439
  4440					;#*********************************************************************
  4441					;* DACRAM - Alter CRAM locations.
  4442					;#*********************************************************************
  4443
  4444	037201	201 00 0 00 000003 	DACRAM:	MOVEI	3			; set the 'EDZL' flag
  4445	037202	202 00 0 00 064334'		MOVEM	DFLAG			;   to 1 (Deposit)
  4446	037203	254 00 0 00 037212 		JRST	DCOMGO			; process arguments
  4447
  4448					;#*********************************************************************
  4449					;* DZCRAM -- Zero CRAM addresses specified.
  4450					;#*********************************************************************
  4451
  4452	037204	201 00 0 00 000004 	DZCRAM:	MOVEI	4			; set the 'EDZL' flag
  4453	037205	202 00 0 00 064334'		MOVEM	DFLAG			;   to 2 (Zero)
  4454	037206	254 00 0 00 037212 		JRST	DCOMGO			; process arguments
  4455
  4456					;#*********************************************************************
  4457					;* DLCRAM -- List CRAM addresses specified.
  4458					;#*********************************************************************
  4459
  4460	037207	201 00 0 00 000005 	DLCRAM:	MOVEI	5			; set the 'EDZL' flag
  4461	037210	202 00 0 00 064334'		MOVEM	DFLAG			;   to 3 (List)
  4462	037211	254 00 0 00 037212 		JRST	DCOMGO			; process arguments
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 102
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0289

  4463
  4464					; Start to process the arguments typed - both should be CRAM
  4465					; addresses in octal.
  4466
  4467	037212	200 00 0 00 037260 	DCOMGO:	MOVE	RTO			; set up default range of CRAM locs
  4468	037213	202 00 0 00 037254 		MOVEM	CRAMTO			;   to be whatever typed before or
  4469	037214	200 00 0 00 037261 		MOVE	RFROM			;   if nothing typed, then 0-0
  4470	037215	202 00 0 00 037253 		MOVEM	CRAMFR
  4471
  4472					; Get first address
  4473
  4474	037216	200 01 0 00 057730 		MOVE	1,[FMSGCD <xCRAM addr,addr (CR)>]
  4475	037217	260 17 0 00 037147*		GO	.OARG			; get first address
  4476	037220	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4477	037221	254 00 0 00 037233 		 JRST	DCOM0			; no arguments given - continue
  4478	037222	200 00 0 00 037155*		MOVE	ARGUM			; get argument
  4479	037223	202 00 0 00 037253 		MOVEM	CRAMFR			; save in 'from' location
  4480	037224	202 00 0 00 037254 		MOVEM	CRAMTO			; save in 'to' location
  4481
  4482					; Get 2nd address
  4483
  4484	037225	210 01 0 00 057730 		MOVN	1,[FMSGCD <xCRAM addr,addr (CR)>]
  4485	037226	260 17 0 00 037217*		GO	.OARG			; get first address
  4486	037227	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4487	037230	254 00 0 00 037233 		 JRST	DCOM0			; no arguments given - continue
  4488	037231	200 00 0 00 037222*		MOVE	ARGUM			; get argument
  4489	037232	202 00 0 00 037254 		MOVEM	CRAMTO			; save in 'to' location
  4490
  4491					; Now range check the arguments
  4492
  4493	037233	331 01 0 00 037253 	DCOM0:	SKIPL	1,CRAMFR		; 1st argument in range?
  4494	037234	303 01 0 00 007777 		CAILE	1,7777		
  4495						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4496							 SETOM	ALTF
  4497							 GO	FIOFF
  4498	037235	254 00 0 00 057731 			 RTN]
  4499	037236	331 01 0 00 037254 		SKIPL	1,CRAMTO		; 1st argument in range?
  4500	037237	303 01 0 00 007777 		CAILE	1,7777		
  4501						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  4502							 GO	FIOFF
  4503	037240	254 00 0 00 056630 			 RTN]
  4504	037241	274 01 0 00 037253 		SUB	1,CRAMFR		; see if range ok
  4505						JUMPL	1,[FMSGCD <? Range nonsensical>
  4506							   GO	FIOFF
  4507	037242	321 01 0 00 057176 			   RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 103
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0290

  4508
  4509					;#*********************************************************************
  4510					; Process the command - examine, deposit, or zero
  4511					;#*********************************************************************
  4512
  4513					; Save default arguments
  4514
  4515	037243	200 00 0 00 037253 		MOVE	CRAMFR			; set up the new default range
  4516	037244	202 00 0 00 037261 		MOVEM	RFROM			;   selected, for later EXAM, 
  4517	037245	200 00 0 00 037254 		MOVE	CRAMTO			;   DEPOS, or ZEROs
  4518	037246	202 00 0 00 037260 		MOVEM	RTO
  4519
  4520					; Then ensure the port is stopped
  4521
  4522	037247	260 17 0 00 037163*		GO	ISTOP			; stop the port
  4523
  4524					; Now do it
  4525
  4526	037250	476 00 0 00 064333'	DCOM1:	SETOM	DC1ST#			; init 'first location' flag
  4527	037251	200 01 0 00 064334'		MOVE	1,DFLAG			; get type of command
  4528						JRST	@[DCOMEX		; dispatch to proper routine
  4529							  DCOMDE
  4530							  DCOMDB
  4531							  DCOMAL
  4532							  DCOMZE
  4533	037252	254 00 1 01 057735 			  DCOMLI](1)
  4534
  4535					; Default CRAM locations, CRAM data, and Misc
  4536
  4537	037253	000000	000000		CRAMFR:	0				; range is from CRAMFR to
  4538	037254	000000	000000		CRAMTO:	0				;   CRAMTO
  4539	037255	000000	000000		CADDR:	0				; current address
  4540
  4541	037256	000000	000000		CWORDL:	0				; left 30 bits
  4542	037257	000000	000000		CWORDR:	0				; right 30 bits
  4543
  4544	037260	000000	000000		RTO:	0				; start address (default)
  4545	037261	000000	000000		RFROM:	0				; end address (default)
  4546
  4547	037262	000000	000000		ANEXT:	0				; next address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 104
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0291

  4548
  4549					;#*********************************************************************
  4550					; Deposit into CRAM locations.
  4551					;#*********************************************************************
  4552
  4553					DCOMDE:	MOVEI	[SETZM	ALTF		; set up altmode transfer address
  4554							 GO	FIOFF		;   to exit this command
  4555	037263	201 00 0 00 051550 			 RTN]
  4556	037264	202 00 0 00 030063 		MOVEM	ALTMGO
  4557	037265	335 00 0 00 064333'		SKIPGE	DC1ST			; first location?
  4558	037266	037 01 0 00 057743 		FMSGC	<Type xxxx,xxxx,xxxx,xxxx,xxxx>
  4559	037267	402 00 0 00 064333'		SETZM	DC1ST			; clear 'first location' flag
  4560	037270	037 01 0 00 030242 		PCRLF
  4561	037271	476 00 0 00 037256 		SETOM	CWORDL			; initialize left 30 bits
  4562	037272	476 00 0 00 037257 		SETOM	CWORDR			; initialize right 30 bits
  4563	037273	200 00 0 00 037253 		MOVE	CRAMFR			; get the address to modify
  4564	037274	202 00 0 00 037255 		MOVEM	CADDR			; save address for writing
  4565	037275	037 04 0 00 000001 		PNT4F				; print it
  4566	037276	037 01 0 00 057752 		FMSG	<::   >
  4567	037277	403 04 0 00 000005 		SETZB	4,5			; clear data input locations
  4568	037300	476 00 0 00 034265*		SETOM	ARGFLG			; ensure that an argument is expected
  4569	037301	200 01 0 00 057763 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  4570	037302	260 17 0 00 037226*		GO	.OARG			; get first address
  4571	037303	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4572						 JRST	[FMSGCD	<? Missing arguments>
  4573							 GO	FIOFF
  4574	037304	254 00 0 00 057771 			 RTN]
  4575	037305	200 00 0 00 037231*		MOVE	ARGUM			; get argument
  4576	037306	137 00 0 00 057774 		DPB	[POINT 12,4,11]		; save it
  4577	037307	200 01 0 00 057763 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  4578	037310	260 17 0 00 037302*		GO	.OARG			; get first address
  4579	037311	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4580						 JRST	[FMSGCD	<? Missing arguments>
  4581							 GO	FIOFF
  4582	037312	254 00 0 00 057771 			 RTN]
  4583	037313	200 00 0 00 037305*		MOVE	ARGUM			; get argument
  4584	037314	137 00 0 00 057775 		DPB	[POINT 12,4,23]		; save it
  4585	037315	200 01 0 00 057763 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  4586	037316	260 17 0 00 037310*		GO	.OARG			; get first address
  4587	037317	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4588						 JRST	[FMSGCD	<? Missing arguments>
  4589							 GO	FIOFF
  4590	037320	254 00 0 00 057771 			 RTN]
  4591	037321	200 00 0 00 037313*		MOVE	ARGUM			; get argument
  4592	037322	137 00 0 00 057776 		DPB	[POINT 12,4,35]		; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 105
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0292

  4593	037323	200 01 0 00 057763 		MOVE	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  4594	037324	260 17 0 00 037316*		GO	.OARG			; get first address
  4595	037325	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4596						 JRST	[FMSGCD	<? Missing arguments>
  4597							 GO	FIOFF
  4598	037326	254 00 0 00 057771 			 RTN]
  4599	037327	200 00 0 00 037321*		MOVE	ARGUM			; get argument
  4600	037330	137 00 0 00 057777 		DPB	[POINT 12,5,11]		; save it
  4601	037331	210 01 0 00 057763 		MOVN	1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
  4602	037332	260 17 0 00 037324*		GO	.OARG			; get first address
  4603	037333	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  4604						 JRST	[FMSGCD	<? Missing argument>
  4605							 GO	FIOFF
  4606	037334	254 00 0 00 054406 			 RTN]
  4607	037335	200 00 0 00 037327*		MOVE	ARGUM			; get argument
  4608	037336	137 00 0 00 060000 		DPB	[POINT 12,5,23]		; save it
  4609	037337	135 00 0 00 060001 		LDB	[POINT 30,4,29]		; get left 30 bits
  4610	037340	202 00 0 00 037256 		MOVEM	CWORDL			; save them
  4611	037341	246 04 0 00 777772 		LSHC	4,-^D6			; position right 30 bits properly
  4612	037342	135 00 0 00 060002 		LDB	[POINT 30,5,29]		; get right 30 bits
  4613	037343	202 00 0 00 037257 		MOVEM	CWORDR			; save them
  4614	037344	260 17 0 00 037703 		GO	DWCRAM			; go write CRAM location
  4615	037345	350 01 0 00 037253 		AOS	1,CRAMFR		; update the specified address
  4616	037346	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next address
  4617	037347	317 01 0 00 037254 		CAMG	1,CRAMTO		; reach end yet?
  4618	037350	254 00 0 00 037263 		JRST	DCOMDE			; no - loop till done
  4619	037351	263 17 0 00 000000 		RTN				; yes - exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 106
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0293

  4620
  4621					;#*********************************************************************
  4622					; Deposit into CRAM locations (by bit field)
  4623					;#*********************************************************************
  4624
  4625	037352	402 00 0 00 037256 	DCOMDB:	SETZM	CWORDL			; initialize left 30 bits
  4626	037353	402 00 0 00 037257 		SETZM	CWORDR			; initialize right 30 bits
  4627	037354	200 00 0 00 037253 		MOVE	CRAMFR			; get the address to modify
  4628	037355	202 00 0 00 037255 		MOVEM	CADDR			; save address for writing
  4629	037356	254 00 0 00 037362 		JRST	DCOMAG
  4630
  4631	037357	200 00 0 00 037253 	DCOMAL:	MOVE	CRAMFR			; get the address to modify
  4632	037360	202 00 0 00 037255 		MOVEM	CADDR			; save address for writing
  4633	037361	260 17 0 00 037735 		GO	DRCRAM			; read CRAM (init both words)
  4634
  4635					; Set up initial data
  4636
  4637	037362	335 00 0 00 064333'	DCOMAG:	SKIPGE	DC1ST			; first location?
  4638						PNTMSF	[ASCIZ /
  4639	037363	037 01 0 00 060003 	Type  value,value... or ^,CR,^Z,field name/]
  4640	037364	402 00 0 00 064333'		SETZM	DC1ST			; clear 'first location' flag
  4641	037365	037 01 0 00 030242 		PCRLF
  4642						MOVEI	[SETZM	ALTF		; set up altmode transfer address
  4643							 GO	FIOFF		;   to exit this command
  4644							 PCRLF
  4645	037366	201 00 0 00 060014 			 RTN]
  4646	037367	202 00 0 00 030063 		MOVEM	ALTMGO
  4647	037370	200 00 0 00 037253 		MOVE	CRAMFR			; get the address to modify
  4648	037371	037 04 0 00 000001 		PNT4F				; print it
  4649	037372	037 01 0 00 060020 		FMSGD	<::>
  4650	037373	260 17 0 00 034244*		GO	CLRBUF			; clear input buffer
  4651	037374	402 00 0 00 030231 		SETZM	$TTCHR			; clear last character typed
  4652
  4653					; Select an entry from the bit table
  4654
  4655	037375	201 06 0 00 000001 		MOVEI	6,1			; init bit pointer
  4656	037376	275 06 0 00 000002 	DCOMA0:	SUBI	6,2			; decrement entry pointer
  4657	037377	315 06 0 00 060021 		CAMGE	6,[-1]			; backed up too far?
  4658	037400	474 06 0 00 000000 		SETO	6,			; force to start at beginning
  4659	037401	350 00 0 00 000006 	DCOMA1:	AOS	6			; point to next entry
  4660	037402	303 06 0 00 000021 		CAILE	6,^D17			; done with microword?
  4661	037403	254 00 0 00 037451 		JRST	DCOMAX			; yes - exit (write location)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 107
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0294

  4662	
  4663					; Have an entry - now get input/dispatch data
  4664
  4665	037404	200 00 0 00 030231 		MOVE	$TTCHR			; get last character typed
  4666	037405	302 00 0 00 000054 		CAIE	","			; was it a comma
  4667	037406	306 00 0 00 000040 		CAIN	" "			;   or a blank?
  4668	037407	334 00 0 00 000000 		SKIPA				; yes - check file input
  4669	037410	254 00 0 00 037414 		JRST	DCOMAA			; no - continue
  4670	037411	332 00 0 00 064341'		SKIPE	FINPUT			; file input?
  4671						JRST	[GO	FINCMD		; yes - input sixbit cmd
  4672							 JRST	.+1		; error or EOF
  4673	037412	254 00 0 00 060022 			 JRST	DCOM3A]		; continue
  4674	037413	254 00 0 00 037425 		JRST	DCOMA3
  4675	037414	332 00 0 00 064341'	DCOMAA:	SKIPE	FINPUT			; file input?
  4676						JRST	[GO	FINCMD		; yes - input sixbit cmd
  4677							 JRST	.+1		; error or EOF
  4678	037415	254 00 0 00 060025 			 JRST	DCOM3A]		; continue
  4679	037416	200 00 0 00 064334'		MOVE	DFLAG			; get dispatch flag
  4680	037417	306 00 0 00 000002 		CAIN	2			; alter?
  4681	037420	254 00 0 00 037424 		JRST	DCOMA2			; no - continue
  4682	037421	260 17 1 06 037504 		GO	@DCOLDB(6)		; yes - get data byte
  4683	037422	037 17 0 00 000003 		PNTOCF
  4684	037423	037 01 0 00 000040 		PSPF
  4685
  4686	037424	256 00 0 06 037462 	DCOMA2:	XCT	DCOMSG(6)		; no - print field name
  4687	037425	037 10 0 00 000003 	DCOMA3:	TTSIXB				; get input
  4688						ALTCHK	[GET	XXW#		; adjust stack properly
  4689							 SKIPN	$TWCNT		; did a timeout occur?
  4690							 JRST	DCOMA3		; yes - keep looking for input
  4691							 MOVE	$TTCHR		; get character typed
  4692							 CAIN	"^"		; backup character?
  4693							 JRST	DCOMA0		; yes - backup
  4694							 CAIN	32		; control-Z?
  4695							 PCRLF			; yes - a final blank line
  4696							 CAIN	32		; control-Z?
  4697							 JRST	DCOMAX		; yes - exit - done
  4698							 CAIN	"?"		; question mark?
  4699							 JRST	[XCT	MWDQUE(6); yes - handle 
  4700								 PCRLF
  4701								 JRST	DCOMAA]
  4702							 FMSGCD	<? Argument error>
  4703							 GO	CLRBUF
  4704							 PCRLF
  4705							 GO	FIOFF
  4706	037426	007 00 0 00 060040 			 JRST	DCOMA2]		; no - error - reask question
  4707					DCOM3A:	JUMPE	[MOVE	$TTCHR		; anything typed?  if a space, keep
  4708							 CAIN	40		;   looking for an argument, if not
  4709							 JRST	DCOMA3		;   exit
  4710	037427	322 00 0 00 060061 			 JRST	DCOMA5]
  4711	037430	202 00 0 00 064374'		MOVEM	SAVFLD#			; save argument
  4712	037431	200 01 0 00 064374'		MOVE	1,SAVFLD		; get into AC1
  4713	037432	260 17 0 00 034147*		GO	CONVSX			; convert to octal
  4714	037433	334 00 0 00 000000 		SKIPA
  4715	037434	254 00 0 00 037444 		JRST	DCOMA4			; ok - insert into data
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 108
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0295

  4716
  4717					; Unrecognizable - check if a field was specified
  4718
  4719	037435	200 01 0 00 064374'		MOVE	1,SAVFLD		; get command into AC1
  4720	037436	201 02 0 00 037550 		MOVEI	2,FLDLIS		; get address of field list
  4721	037437	260 17 0 00 034716*		GO	.COMM			; handle command decoding
  4722						 JRST	[FMSGCD	<? Argument error>
  4723							 GO	CLRBUF
  4724							 PCRLF
  4725							 GO	FIOFF
  4726	037440	254 00 0 00 060054 			 JRST	DCOMA2]		; no - error - reask question
  4727	037441	370 00 0 00 000001 		SOS	1			; normalize to -1..12
  4728	037442	200 06 0 00 000001 		MOVE	6,1			; put into AC6
  4729	037443	254 00 0 00 037401 		JRST	DCOMA1			; go handle the field
  4730
  4731					; Insert field entry
  4732
  4733	037444	200 00 0 00 000001 	DCOMA4:	MOVE	1			; get number
  4734	037445	260 17 1 06 037526 		GO	@DCODPB(6)		; yes - insert it
  4735	037446	200 00 0 00 030231 	DCOMA5:	MOVE	$TTCHR			; get last character typed
  4736	037447	312 00 0 00 000015 		CAME	15			; CRLF?
  4737	037450	254 00 0 00 037401 		JRST	DCOMA1			; no - get next entry
  4738
  4739					; Finally, write the location
  4740
  4741	037451	260 17 0 00 037703 	DCOMAX:	GO	DWCRAM			; go write CRAM location
  4742	037452	350 01 0 00 037253 		AOS	1,CRAMFR		; update the specified address
  4743	037453	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next address
  4744	037454	313 01 0 00 037254 		CAMLE	1,CRAMTO		; reach end yet?
  4745	037455	263 17 0 00 000000 		RTN				; yes - exit
  4746	037456	200 00 0 00 064334'		MOVE	DFLAG			; get dispatch flag
  4747	037457	302 00 0 00 000003 		CAIE	3			; alter?
  4748	037460	254 00 0 00 037352 		JRST	DCOMDB			; no - deposit by bit field
  4749	037461	254 00 0 00 037357 		JRST	DCOMAL			; yes - alter by bit field
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 109
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0296

  4750
  4751					; Input message table
  4752
  4753	037462	037 01 0 00 060065 	DCOMSG:	FMSG	<J - >
  4754	037463	037 01 0 00 060066 		FMSG	<PAR - >
  4755	037464	037 01 0 00 060070 		FMSG	<OENA - >
  4756	037465	037 01 0 00 060072 		FMSG	<MGC - >
  4757	037466	037 01 0 00 060074 		FMSG	<SORC - >
  4758	037467	037 01 0 00 060076 		FMSG	<FUNC - >
  4759	037470	037 01 0 00 060100 		FMSG	<DEST - >
  4760	037471	037 01 0 00 060102 		FMSG	<CENA - >
  4761	037472	037 01 0 00 060104 		FMSG	<RAM - >
  4762	037473	037 01 0 00 060106 		FMSG	<A - >
  4763	037474	037 01 0 00 060107 		FMSG	<B - >
  4764	037475	037 01 0 00 060110 		FMSG	<SK - >
  4765	037476	037 01 0 00 060112 		FMSG	<BUS - >
  4766	037477	037 01 0 00 060114 		FMSG	<CRY - >
  4767	037500	037 01 0 00 060116 		FMSG	<CTL - >
  4768	037501	037 01 0 00 060120 		FMSG	<TIME - >
  4769	037502	037 01 0 00 060122 		FMSG	<SPARE - >
  4770	037503	037 01 0 00 060124 		FMSG	<MARK - >
  4771
  4772					; Microword load byte pointer table
  4773
  4774					DCOLDB:	[LDB	[POINT 12,CWORDL,17]	; J - Bits 6-17
  4775	037504	000000	060127			 RTN]
  4776						[LDB	[POINT 1,CWORDL,18]	; PAR - Bit 18 
  4777	037505	000000	060132			 RTN]
  4778						[LDB	[POINT 1,CWORDL,19]	; OENA - Bit 19
  4779	037506	000000	060135			 RTN]
  4780						[LDB	[POINT 10,CWORDL,29]	; MGC - Bits 20-29
  4781	037507	000000	060140			 RTN]
  4782						[LDB	[POINT 3,CWORDL,32]	; SORC - Bits 30-32
  4783	037510	000000	060143			 RTN]
  4784						[LDB	[POINT 3,CWORDL,35]	; FUNC - Bits 33-35
  4785	037511	000000	060146			 RTN]
  4786						[LDB	[POINT 3,CWORDR,8]	; DEST - Bits 6-8
  4787	037512	000000	060151			 RTN]
  4788						[LDB	[POINT 1,CWORDR,9]	; CENA - Bit 9
  4789	037513	000000	060154			 RTN]
  4790						[LDB	[POINT 1,CWORDR,10]	; RAM - Bit 10
  4791	037514	000000	060157			 RTN]
  4792						[LDB	[POINT 4,CWORDR,14]	; A - Bits 11-14
  4793	037515	000000	060162			 RTN]
  4794						[LDB	[POINT 4,CWORDR,18]	; B - Bits 15-18
  4795	037516	000000	060165			 RTN]
  4796						[LDB	[POINT 5,CWORDR,23]	; SK - Bits 19-23
  4797	037517	000000	060170			 RTN]
  4798						[LDB	[POINT 3,CWORDR,26]	; BUS - Bits 24-26
  4799	037520	000000	060173			 RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 110
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0297

  4800						[LDB	[POINT 1,CWORDR,27]	; CRY - Bits 27
  4801	037521	000000	060176			 RTN]
  4802						[LDB	[POINT 4,CWORDR,31]	; OP - Bits 28-31
  4803	037522	000000	060201			 RTN]
  4804						[LDB	[POINT 1,CWORDR,32]	; TIME - Bit 32
  4805	037523	000000	060204			 RTN]
  4806						[LDB	[POINT 2,CWORDR,34]	; SPARE - Bits 33-34
  4807	037524	000000	060207			 RTN]
  4808						[LDB	[POINT 1,CWORDR,35]	; MARK - Bit 35
  4809	037525	000000	060212			 RTN]
  4810
  4811					; Microword deposit byte pointer table
  4812
  4813					DCODPB:	[DPB	[POINT 12,CWORDL,17]	; J - Bits 6-17
  4814	037526	000000	060214			 RTN]
  4815						[DPB	[POINT 1,CWORDL,18]	; PAR - Bit 18 
  4816	037527	000000	060216			 RTN]
  4817						[DPB	[POINT 1,CWORDL,19]	; OENA - Bit 19
  4818	037530	000000	060220			 RTN]
  4819						[DPB	[POINT 10,CWORDL,29]	; MGC - Bits 20-29
  4820	037531	000000	060222			 RTN]
  4821						[DPB	[POINT 3,CWORDL,32]	; SORC - Bits 30-32
  4822	037532	000000	060224			 RTN]
  4823						[DPB	[POINT 3,CWORDL,35]	; FUNC - Bits 33-35
  4824	037533	000000	060226			 RTN]
  4825						[DPB	[POINT 3,CWORDR,8]	; DEST - Bits 6-8
  4826	037534	000000	060230			 RTN]
  4827						[DPB	[POINT 1,CWORDR,9]	; CENA - Bit 9
  4828	037535	000000	060232			 RTN]
  4829						[DPB	[POINT 1,CWORDR,10]	; RAM - Bit 10
  4830	037536	000000	060234			 RTN]
  4831						[DPB	[POINT 4,CWORDR,14]	; A - Bits 11-14
  4832	037537	000000	060236			 RTN]
  4833						[DPB	[POINT 4,CWORDR,18]	; B - Bits 15-18
  4834	037540	000000	060240			 RTN]
  4835						[DPB	[POINT 5,CWORDR,23]	; SK - Bits 19-23
  4836	037541	000000	060242			 RTN]
  4837						[DPB	[POINT 3,CWORDR,26]	; BUS - Bits 24-26
  4838	037542	000000	060244			 RTN]
  4839						[DPB	[POINT 1,CWORDR,27]	; CRY - Bits 27
  4840	037543	000000	060246			 RTN]
  4841						[DPB	[POINT 4,CWORDR,31]	; OP - Bits 28-31
  4842	037544	000000	060250			 RTN]
  4843						[DPB	[POINT 1,CWORDR,32]	; TIME - Bit 32
  4844	037545	000000	060252			 RTN]
  4845						[DPB	[POINT 2,CWORDR,34]	; SPARE - Bits 33-34
  4846	037546	000000	060254			 RTN]
  4847						[DPB	[POINT 1,CWORDR,35]	; MARK - Bit 35
  4848	037547	000000	060256			 RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 111
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0298

  4849
  4850					; Field command table
  4851
  4852	037550	52 00 00 00 00 00 	FLDLIS:	SIXBIT	/J/
  4853	037551	60 41 62 00 00 00 		SIXBIT	/PAR/
  4854	037552	57 45 56 41 00 00 		SIXBIT	/OENA/
  4855	037553	55 47 43 00 00 00 		SIXBIT	/MGC/
  4856	037554	63 57 62 43 00 00 		SIXBIT	/SORC/
  4857	037555	46 65 56 43 00 00 		SIXBIT	/FUNC/
  4858	037556	44 45 63 64 00 00 		SIXBIT	/DEST/
  4859	037557	43 45 56 41 00 00 		SIXBIT	/CENA/
  4860	037560	62 41 55 00 00 00 		SIXBIT	/RAM/
  4861	037561	41 00 00 00 00 00 		SIXBIT	/A/
  4862	037562	42 00 00 00 00 00 		SIXBIT	/B/
  4863	037563	63 53 00 00 00 00 		SIXBIT	/SK/
  4864	037564	42 65 63 00 00 00 		SIXBIT	/BUS/
  4865	037565	43 62 71 00 00 00 		SIXBIT	/CRY/
  4866	037566	43 64 54 00 00 00 		SIXBIT	/CTL/
  4867	037567	64 51 55 45 00 00 		SIXBIT	/TIME/
  4868	037570	63 60 41 62 45 00 		SIXBIT	/SPARE/
  4869	037571	55 41 62 53 00 00 		SIXBIT	/MARK/
  4870	037572	000000	000000			0
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 112
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0299

  4871
  4872					; Help text
  4873
  4874	037573	037 01 0 00 060260 	MWDQUE:	FMSGCD	<Jump field>
  4875	037574	037 01 0 00 060263 		FMSGCD	<Parity bit - Pgm calculates it unless SET PAR is off>
  4876	037575	037 01 0 00 060277 		FMSGCD	<Ouput enable>
  4877	037576	037 01 0 00 060303 		FMSGCD	<Magic # field>
  4878						FMSGD	<
  4879					Source field:
  4880					 0-AQ  2-0Q  4-0A  6-DQ
  4881	037577	037 01 0 00 060307 	 1-AB  3-0B  5-DA  7-D0>
  4882						FMSGD	<
  4883					ALU Function:
  4884					 0-Plus  2-Rmin  4-And   6-Xor
  4885	037600	037 01 0 00 060325 	 1-Smin  3-Or    5-Nand  7-Xnor>
  4886						FMSGD	<
  4887					Destination field:
  4888					 0-QF  2-BA  4-/2BQF  6-*2BQF
  4889	037601	037 01 0 00 060346 	 1-F   3-BF  5-/2BF   7-*2BF>
  4890	037602	037 01 0 00 060367 		FMSGCD	<CC Enable>
  4891	037603	037 01 0 00 060372 		FMSGCD	<RAM Mode>
  4892	037604	037 01 0 00 060375 		FMSGCD	<Port A 0-17>
  4893	037605	037 01 0 00 060401 		FMSGCD	<Port B 0-17>
  4894						FMSGD	<
  4895					Skip field - Select:
  4896					 00/20-CCCbusAvail  10/30-CCEbusRqst
  4897					 01/21-CCGrntCsr    11/31-CCOverflow
  4898					 02/22-CCFeq0	    12/32-CCMbSign
  4899					 03/23-CCCsrChng    13/33-CCMVParChk
  4900					 04/24-CCEbParerr   14/34-CCCbusParErr
  4901					 05/25-CCRcvBufAFul 15/35-CCPliParErr
  4902					 06/26-CCRcvBufBFul 16/36-CCChanErr
  4903					 07/27-CCXmtrAttn   17/37-CCCbLstWd
  4904					
  4905					 20/30-LoadSadReg   23/33-LdLocalMem
  4906					 21/31-SelMbusFld   24/34-SelCnstFld
  4907	037606	037 01 0 00 060405 	 22/32-RdLocalMem>
  4908						FMSGD	<
  4909					Bus Ctl field - Select:
  4910					 0-Nul  2-Mbus  4-Cbus
  4911	037607	037 01 0 00 060532 	 1-Pli  3-Fmtr  5-Ebus>
  4912	037610	037 01 0 00 060552 		FMSGCD	<Carry input>
  4913						FMSGD	<
  4914					2910 Control field:
  4915					 00-JZ    04-PUSH  10-RFCT  14-LDCT
  4916					 01-CJS   05-JSRP  11-RPCT  15-LOOP
  4917					 02-JMAP  06-CJV   12-CRTN  16-CONT
  4918	037611	037 01 0 00 060556 	 03-CJP   07-JRP   13-CJPP  17-TWB>
  4919	037612	037 01 0 00 060621 		FMSGCD	<Time field>
  4920	037613	037 01 0 00 060624 		FMSGCD	<Spare bits>
  4921	037614	037 01 0 00 060627 		FMSGCD	<Mark bit>
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 113
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0300

  4922
  4923					;#*********************************************************************
  4924					; Zero CRAM addresses specified by "PARG1" and "PARG2"
  4925					;#*********************************************************************
  4926
  4927	037615	402 00 0 00 037256 	DCOMZE:	SETZM	CWORDL			; clear CRAM words left and
  4928	037616	402 00 0 00 037257 		SETZM	CWORDR			;   right
  4929	037617	200 00 0 00 037253 		MOVE	CRAMFR			; get the address to modify
  4930	037620	202 00 0 00 037255 		MOVEM	CADDR			; save address for writing
  4931	037621	260 17 0 00 037703 		GO	DWCRAM			; go write CRAM location
  4932	037622	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4933	037623	334 00 0 00 000000 		SKIPA				; no - proceed
  4934	037624	263 17 0 00 000000 		RTN				; yes - exit
  4935	037625	350 01 0 00 037253 		AOS	1,CRAMFR		; update the specified address
  4936	037626	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next address
  4937	037627	317 01 0 00 037254 		CAMG	1,CRAMTO		; reach end yet?
  4938	037630	254 00 0 00 037615 		JRST	DCOMZE			; no - loop till done
  4939	037631	263 17 0 00 000000 		RTN				; yes - exit
  4940
  4941
  4942					;#*********************************************************************
  4943					; Examine CRAM locations
  4944					;#*********************************************************************
  4945
  4946	037632	200 00 0 00 037253 	DCOMEX:	MOVE	CRAMFR			; get the address to modify
  4947	037633	202 00 0 00 037255 		MOVEM	CADDR			; save address
  4948	037634	037 00 0 00 030242 		PCRL
  4949	037635	001 04 0 00 037255 		PNTOCC	4,CADDR			; print address
  4950	037636	037 00 0 00 060632 		TMSG	</ >
  4951	037637	260 17 0 00 037735 		GO	DRCRAM			; read CRAM location
  4952	037640	255 00 0 00 000000 		JFCL				; error return
  4953	037641	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  4954	037642	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  4955	037643	260 17 0 00 043103 		GO	PNTWD			; print it
  4956	037644	037 07 0 00 000003 		TTALTM				; altmode key struck?
  4957	037645	334 00 0 00 000000 		SKIPA				; no - proceed
  4958						JRST	[SETOM	ALTF		; yes - set altmode typed flag 
  4959							 SETZM	MULFLG		;   and clear 'examine next' flag
  4960	037646	254 00 0 00 060633 			 JRST	DCOMEZ]		;   and exit
  4961	037647	350 01 0 00 037253 		AOS	1,CRAMFR		; update the specified address
  4962	037650	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next address
  4963	037651	317 01 0 00 037254 		CAMG	1,CRAMTO		; reach end yet?
  4964	037652	254 00 0 00 037632 		JRST	DCOMEX			; no - loop till done
  4965	037653	336 00 0 00 064354'	DCOMEZ:	SKIPN	MULFLG			; in 'examine next'?
  4966	037654	037 00 0 00 030242 		PCRL				; no - print blank line
  4967	037655	263 17 0 00 000000 		RTN				; yes - exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 114
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0301

  4968
  4969					;#*********************************************************************
  4970					; List CRAM locations
  4971					;#*********************************************************************
  4972
  4973					; Print this CRAM entry
  4974	037656	332 00 0 00 064355'	DCOMLI:	SKIPE	MULINI			; in 'examine next'?
  4975	037657	037 00 0 00 060636 		TMSGC	<ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK>
  4976	037660	200 00 0 00 037253 	DCOML0:	MOVE	CRAMFR			; get the address to list
  4977	037661	202 00 0 00 037255 		MOVEM	CADDR			; save address
  4978	037662	260 17 0 00 037735 		GO	DRCRAM			; read CRAM location
  4979	037663	255 00 0 00 000000 		JFCL				; error return
  4980	037664	037 00 0 00 030242 		PCRL				; start a new line
  4981	037665	001 04 0 00 037255 		PNTOCC	4,CADDR			; print cram address
  4982	037666	037 00 0 00 060632 		TMSG	</ >
  4983	037667	200 02 0 00 037256 		MOVE	2,CWORDL		; get left word
  4984	037670	200 03 0 00 037257 		MOVE	3,CWORDR		; get right word
  4985	037671	260 17 0 00 043007 		GO	PNTCRM			; go print it
  4986	037672	332 00 0 00 064326'		SKIPE	ALTF			; altmode typed?
  4987	037673	254 00 0 00 037700 		JRST	DCOMLX			; yes - return
  4988	037674	350 01 0 00 037253 		AOS	1,CRAMFR		; no - update the specified address
  4989	037675	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next address
  4990	037676	317 01 0 00 037254 		CAMG	1,CRAMTO		; reach end yet?
  4991	037677	254 00 0 00 037660 		JRST	DCOML0			; no - loop till done
  4992	037700	336 00 0 00 064354'	DCOMLX:	SKIPN	MULFLG			; in 'examine next'?
  4993	037701	037 00 0 00 030242 		PCRL				; no - print blank line
  4994	037702	263 17 0 00 000000 		RTN				; yes - exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 115
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0302

  4995
  4996					;#********************************************************************
  4997					; DWCRAM - Load CRAM word at 'CADDR' with data in 'CWORDL' and 'CWORDR'
  4998					;#********************************************************************
  4999
  5000	037703	261 17 0 00 000000 	DWCRAM:	RPUT	(0,1,2,3)		; save AC's
  5001
  5002	037707	200 01 0 00 037255 		MOVE	1,CADDR			; get actual CRAM load address
  5003	037710	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  5004	037711	660 01 0 00 000001 		TRO	1,1			; set bit 12 (for left 30 bits)
  5005	037712	260 17 0 00 037166*		GO	LDRAR			; load RAR with it
  5006	037713	200 02 0 00 037256 		MOVE	2,CWORDL		; get left 30 bits
  5007	037714	200 03 0 00 037257 		MOVE	3,CWORDR		; get right 30 bits
  5008	037715	400 01 0 00 000000 		SETZ	1,			; ignore 'bad parity' bit
  5009	037716	332 00 0 00 035271 		SKIPE	PARFLG			; calculate parity?
  5010	037717	260 17 0 00 043125 		GO	CALPAR			; yes - do so
  5011	037720	200 01 0 00 000002 		MOVE	1,2			; get left 30 bits
  5012	037721	260 17 0 00 000000*		GO	LDCRAM			; load it
  5013
  5014	037722	200 01 0 00 037255 		MOVE	1,CADDR			; get actual CRAM load address
  5015	037723	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  5016	037724	620 01 0 00 000001 		TRZ	1,1			; clear bit 12 (for right 30 bits)
  5017	037725	260 17 0 00 037712*		GO	LDRAR			; load address
  5018	037726	200 01 0 00 000003 		MOVE	1,3			; get right 30 bits
  5019	037727	260 17 0 00 037721*		GO	LDCRAM			; load it
  5020	037730	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  5021
  5022	037734	263 17 0 00 000000 		RTN
  5023
  5024					;#********************************************************************
  5025					; DRCRAM - Read CRAM word at 'CADDR' into 'CWORDL' and 'CWORDR'
  5026					;#********************************************************************
  5027
  5028	037735	261 17 0 00 000000 	DRCRAM:	RPUT	(0,1)			; save AC's
  5029
  5030	037737	200 01 0 00 037255 		MOVE	1,CADDR			; get actual CRAM address
  5031	037740	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  5032	037741	660 01 0 00 000001 		TRO	1,1			; set bit 12 (for left 30 bits)
  5033	037742	260 17 0 00 037725*		GO	LDRAR			; load RAR with it
  5034	037743	260 17 0 00 000000*		GO	RDCRAM			; load it
  5035	037744	202 01 0 00 037256 		MOVEM	1,CWORDL		; save it
  5036
  5037	037745	200 01 0 00 037255 		MOVE	1,CADDR			; get actual CRAM load address
  5038	037746	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  5039	037747	620 01 0 00 000001 		TRZ	1,1			; clear bit 12 (for right 30 bits)
  5040	037750	260 17 0 00 037742*		GO	LDRAR			; load address
  5041	037751	260 17 0 00 037743*		GO	RDCRAM			; load it
  5042	037752	202 01 0 00 037257 		MOVEM	1,CWORDR		; save it
  5043	037753	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  5044
  5045	037755	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 116
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0303

  5046
  5047					;#********************************************************************
  5048					;* DEALU - Examine 2901 registers
  5049					;
  5050					; Arguments:  Reg1,Reg2
  5051					;#********************************************************************
  5052
  5053	037756	200 00 0 00 040260 	DEALU:	MOVE	ALUFR			; set up default of register range
  5054	037757	202 00 0 00 064364'		MOVEM	RALUB#			;   to be whatever was typed before
  5055	037760	200 00 0 00 040261 		MOVE	ALUTO			;   or if nothing typed, then 0-20
  5056	037761	202 00 0 00 064365'		MOVEM	RALUE#
  5057
  5058					; Get arguments
  5059
  5060	037762	200 01 0 00 060664 		MOVE	1,[FMSGCD <E2901 reg1,reg2 (CR) (20=QReg)>]
  5061	037763	260 17 0 00 037332*		GO	.OARG			; get 1st argument
  5062	037764	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5063	037765	254 00 0 00 037777 		 JRST	DEALU0			; no arguments given - continue
  5064	037766	200 00 0 00 037335*		MOVE	ARGUM			; get argument
  5065	037767	202 00 0 00 064364'		MOVEM	RALUB			; save in 'from' location
  5066	037770	202 00 0 00 064365'		MOVEM	RALUE			; save in 'to' location
  5067
  5068	037771	210 01 0 00 060672 		MOVN	1,[FMSGCD <E2901 reg1,reg2 (CR)>]
  5069	037772	260 17 0 00 037763*		GO	.OARG			; get 2nd argument
  5070	037773	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5071	037774	254 00 0 00 037777 		 JRST	DEALU0			; no arguments given - continue
  5072	037775	200 00 0 00 037766*		MOVE	ARGUM			; get argument
  5073	037776	202 00 0 00 064365'		MOVEM	RALUE			; save in 'to' location
  5074
  5075					; Now range check the arguments
  5076
  5077	037777	331 01 0 00 064364'	DEALU0:	SKIPL	1,RALUB			; 1st argument in range?
  5078	040000	303 01 0 00 000020 		CAILE	1,20		
  5079						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  5080							 SETOM	ALTF
  5081							 GO	FIOFF
  5082	040001	254 00 0 00 060705 			 RTN]
  5083	040002	331 01 0 00 064365'		SKIPL	1,RALUE			; 2nd argument in range?
  5084	040003	303 01 0 00 000020 		CAILE	1,20		
  5085						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  5086							 GO	FIOFF
  5087	040004	254 00 0 00 060711 			 RTN]
  5088	040005	274 01 0 00 064364'		SUB	1,RALUB			; see if range ok
  5089						JUMPL	1,[FMSGCD <? Range nonsensical>
  5090							   GO	FIOFF
  5091	040006	321 01 0 00 057176 			   RTN]
  5092	040007	200 00 0 00 064364'		MOVE	RALUB			; get 'from' argument
  5093	040010	202 00 0 00 040260 		MOVEM	ALUFR			; save it
  5094	040011	200 00 0 00 064365'		MOVE	RALUE			; get 'to' argument
  5095	040012	202 00 0 00 040261 		MOVEM	ALUTO			; save it
  5096	040013	201 00 0 00 000006 		MOVEI	6			; get E2901 flag
  5097	040014	202 00 0 00 064334'		MOVEM	DFLAG			; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 117
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0304

  5098
  5099					; Save CRAM location
  5100
  5101	040015	200 01 0 00 060714 		MOVE	1,[-1,,7750]		; set up AOBJN word
  5102	040016	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  5103
  5104					; Now do each register
  5105
  5106	040017	037 00 0 00 060715 	DEALU1:	TMSGC	<R>			; start a new line
  5107	040020	200 02 0 00 064364'		MOVE	2,RALUB			; get register number
  5108	040021	200 00 0 00 000002 		MOVE	2			; get register number
  5109	040022	137 02 0 00 060716 		DPB	2,[POINT 4,DEALUM+1,14]	; save it in microword
  5110	040023	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  5111	040024	037 00 0 00 060717 		TMSG	<Q>			; yes - print Q
  5112	040025	302 02 0 00 000020 		CAIE	2,20			; Q-Register?
  5113	040026	037 16 0 00 000003 		PNTOCS				; no - print register number
  5114	040027	037 00 0 00 060632 		TMSG	</ >
  5115	040030	201 00 0 00 000004 		MOVEI	4			; get source field of 4 (0A)
  5116	040031	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  5117	040032	201 00 0 00 000002 		MOVEI	2			; yes - use source of 2 (0Q)
  5118	040033	137 00 0 00 060720 		DPB	[POINT 3,DEALUM+1,2]	; set up source field
  5119	040034	201 01 0 00 040237 		MOVEI	1,DEALUM		; set up microcode address
  5120	040035	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  5121	040036	255 00 0 00 000000 		JFCL				; ignore error
  5122	040037	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5123	040040	242 01 0 00 000001 		LSH	1,1			; position correctly
  5124	040041	260 17 0 00 037750*		GO	LDRAR			; load the RAR
  5125	040042	201 01 0 00 220010 		MOVEI	1,SINCYC!MPRUN!TSTEBF	; single step once
  5126	040043	260 17 0 00 037165*		GO	LDCSR
  5127	040044	260 17 0 00 037101*		GO	RDEBUF			; read EBUF contents
  5128	040045	200 00 0 00 000001 		MOVE	1			; get register data
  5129	040046	037 13 0 00 000000 		PNTHW				; print it
  5130	040047	350 00 0 00 000002 		AOS	2			; point to next register
  5131	040050	202 02 0 00 037262 		MOVEM	2,ANEXT			; save next register
  5132	040051	037 07 0 00 000003 		TTALTM				; altmode key struck?
  5133	040052	334 00 0 00 000000 		SKIPA				; no - proceed
  5134						JRST	[SETOM	ALTF		; yes - set altmode typed flag 
  5135							 SETZM	MULFLG		;   and clear 'examine next' flag
  5136	040053	254 00 0 00 060721 			 JRST	DEALUX]		;   and exit
  5137	040054	350 01 0 00 064364'		AOS	1,RALUB			; point to next register
  5138	040055	317 01 0 00 064365'		CAMG	1,RALUE			; done yet?
  5139	040056	254 00 0 00 040017 		JRST	DEALU1			; no - loop till done
  5140
  5141					; Restore CRAM location and exit
  5142
  5143	040057	336 00 0 00 064354'	DEALUX:	SKIPN	MULFLG			; in 'examine next'?
  5144	040060	037 00 0 00 030242 		PCRL				; no - print blank line
  5145	040061	200 01 0 00 060714 		MOVE	1,[-1,,7750]		; set up AOBJN word
  5146	040062	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  5147	040063	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 118
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0305

  5148
  5149					;#********************************************************************
  5150					;* DDALU - Deposit register 
  5151					;
  5152					; Format:  DALU reg,data
  5153					;#********************************************************************
  5154
  5155	040064	200 01 0 00 060731 	DDALU:	MOVE	1,[FMSGCD <DALU reg,data (CR)>]
  5156	040065	260 17 0 00 035562*		GO	.DARG			; get register number
  5157	040066	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5158						 JRST	[FMSGCD	<? Missing argument>
  5159							 GO	FIOFF
  5160	040067	254 00 0 00 054406 			 RTN]
  5161	040070	331 01 0 00 037775*	DDALU0:	SKIPL	1,ARGUM			; argument in range?
  5162	040071	303 01 0 00 000020 		CAILE	1,20		
  5163						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  5164							 GO	FIOFF
  5165	040072	254 00 0 00 060711 			 RTN]
  5166	040073	202 01 0 00 064364'		MOVEM	1,RALUB			; get 'from' argument
  5167	040074	202 01 0 00 040260 		MOVEM	1,ALUFR			; save it
  5168	040075	202 01 0 00 064365'		MOVEM	1,RALUE			; get 'to' argument
  5169	040076	202 01 0 00 040261 		MOVEM	1,ALUTO			; save it
  5170	040077	200 01 0 00 060731 		MOVE	1,[FMSGCD <DALU reg,data (CR)>]
  5171	040100	260 17 0 00 037772*		GO	.OARG			; get data
  5172	040101	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5173						 JRST	[FMSGCD	<? Missing argument>
  5174							 GO	FIOFF
  5175	040102	254 00 0 00 054406 			 RTN]
  5176	040103	200 00 0 00 040070*		MOVE	ARGUM			; get argument
  5177	040104	202 00 0 00 064345'		MOVEM	LARG2			; save it
  5178	040105	201 00 0 00 000007 		MOVEI	7			; get D2901 flag
  5179	040106	202 00 0 00 064334'		MOVEM	DFLAG			; save it
  5180
  5181					; Save CRAM locations
  5182
  5183	040107	200 01 0 00 060732 		MOVE	1,[-5,,7750]		; set up AOBJN word
  5184	040110	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  5185
  5186					; Load microcode
  5187
  5188	040111	200 02 0 00 064364'		MOVE	2,RALUB			; get location to write
  5189	040112	137 02 0 00 060733 		DPB	2,[POINT 4,DDALUM+7,18]	; set up 2901 register
  5190	040113	201 00 0 00 000002 		MOVEI	2			; get destination field of 2 (BA)
  5191	040114	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  5192	040115	201 00 0 00 000000 		MOVEI	0			; yes - use destination of 0 (QF)
  5193	040116	137 00 0 00 060734 		DPB	[POINT 3,DDALUM+7,8]	; set up source field
  5194	040117	201 01 0 00 040242 		MOVEI	1,DDALUM		; set up microcode address
  5195	040120	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  5196	040121	255 00 0 00 000000 		JFCL				; ignore error
  5197	040122	350 00 0 00 000002 		AOS	2			; point to next register
  5198	040123	202 02 0 00 037262 		MOVEM	2,ANEXT			; save next register
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 119
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0306

  5199
  5200					; Now do the deposit
  5201
  5202	040124	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5203	040125	242 01 0 00 000001 		LSH	1,1			; position correctly
  5204	040126	260 17 0 00 040041*		GO	LDRAR			; load the RAR
  5205	040127	201 01 0 00 000010 		MOVEI	1,MPRUN			; set initial data
  5206	040130	260 17 0 00 040043*		GO	LDCSR			; start the port
  5207	040131	200 01 0 00 064345'		MOVE	1,LARG2			; get data to write
  5208	040132	260 17 0 00 000000*		GO	.DATAO			; give to port
  5209	040133	400 01 0 00 000000 		SETZ	1,			; stop the port
  5210	040134	260 17 0 00 040130*		GO	LDCSR
  5211
  5212					; Check if additional arguments
  5213
  5214	040135	336 00 0 00 037300*		SKIPN	ARGFLG			; any more arguments
  5215	040136	254 00 0 00 040142 		JRST	DDALUX			; no - exit
  5216	040137	200 00 0 00 037262 		MOVE	ANEXT			; get register number
  5217	040140	202 00 0 00 040103*		MOVEM	ARGUM			; save it
  5218	040141	254 00 0 00 040070 		JRST	DDALU0			; loop till done
  5219
  5220					; Restore CRAM locations and exit
  5221
  5222	040142	200 01 0 00 060732 	DDALUX:	MOVE	1,[-5,,7750]		; set up AOBJN word
  5223	040143	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  5224	040144	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 120
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0307

  5225
  5226					;#********************************************************************
  5227					;* DZALU - Zero 2901 registers
  5228					;
  5229					; Format:  ZALU reg1,reg2
  5230					;#********************************************************************
  5231
  5232	040145	200 00 0 00 040260 	DZALU:	MOVE	ALUFR			; set up default of register range
  5233	040146	202 00 0 00 064364'		MOVEM	RALUB			;   to be whatever was typed before
  5234	040147	200 00 0 00 040261 		MOVE	ALUTO			;   or if nothing typed, then 0-0
  5235	040150	202 00 0 00 064365'		MOVEM	RALUE
  5236
  5237					; Get arguments
  5238
  5239	040151	200 01 0 00 060742 		MOVE	1,[FMSGCD <ZALU reg1,reg2 (CR)>]
  5240	040152	260 17 0 00 040065*		GO	.DARG			; get first argument
  5241	040153	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5242	040154	254 00 0 00 040166 		 JRST	DZALU0			; no arguments given - continue
  5243	040155	200 00 0 00 040140*		MOVE	ARGUM			; get argument
  5244	040156	202 00 0 00 064364'		MOVEM	RALUB			; save in 'from' location
  5245	040157	202 00 0 00 064365'		MOVEM	RALUE			; save in 'to' location
  5246
  5247	040160	210 01 0 00 060742 		MOVN	1,[FMSGCD <ZALU reg1,reg2 (CR)>]
  5248	040161	260 17 0 00 040152*		GO	.DARG			; get 2nd argument
  5249	040162	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5250	040163	254 00 0 00 040166 		 JRST	DZALU0			; no arguments given - continue
  5251	040164	200 00 0 00 040155*		MOVE	ARGUM			; get argument
  5252	040165	202 00 0 00 064365'		MOVEM	RALUE			; save in 'to' location
  5253
  5254					; Now range check the arguments
  5255
  5256	040166	331 01 0 00 064364'	DZALU0:	SKIPL	1,RALUB			; 1st argument in range?
  5257	040167	303 01 0 00 000020 		CAILE	1,20		
  5258						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  5259							 GO	FIOFF
  5260	040170	254 00 0 00 060711 			 RTN]
  5261	040171	331 01 0 00 064365'		SKIPL	1,RALUE			; 2nd argument in range?
  5262	040172	303 01 0 00 000020 		CAILE	1,20		
  5263						JRST	[FMSGCD	<? Range of 2901 registers is 0-20 (20=QReg)>
  5264							 GO	FIOFF
  5265	040173	254 00 0 00 060711 			 RTN]
  5266	040174	274 01 0 00 064364'		SUB	1,RALUB			; see if range ok
  5267						JUMPL	1,[FMSGCD <? Range nonsensical>
  5268							   GO	FIOFF
  5269	040175	321 01 0 00 057176 			   RTN]
  5270	040176	200 00 0 00 064364'		MOVE	RALUB			; get 'from' argument
  5271	040177	202 00 0 00 040260 		MOVEM	ALUFR			; save it
  5272	040200	200 00 0 00 064365'		MOVE	RALUE			; get 'to' argument
  5273	040201	202 00 0 00 040261 		MOVEM	ALUTO			; save it
  5274	040202	201 00 0 00 000010 		MOVEI	8			; get Z2901 flag
  5275	040203	202 00 0 00 064334'		MOVEM	DFLAG			; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 121
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0308

  5276
  5277					; Save CRAM location
  5278
  5279	040204	200 01 0 00 060714 		MOVE	1,[-1,,7750]		; set up AOBJN word
  5280	040205	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM location
  5281
  5282					; Now do each location
  5283
  5284	040206	200 02 0 00 064364'	DZALU1:	MOVE	2,RALUB			; get location to write
  5285	040207	137 02 0 00 060743 		DPB	2,[POINT 4,DZALUM+1,18]	; set up register number
  5286	040210	201 00 0 00 000002 		MOVEI	2			; get destination field of 2 (BA)
  5287	040211	306 02 0 00 000020 		CAIN	2,20			; Q-Register?
  5288	040212	201 00 0 00 000000 		MOVEI	0			; yes - use destination of 0 (QF)
  5289	040213	137 00 0 00 060744 		DPB	[POINT 3,DZALUM+1,8]	; set up destination field
  5290	040214	201 01 0 00 040255 		MOVEI	1,DZALUM		; set up microcode address
  5291	040215	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  5292	040216	255 00 0 00 000000 		JFCL				; ignore error
  5293	040217	350 00 0 00 000002 		AOS	2			; point to next register
  5294	040220	202 02 0 00 037262 		MOVEM	2,ANEXT			; save next register
  5295	040221	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5296	040222	242 01 0 00 000001 		LSH	1,1			; position correctly
  5297	040223	260 17 0 00 040126*		GO	LDRAR			; load the RAR
  5298	040224	201 01 0 00 020010 		MOVEI	1,MPRUN!SINCYC		; start it up
  5299	040225	260 17 0 00 040134*		GO	LDCSR
  5300	040226	037 07 0 00 000003 		TTALTM				; altmode key struck?
  5301	040227	334 00 0 00 000000 		SKIPA				; no - proceed
  5302	040230	254 00 0 00 040234 		JRST	DZALUX			; yes - exit
  5303	040231	350 01 0 00 064364'		AOS	1,RALUB			; point to next location
  5304	040232	317 01 0 00 064365'		CAMG	1,RALUE			; done yet?
  5305	040233	254 00 0 00 040206 		JRST	DZALU1			; no - loop till done
  5306
  5307					; Restore CRAM location and exit
  5308
  5309	040234	200 01 0 00 060714 	DZALUX:	MOVE	1,[-1,,7750]		; set up AOBJN word
  5310	040235	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  5311	040236	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 122
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0309

  5312
  5313					; Microcode to examine 2901's
  5314
  5315	040237	775077	502004		DEALUM:	MWORD	<ADDR=7750,JMAP,J=7750,S0A,OR,D=1,OENA,SELE,MGC=4>
  5316	040240	431000	005040
  5317	040241	777777	777777			-1
  5318
  5319					; Microcode to deposit 2901's
  5320
  5321	040242	775077	510000		DDALUM:	MWORD	<ADDR=7750,JMAP,J=7751,D=1>		; 7750
  5322	040243	001000	000040
  5323	040244	775177	530000			MWORD	<CJP,J=7753,D=1,CENA,CCER>		; 7751
  5324	040245	001400	100060
  5325	040246	775277	510000			MWORD	<JMAP,J=7751,D=1>			; 7752
  5326	040247	001000	000040
  5327	040250	775300	000010			MWORD	<CONT,SD0,OR,D=2,SELE,MGC=10>		; 7753
  5328	040251	732000	005340
  5329	040252	775477	540000			MWORD	<JMAP,J=7754,D=1>			; 7754
  5330	040253	001000	000040
  5331	040254	777777	777777			-1
  5332
  5333					; Microcode to zero 2901's
  5334
  5335	040255	775077	500000		DZALUM:	MWORD	<ADDR=7750,JMAP,J=7750,S0A,AND,D=2>
  5336	040256	442000	000040
  5337	040257	777777	777777			-1
  5338
  5339					; Arguments
  5340
  5341	040260	000000	000000		ALUFR:	0				; default range of 
  5342	040261	000000	000020		ALUTO:	20				;   registers
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 123
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0310

  5343
  5344					;#********************************************************************
  5345					;* DELOCS - Examine local storage 
  5346					;
  5347					; Format:  ELOCS adr1,adr2
  5348					;#********************************************************************
  5349
  5350	040262	200 00 0 00 040553 	DELOCS:	MOVE	LOCFR			; set up default of local storage range
  5351	040263	202 00 0 00 064370'		MOVEM	RLOCB#			;   to be whatever was typed before
  5352	040264	200 00 0 00 040554 		MOVE	LOCTO			;   or if nothing typed, then 0-0
  5353	040265	202 00 0 00 064371'		MOVEM	RLOCE#
  5354
  5355					; Get arguments
  5356
  5357	040266	200 01 0 00 060753 		MOVE	1,[FMSGCD <ELOCS addr1,addr2 (CR)>]
  5358	040267	260 17 0 00 040161*		GO	.DARG			; get first address
  5359	040270	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5360	040271	254 00 0 00 040303 		 JRST	DELOC0			; no arguments given - continue
  5361	040272	200 00 0 00 040164*		MOVE	ARGUM			; get argument
  5362	040273	202 00 0 00 064370'		MOVEM	RLOCB			; save in 'from' location
  5363	040274	202 00 0 00 064371'		MOVEM	RLOCE			; save in 'to' location
  5364
  5365	040275	210 01 0 00 060753 		MOVN	1,[FMSGCD <ELOCS addr1,addr2 (CR)>]
  5366	040276	260 17 0 00 040267*		GO	.DARG			; get 2nd address
  5367	040277	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5368	040300	254 00 0 00 040303 		 JRST	DELOC0			; no arguments given - continue
  5369	040301	200 00 0 00 040272*		MOVE	ARGUM			; get argument
  5370	040302	202 00 0 00 064371'		MOVEM	RLOCE			; save in 'to' location
  5371
  5372					; Now range check the arguments
  5373
  5374	040303	331 01 0 00 064370'	DELOC0:	SKIPL	1,RLOCB			; 1st argument in range?
  5375	040304	303 01 0 00 001777 		CAILE	1,1777
  5376						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  5377							 SETOM	ALTF
  5378							 GO	FIOFF
  5379	040305	254 00 0 00 060766 			 RTN]
  5380	040306	331 01 0 00 064371'		SKIPL	1,RLOCE			; 2nd argument in range?
  5381	040307	303 01 0 00 001777 		CAILE	1,1777
  5382						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  5383							 GO	FIOFF
  5384	040310	254 00 0 00 060772 			 RTN]
  5385	040311	274 01 0 00 064370'		SUB	1,RLOCB			; see if range ok
  5386						JUMPL	1,[FMSGCD <? Range nonsensical>
  5387							   GO	FIOFF
  5388	040312	321 01 0 00 057176 			   RTN]
  5389	040313	200 00 0 00 064370'		MOVE	RLOCB			; get 'from' argument
  5390	040314	202 00 0 00 040553 		MOVEM	LOCFR			; save it
  5391	040315	200 00 0 00 064371'		MOVE	RLOCE			; get 'to' argument
  5392	040316	202 00 0 00 040554 		MOVEM	LOCTO			; save it
  5393	040317	201 00 0 00 000011 		MOVEI	9			; get ELOCS flag
  5394	040320	202 00 0 00 064334'		MOVEM	DFLAG			; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 124
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0311

  5395
  5396					; Save CRAM locations
  5397
  5398	040321	200 01 0 00 060775 		MOVE	1,[-2,,7750]		; set up AOBJN word
  5399	040322	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  5400	040323	200 07 0 00 064370'		MOVE	7,RLOCB			; get initial address
  5401
  5402					; Now do each location
  5403
  5404	040324	200 06 0 00 064370'	DELOC1:	MOVE	6,RLOCB			; get current address
  5405	040325	274 06 0 00 000007 		SUB	6,7			; calculate word # (0..n)
  5406	040326	602 06 0 00 000003 		TRNE	6,3			; multiple of 4?
  5407	040327	037 00 0 00 051536 		TMSG	< >			; no - print a few spaces
  5408	040330	606 06 0 00 000003 		TRNN	6,3			; multiple of 4?
  5409						GO	[TMSGC	<LS>		; yes - start a new line
  5410							 MOVE	RLOCB
  5411							 PNTOCS
  5412							 TMSG	</ >
  5413	040331	260 17 0 00 060777 			 RTN]
  5414	040332	200 00 0 00 064370'		MOVE	RLOCB			;  get local storage address
  5415	040333	137 00 0 00 061004 		DPB	[POINT 10,DELOCM,35]	; save it in microword
  5416	040334	201 01 0 00 040530 		MOVEI	1,DELOCM		; set up microcode address
  5417	040335	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  5418	040336	255 00 0 00 000000 		JFCL				; ignore error
  5419	040337	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5420	040340	242 01 0 00 000001 		LSH	1,1			; position correctly
  5421	040341	260 17 0 00 040223*		GO	LDRAR			; load the RAR
  5422	040342	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  5423	040343	260 17 0 00 040225*		GO	LDCSR			; write to CSR register
  5424	040344	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF data
  5425	040345	260 17 0 00 040343*		GO	LDCSR			; write to CSR register
  5426	040346	260 17 0 00 040044*		GO	RDEBUF			; read EBUF contents
  5427	040347	200 00 0 00 000001 		MOVE	1			; get register data
  5428	040350	037 13 0 00 000000 		PNTHW				; print it
  5429	040351	037 07 0 00 000003 		TTALTM				; altmode key struck?
  5430	040352	334 00 0 00 000000 		SKIPA				; no - proceed
  5431						JRST	[SETOM	ALTF		; yes - set altmode typed flag 
  5432							 SETZM	MULFLG		;   and clear 'examine next' flag
  5433	040353	254 00 0 00 061005 			 JRST	DELOCX]		;   and exit
  5434	040354	350 01 0 00 064370'		AOS	1,RLOCB			; point to next location
  5435	040355	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next location
  5436	040356	317 01 0 00 064371'		CAMG	1,RLOCE			; done yet?
  5437	040357	254 00 0 00 040324 		JRST	DELOC1			; no - loop till done
  5438
  5439					; Restore CRAM locations and exit
  5440
  5441	040360	336 00 0 00 064354'	DELOCX:	SKIPN	MULFLG			; in 'examine next'?
  5442	040361	037 00 0 00 030242 		PCRL				; no - print blank line
  5443	040362	200 01 0 00 060775 		MOVE	1,[-2,,7750]		; set up AOBJN word
  5444	040363	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  5445	040364	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 125
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0312

  5446
  5447					;#********************************************************************
  5448					;* DDLOCS - Deposit local storage 
  5449					;
  5450					; Format:  DLOCS adr,data
  5451					;#********************************************************************
  5452
  5453	040365	200 01 0 00 061015 	DDLOCS:	MOVE	1,[FMSGCD <DLOCS addr,data (CR)>]
  5454	040366	260 17 0 00 040276*		GO	.DARG			; get address
  5455	040367	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5456						 JRST	[FMSGCD	<? Missing argument>
  5457							 GO	FIOFF
  5458	040370	254 00 0 00 054406 			 RTN]
  5459	040371	200 00 0 00 040301*	DDLOC0:	MOVE	ARGUM			; get argument
  5460	040372	301 00 0 00 000000 		CAIL	0			; in range 0-1777?
  5461	040373	303 00 0 00 001777 		CAILE	1777
  5462						JRST	[FMSGCD	<? Range of Local Storage addresses is 0-1777>
  5463							 GO	FIOFF
  5464	040374	254 00 0 00 061030 			 RTN]
  5465	040375	202 00 0 00 040553 		MOVEM	LOCFR			; save 'from' argument
  5466	040376	202 00 0 00 040554 		MOVEM	LOCTO			; save 'to' argument
  5467	040377	200 01 0 00 061015 		MOVE	1,[FMSGCD <DLOCS addr,data (CR)>]
  5468	040400	260 17 0 00 040100*		GO	.OARG			; get data
  5469	040401	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5470						 JRST	[FMSGCD	<? Missing argument>
  5471							 GO	FIOFF
  5472	040402	254 00 0 00 054406 			 RTN]
  5473	040403	200 00 0 00 040371*		MOVE	ARGUM			; get argument
  5474	040404	202 00 0 00 064345'		MOVEM	LARG2#			; save it
  5475	040405	201 00 0 00 000012 		MOVEI	^D10			; get DLOCS flag
  5476	040406	202 00 0 00 064334'		MOVEM	DFLAG			; save it
  5477
  5478					; Save CRAM locations
  5479
  5480	040407	200 01 0 00 060732 		MOVE	1,[-5,,7750]		; set up AOBJN word
  5481	040410	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  5482
  5483					; Load microcode
  5484
  5485	040411	200 00 0 00 040553 		MOVE	LOCFR			; get location to write
  5486	040412	137 00 0 00 061033 		DPB	[POINT 10,DDLOCM+8,35]	; set up local storage address
  5487	040413	202 00 0 00 037262 		MOVEM	ANEXT			; save address
  5488	040414	350 00 0 00 037262 		AOS	ANEXT			; set to next address
  5489	040415	201 01 0 00 040535 		MOVEI	1,DDLOCM		; set up microcode address
  5490	040416	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  5491	040417	255 00 0 00 000000 		JFCL				; ignore error
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 126
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0313

  5492
  5493					; Now do the deposit
  5494
  5495	040420	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5496	040421	242 01 0 00 000001 		LSH	1,1			; position correctly
  5497	040422	260 17 0 00 040341*		GO	LDRAR			; load the RAR
  5498	040423	201 01 0 00 000010 		MOVEI	1,MPRUN			; set initial data
  5499	040424	260 17 0 00 040345*		GO	LDCSR			; start the port
  5500	040425	200 01 0 00 064345'		MOVE	1,LARG2			; get data to write
  5501	040426	260 17 0 00 040132*		GO	.DATAO			; give to port
  5502	040427	400 01 0 00 000000 		SETZ	1,			; stop the port
  5503	040430	260 17 0 00 040424*		GO	LDCSR
  5504
  5505					; Check if additional arguments
  5506
  5507	040431	336 00 0 00 040135*		SKIPN	ARGFLG			; any more arguments
  5508	040432	254 00 0 00 040436 		JRST	DDLOCX			; no - exit
  5509	040433	200 00 0 00 037262 		MOVE	ANEXT			; get register number
  5510	040434	202 00 0 00 040403*		MOVEM	ARGUM			; save it
  5511	040435	254 00 0 00 040371 		JRST	DDLOC0			; loop till done
  5512
  5513					; Restore CRAM locations and exit
  5514
  5515	040436	200 01 0 00 060732 	DDLOCX:	MOVE	1,[-5,,7750]		; set up AOBJN word
  5516	040437	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  5517	040440	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 127
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0314

  5518
  5519					;#********************************************************************
  5520					;* DZLOCS - Zero local storage 
  5521					;
  5522					; Format:  ZLOCS adr1,adr2
  5523					;#********************************************************************
  5524
  5525	040441	200 00 0 00 040553 	DZLOCS:	MOVE	LOCFR			; set up default of local storage range
  5526	040442	202 00 0 00 064370'		MOVEM	RLOCB#			;   to be whatever was typed before
  5527	040443	200 00 0 00 040554 		MOVE	LOCTO			;   or if nothing typed, then 0-0
  5528	040444	202 00 0 00 064371'		MOVEM	RLOCE#
  5529
  5530					; Get arguments
  5531
  5532	040445	200 01 0 00 061042 		MOVE	1,[FMSGCD <ZLOCS addr1,addr2 (CR)>]
  5533	040446	260 17 0 00 040366*		GO	.DARG			; get first address
  5534	040447	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5535	040450	254 00 0 00 040462 		 JRST	DZLOC0			; no arguments given - continue
  5536	040451	200 00 0 00 040434*		MOVE	ARGUM			; get argument
  5537	040452	202 00 0 00 064370'		MOVEM	RLOCB			; save in 'from' location
  5538	040453	202 00 0 00 064371'		MOVEM	RLOCE			; save in 'to' location
  5539
  5540	040454	210 01 0 00 061042 		MOVN	1,[FMSGCD <ZLOCS addr1,addr2 (CR)>]
  5541	040455	260 17 0 00 040446*		GO	.DARG			; get 2nd address
  5542	040456	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5543	040457	254 00 0 00 040462 		 JRST	DZLOC0			; no arguments given - continue
  5544	040460	200 00 0 00 040451*		MOVE	ARGUM			; get argument
  5545	040461	202 00 0 00 064371'		MOVEM	RLOCE			; save in 'to' location
  5546
  5547					; Now range check the arguments
  5548
  5549	040462	331 01 0 00 064370'	DZLOC0:	SKIPL	1,RLOCB			; 1st argument in range?
  5550	040463	303 01 0 00 001777 		CAILE	1,1777
  5551						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  5552							 GO	FIOFF
  5553	040464	254 00 0 00 060772 			 RTN]
  5554	040465	331 01 0 00 064371'		SKIPL	1,RLOCE			; 2nd argument in range?
  5555	040466	303 01 0 00 001777 		CAILE	1,1777
  5556						JRST	[FMSGCD	<? Range of local storage locations is 0-1777>
  5557							 GO	FIOFF
  5558	040467	254 00 0 00 060772 			 RTN]
  5559	040470	274 01 0 00 064370'		SUB	1,RLOCB			; see if range ok
  5560						JUMPL	1,[FMSGCD <? Range nonsensical>
  5561							   GO	FIOFF
  5562	040471	321 01 0 00 057176 			   RTN]
  5563	040472	200 00 0 00 064370'		MOVE	RLOCB			; get 'from' argument
  5564	040473	202 00 0 00 040553 		MOVEM	LOCFR			; save it
  5565	040474	200 00 0 00 064371'		MOVE	RLOCE			; get 'to' argument
  5566	040475	202 00 0 00 040554 		MOVEM	LOCTO			; save it
  5567	040476	201 00 0 00 000013 		MOVEI	^D11			; get ZLOCS flag
  5568	040477	202 00 0 00 064334'		MOVEM	DFLAG			; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 128
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0315

  5569
  5570					; Save CRAM location
  5571
  5572	040500	200 01 0 00 060714 		MOVE	1,[-1,,7750]		; set up AOBJN word
  5573	040501	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  5574
  5575					; Now do each location
  5576
  5577	040502	200 00 0 00 064370'	DZLOC1:	MOVE	RLOCB			; get location to write
  5578	040503	137 00 0 00 061043 		DPB	[POINT 10,DZLOCM,35]	; set up local storage address
  5579	040504	201 01 0 00 040550 		MOVEI	1,DZLOCM		; set up microcode address
  5580	040505	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  5581	040506	255 00 0 00 000000 		JFCL				; ignore error
  5582	040507	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  5583	040510	242 01 0 00 000001 		LSH	1,1			; position correctly
  5584	040511	260 17 0 00 040422*		GO	LDRAR			; load the RAR
  5585	040512	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  5586	040513	260 17 0 00 040430*		GO	LDCSR
  5587	040514	400 01 0 00 000000 		SETZ	1,			; stop the port
  5588	040515	260 17 0 00 040513*		GO	LDCSR
  5589	040516	037 07 0 00 000003 		TTALTM				; altmode key struck?
  5590	040517	334 00 0 00 000000 		SKIPA				; no - proceed
  5591	040520	254 00 0 00 040525 		JRST	DZLOCX			; yes - exit
  5592	040521	350 01 0 00 064370'		AOS	1,RLOCB			; point to next location
  5593	040522	202 01 0 00 037262 		MOVEM	1,ANEXT			; save next location
  5594	040523	317 01 0 00 064371'		CAMG	1,RLOCE			; done yet?
  5595	040524	254 00 0 00 040502 		JRST	DZLOC1			; no - loop till done
  5596
  5597					; Restore CRAM location and exit
  5598
  5599	040525	200 01 0 00 060714 	DZLOCX:	MOVE	1,[-1,,7750]		; set up AOBJN word
  5600	040526	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  5601	040527	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 129
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0316

  5602
  5603					; Microcode to examine local storage
  5604
  5605	040530	775077	510000		DELOCM:	MWORD	<ADDR=7750,JMAP,J=7751,SD0,OR,D=2,RDLM>
  5606	040531	732000	220040
  5607	040532	775177	512004			MWORD	<JMAP,J=7751,S0A,OR,D=1,OENA,SELE,MGC=4>
  5608	040533	431000	005040
  5609	040534	777777	777777			-1
  5610
  5611					; Microcode to deposit local storage
  5612
  5613	040535	775077	510000		DDLOCM:	MWORD	<ADDR=7750,JMAP,J=7751,D=1>		; 7750
  5614	040536	001000	000040
  5615	040537	775177	530000			MWORD	<CJP,J=7753,D=1,CENA,CCER>		; 7751
  5616	040540	001400	100060
  5617	040541	775277	510000			MWORD	<JMAP,J=7751,D=1>			; 7752
  5618	040542	001000	000040
  5619	040543	775300	000010			MWORD	<CONT,SD0,OR,D=2,SELE,MGC=10>		; 7753
  5620	040544	732000	005340
  5621	040545	775477	542000			MWORD	<JMAP,J=7754,S0A,OR,D=1,OENA,LDLM,MGC=0>; 7754
  5622	040546	431000	230040
  5623	040547	777777	777777			-1
  5624
  5625					; Microcode to zero local storage
  5626
  5627	040550	775077	502000		DZLOCM:	MWORD	<ADDR=7750,JMAP,J=7750,S0A,AND,D=1,LDLM,OENA>
  5628	040551	441000	230040
  5629	040552	777777	777777			-1
  5630
  5631					; Arguments
  5632
  5633	040553	000000	000000		LOCFR:	0				; default range of 
  5634	040554	000000	000000		LOCTO:	0				;   locations
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 130
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0317

  5635
  5636					;#********************************************************************
  5637					;* DMARK - Set mark bit in CRAM locations
  5638					;#********************************************************************
  5639
  5640					; First check for any argument
  5641
  5642	040555	336 00 0 00 040431*	DMARK:	SKIPN	ARGFLG			; argument given?
  5643						JRST	[FMSGCD	<? Missing argument>
  5644							 GO	FIOFF
  5645	040556	254 00 0 00 054406 			 RTN]
  5646
  5647					; Obtain argument
  5648
  5649	040557	200 01 0 00 061052 	DMARK0:	MOVE	1,[FMSGCD <MARK addr,addr,... (CR)>]
  5650	040560	260 17 0 00 040400*		GO	.OARG			; get argument
  5651	040561	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5652	040562	263 17 0 00 000000 		 RTN				; done - no more arguments
  5653	040563	331 01 0 00 040460*		SKIPL	1,ARGUM			; argument out of range?
  5654	040564	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  5655						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5656							 GO	FIOFF
  5657	040565	254 00 0 00 056630 			 RTN]
  5658
  5659					; Then ensure the port is stopped
  5660
  5661	040566	260 17 0 00 037247*		GO	ISTOP			; stop the port
  5662
  5663					; Now obtain CRAM data and set MARK bit
  5664
  5665	040567	202 01 0 00 037255 		MOVEM	1,CADDR			; set up address to load
  5666	040570	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  5667	040571	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  5668	040572	260 17 0 00 037735 		GO	DRCRAM			; read the data
  5669	040573	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  5670	040574	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  5671	040575	660 03 0 00 000001 		TRO	3,1			; set mark bit
  5672	040576	202 03 0 00 037257 		MOVEM	3,CWORDR		; save data
  5673	040577	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  5674	040600	402 00 0 00 035271 		SETZM	PARFLG			; clear parity flag
  5675	040601	260 17 0 00 037703 		GO	DWCRAM			; load CRAM data
  5676	040602	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  5677	040603	254 00 0 00 040557 		JRST	DMARK0			; get next address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 131
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0318

  5678
  5679					;#********************************************************************
  5680					;* DRMARK - Remove mark bit in CRAM locations
  5681					;#********************************************************************
  5682
  5683					; First check for any argument
  5684
  5685	040604	336 00 0 00 040555*	DRMARK:	SKIPN	ARGFLG			; argument given?
  5686						JRST	[FMSGCD	<? Missing argument>
  5687							 GO	FIOFF
  5688	040605	254 00 0 00 054406 			 RTN]
  5689
  5690					; Obtain argument
  5691
  5692	040606	200 01 0 00 061061 	DRMAR0:	MOVE	1,[FMSGCD <RMARK addr,addr,... (CR)>]
  5693	040607	260 17 0 00 040560*		GO	.OARG			; get argument
  5694	040610	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5695	040611	263 17 0 00 000000 		 RTN				; done - no more arguments
  5696	040612	331 01 0 00 040563*		SKIPL	1,ARGUM			; argument out of range?
  5697	040613	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  5698						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5699							 GO	FIOFF
  5700	040614	254 00 0 00 056630 			 RTN]
  5701
  5702					; Then ensure the port is stopped
  5703
  5704	040615	260 17 0 00 040566*		GO	ISTOP			; stop the port
  5705
  5706					; Now obtain CRAM data and set MARK bit
  5707
  5708	040616	202 01 0 00 037255 		MOVEM	1,CADDR			; set up address to load
  5709	040617	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  5710	040620	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  5711	040621	260 17 0 00 037735 		GO	DRCRAM			; read the data
  5712	040622	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  5713	040623	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  5714	040624	620 03 0 00 000001 		TRZ	3,1			; clear mark bit
  5715	040625	202 03 0 00 037257 		MOVEM	3,CWORDR		; save data
  5716	040626	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  5717	040627	402 00 0 00 035271 		SETZM	PARFLG			; clear parity flag
  5718	040630	260 17 0 00 037703 		GO	DWCRAM			; load CRAM data
  5719	040631	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  5720	040632	254 00 0 00 040606 		JRST	DRMAR0			; get next address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 132
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0319

  5721
  5722					;#********************************************************************
  5723					;* DCMARK - Clear all mark bits
  5724					;
  5725					; If arguments are given, they are assumed to the the locations between
  5726					; which all mark bits are to be removed.
  5727					;#********************************************************************
  5728
  5729					; Start to process the arguments typed - both should be CRAM
  5730					; addresses in octal.
  5731
  5732	040633	400 05 0 00 000000 	DCMARK:	SETZ	5,			; init range of addresses
  5733	040634	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  5734
  5735					; Get first address
  5736
  5737	040635	200 01 0 00 061070 		MOVE	1,[FMSGCD <CMARK addr1,addr2 (CR)>]
  5738	040636	260 17 0 00 040607*		GO	.OARG			; get first address
  5739	040637	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5740	040640	254 00 0 00 040652 		 JRST	DCMAR0			; no arguments given - continue
  5741	040641	200 00 0 00 040612*		MOVE	ARGUM			; get argument
  5742	040642	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  5743	040643	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5744
  5745					; Get 2nd address
  5746
  5747	040644	210 01 0 00 061070 		MOVN	1,[FMSGCD <CMARK addr1,addr2 (CR)>]
  5748	040645	260 17 0 00 040636*		GO	.OARG			; get first address
  5749	040646	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5750	040647	254 00 0 00 040652 		 JRST	DCMAR0			; no arguments given - continue
  5751	040650	200 00 0 00 040641*		MOVE	ARGUM			; get argument
  5752	040651	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5753
  5754					; Now range check the arguments
  5755
  5756	040652	331 00 0 00 000005 	DCMAR0:	SKIPL	5			; 1st argument in range?
  5757	040653	303 05 0 00 007777 		CAILE	5,7777		
  5758						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5759							 GO	FIOFF
  5760	040654	254 00 0 00 056630 			 RTN]
  5761	040655	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  5762	040656	303 06 0 00 007777 		CAILE	6,7777		
  5763						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5764							 GO	FIOFF
  5765	040657	254 00 0 00 056630 			 RTN]
  5766	040660	274 01 0 00 000005 		SUB	1,5			; see if range ok
  5767						JUMPL	1,[FMSGCD <? Range nonsensical>
  5768							   GO	FIOFF
  5769	040661	321 01 0 00 057176 			   RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 133
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0320

  5770
  5771					; Then ensure the port is stopped
  5772
  5773	040662	260 17 0 00 040615*		GO	ISTOP			; stop the port
  5774
  5775					; Now obtain CRAM data and load back into CRAM without MARK bit set
  5776
  5777	040663	202 05 0 00 037255 	DCMAR1:	MOVEM	5,CADDR			; set up address to load
  5778	040664	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  5779	040665	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  5780	040666	260 17 0 00 037735 		GO	DRCRAM			; read the data
  5781	040667	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  5782	040670	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  5783	040671	626 03 0 00 000001 		TRZN	3,1			; clear mark bit - set?
  5784	040672	254 00 0 00 040700 		JRST	DCMAR2			; no - continue
  5785	040673	202 03 0 00 037257 		MOVEM	3,CWORDR		; save data
  5786	040674	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  5787	040675	402 00 0 00 035271 		SETZM	PARFLG			; clear parity flag
  5788	040676	260 17 0 00 037703 		GO	DWCRAM			; load CRAM data
  5789	040677	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  5790	040700	350 00 0 00 000005 	DCMAR2:	AOS	5			; increment 'from' address
  5791	040701	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  5792	040702	254 00 0 00 040663 		JRST	DCMAR1			; no - get next address
  5793	040703	263 17 0 00 000000 		RTN				; yes - exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 134
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0321

  5794
  5795					;#********************************************************************
  5796					;* DLMARK - List locations with mark bit set
  5797					;
  5798					; If arguments are given, they are assumed to the the locations between
  5799					; which all mark bits are to be listed.
  5800					;#********************************************************************
  5801
  5802					; Start to process the arguments typed - both should be CRAM
  5803					; addresses in octal.
  5804
  5805	040704	400 05 0 00 000000 	DLMARK:	SETZ	5,			; init range of addresses
  5806	040705	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  5807
  5808					; Get first address
  5809
  5810	040706	200 01 0 00 061077 		MOVE	1,[FMSGCD <LMARK addr1,addr2 (CR)>]
  5811	040707	260 17 0 00 040645*		GO	.OARG			; get first address
  5812	040710	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5813	040711	254 00 0 00 040723 		 JRST	DLMAR0			; no arguments given - continue
  5814	040712	200 00 0 00 040650*		MOVE	ARGUM			; get argument
  5815	040713	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  5816	040714	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5817
  5818					; Get 2nd address
  5819
  5820	040715	210 01 0 00 061077 		MOVN	1,[FMSGCD <LMARK addr1,addr2 (CR)>]
  5821	040716	260 17 0 00 040707*		GO	.OARG			; get first address
  5822	040717	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5823	040720	254 00 0 00 040723 		 JRST	DLMAR0			; no arguments given - continue
  5824	040721	200 00 0 00 040712*		MOVE	ARGUM			; get argument
  5825	040722	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  5826
  5827					; Now range check the arguments
  5828
  5829	040723	331 00 0 00 000005 	DLMAR0:	SKIPL	5			; 1st argument in range?
  5830	040724	303 05 0 00 007777 		CAILE	5,7777		
  5831						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5832							 GO	FIOFF
  5833	040725	254 00 0 00 056630 			 RTN]
  5834	040726	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  5835	040727	303 06 0 00 007777 		CAILE	6,7777		
  5836						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  5837							 GO	FIOFF
  5838	040730	254 00 0 00 056630 			 RTN]
  5839	040731	274 01 0 00 000005 		SUB	1,5			; see if range ok
  5840						JUMPL	1,[FMSGCD <? Range nonsensical>
  5841							   GO	FIOFF
  5842	040732	321 01 0 00 057176 			   RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 135
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0322

  5843
  5844					; Then ensure the port is stopped
  5845
  5846	040733	260 17 0 00 040662*		GO	ISTOP			; stop the port
  5847	040734	200 07 0 00 061100 		MOVE	7,[-2]			; initialize mark bit count
  5848	040735	037 00 0 00 061101 		TMSGC	<Mark bit set at:  >
  5849
  5850					; Now obtain CRAM data and check mark bit
  5851
  5852	040736	202 05 0 00 037255 	DLMAR1:	MOVEM	5,CADDR			; set up address to load
  5853	040737	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  5854	040740	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  5855	040741	260 17 0 00 037735 		GO	DRCRAM			; read the data
  5856	040742	200 03 0 00 037257 		MOVE	3,CWORDR		; get right word
  5857	040743	606 03 0 00 000001 		TRNN	3,1			; mark bit set?
  5858	040744	254 00 0 00 040752 		JRST	DLMAR2			; no - continue
  5859
  5860					; Print location
  5861
  5862	040745	350 00 0 00 000007 		AOS	7			; next 5 characters
  5863	040746	303 07 0 00 000007 		CAILE	7,7			; done with line?
  5864						GO	[SETO	7,		; yes - init counter
  5865							 TMSGC	<                  >
  5866	040747	260 17 0 00 061113 			 RTN]
  5867	040750	001 04 0 00 000005 		PNTOCC	4,5			; print address
  5868	040751	037 00 0 00 000040 		PSP				; print a space
  5869
  5870					; Increment to next location
  5871
  5872	040752	037 07 0 00 000003 	DLMAR2:	TTALTM				; altmode key struck?
  5873	040753	334 00 0 00 000000 		SKIPA				; no - proceed
  5874	040754	254 00 0 00 040760 		JRST	DLMARX			; yes - exit
  5875	040755	350 00 0 00 000005 		AOS	5			; increment 'from' address
  5876	040756	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  5877	040757	254 00 0 00 040736 		JRST	DLMAR1			; no - get next address
  5878	040760	037 00 0 00 030242 	DLMARX:	PCRL				; yes - print blank line
  5879	040761	263 17 0 00 000000 		RTN				;   and exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 136
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0323

  5880
  5881					;#********************************************************************
  5882					;* DENEXT - Examine next
  5883					;#********************************************************************
  5884
  5885	040762	402 00 0 00 040721*	DENEXT:	SETZM	ARGUM			; default to repeat count
  5886	040763	350 00 0 00 040762*		AOS	ARGUM			;   of 1
  5887	040764	200 01 0 00 061126 		MOVE	1,[FMSGCD (ENEXT repcount <CR> or ENEXT <CR>)]
  5888	040765	260 17 0 00 040455*		GO	.DARG			; get repeat count
  5889	040766	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  5890	040767	255 00 0 00 000000 		 JFCL				; no argument given
  5891	040770	200 00 0 00 040763*		MOVE	ARGUM			; get argument
  5892
  5893					; Do the examine
  5894
  5895	040771	476 00 0 00 064354'	DENE0:	SETOM	MULFLG			; set 'multiple examine' flag
  5896	040772	200 00 0 00 040770*		MOVE	ARGUM			; get argument
  5897	040773	307 00 0 00 000001 		CAIG	1			; only one more repetition?
  5898	040774	402 00 0 00 064354'		SETZM	MULFLG			; yes - clear 'multiple examine' flag
  5899	040775	200 01 0 00 064334'		MOVE	1,DFLAG			; get last operation done
  5900	040776	554 00 0 01 041007 		HLRZ	DETAB(1)		; get new value of DFLAG
  5901	040777	202 00 0 00 064334'		MOVEM	DFLAG			; save it
  5902	041000	550 02 0 01 041007 		HRRZ	2,DETAB(1)		; get dispatch address
  5903	041001	260 17 0 02 000000 		GO	(2)			; dispatch
  5904	041002	336 00 0 00 064326'		SKIPN	ALTF			; altmode typed?
  5905	041003	377 00 0 00 040772*		SOSG	ARGUM			; repeat count exhausted?
  5906	041004	263 17 0 00 000000 		RTN				; yes - exit
  5907	041005	402 00 0 00 064355'		SETZM	MULINI			; clear 'initial examine' flag
  5908	041006	254 00 0 00 040771 		JRST	DENE0			; no - loop till done
  5909
  5910					; Dispatch table
  5911
  5912	041007	000000	041023		DETAB:	0,,DENEX0			; ECRAM
  5913	041010	000000	041023			0,,DENEX0			; DCRAM
  5914	041011	000000	041023			0,,DENEX0			; BCRAM
  5915	041012	000000	041023			0,,DENEX0			; ACRAM
  5916	041013	000000	041023			0,,DENEX0			; ZCRAM
  5917	041014	000005	041023			5,,DENEX0			; LCRAM
  5918	041015	000006	041027			6,,DENEX1			; E2901
  5919	041016	000006	041027			6,,DENEX1			; D2901
  5920	041017	000006	041027			6,,DENEX1			; Z2901
  5921	041020	000011	041033			9,,DENEX2			; ELOCS
  5922	041021	000011	041033			9,,DENEX2			; DLOCS
  5923	041022	000011	041033			9,,DENEX2			; ZLOCS
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 137
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0324

  5924	
  5925					; To handle CRAM examine ...
  5926
  5927	041023	200 00 0 00 037262 	DENEX0:	MOVE	ANEXT			; get address
  5928	041024	202 00 0 00 037254 		MOVEM	CRAMTO			; set up 'to' and 'from'
  5929	041025	202 00 0 00 037253 		MOVEM	CRAMFR			;   addresses
  5930	041026	254 00 0 00 037233 		PJRST	DCOM0			; go handle
  5931
  5932					; To handle 2901 registers
  5933
  5934	041027	200 00 0 00 037262 	DENEX1:	MOVE	ANEXT			; get register number
  5935	041030	202 00 0 00 064364'		MOVEM	RALUB			; save in 'from' location
  5936	041031	202 00 0 00 064365'		MOVEM	RALUE			; save in 'to' location
  5937	041032	254 00 0 00 037777 		PJRST	DEALU0			; go handle
  5938
  5939					; To handle local storage
  5940
  5941	041033	200 00 0 00 037262 	DENEX2:	MOVE	ANEXT			; get address
  5942	041034	202 00 0 00 064370'		MOVEM	RLOCB			; save in 'from' location
  5943	041035	202 00 0 00 064371'		MOVEM	RLOCE			; save in 'to' location
  5944	041036	254 00 0 00 040303 		PJRST	DELOC0			; go handle
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 138
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0325

  5945
  5946					;#********************************************************************
  5947					;* DDNEXT - Deposit next
  5948					;#********************************************************************
  5949
  5950	041037	200 01 0 00 064334'	DDNEXT:	MOVE	1,DFLAG			; get last operation done
  5951	041040	554 00 0 01 041044 		HLRZ	DDTAB(1)		; get new value of DFLAG
  5952	041041	202 00 0 00 064334'		MOVEM	DFLAG			; save it
  5953	041042	550 02 0 01 041044 		HRRZ	2,DDTAB(1)		; get dispatch address
  5954	041043	254 00 0 02 000000 		JRST	(2)			; dispatch
  5955
  5956					; Dispatch table
  5957
  5958	041044	000001	041060		DDTAB:	1,,DDNEX0			; ECRAM
  5959	041045	000001	041060			1,,DDNEX0			; DCRAM
  5960	041046	000002	041060			2,,DDNEX0			; BCRAM
  5961	041047	000003	041060			3,,DDNEX0			; ACRAM
  5962	041050	000003	041060			3,,DDNEX0			; ZCRAM
  5963	041051	000003	041060			3,,DDNEX0			; LCRAM
  5964	041052	000007	041067			7,,DDNEX1			; E2901
  5965	041053	000007	041067			7,,DDNEX1			; D2901
  5966	041054	000007	041067			7,,DDNEX1			; Z2901
  5967	041055	000012	041074			^D10,,DDNEX2			; ELOCS
  5968	041056	000012	041074			^D10,,DDNEX2			; DLOCS
  5969	041057	000012	041074			^D10,,DDNEX2			; ZLOCS
  5970	
  5971					; To handle CRAM deposit ...
  5972
  5973	041060	200 01 0 00 061132 	DDNEX0:	MOVE	1,[FMSGCD (DNEXT <CR>)]
  5974	041061	260 17 0 00 037161*		GO	CHKARG			; check for argument
  5975	041062	263 17 0 00 000000 		RTN				; error - exit
  5976	041063	200 00 0 00 037262 		MOVE	ANEXT			; get address
  5977	041064	202 00 0 00 037254 		MOVEM	CRAMTO			; set up 'to' and 'from'
  5978	041065	202 00 0 00 037253 		MOVEM	CRAMFR			;   addresses
  5979	041066	254 00 0 00 037233 		PJRST	DCOM0			; go handle
  5980
  5981					; To handle 2901 registers
  5982
  5983	041067	200 00 0 00 037262 	DDNEX1:	MOVE	ANEXT			; get register number
  5984	041070	202 00 0 00 064364'		MOVEM	RALUB			; save in 'from' location
  5985	041071	202 00 0 00 064365'		MOVEM	RALUE			; save in 'to' location
  5986	041072	202 00 0 00 041003*		MOVEM	ARGUM			; save it
  5987	041073	254 00 0 00 040070 		PJRST	DDALU0			; go handle
  5988
  5989					; To handle local storage
  5990
  5991	041074	200 00 0 00 037262 	DDNEX2:	MOVE	ANEXT			; get address
  5992	041075	202 00 0 00 064370'		MOVEM	RLOCB			; save in 'from' location
  5993	041076	202 00 0 00 064371'		MOVEM	RLOCE			; save in 'to' location
  5994	041077	202 00 0 00 041072*		MOVEM	ARGUM			; save it
  5995	041100	254 00 0 00 040371 		PJRST	DDLOC0			; go handle
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 139
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0326

  5996
  5997					;#********************************************************************
  5998					;* DESTAK - examine 2910 stack
  5999					;#********************************************************************
  6000
  6001	041101	200 01 0 00 061137 	DESTAK:	MOVE	1,[FMSGCD (ESTACK <CR>)]
  6002	041102	260 17 0 00 041061*		GO	CHKARG			; check for argument
  6003	041103	263 17 0 00 000000 		RTN				; error - exit
  6004	041104	200 01 0 00 060714 		MOVE	1,[-1,,7750]		; set up AOBJN word
  6005	041105	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  6006	041106	201 01 0 00 041136 		MOVEI	1,DESTKM		; set up microcode address
  6007	041107	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  6008	041110	255 00 0 00 000000 		JFCL				; ignore error
  6009
  6010					; Do the task
  6011
  6012	041111	260 17 0 00 040733*		GO	ISTOP			; stop the port
  6013	041112	037 00 0 00 061140 		TMSGC	<2910 Stack:>
  6014	041113	037 00 0 00 061143 		TMSGC	< Location   Contents (addr)>
  6015	041114	474 04 0 00 000000 		SETO	4,			; initialize location pointer
  6016	041115	350 00 0 00 000004 	DESTA0:	AOS	4			; point to next location
  6017	041116	303 04 0 00 000004 		CAILE	4,4			; done yet?
  6018	041117	254 00 0 00 041132 		JRST	DESTAX			; yes - exit
  6019	041120	402 00 0 00 037067*		SETZM	SDATA			; get initial CSR data
  6020	041121	201 00 0 00 007750 		MOVEI	7750			; set up next address
  6021	041122	202 00 0 00 037044*		MOVEM	SNEXT			;   for IPASST
  6022	041123	260 17 0 00 035530*		GO	IPASST			; single step once
  6023						 JRST	[FMSGCD	<? Error accessing CSR register>
  6024							 GO	FIOFF
  6025	041124	254 00 0 00 061151 			 JRST	DESTAY]
  6026						 JRST	[FMSGCD	<? Port not stopped>
  6027							 GO	FIOFF
  6028	041125	254 00 0 00 061154 			 JRST	DESTAY]
  6029	041126	255 00 0 00 000000 		 JFCL				; error bits set in CSR
  6030						XCT	[TMSGC	<   Top  >
  6031							 TMSGC	<    -1  >
  6032							 TMSGC	<    -2  >
  6033							 TMSGC	<    -3  >
  6034	041127	256 00 0 04 061176 			 TMSGC	<    -4  >](4)
  6035	041130	001 12 0 00 041122*		PNTOCC	12,SNEXT		; print address
  6036	041131	254 00 0 00 041115 		JRST	DESTA0			; loop till done
  6037
  6038					; Restore CRAM location/exit
  6039
  6040	041132	037 00 0 00 030242 	DESTAX:	PCRL
  6041	041133	200 01 0 00 060714 	DESTAY:	MOVE	1,[-1,,7750]		; set up AOBJN word
  6042	041134	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  6043	041135	263 17 0 00 000000 		RTN				; return
  6044
  6045					; Microcode
  6046
  6047	041136	775000	000000		DESTKM:	MWORD	<ADDR=7750,CRTN,D=1>	; 7750
  6048	041137	001000	000240
  6049	041140	777777	777777			-1
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 140
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0327

  6050
  6051					;#********************************************************************
  6052					;* DBREAK - Set breakpoint
  6053					;
  6054					; A breakpoint is set by reading the particular CRAM location  and
  6055					; rewriting it with bad parity.  Nothing can be done at the break-
  6056					; point except read the CSR register.
  6057					;#********************************************************************
  6058
  6059					; First check for any argument
  6060
  6061	041141	336 00 0 00 040604*	DBREAK:	SKIPN	ARGFLG			; argument given?
  6062						JRST	[FMSGCD	<? Missing argument>
  6063							 GO	FIOFF
  6064	041142	254 00 0 00 054406 			 RTN]
  6065
  6066					; Obtain argument
  6067
  6068	041143	200 01 0 00 061211 	DBREA0:	MOVE	1,[FMSGCD <BREAK addr,addr,... (CR)>]
  6069	041144	260 17 0 00 040716*		GO	.OARG			; get argument
  6070	041145	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6071	041146	263 17 0 00 000000 		 RTN				; done - no more arguments
  6072	041147	331 01 0 00 041077*		SKIPL	1,ARGUM			; argument out of range?
  6073	041150	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  6074						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  6075							 GO	FIOFF
  6076	041151	254 00 0 00 056630 			 RTN]
  6077
  6078					; Then ensure the port is stopped
  6079
  6080	041152	260 17 0 00 041111*		GO	ISTOP			; stop the port
  6081
  6082					; Now obtain CRAM data and give it bad parity
  6083
  6084	041153	202 01 0 00 037255 		MOVEM	1,CADDR			; set up address to load
  6085	041154	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  6086	041155	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  6087	041156	260 17 0 00 037735 		GO	DRCRAM			; read the data
  6088	041157	261 17 0 00 000001 		PUT	1			; save AC1
  6089	041160	474 01 0 00 000000 		SETO	1,			; set 'force bad parity' flag
  6090	041161	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  6091	041162	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  6092	041163	260 17 0 00 043125 		GO	CALPAR			; insert parity
  6093	041164	202 02 0 00 037256 		MOVEM	2,CWORDL		; save left half
  6094	041165	202 03 0 00 037257 		MOVEM	3,CWORDR		; save right half
  6095	041166	262 17 0 00 000001 		GET	1			; restore AC1
  6096	041167	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  6097	041170	402 00 0 00 035271 		SETZM	PARFLG			; clear parity flag
  6098	041171	260 17 0 00 037703 		GO	DWCRAM			; load CRAM data (now with bad parity)
  6099	041172	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  6100	041173	254 00 0 00 041143 		JRST	DBREA0			; get next address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 141
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0328

  6101
  6102					;#********************************************************************
  6103					;* DRBRK - Remove breakpoint
  6104					;#********************************************************************
  6105
  6106					; First check for any argument
  6107
  6108	041174	336 00 0 00 041141*	DRBRK:	SKIPN	ARGFLG			; argument given?
  6109						JRST	[FMSGCD	<? Missing argument>
  6110							 GO	FIOFF
  6111	041175	254 00 0 00 054406 			 RTN]
  6112
  6113					; Obtain argument
  6114
  6115	041176	200 01 0 00 061220 	DRBR0:	MOVE	1,[FMSGCD <RBREAK addr,addr,... (CR)>]
  6116	041177	260 17 0 00 041144*		GO	.OARG			; get argument
  6117	041200	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6118	041201	263 17 0 00 000000 		 RTN				; done - no more arguments
  6119	041202	331 01 0 00 041147*		SKIPL	1,ARGUM			; argument out of range?
  6120	041203	303 01 0 00 007777 		CAILE	1,7777			;   (0-7777)
  6121						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  6122							 GO	FIOFF
  6123	041204	254 00 0 00 056630 			 RTN]
  6124
  6125					; Then ensure the port is stopped
  6126
  6127	041205	260 17 0 00 041152*		GO	ISTOP			; stop the port
  6128
  6129					; Now obtain CRAM data and load back into CRAM with good parity
  6130
  6131	041206	202 01 0 00 037255 		MOVEM	1,CADDR			; set up address to load
  6132	041207	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  6133	041210	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  6134	041211	260 17 0 00 037735 		GO	DRCRAM			; read the data
  6135	041212	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  6136	041213	476 00 0 00 035271 		SETOM	PARFLG			; set parity flag
  6137	041214	260 17 0 00 037703 		GO	DWCRAM			; load CRAM data (now with good parity)
  6138	041215	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  6139	041216	254 00 0 00 041176 		JRST	DRBR0			; get next address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 142
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0329

  6140
  6141					;#********************************************************************
  6142					;* DCBRK - Clear all breakpoints 
  6143					;
  6144					; If arguments are given, they are assumed to the the locations between
  6145					; which all breakpoints are to be removed.
  6146					;#********************************************************************
  6147
  6148					; Start to process the arguments typed - both should be CRAM
  6149					; addresses in octal.
  6150
  6151	041217	400 05 0 00 000000 	DCBRK:	SETZ	5,			; init range of addresses
  6152	041220	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  6153
  6154					; Get first address
  6155
  6156	041221	200 01 0 00 061227 		MOVE	1,[FMSGCD <CBREAK addr1,addr2 (CR)>]
  6157	041222	260 17 0 00 041177*		GO	.OARG			; get first address
  6158	041223	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6159	041224	254 00 0 00 041236 		 JRST	DCBR0			; no arguments given - continue
  6160	041225	200 00 0 00 041202*		MOVE	ARGUM			; get argument
  6161	041226	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  6162	041227	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  6163
  6164					; Get 2nd address
  6165
  6166	041230	210 01 0 00 061227 		MOVN	1,[FMSGCD <CBREAK addr1,addr2 (CR)>]
  6167	041231	260 17 0 00 041222*		GO	.OARG			; get first address
  6168	041232	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6169	041233	254 00 0 00 041236 		 JRST	DCBR0			; no arguments given - continue
  6170	041234	200 00 0 00 041225*		MOVE	ARGUM			; get argument
  6171	041235	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  6172
  6173					; Now range check the arguments
  6174
  6175	041236	331 00 0 00 000005 	DCBR0:	SKIPL	5			; 1st argument in range?
  6176	041237	303 05 0 00 007777 		CAILE	5,7777
  6177						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  6178							 GO	FIOFF
  6179	041240	254 00 0 00 056630 			 RTN]
  6180	041241	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  6181	041242	303 06 0 00 007777 		CAILE	6,7777
  6182						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  6183							 GO	FIOFF
  6184	041243	254 00 0 00 056630 			 RTN]
  6185	041244	274 01 0 00 000005 		SUB	1,5			; see if range ok
  6186						JUMPL	1,[FMSGCD <? Range nonsensical>
  6187							   GO	FIOFF
  6188	041245	321 01 0 00 057176 			   RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 143
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0330

  6189
  6190					; Then ensure the port is stopped
  6191
  6192	041246	260 17 0 00 041205*		GO	ISTOP			; stop the port
  6193
  6194					; Now obtain CRAM data and load back into CRAM with good parity
  6195
  6196	041247	202 05 0 00 037255 	DCBR1:	MOVEM	5,CADDR			; set up address to load
  6197	041250	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  6198	041251	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  6199	041252	260 17 0 00 037735 		GO	DRCRAM			; read the data
  6200	041253	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  6201	041254	476 00 0 00 035271 		SETOM	PARFLG			; set parity flag
  6202	041255	260 17 0 00 037703 		GO	DWCRAM			; load CRAM data (now with good parity)
  6203	041256	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  6204	041257	350 00 0 00 000005 		AOS	5			; increment 'from' address
  6205	041260	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  6206	041261	254 00 0 00 041247 		JRST	DCBR1			; no - get next address
  6207	041262	263 17 0 00 000000 		RTN				; yes - exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 144
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0331

  6208
  6209					;#********************************************************************
  6210					;* DLBRK - List breakpoints
  6211					;
  6212					; If arguments are given, they are assumed to the the locations between
  6213					; which all breakpoints are to be listed.
  6214					;#********************************************************************
  6215
  6216					; Start to process the arguments typed - both should be CRAM
  6217					; addresses in octal.
  6218
  6219	041263	400 05 0 00 000000 	DLBRK:	SETZ	5,			; init range of addresses
  6220	041264	201 06 0 00 007777 		MOVEI	6,7777			;   to 0-7777
  6221
  6222					; Get first address
  6223
  6224	041265	200 01 0 00 061236 		MOVE	1,[FMSGCD <LBREAK addr1,addr2 (CR)>]
  6225	041266	260 17 0 00 041231*		GO	.OARG			; get first address
  6226	041267	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6227	041270	254 00 0 00 041302 		 JRST	DLBR0			; no arguments given - continue
  6228	041271	200 00 0 00 041234*		MOVE	ARGUM			; get argument
  6229	041272	202 00 0 00 000005 		MOVEM	5			; save in 'from' location
  6230	041273	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  6231
  6232					; Get 2nd address
  6233
  6234	041274	210 01 0 00 061236 		MOVN	1,[FMSGCD <LBREAK addr1,addr2 (CR)>]
  6235	041275	260 17 0 00 041266*		GO	.OARG			; get first address
  6236	041276	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6237	041277	254 00 0 00 041302 		 JRST	DLBR0			; no arguments given - continue
  6238	041300	200 00 0 00 041271*		MOVE	ARGUM			; get argument
  6239	041301	202 00 0 00 000006 		MOVEM	6			; save in 'to' location
  6240
  6241					; Now range check the arguments
  6242
  6243	041302	331 00 0 00 000005 	DLBR0:	SKIPL	5			; 1st argument in range?
  6244	041303	303 05 0 00 007777 		CAILE	5,7777		
  6245						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  6246							 GO	FIOFF
  6247	041304	254 00 0 00 056630 			 RTN]
  6248	041305	331 01 0 00 000006 		SKIPL	1,6			; 2nd argument in range?
  6249	041306	303 06 0 00 007777 		CAILE	6,7777		
  6250						JRST	[FMSGCD	<? Range of CRAM locations is 0000-7777>
  6251							 GO	FIOFF
  6252	041307	254 00 0 00 056630 			 RTN]
  6253	041310	274 01 0 00 000005 		SUB	1,5			; see if range ok
  6254						JUMPL	1,[FMSGCD <? Range nonsensical>
  6255							   GO	FIOFF
  6256	041311	321 01 0 00 057176 			   RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 145
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0332

  6257
  6258					; Then ensure the port is stopped
  6259
  6260	041312	260 17 0 00 041246*		GO	ISTOP			; stop the port
  6261	041313	200 07 0 00 061100 		MOVE	7,[-2]			; initialize breakpoint count
  6262	041314	037 00 0 00 061237 		TMSGC	<Breakpoints:  >
  6263
  6264					; Now obtain CRAM data and check parity
  6265
  6266	041315	202 05 0 00 037255 	DLBR1:	MOVEM	5,CADDR			; set up address to load
  6267	041316	476 00 0 00 037256 		SETOM	CWORDL			; initialize left half
  6268	041317	476 00 0 00 037257 		SETOM	CWORDR			; initialize right half
  6269	041320	260 17 0 00 037735 		GO	DRCRAM			; read the data
  6270	041321	400 01 0 00 000000 		SETZ	1,			; clear 'bad' parity flag
  6271	041322	200 02 0 00 037256 		MOVE	2,CWORDL		; get left word
  6272	041323	200 03 0 00 037257 		MOVE	3,CWORDR		; get right word
  6273	041324	260 17 0 00 043125 		GO	CALPAR			; calculate parity
  6274	041325	316 02 0 00 037256 		CAMN	2,CWORDL		; same as before?
  6275	041326	254 00 0 00 041334 		JRST	DLBR2			; yes - good parity
  6276
  6277					; Print location
  6278
  6279	041327	350 00 0 00 000007 		AOS	7			; next 5 characters
  6280	041330	303 07 0 00 000007 		CAILE	7,7			; done with line?
  6281						GO	[SETO	7,		; yes - init counter
  6282							 TMSGC	<              >
  6283	041331	260 17 0 00 061247 			 RTN]
  6284	041332	001 04 0 00 000005 		PNTOCC	4,5			; print address
  6285	041333	037 00 0 00 000040 		PSP				; print a space
  6286
  6287					; Increment to next location
  6288
  6289	041334	037 07 0 00 000003 	DLBR2:	TTALTM				; altmode key struck?
  6290	041335	334 00 0 00 000000 		SKIPA				; no - proceed
  6291	041336	254 00 0 00 041342 		JRST	DLBRX			; yes - exit
  6292	041337	350 00 0 00 000005 		AOS	5			; increment 'from' address
  6293	041340	317 05 0 00 000006 		CAMG	5,6			; exceed 'to' address?
  6294	041341	254 00 0 00 041315 		JRST	DLBR1			; no - get next address
  6295	041342	037 00 0 00 030242 	DLBRX:	PCRL				; yes - print blank line
  6296	041343	263 17 0 00 000000 		RTN				;   and exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 146
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0333

  6297
  6298					;#********************************************************************
  6299					;* DLOAD - Load microcode into CRAM from a test.
  6300					;#********************************************************************
  6301
  6302	041344	210 01 0 00 061256 	DLOAD:	MOVN	1,[FMSGCD (LOAD XXnnn <CR>)]
  6303	041345	260 17 0 00 035136*		GO	.SARG			; get argument
  6304	041346	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6305						 JRST	[FMSGCD	<? Missing argument>
  6306							 GO	FIOFF
  6307	041347	254 00 0 00 054406 			 RTN]
  6308	041350	200 01 0 00 041300*		MOVE	1,ARGUM			; get argument
  6309	041351	260 17 0 00 034133 		GO	TSTDEC			; check for alternate format
  6310						 JRST	[FMSGCD	<? Argument error>
  6311							 GO	FIOFF
  6312	041352	254 00 0 00 061257 			 RTN]
  6313						 JRST	[FMSGC	<? Test number out of range 1 - >
  6314							 MOVE	1
  6315							 PNTOCF
  6316							 PCRLF
  6317							 GO	FIOFF
  6318	041353	254 00 0 00 061262 			 RTN]
  6319	041354	260 17 0 00 042304 		GO	TSTGET			; get test data
  6320	041355	200 01 0 00 046312 		MOVE	1,TSTMIC		; get test microcode address
  6321						JUMPLE	1,[FMSGCD <? Test specified does not have microcode>
  6322							   GO	FIOFF
  6323	041356	323 01 0 00 061301 			   RTN]
  6324	041357	260 17 0 00 041312*		GO	ISTOP			; stop the port
  6325	041360	260 17 0 00 042511 		GO	MLOADY			; load it
  6326	041361	255 00 0 00 000000 		 JFCL				; failed
  6327	041362	037 00 0 00 061304 		TMSGC	<[Number of CRAM locations loaded/verified = >
  6328	041363	200 00 0 00 064353'		MOVE	MLNUM			; get number of words loaded/verified
  6329	041364	037 15 0 00 000000 		PNTDEC	
  6330	041365	037 00 0 00 061316 		TMSGD	<.]>
  6331	041366	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 147
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0334

  6332
  6333					;#********************************************************************
  6334					;* DLIST - List microcode from test
  6335					;#********************************************************************
  6336
  6337	041367	210 01 0 00 061323 	DLIST:	MOVN	1,[FMSGCD (LIST XXnnn <CR>)]
  6338	041370	260 17 0 00 041345*		GO	.SARG			; get argument
  6339	041371	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6340						 JRST	[FMSGCD	<? Missing argument>
  6341							 GO	FIOFF
  6342	041372	254 00 0 00 054406 			 RTN]
  6343	041373	200 01 0 00 041350*		MOVE	1,ARGUM			; get argument
  6344	041374	260 17 0 00 034133 		GO	TSTDEC			; check for alternate format
  6345						 JRST	[FMSGCD	<? Argument error>
  6346							 GO	FIOFF
  6347	041375	254 00 0 00 061257 			 RTN]
  6348						 JRST	[FMSGC	<? Test number out of range 1 - >
  6349							 MOVE	1
  6350							 PNTOCF
  6351							 PCRLF
  6352							 GO	FIOFF
  6353	041376	254 00 0 00 061262 			 RTN]
  6354	041377	260 17 0 00 042304 		GO	TSTGET			; get test data
  6355	041400	200 01 0 00 046312 		MOVE	1,TSTMIC		; get test microcode address
  6356						JUMPLE	1,[FMSGCD <? Test specified does not have microcode>
  6357							   GO	FIOFF
  6358	041401	323 01 0 00 061301 			   RTN]
  6359	041402	260 17 0 00 042746 		GO	MLIST			; list it
  6360	041403	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 148
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0335

  6361
  6362					;#********************************************************************
  6363					;* DFLOAD - Load microcode from file into CRAM
  6364					;#********************************************************************
  6365
  6366	041404	200 01 0 00 061327 	DFLOAD:	MOVE	1,[FMSGCD (FLOAD <CR>)]
  6367	041405	260 17 0 00 041102*		GO	CHKARG			; check for argument
  6368	041406	263 17 0 00 000000 		RTN				; error - exit
  6369	041407	400 02 0 00 000000 		SETZ	2,			; init count of words loaded
  6370	041410	260 17 0 00 000000*		GO	FINIT			; init file for reading
  6371	041411	263 17 0 00 000000 		 RTN				; failed - return
  6372	041412	260 17 0 00 041357*		GO	ISTOP			; stop the port
  6373	041413	260 17 0 00 000000*	DFLOA0:	GO	FGETW			; get microcode entry
  6374	041414	254 00 0 00 041426 		 JRST	DFLOAX			; error/EOF occurred
  6375	041415	261 17 0 00 035271 		PUT	PARFLG			; save state of parity flag
  6376	041416	402 00 0 00 035271 		SETZM	PARFLG			; ensure no parity is generated
  6377	041417	260 17 0 00 037703 		GO	DWCRAM			; load it
  6378	041420	262 17 0 00 035271 		GET	PARFLG			; restore state of parity flag
  6379	041421	350 00 0 00 000002 		AOS	2			; increment count
  6380	041422	332 00 0 00 064326'		SKIPE	ALTF			; altmode typed?
  6381	041423	254 00 0 00 041426 		JRST	DFLOAX			; yes - exit
  6382	041424	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6383	041425	254 00 0 00 041413 		JRST	DFLOA0			; no - loop til done
  6384
  6385	041426	037 00 0 00 061330 	DFLOAX:	TMSGC	<[Number of CRAM locations loaded = >
  6386	041427	200 00 0 00 000002 		MOVE	2
  6387	041430	037 15 0 00 000000 		PNTDEC
  6388	041431	037 00 0 00 061316 		TMSGD	<.]>
  6389	041432	037 00 0 00 061340 		TMSGC	<[Ucode version >
  6390	041433	201 00 0 00 000137 		MOVEI	137			; read location 137 which contains
  6391	041434	202 00 0 00 037255 		MOVEM	CADDR			;   microcode version in MGC field
  6392	041435	260 17 0 00 037735 		GO	DRCRAM			;   bits 14-23
  6393	041436	135 00 0 00 060137 		LDB	[POINT 10,CWORDL,29]
  6394	041437	037 16 0 00 000003 		PNTOCS				; print it
  6395	041440	037 00 0 00 053745 		TMSGD	<]>
  6396	041441	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 149
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0336

  6397
  6398					;#********************************************************************
  6399					;* DFVERF - Verify microcode from file versus CRAM
  6400					;#********************************************************************
  6401
  6402	041442	200 01 0 00 061350 	DFVERF:	MOVE	1,[FMSGCD (FVERFY <CR>)]
  6403	041443	260 17 0 00 041405*		GO	CHKARG			; check for argument
  6404	041444	263 17 0 00 000000 		RTN				; error - exit
  6405	041445	400 02 0 00 000000 		SETZ	2,			; init count of words verified
  6406	041446	402 00 0 00 064357'		SETZM	MVNUM			; init error count
  6407	041447	260 17 0 00 041410*		GO	FINIT			; init file for reading
  6408	041450	263 17 0 00 000000 		 RTN				; failed - return
  6409	041451	260 17 0 00 041412*		GO	ISTOP			; stop the port
  6410	041452	260 17 0 00 041413*	DFVER0:	GO	FGETW			; get microcode entry
  6411	041453	254 00 0 00 041474 		 JRST	DFVERX			; error/EOF occurred
  6412	041454	200 00 0 00 037256 		MOVE	CWORDL			; get left word
  6413	041455	202 00 0 00 064414'		MOVEM	XWORDL#			; save it
  6414	041456	200 00 0 00 037257 		MOVE	CWORDR			; get right word
  6415	041457	202 00 0 00 064415'		MOVEM	XWORDR#			; save it
  6416	041460	260 17 0 00 037735 		GO	DRCRAM			; read the location
  6417	041461	200 00 0 00 037256 		MOVE	CWORDL			; get left word
  6418	041462	312 00 0 00 064414'		CAME	XWORDL#			; same as loaded?
  6419	041463	254 00 0 00 041466 		JRST	.+3			; no - report error
  6420	041464	200 00 0 00 037257 		MOVE	CWORDR			; get right word
  6421	041465	312 00 0 00 064415'		CAME	XWORDR#			; same as loaded?
  6422	041466	260 17 0 00 041504 		GO	DFVERR			; no - report error
  6423	041467	350 00 0 00 000002 		AOS	2			; increment count
  6424	041470	332 00 0 00 064326'		SKIPE	ALTF			; altmode typed?
  6425	041471	254 00 0 00 041474 		JRST	DFVERX			; yes - exit
  6426	041472	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6427	041473	254 00 0 00 041452 		JRST	DFVER0			; no - loop til done
  6428
  6429	041474	037 00 0 00 061351 	DFVERX:	TMSGC	<[Number of CRAM locations verified = >
  6430	041475	200 00 0 00 000002 		MOVE	2
  6431	041476	037 15 0 00 000000 		PNTDEC
  6432	041477	037 00 0 00 061361 		TMSG	<.  Errors = >
  6433	041500	200 00 0 00 064357'		MOVE	MVNUM
  6434	041501	037 15 0 00 000000 		PNTDEC
  6435	041502	037 00 0 00 061316 		TMSGD	<.]>
  6436	041503	263 17 0 00 000000 		RTN				; return
  6437
  6438					; Print error data
  6439
  6440	041504	261 17 0 00 000000 	DFVERR:	RPUT	(0,1,2,3)		; save some AC's
  6441
  6442	041510	350 01 0 00 064357'		AOS	1,MVNUM			; get error count
  6443	041511	303 01 0 00 000004 		CAILE	1,4			; more than 4 errors?
  6444	041512	254 00 0 00 041527 		JRST	DFVERY			; yes - exit
  6445	041513	037 00 0 00 061364 		TMSGC	<Verify error at CRAM location >
  6446	041514	200 00 0 00 037255 		MOVE	CADDR		 
  6447	041515	037 04 0 00 000000 		PNT4
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 150
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0337

  6448	041516	037 00 0 00 061373 		TMSGC	< Correct: >
  6449	041517	200 02 0 00 064414'		MOVE	2,XWORDL		; get left half
  6450	041520	200 03 0 00 064415'		MOVE	3,XWORDR		; get right half
  6451	041521	260 17 0 00 043103 		GO	PNTWD			; print it
  6452	041522	037 00 0 00 061376 		TMSGC	< Actual:  >
  6453	041523	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  6454	041524	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  6455	041525	260 17 0 00 043103 		GO	PNTWD			; print it
  6456	041526	037 00 0 00 030242 		PCRL
  6457	041527	262 17 0 00 000003 	DFVERY:	RGET	(3,2,1,0)		; restore AC's
  6458
  6459	041533	263 17 0 00 000000 		RTN				; return
  6460
  6461
  6462					;#********************************************************************
  6463					;* DFLIST - List microcode in file
  6464					;#********************************************************************
  6465
  6466	041534	200 01 0 00 061404 	DFLIST:	MOVE	1,[FMSGCD (FLIST <CR>)]
  6467	041535	260 17 0 00 041443*		GO	CHKARG			; check for argument
  6468	041536	263 17 0 00 000000 		RTN				; error - exit
  6469	041537	260 17 0 00 041447*		GO	FINIT			; init file for reading
  6470	041540	263 17 0 00 000000 		 RTN				; error occurred - exit
  6471	041541	037 00 0 00 060636 		TMSGC	<ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK>
  6472	041542	260 17 0 00 041452*	DFLIS0:	GO	FGETW			; get microcode entry
  6473	041543	254 00 0 00 041561 		 JRST	DFLISX			; error/EOF occurred
  6474	041544	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  6475	041545	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  6476	041546	037 00 0 00 030242 		PCRL				; start a new line
  6477	041547	001 04 0 00 037255 		PNTOCC	4,CADDR			; print CRAM load address
  6478	041550	037 00 0 00 060632 		TMSG	</ >
  6479	041551	400 01 0 00 000000 		SETZ	1,			; ignore 'bad parity' bit
  6480	041552	332 00 0 00 035271 		SKIPE	PARFLG			; calculate parity?
  6481	041553	260 17 0 00 043125 		GO	CALPAR			; yes - do so
  6482	041554	260 17 0 00 043007 		GO	PNTCRM			; print it
  6483	041555	332 00 0 00 064326'		SKIPE	ALTF			; altmode typed?
  6484	041556	254 00 0 00 041561 		JRST	DFLISX			; yes - exit
  6485	041557	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6486	041560	254 00 0 00 041542 		JRST	DFLIS0			; no - loop till done
  6487
  6488	041561	037 00 0 00 030242 	DFLISX:	PCRL				; final CRLF
  6489	041562	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 151
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0338

  6490
  6491					;#********************************************************************
  6492					;* DFEXAM - Examine microcode in file
  6493					;#********************************************************************
  6494
  6495	041563	200 01 0 00 061410 	DFEXAM:	MOVE	1,[FMSGCD (FEXAM <CR>)]
  6496	041564	260 17 0 00 041535*		GO	CHKARG			; check for argument
  6497	041565	263 17 0 00 000000 		RTN				; error - exit
  6498	041566	260 17 0 00 041537*		GO	FINIT			; init file for reading
  6499	041567	263 17 0 00 000000 		 RTN				; error occurred - exit
  6500	041570	260 17 0 00 041542*	DFEXA0:	GO	FGETW			; get microcode entry
  6501	041571	254 00 0 00 041607 		 JRST	DFEXAX			; error/EOF occurred
  6502	041572	200 02 0 00 037256 		MOVE	2,CWORDL		; get left half
  6503	041573	200 03 0 00 037257 		MOVE	3,CWORDR		; get right half
  6504	041574	037 00 0 00 030242 		PCRL				; start a new line
  6505	041575	001 04 0 00 037255 		PNTOCC	4,CADDR			; print CRAM load address
  6506	041576	037 00 0 00 060632 		TMSG	</ >
  6507	041577	400 01 0 00 000000 		SETZ	1,			; ignore 'bad parity' bit
  6508	041600	332 00 0 00 035271 		SKIPE	PARFLG			; calculate parity?
  6509	041601	260 17 0 00 043125 		GO	CALPAR			; yes - do so
  6510	041602	260 17 0 00 043103 		GO	PNTWD			; print it
  6511	041603	332 00 0 00 064326'		SKIPE	ALTF			; altmode typed?
  6512	041604	254 00 0 00 041607 		JRST	DFEXAX			; yes - exit
  6513	041605	037 07 0 00 000003 		TTALTM				; altmode key struck?
  6514	041606	254 00 0 00 041570 		JRST	DFEXA0			; no - loop till done
  6515
  6516	041607	037 00 0 00 030242 	DFEXAX:	PCRL				; final CRLF
  6517	041610	263 17 0 00 000000 		RTN				; exit
  6518
  6519
  6520					;#********************************************************************
  6521					;* DTRANS - Translate CSR bits to English
  6522					;#********************************************************************
  6523
  6524	041611	210 01 0 00 061416 	DTRANS:	MOVN	1,[FMSGCD (TRANSL data <CR>)]
  6525	041612	260 17 0 00 041275*		GO	.OARG			; get argument
  6526	041613	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6527						 JRST	[FMSGCD	<? Missing argument>
  6528							 GO	FIOFF
  6529	041614	254 00 0 00 054406 			 RTN]
  6530	041615	200 01 0 00 041373*		MOVE	1,ARGUM			; get argument
  6531	041616	260 17 0 00 043215 		GO	CSRPNT			; print CSR data in English
  6532	041617	037 00 0 00 030242 		PCRL				; end of line
  6533	041620	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 152
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0339

  6534
  6535					;#********************************************************************
  6536					;* DCCODE - Print condition codes
  6537					;#********************************************************************
  6538
  6539	041621	200 01 0 00 061422 	DCCODE:	MOVE	1,[FMSGCD (CCODE <CR>)]
  6540	041622	260 17 0 00 041564*		GO	CHKARG			; check for argument
  6541	041623	263 17 0 00 000000 		RTN				; error - exit
  6542
  6543					; Save CRAM locations
  6544
  6545	041624	200 01 0 00 061423 		MOVE	1,[-4,,7750]		; set up AOBJN word
  6546	041625	260 17 0 00 043340 		GO	SAVCRM			; save the CRAM locations
  6547
  6548					; Loop on condition code
  6549
  6550	041626	474 07 0 00 000000 		SETO	7,			; initialize pointer
  6551	041627	350 00 0 00 000007 	DCCOD1:	AOS	7			; point to next condition code
  6552	041630	303 07 0 00 000017 		CAILE	7,17			; done yet?
  6553	041631	254 00 0 00 041653 		JRST	DCCOD2			; yes - go print results
  6554	041632	137 07 0 00 061424 		DPB	7,[POINT 4,CCMIC+3,23]	; no - set up microcode
  6555	041633	201 01 0 00 041737 		MOVEI	1,CCMIC			; set up microcode address
  6556	041634	260 17 0 00 042507 		GO	MLOADN			; load/verify it
  6557	041635	255 00 0 00 000000 		JFCL				; ignore error
  6558	041636	201 01 0 00 007750 		MOVEI	1,7750			; get start address
  6559	041637	242 01 0 00 000001 		LSH	1,1			; position correctly
  6560	041640	260 17 0 00 040511*		GO	LDRAR			; load the RAR
  6561	041641	201 01 0 00 000010 		MOVEI	1,MPRUN			; start it up
  6562	041642	260 17 0 00 040515*		GO	LDCSR			; write to CSR register
  6563	041643	201 01 0 00 040000 		MOVEI	1,SELLAR		; set up to read LAR
  6564	041644	260 17 0 00 041642*		GO	LDCSR			; stop the port
  6565	041645	260 17 0 00 037134*		GO	RDLAR			; read stopping address
  6566	041646	242 01 0 00 777777 		LSH	1,-1			; position correctly
  6567	041647	402 00 0 07 041717 		SETZM	CCTAB3(7)		; initialize result
  6568	041650	306 01 0 00 007753 		CAIN	1,7753			; was the cc set?
  6569	041651	476 00 0 07 041717 		SETOM	CCTAB3(7)		; yes - indicate such
  6570	041652	254 00 0 00 041627 		JRST	DCCOD1			; loop till done
  6571
  6572					; Print the results
  6573
  6574	041653	037 00 0 00 061425 	DCCOD2:	TMSGC	<CC On:  >
  6575	041654	474 07 0 00 000000 		SETO	7,			; initialize pointer
  6576	041655	350 00 0 00 000007 	DCCOD3:	AOS	7			; point to next entry
  6577	041656	303 07 0 00 000017 		CAILE	7,17			; done yet?
  6578	041657	254 00 0 00 041663 		JRST	DCCOD4			; yes - continue
  6579	041660	332 00 0 07 041717 		SKIPE	CCTAB3(7)		; no - cc on?
  6580	041661	256 00 0 07 041677 		XCT	CCTAB1(7)		; yes - print text
  6581	041662	254 00 0 00 041655 		JRST	DCCOD3
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 153
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0340

  6582
  6583	041663	037 00 0 00 061430 	DCCOD4:	TMSGC	<CC Off: >
  6584	041664	474 07 0 00 000000 		SETO	7,			; initialize pointer
  6585	041665	350 00 0 00 000007 	DCCOD5:	AOS	7			; point to next entry
  6586	041666	303 07 0 00 000017 		CAILE	7,17			; done yet?
  6587	041667	254 00 0 00 041673 		JRST	DCCOD6			; yes - continue
  6588	041670	336 00 0 07 041717 		SKIPN	CCTAB3(7)		; no - cc on?
  6589	041671	256 00 0 07 041677 		XCT	CCTAB1(7)		; yes - print text
  6590	041672	254 00 0 00 041665 		JRST	DCCOD5
  6591	041673	037 00 0 00 030242 	DCCOD6:	PCRL
  6592
  6593					; Restore CRAM locations and exit
  6594
  6595	041674	200 01 0 00 061423 		MOVE	1,[-4,,7750]		; set up AOBJN word
  6596	041675	260 17 0 00 043362 		GO	RESCRM			; restore CRAM data
  6597	041676	263 17 0 00 000000 		RTN				; return
  6598
  6599					; Tables
  6600
  6601	041677	037 00 0 00 061433 	CCTAB1:	TMSG	< CBAV>			; 0 - CCCBUSAVAIL
  6602	041700	037 00 0 00 061435 		TMSG	< GCSR>			; 1 - CCGRNTCSR
  6603	041701	037 00 0 00 061437 		TMSG	< FEQ0>			; 2 - CCFEQ0
  6604	041702	037 00 0 00 061441 		TMSG	< CSRC>			; 3 - CCCSRCHNG
  6605	041703	037 00 0 00 061443 		TMSG	< EBPE>			; 4 - CCEBPARERR
  6606	041704	037 00 0 00 061445 		TMSG	< AFUL>			; 5 - CCRCVRBUFAFUL
  6607	041705	037 00 0 00 061447 		TMSG	< BFUL>			; 6 - CCRCVRBUFBFUL
  6608	041706	037 00 0 00 061451 		TMSG	< XATN>			; 7 - CCXMTRATTN
  6609	041707	037 00 0 00 061453 		TMSG	< ERQS>			; 10 - CCEBUSRQST
  6610	041710	037 00 0 00 061455 		TMSG	< IACT>			; 11 - CCINTRACTIVE
  6611	041711	037 00 0 00 061457 		TMSG	< MSGN>			; 12 - CCMBSIGN
  6612	041712	037 00 0 00 061461 		TMSG	< MVRP>			; 13 - CCMVRPARCHK
  6613	041713	037 00 0 00 061463 		TMSG	< CBPE>			; 14 - CCCBUSPARERR
  6614	041714	037 00 0 00 061465 		TMSG	< PLPE>			; 15 - CCPLIPARERR
  6615	041715	037 00 0 00 061467 		TMSG	< CHER>			; 16 - CCCHANERR
  6616	041716	037 00 0 00 061471 		TMSG	< CBLW>			; 17 - CCCBLSTWD
  6617
  6618	041717				CCTAB3:	BLOCK	^D16			; results
  6619
  6620					; Microcode
  6621
  6622	041737	775077	510000		CCMIC:	MWORD	<ADDR=7750,JMAP,J=7751,D=1> 	; 7750
  6623	041740	001000	000040
  6624	041741	775177	530000			MWORD	<CJP,J=7753,D=1,CENA>		; 7751
  6625	041742	001400	000060
  6626	041743	775277	520000			MWORD	<JMAP,J=7752,D=1>		; 7752
  6627	041744	001000	000040
  6628	041745	775377	530000			MWORD	<JMAP,J=7753,D=1>		; 7753
  6629	041746	001000	000040
  6630	041747	777777	777777			-1
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 154
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0341

  6631
  6632					;#********************************************************************
  6633					;* DFILLN - Fill CRAM with special data (J=PC+1,OPCode)
  6634					;#********************************************************************
  6635
  6636	041750	210 01 0 00 061503 	DFILLN:	MOVN	1,[FMSGCD <FILLNX number (2910 Op code 0-17)>]
  6637	041751	260 17 0 00 041612*		GO	.OARG			; get argument
  6638	041752	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6639						 JRST	[FMSGCD	<? Missing argument>
  6640							 GO	FIOFF
  6641	041753	254 00 0 00 054406 			 RTN]
  6642	041754	260 17 0 00 041451*		GO	ISTOP			; stop the port
  6643	041755	200 01 0 00 041615*		MOVE	1,ARGUM			; get argument
  6644	041756	400 02 0 00 000000 		SETZ	2,			; initialize address
  6645	041757	402 00 0 00 037256 		SETZM	CWORDL			; initialize left half
  6646	041760	402 00 0 00 037257 		SETZM	CWORDR			; initialize right half
  6647	041761	202 02 0 00 037255 	DFILN0:	MOVEM	2,CADDR			; set up address
  6648	041762	350 00 0 00 000002 		AOS	2			; point to next address
  6649	041763	303 02 0 00 007777 		CAILE	2,7777			; at end yet?
  6650	041764	400 02 0 00 000000 		SETZ	2,			; yes - set back to zero
  6651	041765	137 02 0 00 060126 		DPB	2,[POINT 12,CWORDL,17]	; insert J field
  6652	041766	137 01 0 00 060200 		DPB	1,[POINT 4,CWORDR,31]	; insert CTL field
  6653	041767	260 17 0 00 037703 		GO	DWCRAM			; load it
  6654	041770	326 02 0 00 041761 		JUMPN	2,DFILN0		; loop till done
  6655	041771	037 00 0 00 061504 		TMSGCD	<[Number of CRAM locations loaded = 4096.]>
  6656	041772	263 17 0 00 000000 		RTN				; return
  6657
  6658
  6659					;#********************************************************************
  6660					;* DFILLP - Fill CRAM with special data (J=PC,OPCode)
  6661					;#********************************************************************
  6662
  6663	041773	210 01 0 00 061526 	DFILLP:	MOVN	1,[FMSGCD <FILLPC number (2910 Op code 0-17)>]
  6664	041774	260 17 0 00 041751*		GO	.OARG			; get argument
  6665	041775	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6666						 JRST	[FMSGCD	<? Missing argument>
  6667							 GO	FIOFF
  6668	041776	254 00 0 00 054406 			 RTN]
  6669	041777	260 17 0 00 041754*		GO	ISTOP			; stop the port
  6670	042000	200 01 0 00 041755*		MOVE	1,ARGUM			; get argument
  6671	042001	476 00 0 00 037255 		SETOM	CADDR			; initialize address
  6672	042002	402 00 0 00 037256 		SETZM	CWORDL			; initialize left half
  6673	042003	402 00 0 00 037257 		SETZM	CWORDR			; initialize right half
  6674	042004	350 02 0 00 037255 	DFILP0:	AOS	2,CADDR			; set up address
  6675	042005	137 02 0 00 060126 		DPB	2,[POINT 12,CWORDL,17]	; insert J field
  6676	042006	137 01 0 00 060200 		DPB	1,[POINT 4,CWORDR,31]	; insert CTL field
  6677	042007	260 17 0 00 037703 		GO	DWCRAM			; load it
  6678	042010	307 02 0 00 007777 		CAIG	2,7777			; done yet?
  6679	042011	254 00 0 00 042004 		JRST	DFILP0			; no - loop till done
  6680	042012	037 00 0 00 061504 		TMSGCD	<[Number of CRAM locations loaded = 4096.]>
  6681	042013	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 155
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0342

  6682
  6683					;#********************************************************************
  6684					;* DRDINI - Initialize everything for a read
  6685					;#********************************************************************
  6686
  6687	042014	200 01 0 00 061533 	DRDINI:	MOVE	1,[FMSGCD (RDINIT <CR>)]
  6688	042015	260 17 0 00 041622*		GO	CHKARG			; check for argument
  6689	042016	263 17 0 00 000000 		RTN				; error - exit
  6690	042017	201 01 0 00 000001 		MOVEI	1,1			; set 'read' flag
  6691
  6692	042020	202 01 0 00 042036 	DRDINC:	MOVEM	1,LASDTC		; save operation
  6693	042021	200 14 0 00 035274 		MOVE	PAT,DSPAT		; get buffer pattern
  6694	042022	200 00 0 00 035275 		MOVE	DSTPAT			; get operator select pattern
  6695	042023	202 00 0 00 051002 		MOVEM	TPAT			; save it
  6696	042024	200 02 0 00 035273 		MOVE	2,DSWORD		; get buffer length
  6697	042025	202 02 0 00 051000 		MOVEM	2,TWORD			; save it also
  6698	042026	260 17 0 00 000000*		GO	BUFGEN			; insert buffer pattern
  6699	042027	200 01 0 00 061534 		MOVE	1,[CBUFSZ,,CBUF]	; get pointer to control buffer
  6700	042030	260 17 0 00 000000*		GO	CHINIT			; initialize software
  6701	042031	551 01 0 00 047000 		HRRZI	1,BUFF			; buffer address
  6702	042032	200 02 0 00 051000 		MOVE	2,TWORD			; word count
  6703	042033	400 03 0 00 000000 		SETZ	3,			; clear zero fill specifier
  6704	042034	260 17 0 00 000000*		GO	GENCCW			; generate a CCW list
  6705	042035	263 17 0 00 000000 		RTN				; return
  6706
  6707	042036	777777	777777		LASDTC:	-1				; last data transfer operation
  6708
  6709
  6710					;#********************************************************************
  6711					;* DWRINI - Initialize everything for a write
  6712					;#********************************************************************
  6713
  6714	042037	200 01 0 00 061541 	DWRINI:	MOVE	1,[FMSGCD (WRINIT <CR>)]
  6715	042040	260 17 0 00 042015*		GO	CHKARG			; check for argument
  6716	042041	263 17 0 00 000000 		RTN				; error - exit
  6717	042042	201 01 0 00 000002 		MOVEI	1,2			; set 'write' flag
  6718	042043	254 00 0 00 042020 		JRST	DRDINC			; continue at common code
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 156
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0343

  6719
  6720					;#********************************************************************
  6721					;* DBPNT - Print buffer contents
  6722					;#********************************************************************
  6723
  6724	042044	200 00 0 00 035273 	DBPNT:	MOVE	DSWORD			; set default number to length
  6725	042045	303 00 0 00 000024 		CAILE	^D20			;   of buffer or 20 words
  6726	042046	201 00 0 00 000024 		MOVEI	^D20			;   whichever is smaller
  6727	042047	202 00 0 00 042000*		MOVEM	ARGUM
  6728	042050	210 01 0 00 061552 		MOVN	1,[FMSGCD (BPRINT WordCount or BPRINT <CR>)]
  6729	042051	260 17 0 00 040765*		GO	.DARG			; get argument
  6730	042052	263 17 0 00 000000 		 RTN				; error/altmode/question - exit
  6731	042053	255 00 0 00 000000 		 JFCL				; no argument given
  6732	042054	210 03 0 00 042047*		MOVN	3,ARGUM			; get argument
  6733	042055	514 03 0 00 000003 		HRLZ	3,3			; make AOBJN pointer
  6734	042056	541 03 0 00 047000 		HRRI	3,BUFF			; insert buffer address
  6735	042057	550 00 0 00 000003 	DBPNT0:	HRRZ	3			; get address
  6736	042060	275 00 0 00 047000 		SUBI	BUFF			; normalize to 0..n-1
  6737	042061	602 00 0 00 000003 		TRNE	3			; multiple of 4?
  6738	042062	037 00 0 00 054617 		TMSG	<  >			; no - 2 spaces
  6739	042063	602 00 0 00 000003 		TRNE	3			; multiple of 4?
  6740	042064	254 00 0 00 042071 		JRST	DBPNT1			; no - don't print address
  6741	042065	037 00 0 00 061553 		TMSGC	<Wrd >			; print word location
  6742	042066	350 00 0 00 000000 		AOS				; make from 1..n
  6743	042067	037 15 0 00 000000 		PNTDEC
  6744	042070	037 00 0 00 061555 		TMSG	<.  >
  6745	042071	200 00 0 03 000000 	DBPNT1:	MOVE	(3)			; get data
  6746	042072	037 13 0 00 000000 		PNTHW				; print data
  6747	042073	037 07 0 00 000003 		TTALTM				; altmode typed?
  6748	042074	253 03 0 00 042057 		AOBJN	3,DBPNT0		; no - do next word - loop till done
  6749	042075	037 00 0 00 030242 		PCRL				; final CRLF
  6750	042076	263 17 0 00 000000 		RTN				; return
  6751
  6752
  6753					;#********************************************************************
  6754					;* DCWPNT - Print CCW list
  6755					;#********************************************************************
  6756
  6757	042077	200 01 0 00 061562 	DCWPNT:	MOVE	1,[FMSGCD (CCWPNT <CR>)]
  6758	042100	260 17 0 00 042040*		GO	CHKARG			; check for argument
  6759	042101	263 17 0 00 000000 		RTN				; error - exit
  6760	042102	260 17 0 00 000000*		GO	CCWPNT			; print CCW list
  6761	042103	037 00 0 00 030242 		PCRL
  6762	042104	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 157
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0344

  6763
  6764					;#********************************************************************
  6765					;* DLGPNT - Print logout data
  6766					;#********************************************************************
  6767
  6768	042105	200 01 0 00 061567 	DLGPNT:	MOVE	1,[FMSGCD (LOGPNT <CR>)]
  6769	042106	260 17 0 00 042100*		GO	CHKARG			; check for argument
  6770	042107	263 17 0 00 000000 		RTN				; error - exit
  6771	042110	201 01 0 00 000000*		MOVEI	1,LOGBUF		; set up logout data storage area
  6772	042111	260 17 0 00 000000*		GO	GETLOG			; get logout data to a buffer area
  6773	042112	260 17 0 00 000000*		GO	LOGPNT			; print channel logout data
  6774	042113	037 00 0 00 030242 		PCRL
  6775	042114	263 17 0 00 000000 		RTN				; return
  6776
  6777
  6778					;#********************************************************************
  6779					;* DCOMPA - Compare data buffer
  6780					;#********************************************************************
  6781
  6782	042115	200 01 0 00 061574 	DCOMPA:	MOVE	1,[FMSGCD (COMPAR <CR>)]
  6783	042116	260 17 0 00 042106*		GO	CHKARG			; check for argument
  6784	042117	263 17 0 00 000000 		RTN				; error - exit
  6785	042120	200 01 0 00 042036 		MOVE	1,LASDTC		; get last data transfer setup cmd
  6786	042121	301 01 0 00 000001 		CAIL	1,1			; this command valid?
  6787	042122	303 01 0 00 000003 		CAILE	1,3
  6788						JRST	[FMSGCD	<? No data transfer setup command executed yet>
  6789							 GO	FIOFF
  6790	042123	254 00 0 00 061607 			 RTN]
  6791	042124	200 02 0 00 035273 		MOVE	2,DSWORD		; get buffer length
  6792	042125	260 17 0 00 000000*		GO	BUFCOM			; do the buffer compare
  6793	042126	332 00 0 00 000000*		SKIPE	WRDERR			; any errors?
  6794	042127	037 00 0 00 030242 		PCRL				; yes - end with a CRLF
  6795	042130	263 17 0 00 000000 		RTN				; return
  6796
  6797
  6798					;#********************************************************************
  6799					;* DSWIT - Switch complement commands
  6800					;#********************************************************************
  6801
  6802	042131	200 01 0 00 054442 	DSWIT:	MOVE	1,[FMSGCD (Switch Name <CR>)]
  6803	042132	260 17 0 00 042116*		GO	CHKARG			; check for argument
  6804	042133	263 17 0 00 000000 		RTN				; error - exit
  6805	042134	261 17 0 00 000001 		PUT	1			; save AC1
  6806	042135	200 01 0 00 032524*		MOVE	1,.CGOT			; get dispatch number
  6807	042136	275 01 0 00 000116 		SUBI	1,SWSTP			; normalize to 0..
  6808	042137	260 17 0 00 032526*		GO	SWCOM			; complement switch
  6809	042140	262 17 0 00 000001 		GET	1			; restore AC1
  6810	042141	263 17 0 00 000000 		RTN				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 158
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0345

  6811
  6812					;#********************************************************************
  6813					;* IPRINT - Print interrupt history
  6814					;#********************************************************************
  6815
  6816	042142	200 01 0 00 061616 	DIPRIN:	MOVE	1,[FMSGCD (IPRINT <CR>)]
  6817	042143	260 17 0 00 042132*		GO	CHKARG			; check for argument
  6818	042144	263 17 0 00 000000 		RTN				; error - exit
  6819	042145	261 17 0 00 000000 	IPRINT:	RPUT	(0,1,2)			; save AC's
  6820
  6821	042150	335 01 0 00 000000*	IPRIN0:	SKIPGE	1,INTNUM		; any interrupt yet?
  6822	042151	254 00 0 00 042155 		JRST	IPRINX
  6823	042152	260 17 0 00 042161 		GO	IPRINI			; yes - print the data
  6824	042153	037 07 0 00 000003 		TTALTM				; check for altmode typed
  6825	042154	254 00 0 00 042150 		JRST	IPRIN0			; no - keep looping
  6826	042155	262 17 0 00 000002 	IPRINX:	RGET	(2,1,0)			; yes - restore AC's
  6827
  6828	042160	263 17 0 00 000000 		RTN				; exit
  6829
  6830					; Print interrupt data
  6831
  6832	042161	370 01 0 00 042150*	IPRINI:	SOS	1,INTNUM		; point to previous interrupt
  6833	042162	303 01 0 00 000023 		CAILE	1,^D19			; overflow interrupt?
  6834	042163	201 01 0 00 000023 		MOVEI	1,^D19			; yes - limit to 20 interrupts
  6835	042164	202 01 0 00 042161*		MOVEM	1,INTNUM		; save interrupt number
  6836	042165	037 00 0 00 061617 		TMSGC	<=====>
  6837	042166	550 02 0 01 000000*		HRRZ	2,INTTYP(1)		; get type
  6838						XCT	[TMSGC	<Vectored (PC = >	
  6839							 TMSGC	<NV Chn 1 (PC = >
  6840							 TMSGC	<NV Chn 2 (PC = >
  6841							 TMSGC	<NV Chn 3 (PC = >
  6842							 TMSGC	<NV Chn 4 (PC = >
  6843							 TMSGC	<NV Chn 5 (PC = >
  6844							 TMSGC	<NV Chn 6 (PC = >
  6845	042167	256 00 0 02 061661 			 TMSGC	<NV Chn 7 (PC = >](2)
  6846	042170	550 00 0 01 000000*		HRRZ	INTPC(1)		; get interrupt PC
  6847	042171	037 16 0 00 000003 		PNTOCS				; print it
  6848	042172	037 00 0 00 061671 		TMSG	<) at >
  6849	042173	200 00 0 01 000000*		MOVE	INTTIM(1)		; get milliseconds
  6850	042174	037 15 0 00 000000 		PNTDEC
  6851	042175	037 00 0 00 061673 		TMSG	<.ms + >
  6852	042176	200 00 0 01 000000*		MOVE	INTUSE(1)		; get microseconds
  6853	042177	037 15 0 00 000000 		PNTDEC
  6854	042200	037 00 0 00 061675 		TMSG	<.us>
  6855	042201	037 00 0 00 061676 		TMSGC	<CONI PI = >
  6856	042202	200 00 0 01 000000*		MOVE	INTCON(1)		; get CONI PI data
  6857	042203	037 13 0 00 000000 		PNTHW				; print it
  6858	042204	037 00 0 00 061701 		TMSG	<  CONI APR = >
  6859	042205	200 00 0 01 000000*		MOVE	INTAPR(1)		; get APR data
  6860	042206	037 13 0 00 000000 		PNTHW				; print it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 159
DFPTA1	MAC	10-Oct-83 21:43		Port Debugger                                                                      SEQ 0346

  6861	042207	037 00 0 00 061704 		TMSG	<  CSR = >
  6862	042210	200 00 0 01 000000*		MOVE	INTCSR(1)		; get CSR data
  6863	042211	037 13 0 00 000000 		PNTHW				; print it
  6864	042212	037 00 0 00 030242 		PCRL
  6865	042213	335 00 0 01 042166*		SKIPGE	INTTYP(1)
  6866	042214	037 00 0 00 061706 		TMSGCD	< ##### (Interrupts flushed) #####>
  6867	042215	263 17 0 00 000000 		RTN	
  6868
  6869
  6870					;#********************************************************************
  6871					;* IINIT - Initialize interrupt system
  6872					;#********************************************************************
  6873
  6874	042216	200 01 0 00 061721 	DIINIT:	MOVE	1,[FMSGCD (IINIT <CR>)]
  6875	042217	260 17 0 00 042143*		GO	CHKARG			; check for argument
  6876	042220	263 17 0 00 000000 		RTN				; error - exit
  6877	042221	260 17 0 00 031017*		GO	INITPI			; init PI system
  6878	042222	260 17 0 00 032126*		GO	SETVEC			; set up vector addresses
  6879	042223	263 17 0 00 000000 		RTN				; return
  6880
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 160
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0347

  6881						SUBTTL	Program Utility Routines
  6882
  6883					;#*********************************************************************
  6884					;* TRACE - Program Trace Routine
  6885					;
  6886					; This routine traces test execution if the TRACE switch is set.  This
  6887					; routine sets up TSTSUB, ERFLG, ERRPC for error reporting during  the
  6888					; test, and ERRNUM for interrupt handling.
  6889					;#********************************************************************
  6890
  6891	042224	261 17 0 00 000000 	TRACE:	RPUT	(0,1)			; save AC's
  6892
  6893	042226	202 00 0 00 046322 		MOVEM	TSTOFF			; save relocatable offset
  6894	042227	260 17 0 00 034226*		GO	SWITT			; get switches
  6895	042230	606 00 0 00 400000 		TRNN	TRACET			; want to trace?
  6896	042231	254 00 0 00 042250 		JRST	TRACE0			; no
  6897
  6898					; Print test number if tracing
  6899
  6900	042232	037 00 0 00 061722 		TMSG	<* >
  6901	042233	260 17 0 00 033132*		GO	PNTDEV			; print device name
  6902	042234	037 00 0 00 061723 		TMSG	< Test >
  6903	042235	200 01 0 00 046304 		MOVE	1,TSTCLS		; get test class
  6904	042236	200 00 0 01 031123 		MOVE	INDLIS(1)		; get class description
  6905	042237	037 00 0 00 000002 		PNTSIX				; print it
  6906	042240	200 00 0 00 046305 		MOVE	TSTNUM			; get test number
  6907	042241	037 16 0 00 000003 		PNTOCS				; print it
  6908	042242	200 00 0 00 046310 		MOVE	TSTFLG			; get test flags
  6909	042243	603 00 0 00 000100 		TLNE	(TDENA)			; disabled?
  6910	042244	037 00 0 00 061725 		TMSG	< (Disabled)>		; yes - print such
  6911	042245	603 00 0 00 001000 		TLNE	(TUSER)			; run in user mode?
  6912	042246	037 00 0 00 061730 		TMSG	< (Ommitted)>		; no - print such
  6913	042247	037 00 0 00 030242 		PCRL
  6914
  6915					; Initialize flags
  6916
  6917	042250	402 00 0 00 000015 	TRACE0:	SETZM	ERFLG			; clear the error detected flag
  6918	042251	402 00 0 00 030052 		SETZM	ERRPC			; clear the error PC
  6919	042252	402 00 0 00 046306 		SETZM	TSTSUB			; clear subtest number
  6920	042253	402 00 0 00 000000*		SETZM	SCOOFF			; clear error offset
  6921	042254	476 00 0 00 042164*		SETOM	INTNUM			; initialize interrupt number
  6922	042255	402 00 0 00 041130*		SETZM	SNEXT			; initialize next address
  6923	042256	402 00 0 00 041120*		SETZM	SDATA			; initialize CSR data
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 161
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0348

  6924
  6925					; Determine whether or not test should be run
  6926
  6927	042257	200 00 0 00 046310 		MOVE	TSTFLG			; get test flags
  6928	042260	603 00 0 00 000100 		TLNE	(TDENA)			; test disabled?
  6929	042261	254 00 0 00 042300 		JRST	TRACEX			; yes - exit test
  6930	042262	603 00 0 00 001000 		TLNE	(TUSER)			; cannot run in user mode?
  6931	042263	254 00 0 00 042300 		JRST	TRACEX			; no - exit test
  6932
  6933					; Handle microcode loaded flags
  6934
  6935	042264	316 16 0 00 046275 		CAMN	MBCN,PORTNI		; NI port selected?
  6936	042265	332 00 0 00 046312 		SKIPE	TSTMIC			; yes - any test microcode?
  6937	042266	334 00 0 00 000000 		SKIPA				; no - continue
  6938	042267	476 00 0 00 064404'		SETOM	TSLOD1			; yes - init ucode loaded flag (NI)
  6939	042270	316 16 0 00 046276 		CAMN	MBCN,PORTCI		; CI port selected?
  6940	042271	332 00 0 00 046312 		SKIPE	TSTMIC			; yes - any test microcode?
  6941	042272	334 00 0 00 000000 		SKIPA				; no - continue
  6942	042273	476 00 0 00 064405'		SETOM	TSLOD2			; yes - init ucode loaded flag (CI)
  6943
  6944					; Exit and run test
  6945
  6946	042274	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  6947
  6948	042276	350 00 0 17 777777 		AOS	-1(P)			; increment test return address
  6949	042277	263 17 0 00 000000 		RTN				; exit normally
  6950
  6951					; Exit and skip test
  6952
  6953	042300	262 17 0 00 000001 	TRACEX:	RGET	(1,0,XXX)		; restore AC's
  6954
  6955	042303	263 17 0 00 000000 		RTN				; exit test
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 162
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0349

  6956
  6957					;#********************************************************************
  6958					;* TSTGET - Get test related data based on test dispatch address
  6959					;
  6960					; Given:  TSTADD - Contains address within a test dispatch table, this is
  6961					;		   location contains the address of the current test.
  6962					;
  6963					; Returns:  TSTCLS - Test class 0-5
  6964					;	    TSTNUM - Test number
  6965					;	    TSTSUB - Zeroed test offset
  6966					;	    TSTNAM - Address of ASCIZ test description 
  6967					;	    TSTPC -  Current test PC
  6968					;	    TSTFLG - Current test flags
  6969					;	    TSTADD - Current test descriptor entry address
  6970					;	    TSTMIC - Current test microcode address
  6971					;	    TSTHIG - Addr of high probability modules
  6972					;	    TSTLOW - Addr of low probability modules
  6973					;#********************************************************************
  6974
  6975	042304	261 17 0 00 000001 	TSTGET:	RPUT	(1,2)			; save AC's
  6976
  6977	042306	402 00 0 00 046306 		SETZM	TSTSUB			; clear subtest number
  6978	042307	200 01 1 00 046311 		MOVE	1,@TSTADD		; get test address
  6979	042310	202 01 0 00 046307 		MOVEM	1,TSTPC			; save it
  6980	042311	200 02 0 01 000001 		MOVE	2,1(1)			; get test flags
  6981	042312	202 02 0 00 046310 		MOVEM	2,TSTFLG		; save them
  6982	042313	554 02 0 01 000002 		HLRZ	2,2(1)			; get microcode address
  6983	042314	202 02 0 00 046312 		MOVEM	2,TSTMIC		; save it
  6984	042315	550 02 0 01 000002 		HRRZ	2,2(1)			; get test description 
  6985	042316	202 02 0 00 046303 		MOVEM	2,TSTNAM		; save it
  6986	042317	554 02 0 01 000003 		HLRZ	2,3(1)			; get address of high prob modules
  6987	042320	202 02 0 00 046320 		MOVEM	2,TSTHIG		; save it
  6988	042321	550 02 0 01 000003 		HRRZ	2,3(1)			; get address of low prob modules
  6989	042322	202 02 0 00 046321 		MOVEM	2,TSTLOW		; save it
  6990	042323	550 01 0 00 046310 		HRRZ	1,TSTFLG		; get test number
  6991	042324	202 01 0 00 046305 		MOVEM	1,TSTNUM		; save it
  6992	042325	135 01 0 00 061733 		LDB	1,[POINT 3,TSTFLG,17]	; get test class
  6993	042326	202 01 0 00 046304 		MOVEM	1,TSTCLS		; save it
  6994	042327	262 17 0 00 000002 		RGET	(2,1)			; restore AC's
  6995
  6996	042331	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 163
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0350

  6997
  6998					;#********************************************************************
  6999					;* SELTST - Select a test to run.
  7000					;
  7001					; This routine selects the next test in a test descriptor  table.
  7002					; TSTADD contains the address within a test dispatch table of the
  7003					; current test to run.  If there are no more tests  to  run, this
  7004					; will contain -1.
  7005					;
  7006					; Return:	+1 - No more tests found
  7007					;		+2 - Test found is not valid
  7008					;		+3 - Test found is valid
  7009					;#********************************************************************
  7010
  7011	042332	261 17 0 00 000000 	SELTST:	RPUT	(0,1,2)			; save AC's
  7012
  7013	042335	350 01 0 00 046311 		AOS	1,TSTADD		; get address in dispatch table
  7014	042336	200 02 0 01 000000 		MOVE	2,(1)			; get dispatch address
  7015	042337	316 02 0 00 060021 		CAMN	2,[-1]			; end of tests?
  7016	042340	254 00 0 00 042346 		JRST	SELTSX			; yes - exit +1
  7017
  7018					; Obtain test data
  7019
  7020	042341	260 17 0 00 042304 		GO	TSTGET			; get test data
  7021	042342	260 17 0 00 042352 		GO	CHKTST			; check if test is valid
  7022	042343	334 00 0 00 000000 		SKIPA				; no - exit +2 (test not valid)
  7023	042344	350 00 0 17 777775 		AOS	-3(P)			; set up exit +3 (Found a test)
  7024	042345	350 00 0 17 777775 		AOS	-3(P)			; set up exit +2 (Test not valid)
  7025
  7026					; Exit
  7027
  7028	042346	262 17 0 00 000002 	SELTSX:	RGET	(2,1,0)			; restore AC's
  7029
  7030	042351	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 164
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0351

  7031
  7032					;#********************************************************************
  7033					;* CHKTST - Check if this is a valid test to execute and set up test type.
  7034					;
  7035					; A test is determined to be a valid test if the following are true:
  7036					;
  7037					;  - A class of tests has been selected, and this test is in that class.
  7038					;  - The test can be run, ie., that the modules specified as required
  7039					;    are not indicated as missing by the switches.
  7040					;
  7041					; Argument:	TSTPC - Contains test address
  7042					;
  7043					; Return:	+1 - Not a valid test
  7044					;	 	+2 - Valid test
  7045					;#********************************************************************
  7046
  7047	042352	261 17 0 00 000000 	CHKTST:	RPUT	(0,1,2)			; save some AC's
  7048
  7049	042355	200 01 0 00 046307 		MOVE	1,TSTPC			; get test pc
  7050	042356	331 00 0 00 046316 		SKIPL	TSTMUL			; multiple tests?
  7051	042357	254 00 0 00 042363 		JRST	CHKTS0			; no - continue
  7052
  7053					; Verify proper class of tests
  7054
  7055	042360	200 02 0 00 046313 		MOVE	2,TSTMSK		; get test mask
  7056	042361	616 02 0 01 000001 		TDNN	2,1(1)			; valid test to execute?
  7057	042362	254 00 0 00 042401 		JRST	CHKTSX			; no - exit (+1)
  7058
  7059					; Check if there are enough boards here to run this
  7060
  7061	042363	400 00 0 00 000000 	CHKTS0:	SETZ	0,			; clear switches
  7062	042364	332 00 0 00 030056 		SKIPE	$ONETM			; initial startup?
  7063	042365	260 17 0 00 042227*		GO	SWITT			; no - get program switches
  7064	042366	606 00 0 00 000003 		TRNN	MMPROC!MCBUS		; any modules missing?
  7065	042367	254 00 0 00 042400 		JRST	CHKTS1			; no - continue
  7066	042370	602 00 0 00 000002 		TRNE	MMPROC			; MPROC module missing?
  7067	042371	607 02 0 00 000600 		TLNN	2,(NDMP!NDCB)		; need this module?
  7068	042372	334 00 0 00 000000 		SKIPA				; no - check CBUS module
  7069	042373	254 00 0 00 042401 		JRST	CHKTSX			; yes - exit (+1) (not a valid test)
  7070	042374	602 00 0 00 000001 		TRNE	MCBUS			; CBUS module missing?
  7071	042375	607 02 0 00 000200 		TLNN	2,(NDCB)		; need this module?
  7072	042376	334 00 0 00 000000 		SKIPA				; no - continue (valid test)
  7073	042377	254 00 0 00 042401 		JRST	CHKTSX			; yes - exit (+1) (not a valid test)
  7074	042400	350 00 0 17 777775 	CHKTS1:	AOS	-3(P)			; set up RTN +2
  7075	042401	262 17 0 00 000002 	CHKTSX:	RGET	(2,1,0)			; restore AC's
  7076
  7077	042404	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 165
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0352

  7078
  7079					;#********************************************************************
  7080					;* TSTPNT - Print test name/number
  7081					;#********************************************************************
  7082
  7083	042405	261 17 0 00 000000 	TSTPNT:	RPUT	(0,1)			; save AC's
  7084
  7085	042407	200 01 0 00 046304 		MOVE	1,TSTCLS		; get test class
  7086	042410	200 00 0 01 031123 		MOVE	INDLIS(1)		; get class description
  7087	042411	037 00 0 00 000002 		PNTSIX				; print it
  7088	042412	200 00 0 00 046305 		MOVE	TSTNUM			; get test number
  7089	042413	037 16 0 00 000003 		PNTOCS				; print it
  7090	042414	200 00 0 00 046306 		MOVE	TSTSUB			; get subtest number
  7091	042415	322 00 0 00 042420 		JUMPE	TSTPN0			; zero?  yes - continue
  7092	042416	037 00 0 00 053407 		TMSG	<->			; no - print it
  7093	042417	037 16 0 00 000003 		PNTOCS
  7094	042420	260 17 0 00 042365*	TSTPN0:	GO	SWITT			; get switches
  7095	042421	603 00 0 00 000200 		TLNE	TXTINH			; text inhibit set?
  7096	042422	254 00 0 00 042425 		JRST	TSTPNX			; yes - exit
  7097	042423	037 00 0 00 053451 		TMSG	< - >
  7098	042424	037 00 1 00 046303 		PNTMSG	@TSTNAM			; print test description
  7099	042425	262 17 0 00 000001 	TSTPNX:	RGET	(1,0)			; restore AC's
  7100
  7101	042427	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 166
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0353

  7102
  7103					;#********************************************************************
  7104					;* ODELAY - Delay a specified amount of time (in milliseconds in AC0)
  7105					;#********************************************************************
  7106
  7107	042430	332 00 0 00 030037 	ODELAY:	SKIPE	USER			; user mode?
  7108	042431	254 00 0 00 042447 		JRST	ODELA1			; yes - go handle
  7109
  7110					; Exec mode - inspect timers
  7111
  7112	042432	261 17 0 00 000002 		RPUT	(2,3)			; save some AC's
  7113
  7114	042434	400 03 0 00 000000 		SETZ	3,			; set up so RUNTME doesn't print time
  7115	042435	260 17 0 00 033142*		GO	RUNTME			; get initial time
  7116	042436	200 02 0 00 000000*		MOVE	2,DEBTIM		; get time in msecs
  7117	042437	272 00 0 00 000002 		ADDM	2			; add in the time to delay
  7118	042440	400 03 0 00 000000 	ODELA0:	SETZ	3,			; set up so RUNTME doesn't print time
  7119	042441	260 17 0 00 042435*		GO	RUNTME			; get time
  7120	042442	313 02 0 00 042436*		CAMLE	2,DEBTIM		; done?
  7121	042443	254 00 0 00 042440 		JRST	ODELA0			; no - keep checking time
  7122	042444	262 17 0 00 000003 		RGET	(3,2)			; restore AC's
  7123
  7124	042446	263 17 0 00 000000 		RTN				; return
  7125
  7126					; User mode - use DISMS JSYS
  7127
  7128	042447	261 17 0 00 000000 	ODELA1:	RPUT	(0,1)			; save AC's
  7129
  7130	042451	200 01 0 00 000000 		MOVE	1,0			; get time to wait
  7131	042452	104 00 0 00 000167 		DISMS				; wait
  7132	042453	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  7133
  7134	042455	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 167
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0354

  7135
  7136					;#********************************************************************
  7137					;* DDELAY - Delay a specified amount of time (in milliseconds in AC0)
  7138					;
  7139					; While waiting the data buffer is read and the CSR register is read to
  7140					; see if the test has signalled end of test by setting the ENABLE bit.
  7141					;#********************************************************************
  7142
  7143	042456	261 17 0 00 000001 	DDELAY:	RPUT	(1,2,3,4)		; save some AC's
  7144
  7145	042462	403 03 0 00 000004 		SETZB	3,4			; set up so RUNTME doesn't print time
  7146	042463	260 17 0 00 042441*		GO	RUNTME			; get initial time
  7147	042464	200 02 0 00 042442*		MOVE	2,DEBTIM		; get time in msecs
  7148	042465	272 00 0 00 000002 		ADDM	2			; add in the time to delay
  7149	042466	400 03 0 00 000000 	DDELA0:	SETZ	3,			; set up so RUNTME doesn't print time
  7150	042467	260 17 0 00 042463*		GO	RUNTME			; get time
  7151	042470	317 02 0 00 042464*		CAMG	2,DEBTIM		; done?
  7152	042471	254 00 0 00 042502 		JRST	DDELAX			; yes - exit
  7153	042472	200 01 0 04 047000 		MOVE	1,BUFF(4)		; read a word in buffer
  7154	042473	350 00 0 00 000004 		AOS	4			; point to next word
  7155	042474	301 04 0 00 001000 		CAIL	4,^D512			; reach end of buffer?
  7156	042475	400 04 0 00 000000 		SETZ	4,			; yes - reinitialize pointer
  7157	042476	260 17 0 00 035460*		GO	RDCSR			; read CSR
  7158	042477	255 00 0 00 000000 		JFCL				; error
  7159	042500	606 01 0 00 000200 		TRNN	1,RESQAV		; RESQAV bit set?
  7160	042501	254 00 0 00 042466 		JRST	DDELA0			; no - keep checking time
  7161	042502	262 17 0 00 000004 	DDELAX:	RGET	(4,3,2,1)		; restore AC's
  7162
  7163	042506	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 168
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0355

  7164
  7165					;#********************************************************************
  7166					;* MLOADN - Load microcode and verify it (do not print errors)
  7167					;* MLOADY - Load microcode and verify it (print errors)
  7168					;
  7169					; Arguments:	AC1 - Contains address where microcode starts
  7170					;
  7171					; Returns:	AC1 - Number of words loaded/verified
  7172					;		+1 - Error occurred loading/verifying microcode
  7173					;		+2 - Ok
  7174					;
  7175					; Microcode format:  The microcode is given in  2  word  segments
  7176					;	(specifying address and 60 CRAM bits).  The ucode is in a
  7177					;	table beginning at the address given in AC1.  The end  of
  7178					;	this table is indicated by a word containing -1.
  7179					;
  7180					;  Word 1:  Bits 00-11 - Microword load address (0000-7777)
  7181					;		 12-35 - Bits 0-23 of microword to load
  7182					;  Word 2:  Bits 00-34 - Bits 24-57,59 of microword to load
  7183					;	         35 ---- Force Bad Parity flag
  7184					;#********************************************************************
  7185
  7186	042507	402 00 0 00 064360'	MLOADN:	SETZM	MVREP#			; clear print flag
  7187	042510	334 00 0 00 000000 		SKIPA				; continue
  7188	042511	476 00 0 00 064360'	MLOADY:	SETOM	MVREP			; set print flag
  7189	042512	402 00 0 00 064356'		SETZM	MVFLAG#			; clear verify flag
  7190	042513	261 17 0 00 000001 		PUT	1			; save AC1
  7191	042514	260 17 0 00 042524 		GO	MVCOM			; load microcode
  7192	042515	255 00 0 00 000000 		JFCL				; error - ignore
  7193	042516	262 17 0 00 000001 		GET	1			; restore AC1
  7194	042517	476 00 0 00 064356'		SETOM	MVFLAG			; set verify flag
  7195	042520	260 17 0 00 042524 		GO	MVCOM			; verify microcode
  7196	042521	263 17 0 00 000000 		RTN				; error - return
  7197	042522	350 00 0 17 000000 		AOS	(P)			; set up proper return
  7198	042523	263 17 0 00 000000 		RTN				; return
  7199
  7200	042524	476 00 0 00 064357'	MVCOM:	SETOM	MVNUM#			; init number of verify errors
  7201						JUMPLE	1,[SETZ	1,		; exit if no microcode table specified
  7202	042525	323 01 0 00 061734 			   RTN]
  7203	042526	261 17 0 00 000000 		RPUT	(0,2,3,4,5)		; save some AC's
  7204
  7205	042533	200 04 0 00 000001 		MOVE	4,1			; get address of table in AC4
  7206	042534	200 01 0 00 061736 		MOVE	1,[MWBADR,,MWBADR+1]	; build a BLT pointer
  7207	042535	476 00 0 00 042640 		SETOM	MWBADR			; initialize first word
  7208	042536	251 01 0 00 042656 		BLT	1,MWBRAC+2		; initialize the rest
  7209
  7210					; First stop the port and ensure 'DIAG TEST EBUF' is not set
  7211
  7212	042537	260 17 0 00 041777*		GO	ISTOP			; stop the port
  7213	042540	260 17 0 00 000000*		GO	CLREBU			; ensure cleared
  7214	042541	255 00 0 00 000000 		 JFCL				; ignore error
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 169
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0356

  7215
  7216					; Load microwords
  7217
  7218	042542	400 05 0 00 000000 		SETZ	5,			; clear word count
  7219	042543	200 02 0 04 000000 	MLOAD0:	MOVE	2,(4)			; get first word
  7220	042544	316 02 0 00 060021 		CAMN	2,[-1]			; end of list?
  7221	042545	254 00 0 00 042625 		JRST	MLOADX			; yes - exit
  7222	042546	200 03 0 04 000001 		MOVE	3,1(4)			; get second word
  7223
  7224					; Load bits 0-27
  7225
  7226	042547	135 01 0 00 061737 		LDB	1,[POINT 12,2,11]	; get actual CRAM load address
  7227	042550	202 01 0 00 037255 		MOVEM	1,CADDR			; save address
  7228	042551	242 01 0 00 000001 		LSH	1,1			; convert to address for RAR
  7229	042552	660 01 0 00 000001 		TRO	1,1			; set bit 12 (for left 30 bits)
  7230	042553	202 01 0 00 064376'		MOVEM	1,SAVRAR#		; save address loaded
  7231	042554	260 17 0 00 041640*		GO	LDRAR			; load RAR with it
  7232	042555	200 01 0 00 000003 		MOVE	1,3			; get word 2 (it has 'bad parity' flag)
  7233	042556	135 02 0 00 061740 		LDB	2,[POINT 24,2,35]	; get CRAM bits 0-23
  7234	042557	246 02 0 00 000006 		LSHC	2,6			; now get bits 0-29 in AC2 (left half)
  7235	042560	242 03 0 00 777772 		LSH	3,-6			; right justify AC3 (right half)
  7236	042561	622 03 0 00 000002 		TRZE	3,2			; bit 59 set?
  7237	042562	660 03 0 00 000001 		TRO	3,1			; yes - set rightmost bit
  7238	042563	260 17 0 00 043125 		GO	CALPAR			; calculate parity
  7239	042564	200 01 0 00 000002 		MOVE	1,2			; get left 30 bits
  7240	042565	336 00 0 00 064356'		SKIPN	MVFLAG			; load?
  7241	042566	260 17 0 00 037727*		GO	LDCRAM			; yes - load it
  7242	042567	332 00 0 00 064356'		SKIPE	MVFLAG			; verify?
  7243						GO	[GO	RDCRAM		; yes - read CRAM
  7244							 MOVEM	1,CWORDL	; save it
  7245	042570	260 17 0 00 061741 			 RTN]
  7246
  7247					; Load bits 30-59
  7248
  7249	042571	200 01 0 00 064376'		MOVE	1,SAVRAR		; get RAR address (for left 30 bits)
  7250	042572	620 01 0 00 000001 		TRZ	1,1			; clear bit 12 (for right 30 bits)
  7251	042573	260 17 0 00 042554*		GO	LDRAR			; load address
  7252	042574	200 01 0 00 000003 		MOVE	1,3			; get right 30 bits
  7253	042575	336 00 0 00 064356'		SKIPN	MVFLAG			; load?
  7254	042576	260 17 0 00 042566*		GO	LDCRAM			; yes - load it
  7255	042577	336 00 0 00 064356'		SKIPN	MVFLAG			; load?
  7256	042600	254 00 0 00 042622 		JRST	MLOAD1			; yes - next location
  7257	042601	260 17 0 00 037751*		GO	RDCRAM			; yes - read CRAM
  7258	042602	202 01 0 00 037257 		MOVEM	1,CWORDR		; save it
  7259	042603	316 02 0 00 037256 		CAMN	2,CWORDL		; valid data?
  7260	042604	312 03 0 00 037257 		CAME	3,CWORDR
  7261	042605	334 00 0 00 000000 		SKIPA				; no - continue
  7262	042606	254 00 0 00 042622 		JRST	MLOAD1			; yes - next location
  7263	042607	350 01 0 00 064357'		AOS	1,MVNUM			; get error count
  7264	042610	303 01 0 00 000002 		CAILE	1,2			; more than 3 errors?
  7265	042611	254 00 0 00 042622 		JRST	MLOAD1			; yes - next location
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 170
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0357

  7266	042612	200 00 0 00 037255 		MOVE	CADDR			; get address
  7267	042613	202 00 0 01 042640 		MOVEM	MWBADR(1)		; save it
  7268	042614	202 02 0 01 042643 		MOVEM	2,MWBLCO(1)		; save left 30 bits (correct)
  7269	042615	202 03 0 01 042651 		MOVEM	3,MWBRCO(1)		; save right 30 bits (correct)
  7270	042616	200 02 0 00 037256 		MOVE	2,CWORDL		; get left 30 bits
  7271	042617	202 02 0 01 042646 		MOVEM	2,MWBLAC(1)		; save it (actual)
  7272	042620	200 02 0 00 037257 		MOVE	2,CWORDR		; get right 30 bits
  7273	042621	202 03 0 01 042654 		MOVEM	3,MWBRAC(1)		; save it (actual)
  7274
  7275					; Point to next microword
  7276
  7277	042622	350 00 0 00 000005 	MLOAD1:	AOS	5			; increment word count
  7278	042623	271 04 0 00 000002 		ADDI	4,2			; increment by 2
  7279	042624	254 00 0 00 042543 		JRST	MLOAD0			; loop till done
  7280
  7281					; Done - return count of words loaded
  7282
  7283	042625	337 00 0 00 064357'	MLOADX:	SKIPG	MVNUM			; any verify errors?
  7284	042626	350 00 0 17 777773 		AOS	-5(P)			; no - set up RTN+2
  7285	042627	332 00 0 00 064360'		SKIPE	MVREP			; report errors?
  7286	042630	260 17 0 00 042657 		GO	MVPNT			; yes - print errors
  7287	042631	202 05 0 00 064353'		MOVEM	5,MLNUM#		; save count of words loaded
  7288	042632	262 17 0 00 000005 		RGET	(5,4,3,2,0)		; restore AC's
  7289
  7290	042637	263 17 0 00 000000 		RTN				; return
  7291
  7292	042640				MWBADR:	BLOCK	3			; CRAM addresses
  7293	042643				MWBLCO:	BLOCK	3			; left correct
  7294	042646				MWBLAC:	BLOCK	3			; left actual
  7295	042651				MWBRCO:	BLOCK	3			; right correct
  7296	042654				MWBRAC:	BLOCK	3			; right actual
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 171
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0358

  7297
  7298					;#********************************************************************
  7299					;* MVPNT - Print verify error data
  7300					;#********************************************************************
  7301
  7302	042657	335 00 0 00 064357'	MVPNT:	SKIPGE	MVNUM			; any errors to report?
  7303	042660	263 17 0 00 000000 		RTN				; no - return
  7304	042661	261 17 0 00 000000 		RPUT	(0,1,2,3,4,5,6)		; save some AC's
  7305
  7306	042670	350 01 0 00 064357'		AOS	1,MVNUM			; get correct error count 1..n
  7307	042671	200 00 0 00 000001 		MOVE	1
  7308	042672	037 00 0 00 051602 		TMSGC	<? >
  7309	042673	037 15 0 00 000000 		PNTDEC				; print it
  7310	042674	037 00 0 00 061744 		TMSG	<. CRAM verify errors:>
  7311	042675	037 00 0 00 061751 		TMSGC	<Addr    --- Correct ---       --- Actual ---      -- Discrepancy -->
  7312	042676	400 04 0 00 000000 		SETZ	4,			; pointer to error data
  7313	042677	200 00 0 04 042640 	MVPNT1:	MOVE	MWBADR(4)		; get address
  7314	042700	037 00 0 00 030242 		PCRL
  7315	042701	037 04 0 00 000000 		PNT4				; print it
  7316	042702	037 00 0 00 051536 		TMSG	< >
  7317	042703	200 02 0 04 042643 		MOVE	2,MWBLCO(4)		; get left half
  7318	042704	200 03 0 04 042651 		MOVE	3,MWBRCO(4)		; get right half
  7319	042705	260 17 0 00 042736 		GO	MVPNTW			; print it
  7320	042706	037 00 0 00 051536 		TMSG	< >
  7321	042707	200 02 0 04 042646 		MOVE	2,MWBLAC(4)		; get left half
  7322	042710	200 03 0 04 042654 		MOVE	3,MWBRAC(4)		; get right half
  7323	042711	260 17 0 00 042736 		GO	MVPNTW			; print it
  7324	042712	037 00 0 00 051536 		TMSG	< >
  7325	042713	200 02 0 04 042643 		MOVE	2,MWBLCO(4)		; get left half
  7326	042714	430 02 0 04 042646 		XOR	2,MWBLAC(4)		; xor actual data
  7327	042715	200 03 0 04 042651 		MOVE	3,MWBRCO(4)		; get right half
  7328	042716	430 03 0 04 042654 		XOR	3,MWBRAC(4)		; xor actual data
  7329	042717	260 17 0 00 042736 		GO	MVPNTW			; print it
  7330	042720	377 00 0 00 000001 		SOSG	1			; decrement error count - done?
  7331	042721	254 00 0 00 042726 		JRST	MVPNTX			; yes - exit
  7332	042722	350 00 0 00 000004 		AOS	4			; point to next word
  7333	042723	305 04 0 00 000003 		CAIGE	4,3			; 3 printed already?
  7334	042724	254 00 0 00 042677 		JRST	MVPNT1			; no - loop till done
  7335	042725	037 00 0 00 061767 		TMSGC	< ...>
  7336	042726	262 17 0 00 000006 	MVPNTX:	RGET	(6,5,4,3,2,1,0)		; yes - restore AC's
  7337
  7338	042735	263 17 0 00 000000 		RTN				; return
  7339
  7340	042736	242 03 0 00 000006 	MVPNTW:	LSH	3,^D6			; left justify the data
  7341	042737	246 02 0 00 000006 		LSHC	2,^D6			; left justify both words
  7342	042740	200 05 0 00 061771 		MOVE	5,[POINT 3,2]		; initial byte pointer
  7343	042741	201 06 0 00 000024 		MOVEI	6,^D20			; number of bytes to print
  7344	042742	134 00 0 00 000005 		ILDB	5			; get byte
  7345	042743	037 16 0 00 000003 		PNTOCS				; print it
  7346	042744	365 06 0 00 042742 		SOJGE	6,.-2			; loop till done
  7347	042745	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 172
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0359

  7348
  7349					;#********************************************************************
  7350					;* MLIST - List microcode of a test
  7351					;#********************************************************************
  7352
  7353	042746	261 17 0 00 000000 	MLIST:	RPUT	(0,1,2,3,4)		; save some AC's
  7354
  7355	042753	037 00 0 00 060636 		TMSGC	<ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL  TM SP MK>
  7356	042754	200 04 0 00 000001 		MOVE	4,1			; get address of table in AC4
  7357	042755	200 02 0 04 000000 	MLIST0:	MOVE	2,(4)			; get first word
  7358	042756	316 02 0 00 060021 		CAMN	2,[-1]			; end of list?
  7359	042757	254 00 0 00 043000 		JRST	MLISTX			; yes - exit
  7360	042760	200 03 0 04 000001 		MOVE	3,1(4)			; get second word
  7361
  7362					; Print this CRAM entry
  7363
  7364	042761	037 00 0 00 030242 		PCRL				; start a new line
  7365	042762	135 00 0 00 061737 		LDB	[POINT 12,2,11]		; get cram load address
  7366	042763	001 04 0 00 000000 		PNTOCC	4,0			; print it
  7367	042764	037 00 0 00 060632 		TMSG	</ >
  7368	042765	200 01 0 00 000003 		MOVE	1,3			; get word 2 (it has 'bad parity' flag)
  7369	042766	135 02 0 00 061740 		LDB	2,[POINT 24,2,35]	; get CRAM bits 0-23
  7370	042767	246 02 0 00 000006 		LSHC	2,6			; now get bits 0-30 in AC2 (left half)
  7371	042770	242 03 0 00 777772 		LSH	3,-6			; right justify AC3 (right half)
  7372	042771	622 03 0 00 000002 		TRZE	3,2			; bit 59 set?
  7373	042772	660 03 0 00 000001 		TRO	3,1			; yes - set rightmost bit
  7374	042773	260 17 0 00 043125 		GO	CALPAR			; calculate parity
  7375	042774	260 17 0 00 043007 		GO	PNTCRM			; print it
  7376
  7377					; Point to next microword / Exit if Altmode typed / Exit when done
  7378
  7379	042775	271 04 0 00 000002 		ADDI	4,2			; increment by 2
  7380	042776	336 00 0 00 064326'		SKIPN	ALTF			; altmode typed?
  7381	042777	254 00 0 00 042755 		JRST	MLIST0			; no - loop till done
  7382	043000	037 00 0 00 030242 	MLISTX:	PCRL
  7383	043001	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  7384
  7385	043006	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 173
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0360

  7386
  7387					;#********************************************************************
  7388					;* PNTCRM - Print CRAM word
  7389					;
  7390					; Arguments:	AC2 - Left 30 bits
  7391					;		AC3 - Right 30 bits
  7392					;#********************************************************************
  7393
  7394	043007	261 17 0 00 000000 	PNTCRM:	RPUT	(0,1)			; save AC's
  7395
  7396	043011	135 00 0 00 061772 		LDB	[POINT 12,2,17]		; get MWJMPFLD
  7397	043012	001 04 0 00 000000 		PNTOCC	4,0			; print it
  7398	043013	037 00 0 00 054617 		TMSG	<  >
  7399	043014	135 00 0 00 061773 		LDB	[POINT 1,2,18]		; get MWPAR
  7400	043015	037 01 0 00 000000 		PNT1				; print it
  7401	043016	037 00 0 00 054617 		TMSG	<  >
  7402	043017	135 00 0 00 061774 		LDB	[POINT 1,2,19]		; get MWOUTPUTENA
  7403	043020	037 01 0 00 000000 		PNT1				; print it
  7404	043021	135 00 0 00 061775 		LDB	[POINT 10,2,29]		; get MWMGCFLD
  7405	043022	001 04 0 00 000000 		PNTOCC	4,0			; print it
  7406	043023	037 00 0 00 054617 		TMSG	<  >
  7407	043024	135 00 0 00 061776 		LDB	[POINT 3,2,32]		; get MWSORCEFLD
  7408	043025	037 01 0 00 000000 		PNT1				; print it
  7409	043026	037 00 0 00 054617 		TMSG	<  >
  7410	043027	135 00 0 00 061777 		LDB	[POINT 3,2,35]		; get MWFUNCTFLD
  7411	043030	037 01 0 00 000000 		PNT1				; print it
  7412	043031	037 00 0 00 054617 		TMSG	<  >
  7413	043032	135 00 0 00 062000 		LDB	[POINT 3,3,8]		; get MWDESTFLD
  7414	043033	037 01 0 00 000000 		PNT1				; print it
  7415	043034	037 00 0 00 054617 		TMSG	<  >
  7416	043035	135 00 0 00 062001 		LDB	[POINT 1,3,9]		; get MWCCENA
  7417	043036	037 01 0 00 000000 		PNT1				; print it
  7418	043037	037 00 0 00 000040 		PSP
  7419	043040	135 00 0 00 062002 		LDB	[POINT 1,3,10]		; get MWRAMODE
  7420	043041	037 01 0 00 000000 		PNT1				; print it
  7421	043042	037 00 0 00 000040 		PSP
  7422	043043	135 00 0 00 062003 		LDB	[POINT 4,3,14]		; get MWPORTAFLD
  7423	043044	001 02 0 00 000000 		PNTOCC	2,0			; print it
  7424	043045	037 00 0 00 000040 		PSP
  7425	043046	135 00 0 00 062004 		LDB	[POINT 4,3,18]		; get MWPORTBFLD
  7426	043047	001 02 0 00 000000 		PNTOCC	2,0			; print it
  7427	043050	037 00 0 00 000040 		PSP
  7428	043051	135 00 0 00 062005 		LDB	[POINT 5,3,23]		; get MWSKIPFLD
  7429	043052	001 02 0 00 000000 		PNTOCC	2,0			; print it
  7430	043053	037 00 0 00 054617 		TMSG	<  >
  7431	043054	135 00 0 00 062006 		LDB	[POINT 3,3,26]		; get MWBUSCTLFLD
  7432	043055	037 01 0 00 000000 		PNT1				; print it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 174
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0361

  7433	043056	037 00 0 00 054617 		TMSG	<  >
  7434	043057	135 00 0 00 062007 		LDB	[POINT 1,3,27]		; get MWCARRY
  7435	043060	037 01 0 00 000000 		PNT1				; print it
  7436	043061	037 00 0 00 000040 		PSP
  7437	043062	135 01 0 00 062010 		LDB	1,[POINT 4,3,31]	; get MWCTRLFLD
  7438						XCT	[TMSG	<JZ  >		; print in English
  7439							 TMSG	<CJS >
  7440							 TMSG	<JMAP>
  7441							 TMSG	<CJP >
  7442							 TMSG	<PUSH>
  7443							 TMSG	<JSRP>
  7444							 TMSG	<CJV >
  7445							 TMSG	<JRP >
  7446							 TMSG	<RFCT>
  7447							 TMSG	<RPCT>
  7448							 TMSG	<CRTN>
  7449							 TMSG	<CJPP>
  7450							 TMSG	<LDCT>
  7451							 TMSG	<LOOP>
  7452							 TMSG	<CONT>
  7453	043063	256 00 0 01 062031 			 TMSG	<TWB >](1)
  7454	043064	037 00 0 00 054617 		TMSG	<  >
  7455	043065	135 00 0 00 062051 		LDB	[POINT 1,3,32]		; get MWTIMEFLD
  7456	043066	037 01 0 00 000000 		PNT1				; print it
  7457	043067	037 00 0 00 000040 		PSP
  7458	043070	135 00 0 00 062052 		LDB	[POINT 2,3,34]		; get MWSPARE00-01
  7459	043071	037 01 0 00 000000 		PNT1				; print it
  7460	043072	037 00 0 00 000040 		PSP
  7461	043073	135 00 0 00 062053 		LDB	[POINT 1,3,35]		; get MWMARKBIT
  7462	043074	037 01 0 00 000000 		PNT1				; print it
  7463	043075	037 07 0 00 000003 		TTALTM				; altmode typed?
  7464	043076	334 00 0 00 000000 		SKIPA				; no - continue
  7465						GO	[SETOM	ALTF		; yes - set 'altmode typed' flag
  7466							 SETZM	MULFLG		;   and clear 'examine next' flag
  7467	043077	260 17 0 00 062054 			 RTN]
  7468	043100	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  7469
  7470	043102	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 175
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0362

  7471
  7472					;#********************************************************************
  7473					;* PNTWD - Print a CRAM word (xxxx xxxx xxxx xxxx xxxx)
  7474					;
  7475					; Argument:	AC2 - Left half
  7476					;		AC3 - Right half
  7477					;#********************************************************************
  7478
  7479	043103	261 17 0 00 000000 	PNTWD:	RPUT	(0,1)			; save AC's
  7480
  7481	043105	135 00 0 00 061772 		LDB	[POINT 12,2,17]		; get 1st 4 digits
  7482	043106	037 04 0 00 000000 		PNT4				; print them
  7483	043107	135 00 0 00 062057 		LDB	[POINT 12,2,29]		; get 2nd 4 digits
  7484	043110	037 04 0 00 000000 		PNT4				; print them
  7485	043111	135 01 0 00 062060 		LDB	1,[POINT 6,2,35]	; get next 6 bits
  7486	043112	135 00 0 00 062061 		LDB	[POINT 6,3,11]		; get next 6 bits
  7487	043113	242 01 0 00 000006 		LSH	1,6			; position correctly
  7488	043114	434 00 0 00 000001 		IOR	1			; build 12 bits (3rd 4 digits)
  7489	043115	037 04 0 00 000000 		PNT4				; print them
  7490	043116	135 00 0 00 062062 		LDB	[POINT 12,3,23]		; get 1st 4 digits
  7491	043117	037 04 0 00 000000 		PNT4				; print them
  7492	043120	135 00 0 00 062063 		LDB	[POINT 12,3,35]		; get last 4 digits
  7493	043121	037 04 0 00 000000 		PNT4				; print them
  7494	043122	262 17 0 00 000001 		RGET	(1,0)			; restore AC's
  7495
  7496	043124	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 176
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0363

  7497
  7498					;#********************************************************************
  7499					;* CALPAR - Calculate parity for a CRAM location
  7500					;
  7501					; Arguments:	AC1 - Contains 2nd word of microword as  put  together
  7502					;		      by the microword macro MWORD.  This is only used
  7503					;		      to look at bit 35 which is a flag specifying bad
  7504					;		      parity.
  7505					;		AC2 - Bits 0-29 (Right justified)
  7506					;		AC3 - Bits 30-59 (Right justified)
  7507					;
  7508					; Function:	Calculate good parity and insert into Bit 12 of  the
  7509					;		microword which is Bit 18 in AC2. Then if 'force bad
  7510					;		parity' flag is set, complement this bit.
  7511					;
  7512					; Return:	+1 always.  AC's are unmodified, except bit 18 of AC2.
  7513					;#********************************************************************
  7514
  7515	043125	261 17 0 00 000004 	CALPAR:	RPUT	(4,5,6,7)		; save AC's
  7516
  7517	043131	402 00 0 00 064330'		SETZM	CALMAR#			; clear MARK bit location
  7518	043132	602 03 0 00 000001 		TRNE	3,1			; MARK bit set?
  7519	043133	476 00 0 00 064330'		SETOM	CALMAR			; yes - note the fact
  7520	043134	620 03 0 00 000001 		TRZ	3,1			; ensure MARK bit is zero
  7521	043135	400 04 0 00 000000 		SETZ	4,			; clear count of number of 1's
  7522	043136	200 05 0 00 000002 		MOVE	5,2			; get left half
  7523	043137	210 06 0 00 000005 		MOVN	6,5			; calculate number of 1's
  7524	043140	632 05 0 00 000006 		TDZE	5,6			;  ...
  7525	043141	344 04 0 00 043137 		AOJA	4,.-2			;  ...
  7526	043142	200 05 0 00 000003 		MOVE	5,3			; get right half
  7527	043143	210 06 0 00 000005 		MOVN	6,5			; calculate number of 1's
  7528	043144	632 05 0 00 000006 		TDZE	5,6			;  ...
  7529	043145	344 04 0 00 043143 		AOJA	4,.-2			;  ...
  7530
  7531					; Now, the parity is even if bit 35 of AC4 is zero, and odd if bit 35 set
  7532
  7533	043146	606 04 0 00 000001 		TRNN	4,1			; bit 35 set?
  7534	043147	431 02 0 00 400000 		XORI	2,400000		; no - complement bit 18
  7535
  7536					; Also, handle force parity flag
  7537
  7538	043150	602 01 0 00 000001 		TRNE	1,1			; 'force bad parity' flag set?
  7539	043151	431 02 0 00 400000 		XORI	2,400000		; yes - complement bit 18
  7540
  7541					; Done - exit
  7542
  7543	043152	332 00 0 00 064330'		SKIPE	CALMAR			; MARK bit set initially?
  7544	043153	660 03 0 00 000001 		TRO	3,1			; yes - set it now
  7545	043154	262 17 0 00 000007 		RGET	(7,6,5,4)		; restore AC's
  7546
  7547	043160	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 177
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0364

  7548
  7549					;#********************************************************************
  7550					;* TLOAD - Load microcode/verify it for a test
  7551					;
  7552					; Arguments:	AC1 - Contains address where microcode starts
  7553					;
  7554					; Function:	Issue a port clear to the port to ensure it is stopped.
  7555					;		Then call MLOAD to load the microcode, then call MVERFY
  7556					;		to verify it.  Abort on any error.
  7557					;
  7558					; Returns:	+1 - Error occurred loading/verifying microcode
  7559					;		+2 - Ok
  7560					;#********************************************************************
  7561
  7562	043161	332 00 0 00 064346'	TLOAD:	SKIPE	LDEBUG			; ucode load debug switch set?
  7563	043162	254 00 0 00 043201 		JRST	TLOADX			; yes - don't load ucode
  7564	043163	316 16 0 00 046275 		CAMN	MBCN,PORTNI		; NI port?
  7565						JRST	[CAMN	1,TSLOD1	; yes - already loaded?
  7566							 JRST	TLOADX		; yes - don't load ucode
  7567	043164	254 00 0 00 062064 			 JRST	.+1]
  7568	043165	316 16 0 00 046276 		CAMN	MBCN,PORTCI		; CI port?
  7569						JRST	[CAMN	1,TSLOD2	; yes - already loaded?
  7570							 JRST	TLOADX		; yes - don't load ucode
  7571	043166	254 00 0 00 062067 			 JRST	.+1]
  7572	043167	261 17 0 00 000001 		PUT	1			; save AC1
  7573	043170	260 17 0 00 035423*		GO	IPACLR			; do a 'port clear'
  7574	043171	260 17 0 00 042507 		GO	MLOADN			; load it
  7575	043172	254 00 0 00 043203 		 JRST	TLOADE			; failed
  7576	043173	200 01 0 17 000000 		MOVE	1,(P)			; get microcode address
  7577	043174	316 16 0 00 046275 		CAMN	MBCN,PORTNI		; NI port?
  7578	043175	202 01 0 00 064404'		MOVEM	1,TSLOD1		; yes - save it
  7579	043176	316 16 0 00 046276 		CAMN	MBCN,PORTCI		; CI port?
  7580	043177	202 01 0 00 064405'		MOVEM	1,TSLOD2		; yes - save it
  7581	043200	262 17 0 00 000001 		GET	1			; restore AC1
  7582	043201	350 00 0 17 000000 	TLOADX:	AOS	(P)			; set up RTN +2
  7583	043202	263 17 0 00 000000 		RTN				; exit
  7584
  7585	043203	262 17 0 00 000001 	TLOADE:	GET	1			; restore AC1
  7586	043204	474 15 0 00 000000 		SETO	ERFLG,			; set error flag
  7587	043205	027 00 0 00 043213 		SCOPER	TLERR			; print error message
  7588	043206	255 00 0 00 000000 		JFCL				; don't allow test looping
  7589	043207	255 00 0 00 000000 		JFCL				; ignore altmode
  7590	043210	332 00 0 00 064352'		SKIPE	MDEBUG			; error message debug switch set?
  7591	043211	350 00 0 17 000000 		AOS	(P)			; yes - skip this error
  7592	043212	263 17 0 00 000000 		RTN				; exit
  7593
  7594	043213	160000	062072		TLERR:	MSG!TXALL![ASCIZ /Error loading test microcode - test aborted./]
  7595	043214	270000	042657			LAST!CALL!TXALL!MVPNT		; print verify errors
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 178
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0365

  7596
  7597					;#********************************************************************
  7598					;* CSRPNT - Print CSR register as 'CSR: xxxxxx,,xxxxxx' followed by
  7599					;*          English translation.
  7600					;#********************************************************************
  7601
  7602	043215	261 17 0 00 000000 	CSRPNT:	RPUT	(0,1,2,3)		; save AC's
  7603
  7604	043221	037 00 0 00 062103 		TMSGC	<CSR: >			; print out the data
  7605	043222	200 00 0 00 000001 		MOVE	1
  7606	043223	037 13 0 00 000000 		PNTHW
  7607	043224	260 17 0 00 042420*		GO	SWITT			; get switches
  7608	043225	603 00 0 00 000200 		TLNE	TXTINH			; TXTINH set?
  7609	043226	254 00 0 00 043232 		JRST	CSRPNX			; yes - exit
  7610	043227	201 02 0 00 000023 		MOVEI	2,^D19			; character count so far
  7611	043230	201 03 0 00 000023 		MOVEI	3,^D19			; continuation line column number
  7612	043231	260 17 0 00 043237 		GO	CSRENG			; go print in English
  7613	043232	262 17 0 00 000003 	CSRPNX:	RGET	(3,2,1,0)		; restore AC's
  7614
  7615	043236	263 17 0 00 000000 		RTN				; return
  7616
  7617					;#********************************************************************
  7618					;* CSRENG - Print CSR data in English
  7619					;
  7620					; AC1 - Contains data to print
  7621					; AC2 - Contains character count on line so far
  7622					; AC3 - Contains column to start continuation lines
  7623					;#********************************************************************
  7624
  7625	043237	261 17 0 00 000000 	CSRENG:	RPUT	(0,1,4,5,6)		; save AC's
  7626
  7627	043244	202 01 0 00 064332'		MOVEM	1,CSRENS#		; save CSR data
  7628	043245	200 04 0 00 000001 		MOVE	4,1			; get data into AC1
  7629	043246	400 05 0 00 000000 		SETZ	5,			; clear bit index
  7630	043247	404 04 0 00 062105 		AND	4,[777770,,777770]	; clear port ID and PI bits
  7631	043250	434 04 0 00 062106 		IOR	4,[000004,,000004]	; set bits so both are printed
  7632	043251	322 04 0 00 043270 	CSREN0:	JUMPE	4,CSRENX		; zero? yes - exit
  7633	043252	607 04 0 00 400000 		TLNN	4,400000		; no - bit set?
  7634	043253	254 00 0 00 043266 		JRST	CSREN2			; no - continue
  7635	043254	271 02 0 00 000007 		ADDI	2,7			; increment character count
  7636	043255	305 02 0 00 000110 		CAIGE	2,^D72			; over 72 characters?
  7637	043256	254 00 0 00 043265 		JRST	CSREN1			; no - go print
  7638	043257	037 00 0 00 030242 		PCRL				; yes - print CRLF, then
  7639	043260	200 01 0 00 000003 		MOVE	1,3			;   print spaces to start
  7640	043261	037 00 0 00 051536 		TMSG	< >			;   in proper column, and
  7641	043262	367 01 0 00 043261 		SOJG	1,.-1			;   adjust character count
  7642	043263	200 02 0 00 000003 		MOVE	2,3			;   properly
  7643	043264	271 02 0 00 000007 		ADDI	2,7			; increment character count
  7644	043265	256 00 0 05 043276 	CSREN1:	XCT	CSRENB(5)		; yes - print it
  7645	043266	242 04 0 00 000001 	CSREN2:	LSH	4,1			; left shift one bit
  7646	043267	345 05 0 00 043251 		AOJGE	5,CSREN0		; increment and keep looping
  7647	043270	262 17 0 00 000006 	CSRENX:	RGET	(6,5,4,1,0)		; restore AC's
  7648
  7649	043275	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 179
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0366

  7650
  7651					;#********************************************************************
  7652					;* CSRENB - CSR bits
  7653					;#********************************************************************
  7654
  7655	043276	037 00 0 00 062107 	CSRENB:	TMSG	<PortP >		; 0
  7656	043277	037 00 0 00 062111 		TMSG	<CsrRqs >		; 1
  7657	043300	037 00 0 00 062113 		TMSG	<CsrChn >		; 2
  7658	043301	037 00 0 00 062115 		TMSG	<Dinit >		; 3
  7659	043302	037 00 0 00 062117 		TMSG	<PI00Rq >		; 4
  7660	043303	037 00 0 00 062121 		TMSG	<RqInt >		; 5
  7661	043304	037 00 0 00 062123 		TMSG	<CramPE >		; 6
  7662	043305	037 00 0 00 062125 		TMSG	<MBErr >		; 7
  7663	043306	037 00 0 00 062127 		TMSG	<Unused >		; 8
  7664	043307	037 00 0 00 062127 		TMSG	<Unused >		; 9
  7665	043310	037 00 0 00 062127 		TMSG	<Unused >		; 10
  7666	043311	037 00 0 00 062131 		TMSG	<Idle >			; 11
  7667	043312	037 00 0 00 062133 		TMSG	<Dcomp >		; 12
  7668	043313	037 00 0 00 062135 		TMSG	<Ecomp >		; 13
  7669	043314	037 00 0 00 062127 		TMSG	<Unused >		; 14
  7670						GO	[TMSG	<ID=>		; 15
  7671							 LDB	[POINT 3,CSRENS,17]
  7672							 PNT1
  7673	043315	260 17 0 00 062141 			 RTN]
  7674	043316	255 00 0 00 000000 		JFCL				; 16
  7675	043317	255 00 0 00 000000 		JFCL				; 17
  7676	043320	037 00 0 00 062145 		TMSG	<PClr >			; 18
  7677	043321	037 00 0 00 062147 		TMSG	<TEbuf >		; 19
  7678	043322	037 00 0 00 062151 		TMSG	<GenEPE >		; 20
  7679	043323	037 00 0 00 062153 		TMSG	<SelLAR >		; 21
  7680	043324	037 00 0 00 062155 		TMSG	<SinCyc >		; 22
  7681	043325	037 00 0 00 062157 		TMSG	<Spare1 >		; 23
  7682	043326	037 00 0 00 062161 		TMSG	<EbusPE >		; 24
  7683	043327	037 00 0 00 062163 		TMSG	<FQErr >		; 25
  7684	043330	037 00 0 00 062165 		TMSG	<MVErr >		; 26
  7685	043331	037 00 0 00 062167 		TMSG	<CmdQAV >		; 27
  7686	043332	037 00 0 00 062171 		TMSG	<ResQAV >		; 28
  7687	043333	037 00 0 00 062173 		TMSG	<Spare2 >		; 29
  7688	043334	037 00 0 00 062175 		TMSG	<Disabl >		; 30
  7689	043335	037 00 0 00 062177 		TMSG	<Enable >		; 31
  7690	043336	037 00 0 00 062201 		TMSG	<MPRun >		; 32
  7691						GO	[LDB	[POINT 3,CSRENS,35]
  7692							 SKIPN
  7693							 RTN
  7694							 TMSG	<Pia=>		; 33-35
  7695							 PNT1
  7696	043337	260 17 0 00 062205 			 RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 180
DFPTA1	MAC	10-Oct-83 21:43		Program Utility Routines                                                           SEQ 0367

  7697
  7698					;#********************************************************************
  7699					;* SAVCRM - Save specified CRAM locations in a buffer
  7700					;#********************************************************************
  7701
  7702	043340	261 17 0 00 000000 	SAVCRM:	RPUT	(0,1,2,3)		; save AC's
  7703
  7704	043344	260 17 0 00 043170*		GO	IPACLR			; do a 'port clear'
  7705	043345	201 02 0 00 043407 		MOVEI	2,SAVCRL		; get address of storage area
  7706	043346	200 03 0 00 000001 		MOVE	3,1			; get AOBJN word
  7707	043347	552 03 0 00 037255 	SAVCR0:	HRRZM	3,CADDR			; set up CRAM address
  7708	043350	260 17 0 00 037735 		GO	DRCRAM			; read CRAM location
  7709	043351	120 00 0 00 037256 		DMOVE	CWORDL			; get location
  7710	043352	124 00 0 02 000000 		DMOVEM	(2)			; save it
  7711	043353	271 02 0 00 000002 		ADDI	2,2			; point to next location
  7712	043354	253 03 0 00 043347 		AOBJN	3,SAVCR0		; loop till done
  7713	043355	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  7714
  7715	043361	263 17 0 00 000000 		RTN				; return
  7716
  7717
  7718					;#********************************************************************
  7719					;* RESCRM - Restore CRAM locations
  7720					;#********************************************************************
  7721
  7722	043362	261 17 0 00 000000 	RESCRM:	RPUT	(0,1,2,3)		; save AC's
  7723
  7724	043366	260 17 0 00 043344*		GO	IPACLR			; do a 'port clear'
  7725	043367	261 17 0 00 035271 		PUT	PARFLG			; save parity flag
  7726	043370	402 00 0 00 035271 		SETZM	PARFLG			; don't calculate parity
  7727	043371	201 02 0 00 043407 		MOVEI	2,SAVCRL		; get address of storage area
  7728	043372	200 03 0 00 000001 		MOVE	3,1			; get AOBJN word
  7729	043373	552 03 0 00 037255 	RESCR0:	HRRZM	3,CADDR			; set up CRAM address
  7730	043374	120 00 0 02 000000 		DMOVE	(2)			; save it
  7731	043375	124 00 0 00 037256 		DMOVEM	CWORDL			; get location
  7732	043376	260 17 0 00 037703 		GO	DWCRAM			; read CRAM location
  7733	043377	271 02 0 00 000002 		ADDI	2,2			; point to next location
  7734	043400	253 03 0 00 043373 		AOBJN	3,RESCR0		; loop till done
  7735	043401	262 17 0 00 035271 		GET	PARFLG			; restore parity flag
  7736	043402	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  7737
  7738	043406	263 17 0 00 000000 		RTN				; return
  7739
  7740					; CRAM storage area
  7741
  7742	043407				SAVCRL:	BLOCK	^D50
  7743
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 181
DFPTA1	MAC	10-Oct-83 21:43		SPEAR Reporting                                                                    SEQ 0368

  7744						SUBTTL	SPEAR Reporting
  7745
  7746					;#********************************************************************
  7747					;* SPREP1 - Print initial SPEAR report 'diagnostic started'
  7748					;#********************************************************************
  7749
  7750	043471	332 00 0 00 064413'	SPREP1:	SKIPE	UDEBUG			; debug mode?
  7751	043472	263 17 0 00 000000 		RTN				; yes - return
  7752	043473	332 00 0 00 030037 		SKIPE	USER			; exec mode?
  7753	043474	332 00 0 00 064401'		SKIPE	SPEAR1			; already done?
  7754	043475	263 17 0 00 000000 		RTN				; yes - return
  7755
  7756					; Check switches first
  7757
  7758	043476	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
  7759
  7760	043500	260 17 0 00 043224*		GO	SWITT			; get program switches
  7761	043501	602 00 0 00 004000 		TRNE	DSPEAR			; SPEAR reporting disabled?
  7762	043502	254 00 0 00 043513 		JRST	SPRE1X			; yes - exit
  7763
  7764					; Get PPN and build entry / get time and insert it
  7765
  7766	043503	260 17 0 00 043700 	SPCHK1:	GO	GETPPN			; get user's PPN
  7767	043504	202 01 0 00 043530 		MOVEM	1,SENT10+11+1		; save in SPEAR entry block
  7768	043505	104 00 0 00 000227 		GTAD				; get time and day
  7769	043506	202 01 0 00 043524 		MOVEM	1,SENT10+5+1		; save it
  7770
  7771					; Make the entry
  7772
  7773	043507	201 01 0 00 043516 		MOVEI	1,SENT10		; get address of argument block
  7774	043510	201 02 0 00 000013 		MOVEI	2,^D10+1		; get length
  7775	043511	104 00 0 00 000527 	S1:	SYERR				; write to SYSERR file
  7776
  7777					; Exit
  7778
  7779	043512	476 00 0 00 064401'		SETOM	SPEAR1			; set 'SPEAR initial msg done' flag
  7780	043513	262 17 0 00 000001 	SPRE1X:	RGET	(1,0)			; restore AC's
  7781
  7782	043515	263 17 0 00 000000 		RTN				; return
  7783
  7784					; SPEAR entry block 10
  7785
  7786	043516	250000	000000		SENT10:	250000,,0			; event type
  7787	043517	000000	000000			0				; zero
  7788	043520	000000	000000			0				; zero
  7789	043521	000000	000000			0				; zero
  7790	043522	000000	000000			0				; (for Release 6.0 or later)
  7791	043523	000000	020002			20002				; time of occurence block
  7792	043524	000000	000000			0				; time
  7793	043525	000000	100004			0,,100004			; 4 words, type 10 code
  7794	043526	44 46 60 64 41 00 		SIXBIT	/DFPTA/			; diagnostic name
  7795	043527	000000	000001			MCNVER,,DECVER			; diagnostic version
  7796	043530	000000	000000			0				; user PPN
  7797	043531	000000	000000			0
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 182
DFPTA1	MAC	10-Oct-83 21:43		SPEAR Reporting                                                                    SEQ 0369

  7798
  7799					;#********************************************************************
  7800					;* SPREP2 - Print error or successful completion SPEAR report
  7801					;#********************************************************************
  7802
  7803	043532	336 00 0 00 064413'	SPREP2:	SKIPN	UDEBUG			; debug mode?
  7804	043533	336 00 0 00 030037 		SKIPN	USER			; exec mode?
  7805	043534	263 17 0 00 000000 		RTN				; yes - return
  7806
  7807					; First check if anything should be reported now
  7808
  7809	043535	261 17 0 00 000000 		PUT	0			; save AC0
  7810	043536	200 00 0 00 064402'		MOVE	SPEAR2			; get reporting flag
  7811	043537	322 00 0 00 043543 		JUMPE	SPRE2A			; nothing yet? yes - continue
  7812	043540	316 00 0 00 060021 		CAMN	[-1]			; already reported an error?
  7813						JRST	[GET			; yes - exit
  7814	043541	254 00 0 00 054655 			 RTN]
  7815						JUMPE	ERFLG,[GET		; error this time? no - exit
  7816	043542	322 15 0 00 054655 			       RTN]
  7817
  7818					; Check switches
  7819
  7820	043543	261 17 0 00 000001 	SPRE2A:	RPUT	(1,2,3,4)		; save AC's
  7821
  7822	043547	260 17 0 00 043500*		GO	SWITT			; get program switches
  7823	043550	602 00 0 00 004000 		TRNE	DSPEAR			; SPEAR reporting disabled?
  7824	043551	254 00 0 00 043630 		JRST	SPRE2X			; yes - exit
  7825
  7826					; Initialize entry
  7827
  7828	043552	402 00 0 00 043652 	SPCHK2:	SETZM	SENT11+^D11+1		; clear test number
  7829	043553	402 00 0 00 043654 		SETZM	SENT11+^D13+1		;  ...
  7830	043554	201 02 0 00 000003 		MOVEI	2,3			; set block length to 3 words
  7831	043555	137 02 0 00 062213 		DPB	2,[POINT 9,SEN11L,35]	; save length
  7832	043556	322 15 0 00 043614 		JUMPE	ERFLG,SPRE2C		; error? no - continue
  7833
  7834					; Insert test name
  7835
  7836	043557	200 01 0 00 046304 		MOVE	1,TSTCLS		; get test class
  7837						MOVE	1,[SIXBIT /TSTE00/
  7838							   SIXBIT /TSTS00/
  7839							   SIXBIT /TSTA00/
  7840							   SIXBIT /TSTM00/
  7841	043560	200 01 0 01 062214 			   SIXBIT /TSTC00/](1)
  7842	043561	135 00 0 00 062221 		LDB	[POINT 3,TSTNUM,32]	; get digit 1
  7843	043562	271 00 0 00 000020 		ADDI	20			; convert to SIXBIT
  7844	043563	137 00 0 00 062222 		DPB	[POINT 6,1,29]		; save it
  7845	043564	135 00 0 00 062223 		LDB	[POINT 3,TSTNUM,35]	; get digit 2
  7846	043565	271 00 0 00 000020 		ADDI	20			; convert to SIXBIT
  7847	043566	137 00 0 00 062224 		DPB	[POINT 6,1,35]		; save it
  7848	043567	202 01 0 00 043652 		MOVEM	1,SENT11+^D11+1		; save test number
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 183
DFPTA1	MAC	10-Oct-83 21:43		SPEAR Reporting                                                                    SEQ 0370

  7849
  7850					; Insert test description
  7851
  7852	043570	200 02 0 00 046304 		MOVE	2,TSTCLS		; get test class
  7853						XCT	[MOVEI	2,TEBUS		; get starting address in address
  7854							 MOVEI	2,TSEQ		;   table
  7855							 MOVEI	2,TALU
  7856							 MOVEI	2,TMPROC
  7857	043571	256 00 0 02 053416 			 MOVEI	2,TCBUS](2)
  7858	043572	270 02 0 00 046305 		ADD	2,TSTNUM		; include the test number
  7859	043573	370 00 0 00 000002 		SOS	2			; allow for tests 1..
  7860	043574	202 02 0 00 046311 		MOVEM	2,TSTADD		; save the dispatch table address
  7861	043575	260 17 0 00 042304 		GO	TSTGET
  7862	043576	200 01 0 00 046303 		MOVE	1,TSTNAM		; get address of test description
  7863	043577	474 02 0 00 000000 		SETO	2,			; initialize character count
  7864	043600	200 03 0 00 062225 		MOVE	3,[POINT 7,0]		; get initial byte pointer
  7865	043601	540 03 0 00 000001 		HRR	3,1			; insert address
  7866	043602	200 04 0 00 062226 		MOVE	4,[POINT 7,SENT11+^D13+1];get initial byte pointer
  7867	043603	134 00 0 00 000003 	SPRE2B:	ILDB	3			; get a byte
  7868	043604	136 00 0 00 000004 		IDPB	4			; save it
  7869	043605	350 00 0 00 000002 		AOS	2			; increment byte count
  7870	043606	326 00 0 00 043603 		JUMPN	SPRE2B			; loop till done
  7871
  7872					; Insert block length ...
  7873
  7874	043607	231 02 0 00 000005 		IDIVI	2,5			; calculate number of words
  7875	043610	332 00 0 00 000003 		SKIPE	3			; remainder?
  7876	043611	350 00 0 00 000002 		AOS	2			; yes - add in partial word
  7877	043612	271 02 0 00 000003 		ADDI	2,3			; calculate subtotal
  7878	043613	137 02 0 00 062213 		DPB	2,[POINT 9,SEN11L,35]	; save length
  7879
  7880					; Add time and day
  7881
  7882	043614	104 00 0 00 000227 	SPRE2C:	GTAD				; get time and day
  7883	043615	202 01 0 00 043644 		MOVEM	1,SENT11+5+1		; save it
  7884
  7885					; Get PPN and build entry / get time and insert it
  7886
  7887	043616	260 17 0 00 043700 		GO	GETPPN			; get user's PPN
  7888	043617	202 01 0 00 043650 		MOVEM	1,SEN11L-1		; save in SPEAR entry block
  7889
  7890					; Make the SPEAR entry
  7891
  7892	043620	201 01 0 00 043636 		MOVEI	1,SENT11		; get address of argument block
  7893	043621	135 02 0 00 062213 		LDB	2,[POINT 9,SEN11L,35]	; get length
  7894	043622	271 02 0 00 000013 		ADDI	2,^D10+1		; calculate total block length
  7895	043623	104 00 0 00 000527 	S2:	SYERR				; write to SYSERR file
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 184
DFPTA1	MAC	10-Oct-83 21:43		SPEAR Reporting                                                                    SEQ 0371

  7896
  7897					; Exit
  7898
  7899	043624	200 00 0 00 060021 		MOVE	[-1]			; get flag for 'Error message'
  7900	043625	336 00 0 00 000015 		SKIPN	ERFLG			; error flag set?
  7901	043626	200 00 0 00 061100 		MOVE	[-2]			; no - get flag for 'Final message'
  7902	043627	202 00 0 00 064402'		MOVEM	SPEAR2			; set 'SPEAR err/fin msg done' flag
  7903	043630	262 17 0 00 000004 	SPRE2X:	RGET	(4,3,2,1,0)		; restore AC's
  7904
  7905	043635	263 17 0 00 000000 		RTN				; return
  7906
  7907					; SPEAR entry block 11
  7908
  7909	043636	250000	000000		SENT11:	250000,,0			; event type
  7910	043637	000000	000000			0				; zero
  7911	043640	000000	000000			0				; zero
  7912	043641	000000	000000			0				; zero
  7913	043642	000000	000000			0				; (for Release 6.0 or later)
  7914	043643	000000	020002			20002				; time of occurence block
  7915	043644	000000	000000			0				; time
  7916
  7917	043645	000000	100004			0,,100004			; 4 words, type 10 code
  7918	043646	44 46 60 64 41 00 		SIXBIT /DFPTA/			; diagnostic name
  7919	043647	000000	000001			MCNVER,,DECVER			; diagnostic version
  7920	043650	000000	000000			0				; user PPN
  7921
  7922	043651	000000	110000		SEN11L:	0,,110000			; type 11 code
  7923	043652	000000	000000			0				; failing test name
  7924	043653	000000	000003			3				; failing test description offset
  7925	043654					BLOCK	^D20			; ASCII test description
  7926
  7927
  7928					;#********************************************************************
  7929					;* GETPPN - Find out PPN number
  7930					;#********************************************************************
  7931
  7932	043700	261 17 0 00 000002 	GETPPN:	RPUT	(2,3)			; save AC's
  7933
  7934	043702	474 01 0 00 000000 		SETO	1,			; indicate current job
  7935	043703	200 02 0 00 062227 		MOVE	2,[-1,,1]		; place 1 word into AC1
  7936	043704	201 03 0 00 000003 		MOVEI	3,3			; point to connected directory number
  7937	043705	104 00 0 00 000507 		GETJI				; get job information
  7938	043706	400 01 0 00 000000 		SETZ	1,			; error - just clear AC1
  7939	043707	262 17 0 00 000003 		RGET	(3,2)			; restore AC's
  7940
  7941	043711	263 17 0 00 000000 		RTN				; return
  7942
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 185
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0372

  7943						SUBTTL	Test Execute Routines
  7944
  7945					;#********************************************************************
  7946					;* SEXEC - Execute entries in a 'Single Step Table'
  7947					;
  7948					; This routine is used to simplify the coding of micro-diagnostic tests
  7949					; which single step the microsequencer and which normally  pass or fail
  7950					; depending on the CRAM address latched into the Latch Address Register
  7951					; at various points in the test.
  7952					;
  7953					; This routine is given a pointer to the 'Single Step Table'.  It then
  7954					; executes one entry and returns +1,+2,+3 or +4 depending  on the type
  7955					; of entry and the result.
  7956					;
  7957					; Argument:	AC6 - Address of 'Single Step Table'
  7958					;
  7959					; Return:	+1 - End of table was seen.
  7960					;		+2 - A routine was called, and this entry has completed.
  7961					;		+3 - The single steps are done but final address incorrect
  7962					;		+4 - The single steps are done and final address correct
  7963					;
  7964					;		NSSTEP - Contains number of single steps done
  7965					;		SSADDR - Initial starting address
  7966					;		SEADDR - Correct final address
  7967					;		SAADDR - Actual final address
  7968					;
  7969					;		AC6 - Updated to point to the next table location
  7970					;
  7971					; Single Step Table Format:
  7972					;
  7973					;		Entry
  7974					;		Entry
  7975					;		 ...
  7976					;		SSLAST		; last entry (zero)
  7977					;
  7978					; 'Entry' is of the form:
  7979					;
  7980					; Bits 0-2 - Type of entry - 0 - Single Step (start addr given)(SSSTRT)
  7981					;			     1 - Single Step (continue)        (SSCONT)
  7982					;			     2 - Special Call		       (SSCALL)
  7983					;			     3 - Special Call, pass/fail exit  (SSCHK)
  7984					;			     4 - Select new table address      (SSJRST)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 186
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0373

  7985
  7986					; Bits 3-35 - Defined per entry type.
  7987					;
  7988					;    Entry type 0 (SSLAST) - All zero - indicates end of table
  7989					;
  7990					;    Entry type 1 (SSSTRT) - Bits 3-11 - Single step address to start at
  7991					;				 12-23 - Number of single steps to do
  7992					;				 24-35 - Correct end address
  7993					;
  7994					;    Entry type 2 (SSCONT) - Bits 3-11 - Unused
  7995					;				 12-23 - Number of single steps to do
  7996					;				 24-35 - Correct end address
  7997					;
  7998					;    Entry type 3 (SSCALL) - Bits 3-35 - Address of routine to call
  7999					;
  8000					;    Entry type 4 (SSCHK) -  Bits 3-35 - Address of routine to call (return 
  8001					;					 +1 if done with test, +2 otherwise)
  8002					;
  8003					;    Entry type 5 (SSJRST) - Bits 3-35 - Table address to continue
  8004					;#********************************************************************
  8005
  8006	043712	261 17 0 00 000000 	SEXEC:	RPUT	(0,1,2)			; save AC's
  8007
  8008
  8009					; Check if end of table
  8010
  8011	043715	200 02 0 06 000000 		MOVE	2,(6)			; get entry
  8012	043716	350 00 0 00 000006 		AOS	6			; point to next entry
  8013	043717	322 02 0 00 043723 		JUMPE	2,SEXEX1		; end of table - yes - exit
  8014
  8015					; Determine type of entry and dispatch
  8016
  8017	043720	135 01 0 00 062230 		LDB	1,[POINT 3,2,2]		; get entry
  8018						XCT	[JRST	SEXEX1		; dispatch on it
  8019							 JRST	SEXSSS
  8020							 JRST	SEXSSC
  8021							 JRST	SEXCAL
  8022							 JRST	SEXCHK
  8023							 JRST	SEXJRS
  8024							 JRST	SEXERR
  8025							 JRST	SEXERR
  8026							 JRST	SEXERR
  8027	043721	256 00 0 01 062231 			 JRST	SEXERR](1)
  8028
  8029					; Error in Single Step Table
  8030
  8031	043722	037 00 0 00 062243 	SEXERR:	TMSGCD	<Single Step Dispatch Table Error - Entry out of range>
  8032	043723	332 00 0 00 064377'	SEXEX1:	SKIPE	SDEBUG			; EXEC debug mode?
  8033	043724	037 00 0 00 030242 		PCRL				; yes - a final CRLF
  8034	043725	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8035
  8036	043730	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 187
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0374

  8037
  8038					; Execute single step
  8039
  8040	043731	135 00 0 00 062257 	SEXSSS:	LDB	[POINT 12,2,23]		; get start address
  8041	043732	202 00 0 00 042255*		MOVEM	SNEXT			; save it
  8042	043733	200 00 0 00 043732*	SEXSSC:	MOVE	SNEXT			; get next address
  8043	043734	202 00 0 00 044045 		MOVEM	SSADDR			; save as start address
  8044	043735	135 00 0 00 062260 		LDB	[POINT 9,2,11]		; get # of single steps to do
  8045	043736	202 00 0 00 044044 		MOVEM	NSSTEP			; save it
  8046	043737	135 00 0 00 062261 		LDB	[POINT 12,2,35]		; get correct end address
  8047	043740	202 00 0 00 044046 		MOVEM	SEADDR			; save it
  8048	043741	350 00 0 00 046306 		AOS	TSTSUB			; increment test segment
  8049
  8050					; Set up start data
  8051
  8052	043742	336 01 0 00 042256*		SKIPN	1,SDATA			; any data given?
  8053	043743	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
  8054	043744	332 00 0 00 030037 		SKIPE	USER			; user mode?
  8055	043745	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
  8056	043746	660 01 0 00 060010 		TRO	1,SELLAR!MPRUN!SINCYC	; ensure SELLAR,MPRUN,SINCYC are set
  8057	043747	202 01 0 00 043742*		MOVEM	1,SDATA			; save start data
  8058	043750	260 17 0 00 000000*		GO	SETLAR			; set up to write to LAR
  8059	043751	255 00 0 00 000000 		 JFCL				; error
  8060
  8061					; Single step NSSTEP times
  8062
  8063	043752	200 02 0 00 044044 		MOVE	2,NSSTEP		; get number of times
  8064
  8065					; First write the LAR
  8066
  8067	043753	200 01 0 00 043733*	SEXSS0:	MOVE	1,SNEXT			; get start address
  8068	043754	242 01 0 00 000001 		LSH	1,1			; position properly
  8069	043755	260 17 0 00 042573*		GO	LDRAR			; load the register
  8070
  8071					; Then do the single step
  8072
  8073	043756	200 01 0 00 043747*		MOVE	1,SDATA			; get start data
  8074	043757	260 17 0 00 041644*		GO	LDCSR			; write to CSR
  8075
  8076					; Then read the LAR
  8077
  8078	043760	260 17 0 00 041645*		GO	RDLAR			; read LAR
  8079	043761	242 01 0 00 777777 		LSH	1,-1			; position properly
  8080	043762	202 01 0 00 043753*		MOVEM	1,SNEXT			; set up new next address
  8081	043763	367 02 0 00 043753 		SOJG	2,SEXSS0		; loop till done
  8082	043764	202 01 0 00 044047 		MOVEM	1,SAADDR		; save actual end address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 188
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0375

  8083
  8084					; Debug output
  8085
  8086	043765	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8087						GO	[TMSGC	<SSTEP:  #S >	; yes - print debug
  8088							 MOVE	NSSTEP		;   output and then
  8089							 PNTDEC			;   continue
  8090							 TMSG	<, SADR >
  8091							 MOVE	SSADDR
  8092							 PNTOCS
  8093							 TMSG	<, EADR >
  8094							 MOVE	SEADDR
  8095							 PNTOCS
  8096							 TMSG	<, AADR >
  8097							 MOVE	SAADDR
  8098							 PNTOCS
  8099	043766	260 17 0 00 062273 			 RTN]
  8100
  8101					; Done - compare end address to expected
  8102
  8103	043767	200 01 0 00 044047 		MOVE	1,SAADDR		; save actual end address
  8104	043770	316 01 0 00 044046 		CAMN	1,SEADDR		; correct result?
  8105	043771	350 00 0 17 777775 		AOS	-3(P)			; yes - increment return 
  8106	043772	350 00 0 17 777775 		AOS	-3(P)			; set up return
  8107	043773	350 00 0 17 777775 		AOS	-3(P)			; set up return
  8108	043774	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8109
  8110	043777	263 17 0 00 000000 		RTN				; return +3/+4
  8111
  8112					; Execute a JRST and exit
  8113
  8114	044000	550 02 0 00 000002 	SEXJRS:	HRRZ	2,2			; only want the address
  8115	044001	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8116						GO	[TMSGC	<SJRST Adr  >	; yes - print debug
  8117							 MOVE	2		;   data and continue
  8118							 PNTOCS
  8119	044002	260 17 0 00 062313 			 RTN]
  8120	044003	200 06 0 00 000002 		MOVE	6,2			; get new table address
  8121	044004	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8122
  8123	044007	350 00 0 17 000000 		AOS	(P)			; set up return
  8124	044010	263 17 0 00 000000 		RTN				; return +2
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 189
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0376

  8125
  8126					; Execute a CALL and exit
  8127
  8128	044011	550 02 0 00 000002 	SEXCAL:	HRRZ	2,2			; only want the address
  8129	044012	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8130						GO	[TMSGC	<SCALL Adr  >	; yes - print debug
  8131							 MOVE	2		;   data and continue
  8132							 PNTOCS
  8133	044013	260 17 0 00 062322 			 RTN]
  8134	044014	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  8135
  8136	044016	260 17 1 00 000002 		GO	@2			; call the routine
  8137	044017	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8138
  8139	044024	350 00 0 17 000000 		AOS	(P)			; set up return
  8140	044025	263 17 0 00 000000 		RTN				; return +2
  8141
  8142					; Execute a CALL and exit (if the return is +1 then exit test)
  8143
  8144	044026	550 02 0 00 000002 	SEXCHK:	HRRZ	2,2			; only want the address
  8145	044027	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8146						GO	[TMSGC	<SCHK Adr  >	; yes - print debug
  8147							 MOVE	2		;   data and continue
  8148							 PNTOCS
  8149	044030	260 17 0 00 062331 			 RTN]
  8150	044031	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  8151
  8152	044033	260 17 1 00 000002 		GO	@2			; call the routine
  8153	044034	334 00 0 00 000000 		SKIPA				; exit test
  8154	044035	350 00 0 17 777773 		AOS	-5(P)			; ok - set up return
  8155	044036	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8156
  8157	044043	263 17 0 00 000000 		RTN				; return +2 or +1
  8158
  8159					; Miscellaneous
  8160
  8161	044044	000000	000000		NSSTEP:	0				; number of single steps to do
  8162	044045	000000	000000		SSADDR:	0				; initial starting address
  8163	044046	000000	000000		SEADDR:	0				; correct final address
  8164	044047	000000	000000		SAADDR:	0				; actual final address
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 190
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0377

  8165
  8166					;#********************************************************************
  8167					;* SSPNT - Print out single step data that resulted in an error
  8168					;#********************************************************************
  8169
  8170	044050	261 17 0 00 000000 	SSPNT:	RPUT	(0,1)
  8171
  8172	044052	200 01 0 00 000000*		MOVE	1,SCOSW			; get switches
  8173	044053	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
  8174	044054	254 00 0 00 044073 		JRST	SSPN1			; yes - print alternate format
  8175
  8176					; Print single step data
  8177
  8178	044055	037 00 0 00 062335 		TMSGC	<Start Addr:  >
  8179	044056	200 00 0 00 044045 		MOVE	SSADDR
  8180	044057	037 04 0 00 000000 		PNT4
  8181	044060	037 00 0 00 062341 		TMSG	<, # Steps:  >
  8182	044061	200 00 0 00 044044 		MOVE	NSSTEP
  8183	044062	037 15 0 00 000000 		PNTDEC
  8184	044063	037 00 0 00 057046 		TMSG	<.>
  8185	044064	037 00 0 00 062344 		TMSGC	<End Addr - Correct:  >
  8186	044065	200 00 0 00 044046 		MOVE	SEADDR
  8187	044066	037 04 0 00 000000 		PNT4
  8188	044067	037 00 0 00 062351 		TMSGC	<            Actual:  >
  8189	044070	200 00 0 00 044047 		MOVE	SAADDR
  8190	044071	037 04 0 00 000000 		PNT4
  8191	044072	254 00 0 00 044110 		JRST	SSPNX
  8192
  8193					; Print single step data
  8194
  8195	044073	037 00 0 00 062356 	SSPN1:	TMSGC	<Start  >
  8196	044074	200 00 0 00 044045 		MOVE	SSADDR
  8197	044075	037 04 0 00 000000 		PNT4
  8198	044076	037 00 0 00 062360 		TMSG	<, # Steps  >
  8199	044077	200 00 0 00 044044 		MOVE	NSSTEP
  8200	044100	037 15 0 00 000000 		PNTDEC
  8201	044101	037 00 0 00 057046 		TMSG	<.>
  8202	044102	037 00 0 00 062363 		TMSGC	<End (C):  >
  8203	044103	200 00 0 00 044046 		MOVE	SEADDR
  8204	044104	037 04 0 00 000000 		PNT4
  8205	044105	037 00 0 00 062366 		TMSGC	<    (A):  >
  8206	044106	200 00 0 00 044047 		MOVE	SAADDR
  8207	044107	037 04 0 00 000000 		PNT4
  8208
  8209					; Done - exit
  8210
  8211	044110	262 17 0 00 000001 	SSPNX:	RGET	(1,0)			; restore AC's
  8212
  8213	044112	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 191
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0378

  8214
  8215					;#********************************************************************
  8216					;* AEXEC - ALU type test execute routine
  8217					;
  8218					; This routine very simply starts up the port and waits for it to
  8219					; stop, then reads the LAR to find out where it  stopped.  If  it
  8220					; does not stop (times out), this routine forces it to  stop  and
  8221					; records the stopping address.
  8222					;
  8223					; Arguments:	AC1 - Amount of time in milliseconds before timeout
  8224					;		AC2 - Correct error address
  8225					;		AC3 - Correct final address
  8226					;		AC4 - Start address
  8227					;
  8228					; Results:	Rtn +1 - Error occurred
  8229					;		Rtn +2 - No error found
  8230					;
  8231					; Updated:	ALSRT - start address
  8232					;		ALCSR - final CSR data
  8233					;		ALERR - error final address
  8234					;		ALCOR - correct final address
  8235					;		ALACT - actual final address
  8236					;		ALEBF - contents of EBUF at end
  8237					;		ALTIM - amount of time to wait before timeout
  8238					;		ALFLS - flag - start up (0 ok, -1 failed)
  8239					;		ALFLE - flag - error address (0 ok, -1 incorrect)
  8240					;		ALFLC - flag - stopped with CRAM PE (0 yes, -1 no)
  8241					;		ALFLT - flag - timeout occurred (0 no, -1 yes)
  8242					;#********************************************************************
  8243
  8244	044113	261 17 0 00 000000 	AEXEC:	RPUT	(0,1,2)			; save some AC's
  8245
  8246
  8247					; Initialize everything
  8248
  8249	044116	202 01 0 00 044213 		MOVEM	1,ALTIM			; save timeout time
  8250	044117	202 02 0 00 044217 		MOVEM	2,ALERR			; save error final address
  8251	044120	202 03 0 00 044220 		MOVEM	3,ALCOR			; correct final address
  8252	044121	202 04 0 00 044214 		MOVEM	4,ALSRT			; save start address
  8253	044122	202 04 0 00 043762*		MOVEM	4,SNEXT			; set up start address
  8254	044123	402 00 0 00 044215 		SETZM	ALCSR			; clear final CSR data
  8255	044124	402 00 0 00 044221 		SETZM	ALACT			; clear actual final address
  8256	044125	402 00 0 00 044222 		SETZM	ALFLS			; clear flag 'start up ok'
  8257	044126	402 00 0 00 044223 		SETZM	ALFLE			; clear flag 'error address ok'
  8258	044127	402 00 0 00 044224 		SETZM	ALFLC			; clear flag 'stopped with CRAM PE'
  8259	044130	402 00 0 00 044225 		SETZM	ALFLT			; clear flag 'timeout occurred'
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 192
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0379

  8260
  8261					; Start up the port
  8262
  8263	044131	260 17 0 00 043366*		GO	IPACLR			; do a 'port clear'
  8264	044132	260 17 0 00 043750*		GO	SETLAR			; set up to write the LAR
  8265						 JRST	[SETOM	ALFLS		; failed - set flag and
  8266	044133	254 00 0 00 062371 			 JRST	AEXECX]		;   exit
  8267	044134	200 01 0 00 044122*		MOVE	1,SNEXT			; get start address
  8268	044135	242 01 0 00 000001 		LSH	1,1			; position properly
  8269	044136	260 17 0 00 043755*		GO	LDRAR			; write to RAR
  8270	044137	201 01 0 00 000010 		MOVEI	1,MPRUN			; get MPRUN bit
  8271	044140	260 17 0 00 043757*		GO	LDCSR			; start up the port
  8272
  8273					; Wait the amount of time specified by the timeout period
  8274
  8275	044141	200 00 0 00 044213 		MOVE	ALTIM			; get amount of time
  8276	044142	260 17 0 00 042430 		GO	ODELAY			; wait
  8277
  8278					; Check final conditions
  8279
  8280	044143	260 17 0 00 042476*		GO	RDCSR			; read CSR
  8281						 JRST	[SETOM	ALFLS		; failed - set flag and
  8282	044144	254 00 0 00 062371 			 JRST	AEXECX]		;   exit
  8283	044145	202 01 0 00 044215 		MOVEM	1,ALCSR			; save final CSR data
  8284	044146	607 01 0 00 004000 		TLNN	1,(CRAMPE)		; get a CRAM PE?
  8285	044147	476 00 0 00 044224 		SETOM	ALFLC			; no - flag it
  8286	044150	606 01 0 00 000010 		TRNN	1,MPRUN			; MPRUN still set?
  8287	044151	254 00 0 00 044163 		JRST	AEXEC0			; no - continue
  8288	044152	476 00 0 00 044225 		SETOM	ALFLT			; yes - flag timeout occurred
  8289	044153	400 01 0 00 000000 		SETZ	1,			; write 0's to CSR
  8290	044154	260 17 0 00 044140*		GO	LDCSR			; this should stop it
  8291	044155	260 17 0 00 044143*		GO	RDCSR			; read CSR
  8292	044156	334 00 0 00 000000 		 SKIPA				; error
  8293	044157	602 01 0 00 000010 		TRNE	1,MPRUN			; MPRUN still set?
  8294	044160	260 17 0 00 044131*		GO	IPACLR			; yes - do a port clear
  8295	044161	260 17 0 00 044155*		GO	RDCSR			; read it again
  8296	044162	255 00 0 00 000000 		 JFCL				; error
  8297	
  8298					; Read EBUF
  8299
  8300	044163	201 01 0 00 200000 	AEXEC0:	MOVEI	1,TSTEBF		; set bit to read EBUF
  8301	044164	260 17 0 00 044154*		GO	LDCSR			; write it
  8302	044165	260 17 0 00 040346*		GO	RDEBUF			; read EBUF
  8303	044166	202 01 0 00 044216 		MOVEM	1,ALEBF			; save data
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 193
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0380

  8304
  8305					; Read LAR ...
  8306
  8307	044167	260 17 0 00 044132*		GO	SETLAR			; set up to read LAR
  8308	044170	255 00 0 00 000000 		 JFCL				; ignore error
  8309	044171	260 17 0 00 043760*		GO	RDLAR			; read it
  8310	044172	242 01 0 00 777777 		LSH	1,-1			; position properly
  8311	044173	202 01 0 00 044221 		MOVEM	1,ALACT			; save final address
  8312	044174	312 01 0 00 044220 		CAME	1,ALCOR			; correct?
  8313	044175	476 00 0 00 044223 		SETOM	ALFLE			; no - flag it
  8314
  8315					; Exit
  8316
  8317	044176	262 17 0 00 000002 	AEXECX:	RGET	(2,1,0)			; restore AC's
  8318
  8319	044201	332 00 0 00 044223 		SKIPE	ALFLE			; error flag set?
  8320	044202	263 17 0 00 000000 		RTN				; yes - return +1
  8321	044203	332 00 0 00 044222 		SKIPE	ALFLS			; error flag set?
  8322	044204	263 17 0 00 000000 		RTN				; yes - return +1
  8323	044205	332 00 0 00 044224 		SKIPE	ALFLC			; error flag set?
  8324	044206	263 17 0 00 000000 		RTN				; yes - return +1
  8325	044207	332 00 0 00 044225 		SKIPE	ALFLT			; error flag set?
  8326	044210	263 17 0 00 000000 		RTN				; yes - return +1
  8327	044211	350 00 0 17 000000 		AOS	(P)			; no - set up RTN+2
  8328	044212	263 17 0 00 000000 		RTN				; return +2
  8329
  8330					; Test variables
  8331
  8332	044213	000000	000000		ALTIM:	0				; timeout time
  8333	044214	000000	000000		ALSRT:	0				; start address
  8334	044215	000000	000000		ALCSR:	0				; final CSR data
  8335	044216	000000	000000		ALEBF:	0				; final EBUF data
  8336	044217	000000	000000		ALERR:	0				; error final address
  8337	044220	000000	000000		ALCOR:	0				; correct final address
  8338	044221	000000	000000		ALACT:	0				; actual final address
  8339	044222	000000	000000		ALFLS:	0				; flag (0 - started ok
  8340										;      -1 - failed to start)
  8341	044223	000000	000000		ALFLE:	0				; flag (0 - error address ok
  8342										;      -1 - incorrect err addr)
  8343	044224	000000	000000		ALFLC:	0				; flag (0 - stopped with CRAM PE
  8344										;      -1 - did not have CRAM PE)
  8345	044225	000000	000000		ALFLT:	0				; flag (0 - no timeout
  8346										;      -1 - timeout occurred)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 194
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0381

  8347
  8348					;#********************************************************************
  8349					;* AAPNT - Print results message
  8350					;#********************************************************************
  8351
  8352	044226	261 17 0 00 000000 	AAPNT:	RPUT	(0,1)			; save AC's
  8353
  8354	044230	037 00 0 00 062373 		TMSGC	<Start addr:  >
  8355	044231	200 00 0 00 044214 		MOVE	ALSRT			; get start address
  8356	044232	037 04 0 00 000000 		PNT4				; print it
  8357	044233	200 01 0 00 044052*		MOVE	1,SCOSW			; get switches
  8358	044234	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout?
  8359						GO	[TMSGC	<Final CSR data: >
  8360							 MOVE	ALCSR		; yes - get CSR data
  8361							 PNTHW			; print it
  8362							 TMSGC	<End Addr - Correct:  >
  8363							 MOVE	ALCOR
  8364							 PNT4
  8365							 TMSGC	<            Actual:  >
  8366	044235	260 17 0 00 062403 			 RTN]
  8367	044236	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  8368						GO	[TMSGC	<End Addr (C):  >
  8369							 MOVE	ALCOR
  8370							 PNT4
  8371							 TMSGC	<         (A):  >
  8372	044237	260 17 0 00 062423 			 RTN]
  8373	044240	200 00 0 00 044221 		MOVE	ALACT			; get end address
  8374	044241	037 04 0 00 000000 		PNT4				; print it
  8375
  8376					; Message if never started up in the first place
  8377
  8378	044242	336 00 0 00 044222 		SKIPN	ALFLS			; never got it started?
  8379	044243	254 00 0 00 044246 		JRST	AAPNT0			; no - continue
  8380	044244	037 00 0 00 062430 		TMSGC	<Couldn't start the port>
  8381	044245	254 00 0 00 044261 		JRST	AAPNTX			; exit
  8382
  8383					; Message if stopped in error at the wrong place
  8384
  8385	044246	336 00 0 00 044223 	AAPNT0:	SKIPN	ALFLE			; error addr correct?
  8386	044247	254 00 0 00 044257 		JRST	AAPNT1			; yes - continue
  8387	044250	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  8388	044251	254 00 0 00 044261 		JRST	AAPNTX			; no - exit
  8389	044252	037 00 0 00 062436 		TMSGC	<(Should have stopped at >
  8390	044253	200 00 0 00 044220 		MOVE	ALCOR			; get correct address
  8391	044254	037 04 0 00 000000 		PNT4				; print it
  8392	044255	037 00 0 00 062444 		TMSG	< - test did not function properly)>
  8393	044256	254 00 0 00 044261 		JRST	AAPNTX			; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 195
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0382

  8394
  8395					; Message if CRAM PE did not set also
  8396
  8397	044257	332 00 0 00 044224 	AAPNT1:	SKIPE	ALFLC			; CRAM PE set?
  8398	044260	037 00 0 00 062453 		TMSGC	<CRAM PE should have set upon error>
  8399
  8400					; Exit
  8401
  8402	044261	262 17 0 00 000001 	AAPNTX:	RGET	(1,0)			; restore AC's
  8403
  8404	044263	263 17 0 00 000000 		RTN				; exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 196
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0383

  8405
  8406					;#********************************************************************
  8407					;* BEXEC - Execute entries in a 'Single Step Table', verifying EBUF data
  8408					;
  8409					; This routine is used to simplify the coding of micro-diagnostic tests
  8410					; which single step the microsequencer and which normally  pass or fail
  8411					; depending  on  the result stored in the EBUF at various points in the
  8412					; test.
  8413					;
  8414					; This routine is given a pointer to the 'Single Step Table'.  It then
  8415					; executes one entry and returns +1,+2,+3 or +4 depending  on the type
  8416					; of entry and the result.
  8417					;
  8418					; Argument:	AC6 - Address of 'Single Step Table'
  8419					;
  8420					; Return:	+1 - End of table was seen.
  8421					;		+2 - A routine was called, and this entry has completed.
  8422					;		+3 - The single steps are done but EBUF data incorrect
  8423					;		+4 - The single steps are done and EBUF data correct
  8424					;
  8425					;		NSSTEP - Contains number of single steps done
  8426					;		SSADDR - Initial starting address
  8427					;		SEADDR - Correct final address
  8428					;		SAADDR - Actual final address
  8429					;		CEBUF - Correct final EBUF data
  8430					;		AEBUF - Actual final EBUF data
  8431					;		BFLAG - flag - error address (0 ok, -1 incorrect)
  8432					;
  8433					;		AC6 - Updated to point to the next table location
  8434					;
  8435					; Single Step Table Format:
  8436					;
  8437					;		Entry
  8438					;		Entry
  8439					;		 ...
  8440					;		SSLAST		; last entry (zero)
  8441					;
  8442					; 'Entry' is of the form:
  8443					;
  8444					; Bits 0-2 - Type of entry - 0 - Single Step (start addr given)(SSSTRT)
  8445					;			     1 - Single Step (continue)        (SSCONT)
  8446					;			     2 - Special Call		       (SSCALL)
  8447					;			     3 - Special Call, pass/fail exit  (SSCHK)
  8448					;			     4 - Select new table address      (SSJRST)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 197
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0384

  8449
  8450					; Bits 3-35 - Defined per entry type.
  8451					;
  8452					;    Entry type 0 (SSLAST) - All zero - indicates end of table
  8453					;
  8454					;    Entry type 1 (SSSTRT) - Bits 3-11 - Number of single steps to do
  8455					;				 12-23 - Single step address to start at
  8456					;				 24-35 - Correct end address
  8457					;
  8458					;    Entry type 2 (SSCONT) - Bits 3-11 - Number of single steps to do
  8459					;				 12-23 - Unused
  8460					;				 24-35 - Correct end address
  8461					;
  8462					;    Entry type 3 (SSCALL) - Bits 3-35 - Address of routine to call
  8463					;
  8464					;    Entry type 4 (SSCHK) -  Bits 3-35 - Address of routine to call (return 
  8465					;					 +1 if done with test, +2 otherwise)
  8466					;
  8467					;    Entry type 5 (SSJRST) - Bits 3-35 - Table address to continue
  8468					;#********************************************************************
  8469
  8470	044264	261 17 0 00 000000 	BEXEC:	RPUT	(0,1,2,3)		; save AC's
  8471
  8472
  8473					; Check if end of table
  8474
  8475	044270	200 02 0 06 000000 		MOVE	2,(6)			; get entry (single step data)
  8476	044271	200 03 0 06 000001 		MOVE	3,1(6)			; get entry (EBUF correct data)
  8477	044272	350 00 0 00 000006 		AOS	6			; point to next entry
  8478	044273	322 02 0 00 044277 		JUMPE	2,BEXEX1		; end of table - yes - exit
  8479
  8480					; Determine type of entry and dispatch
  8481
  8482	044274	135 01 0 00 062230 		LDB	1,[POINT 3,2,2]		; get entry
  8483						XCT	[JRST	BEXEX1		; dispatch on it
  8484							 JRST	BEXSSS
  8485							 JRST	BEXSSC
  8486							 JRST	BEXCAL
  8487							 JRST	BEXCHK
  8488							 JRST	BEXJRS
  8489							 JRST	BEXERR
  8490							 JRST	BEXERR
  8491							 JRST	BEXERR
  8492	044275	256 00 0 01 062463 			 JRST	BEXERR](1)
  8493
  8494					; Error in Single Step Table
  8495
  8496	044276	037 00 0 00 062243 	BEXERR:	TMSGCD	<Single Step Dispatch Table Error - Entry out of range>
  8497	044277	332 00 0 00 064377'	BEXEX1:	SKIPE	SDEBUG			; EXEC debug mode?
  8498	044300	037 00 0 00 030242 		PCRL				; yes - a final CRLF
  8499	044301	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  8500
  8501	044305	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 198
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0385

  8502
  8503					; Execute single step
  8504
  8505	044306	135 00 0 00 062257 	BEXSSS:	LDB	[POINT 12,2,23]		; get start address
  8506	044307	202 00 0 00 044134*		MOVEM	SNEXT			; save it
  8507	044310	200 00 0 00 044307*	BEXSSC:	MOVE	SNEXT			; get next address
  8508	044311	202 00 0 00 044045 		MOVEM	SSADDR			; save as start address
  8509	044312	135 00 0 00 062260 		LDB	[POINT 9,2,11]		; get # of single steps to do
  8510	044313	202 00 0 00 044044 		MOVEM	NSSTEP			; save it
  8511	044314	135 00 0 00 062261 		LDB	[POINT 12,2,35]		; get correct end address
  8512	044315	202 00 0 00 044046 		MOVEM	SEADDR			; save it
  8513	044316	202 03 0 00 044436 		MOVEM	3,CEBUF			; save correct EBUF data
  8514	044317	350 00 0 00 046306 		AOS	TSTSUB			; increment test segment
  8515	044320	350 00 0 00 000006 		AOS	6			; point to next entry
  8516
  8517					; Set up start data
  8518
  8519	044321	336 01 0 00 043756*		SKIPN	1,SDATA			; any data given?
  8520	044322	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
  8521	044323	332 00 0 00 030037 		SKIPE	USER			; user mode?
  8522	044324	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
  8523	044325	660 01 0 00 220010 		TRO	1,TSTEBF!MPRUN!SINCYC 
  8524	044326	202 01 0 00 044321*		MOVEM	1,SDATA			; save start data
  8525	044327	620 01 0 00 200010 		TRZ	1,TSTEBF!MPRUN		; ensure TSTEBF,MPRUN cleared
  8526	044330	260 17 0 00 044164*		GO	LDCSR			; set up to write to LAR
  8527
  8528					; Single step NSSTEP times
  8529
  8530	044331	200 02 0 00 044044 		MOVE	2,NSSTEP		; get number of times
  8531
  8532					; First write the LAR
  8533
  8534	044332	200 01 0 00 044310*	BEXSS0:	MOVE	1,SNEXT			; get start address
  8535	044333	242 01 0 00 000001 		LSH	1,1			; position properly
  8536	044334	260 17 0 00 044136*		GO	LDRAR			; load the register
  8537
  8538					; Then do the single step
  8539
  8540	044335	200 01 0 00 044326*		MOVE	1,SDATA			; get start data
  8541	044336	260 17 0 00 044330*		GO	LDCSR			; write to CSR
  8542
  8543					; Then read the EBUF
  8544
  8545	044337	260 17 0 00 044165*		GO	RDEBUF			; read it
  8546	044340	202 01 0 00 044435 		MOVEM	1,AEBUF			; save actual EBUF data
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 199
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0386

  8547
  8548					; Then read the LAR
  8549
  8550	044341	200 01 0 00 044335*		MOVE	1,SDATA			; get start data
  8551	044342	620 01 0 00 200010 		TRZ	1,TSTEBF!MPRUN		; ensure TSTEBF and MPRUN cleared
  8552	044343	660 01 0 00 040000 		TRO	1,SELLAR		;   and set SELLAR
  8553	044344	260 17 0 00 044336*		GO	LDCSR			; write to CSR
  8554	044345	260 17 0 00 044171*		GO	RDLAR			; read LAR
  8555	044346	242 01 0 00 777777 		LSH	1,-1			; position properly
  8556	044347	202 01 0 00 044332*		MOVEM	1,SNEXT			; set up new next address
  8557	044350	367 02 0 00 044332 		SOJG	2,BEXSS0		; loop till done
  8558	044351	202 01 0 00 044047 		MOVEM	1,SAADDR		; save actual end address
  8559
  8560					; Debug output
  8561
  8562	044352	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8563						GO	[TMSGC	<SSTEP:  #S >	; yes - print debug
  8564							 MOVE	NSSTEP		;   output and then
  8565							 PNTDEC			;   continue
  8566							 TMSG	<, SADR >
  8567							 MOVE	SSADDR
  8568							 PNTOCS
  8569							 TMSG	<, EADR >
  8570							 MOVE	SEADDR
  8571							 PNTOCS
  8572							 TMSG	<, AADR >
  8573							 MOVE	SAADDR
  8574							 PNTOCS
  8575							 TMSG	<, EBUF >
  8576							 MOVE	AEBUF
  8577							 PNTHW
  8578	044353	260 17 0 00 062477 			 RTN]
  8579
  8580					; Done - compare end address to expected
  8581
  8582	044354	402 00 0 00 044437 		SETZM	BFLAG			; clear 'incorrect address' flag
  8583	044355	200 01 0 00 044047 		MOVE	1,SAADDR		; save actual end address
  8584	044356	312 01 0 00 044046 		CAME	1,SEADDR		; correct result?
  8585	044357	476 00 0 00 044437 		SETOM	BFLAG			; no - set 'incorrect address' flag
  8586	044360	200 01 0 00 044435 		MOVE	1,AEBUF			; get actual EBUF data
  8587	044361	316 01 0 00 044436 		CAMN	1,CEBUF			; correct result?
  8588	044362	350 00 0 17 777774 		AOS	-4(P)			; yes - increment return 
  8589	044363	350 00 0 17 777774 		AOS	-4(P)			; set up return
  8590	044364	350 00 0 17 777774 		AOS	-4(P)			; set up return
  8591	044365	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  8592
  8593	044371	263 17 0 00 000000 		RTN				; return +3/+4
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 200
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0387

  8594
  8595					; Execute a JRST and exit
  8596
  8597	044372	550 02 0 00 000002 	BEXJRS:	HRRZ	2,2			; only want the address
  8598	044373	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8599						GO	[TMSGC	<SJRST Adr  >	; yes - print debug
  8600							 MOVE	2		;   data and continue
  8601							 PNTOCS
  8602	044374	260 17 0 00 062313 			 RTN]
  8603	044375	200 06 0 00 000002 		MOVE	6,2			; get new table address
  8604	044376	262 17 0 00 000003 		RGET	(3,2,1,0)		; restore AC's
  8605
  8606	044402	350 00 0 17 000000 		AOS	(P)			; set up return
  8607	044403	263 17 0 00 000000 		RTN				; return +2
  8608
  8609					; Execute a CALL and exit
  8610
  8611	044404	550 02 0 00 000002 	BEXCAL:	HRRZ	2,2			; only want the address
  8612	044405	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8613						GO	[TMSGC	<SCALL Adr  >	; yes - print debug
  8614							 MOVE	2		;   data and continue
  8615							 PNTOCS
  8616	044406	260 17 0 00 062322 			 RTN]
  8617	044407	261 17 0 00 000004 		PUT	4			; save another AC
  8618	044410	260 17 1 00 000002 		GO	@2			; call the routine
  8619	044411	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8620
  8621	044416	350 00 0 17 000000 		AOS	(P)			; set up return
  8622	044417	263 17 0 00 000000 		RTN				; return +2
  8623
  8624					; Execute a CALL and exit (if the return is +1 then exit test)
  8625
  8626	044420	550 02 0 00 000002 	BEXCHK:	HRRZ	2,2			; only want the address
  8627	044421	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8628						GO	[TMSGC	<SCHK Adr  >	; yes - print debug
  8629							 MOVE	2		;   data and continue
  8630							 PNTOCS
  8631	044422	260 17 0 00 062331 			 RTN]
  8632	044423	261 17 0 00 000004 		PUT	4			; save another AC
  8633	044424	260 17 1 00 000002 		GO	@2			; call the routine
  8634	044425	334 00 0 00 000000 		SKIPA				; exit test
  8635	044426	350 00 0 17 777773 		AOS	-5(P)			; ok - set up return
  8636	044427	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8637
  8638	044434	263 17 0 00 000000 		RTN				; return +2 or +1
  8639
  8640					; Miscellaneous
  8641
  8642	044435	000000	000000		AEBUF:	0				; actual EBUF data
  8643	044436	000000	000000		CEBUF:	0				; correct EBUF data
  8644	044437	000000	000000		BFLAG:	0				; 'incorrect address' flag
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 201
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0388

  8645
  8646					;#********************************************************************
  8647					;* BBPNT - Print out single step data that resulted in an error
  8648					;#********************************************************************
  8649
  8650	044440	261 17 0 00 000000 	BBPNT:	RPUT	(0,1)
  8651
  8652	044442	200 01 0 00 044233*		MOVE	1,SCOSW			; get switches
  8653	044443	603 01 0 00 000200 		TLNE	1,TXTINH		; inhibit text?
  8654	044444	254 00 0 00 044473 		JRST	BBPN1			; yes - print alternate format
  8655
  8656					; Print single step data
  8657
  8658	044445	037 00 0 00 062335 		TMSGC	<Start Addr:  >
  8659	044446	200 00 0 00 044045 		MOVE	SSADDR
  8660	044447	037 04 0 00 000000 		PNT4
  8661	044450	037 00 0 00 062341 		TMSG	<, # Steps:  >
  8662	044451	200 00 0 00 044044 		MOVE	NSSTEP
  8663	044452	037 15 0 00 000000 		PNTDEC
  8664	044453	037 00 0 00 057046 		TMSG	<.>
  8665	044454	336 00 0 00 044437 		SKIPN	BFLAG			; incorrect end address
  8666						JRST	[TMSGC	<End Addr:  >	; no - don't print it
  8667							 MOVE	SEADDR
  8668							 PNT4
  8669	044455	254 00 0 00 062522 			 JRST	BBPN0]
  8670	044456	037 00 0 00 062344 		TMSGC	<End Addr - Correct:  >
  8671	044457	200 00 0 00 044046 		MOVE	SEADDR
  8672	044460	037 04 0 00 000000 		PNT4
  8673	044461	037 00 0 00 062351 		TMSGC	<            Actual:  >
  8674	044462	200 00 0 00 044047 		MOVE	SAADDR
  8675	044463	037 04 0 00 000000 		PNT4
  8676
  8677					; Print EBUF correct/actual
  8678
  8679	044464	037 00 0 00 062526 	BBPN0:	TMSGC	<EBUF - Correct:  >
  8680	044465	200 00 0 00 044436 		MOVE	CEBUF
  8681	044466	037 13 0 00 000000 		PNTHW
  8682	044467	037 00 0 00 062532 		TMSGC	<        Actual:  >
  8683	044470	200 00 0 00 044435 		MOVE	AEBUF
  8684	044471	037 13 0 00 000000 		PNTHW
  8685	044472	254 00 0 00 044520 		JRST	BBPNX
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 202
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0389

  8686
  8687					; Print single step data
  8688
  8689	044473	037 00 0 00 062356 	BBPN1:	TMSGC	<Start  >
  8690	044474	200 00 0 00 044045 		MOVE	SSADDR
  8691	044475	037 04 0 00 000000 		PNT4
  8692	044476	037 00 0 00 062360 		TMSG	<, # Steps  >
  8693	044477	200 00 0 00 044044 		MOVE	NSSTEP
  8694	044500	037 15 0 00 000000 		PNTDEC
  8695	044501	037 00 0 00 057046 		TMSG	<.>
  8696	044502	336 00 0 00 044437 		SKIPN	BFLAG			; incorrect end address
  8697						JRST	[TMSGC	<End  >		; no - don't print it
  8698							 MOVE	SEADDR
  8699							 PNT4
  8700	044503	254 00 0 00 062540 			 JRST	BBPN2]
  8701	044504	037 00 0 00 062363 		TMSGC	<End (C):  >
  8702	044505	200 00 0 00 044046 		MOVE	SEADDR
  8703	044506	037 04 0 00 000000 		PNT4
  8704	044507	037 00 0 00 062366 		TMSGC	<    (A):  >
  8705	044510	200 00 0 00 044047 		MOVE	SAADDR
  8706	044511	037 04 0 00 000000 		PNT4
  8707
  8708					; Print EBUF correct/actual
  8709
  8710	044512	037 00 0 00 062544 	BBPN2:	TMSGC	<EBUF (C):  >
  8711	044513	200 00 0 00 044436 		MOVE	CEBUF
  8712	044514	037 13 0 00 000000 		PNTHW
  8713	044515	037 00 0 00 062547 		TMSGC	<     (A):  >
  8714	044516	200 00 0 00 044435 		MOVE	AEBUF
  8715	044517	037 13 0 00 000000 		PNTHW
  8716
  8717					; Return
  8718
  8719	044520	262 17 0 00 000001 	BBPNX:	RGET	(1,0)			; restore AC's
  8720
  8721	044522	263 17 0 00 000000 		RTN
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 203
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0390

  8722
  8723					;#********************************************************************
  8724					;* TEXEC - Test execute routine
  8725					;
  8726					; This routine starts up the port and reads CSR register  to find
  8727					; out the results of tests performed by microcode.  It  may  also
  8728					; stop the port to read the EBUF and verify its contents.
  8729					;
  8730					; This  routine is given a pointer to a 'Test Execute Table'.  It
  8731					; then executes one entry and returns +1,+2,+3 or +4 depending on
  8732					; the type of entry and the result.
  8733					;
  8734					; Argument:	AC6 - Address of 'Test Execute Table'
  8735					;
  8736					; Return:	+1 - End of table was seen.
  8737					;		+2 - A routine was called (just do next entry).
  8738					;		+3 - Error return.
  8739					;		+4 - Success return.
  8740					;
  8741					;		TADDR - Initial starting address
  8742					;		TADDRF - Final address
  8743					;		TCSRF - Final CSR data
  8744					;		TTIME - Amount of time to let port run
  8745					;		TEBUFC - Correct EBUF data
  8746					;		TEBUFA - Actual EBUF data
  8747					;		TCOMP - Test completion flag
  8748					;			  0 - no - bit 12 never set in CSR
  8749					;			 -1 - yes - bit 12 set in CSR
  8750					;		TFAIL - Test failed flag
  8751					;			  0 - no - bit 13 set in CSR
  8752					;			 -1 - yes - bit 13 never set in CSR
  8753					;
  8754					;		AC6 - Updated to point to the next table location
  8755					;
  8756					; Test Execute Table Format:
  8757					;
  8758					;		Entry
  8759					;		Entry
  8760					;		 ...
  8761					;		TLAST		; last entry (zero)
  8762					;
  8763					; 'Entry' is of the form:
  8764					;
  8765					; Bits 0-3 - Type of entry - 0 - Done with table	     (TLAST)
  8766					;			     1 - Start port (start addr given)(TSTART)
  8767					;			     2 - Continue		     (TCONT)
  8768					;			     3 - Call routine		     (TCALL)
  8769					;			     4 - Call routine (test exit)    (TCALLC)
  8770					;			     5 - Check for test segment done (TCHECK)
  8771					;			     6 - Select new table address    (TJRST)
  8772					;			     7 - Exit test (if error flg set)(TEXIT)
  8773					;			    10 - Soft start port (no IPACLR done)(TSSTAR)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 204
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0391

  8774
  8775					; Bits 4-35 - Defined per entry type.
  8776					;
  8777					;    Entry type 0 (TLAST) -  All zero - indicates end of table
  8778					;
  8779					;    Entry type 1 (TSTART) - Bits 4-35 - CRAM address to start at
  8780					;
  8781					;    Entry type 2 (TCONT) -  Bits 4-35 - Unused
  8782					;
  8783					;    Entry type 3 (TCALL) -  Bits 4-35 - Address of routine to call
  8784					;
  8785					;    Entry type 4 (TCALLC) - Bits 4-35 - Address of routine to call
  8786					;
  8787					;    Entry type 5 (TCHECK) - Bits 4-17 - Time to wait for port to complete
  8788					;			     Bits 18-35 - Address of correct EBUF data
  8789					;
  8790					;    Entry type 6 (TJRST) -  Bits 4-35 - Table address to continue
  8791					;
  8792					;    Entry type 7 (TEXIT) - Bits 4-35 - Unused
  8793					;
  8794					;    Entry type 10 (TSSTAR) - Bits 4-35 - CRAM address to start at
  8795					;#********************************************************************
  8796
  8797	044523	261 17 0 00 000000 	TEXEC:	RPUT	(0,1,2)			; save some AC's
  8798
  8799
  8800					; Check if end of table
  8801
  8802	044526	200 02 0 06 000000 		MOVE	2,(6)			; get entry
  8803	044527	350 00 0 00 000006 		AOS	6			; point to next entry
  8804	044530	322 02 0 00 044534 		JUMPE	2,TEXEX1		; end of table - yes - exit
  8805
  8806					; Determine type of entry and dispatch
  8807
  8808	044531	135 01 0 00 062552 		LDB	1,[POINT 4,2,3]		; get entry
  8809						XCT	[JRST	TEXERR		; dispatch on it
  8810							 JRST	TEXSTR
  8811							 JRST	TEXCON
  8812							 JRST	TEXCAL
  8813							 JRST	TEXCAC
  8814							 JRST	TEXCHK
  8815							 JRST	TEXJRS
  8816							 JRST	TEXEXI
  8817							 JRST	TEXSST
  8818	044532	256 00 0 01 062553 			 JRST	TEXERR](1)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 205
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0392

  8819
  8820					; Error in Test Execute Table
  8821
  8822	044533	037 00 0 00 062565 	TEXERR:	TMSGCD	<Test Execute Dispatch Table Error - Entry out of range>
  8823	044534	332 00 0 00 064377'	TEXEX1:	SKIPE	SDEBUG			; EXEC debug mode?
  8824	044535	037 00 0 00 030242 		PCRL				; yes - a final CRLF
  8825	044536	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8826
  8827	044541	263 17 0 00 000000 		RTN				; return
  8828
  8829					; Start/continue the port
  8830
  8831	044542	135 01 0 00 062601 	TEXSST:	LDB	1,[POINT 32,2,35]	; get start address
  8832	044543	301 01 0 00 007777 		CAIL	1,7777			; default address selected?
  8833	044544	200 01 0 00 044724 		MOVE	1,TADDR			; yes - get it
  8834	044545	202 01 0 00 044347*		MOVEM	1,SNEXT			; save it
  8835	044546	254 00 0 00 044554 		JRST	TEXCO0			; continue
  8836	044547	135 01 0 00 062601 	TEXSTR:	LDB	1,[POINT 32,2,35]	; get start address
  8837	044550	301 01 0 00 007777 		CAIL	1,7777			; default address selected?
  8838	044551	200 01 0 00 044724 		MOVE	1,TADDR			; yes - get it
  8839	044552	202 01 0 00 044545*		MOVEM	1,SNEXT			; save it
  8840	044553	260 17 0 00 044160*	TEXCON:	GO	IPACLR			; do a 'port clear'
  8841	044554	200 01 0 00 044552*	TEXCO0:	MOVE	1,SNEXT			; get next address
  8842	044555	202 01 0 00 044724 		MOVEM	1,TADDR			; save as start address
  8843	044556	242 01 0 00 000001 		LSH	1,1			; position properly
  8844	044557	260 17 0 00 044334*		GO	LDRAR			; load the register
  8845	044560	336 01 0 00 044341*		SKIPN	1,SDATA			; any data given?
  8846	044561	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
  8847	044562	332 00 0 00 030037 		SKIPE	USER			; user mode?
  8848	044563	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
  8849	044564	660 01 0 00 040010 		TRO	1,SELLAR!MPRUN		; ensure SELLAR,MPRUN are set
  8850	044565	202 01 0 00 044560*		MOVEM	1,SDATA			; save start data
  8851	044566	260 17 0 00 044344*		GO	LDCSR			; write to CSR
  8852	044567	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8853						GO	[TMSGC	<TSTART/CONT  Adr  > ; yes - print debug
  8854							 MOVE	SNEXT		;   data and continue
  8855							 PNTOCS
  8856	044570	260 17 0 00 062607 			 RTN]
  8857	044571	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8858
  8859	044574	350 00 0 17 000000 		AOS	(P)			; set up return
  8860	044575	263 17 0 00 000000 		RTN				; return +3/+4
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 206
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0393

  8861
  8862					; Execute a JRST and exit
  8863
  8864	044576	550 02 0 00 000002 	TEXJRS:	HRRZ	2,2			; only want the address
  8865	044577	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8866						GO	[TMSGC	<TJRST Adr  >	; yes - print debug
  8867							 MOVE	2		;   data and continue
  8868							 PNTOCS
  8869	044600	260 17 0 00 062616 			 RTN]
  8870	044601	200 06 0 00 000002 		MOVE	6,2			; get new table address
  8871	044602	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8872
  8873	044605	350 00 0 17 000000 		AOS	(P)			; set up return
  8874	044606	263 17 0 00 000000 		RTN				; return +2
  8875
  8876					; Execute a CALL and exit
  8877
  8878	044607	550 02 0 00 000002 	TEXCAL:	HRRZ	2,2			; only want the address
  8879	044610	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8880						GO	[TMSGC	<TCALL Adr  >	; yes - print debug
  8881							 MOVE	2		;   data and continue
  8882							 PNTOCS
  8883	044611	260 17 0 00 062625 			 RTN]
  8884	044612	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  8885
  8886	044614	260 17 1 00 000002 		GO	@2			; call the routine
  8887	044615	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8888
  8889	044622	350 00 0 17 000000 		AOS	(P)			; set up return
  8890	044623	263 17 0 00 000000 		RTN				; return +2
  8891
  8892					; Execute a CALL and check if test done and exit
  8893
  8894	044624	550 02 0 00 000002 	TEXCAC:	HRRZ	2,2			; only want the address
  8895	044625	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8896						GO	[TMSGC	<TCALLC Adr  >	; yes - print debug
  8897							 MOVE	2		;   data and continue
  8898							 PNTOCS
  8899	044626	260 17 0 00 062634 			 RTN]
  8900	044627	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  8901
  8902	044631	260 17 1 00 000002 		GO	@2			; call the routine
  8903	044632	334 00 0 00 000000 		SKIPA				; exit test
  8904	044633	350 00 0 17 777773 		AOS	-5(P)			; set up return
  8905	044634	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  8906
  8907	044641	263 17 0 00 000000 		RTN				; return +2
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 207
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0394

  8908
  8909					; Exit test (if error flag is set)
  8910
  8911	044642	332 00 0 00 064377'	TEXEXI:	SKIPE	SDEBUG			; EXEC debug mode?
  8912						GO	[TMSGC	<TEXIT>		; yes - print debug
  8913	044643	260 17 0 00 062642 			 RTN]			; data and continue
  8914	044644	336 00 0 00 000015 		SKIPN	ERFLG			; any errors yet?
  8915	044645	350 00 0 17 777775 		AOS	-3(P)			; no - not done with test yet
  8916	044646	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8917
  8918	044651	263 17 0 00 000000 		RTN				; return +2 or +1
  8919
  8920					; Check for test segment done
  8921
  8922	044652	350 00 0 00 046306 	TEXCHK:	AOS	TSTSUB			; increment test segment
  8923	044653	402 00 0 00 044732 		SETZM	TCOMP			; clear completed flag
  8924	044654	402 00 0 00 044733 		SETZM	TFAIL			; clear failed flag
  8925	044655	135 00 0 00 062644 		LDB	[POINT 14,2,17]		; get time to wait
  8926	044656	260 17 0 00 042430 		GO	ODELAY			; wait
  8927	044657	260 17 0 00 044161*		GO	RDCSR			; read CSR
  8928	044660	474 15 0 00 000000 		SETO	ERFLG,			; error accessing CSR
  8929	044661	202 01 0 00 044726 		MOVEM	1,TCSRF			; save final CSR data
  8930	044662	603 01 0 00 000020 		TLNE	1,(1B13)		; bit 13 set?
  8931	044663	476 00 0 00 044733 		SETOM	TFAIL			; yes - test failed
  8932	044664	603 01 0 00 000040 		TLNE	1,(1B12)		; bit 12 set?
  8933	044665	476 00 0 00 044732 		SETOM	TCOMP			; yes - test never completed
  8934	044666	332 00 0 00 044733 		SKIPE	TFAIL			; test failed?
  8935	044667	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  8936	044670	336 00 0 00 044732 		SKIPN	TCOMP			; test completed?
  8937	044671	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  8938
  8939					; Now read LAR to see where stopped, and read EBUF also
  8940
  8941	044672	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up CSR data
  8942	044673	260 17 0 00 044566*		GO	LDCSR			; write it
  8943	044674	260 17 0 00 044337*		GO	RDEBUF			; read EBUF
  8944	044675	202 01 0 00 044731 		MOVEM	1,TEBUFA		; save it (actual data)
  8945	044676	202 01 0 00 044730 		MOVEM	1,TEBUFC		; save it (correct data)
  8946	044677	550 01 0 00 000002 		HRRZ	1,2			; get address of correct data
  8947	044700	322 01 0 00 044705 		JUMPE	1,TEXCH0		; unused? - yes - continue
  8948	044701	200 01 0 01 000000 		MOVE	1,(1)			; get correct data
  8949	044702	202 01 0 00 044730 		MOVEM	1,TEBUFC		; save it (correct data)
  8950	044703	312 01 0 00 044731 		CAME	1,TEBUFA		; EBUF data correct?
  8951	044704	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  8952	044705	201 01 0 00 040000 	TEXCH0:	MOVEI	1,SELLAR		; set up CSR data
  8953	044706	260 17 0 00 044673*		GO	LDCSR			; write it
  8954	044707	260 17 0 00 044345*		GO	RDLAR			; read LAR
  8955	044710	242 01 0 00 777777 		LSH	1,-1			; position correctly
  8956	044711	202 01 0 00 044725 		MOVEM	1,TADDRF		; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 208
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0395

  8957
  8958					; And exit +3 or +4
  8959
  8960	044712	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  8961						GO	[TMSGC	<TCHECK CSR >	; yes - print debug
  8962							 MOVE	TCSRF		;   data and continue
  8963							 PNTHW
  8964							 TMSG	< EBUF >
  8965							 MOVE	TEBUFA
  8966							 PNTOCS
  8967							 TMSG	< ADR >
  8968							 MOVE	TADDRF
  8969							 PNTOCS
  8970	044713	260 17 0 00 062654 			 RTN]
  8971	044714	336 00 0 00 000015 		SKIPN	ERFLG			; error flag set?
  8972	044715	350 00 0 17 777775 		AOS	-3(P)			; no - set up good return
  8973	044716	350 00 0 17 777775 		AOS	-3(P)			; set up return
  8974	044717	350 00 0 17 777775 		AOS	-3(P)			; set up return
  8975	044720	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  8976
  8977	044723	263 17 0 00 000000 		RTN				; return
  8978
  8979					; Miscellaneous
  8980
  8981	044724	000000	000000		TADDR:	0				; initial starting address
  8982	044725	000000	000000		TADDRF:	0				; final address
  8983	044726	000000	000000		TCSRF:	0				; final CSR data
  8984	044727	000000	000000		TTIME:	0				; amount of time to let port run
  8985	044730	000000	000000		TEBUFC:	0				; correct EBUF data
  8986	044731	000000	000000		TEBUFA:	0				; actual EBUF data
  8987	044732	000000	000000		TCOMP:	0				; test completion flag (0-no,1-yes
  8988										;   bit 12 did set in CSR)
  8989	044733	000000	000000		TFAIL:	0				; test failed flag (0-no,1-yes
  8990										;   bit 13 never set in CSR)
  8991
  8992
  8993					;#********************************************************************
  8994					;* TTPNT - Print out error data
  8995					;#********************************************************************
  8996
  8997	044734	261 17 0 00 000000 	TTPNT:	RPUT	(0,1)			; save AC's
  8998
  8999	044736	200 01 0 00 044442*		MOVE	1,SCOSW			; get switches
  9000	044737	037 00 0 00 062335 		TMSGC	<Start Addr:  >		; print start address
  9001	044740	200 00 0 00 044724 		MOVE	TADDR
  9002	044741	037 04 0 00 000000 		PNT4
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 209
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0396

  9003
  9004					; Check test handshake
  9005
  9006	044742	332 00 0 00 044732 		SKIPE	TCOMP			; test completed?
  9007	044743	254 00 0 00 044752 		JRST	TTPN0			; yes - see how it failed
  9008	044744	332 00 0 00 044733 		SKIPE	TFAIL			; handshake failed?
  9009	044745	254 00 0 00 044752 		JRST	TTPN0			; no - continue
  9010	044746	037 00 0 00 062666 		TMSGC	<Test handshake unsuccessful - final address:  >
  9011	044747	200 00 0 00 044725 		MOVE	TADDRF			; get final address
  9012	044750	037 04 0 00 000000 		PNT4				; print it
  9013	044751	254 00 0 00 044757 		JRST	TTPN1			; exit
  9014
  9015					; Check test completion
  9016
  9017	044752	336 00 0 00 044733 	TTPN0:	SKIPN	TFAIL			; test really did fail?
  9018	044753	254 00 0 00 044757 		JRST	TTPN1			; no - exit
  9019	044754	037 00 0 00 062700 		TMSGC	<Test did not complete successfully - final address:  >
  9020	044755	200 00 0 00 044725 		MOVE	TADDRF			; get final address
  9021	044756	037 04 0 00 000000 		PNT4				; print it
  9022
  9023					; Print final CSR data
  9024
  9025	044757	603 01 0 00 000200 	TTPN1:	TLNE	1,TXTINH		; full printout?
  9026	044760	254 00 0 00 044764 		JRST	TTPN2			; no - continue
  9027	044761	037 00 0 00 062714 		TMSGC	<Final CSR data:  >
  9028	044762	200 00 0 00 044726 		MOVE	TCSRF			; get data
  9029	044763	037 13 0 00 000000 		PNTHW				; print it
  9030
  9031					; Finally check EBUF data
  9032
  9033	044764	200 00 0 00 044730 	TTPN2:	MOVE	TEBUFC			; get correct EBUF data
  9034	044765	316 00 0 00 044731 		CAMN	TEBUFA			; same as actual?
  9035	044766	254 00 0 00 045003 		JRST	TTPNX			; yes - exit
  9036	044767	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  9037	044770	037 00 0 00 062544 		TMSGC	<EBUF (C):  >		; no
  9038	044771	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout?
  9039	044772	037 00 0 00 062526 		TMSGC	<EBUF - Correct:  >	; yes
  9040	044773	200 00 0 00 044730 		MOVE	TEBUFC
  9041	044774	037 13 0 00 000000 		PNTHW
  9042	044775	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  9043	044776	037 00 0 00 062547 		TMSGC	<     (A):  >		; no
  9044	044777	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout?
  9045	045000	037 00 0 00 062532 		TMSGC	<        Actual:  >	; yes
  9046	045001	200 00 0 00 044731 		MOVE	TEBUFA
  9047	045002	037 13 0 00 000000 		PNTHW
  9048
  9049					; Done - exit
  9050
  9051	045003	262 17 0 00 000001 	TTPNX:	RGET	(1,0)			; restore AC's
  9052
  9053	045005	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 210
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0397

  9054
  9055					;#********************************************************************
  9056					;* CEXEC - Data test execute routine
  9057					;
  9058					; This routine is used to execute a CBUS data transfer type test.  It
  9059					; allows data transfers to be set up, specifying buffer  lengths  and
  9060					; data pattern.  It can set up and start a data transfer, and inspect
  9061					; the result, and do data compare of the resulting buffer.
  9062					;
  9063					; This routine is given a pointer to a 'Data Test Execute Table'.  It
  9064					; then executes one entry and returns +1,+2,+3 or +4 depending on the
  9065					; type of entry and the result.
  9066					;
  9067					; Argument:	AC6 - Address of 'Data Test Execute Table'
  9068					;
  9069					; Return:	+1 - End of table was seen.
  9070					;		+2 - A routine was called (just do next entry).
  9071					;		+3 - Error return.
  9072					;		+4 - Success return.
  9073					;
  9074					;		QADDR - Initial starting address
  9075					;		QADDRF - Final address
  9076					;		CTIME - Amount of time to let port run
  9077					;		CEBUFC - Correct EBUF data
  9078					;		CEBUFA - Actual EBUF data
  9079					;		CPAT - Data pattern used
  9080					;		CLEN - Buffer length
  9081					;		CTRAN - Type of transfer 0-none,1-rd,2-wr,3-rd/wr
  9082					;		CDERR - Data compare error - 0-no,-1-yes
  9083					;		CSERR - Status error - 0-none,xx-error bits
  9084					;
  9085					;		AC6 - Updated to point to the next table location
  9086					;
  9087					; Test Execute Table Format:
  9088					;
  9089					;		Entry
  9090					;		 ...
  9091					;		CLAST		; last entry (zero)
  9092					;
  9093					; 'Entry' is of the form:
  9094					;
  9095					; Bits 0-3 - Type of entry
  9096					;    0 - Done with table (CLAST)	 6 - Call routine (test exit) (CCALLC)
  9097					;    1 - Set up read DT  (CSETRD)	 7 - Wait for dt completion   (CWAIT)
  9098					;    2 - Set up write DT (CSETWR)	10 - Compare data buffer      (CCOMP)
  9099					;    3 - Set up rd/wr DT (CSETRW)	11 - Select new table address (CJRST)
  9100					;    4 - Start port	 (CSTART)	12 - Exit test (if erflg set) (CEXIT)
  9101					;    5 - Call routine	 (CCALL)	
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 211
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0398

  9102
  9103					; Bits 4-35 - Defined per entry type.
  9104					;
  9105					;    Entry type 0 (CLAST) -  All zero - indicates end of table
  9106					;
  9107					;    Entry type 1 (CSETWR) - Bits 4-17 - data pattern (0=default)
  9108					;				 18-35 - buffer length
  9109					;
  9110					;    Entry type 2 (CSETRD) - Bits 4-17 - data pattern (0=default)
  9111					;				 18-35 - buffer length
  9112					;
  9113					;    Entry type 3 (CSETRW) - Bits 4-17 - data pattern (0=default)
  9114					;				 18-35 - buffer length
  9115					;
  9116					;    Entry type 4 (CSTART) - Bits 4-35 - CRAM address to start at
  9117					;
  9118					;    Entry type 5 (CCALL) -  Bits 4-35 - Address of routine to call
  9119					;
  9120					;    Entry type 6 (CCALLC) - Bits 4-35 - Address of routine to call
  9121					;
  9122					;    Entry type 7 (CWAIT) - Bits 4-17 - time to wait (in milliseconds)
  9123					;
  9124					;    Entry type 10 (CCOMP) - Bits 4-35 - Unused
  9125					;
  9126					;    Entry type 11 (CJRST) -  Bits 4-35 - Table address to continue
  9127					;
  9128					;    Entry type 12 (CEXIT) - Bits 4-35 - Unused
  9129					;#********************************************************************
  9130
  9131	045006	261 17 0 00 000000 	CEXEC:	RPUT	(0,1,2)			; save some AC's
  9132
  9133
  9134					; Check if end of table
  9135
  9136	045011	200 02 0 06 000000 		MOVE	2,(6)			; get entry
  9137	045012	350 00 0 00 000006 		AOS	6			; point to next entry
  9138	045013	322 02 0 00 045017 		JUMPE	2,CEXEX1		; end of table - yes - exit
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 212
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0399

  9139
  9140					; Determine type of entry and dispatch
  9141
  9142	045014	135 01 0 00 062552 		LDB	1,[POINT 4,2,3]		; get entry
  9143						XCT	[JRST	CEXERR		; dispatch on it
  9144							 JRST	CEXSRD
  9145							 JRST	CEXSWR
  9146							 JRST	CEXSRW
  9147							 JRST	CEXSTR
  9148							 JRST	CEXCAL
  9149							 JRST	CEXCAC
  9150							 JRST	CEXWAI
  9151							 JRST	CEXCOM
  9152							 JRST	CEXJRS
  9153							 JRST	CEXEXI
  9154							 JRST	CEXERR
  9155	045015	256 00 0 01 062720 			 JRST	CEXERR](1)
  9156
  9157					; Error in Test Execute Table
  9158
  9159	045016	037 00 0 00 062735 	CEXERR:	TMSGCD	<Data Test Execute Dispatch Table Error - Entry out of range>
  9160	045017	332 00 0 00 064377'	CEXEX1:	SKIPE	SDEBUG			; EXEC debug mode?
  9161	045020	037 00 0 00 030242 		PCRL				; yes - a final CRLF
  9162	045021	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9163
  9164	045024	263 17 0 00 000000 		RTN				; return
  9165
  9166					; Set up a read data transfer
  9167
  9168	045025	550 00 0 00 000002 	CEXSRD:	HRRZ	2			; get transfer length
  9169	045026	332 00 0 00 000000 		SKIPE				; zero?
  9170	045027	202 00 0 00 045332 		MOVEM	CLEN			; no - save it
  9171	045030	135 00 0 00 062644 		LDB	[POINT 14,2,17]		; get data pattern
  9172	045031	332 00 0 00 000000 		SKIPE				; zero?
  9173	045032	202 00 0 00 045331 		MOVEM	CPAT			; no - save it
  9174	045033	201 00 0 00 000001 		MOVEI	1			; get type of transfer (read)
  9175	045034	202 00 0 00 045333 		MOVEM	CTRAN			; save it
  9176	045035	201 01 0 00 005000 	CSETCC:	MOVEI	1,5000			; get start address
  9177	045036	242 01 0 00 000001 		LSH	1,1			; position correctly
  9178	045037	260 17 0 00 044557*		GO	LDRAR			; load the register
  9179	045040	201 01 0 00 000010 		MOVEI	1,MPRUN			; get 'MPRUN' bit
  9180	045041	260 17 0 00 044706*		GO	LDCSR			; start up the port
  9181	045042	200 01 0 00 062752 		MOVE	1,[400000,,1]		; get fill pattern
  9182	045043	202 01 0 00 047000 		MOVEM	1,BUFF			; put fill pattern throughout
  9183	045044	200 01 0 00 062753 		MOVE	1,[BUFF,,BUFF+1]	;   entire buffer area
  9184	045045	251 01 0 00 047777 		BLT	1,BUFF+^D511		;   ...
  9185	045046	200 14 0 00 045331 		MOVE	PAT,CPAT		; get data pattern
  9186	045047	200 01 0 00 045333 		MOVE	1,CTRAN			; get transfer type
  9187	045050	200 02 0 00 045332 		MOVE	2,CLEN			; get transfer length
  9188	045051	306 01 0 00 000003 		CAIN	1,3			; read/write?
  9189	045052	242 02 0 00 777777 		LSH	2,-1			; yes - divide by 2
  9190	045053	260 17 0 00 042026*		GO	BUFGEN			; generate buffer contents
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 213
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0400

  9191	045054	200 01 0 00 061534 		MOVE	1,[CBUFSZ,,CBUF]	; get pointer to control buffer
  9192	045055	260 17 0 00 042030*		GO	CHINIT			; initialize software
  9193	045056	551 01 0 00 047000 		HRRZI	1,BUFF			; buffer address
  9194	045057	200 02 0 00 045332 		MOVE	2,CLEN			; word count
  9195	045060	200 03 0 00 045333 		MOVE	3,CTRAN			; get transfer type
  9196	045061	306 03 0 00 000003 		CAIN	3,3			; read/write?
  9197	045062	242 02 0 00 777777 		LSH	2,-1			; yes - divide by 2
  9198	045063	400 03 0 00 000000 		SETZ	3,			; clear zero fill specifier
  9199	045064	260 17 0 00 042034*		GO	GENCCW			; generate a CCW list
  9200	045065	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9201						GO	[TMSGC	<CSET>		; yes - print debug
  9202							 MOVE	1,CTRAN		;   data and continue
  9203							 XCT	[TMSG	<RD>
  9204								 TMSG	<WR>
  9205								 TMSG	<RW>](1)
  9206							 TMSG	<  Pat=>
  9207							 MOVE	CPAT
  9208							 PNTOCS
  9209							 TMSG	<  Len=>
  9210							 MOVE	CLEN
  9211							 PNTOCS
  9212	045066	260 17 0 00 062770 			 RTN]
  9213	045067	350 00 0 17 777775 		AOS	-3(P)			; set up proper return
  9214	045070	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9215
  9216	045073	263 17 0 00 000000 		RTN				; return
  9217
  9218					; Set up a write data transfer
  9219
  9220	045074	550 00 0 00 000002 	CEXSWR:	HRRZ	2			; get transfer length
  9221	045075	332 00 0 00 000000 		SKIPE				; zero?
  9222	045076	202 00 0 00 045332 		MOVEM	CLEN			; no - save it
  9223	045077	135 00 0 00 062644 		LDB	[POINT 14,2,17]		; get data pattern
  9224	045100	332 00 0 00 000000 		SKIPE				; zero?
  9225	045101	202 00 0 00 045331 		MOVEM	CPAT			; no - save it
  9226	045102	201 00 0 00 000002 		MOVEI	2			; get type of transfer (write)
  9227	045103	202 00 0 00 045333 		MOVEM	CTRAN			; save it
  9228	045104	254 00 0 00 045035 		JRST	CSETCC			; common code
  9229
  9230					; Set up a read/write data transfer
  9231
  9232	045105	550 00 0 00 000002 	CEXSRW:	HRRZ	2			; get transfer length
  9233	045106	332 00 0 00 000000 		SKIPE				; zero?
  9234	045107	202 00 0 00 045332 		MOVEM	CLEN			; no - save it
  9235	045110	135 00 0 00 062644 		LDB	[POINT 14,2,17]		; get data pattern
  9236	045111	332 00 0 00 000000 		SKIPE				; zero?
  9237	045112	202 00 0 00 045331 		MOVEM	CPAT			; no - save it
  9238	045113	201 00 0 00 000003 		MOVEI	3			; get type of transfer (read/write)
  9239	045114	202 00 0 00 045333 		MOVEM	CTRAN			; save it
  9240	045115	200 14 0 00 045331 		MOVE	PAT,CPAT		; get data pattern
  9241	045116	254 00 0 00 045035 		JRST	CSETCC			; common code
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 214
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0401

  9242
  9243					; Start the port
  9244
  9245	045117	260 17 0 00 044553*	CEXSTR:	GO	IPACLR			; do a 'port clear'
  9246	045120	135 01 0 00 062601 		LDB	1,[POINT 32,2,35]	; get start address
  9247	045121	301 01 0 00 007777 		CAIL	1,7777			; default address selected?
  9248	045122	200 01 0 00 045321 		MOVE	1,QADDR			; yes - get it
  9249	045123	202 01 0 00 044554*		MOVEM	1,SNEXT			; save it
  9250	045124	202 01 0 00 045321 		MOVEM	1,QADDR			; save as start address
  9251	045125	242 01 0 00 000001 		LSH	1,1			; position properly
  9252	045126	260 17 0 00 045037*		GO	LDRAR			; load the register
  9253	045127	336 01 0 00 044565*		SKIPN	1,SDATA			; any data given?
  9254	045130	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
  9255	045131	332 00 0 00 030037 		SKIPE	USER			; user mode?
  9256	045132	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
  9257	045133	660 01 0 00 040210 		TRO	1,SELLAR!MPRUN!RESQAV	; ensure SELLAR,MPRUN,RESQAV are set
  9258	045134	202 01 0 00 045127*		MOVEM	1,SDATA			; save start data
  9259	045135	200 01 0 00 045134*		MOVE	1,SDATA			; get start data
  9260	045136	260 17 0 00 045041*		GO	LDCSR			; write to CSR
  9261	045137	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9262						GO	[TMSGC	<CSTART  Adr  >	; yes - print debug
  9263							 MOVE	2		;   data and continue
  9264							 PNTOCS
  9265	045140	260 17 0 00 063006 			 RTN]
  9266	045141	350 00 0 17 777775 		AOS	-3(P)			; set up return
  9267	045142	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9268
  9269	045145	263 17 0 00 000000 		RTN				; return +3/+4
  9270
  9271					; Execute a JRST and exit
  9272
  9273	045146	550 02 0 00 000002 	CEXJRS:	HRRZ	2,2			; only want the address
  9274	045147	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9275						GO	[TMSGC	<CJRST Adr  >	; yes - print debug
  9276							 MOVE	2		;   data and continue
  9277							 PNTOCS
  9278	045150	260 17 0 00 063015 			 RTN]
  9279	045151	200 06 0 00 000002 		MOVE	6,2			; get new table address
  9280	045152	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9281
  9282	045155	350 00 0 17 000000 		AOS	(P)			; set up return
  9283	045156	263 17 0 00 000000 		RTN				; return +2
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 215
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0402

  9284
  9285					; Execute a CALL and exit
  9286
  9287	045157	550 02 0 00 000002 	CEXCAL:	HRRZ	2,2			; only want the address
  9288	045160	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9289						GO	[TMSGC	<CCALL Adr  >	; yes - print debug
  9290							 MOVE	2		;   data and continue
  9291							 PNTOCS
  9292	045161	260 17 0 00 063024 			 RTN]
  9293	045162	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  9294
  9295	045164	260 17 1 00 000002 		GO	@2			; call the routine
  9296	045165	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  9297
  9298	045172	350 00 0 17 000000 		AOS	(P)			; set up return
  9299	045173	263 17 0 00 000000 		RTN				; return +2
  9300
  9301					; Execute a CALL and check if test done and exit
  9302
  9303	045174	550 02 0 00 000002 	CEXCAC:	HRRZ	2,2			; only want the address
  9304	045175	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9305						GO	[TMSGC	<CCALLC Adr  >	; yes - print debug
  9306							 MOVE	2		;   data and continue
  9307							 PNTOCS
  9308	045176	260 17 0 00 063033 			 RTN]
  9309	045177	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  9310
  9311	045201	260 17 1 00 000002 		GO	@2			; call the routine
  9312	045202	334 00 0 00 000000 		SKIPA				; exit test
  9313	045203	350 00 0 17 777773 		AOS	-5(P)			; set up return
  9314	045204	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  9315
  9316	045211	263 17 0 00 000000 		RTN				; return +2
  9317
  9318					; Exit test (if error flag is set)
  9319
  9320	045212	332 00 0 00 064377'	CEXEXI:	SKIPE	SDEBUG			; EXEC debug mode?
  9321						GO	[TMSGC	<CEXIT>		; yes - print debug
  9322	045213	260 17 0 00 063041 			 RTN]			; data and continue
  9323	045214	336 00 0 00 000015 		SKIPN	ERFLG			; any errors yet?
  9324	045215	350 00 0 17 777775 		AOS	-3(P)			; no - not done with test yet
  9325	045216	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9326
  9327	045221	263 17 0 00 000000 		RTN				; return +2 or +1
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 216
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0403

  9328
  9329					; Wait for data transfer to complete
  9330
  9331	045222	350 00 0 00 046306 	CEXWAI:	AOS	TSTSUB			; increment test segment
  9332	045223	550 00 0 00 000002 		HRRZ	2			; get EBUF address
  9333	045224	202 00 0 00 064331'		MOVEM	CEBUAD#			; save it
  9334	045225	135 00 0 00 062644 		LDB	[POINT 14,2,17]		; get time to wait
  9335	045226	260 17 0 00 042456 		GO	DDELAY			; wait (while read buffer/checking CSR)
  9336	045227	260 17 0 00 044657*		GO	RDCSR			; read CSR
  9337	045230	254 00 0 00 045265 		JRST	CEXWA3			; error accessing CSR
  9338	045231	202 01 0 00 045323 		MOVEM	1,CCSR			; save CSR data
  9339
  9340					; Get and verify EBUF data (if any specified)
  9341
  9342	045232	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF
  9343	045233	260 17 0 00 045136*		GO	LDCSR			; write CSR
  9344	045234	260 17 0 00 044674*		GO	RDEBUF			; read EBUF
  9345	045235	202 01 0 00 045326 		MOVEM	1,CEBUFA		; save it (actual)
  9346	045236	202 01 0 00 045325 		MOVEM	1,CEBUFC		; save it (correct)
  9347	045237	336 01 0 00 064331'		SKIPN	1,CEBUAD		; get address of correct EBUF data
  9348	045240	254 00 0 00 045243 		JRST	CEXWA2			; none - continue
  9349	045241	200 01 0 01 000000 		MOVE	1,(1)			; get correct EBUF data
  9350	045242	202 01 0 00 045325 		MOVEM	1,CEBUFC		; save it
  9351	045243	200 01 0 00 045326 	CEXWA2:	MOVE	1,CEBUFA		; get actual data
  9352	045244	312 01 0 00 045325 		CAME	1,CEBUFC		; error?
  9353	045245	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  9354
  9355					; Find out final address
  9356
  9357	045246	201 01 0 00 040000 		MOVEI	1,SELLAR		; gset up to read LAR
  9358	045247	260 17 0 00 045233*		GO	LDCSR			; write CSR
  9359	045250	260 17 0 00 044707*		GO	RDLAR			; read LAR
  9360	045251	242 01 0 00 777777 		LSH	1,-1			; position correctly
  9361	045252	202 01 0 00 045322 		MOVEM	1,QADDRF		; save it
  9362
  9363					; Check out channel logout status ...
  9364
  9365	045253	402 00 0 00 045327 		SETZM	CSERR			; clear error status
  9366	045254	336 00 0 00 045334 		SKIPN	CSTATF			; check logout status?
  9367	045255	254 00 0 00 045266 		JRST	CEXWA4			; no - continue
  9368	045256	260 17 0 00 000000*		GO	CHDATA			; check logout data for errors
  9369	045257	332 00 0 00 000001 		SKIPE	1			; any errors?
  9370	045260	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  9371	045261	202 01 0 00 045327 		MOVEM	1,CSERR			; save error flags
  9372	045262	200 01 0 00 063043 		MOVE	1,[CSTWRD,,CLOGBF]	; move it from CSTWRD to
  9373	045263	251 01 0 00 045337 		BLT	1,CLOGBF+2		;   CLOGBF
  9374	045264	334 00 0 00 000000 		SKIPA				; continue
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 217
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0404

  9375
  9376					; Error did occur
  9377
  9378	045265	474 15 0 00 000000 	CEXWA3:	SETO	ERFLG,			; set error flag
  9379
  9380					; Exit
  9381
  9382	045266	332 00 0 00 064377'	CEXWA4:	SKIPE	SDEBUG			; EXEC debug mode?
  9383						GO	[TMSGC	<CWAIT CSR >	; yes - print debug
  9384							 MOVE	CCSR		;   data and continue
  9385							 PNTHW
  9386							 TMSG	< EBUF >
  9387							 MOVE	CEBUFA
  9388							 PNTOCS
  9389							 TMSG	< ChnErr >
  9390							 MOVE	CSERR
  9391							 PNTOCS
  9392	045267	260 17 0 00 063051 			 RTN]
  9393	045270	336 00 0 00 000015 		SKIPN	ERFLG			; error flag set?
  9394	045271	350 00 0 17 777775 		AOS	-3(P)			; no - set up good return
  9395	045272	350 00 0 17 777775 		AOS	-3(P)			; set up return
  9396	045273	350 00 0 17 777775 		AOS	-3(P)			; set up return
  9397	045274	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9398
  9399	045277	263 17 0 00 000000 		RTN				; return
  9400
  9401					; Do data compare
  9402
  9403	045300	350 00 0 00 046306 	CEXCOM:	AOS	TSTSUB			; increment test segment
  9404	045301	210 01 0 00 045333 		MOVN	1,CTRAN			; get transfer type
  9405	045302	200 02 0 00 045332 		MOVE	2,CLEN			; get transfer length
  9406	045303	200 14 0 00 045331 		MOVE	PAT,CPAT		; get data pattern
  9407	045304	260 17 0 00 042125*		GO	BUFCOM			; compare the data
  9408	045305	332 00 0 00 000001 		SKIPE	1			; any data compare errors?
  9409	045306	476 00 0 00 045330 		SETOM	CDERR			; yes - set data compare error flag
  9410	045307	332 00 0 00 000001 		SKIPE	1			; any data compare errors?
  9411	045310	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
  9412	045311	336 00 0 00 000015 		SKIPN	ERFLG			; error flag set?
  9413	045312	350 00 0 17 777775 		AOS	-3(P)			; no - set up good return
  9414	045313	350 00 0 17 777775 		AOS	-3(P)			; set up return
  9415	045314	350 00 0 17 777775 		AOS	-3(P)			; set up return
  9416	045315	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9417
  9418	045320	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 218
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0405

  9419
  9420					; Miscellaneous
  9421
  9422	045321	000000	000000		QADDR:	0				; initial starting address
  9423	045322	000000	000000		QADDRF:	0				; final address
  9424	045323	000000	000000		CCSR:	0				; final CSR data
  9425	045324	000000	000000		CTIME:	0				; amount of time to let port run
  9426	045325	000000	000000		CEBUFC:	0				; correct EBUF data
  9427	045326	000000	000000		CEBUFA:	0				; actual EBUF data
  9428	045327	000000	000000		CSERR:	0				; status error (0-no,xx-error flags)
  9429	045330	000000	000000		CDERR:	0				; data compare error flag (0-no,-1-yes)
  9430	045331	000000	000000		CPAT:	0				; data pattern used
  9431	045332	000000	000000		CLEN:	0				; buffer length
  9432	045333	000000	000000		CTRAN:	0				; transfer type (0-none,1-rd,2-wr
  9433										;   3-rd/wr)
  9434	045334	000000	000000		CSTATF:	0				; check logout status flag (0-n,-1-y)
  9435
  9436	045335				CLOGBF:	BLOCK	3			; logout area buffer
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 219
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0406

  9437
  9438					;#********************************************************************
  9439					;* CCPNT - Print out error data
  9440					;#********************************************************************
  9441
  9442	045340	261 17 0 00 000000 	CCPNT:	RPUT	(0,1)			; save AC's
  9443
  9444	045342	200 01 0 00 044736*		MOVE	1,SCOSW			; get switches
  9445
  9446					; Print start/end address
  9447
  9448	045343	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  9449						GO	[TMSGC	<Start >	; no
  9450							 MOVE	QADDR
  9451							 PNT4
  9452							 TMSG	<  End >	; print end address
  9453							 MOVE	QADDRF
  9454							 PNT4
  9455	045344	260 17 0 00 063067 			 RTN]
  9456	045345	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
  9457	045346	254 00 0 00 045360 		JRST	CCPN0			; no - continue
  9458	045347	037 00 0 00 062335 		TMSGC	<Start Addr:  >		; print start address
  9459	045350	200 00 0 00 045321 		MOVE	QADDR
  9460	045351	037 04 0 00 000000 		PNT4
  9461	045352	037 00 0 00 063076 		TMSGC	<End Addr:    >		; print end address
  9462	045353	200 00 0 00 045322 		MOVE	QADDRF
  9463	045354	037 04 0 00 000000 		PNT4
  9464	045355	037 00 0 00 062714 		TMSGC	<Final CSR data:  >
  9465	045356	200 00 0 00 045323 		MOVE	CCSR
  9466	045357	037 13 0 00 000000 		PNTHW				; print it
  9467
  9468					; Check EBUF data
  9469
  9470	045360	200 00 0 00 045325 	CCPN0:	MOVE	CEBUFC			; get correct EBUF data
  9471	045361	316 00 0 00 045326 		CAMN	CEBUFA			; same as actual?
  9472	045362	254 00 0 00 045377 		JRST	CCPN2			; yes - exit
  9473	045363	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  9474	045364	037 00 0 00 062544 		TMSGC	<EBUF (C):  >		; no
  9475	045365	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout?
  9476	045366	037 00 0 00 062526 		TMSGC	<EBUF - Correct:  >	; yes
  9477	045367	200 00 0 00 045325 		MOVE	CEBUFC
  9478	045370	037 13 0 00 000000 		PNTHW
  9479	045371	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  9480	045372	037 00 0 00 062547 		TMSGC	<     (A):  >		; no
  9481	045373	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout?
  9482	045374	037 00 0 00 062532 		TMSGC	<        Actual:  >	; yes
  9483	045375	200 00 0 00 045326 		MOVE	CEBUFA
  9484	045376	037 13 0 00 000000 		PNTHW
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 220
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0407

  9485
  9486					; Print status errors
  9487
  9488	045377	200 01 0 00 045342*	CCPN2:	MOVE	1,SCOSW			; get switches
  9489	045400	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
  9490	045401	254 00 0 00 045405 		JRST	CCPN3			; no - continue
  9491	045402	201 01 0 00 045335 		MOVEI	1,CLOGBF		; get address of logout area
  9492	045403	260 17 0 00 042112*		GO	LOGPNT			; print it out
  9493	045404	254 00 0 00 045431 		JRST	CCPN4			; continue
  9494
  9495	045405	332 01 0 00 045327 	CCPN3:	SKIPE	1,CSERR			; get status bits
  9496	045406	037 00 0 00 063102 		TMSGC	<Status errors:  >
  9497	045407	603 01 0 00 200000 		TLNE	1,(MPER)		; mem parity error
  9498	045410	037 00 0 00 063106 		TMSG	<MPERR >
  9499	045411	603 01 0 00 100000 		TLNE	1,(ADRPE)		; address parity error
  9500	045412	037 00 0 00 063110 		TMSG	<ADRPE >
  9501	045413	603 01 0 00 040000 		TLNE	1,(NOTWC0)		; not word count zero
  9502	045414	037 00 0 00 063112 		TMSG	<NOTWC0 >
  9503	045415	603 01 0 00 020000 		TLNE	1,(NEXM)		; non-existant memory
  9504	045416	037 00 0 00 063114 		TMSG	<NEXM >
  9505	045417	603 01 0 00 000400 		TLNE	1,(LAXER)		; last xfer error
  9506	045420	037 00 0 00 063116 		TMSG	<LAXER >
  9507	045421	603 01 0 00 000200 		TLNE	1,(IPAER)		; Port error
  9508	045422	037 00 0 00 063120 		TMSG	<IPAER >
  9509	045423	603 01 0 00 000100 		TLNE	1,(LGWC)		; long word count
  9510	045424	037 00 0 00 063122 		TMSG	<LGWC >
  9511	045425	603 01 0 00 000040 		TLNE	1,(SHWC)		; short word count
  9512	045426	037 00 0 00 063124 		TMSG	<SHWC >
  9513	045427	603 01 0 00 000020 		TLNE	1,(OVN)			; overrrun
  9514	045430	037 00 0 00 063126 		TMSG	<OVN >
  9515
  9516					; Print data compare errors
  9517
  9518	045431	336 00 0 00 045330 	CCPN4:	SKIPN	CDERR			; any data compare errors?
  9519	045432	254 00 0 00 045437 		JRST	CCPNX			; no - exit
  9520	045433	200 01 0 00 045333 		MOVE	1,CTRAN			; get transfer type
  9521	045434	200 02 0 00 045332 		MOVE	2,CLEN			; get transfer length
  9522	045435	200 14 0 00 045331 		MOVE	PAT,CPAT		; get data pattern
  9523	045436	260 17 0 00 045304*		GO	BUFCOM			; compare the data
  9524
  9525					; Exit
  9526
  9527	045437	262 17 0 00 000001 	CCPNX:	RGET	(1,0)			; restore AC's
  9528
  9529	045441	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 221
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0408

  9530
  9531					;#********************************************************************
  9532					;* IEXEC - Interrupt test execute routine
  9533					;
  9534					; This routine is used to execute a interrupt type test.   It  allows
  9535					; the interrupt system to be set up and interrupts to be fielded.
  9536					;
  9537					; This  routine  is  given  a  pointer  to an 'Interrupt Test Execute
  9538					; Table'.  It  then  executes  one  entry  and returns +1,+2,+3 or +4
  9539					; depending on the type of entry and the result.
  9540					;
  9541					; Argument:	AC6 - Address of 'Interrupt Test Execute Table'
  9542					;
  9543					; Return:	+1 - End of table was seen.
  9544					;		+2 - A routine was called (just do next entry).
  9545					;		+3 - Error return.
  9546					;		+4 - Success return.
  9547					;
  9548					;		IADDR - Initial starting address
  9549					;		IADDRF - Final address
  9550					;		ICSR - Final CSR data
  9551					;		ITIME - Amount of time to let port run
  9552					;		IFLAG - Interrupt should occur data
  9553					;		  bits 0-2 - IOP function
  9554					;			     0 - non-vectored
  9555					;			     1 - vectored
  9556					;			     2 - examine
  9557					;			     3 - deposit
  9558					;			     4 - increment
  9559					;			     5 - decrement
  9560					;			     6 - examine/increment
  9561					;		  bits 3-8 - type of interrupt
  9562					;			     0 - vectored
  9563					;			     1 - non-vectored on PI level 1
  9564					;			     ..         ...        ...
  9565					;			     7				  7
  9566					;			    77 - no interrupt should occur
  9567					;		  bits 9-35 - address to execute (for vectored
  9568					;			      or non-vectored interrupts) or the
  9569					;			      location to increment, decrement,
  9570					;			      examine, or deposit
  9571					;		IITYPE - Type of interrupt which occurred
  9572					;			 -1 - none
  9573					;			  0 - vectored
  9574					;			  1 - non-vectored on PI level 1
  9575					;			  .		...	...
  9576					;			  7 - non-vectored on PI level 7
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 222
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0409

  9577
  9578					;		IINTPC - Interrupt PC
  9579					;		IIADR - Address of location to be inc/dec/exa/dep
  9580					;		IIINCC - Contents of location to be inc/dec (correct)
  9581					;		IIINCA - Contents of location to be inc/dec (actual)
  9582					;		IIEXDC - Contents of location exam/depos (correct)
  9583					;		IIEXDA - Contents of location exam/depos (actual)
  9584					;		IEBUF - EBUF contents (of 2901 register 5)
  9585					;
  9586					;		AC6 - Updated to point to the next table location
  9587					;
  9588					; Interrupt Test Execute Table Format:
  9589					;
  9590					;		Entry
  9591					;		 ...
  9592					;		ILAST		; last entry (zero)
  9593					;
  9594					; 'Entry' is of the form:
  9595					;
  9596					; Bits 0-3 - Type of entry 
  9597					;    0 - Done with table   (ILAST)	 6 - Call routine/exit	(ICALLC)
  9598					;    1 - Set up examine	   (ISETEX)	 7 - Wait for interrupt	(IWAIT)
  9599					;    2 - Set up deposit	   (ISETDE)	10 - Select new tbl addr(IJRST) 
  9600					;    3 - Set up inc/dec	   (ISETID)	11 - Start port		(ISTART)
  9601					;    4 - Set up v/nv int   (ISETIN)	12 - Exit test (if ERFLG set) (IEXIT)
  9602					;    5 - Call routine	   (ICALL)
  9603					;
  9604					; Bits 4-35 - Defined per entry type.
  9605					;
  9606					;    Entry type 0 (ILAST) -  All zero - Indicates end of table
  9607					;
  9608					;    Entry type 1 (ISETEX) - Bits 4-17 - IOP function
  9609					;				 18-35 - Address of list containing addr to
  9610					;				         be examined and the data to use
  9611					;
  9612					;    Entry type 2 (ISETDE) - Bits 4-17 - IOP function
  9613					;				 18-35 - Address of list containing addr to
  9614					;				         be deposited and the data to use
  9615					;
  9616					;    Entry type 3 (ISETID) - Bits 4-17 - IOP function
  9617					;				 18-35 - Address of list containing addr to
  9618					;					 be inc/dec and data to use
  9619					;
  9620					;    Entry type 4 (ISETIN) - Bits 4-17 - IOP function
  9621					;				 18-35 - Interrupt type expected (0-vectored,
  9622					;					 n-nonvectored on PI level n)
  9623					;
  9624					;    Entry type 5 (ISETEI) - Bits 4-17 - IOP function
  9625					;				 18-35 - Address of list containing addr to
  9626					;				         be examined and the data to use
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 223
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0410

  9627
  9628					;    Entry type 6 (ICALL) -  Bits 4-35 - Address of routine to call
  9629					;
  9630					;    Entry type 7 (ICALLC) - Bits 4-35 - Address of routine to call
  9631					;
  9632					;    Entry type 10 (IWAIT) - Bits 4-35 - Time to wait (in milliseconds)
  9633					;	After the wait is complete, and interrupt data gotten, the PI
  9634					;	system is shut off and R5 is read by restarting port at location
  9635					;	1100, then stopping the port and reading the EBUF.
  9636					;
  9637					;    Entry type 11 (IJRST) -  Bits 4-35 - Table address to continue
  9638					;
  9639					;    Entry type 12 (ISTART) - Bits 4-35 - CRAM address to start at
  9640					;
  9641					;    Entry type 13 (IEXIT) - Bits 4-35 - Unused
  9642					;#********************************************************************
  9643
  9644	045442	261 17 0 00 000000 	IEXEC:	RPUT	(0,1,2)			; save some AC's
  9645
  9646
  9647					; Check if end of table
  9648
  9649	045445	200 02 0 06 000000 		MOVE	2,(6)			; get entry
  9650	045446	350 00 0 00 000006 		AOS	6			; point to next entry
  9651	045447	322 02 0 00 045453 		JUMPE	2,IEXEX1		; end of table - yes - exit
  9652
  9653					; Determine type of entry and dispatch
  9654
  9655	045450	135 01 0 00 062552 		LDB	1,[POINT 4,2,3]		; get entry
  9656						XCT	[JRST	IEXERR		; dispatch on it
  9657							 JRST	IEXSEX
  9658							 JRST	IEXSDE
  9659							 JRST	IEXSID
  9660							 JRST	IEXSIN
  9661							 JRST	IEXSEI
  9662							 JRST	IEXCAL
  9663							 JRST	IEXCAC
  9664							 JRST	IEXWAI
  9665							 JRST	IEXJRS
  9666							 JRST	IEXSTR
  9667							 JRST	IEXEXI
  9668							 JRST	IEXERR
  9669	045451	256 00 0 01 063127 			 JRST	IEXERR](1)
  9670
  9671					; Error in Test Execute Table
  9672
  9673	045452	037 00 0 00 062735 	IEXERR:	TMSGCD	<Data Test Execute Dispatch Table Error - Entry out of range>
  9674	045453	332 00 0 00 064377'	IEXEX1:	SKIPE	SDEBUG			; EXEC debug mode?
  9675	045454	037 00 0 00 030242 		PCRL				; yes - a final CRLF
  9676	045455	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9677
  9678	045460	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 224
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0411

  9679
  9680					; Set up an examine transfer
  9681
  9682	045461	135 01 0 00 063145 	IEXSEX:	LDB	1,[POINT 18,2,35]	; get address of list
  9683	045462	200 00 0 01 000000 		MOVE	(1)			; get address
  9684	045463	202 00 0 00 046074 		MOVEM	IIADR			; save it
  9685	045464	200 00 0 01 000001 		MOVE	1(1)			; get data
  9686	045465	202 00 0 00 046075 		MOVEM	IIINCC			; save it
  9687	045466	202 00 0 00 046076 		MOVEM	IIINCA			; save it
  9688	045467	202 00 0 00 046101 		MOVEM	IIDEPC			; save it
  9689	045470	202 00 0 00 046102 		MOVEM	IIDEPA			; save it
  9690	045471	202 00 0 00 046077 		MOVEM	IIEXAC			; save it
  9691	045472	200 00 0 00 062752 		MOVE	[400000,,1]		; get null data
  9692	045473	202 00 0 00 046100 		MOVEM	IIEXAA			; save it as actual
  9693	045474	200 01 0 00 046074 		MOVE	1,IIADR			; include address
  9694	045475	201 00 0 00 000002 		MOVEI	2			; get IOP function
  9695	045476	137 00 0 00 063146 		DPB	[POINT 3,1,2]		; save it
  9696	045477	201 00 0 00 000077 		MOVEI	77			; get 'no interrupt' code
  9697	045500	137 00 0 00 063147 		DPB	[POINT 6,1,8]		; save it
  9698	045501	202 01 0 00 046070 		MOVEM	1,IFLAG			; save interrupt type
  9699	045502	332 00 0 00 064377'		SKIPE	SDEBUG			; test debug mode?
  9700						GO	[TMSGC	<ISETEX  Iflag >; yes - print debug
  9701							 MOVE	IFLAG		;   data and continue
  9702							 PNTHW
  9703							 TMSG	< Adr >
  9704							 MOVE	1,IIADR
  9705							 PNTOCS		 
  9706							 TMSG	< Data >
  9707							 MOVE	1,IIEXAC
  9708							 PNTOCS
  9709	045503	260 17 0 00 063160 			 RTN]
  9710	045504	350 00 0 17 777775 		AOS	-3(P)			; set up proper return
  9711	045505	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9712
  9713	045510	263 17 0 00 000000 		RTN				; return
  9714
  9715					; Set up a deposit transfer
  9716
  9717	045511	135 01 0 00 063145 	IEXSDE:	LDB	1,[POINT 18,2,35]	; get address of list
  9718	045512	200 00 0 01 000000 		MOVE	(1)			; get address
  9719	045513	202 00 0 00 046074 		MOVEM	IIADR			; save it
  9720	045514	200 00 0 01 000001 		MOVE	1(1)			; get data
  9721	045515	202 00 0 00 046075 		MOVEM	IIINCC			; save it
  9722	045516	202 00 0 00 046076 		MOVEM	IIINCA			; save it
  9723	045517	202 00 0 00 046077 		MOVEM	IIEXAC			; save it
  9724	045520	202 00 0 00 046100 		MOVEM	IIEXAA			; save it
  9725	045521	202 00 0 00 046101 		MOVEM	IIDEPC			; save it
  9726	045522	200 00 0 00 062752 		MOVE	[400000,,1]		; get null data
  9727	045523	202 00 0 00 046102 		MOVEM	IIDEPA			; save it as actual
  9728	045524	200 01 0 00 046074 		MOVE	1,IIADR			; include address
  9729	045525	201 00 0 00 000003 		MOVEI	3			; get IOP function
  9730	045526	137 00 0 00 063146 		DPB	[POINT 3,1,2]		; save it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 225
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0412

  9731	045527	201 00 0 00 000077 		MOVEI	77			; get 'no interrupt' code
  9732	045530	137 00 0 00 063147 		DPB	[POINT 6,1,8]		; save it
  9733	045531	202 01 0 00 046070 		MOVEM	1,IFLAG			; save interrupt type
  9734	045532	332 00 0 00 064377'		SKIPE	SDEBUG			; test debug mode?
  9735						GO	[TMSGC	<ISETDE  Iflag >; yes - print debug
  9736							 MOVE	IFLAG		;   data and continue
  9737							 PNTHW
  9738							 TMSG	< Adr >
  9739							 MOVE	1,IIADR
  9740							 PNTOCS		 
  9741							 TMSG	< Data >
  9742							 MOVE	1,IIDEPC
  9743							 PNTOCS
  9744	045533	260 17 0 00 063176 			 RTN]
  9745	045534	350 00 0 17 777775 		AOS	-3(P)			; set up proper return
  9746	045535	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9747
  9748	045540	263 17 0 00 000000 		RTN				; return
  9749
  9750					; Set up an inc/dec operation
  9751
  9752	045541	135 01 0 00 063145 	IEXSID:	LDB	1,[POINT 18,2,35]	; get address of list
  9753	045542	200 00 0 01 000000 		MOVE	(1)			; get address
  9754	045543	202 00 0 00 046074 		MOVEM	IIADR			; save it
  9755	045544	200 00 0 01 000001 		MOVE	1(1)			; get data
  9756	045545	202 00 0 00 046077 		MOVEM	IIEXAC			; save it
  9757	045546	202 00 0 00 046100 		MOVEM	IIEXAA			; save it
  9758	045547	202 00 0 00 046101 		MOVEM	IIDEPC			; save it
  9759	045550	202 00 0 00 046102 		MOVEM	IIDEPA			; save it
  9760	045551	202 00 0 00 046075 		MOVEM	IIINCC			; save it
  9761	045552	200 00 0 00 062752 		MOVE	[400000,,1]		; get null data
  9762	045553	202 00 0 00 046076 		MOVEM	IIINCA			; save it as actual
  9763	045554	200 01 0 00 046074 		MOVE	1,IIADR			; include address
  9764	045555	201 00 0 00 000004 		MOVEI	4			; get IOP function
  9765	045556	137 00 0 00 063146 		DPB	[POINT 3,1,2]		; save it
  9766	045557	201 00 0 00 000077 		MOVEI	77			; get 'no interrupt' code
  9767	045560	137 00 0 00 063147 		DPB	[POINT 6,1,8]		; save it
  9768	045561	202 01 0 00 046070 		MOVEM	1,IFLAG			; save interrupt type
  9769	045562	332 00 0 00 064377'		SKIPE	SDEBUG			; test debug mode?
  9770						GO	[TMSGC	<ISETID  Iflag >; yes - print debug
  9771							 MOVE	IFLAG		;   data and continue
  9772							 PNTHW
  9773							 TMSG	< Adr >
  9774							 MOVE	1,IIADR
  9775							 PNTOCS		 
  9776							 TMSG	< Data >
  9777							 MOVE	1,IIINCC
  9778							 PNTOCS
  9779	045563	260 17 0 00 063214 			 RTN]
  9780	045564	350 00 0 17 777775 		AOS	-3(P)			; set up proper return
  9781	045565	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9782
  9783	045570	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 226
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0413

  9784
  9785					; Set up an examine/increment operation
  9786
  9787	045571	135 01 0 00 063145 	IEXSEI:	LDB	1,[POINT 18,2,35]	; get address of list
  9788	045572	200 00 0 01 000000 		MOVE	(1)			; get address
  9789	045573	202 00 0 00 046074 		MOVEM	IIADR			; save it
  9790	045574	200 00 0 01 000001 		MOVE	1(1)			; get data
  9791	045575	350 00 0 00 000000 		AOS				; get correct data
  9792	045576	202 00 0 00 046077 		MOVEM	IIEXAC			; save it
  9793	045577	202 00 0 00 046101 		MOVEM	IIDEPC			; save it
  9794	045600	202 00 0 00 046102 		MOVEM	IIDEPA			; save it
  9795	045601	202 00 0 00 046075 		MOVEM	IIINCC			; save it
  9796	045602	200 00 0 00 062752 		MOVE	[400000,,1]		; get null data
  9797	045603	202 00 0 00 046076 		MOVEM	IIINCA			; save it as actual
  9798	045604	202 00 0 00 046100 		MOVEM	IIEXAA			; save it as actual
  9799	045605	200 01 0 00 046074 		MOVE	1,IIADR			; include address
  9800	045606	201 00 0 00 000006 		MOVEI	6			; get IOP function
  9801	045607	137 00 0 00 063146 		DPB	[POINT 3,1,2]		; save it
  9802	045610	201 00 0 00 000077 		MOVEI	77			; get 'no interrupt' code
  9803	045611	137 00 0 00 063147 		DPB	[POINT 6,1,8]		; save it
  9804	045612	202 01 0 00 046070 		MOVEM	1,IFLAG			; save interrupt type
  9805	045613	332 00 0 00 064377'		SKIPE	SDEBUG			; test debug mode?
  9806						GO	[TMSGC	<ISETEI  Iflag >; yes - print debug
  9807							 MOVE	IFLAG		;   data and continue
  9808							 PNTHW
  9809							 TMSG	< Adr >
  9810							 MOVE	1,IIADR
  9811							 PNTOCS		 
  9812							 TMSG	< Data >
  9813							 MOVE	1,IIEXAC
  9814							 PNTOCS
  9815	045614	260 17 0 00 063232 			 RTN]
  9816	045615	350 00 0 17 777775 		AOS	-3(P)			; set up proper return
  9817	045616	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9818
  9819	045621	263 17 0 00 000000 		RTN				; return
  9820
  9821					; Set up interrupt (non-vectored or vectored)
  9822
  9823	045622	260 17 0 00 042221*	IEXSIN:	GO	INITPI			; init PI system
  9824	045623	260 17 0 00 042222*		GO	SETVEC			; set up vector addresses
  9825	045624	200 01 0 00 046064 		MOVE	1,IADDR			; get address
  9826	045625	135 00 0 00 062644 		LDB	[POINT 14,2,17]		; get IOP function
  9827	045626	137 00 0 00 063146 		DPB	[POINT 3,1,2]		; position correctly for IFLAG
  9828	045627	135 00 0 00 063145 		LDB	[POINT 18,2,35]		; get interrupt type expected
  9829	045630	137 00 0 00 063147 		DPB	[POINT 6,1,8]		; position correctly for IFLAG
  9830	045631	202 01 0 00 046070 		MOVEM	1,IFLAG			; save interrupt type
  9831	045632	200 00 0 00 046075 		MOVE	IIINCC			; get correct increment data
  9832	045633	202 00 0 00 046076 		MOVEM	IIINCA			; save actual increment data
  9833	045634	200 00 0 00 046077 		MOVE	IIEXAC			; get correct examine data
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 227
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0414

  9834	045635	202 00 0 00 046100 		MOVEM	IIEXAA			; save actual examine data
  9835	045636	200 00 0 00 046101 		MOVE	IIDEPC			; get correct deposit data
  9836	045637	202 00 0 00 046102 		MOVEM	IIDEPA			; save actual deposit data
  9837	045640	332 00 0 00 064377'		SKIPE	SDEBUG			; test debug mode?
  9838						GO	[TMSGC	<ISETIN  Iflag >; yes - print debug
  9839							 MOVE	IFLAG		;   data and continue
  9840							 PNTHW		 
  9841	045641	260 17 0 00 063250 			 RTN]
  9842	045642	350 00 0 17 777775 		AOS	-3(P)			; set up proper return
  9843	045643	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9844
  9845	045646	263 17 0 00 000000 		RTN				; return
  9846
  9847					; Start the port
  9848
  9849	045647	260 17 0 00 045117*	IEXSTR:	GO	IPACLR			; do a 'port clear'
  9850	045650	200 00 0 00 063254 		MOVE	[INTNUM,,INTNUM+1]	; build BLT pointer
  9851	045651	251 00 0 00 000000*		BLT	INTEND			; clear interrupt history data
  9852	045652	135 01 0 00 062601 		LDB	1,[POINT 32,2,35]	; get start address
  9853	045653	301 01 0 00 007777 		CAIL	1,7777			; default address selected?
  9854	045654	200 01 0 00 046064 		MOVE	1,IADDR			; yes - get it
  9855	045655	202 01 0 00 045123*		MOVEM	1,SNEXT			; save it
  9856	045656	202 01 0 00 046064 		MOVEM	1,IADDR			; save as start address
  9857	045657	242 01 0 00 000001 		LSH	1,1			; position properly
  9858	045660	260 17 0 00 045126*		GO	LDRAR			; load the register
  9859	045661	336 01 0 00 045135*		SKIPN	1,SDATA			; any data given?
  9860	045662	201 01 0 00 000014 		MOVEI	1,MPRUN!4		; no - set initial data
  9861	045663	332 00 0 00 030037 		SKIPE	USER			; user mode?
  9862	045664	620 01 0 00 000007 		TRZ	1,7			; yes - clear PI level bits
  9863	045665	660 01 0 00 040010 		TRO	1,SELLAR!MPRUN		; ensure SELLAR,MPRUN are set
  9864	045666	202 01 0 00 045661*		MOVEM	1,SDATA			; save start data
  9865	045667	200 01 0 00 045666*		MOVE	1,SDATA			; get start data
  9866	045670	260 17 0 00 045247*		GO	LDCSR			; write to CSR
  9867	045671	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9868						GO	[TMSGC	<ISTART  Adr  >	; yes - print debug
  9869							 MOVE	IADDR		;   data and continue
  9870							 PNTOCS
  9871	045672	260 17 0 00 063261 			 RTN]
  9872	045673	350 00 0 17 777775 		AOS	-3(P)			; set up return
  9873	045674	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9874
  9875	045677	263 17 0 00 000000 		RTN				; return +3/+4
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 228
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0415

  9876
  9877					; Execute a JRST and exit
  9878
  9879	045700	550 02 0 00 000002 	IEXJRS:	HRRZ	2,2			; only want the address
  9880	045701	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9881						GO	[TMSGC	<IJRST Adr  >	; yes - print debug
  9882							 MOVE	2		;   data and continue
  9883							 PNTOCS
  9884	045702	260 17 0 00 063270 			 RTN]
  9885	045703	200 06 0 00 000002 		MOVE	6,2			; get new table address
  9886	045704	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9887
  9888	045707	350 00 0 17 000000 		AOS	(P)			; set up return
  9889	045710	263 17 0 00 000000 		RTN				; return +2
  9890
  9891					; Execute a CALL and exit
  9892
  9893	045711	550 02 0 00 000002 	IEXCAL:	HRRZ	2,2			; only want the address
  9894	045712	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9895						GO	[TMSGC	<ICALL Adr  >	; yes - print debug
  9896							 MOVE	2		;   data and continue
  9897							 PNTOCS
  9898	045713	260 17 0 00 063277 			 RTN]
  9899	045714	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  9900
  9901	045716	260 17 1 00 000002 		GO	@2			; call the routine
  9902	045717	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  9903
  9904	045724	350 00 0 17 000000 		AOS	(P)			; set up return
  9905	045725	263 17 0 00 000000 		RTN				; return +2
  9906
  9907					; Execute a CALL and check if test done and exit
  9908
  9909	045726	550 02 0 00 000002 	IEXCAC:	HRRZ	2,2			; only want the address
  9910	045727	332 00 0 00 064377'		SKIPE	SDEBUG			; EXEC debug mode?
  9911						GO	[TMSGC	<ICALLC Adr  >	; yes - print debug
  9912							 MOVE	2		;   data and continue
  9913							 PNTOCS
  9914	045730	260 17 0 00 063306 			 RTN]
  9915	045731	261 17 0 00 000003 		RPUT	(3,4)			; save some AC's
  9916
  9917	045733	260 17 1 00 000002 		GO	@2			; call the routine
  9918	045734	334 00 0 00 000000 		SKIPA				; exit test
  9919	045735	350 00 0 17 777773 		AOS	-5(P)			; set up return
  9920	045736	262 17 0 00 000004 		RGET	(4,3,2,1,0)		; restore AC's
  9921
  9922	045743	263 17 0 00 000000 		RTN				; return +2
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 229
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0416

  9923
  9924					; Exit test (if error flag is set)
  9925
  9926	045744	332 00 0 00 064377'	IEXEXI:	SKIPE	SDEBUG			; EXEC debug mode?
  9927						GO	[TMSGC	<IEXIT>		; yes - print debug
  9928	045745	260 17 0 00 063314 			 RTN]			; data and continue
  9929	045746	336 00 0 00 000015 		SKIPN	ERFLG			; any errors yet?
  9930	045747	350 00 0 17 777775 		AOS	-3(P)			; no - not done with test yet
  9931	045750	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
  9932
  9933	045753	263 17 0 00 000000 		RTN				; return +2 or +1
  9934
  9935					; Wait for interrupt operation to complete
  9936
  9937	045754	350 00 0 00 046306 	IEXWAI:	AOS	TSTSUB			; increment test segment
  9938	045755	135 00 0 00 062601 		LDB	[POINT 32,2,35]		; get time to wait
  9939	045756	260 17 0 00 042430 		GO	ODELAY			; wait
  9940	045757	260 17 0 00 045227*		GO	RDCSR			; read CSR
  9941	045760	254 00 0 00 046037 		JRST	IEXWA5			; error accessing CSR
  9942	045761	202 01 0 00 046066 		MOVEM	1,ICSR			; save CSR data
  9943	045762	260 17 0 00 000000*		GO	.PIOFF			; shut off PI system
  9944
  9945					; Find out final address
  9946
  9947	045763	201 01 0 00 040000 		MOVEI	1,SELLAR		; gset up to read LAR
  9948	045764	260 17 0 00 045670*		GO	LDCSR			; write CSR
  9949	045765	260 17 0 00 045250*		GO	RDLAR			; read LAR
  9950	045766	242 01 0 00 777777 		LSH	1,-1			; position correctly
  9951	045767	202 01 0 00 046065 		MOVEM	1,IADDRF		; save it
  9952
  9953					; Handle inc/dec/exam/depos location
  9954
  9955	045770	135 02 0 00 063316 		LDB	2,[POINT 3,IFLAG,2]	; get interrupt type
  9956	045771	307 02 0 00 000001 		CAIG	2,1			; vectored or non-vectored?
  9957	045772	254 00 0 00 046015 		JRST	IEXWA0			; yes - continue
  9958	045773	306 02 0 00 000002 		CAIN	2,2			; no - examine?
  9959						GO	[GO	IEXWRG		; yes - read examine data
  9960							 MOVEM	1,IEBUF		; save EBUF data
  9961							 MOVEM	1,IIEXAA	; save for compare
  9962	045774	260 17 0 00 063317 			 RTN]
  9963	045775	306 02 0 00 000006 		CAIN	2,6			; examine/increment?
  9964						GO	[GO	IEXWRG		; yes - read examine data
  9965							 MOVEM	1,IEBUF		; save EBUF data
  9966							 MOVEM	1,IIEXAA	; save for compare
  9967	045776	260 17 0 00 063317 			 RTN]
  9968	045777	200 00 0 00 046100 		MOVE	IIEXAA			; get actual data examined
  9969	046000	312 00 0 00 046077 		CAME	IIEXAC			; same as correct data?
  9970	046001	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  9971	046002	336 00 0 00 046074 		SKIPN	IIADR			; valid address of data?
  9972	046003	254 00 0 00 046015 		JRST	IEXWA0			; no - skip over these compares
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 230
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0417

  9973	046004	200 01 1 00 046074 		MOVE	1,@IIADR		; get actual data
  9974	046005	312 01 0 00 046075 		CAME	1,IIINCC		; same as correct?
  9975	046006	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  9976	046007	312 01 0 00 046101 		CAME	1,IIDEPC		; same as correct?
  9977	046010	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
  9978	046011	301 02 0 00 000004 		CAIL	2,4			; increment of some sort?
  9979	046012	202 01 0 00 046076 		MOVEM	1,IIINCA		; yes - save actual data
  9980	046013	306 02 0 00 000003 		CAIN	2,3			; deposit?
  9981	046014	202 01 0 00 046101 		MOVEM	1,IIDEPC		; yes - save actual data
  9982
  9983					; Find out interrupt data
  9984
  9985	046015	335 00 0 00 042254*	IEXWA0:	SKIPGE	INTNUM			; any interrupts occurred?
  9986						JRST	[SETOM	IITYPE		; no - flag such and clear
  9987							 SETOM	IINTPC		;   interrupt PC and 
  9988	046016	254 00 0 00 063323 			 JRST	IEXWA1]		;   continue
  9989	046017	200 01 0 00 046015*		MOVE	1,INTNUM		; get interrupt number
  9990	046020	301 01 0 00 000024 		CAIL	1,^D20			; overflow interrupt?
  9991	046021	201 01 0 00 000023 		MOVEI	1,^D19			; yes - get last saved interrupt
  9992	046022	550 00 0 01 042213*		HRRZ	INTTYP(1)		; get interrupt type
  9993	046023	202 00 0 00 046072 		MOVEM	IITYPE			; save it
  9994	046024	200 00 0 01 042170*		MOVE	INTPC(1)		; get interrupt PC
  9995	046025	202 00 0 00 046073 		MOVEM	IINTPC			; save it
  9996
  9997					; Now determine if an error occurred due to receipt or lack of receipt of
  9998					; an interrupt.
  9999
 10000	046026	135 02 0 00 063326 	IEXWA1:	LDB	2,[POINT 6,IFLAG,8]	; get interrupt type
 10001	046027	302 02 0 00 000077 		CAIE	2,77			; interrupt expected?
 10002	046030	254 00 0 00 046034 		JRST	IEXWA2			; yes - continue
 10003	046031	331 00 0 00 046017*		SKIPL	INTNUM			; interrupt occurred?
 10004	046032	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
 10005	046033	254 00 0 00 046040 		JRST	IEXWA6			; continue
 10006
 10007					; Interrupt was expected - verify that the correct one really did occur
 10008
 10009	046034	312 02 0 01 046022*	IEXWA2:	CAME	2,INTTYP(1)		; correct type interrupt occurred?
 10010	046035	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
 10011	046036	254 00 0 00 046040 		JRST	IEXWA6			; continue
 10012
 10013					; Error did occur/exit
 10014
 10015	046037	474 15 0 00 000000 	IEXWA5:	SETO	ERFLG,			; set error flag
 10016	046040	332 00 0 00 064377'	IEXWA6:	SKIPE	SDEBUG			; EXEC debug mode?
 10017						GO	[TMSGC	<IWAIT CSR >	; yes - print debug
 10018							 MOVE	ICSR		;   data and continue
 10019							 PNTHW
 10020							 TMSG	< Stopped at >
 10021							 MOVE	IADDRF
 10022							 PNTOCS
 10023	046041	260 17 0 00 063335 			 RTN]
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 231
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0418

 10024	046042	260 17 0 00 000000*		GO	.PION			; turn interrupt system back on
 10025	046043	336 00 0 00 000015 		SKIPN	ERFLG			; error flag set?
 10026	046044	350 00 0 17 777775 		AOS	-3(P)			; no - set up good return
 10027	046045	350 00 0 17 777775 		AOS	-3(P)			; set up return
 10028	046046	350 00 0 17 777775 		AOS	-3(P)			; set up return
 10029	046047	262 17 0 00 000002 		RGET	(2,1,0)			; restore AC's
 10030
 10031	046052	263 17 0 00 000000 		RTN				; return
 10032
 10033					; Routine to read 2901 register with the examine data it it
 10034
 10035	046053	201 01 0 00 001100 	IEXWRG:	MOVEI	1,1100			; yes -  get start address
 10036	046054	242 01 0 00 000001 		LSH	1,1			; position correctly
 10037	046055	260 17 0 00 045660*		GO	LDRAR			; load the register
 10038	046056	201 01 0 00 020010 		MOVEI	1,SINCYC!MPRUN		; get proper bits
 10039	046057	260 17 0 00 045764*		GO	LDCSR			; write CSR
 10040	046060	201 01 0 00 200000 		MOVEI	1,TSTEBF		; set up to read EBUF
 10041	046061	260 17 0 00 046057*		GO	LDCSR			; write CSR
 10042	046062	260 17 0 00 045234*		GO	RDEBUF			; read the EBUF
 10043	046063	263 17 0 00 000000 		RTN				; return
 10044
 10045					; Miscellaneous
 10046
 10047	046064	000000	000000		IADDR:	0			; initial starting address
 10048	046065	000000	000000		IADDRF:	0			; final address
 10049	046066	000000	000000		ICSR:	0			; final CSR data
 10050	046067	000000	000000		ITIME:	0			; amount of time to let port run
 10051	046070	000000	000000		IFLAG:	0			; interrupt should occur data
 10052	046071	000000	000000		IIOPF:	0			; IOP function word
 10053	046072	000000	000000		IITYPE:	0			; type of interrupt which occurred
 10054	046073	000000	000000		IINTPC:	0			; interrupt PC
 10055	046074	000000	000000		IIADR:	0			; address of location to be inc/dec/exa/dep
 10056	046075	000000	000000		IIINCC:	0			; contents of location to be inc/dec (correct)
 10057	046076	000000	000000		IIINCA:	0			; contents of location to be inc/dec (actual)
 10058	046077	000000	000000		IIEXAC:	0			; data examined (correct)
 10059	046100	000000	000000		IIEXAA:	0			; data examined (actual)
 10060	046101	000000	000000		IIDEPC:	0			; data deposited (correct)
 10061	046102	000000	000000		IIDEPA:	0			; data deposited (actual)
 10062	046103	000000	000000		IEBUF:	0			; EBUF contents (of 2901 register 5)
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 232
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0419

 10063
 10064					;#********************************************************************
 10065					;* IIPNT - Print out error data
 10066					;#********************************************************************
 10067
 10068	046104	261 17 0 00 000000 	IIPNT:	RPUT	(0,1)			; save AC's
 10069
 10070	046106	200 01 0 00 045377*		MOVE	1,SCOSW			; get switches
 10071
 10072					; Print start/end address
 10073
 10074	046107	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
 10075						GO	[TMSGC	<Start >	; no
 10076							 MOVE	IADDR
 10077							 PNT4
 10078							 TMSG	<  End >	; print end address
 10079							 MOVE	IADDRF
 10080							 PNT4
 10081	046110	260 17 0 00 063344 			 RTN]
 10082	046111	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10083	046112	254 00 0 00 046127 		JRST	IIPN0			; no - continue
 10084	046113	037 00 0 00 062335 		TMSGC	<Start Addr:  >		; print start address
 10085	046114	200 00 0 00 046064 		MOVE	IADDR
 10086	046115	037 04 0 00 000000 		PNT4
 10087	046116	037 00 0 00 063076 		TMSGC	<End Addr:    >		; print end address
 10088	046117	200 00 0 00 046065 		MOVE	IADDRF
 10089	046120	037 04 0 00 000000 		PNT4
 10090	046121	037 00 0 00 062714 		TMSGC	<Final CSR data:  >
 10091	046122	200 00 0 00 046066 		MOVE	ICSR
 10092	046123	037 13 0 00 000000 		PNTHW				; print it
 10093	046124	037 00 0 00 063353 		TMSGC	<Final EBUF data:  >
 10094	046125	200 00 0 00 046103 		MOVE	IEBUF
 10095	046126	037 13 0 00 000000 		PNTHW				; print it
 10096
 10097					; Print IOP function word
 10098
 10099	046127	037 00 0 00 063360 	IIPN0:	TMSGC	<IOP Function word:  >
 10100	046130	200 00 0 00 046071 		MOVE	IIOPF
 10101	046131	037 13 0 00 000000 		PNTHW
 10102	046132	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout?
 10103	046133	254 00 0 00 046201 		JRST	IIPN3			; no - continue
 10104	046134	037 00 0 00 063365 		TMSG	<, AdrSpa = >
 10105	046135	135 01 0 00 063370 		LDB	1,[POINT 3,IIOPF,2] 	; get address space
 10106						XCT	[TMSG	<EPT>
 10107							 TMSG	<ExecVir>
 10108							 TMSG	<Illegal Function>
 10109							 TMSG	<Illegal Function>
 10110	046136	256 00 0 01 063402 			 TMSG	<Physical>](1)	; print it
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 233
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0420

 10111	046137	037 00 0 00 063407 		TMSG	<, Func = >
 10112	046140	135 01 0 00 063411 		LDB	1,[POINT 3,IIOPF,5]	; get function
 10113						XCT	[TMSG	<Non-Vect Int,>	; print it
 10114							 TMSG	<Non-Vect Int,>
 10115							 TMSG	<Vect Int>
 10116							 GO	[MOVE	IIOPF
 10117								 TLNN	4000
 10118								 TMSG	<Increment,>
 10119								 TLNE	4000
 10120								 TMSG	<Decrement,>
 10121								 RTN]
 10122							 TMSG	<Examine,>
 10123							 TMSG	<Deposit,>
 10124							 TMSG	<Byte,>
 10125	046141	256 00 0 01 063444 			 TMSG	<Examine/Incr,>](1)
 10126	046142	037 00 0 00 063454 		TMSGC	<   Qual = >
 10127	046143	135 00 0 00 063457 		LDB	[POINT 1,IIOPF,6]	; get QUAL bit
 10128	046144	037 16 0 00 000003 		PNTOCS				; print it
 10129	046145	037 00 0 00 063460 		TMSG	<, DevNum = >
 10130	046146	135 00 0 00 063463 		LDB	[POINT 4,IIOPF,10]	; get device number
 10131	046147	037 16 0 00 000003 		PNTOCS				; print it
 10132	046150	037 00 0 00 063464 		TMSG	<, Addr = >
 10133	046151	135 00 0 00 063466 		LDB	[POINT 24,IIOPF,35]	; get address
 10134	046152	037 16 0 00 000003 		PNTOCS				; print it
 10135
 10136					; Print type of interrupt expected
 10137
 10138	046153	135 01 0 00 063326 	IIPN1:	LDB	1,[POINT 6,IFLAG,8]	; get interrupt expected
 10139	046154	306 01 0 00 000077 		CAIN	1,77			; any interrupt expected?
 10140	046155	037 00 0 00 063467 		TMSGC	<No interrupt expected>	; no - print such
 10141	046156	306 01 0 00 000077 		CAIN	1,77			; any interrupt expected?
 10142	046157	254 00 0 00 046167 		JRST	IIPN2			; no - continue
 10143	046160	037 00 0 00 063474 		TMSGC	<Interrupt function attempted:  >
 10144	046161	135 01 0 00 063316 		LDB	1,[POINT 3,IFLAG,2]	; get type
 10145						XCT	[TMSG	<Non-Vectored interrupt>
 10146							 TMSG	<Vectored interrupt>
 10147							 TMSG	<Examine addr >
 10148							 TMSG	<Deposit addr >
 10149							 TMSG	<Increment addr >
 10150							 TMSG	<Decrement addr >
 10151	046162	256 00 0 01 063537 			 TMSG	<Examine/increment addr >](1)
 10152	046163	307 01 0 00 000001 		CAIG	1,1			; vectored or non-vectored?
 10153	046164	254 00 0 00 046167 		JRST	IIPN2			; yes - continue
 10154	046165	135 00 0 00 063546 		LDB	[POINT 18,IFLAG,35]	; get address
 10155	046166	037 16 0 00 000003 		PNTOCS				; print it out
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 234
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0421

 10156
 10157					; Print which type of interrupt did occur
 10158
 10159	046167	335 01 0 00 046072 	IIPN2:	SKIPGE	1,IITYPE		; any interrupt occurred?
 10160	046170	037 00 0 00 063547 		TMSGC	<No interrupt occurred>	; no - print such
 10161	046171	321 01 0 00 046201 		JUMPL	1,IIPN3			; any interrupt occurred? no - continue
 10162	046172	336 00 0 00 000001 		SKIPN	1			; vectored interrupt occurred?
 10163	046173	037 00 0 00 063554 		TMSGC	<Vectored interrupt occurred>
 10164	046174	332 00 0 00 000001 		SKIPE	1			; non-vectored interrupt occurred?
 10165	046175	037 00 0 00 063562 		TMSGC	<Non-Vectored interrupt occurred>
 10166	046176	037 00 0 00 063571 		TMSG	< from PC >
 10167	046177	200 00 0 00 046073 		MOVE	IINTPC			; get PC
 10168	046200	037 16 0 00 000003 		PNTOCS				; print it
 10169
 10170					; Print increment/decrement c/a
 10171
 10172	046201	200 01 0 00 046106*	IIPN3:	MOVE	1,SCOSW			; get switches
 10173	046202	200 00 0 00 046075 		MOVE	IIINCC			; get correct inc/dec data
 10174	046203	316 00 0 00 046076 		CAMN	IIINCA			; same as actual?
 10175	046204	254 00 0 00 046224 		JRST	IIPN4			; yes - continue
 10176	046205	037 00 0 00 063573 		TMSGC	<Address inc/dec:  >
 10177	046206	200 00 0 00 046074 		MOVE	IIADR			; get address inc/dec
 10178	046207	037 16 0 00 000003 		PNTOCS				; print it
 10179	046210	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10180	046211	037 00 0 00 063600 		TMSGC	< (C):  >		; no
 10181	046212	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout
 10182	046213	037 00 0 00 063602 		TMSGC	<  Correct:  >		; yes
 10183	046214	200 00 0 00 046075 		MOVE	IIINCC
 10184	046215	037 13 0 00 000000 		PNTHW
 10185	046216	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10186	046217	037 00 0 00 063605 		TMSGC	< (A):  >		; no
 10187	046220	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout
 10188	046221	037 00 0 00 063607 		TMSGC	<   Actual:  >		; yes
 10189	046222	200 00 0 00 046076 		MOVE	IIINCA
 10190	046223	037 13 0 00 000000 		PNTHW
 10191
 10192					; Print examine c/a
 10193
 10194	046224	200 01 0 00 046201*	IIPN4:	MOVE	1,SCOSW			; get switches
 10195	046225	200 00 0 00 046077 		MOVE	IIEXAC			; get correct examine data
 10196	046226	316 00 0 00 046100 		CAMN	IIEXAA			; same as actual?
 10197	046227	254 00 0 00 046247 		JRST	IIPN5			; yes - continue
 10198	046230	037 00 0 00 063612 		TMSGC	<Address examined:  >
 10199	046231	200 00 0 00 046074 		MOVE	IIADR			; get address inc/dec
 10200	046232	037 16 0 00 000003 		PNTOCS				; print it
 10201	046233	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10202	046234	037 00 0 00 063600 		TMSGC	< (C):  >		; no
 10203	046235	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout
 10204	046236	037 00 0 00 063602 		TMSGC	<  Correct:  >		; yes
 10205	046237	200 00 0 00 046077 		MOVE	IIEXAC
 10206	046240	037 13 0 00 000000 		PNTHW
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 235
DFPTA1	MAC	10-Oct-83 21:43		Test Execute Routines                                                              SEQ 0422

 10207	046241	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10208	046242	037 00 0 00 063605 		TMSGC	< (A):  >		; no
 10209	046243	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout
 10210	046244	037 00 0 00 063607 		TMSGC	<   Actual:  >		; yes
 10211	046245	200 00 0 00 046100 		MOVE	IIEXAA
 10212	046246	037 13 0 00 000000 		PNTHW
 10213
 10214					; Print deposit c/a
 10215
 10216	046247	200 01 0 00 046224*	IIPN5:	MOVE	1,SCOSW			; get switches
 10217	046250	200 00 0 00 046101 		MOVE	IIDEPC			; get correct deposit data
 10218	046251	316 00 0 00 046102 		CAMN	IIDEPA			; same as actual?
 10219	046252	254 00 0 00 046272 		JRST	IIPNX			; yes - continue
 10220	046253	037 00 0 00 063617 		TMSGC	<Address deposited:  >
 10221	046254	200 00 0 00 046074 		MOVE	IIADR			; get address inc/dec
 10222	046255	037 16 0 00 000003 		PNTOCS				; print it
 10223	046256	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10224	046257	037 00 0 00 063600 		TMSGC	< (C):  >		; no
 10225	046260	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout
 10226	046261	037 00 0 00 063602 		TMSGC	<  Correct:  >		; yes
 10227	046262	200 00 0 00 046101 		MOVE	IIDEPC
 10228	046263	037 13 0 00 000000 		PNTHW
 10229	046264	603 01 0 00 000200 		TLNE	1,TXTINH		; full printout
 10230	046265	037 00 0 00 063605 		TMSGC	< (A):  >		; no
 10231	046266	607 01 0 00 000200 		TLNN	1,TXTINH		; full printout
 10232	046267	037 00 0 00 063607 		TMSGC	<   Actual:  >		; yes
 10233	046270	200 00 0 00 046102 		MOVE	IIDEPA
 10234	046271	037 13 0 00 000000 		PNTHW
 10235
 10236					; Exit
 10237
 10238	046272	262 17 0 00 000001 	IIPNX:	RGET	(1,0)			; restore AC's
 10239
 10240	046274	263 17 0 00 000000 		RTN				; return
 10241
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 236
DFPTA1	MAC	10-Oct-83 21:43		Miscellaneous Test Variables                                                       SEQ 0423

 10242						SUBTTL	Miscellaneous Test Variables
 10243
 10244					;#********************************************************************
 10245					; Port device code selection
 10246					;
 10247					; Select word (NISEL or CISEL):
 10248					;  Bit 0 - Port exists - 0 - no   (This is determined by whether or not
 10249					;			 1 - yes   a CONI succeeds and bit 0 is set,
 10250					;				   indicating a port).
 10251					;      1 - Port selectable - 0 - no   (This is determined by whether
 10252					;			     1 - yes   or not a DEVREQ succeeds).
 10253					;      2 - Port selected - 0 - no
 10254					;			   1 - yes
 10255					;#********************************************************************
 10256
 10257	046275	056400	000000		PORTNI:	56400,,0			; NI port device code
 10258	046276	057400	000000		PORTCI:	57400,,0			; CI port device code
 10259	046277	000000	000000		NISEL:	0				; NI port selected
 10260	046300	000000	000000		CISEL:	0				; CI port selected
 10261	046301	000000	000000		PORSEL:	0				; port currently selected
 10262	046302	000000	000000		UUT:	0				; unit under test
 10263
 10264
 10265					;#*********************************************************************
 10266					; Current Test Data
 10267					;#*********************************************************************
 10268
 10269	046303	000 00 0 00 000000 	TSTNAM:	Z				; current test description
 10270	046304	000 00 0 00 000000 	TSTCLS:	Z				; current test class (0-5)
 10271	046305	000 00 0 00 000000 	TSTNUM:	Z				; current test number (1-n)
 10272	046306	000 00 0 00 000000 	TSTSUB:	Z				; current subtest number
 10273	046307	000 00 0 00 000000 	TSTPC:	Z				; current test PC
 10274	046310	000 00 0 00 000000 	TSTFLG:	Z				; current test flags
 10275	046311	000 00 0 00 000000 	TSTADD:	Z				; current test dispatch table address
 10276	046312	000 00 0 00 000000 	TSTMIC:	Z				; current test microcode address
 10277	046313	000 00 0 00 000000 	TSTMSK:	Z				; mask to determine what test to run
 10278	046314	000 00 0 00 000000 	TSTREP:	Z				; number of test repetitions done
 10279	046315	000 00 0 00 000000 	TSTREQ:	Z				; number of test repetitions requested
 10280	046316	000 00 0 00 000000 	TSTMUL:	Z				; multiple test flag (0-no,1-yes)
 10281	046317	000 00 0 00 000000 	TSTINH:	Z				; inhibit fault isolation flag
 10282	046320	000 00 0 00 000000 	TSTHIG:	Z				; addr of high probability modules
 10283	046321	000 00 0 00 000000 	TSTLOW:	Z				; addr of low probability modules
 10284	046322	000 00 0 00 000000 	TSTOFF:	Z				; relocatable offset of test module
 10285	046323	000 00 0 00 000000 	TSTREL:	Z				; reliability mode repeat count
 10286	046324	000 00 0 00 000000 	TSTCNT:	Z				; reliability mode repeat count
 10287	046325	000 00 0 00 000000 	FLTCLS:	Z				; failing test class
 10288	046326	000 00 0 00 000000 	FLTNUM:	Z				; failing test number
 10289	046327	000 00 0 00 000000 	NERROR:	Z				; number of errors so far
 10290
 10291	046330	000 00 0 00 000000 	PMODE:	Z				; program mode
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 237
DFPTA1	MAC	10-Oct-83 21:43		Miscellaneous Test Variables                                                       SEQ 0424

 10292
 10293					;#*********************************************************************
 10294					;* Data Buffer Areas For Reading And Writing
 10295					;#*********************************************************************
 10296
 10297	047000				LOC	<.+1000>&777000
 10298
 10299	047000				BUFF:	BLOCK	^D1024
 10300
 10301
 10302					;#********************************************************************
 10303					;* Data transfer paramters
 10304					;#********************************************************************
 10305
 10306	051000	000000	000100		TWORD:	100				; number of words
 10307	051001	000000	000000		TMODE:	0				; data format
 10308	051002	222333	444555		TPAT:	222333,,444555			; selected data pattern
 10309
 10310	051003				CBUF:	BLOCK	CBUFSZ			; channel control word storage area
 10311
 10312	051320				CSTWRD:	BLOCK	4			; channel logout storage
 10313
 10314
 10315					;#********************************************************************
 10316					; PATCH - Patch Area
 10317					;#********************************************************************
 10318
 10319	051324				PATCH0:
 10320	051324				PATCH:	BLOCK	100			; patch area
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 238
DFPTA1	MAC	10-Oct-83 21:43		Miscellaneous Test Variables                                                       SEQ 0425

 10321
 10322					;#********************************************************************
 10323					;* Special code to test SPEAR entries
 10324					;#********************************************************************
 10325
 10326	051424	200 00 0 00 051541 	STEST:	MOVE	[JFCL]			; get noop
 10327	051425	202 00 0 00 043511 		MOVEM	S1			; delete SYERR call #1
 10328	051426	202 00 0 00 043623 		MOVEM	S2			; delete SYERR call #2
 10329	051427	260 17 0 00 051433 		GO	.+4			; do it
 10330	051430	201 01 0 00 043516 		MOVEI	1,SENT10		; get address to print
 10331	051431	260 17 0 00 051466 		GO	STESTP			; print it
 10332	051432	254 00 0 00 051436 		JRST	STEST0			; continue
 10333	051433	261 17 0 00 000000 		RPUT	(0,1)			; save AC's
 10334
 10335	051435	254 00 0 00 043503 		JRST	SPCHK1			; check entry type 1
 10336
 10337	051436	260 17 0 00 051442 	STEST0:	GO	.+4			; do it
 10338	051437	201 01 0 00 043636 		MOVEI	1,SENT11		; get address to print
 10339	051440	260 17 0 00 051466 		GO	STESTP			; print it
 10340	051441	254 00 0 00 051451 		JRST	STEST1			; continue
 10341	051442	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save AC's
 10342
 10343	051447	400 15 0 00 000000 		SETZ	ERFLG,			; clear error flag
 10344	051450	254 00 0 00 043552 		JRST	SPCHK2			; check entry type 2 (no error)
 10345
 10346	051451	260 17 0 00 051455 	STEST1:	GO	.+4			; do it
 10347	051452	201 01 0 00 043636 		MOVEI	1,SENT11		; get address to print
 10348	051453	260 17 0 00 051466 		GO	STESTP			; print it
 10349	051454	254 00 0 00 030007 		JRST	SRTDDT			; continue
 10350	051455	261 17 0 00 000000 		RPUT	(0,1,2,3,4)		; save AC's
 10351
 10352	051462	474 15 0 00 000000 		SETO	ERFLG,			; set error flag
 10353	051463	201 00 0 00 000012 		MOVEI	12			; get test number
 10354	051464	202 00 0 00 046305 		MOVEM	TSTNUM			; save it
 10355	051465	254 00 0 00 043552 		JRST	SPCHK2			; check entry type 2 (error)
 10356
 10357	051466	037 00 0 00 063624 	STESTP:	TMSGCD	<Buffer:>
 10358	051467	505 01 0 00 777753 		HRLI	1,-25			; build AOBJN word
 10359	051470	200 00 0 01 000000 		MOVE	(1)			; get data
 10360	051471	037 13 0 00 000000 		PNTHW				; print
 10361	051472	037 00 0 00 030242 		PCRL
 10362	051473	253 01 0 00 051470 		AOBJN	1,STESTP+2		; loop till done
 10363	051474	263 17 0 00 000000 		RTN				; return
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page 239
DFPTA1	MAC	10-Oct-83 21:43		Miscellaneous Test Variables                                                       SEQ 0426

 10364
 10365					;#********************************************************************
 10366					;* Special code to produce an EXE version
 10367					;#********************************************************************
 10368
 10369	051475	200 00 0 00 063627 	EXEN:	MOVE	[SKIPA]
 10370	051476	202 00 0 00 000000*		MOVEM	REQ1
 10371	051477	202 00 0 00 000000*		MOVEM	REQ2
 10372	051500	202 00 0 00 000000*		MOVEM	REL
 10373	051501	200 00 0 00 063630 	EXE:	MOVE	[10,,0]
 10374	051502	202 00 0 00 030046 		MOVEM	CONSW
 10375	051503	200 00 0 00 063631 		MOVE	[SETOM $$TOGG]
 10376	051504	202 00 0 00 030641 		MOVEM	START+31
 10377	051505	201 00 0 00 030000 		MOVEI	30000
 10378	051506	542 00 0 00 000120 		HRRM	.JBSA
 10379	051507	402 00 0 00 030056 		SETZM	$ONETM
 10380	051510	402 00 0 00 000000*		SETZM	HAVECI
 10381	051511	402 00 0 00 000000*		SETZM	HAVENI
 10382	051512	402 00 0 00 000016 		SETZM	MBCN
 10383	051513	402 00 0 00 064404'		SETZM	TSLOD1
 10384	051514	402 00 0 00 064405'		SETZM	TSLOD2
 10385	051515	254 00 0 00 030007 		JRST	SRTDDT
 10386
 10387
 10388					;#********************************************************************
 10389					; End of Mainline Module
 10390					;#********************************************************************
 10391
 10392	051516				D1LIT:	XLIST
 10393
NO ERRORS DETECTED

PROGRAM BREAK IS 064420
ABSOLUTE BREAK IS 064325
CPU TIME USED 01:16.093

126P CORE USED
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page S-1
DFPTA1	MAC	10-Oct-83 21:43		SYMBOL TABLE                                                                       SEQ 0427

AADDR		000000	ext	CALPAR		043125	ent	CMD3A		034256		DCMARK		040633		
AAPNT		044226	ent	CBASE		030652	ext	CMD4		034260		DCODPB		037526		
AAPNT0		044246		CBUF		051003	ent	CMDQUE		034275		DCOLDB		037504		
AAPNT1		044257		CBUFSZ		000315	spd	CMDQUU		034300		DCOM0		037233		
AAPNTX		044261		CBUS	100000	000000	spd	CONFIG		032142		DCOM1		037250		
ABORT		400000	spd	CCMIC		041737		CONPNT		032215		DCOM3A		037427		
ADRPE	100000	000000	spd	CCPN0		045360		CONSW		030046		DCOMA0		037376		
AEBUF		044435	int	CCPN2		045377		CONVSX		037432	ext	DCOMA1		037401		
AEXEC		044113	ent	CCPN3		045405		CPAT		045331	int	DCOMA2		037424		
AEXEC0		044163		CCPN4		045431		CRAMFR		037253		DCOMA3		037425		
AEXECX		044176		CCPNT		045340	ent	CRAMPE	004000	000000	spd	DCOMA4		037444		
ALACT		044221	int	CCPNX		045437		CRAMTO		037254		DCOMA5		037446		
ALCOR		044220	int	CCSR		045323	int	CSERR		045327		DCOMAA		037414		
ALCSR		044215	int	CCTAB1		041677		CSETCC		045035		DCOMAG		037362		
ALEBF		044216	int	CCTAB3		041717		CSHFLG		030506		DCOMAL		037357		
ALERR		044217	int	CCWPNT		042102	ext	CSHMEM		030507		DCOMAX		037451		
ALFLC		044224	int	CDERR		045330	int	CSREN0		043251		DCOMDB		037352		
ALFLE		044223	int	CEBUAD		064331'		CSREN1		043265		DCOMDE		037263		
ALFLS		044222	int	CEBUF		044436	int	CSREN2		043266		DCOMEX		037632		
ALFLT		044225	int	CEBUFA		045326	int	CSRENB		043276		DCOMEZ		037653		
ALL	770000	000000	spd	CEBUFC		045325	int	CSRENG		043237	ent	DCOMGO		037212		
ALSRT		044214	int	CEXCAC		045174		CSRENS		064332'		DCOML0		037660		
ALTCHK	007000	000000		CEXCAL		045157		CSRENX		043270		DCOMLI		037656		
ALTF		064326'	int	CEXCOM		045300		CSRPNT		043215	ent	DCOMLX		037700		
ALTIM		044213	int	CEXEC		045006	ent	CSRPNX		043232		DCOMPA		042115		
ALTMGO		030063		CEXERR		045016		CSTATF		045334	int	DCOMSG		037462		
ALU	020000	000000	spd	CEXEX1		045017		CSTWRD		051320	ent	DCOMZE		037615		
ALUFR		040260		CEXEXI		045212		CTIME		045324		DCONI		035323		
ALUTO		040261		CEXJRS		045146		CTRAN		045333		DCONI1		035326		
ANEXT		037262		CEXSRD		045025		CURTIM		032644	ext	DCONO		035333		
ARGFLG		041174	ext	CEXSRW		045105		CWORDL		037256	int	DCONO1		035337		
ARGUM		053766	ext	CEXSTR		045117		CWORDR		037257	int	DCONT		037056		
BBPN0		044464		CEXSWR		045074		D1LIT		051516		DCWPNT		042077		
BBPN1		044473		CEXWA2		045243		DACRAM		037201		DDALU		040064		
BBPN2		044512		CEXWA3		045265		DBCRAM		037176		DDALU0		040070		
BBPNT		044440	ent	CEXWA4		045266		DBPNT		042044		DDALUM		040242		
BBPNX		044520		CEXWAI		045222		DBPNT0		042057		DDALUX		040142		
BEGIN		030000		CHDATA		045256	ext	DBPNT1		042071		DDATI		035344		
BEXCAL		044404		CHINIT		045055	ext	DBREA0		041143		DDATI1		035347		
BEXCHK		044420		CHKARG		055324	ext	DBREAK		041141		DDATO		035353		
BEXEC		044264	ent	CHKCSR		000000	ext	DC1ST		064333'		DDATO1		035357		
BEXERR		044276		CHKTS0		042363		DCBR0		041236		DDCRAM		037173		
BEXEX1		044277		CHKTS1		042400		DCBR1		041247		DDCSR		035306		
BEXJRS		044372		CHKTST		042352		DCBRK		041217		DDEBU1		037120		
BEXSS0		044332		CHKTSX		042401		DCCOD1		041627		DDEBUF		037114		
BEXSSC		044310		CIPORT		000020	spd	DCCOD2		041653		DDELA0		042466		
BEXSSS		044306		CISEL		046300	ent	DCCOD3		041655		DDELAX		042502		
BFLAG		044437		CLEN		045332	int	DCCOD4		041663		DDELAY		042456		
BONETM		064327'		CLOGBF		045335		DCCOD5		041665		DDLOC0		040371		
BUFCOM		045436	ext	CLRBUF		060055	ext	DCCOD6		041673		DDLOCM		040535		
BUFF		047000	int	CLREBU		042540	ext	DCCODE		041621		DDLOCS		040365		
BUFGEN		045053	ext	CMD0		034207		DCLEAR		035420		DDLOCX		040436		
CADDR		037255	int	CMD1		034214		DCMAR0		040652		DDNEX0		041060		
CALL	200000	000000	spd	CMD2		034221		DCMAR1		040663		DDNEX1		041067		
CALMAR		064330'		CMD3		034245		DCMAR2		040700		DDNEX2		041074		
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page S-2
DFPTA1	MAC	10-Oct-83 21:43		SYMBOL TABLE                                                                       SEQ 0428

DDNEXT		041037		DFVERX		041474		DSETC1		035001		DZALUM		040255		
DDRAR		037146		DFVERY		041527		DSETC2		035002		DZALUX		040234		
DDTAB		041044		DHELP		034622		DSETCS		034772		DZCRAM		037204		
DEALU		037756		DHELP0		034634		DSETD1		035114		DZCSR		035315		
DEALU0		037777		DHELP1		034665		DSETD2		035115		DZEBUF		037107		
DEALU1		040017		DIINIT		042216		DSETD3		035125		DZLOC0		040462		
DEALUM		040237		DIPRIN		042142		DSETDA		035067		DZLOC1		040502		
DEALUX		040057		DISGO		031222		DSETDX		035110		DZLOCM		040550		
DEBTIM		042470	ext	DISLIS		031132		DSETE1		035040		DZLOCS		040441		
DEBUG1		002000	spd	DISMS	104000	000167	int	DSETE2		035041		DZLOCX		040525		
DEBUG2		001000	spd	DISP0		030757		DSETEB		035027		DZRAR		037160		
DEBUG3		000400	spd	DISP0A		031035		DSETF0		035143		EADDR		000000	ext	
DEBUG4		000200	spd	DISP0B		031037		DSETF1		035146		EBUS	400000	000000	spd	
DEBUG5		000100	spd	DISP1		031045		DSETF2		035147		ENATST		064336'		
DECRAM		037170		DISP2		031111		DSETFA		035173		ENDFIX		030577		
DECSR		035276		DISPAT		030753		DSETFN		035127		ENDUUO	037500	000004		
DECVER		000001	spd	DISPD		031073		DSETHE		035260		EOPUUO	037700	000004		
DECYN		035033	ext	DISPE		031106		DSETHL		035266		ERESET		035416	ext	
DEEBUF		037073		DISPR		031060		DSETL1		035061		ERFLG		000015		
DELAR		037126		DISPX		031112		DSETL2		035062		ERRCNT		064337'		
DELOC0		040303		DISQUE		031116		DSETLN		035047		ERRPC		030052		
DELOC1		040324		DISQUU		031121		DSETP1		035020		EXE		051501		
DELOCM		040530		DLBR0		041302		DSETP2		035021		EXEN		051475		
DELOCS		040262		DLBR1		041315		DSETPL		035223		FGETW		041570	ext	
DELOCX		040360		DLBR2		041334		DSETPP		035242		FINCMD		060025	ext	
DENE0		040771		DLBRK		041263		DSETPR		035007		FINECH		064340'	int	
DENEX0		041023		DLBRX		041342		DSETPX		035256		FINIT		041566	ext	
DENEX1		041027		DLCRAM		037207		DSETUP		032147	ext	FINPUT		064341'	int	
DENEX2		041033		DLGPNT		042105		DSETWH		035157		FIOFF		061610	ext	
DENEXT		040762		DLIST		041367		DSINIT		035425		FLDLIS		037550		
DESTA0		041115		DLMAR0		040723		DSPAT		035274		FLTCH0		034110		
DESTAK		041101		DLMAR1		040736		DSPEAR		004000	spd	FLTCH1		034122		
DESTAX		041132		DLMAR2		040752		DSSCLR		035601		FLTCHK		034105		
DESTAY		041133		DLMARK		040704		DSSPN0		035570		FLTCHX		034131		
DESTKM		041136		DLMARX		040760		DSSPNT		035557		FLTCLS		046325		
DETAB		041007		DLOAD		041344		DSST0		035524		FLTHA0		034071		
DEVREL		032134	ext	DMARK		040555		DSST1		035540		FLTHAN		034067		
DEVREQ		034212	ext	DMARK0		040557		DSSTEP		035510		FLTNUM		046326		
DFEXA0		041570		DRBR0		041176		DSSTX		035544		FLTPNT		064342'		
DFEXAM		041563		DRBRK		041174		DSTAR0		035444		FMTTYP		064343'		
DFEXAX		041607		DRCRAM		037735	ent	DSTART		035440		FOARG		000000	ext	
DFILLN		041750		DRDINC		042020		DSTOP		035465		FORPNT		033140	ext	
DFILLP		041773		DRDINI		042014		DSTOP1		035500		FSELEC	037240	000004		
DFILN0		041761		DRESET		035413		DSTPAT		035275		GENCCW		045064	ext	
DFILP0		042004		DRMAR0		040606		DSWIT		042131		GET	262740	000000		
DFLAG		064334'		DRMARK		040604		DSWORD		035273		GETJI	104000	000507	int	
DFLIS0		041542		DROUT1		035370		DTRAC0		035512		GETLOG		042111	ext	
DFLIST		041534		DROUTN		035364		DTRACE		035505		GETPPN		043700		
DFLISX		041561		DSADDR		035267		DTRANS		041611		GO	260740	000000		
DFLOA0		041413		DSDATA		035270		DTRFLG		064335'		GTAD	104000	000227	int	
DFLOAD		041404		DSET		034710		DWCRAM		037703	ent	HALT	254200	000000		
DFLOAX		041426		DSETA1		034764		DWRINI		042037		HAVECI		051510	ext	
DFVER0		041452		DSETA2		034765		DZALU		040145		HAVENI		051511	ext	
DFVERF		041442		DSETAD		034751		DZALU0		040166		IADDR		046064	int	
DFVERR		041504		DSETB1		035205		DZALU1		040206		IADDRF		046065		
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page S-3
DFPTA1	MAC	10-Oct-83 21:43		SYMBOL TABLE                                                                       SEQ 0429

ICSR		046066	int	IPACLR		045647	ext	MLOAD1		042622		PATPNT		035247	ext	
IDEBUG		064344'	int	IPAER	000200	000000	spd	MLOADN		042507	ent	PCMD		064363'		
IEBUF		046103		IPASRT		037061	ext	MLOADX		042625		PCRL	037000	030242		
IEXCAC		045726		IPASST		041123	ext	MLOADY		042511	ent	PCRL2	037000	030243		
IEXCAL		045711		IPASTP		035470	ext	MMPROC		000002	spd	PCRLF	037040	030242		
IEXEC		045442	ent	IPRIN0		042150		MONTYP		030516		PFORCE	037040	000026		
IEXERR		045452		IPRINI		042161		MPER	200000	000000	spd	PFSET		030655	ext	
IEXEX1		045453		IPRINT		042145	ent	MPROC	200000	000000	spd	PGMINT	265000	030011		
IEXEXI		045744		IPRINX		042155		MPRUN		000010	spd	PGMNAM		030600	int	
IEXJRS		045700		ISOPN0		031363		MSG	100000	000000	spd	PJRST	254000	000000		
IEXSDE		045511		ISOPN1		031374		MULFLG		064354'		PMODE		046330	int	
IEXSEI		045571		ISOPN2		031376		MULINI		064355'		PNT1	037040	000000		
IEXSEX		045461		ISOPN3		031402		MVCOM		042524		PNT4	037200	000000		
IEXSID		045541		ISOPN4		031417		MVFLAG		064356'		PNT4F	037200	000001		
IEXSIN		045622		ISOPN5		031423		MVNUM		064357'		PNTAL	037740	000000		
IEXSTR		045647		ISOPN6		031441		MVPNT		042657		PNTCIF	037040	000000		
IEXWA0		046015		ISOPN7		031455		MVPNT1		042677		PNTCRM		043007		
IEXWA1		046026		ISOPN8		031461		MVPNTW		042736		PNTDCF	037640	000001		
IEXWA2		046034		ISOPNT		031343		MVPNTX		042726		PNTDEC	037640	000000		
IEXWA5		046037		ISOPNX		031462		MVREP		064360'		PNTDEV		042233	ext	
IEXWA6		046040		ISTOP		042537	ext	MWBADR		042640		PNTENB		030220		
IEXWAI		045754		ITERAT		000005	spd	MWBLAC		042646		PNTHST		037011		
IEXWRG		046053		ITIME		046067		MWBLCO		042643		PNTHW	037540	000000		
IFLAG		046070	int	ITRCNT		030024		MWBRAC		042654		PNTMSF	037040	000000		
IIADR		046074		LARG2		064345'		MWBRCO		042651		PNTMSG	037000	000000		
IIDEPA		046102		LASARG		035157	ext	MWDQUE		037573		PNTOCC	001000	000000		
IIDEPC		046101		LASDTC		042036		NCBUS	100000	000000	spd	PNTOCF	037740	000003		
IIEXAA		046100		LAST	010000	000000	spd	NDCB	000200	000000	spd	PNTOCS	037700	000003		
IIEXAC		046077		LAXER	000400	000000	spd	NDMP	000400	000000	spd	PNTSIX	037000	000002		
IIINCA		046076		LDCRAM		042576	ext	NEBUS	400000	000000	spd	PNTSXF	037040	000002		
IIINCC		046075		LDCSR		046061	ext	NERROR		046327		PNTWD		043103		
IINTPC		046073		LDEBUF		037124	ext	NETBAD		031601		PORSEL		046301	ent	
IIOPF		046071	int	LDEBUG		064346'	int	NETDES		031711		PORTCI		046276	ent	
IIPN0		046127		LDRAR		046055	ext	NETPNT		031471		PORTNI		046275	ent	
IIPN1		046153		LGWC	000100	000000	spd	NEXM	020000	000000	spd	PRSFLG		035272		
IIPN2		046167		LOCFR		040553		NIPORT		000040	spd	PSP	037000	000040		
IIPN3		046201		LOCTO		040554		NISEL		046277	ent	PSPF	037040	000040		
IIPN4		046224		LOGBUF		042110	ext	NMBUS	040000	000000	spd	PTEST		032335		
IIPN5		046247		LOGPNT		045403	ext	NMPROC	200000	000000	spd	PTEST0		032352		
IIPNT		046104	ent	LOOPGM		040000	spd	NOTWC0	040000	000000	spd	PTESTP		032354		
IIPNX		046272		LOOPTS		020000	spd	NSSTEP		044044	int	PTESTX		032365		
IITYPE		046072		MAPNEW		030143		ODELA0		042440		PUT	261740	000000		
INDLIS		031123	ent	MBARG		064347'		ODELA1		042447		PVPAGI		030511		
INHFLT		200000	spd	MBARGF		064350'		ODELAY		042430	ent	QADDR		045321	int	
INITPD		032125	ext	MBCN		000016		OPRSEL		000010	spd	QADDRF		045322	int	
INITPI		045622	ext	MBUS	010000	000000	spd	OVN	000020	000000	spd	RALUB		064364'		
INTAPR		042205	ext	MCBUS		000001	spd	P		000017		RALUE		064365'		
INTCON		042202	ext	MCNVER		000000	spd	PARFLG		035271	int	RANCNT		064366'		
INTCSR		042210	ext	MCPUS		064351'		PASCNT		030047		RANDBS		030022		
INTEND		055313	ext	MDEBUG		064352'	int	PASPNT		030734		RANGEN		032612		
INTNUM		055314	ext	MLIST		042746		PAT		000014		RANNUM		064367'		
INTPC		046024	ext	MLIST0		042755		PAT1		064361'		RDCRAM		061741	ext	
INTTIM		042173	ext	MLISTX		043000		PAT2		064362'		RDCSR		045757	ext	
INTTYP		046034	ext	MLNUM		064353'		PATCH		051324		RDEBUF		046062	ext	
INTUSE		042176	ext	MLOAD0		042543		PATCH0		051324		RDLAR		045765	ext	
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page S-4
DFPTA1	MAC	10-Oct-83 21:43		SYMBOL TABLE                                                                       SEQ 0430

REL		051500	ext	SLDATA		064400'		TEBUS		033146		TSTA35		000000	ext	
RELIAB		000400	spd	SNARKF		000000	ext	TEND		033517		TSTA36		000000	ext	
REQ1		051476	ext	SNEXT		062610	ext	TEXCAC		044624		TSTA37		000000	ext	
REQ2		051477	ext	SPCHK1		043503		TEXCAL		044607		TSTA4		000000	ext	
RESCR0		043373		SPCHK2		043552		TEXCH0		044705		TSTA40		000000	ext	
RESCRM		043362		SPEAR1		064401'		TEXCHK		044652		TSTA41		000000	ext	
RESQAV		000200	spd	SPEAR2		064402'	ent	TEXCO0		044554		TSTA42		000000	ext	
RFROM		037261		SPRE1X		043513		TEXCON		044553		TSTA5		000000	ext	
RLOCB		064370'		SPRE2A		043543		TEXEC		044523	ent	TSTA6		000000	ext	
RLOCE		064371'		SPRE2B		043603		TEXERR		044533		TSTA7		000000	ext	
RSTART		200000	spd	SPRE2C		043614		TEXEX1		044534		TSTADD		046311	ent	
RTN	263740	000000		SPRE2X		043630		TEXEXI		044642		TSTAL0		033115		
RTO		037260		SPREP1		043471		TEXJRS		044576		TSTALT		033106		
RUNTME		042467	ext	SPREP2		043532	ent	TEXSST		044542		TSTC1		000000	ext	
S1		043511		SRTDDT		030007		TEXSTR		044547		TSTC10		000000	ext	
S2		043623		SRTLIS		000026	spd	TFAIL		044733		TSTC11		000000	ext	
SAADDR		044047	int	SSADDR		044045	int	TLERR		043213		TSTC12		000000	ext	
SAVADD		064372'		SSADRL		036011		TLOAD		043161	ent	TSTC13		000000	ext	
SAVCMD		064373'		SSADRN		036211		TLOADE		043203		TSTC14		000000	ext	
SAVCR0		043347		SSCSRL		036411		TLOADX		043201		TSTC15		000000	ext	
SAVCRL		043407		SSCSRN		036611		TMODE		051001		TSTC16		000000	ext	
SAVCRM		043340		SSLOC		035610		TMP1		064403'		TSTC17		000000	ext	
SAVFLD		064374'		SSNUM		035611		TMPROC		033376		TSTC2		000000	ext	
SAVHST		037030		SSPN1		044073		TPAT		051002	int	TSTC20		000000	ext	
SAVMAX		064375'		SSPNT		044050	ent	TRACE		042224	ent	TSTC21		000000	ext	
SAVRAR		064376'		SSPNX		044110		TRACE0		042250		TSTC22		000000	ext	
SB		030607		START		030610	ent	TRACET		400000	spd	TSTC23		000000	ext	
SCOOFF		042253	ext	STARTA		030711	ent	TRACEX		042300		TSTC24		000000	ext	
SCOPER	027000	000000		STARTB		030733		TSEQ		033244		TSTC25		000000	ext	
SCOSW		046247	ext	STCLOK		030653	ext	TSLOD1		064404'	int	TSTC26		000000	ext	
SDATA		045667	ext	STEST		051424		TSLOD2		064405'	int	TSTC27		000000	ext	
SDEBUG		064377'	int	STEST0		051436		TSTA1		000000	ext	TSTC3		000000	ext	
SEADDR		044046	int	STEST1		051451		TSTA10		000000	ext	TSTC30		000000	ext	
SELLAR		040000	spd	STESTP		051466		TSTA11		000000	ext	TSTC31		000000	ext	
SELTST		042332		STRT1		030644		TSTA12		000000	ext	TSTC32		000000	ext	
SELTSX		042346		SWCHPT		000000	ext	TSTA13		000000	ext	TSTC33		000000	ext	
SEN11L		043651		SWCOM		042137	ext	TSTA14		000000	ext	TSTC34		000000	ext	
SENT10		043516		SWITT		043547	ext	TSTA15		000000	ext	TSTC35		000000	ext	
SENT11		043636		SWPTAB		030525		TSTA16		000000	ext	TSTC36		000000	ext	
SEQ	040000	000000	spd	SWRGT		030633	ext	TSTA17		000000	ext	TSTC37		000000	ext	
SETEBU		037121	ext	SWSTP		000116	spd	TSTA2		000000	ext	TSTC4		000000	ext	
SETLAR		044167	ext	SWSTT		000036	spd	TSTA20		000000	ext	TSTC40		000000	ext	
SETVEC		045623	ext	SYERR	104000	000527	int	TSTA21		000000	ext	TSTC41		000000	ext	
SEXCAL		044011		TADDR		044724	int	TSTA22		000000	ext	TSTC42		000000	ext	
SEXCHK		044026		TADDRF		044725	int	TSTA23		000000	ext	TSTC43		000000	ext	
SEXEC		043712	ent	TAKFIL		032564	int	TSTA24		000000	ext	TSTC44		000000	ext	
SEXERR		043722		TALU		033334		TSTA25		000000	ext	TSTC45		000000	ext	
SEXEX1		043723		TCBUS		033437		TSTA26		000000	ext	TSTC46		000000	ext	
SEXJRS		044000		TCOMP		044732		TSTA27		000000	ext	TSTC47		000000	ext	
SEXSS0		043753		TCSRF		044726	int	TSTA3		000000	ext	TSTC5		000000	ext	
SEXSSC		043733		TDENA	000100	000000	spd	TSTA30		000000	ext	TSTC50		000000	ext	
SEXSSS		043731		TDISP1		033146		TSTA31		000000	ext	TSTC51		000000	ext	
SHWC	000040	000000	spd	TDISP2		033520		TSTA32		000000	ext	TSTC52		000000	ext	
SINCYC		020000	spd	TEBUFA		044731	int	TSTA33		000000	ext	TSTC53		000000	ext	
SLAST		037042	ext	TEBUFC		044730	int	TSTA34		000000	ext	TSTC54		000000	ext	
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page S-5
DFPTA1	MAC	10-Oct-83 21:43		SYMBOL TABLE                                                                       SEQ 0431

TSTC55		000000	ext	TSTE32		000000	ext	TSTHLT		032131		TSTS37		000000	ext	
TSTC56		000000	ext	TSTE33		000000	ext	TSTINH		046317	int	TSTS4		000000	ext	
TSTC57		000000	ext	TSTE34		000000	ext	TSTL1		064407'		TSTS40		000000	ext	
TSTC6		000000	ext	TSTE35		000000	ext	TSTL2		064410'		TSTS41		000000	ext	
TSTC60		000000	ext	TSTE36		000000	ext	TSTL3		064411'		TSTS42		000000	ext	
TSTC7		000000	ext	TSTE37		000000	ext	TSTLI0		032021		TSTS43		000000	ext	
TSTCLS		046304	ent	TSTE4		000000	ext	TSTLI1		032036		TSTS44		000000	ext	
TSTCNT		046324		TSTE40		000000	ext	TSTLIS		032014		TSTS45		000000	ext	
TSTD0		032702		TSTE41		000000	ext	TSTLOW		046321		TSTS46		000000	ext	
TSTD1		032724		TSTE42		000000	ext	TSTLSS		032076		TSTS47		000000	ext	
TSTD10		033052		TSTE43		000000	ext	TSTLST		032044		TSTS5		000000	ext	
TSTD11		033067		TSTE44		000000	ext	TSTMB0		031324		TSTS50		000000	ext	
TSTD12		033076		TSTE45		000000	ext	TSTMBU		031311		TSTS51		000000	ext	
TSTD2		032736		TSTE46		000000	ext	TSTMIC		046312	ent	TSTS52		000000	ext	
TSTD3		032737		TSTE47		000000	ext	TSTMSK		046313	ent	TSTS53		000000	ext	
TSTD4		032746		TSTE5		000000	ext	TSTMUL		046316		TSTS54		000000	ext	
TSTD5		032751		TSTE50		000000	ext	TSTNAM		046303	ent	TSTS55		000000	ext	
TSTD6		032774		TSTE51		000000	ext	TSTNUM		046305	ent	TSTS56		000000	ext	
TSTD7		033006		TSTE52		000000	ext	TSTOFF		046322	ent	TSTS57		000000	ext	
TSTD8		033030		TSTE53		000000	ext	TSTPC		046307	ent	TSTS6		000000	ext	
TSTD9		033035		TSTE54		000000	ext	TSTPN0		042420		TSTS60		000000	ext	
TSTDDT		032120		TSTE55		000000	ext	TSTPNT		042405	ent	TSTS61		000000	ext	
TSTDE0		034147		TSTE56		000000	ext	TSTPNX		042425		TSTS62		000000	ext	
TSTDEB		034203		TSTE57		000000	ext	TSTRA0		032646		TSTS63		000000	ext	
TSTDEC		034133		TSTE6		000000	ext	TSTRAA		032655		TSTS64		000000	ext	
TSTDED		034172		TSTE60		000000	ext	TSTRAN		032632		TSTS65		000000	ext	
TSTDEE		034166		TSTE61		000000	ext	TSTREL		046323		TSTS66		000000	ext	
TSTDER		034165		TSTE62		000000	ext	TSTREP		046314	ent	TSTS67		000000	ext	
TSTDIA		032113		TSTE63		000000	ext	TSTREQ		046315		TSTS7		000000	ext	
TSTDIS		032663		TSTE64		000000	ext	TSTS1		000000	ext	TSTS70		000000	ext	
TSTDL0		032470		TSTE65		000000	ext	TSTS10		000000	ext	TSTSAV		064412'		
TSTDS0		032440		TSTE66		000000	ext	TSTS11		000000	ext	TSTSE0		032237		
TSTDSA		032427		TSTE67		000000	ext	TSTS12		000000	ext	TSTSEG		032274		
TSTDSL		032461		TSTE7		000000	ext	TSTS13		000000	ext	TSTSEL		032233		
TSTE1		000000	ext	TSTE70		000000	ext	TSTS14		000000	ext	TSTSEX		032321		
TSTE10		000000	ext	TSTE71		000000	ext	TSTS15		000000	ext	TSTSG0		032305		
TSTE11		000000	ext	TSTE72		000000	ext	TSTS16		000000	ext	TSTSP0		032610		
TSTE12		000000	ext	TSTE73		000000	ext	TSTS17		000000	ext	TSTSPC		032566		
TSTE13		000000	ext	TSTE74		000000	ext	TSTS2		000000	ext	TSTSSW		032521		
TSTE14		000000	ext	TSTE75		000000	ext	TSTS20		000000	ext	TSTSUB		046306	ent	
TSTE15		000000	ext	TSTE76		000000	ext	TSTS21		000000	ext	TSTSWI		032507		
TSTE16		000000	ext	TSTEBF		200000	spd	TSTS22		000000	ext	TSTSWP		032514		
TSTE17		000000	ext	TSTEN0		032436		TSTS23		000000	ext	TSTTA0		032547		
TSTE2		000000	ext	TSTENA		032433		TSTS24		000000	ext	TSTTAK		032532		
TSTE20		000000	ext	TSTEOP		033126		TSTS25		000000	ext	TSTTAN		032530		
TSTE21		000000	ext	TSTEPP		064406'		TSTS26		000000	ext	TSTU1		000000	ext	
TSTE22		000000	ext	TSTEXE		031334		TSTS27		000000	ext	TSTU10		000000	ext	
TSTE23		000000	ext	TSTEXG		031336		TSTS3		000000	ext	TSTU11		000000	ext	
TSTE24		000000	ext	TSTFLG		046310	ent	TSTS30		000000	ext	TSTU12		000000	ext	
TSTE25		000000	ext	TSTGET		042304		TSTS31		000000	ext	TSTU13		000000	ext	
TSTE26		000000	ext	TSTHIG		046320		TSTS32		000000	ext	TSTU14		000000	ext	
TSTE27		000000	ext	TSTHL0		032403		TSTS33		000000	ext	TSTU15		000000	ext	
TSTE3		000000	ext	TSTHLC		032411		TSTS34		000000	ext	TSTU16		000000	ext	
TSTE30		000000	ext	TSTHLL		032420		TSTS35		000000	ext	TSTU17		000000	ext	
TSTE31		000000	ext	TSTHLP		032371		TSTS36		000000	ext	TSTU2		000000	ext	
DFPTA (Port Basic Device Diagnostic)	MACRO %53A(1152) 09:26 16-Oct-84 Page S-6
DFPTA1	MAC	10-Oct-83 21:43		SYMBOL TABLE                                                                       SEQ 0432

TSTU20		000000	ext	$B		000044		.MOR		000007	spd	
TSTU21		000000	ext	$CHR		000044		.MRDLM		000037	spd	
TSTU22		000000	ext	$GARG		000001		.MS0A		000007	spd	
TSTU23		000000	ext	$ONETM		030056		.MSD0		000007	spd	
TSTU24		000000	ext	$TTCHR		030231		.MSELE		000007	spd	
TSTU25		000000	ext	$TWCNT		030225		.OARG		041774	ext	
TSTU26		000000	ext	%ADDR		007754	spd	.PIOFF		045762	ext	
TSTU27		000000	ext	%ML	775377	530000	spd	.PION		046042	ext	
TSTU3		000000	ext	%MR	001000	000040	spd	.PNTOC		000000	ext	
TSTU30		000000	ext	.CGOT		042135	ext	.RAND	040000	000000	spd	
TSTU31		000000	ext	.CLOSE		032135	ext	.RCCER		100000	spd	
TSTU32		000000	ext	.COMM		037437	ext	.RCENA	000400	000000	spd	
TSTU33		000000	ext	.CONI		000000	ext	.RCJP		000060	spd	
TSTU34		000000	ext	.CONO		000000	ext	.RCONT		000340	spd	
TSTU35		000000	ext	.DARG		042051	ext	.RCRTN		000240	spd	
TSTU36		000000	ext	.DATAI		000000	ext	.RD	001000	000000	spd	
TSTU37		000000	ext	.DATAO		040426	ext	.RESET		030644	ext	
TSTU4		000000	ext	.DBCMD		034303		.RJ		000000	spd	
TSTU40		000000	ext	.DBDIS		034453		.RJMAP		000040	spd	
TSTU41		000000	ext	.HLCMD		034642		.RLDLM		230000	spd	
TSTU5		000000	ext	.INPNT		034214	ext	.RMGC		000000	spd	
TSTU6		000000	ext	.INWD1		031025	ext	.ROENA		000000	spd	
TSTU7		000000	ext	.ISWT		055321	ext	.ROR	030000	000000	spd	
TTALTM	037340	000003		.JBSA		000120	spd	.RRDLM		220000	spd	
TTIDEC	037200	000003		.LADDR	000100	000000	spd	.RS0A	400000	000000	spd	
TTIME		044727		.LAND		000000	spd	.RSD0	700000	000000	spd	
TTNBRF		030510		.LCCER		000000	spd	.RSELE		005000	spd	
TTPN0		044752		.LCENA		000000	spd	.RSWIT		030634	ext	
TTPN1		044757		.LCJP		000000	spd	.SARG		041370	ext	
TTPN2		044764		.LCONT		000000	spd	.STCMD		034722		
TTPNT		044734	ent	.LCRTN		000000	spd	.STDIS		034736		
TTPNX		045003		.LD		000000	spd	.SWCHP		055326	ext	
TTSIXB	037400	000003		.LJ		010000	spd	
TTYYES		032311	ext	.LJMAP		000000	spd	
TUSER	001000	000000	spd	.LLDLM		000000	spd	
TWORD		051000	int	.LMGC		000001	spd	
TXALL	060000	000000	spd	.LOENA		002000	spd	
TXTINH		000200	spd	.LOR		000000	spd	
UDEBUG		064413'	int	.LRDLM		000000	spd	
UNAME		035150	ext	.LS0A		000000	spd	
USER		030037		.LSD0		000000	spd	
USRION		032150	ext	.LSELE		000000	spd	
UUT		046302	ent	.LSWIT		000000	ext	
WRDERR		042126	ext	.MAND		000007	spd	
XWORDL		064414'		.MCCER		000037	spd	
XWORDR		064415'		.MCENA		000001	spd	
XXW		064416'		.MCJP		000017	spd	
XXX		064417'		.MCONT		000017	spd	
ZAL	200000	000000	spd	.MCRTN		000017	spd	
ZCB	400000	000000	spd	.MD		000007	spd	
ZEB		000000	spd	.MJ		007777	spd	
ZMP	300000	000000	spd	.MJMAP		000017	spd	
ZSE	100000	000000	spd	.MLDLM		000037	spd	
$$TOGG		030521		.MMGC		001777	spd	
$ARG2		000001		.MOENA		000001	spd	
AADDR	   110#
AAPNT	    44	  8352#                                                                                                    SEQ 0433
AAPNT0	  8379	  8385#
AAPNT1	  8386	  8397#
AAPNTX	  8381	  8388	  8393	  8402#
ABORT	   267	  1830
ADRPE	  9499
AEBUF	    49	  8546	  8576	  8586	  8642#	  8683	  8714
AEXEC	    44	  8244#
AEXEC0	  8287	  8300#
AEXECX	  8266	  8282	  8317#
ALACT	    45	  8255	  8311	  8338#	  8373
ALCOR	    45	  8251	  8312	  8337#	  8363	  8369	  8390
ALCSR	    45	  8254	  8283	  8334#	  8360
ALEBF	    45	  8303	  8335#
ALERR	    45	  8250	  8336#
ALFLC	    46	  8258	  8285	  8323	  8343#	  8397
ALFLE	    46	  8257	  8313	  8319	  8341#	  8385
ALFLS	    46	  8256	  8265	  8281	  8321	  8339#	  8378
ALFLT	    46	  8259	  8288	  8325	  8345#
ALL	   746
ALSRT	    45	  8252	  8333#	  8355
ALTF	    37	   260	   348#	   348	   361	   365	  1070	  1912	  1942	  2906	  2910	  4496	  4553	  4642
	  4958	  4986	  5080	  5134	  5377	  5431	  5904	  6380	  6424	  6483	  6511	  7380	  7465
ALTIM	    45	  8249	  8275	  8332#
ALTMGO	   364	  1634	  1682	  1720	  1913	  1916	  2909	  4556	  4646
ALU	   749
ALUFR	  5053	  5093	  5167	  5232	  5271	  5341#
ALUTO	  5055	  5095	  5169	  5234	  5273	  5342#
ANEXT	  4547#	  4616	  4743	  4936	  4962	  4989	  5131	  5198	  5216	  5294	  5435	  5487	  5488	  5509
	  5593	  5927	  5934	  5941	  5976	  5983	  5991
ARGFLG	   122#	   440	   443	   695	   703	   962	  1480	  1644	  1652	  1725	  1733	  1765	  2940	  2943
	  4568	  5214	  5507	  5642	  5685	  6061	  6108
ARGUM	   122#	   701	   971	  1031	  1046	  1233	  1274	  1395	  1397	  1491	  1590	  1596	  1650	  1731
	  3308	  3310	  3478	  3520	  3546	  3612	  3637	  3652	  3680	  3686	  3731	  3775	  3784	  3877
	  3917	  3947	  4043	  4125	  4126	  4131	  4199	  4204	  4345	  4359	  4398	  4478	  4488	  4575
	  4583	  4591	  4599	  4607	  5064	  5072	  5161	  5176	  5217	  5243	  5251	  5361	  5369	  5459
	  5473	  5510	  5536	  5544	  5653	  5696	  5741	  5751	  5814	  5824	  5885	  5886	  5891	  5896
	  5905	  5986	  5994	  6072	  6119	  6160	  6170	  6228	  6238	  6308	  6343	  6530	  6643	  6670
	  6727	  6732
BBPN0	  8669	  8679#
BBPN1	  8654	  8689#
BBPN2	  8700	  8710#
BBPNT	    48	  8650#
BBPNX	  8685	  8719#
BEGIN	 10393
BEXCAL	  8486	  8611#
BEXCHK	  8487	  8626#
BEXEC	    48	  8470#
BEXERR	  8489	  8490	  8491	  8492	  8496#
BEXEX1	  8478	  8483	  8497#
BEXJRS	  8488	  8597#
BEXSS0	  8534#	  8557
BEXSSC	  8485	  8507#
BEXSSS	  8484	  8505#                                                                                                    SEQ 0434
BFLAG	  8582	  8585	  8644#	  8665	  8696
BONETM	   171#	   171	   173	   413
BUFCOM	   123#	  6792	  9407	  9523
BUFF	    21	  6701	  6734	  6736	  7153	  9182	  9183	  9184	  9193	 10299#
BUFGEN	   123#	  6698	  9190
CADDR	    26	  4539#	  4564	  4628	  4632	  4930	  4947	  4949	  4977	  4981	  5002	  5014	  5030	  5037
	  5665	  5708	  5777	  5852	  6084	  6131	  6196	  6266	  6391	  6446	  6477	  6505	  6647	  6671
	  6674	  7227	  7266	  7707	  7729
CALL	  7595
CALMAR	  7517#	  7517	  7519	  7543
CALPAR	    25	  5010	  6092	  6273	  6481	  6509	  7238	  7374	  7515#
CBASE	   113#	   200
CBUF	    66	  6699	  9191	 10310#
CBUFSZ	  6699	  9191	 10310
CBUS	   751
CCMIC	  6554	  6555	  6622#
CCPN0	  9457	  9470#
CCPN2	  9472	  9488#
CCPN3	  9490	  9495#
CCPN4	  9493	  9518#
CCPNT	    54	  9442#
CCPNX	  9519	  9527#
CCSR	    55	  9338	  9384	  9424#	  9465
CCTAB1	  6580	  6589	  6601#
CCTAB3	  6567	  6569	  6579	  6588	  6618#
CCWPNT	   113#	  6760
CDERR	    55	  9409	  9429#	  9518
CEBUAD	  9333#	  9333	  9347
CEBUF	    49	  8513	  8587	  8643#	  8680	  8711
CEBUFA	    55	  9345	  9351	  9387	  9427#	  9471	  9483
CEBUFC	    55	  9346	  9350	  9352	  9426#	  9470	  9477
CEXCAC	  9149	  9303#
CEXCAL	  9148	  9287#
CEXCOM	  9151	  9403#
CEXEC	    54	  9131#
CEXERR	  9143	  9154	  9155	  9159#
CEXEX1	  9138	  9160#
CEXEXI	  9153	  9320#
CEXJRS	  9152	  9273#
CEXSRD	  9144	  9168#
CEXSRW	  9146	  9232#
CEXSTR	  9147	  9245#
CEXSWR	  9145	  9220#
CEXWA2	  9348	  9351#
CEXWA3	  9337	  9378#
CEXWA4	  9367	  9382#
CEXWAI	  9150	  9331#
CHDATA	   113#	  9368
CHINIT	   113#	  6700	  9192
CHKARG	   122#	   637	  1078	  1089	  1104	  1520	  1550	  1556	  1567	  2859	  3146	  3163	  3240	  3258
	  3263	  3814	  3858	  3887	  3899	  3929	  3987	  3998	  4008	  4074	  4223	  4297	  4320	  4343
	  4369	  4408	  5974	  6002	  6367	  6403	  6467	  6496	  6540	  6688	  6715	  6758	  6769	  6783
	  6803	  6817	  6875                                                                                             SEQ 0435
CHKCSR	   109#
CHKTS0	  7051	  7061#
CHKTS1	  7065	  7074#
CHKTST	  7021	  7047#
CHKTSX	  7057	  7069	  7073	  7075#
CIPORT	   243	   246	   248	  1172	  1178
CISEL	    66	   234	   244	  1183	  1211	  1248	  1250	  1260	  1265	  1295	  1300	  1318	  1325	  1339
	  1343	  1364	  1372	  1809	  1819	 10260#
CLEN	    55	  9170	  9187	  9194	  9210	  9222	  9234	  9405	  9431#	  9521
CLOGBF	  9372	  9373	  9436#	  9491
CLRBUF	   119#	   372	  2904	  4650	  4703	  4723
CLREBU	   109#	  7213
CMD0	  2865#	  2955
CMD1	  2874#	  2908	  2934	  2952	  2954	  2961
CMD2	  2882#
CMD3	  2905#	  2920	  2926	  2938
CMD3A	  2923#	  2937
CMD4	  2921	  2935#
CMDQUE	  2929	  2959#
CMDQUU	  2960	  2963#
CONFIG	   229	   633	  1128#	  3157
CONPNT	   639	  1187	  1196#	  3165
CONSW	 10374
CONVSX	   120#	  2631	  4713
CPAT	    55	  9173	  9185	  9207	  9225	  9237	  9240	  9406	  9430#	  9522
CRAMFR	  4470	  4479	  4493	  4504	  4515	  4537#	  4563	  4615	  4627	  4631	  4647	  4742	  4929	  4935
	  4946	  4961	  4976	  4988	  5929	  5978
CRAMPE	  8284
CRAMTO	  4468	  4480	  4489	  4499	  4517	  4538#	  4617	  4744	  4937	  4963	  4990	  5928	  5977
CSERR	  9365	  9371	  9390	  9428#	  9495
CSETCC	  9176#	  9228	  9241
CSHFLG	   160
CSHMEM	   161
CSREN0	  7632#	  7646
CSREN1	  7637	  7644#
CSREN2	  7634	  7645#
CSRENB	  7644	  7655#
CSRENG	    30	  7612	  7625#
CSRENS	  7627#	  7627	  7671	  7691
CSRENX	  7632	  7647#
CSRPNT	    30	  3862	  4060	  4090	  4310	  6531	  7602#
CSRPNX	  7609	  7613#
CSTATF	    55	  9366	  9434#
CSTWRD	    66	  9372	 10312#
CTIME	  9425#
CTRAN	  9175	  9186	  9195	  9202	  9227	  9239	  9404	  9432#	  9520
CURTIM	   119#	  1691
CWORDL	    26	  4541#	  4561	  4610	  4625	  4774	  4776	  4778	  4780	  4782	  4784	  4813	  4815	  4817
	  4819	  4821	  4823	  4927	  4953	  4983	  5006	  5035	  5666	  5669	  5709	  5712	  5778	  5781
	  5853	  6085	  6090	  6093	  6132	  6197	  6267	  6271	  6274	  6393	  6412	  6417	  6453	  6474
	  6502	  6645	  6651	  6672	  6675	  7244	  7259	  7270	  7709	  7731
CWORDR	    26	  4542#	  4562	  4613	  4626	  4786	  4788	  4790	  4792	  4794	  4796	  4798	  4800	  4802
	  4804	  4806	  4808	  4825	  4827	  4829	  4831	  4833	  4835	  4837	  4839	  4841	  4843	  4845     SEQ 0436
	  4847	  4928	  4954	  4984	  5007	  5042	  5667	  5670	  5672	  5710	  5713	  5715	  5779	  5782
	  5785	  5854	  5856	  6086	  6091	  6094	  6133	  6198	  6268	  6272	  6414	  6420	  6454	  6475
	  6503	  6646	  6652	  6673	  6676	  7258	  7260	  7272
D1LIT	 10392#
DACRAM	  3197	  4444#
DBCRAM	  3196	  4436#
DBPNT	  3252	  6724#
DBPNT0	  6735#	  6748
DBPNT1	  6740	  6745#
DBREA0	  6068#	  6100
DBREAK	  3221	  6061#
DC1ST	  4526#	  4526	  4557	  4559	  4637	  4640
DCBR0	  6159	  6169	  6175#
DCBR1	  6196#	  6206
DCBRK	  3223	  6151#
DCCOD1	  6551#	  6570
DCCOD2	  6553	  6574#
DCCOD3	  6576#	  6581
DCCOD4	  6578	  6583#
DCCOD5	  6585#	  6590
DCCOD6	  6587	  6591#
DCCODE	  3234	  6539#
DCLEAR	  3176	  3997#
DCMAR0	  5740	  5750	  5756#
DCMAR1	  5777#	  5792
DCMAR2	  5784	  5790#
DCMARK	  3218	  5732#
DCODPB	  4734	  4813#
DCOLDB	  4682	  4774#
DCOM0	  4477	  4487	  4493#	  5930	  5979
DCOM1	  4526#
DCOM3A	  4673	  4678	  4707#
DCOMA0	  4656#	  4693
DCOMA1	  4659#	  4729	  4737
DCOMA2	  4681	  4686#	  4706	  4726
DCOMA3	  4674	  4687#	  4690	  4709
DCOMA4	  4715	  4733#
DCOMA5	  4710	  4735#
DCOMAA	  4669	  4675#	  4701
DCOMAG	  4629	  4637#
DCOMAL	  4531	  4631#	  4749
DCOMAX	  4661	  4697	  4741#
DCOMDB	  4530	  4625#	  4748
DCOMDE	  4529	  4553#	  4618
DCOMEX	  4528	  4946#	  4964
DCOMEZ	  4960	  4965#
DCOMGO	  4422	  4430	  4438	  4446	  4454	  4462	  4467#
DCOML0	  4976#	  4991
DCOMLI	  4533	  4974#
DCOMLX	  4987	  4992#
DCOMPA	  3255	  6782#
DCOMSG	  4686	  4753#
DCOMZE	  4532	  4927#	  4938                                                                                             SEQ 0437
DCONI	  3210	  3898#
DCONI1	  3901#	  3904
DCONO	  3211	  3911#
DCONO1	  3917#	  3920
DCONT	  3180	  4296#
DCWPNT	  3253	  6757#
DDALU	  3203	  5155#
DDALU0	  5161#	  5218	  5987
DDALUM	  5189	  5193	  5194	  5321#
DDALUX	  5215	  5222#
DDATI	  3212	  3928#
DDATI1	  3931#	  3933
DDATO	  3213	  3941#
DDATO1	  3947#	  3950
DDCRAM	  3195	  4428#
DDCSR	  3172	  3871#
DDEBU1	  4346	  4354#
DDEBUF	  3188	  4348#
DDELA0	  7149#	  7160
DDELAX	  7152	  7161#
DDELAY	  7143#	  9335
DDLOC0	  5459#	  5511	  5995
DDLOCM	  5486	  5489	  5613#
DDLOCS	  3207	  5453#
DDLOCX	  5508	  5515#
DDNEX0	  5958	  5959	  5960	  5961	  5962	  5963	  5973#
DDNEX1	  5964	  5965	  5966	  5983#
DDNEX2	  5967	  5968	  5969	  5991#
DDNEXT	  3156	  5950#
DDRAR	  3192	  4389#
DDTAB	  5951	  5953	  5958#
DEALU	  3202	  5053#
DEALU0	  5063	  5071	  5077#	  5937
DEALU1	  5106#	  5139
DEALUM	  5109	  5118	  5119	  5315#
DEALUX	  5136	  5143#
DEBTIM	   119#	  7116	  7120	  7147	  7151
DEBUG1	   215	   384	  2888
DEBUG2	   217	   386	  2890
DEBUG3	   388	  2892
DEBUG4	   219	   390	  2894
DEBUG5	   221	   392	  2896
DECRAM	  3198	  4420#
DECSR	  3171	  3857#
DECVER	     9	  7795	  7919
DECYN	   122#	  3565	  3589
DEEBUF	  3187	  4319#
DELAR	  3191	  4368#
DELOC0	  5360	  5368	  5374#	  5944
DELOC1	  5404#	  5437
DELOCM	  5415	  5416	  5605#
DELOCS	  3206	  5350#
DELOCX	  5433	  5441#                                                                                                    SEQ 0438
DENE0	  5895#	  5908
DENEX0	  5912	  5913	  5914	  5915	  5916	  5917	  5927#
DENEX1	  5918	  5919	  5920	  5934#
DENEX2	  5921	  5922	  5923	  5941#
DENEXT	  3155	  5885#
DESTA0	  6016#	  6036
DESTAK	  3235	  6001#
DESTAX	  6018	  6040#
DESTAY	  6025	  6028	  6041#
DESTKM	  6006	  6047#
DETAB	  5900	  5902	  5912#
DEVREL	   114#	  1080	  1106
DEVREQ	   114#	   486	  1158	  1165	  1843	  2868
DFEXA0	  6500#	  6514
DFEXAM	  3231	  6495#
DFEXAX	  6501	  6512	  6516#
DFILLN	  3236	  6636#
DFILLP	  3237	  6663#
DFILN0	  6647#	  6654
DFILP0	  6674#	  6679
DFLAG	  4421#	  4421	  4429	  4437	  4445	  4453	  4461	  4527	  4679	  4746	  5097	  5179	  5275	  5394
	  5476	  5568	  5899	  5901	  5950	  5952
DFLIS0	  6472#	  6486
DFLIST	  3230	  6466#
DFLISX	  6473	  6484	  6488#
DFLOA0	  6373#	  6383
DFLOAD	  3228	  6366#
DFLOAX	  6374	  6381	  6385#
DFVER0	  6410#	  6427
DFVERF	  3229	  6402#
DFVERR	  6422	  6440#
DFVERX	  6411	  6425	  6429#
DFVERY	  6444	  6457#
DHELP	  3144	  3300#
DHELP0	  3318#	  3322
DHELP1	  3318	  3345#
DIINIT	  3248	  6874#
DIPRIN	  3238	  6816#
DISGO	   499	   620#	   650	   662
DISLIS	   448	   468	   551#
DISP0	   356#	   359	   423	   428	   438	   475	   485	   489	   495	   506	   513
DISP0A	   425#	   437
DISP0B	   424	   435#
DISP1	   447#
DISP2	   407	   451	   499#
DISPAT	   259	   348#
DISPD	   457	   479#
DISPE	   434	   482	   493#
DISPR	   458	   465#
DISPX	   461	   504#
DISQUE	   433	   511#
DISQUU	   512	   515#
DLBR0	  6227	  6237	  6243#                                                                                            SEQ 0439
DLBR1	  6266#	  6294
DLBR2	  6275	  6289#
DLBRK	  3224	  6219#
DLBRX	  6291	  6295#
DLCRAM	  3199	  4460#
DLGPNT	  3254	  6768#
DLIST	  3227	  6337#
DLMAR0	  5813	  5823	  5829#
DLMAR1	  5852#	  5877
DLMAR2	  5858	  5872#
DLMARK	  3219	  5805#
DLMARX	  5874	  5878#
DLOAD	  3226	  6302#
DMARK	  3216	  5642#
DMARK0	  5649#	  5677
DRBR0	  6115#	  6139
DRBRK	  3222	  6108#
DRCRAM	    25	  4633	  4951	  4978	  5028#	  5668	  5711	  5780	  5855	  6087	  6134	  6199	  6269	  6392
	  6416	  7708
DRDINC	  6692#	  6718
DRDINI	  3250	  6687#
DRESET	  3175	  3986#
DRMAR0	  5692#	  5720
DRMARK	  3217	  5685#
DROUT1	  3961#	  3978
DROUTN	  3214	  3957#
DSADDR	  3521	  3527	  3532	  3842#	  4010	  4038
DSDATA	  3547	  3552	  3843#	  4012	  4046
DSET	  3152	  3469#
DSETA1	  3519	  3530#	  3711	  4014
DSETA2	  3531#
DSETAD	  3500	  3516#
DSETB1	  3730	  3740#
DSETC1	  3545	  3550#
DSETC2	  3551#	  3712	  4015
DSETCS	  3501	  3542#
DSETD1	  3636	  3659#
DSETD2	  3660#	  3716
DSETD3	  3664	  3668#
DSETDA	  3505	  3633#
DSETDX	  3645	  3654#
DSETE1	  3588	  3596#
DSETE2	  3597#	  3714
DSETEB	  3503	  3585#
DSETF0	  3685	  3688#
DSETF1	  3679	  3692#
DSETF2	  3693#	  3717
DSETFA	  3510	  3724#
DSETFN	  3506	  3676#
DSETHE	  3509	  3813#
DSETHL	  3817	  3820#
DSETL1	  3611	  3621#
DSETL2	  3622#	  3715                                                                                                     SEQ 0440
DSETLN	  3504	  3608#
DSETP1	  3564	  3572#
DSETP2	  3573#	  3713
DSETPL	  3507	  3768#
DSETPP	  3774	  3783	  3792#	  3805
DSETPR	  3502	  3561#
DSETPX	  3803	  3806#
DSETUP	   114#	  1130
DSETWH	  3508	  3706#
DSINIT	  3185	  4007#
DSPAT	  3643	  3661	  3771	  3850#	  6693
DSPEAR	  7761	  7823
DSSCLR	  3184	  4016	  4222#
DSSPN0	  4207#	  4214
DSSPNT	  3183	  4198#
DSST0	  4138#	  4178
DSST1	  4168#
DSSTEP	  3181	  4122#
DSSTX	  4152	  4157	  4177	  4182#
DSTAR0	  4042#
DSTART	  3178	  4035#
DSTOP	  3179	  4073#
DSTOP1	  4083	  4088#
DSTPAT	  3653	  3666	  3851#	  6694
DSWIT	  3270	  3271	  3272	  3273	  3274	  3275	  3276	  3277	  3278	  3279	  3280	  3281	  3282	  3283
	  3284	  3285	  3286	  3287	  3288	  3289	  3290	  3291	  3292	  3293	  3294	  6802#
DSWORD	  3618	  3623	  3848#	  6696	  6724	  6791
DTRAC0	  4120	  4125#
DTRACE	  3182	  4118#
DTRANS	  3233	  6524#
DTRFLG	  4119	  4122#	  4122	  4133	  4151	  4163	  4171
DWCRAM	    25	  4614	  4741	  4931	  5000#	  5675	  5718	  5788	  6098	  6137	  6202	  6377	  6653	  6677
	  7732
DWRINI	  3251	  6714#
DZALU	  3204	  5232#
DZALU0	  5242	  5250	  5256#
DZALU1	  5284#	  5305
DZALUM	  5285	  5289	  5290	  5335#
DZALUX	  5302	  5309#
DZCRAM	  3200	  4452#
DZCSR	  3173	  3886#
DZEBUF	  3189	  4342#
DZLOC0	  5535	  5543	  5549#
DZLOC1	  5577#	  5595
DZLOCM	  5578	  5579	  5627#
DZLOCS	  3208	  5525#
DZLOCX	  5591	  5599#
DZRAR	  3193	  4407#
EADDR	   110#
EBUS	   747
ENATST	  1473#	  1473	  1477#	  1477	  1508	  1510
ENDFIX	    10
ERESET	   109#	  3989                                                                                                     SEQ 0441
ERFLG	   371	   758	  1875	  2577	  2582	  2590	  2876	  6917	  7586	  7815	  7832	  7900	  8914	  8928
	  8935	  8937	  8951	  8971	  9323	  9353	  9370	  9378	  9393	  9411	  9412	  9929	  9970	  9975
	  9977	 10004	 10010	 10015	 10025	 10343	 10352
ERRCNT	  1848#	  1848	  1880	  1888
ERRPC	  6918
EXE	 10373#
EXEN	 10369#
FGETW	   120#	  6373	  6410	  6472	  6500
FINCMD	   120#	   422	  2919	  4671	  4676
FINECH	    31	   166#	   166	   415	   416	  1583	  1585	  2912	  2913
FINIT	   120#	  6370	  6407	  6469	  6498
FINPUT	    31	   165#	   165	   414	   421	  1619	  1767	  2911	  2918	  4670	  4675
FIOFF	   120#	   362	   474	   494	   974	   980	  1037	  1052	  1239	  1280	  1401	  1482	  1494	  1500
	  1601	  1941	  2907	  2933	  2951	  3314	  3476	  3482	  3525	  3616	  3641	  3650	  3735	  3789
	  3796	  3875	  3915	  3945	  4050	  4053	  4078	  4081	  4144	  4147	  4301	  4304	  4325	  4352
	  4357	  4393	  4497	  4502	  4506	  4554	  4573	  4581	  4589	  4597	  4605	  4643	  4705	  4725
	  5081	  5086	  5090	  5159	  5164	  5174	  5259	  5264	  5268	  5378	  5383	  5387	  5457	  5463
	  5471	  5552	  5557	  5561	  5644	  5656	  5687	  5699	  5759	  5764	  5768	  5832	  5837	  5841
	  6024	  6027	  6063	  6075	  6110	  6122	  6178	  6183	  6187	  6246	  6251	  6255	  6306	  6311
	  6317	  6322	  6341	  6346	  6352	  6357	  6528	  6640	  6667	  6789
FLDLIS	  4720	  4852#
FLTCH0	  2575#	  2581
FLTCH1	  2574	  2588#	  2594
FLTCHK	  1874	  2569#
FLTCHX	  2582	  2587	  2598#
FLTCLS	 10287#
FLTHA0	  2539#	  2561
FLTHAN	  1901	  1906	  2537#
FLTNUM	  2576	  2589	  3737	  3741	  3743	 10288#
FLTPNT	   777#	   777	   779	  1849
FMTTYP	   170#	   170
FOARG	   120#
FORPNT	   120#	   187	   289	  1962
GENCCW	   113#	  6704	  9199
GETLOG	   113#	  6772
GETPPN	  7766	  7887	  7932#
HAVECI	   115#	 10380
HAVENI	   115#	 10381
IADDR	    58	  9825	  9854	  9856	  9869	 10047#	 10076	 10085
IADDRF	  9951	 10021	 10048#	 10079	 10088
ICSR	    58	  9942	 10018	 10049#	 10091
IDEBUG	    18	   147#	   147	   213	   222	   382	   393	   844	   851	  1873	  1891	  1904	  1907	  2543
	  2886	  2897
IEBUF	  9960	  9965	 10062#	 10094
IEXCAC	  9663	  9909#
IEXCAL	  9662	  9893#
IEXEC	    57	  9644#
IEXERR	  9656	  9668	  9669	  9673#
IEXEX1	  9651	  9674#
IEXEXI	  9667	  9926#
IEXJRS	  9665	  9879#
IEXSDE	  9658	  9717#
IEXSEI	  9661	  9787#                                                                                                    SEQ 0442
IEXSEX	  9657	  9682#
IEXSID	  9659	  9752#
IEXSIN	  9660	  9823#
IEXSTR	  9666	  9849#
IEXWA0	  9957	  9972	  9985#
IEXWA1	  9988	 10000#
IEXWA2	 10002	 10009#
IEXWA5	  9941	 10015#
IEXWA6	 10005	 10011	 10016#
IEXWAI	  9664	  9937#
IEXWRG	  9959	  9964	 10035#
IFLAG	    58	  9698	  9701	  9733	  9736	  9768	  9771	  9804	  9807	  9830	  9839	  9955	 10000	 10051#
	 10138	 10144	 10154
IIADR	  9684	  9693	  9704	  9719	  9728	  9739	  9754	  9763	  9774	  9789	  9799	  9810	  9971	  9973
	 10055#	 10177	 10199	 10221
IIDEPA	  9689	  9727	  9759	  9794	  9836	 10061#	 10218	 10233
IIDEPC	  9688	  9725	  9742	  9758	  9793	  9835	  9976	  9981	 10060#	 10217	 10227
IIEXAA	  9692	  9724	  9757	  9798	  9834	  9961	  9966	  9968	 10059#	 10196	 10211
IIEXAC	  9690	  9707	  9723	  9756	  9792	  9813	  9833	  9969	 10058#	 10195	 10205
IIINCA	  9687	  9722	  9762	  9797	  9832	  9979	 10057#	 10174	 10189
IIINCC	  9686	  9721	  9760	  9777	  9795	  9831	  9974	 10056#	 10173	 10183
IINTPC	  9987	  9995	 10054#	 10167
IIOPF	    58	 10052#	 10100	 10105	 10112	 10116	 10127	 10130	 10133
IIPN0	 10083	 10099#
IIPN1	 10138#
IIPN2	 10142	 10153	 10159#
IIPN3	 10103	 10161	 10172#
IIPN4	 10175	 10194#
IIPN5	 10197	 10216#
IIPNT	    57	 10068#
IIPNX	 10219	 10238#
IITYPE	  9986	  9993	 10053#	 10159
INDLIS	    35	   539#	  1538	  1894	  2622	  2669	  6904	  7086
INHFLT	  1744
INITPD	   111#	  1093
INITPI	   111#	   257	   400	  6877	  9823
INTAPR	   112#	  6859
INTCON	   112#	  6856
INTCSR	   112#	  6862
INTEND	   112#	  3245	  9851
INTNUM	   112#	  3243	  3244	  3246	  6821	  6832	  6835	  6921	  9850	  9985	  9989	 10003
INTPC	   112#	  6846	  9994
INTTIM	   112#	  6849
INTTYP	   112#	  6837	  6865	  9992	 10009
INTUSE	   112#	  6852
IPACLR	   109#	  3961	  4000	  7573	  7704	  7724	  8263	  8294	  8840	  9245	  9849
IPAER	  9507
IPASRT	   110#	  4048	  4299
IPASST	   110#	  4142	  6022
IPASTP	   110#	  4076
IPRIN0	  6821#	  6825
IPRINI	  6823	  6832#
IPRINT	    62	  6819#                                                                                                    SEQ 0443
IPRINX	  6822	  6826#
ISOPN0	   786#	   790	   794
ISOPN1	   788	   795#
ISOPN2	   800#	   806
ISOPN3	   804#	   810	   816	   820
ISOPN4	   812	   817#
ISOPN5	   802	   824#
ISOPN6	   838#	   853
ISOPN7	   845	   850#
ISOPN8	   840	   857#
ISOPNT	   763	   774#	  1813	  1826	  1944
ISOPNX	   795	   858#
ISTOP	   109#	  4042	  4130	  4322	  4354	  4371	  4395	  4410	  4522	  5661	  5704	  5773	  5846	  6012
	  6080	  6127	  6192	  6260	  6324	  6372	  6409	  6642	  6669	  7212
ITERAT	   223
ITIME	 10050#
ITRCNT	   224
LARG2	  5177	  5207	  5474#	  5474	  5500
LASARG	   122#	  3654	  3706
LASDTC	  6692	  6707#	  6785
LAST	  7595
LAXER	  9505
LDCRAM	   108#	  5012	  5019	  7241	  7254
LDCSR	   108#	  3878	  3890	  3918	  4373	  4397	  4412	  5126	  5206	  5210	  5299	  5423	  5425	  5499
	  5503	  5586	  5588	  6562	  6564	  8074	  8271	  8290	  8301	  8526	  8541	  8553	  8851	  8942
	  8953	  9180	  9260	  9343	  9358	  9866	  9948	 10039	 10041
LDEBUF	   108#	  3948	  4360
LDEBUG	    17	   146#	   146	   212	   220	   381	   391	  2885	  2895	  7562
LDRAR	   108#	  4399	  4413	  5005	  5017	  5033	  5040	  5124	  5204	  5297	  5421	  5497	  5584	  6560
	  7231	  7251	  8069	  8269	  8536	  8844	  9178	  9252	  9858	 10037
LGWC	  9509
LOCFR	  5350	  5390	  5465	  5485	  5525	  5564	  5633#
LOCTO	  5352	  5392	  5466	  5527	  5566	  5634#
LOGBUF	   113#	  6771
LOGPNT	   113#	  6773	  9492
LOOPGM	   273
LOOPTS	  1637
MAPNEW	   148
MBARG	   702#	   702	  1759
MBARGF	   694#	   694	   704	  1757
MBCN	   485	  1139	  1148	  1157	  1164	  1244	  1285	  1306	  1329	  1332	  1355	  1357	  1359	  1363
	  1366	  1375	  1377	  1379	  1839	  1841	  1842	  1868	  2867	  3159	  3168	  6935	  6939	  7564
	  7568	  7577	  7579	 10382
MBUS	   729	   752	  1756
MCBUS	  7064	  7070
MCNVER	     9	  7795	  7919
MCPUS	   156#	   156
MDEBUG	    15	   144#	   144	   211	   218	   379	   387	  2883	  2891	  7590
MLIST	  6359	  7353#
MLIST0	  7357#	  7381
MLISTX	  7359	  7382#
MLNUM	  6328	  7287#	  7287
MLOAD0	  7219#	  7279                                                                                                     SEQ 0444
MLOAD1	  7256	  7262	  7265	  7277#
MLOADN	    25	  5120	  5195	  5291	  5417	  5490	  5580	  6007	  6556	  7186#	  7574
MLOADX	  7221	  7283#
MLOADY	    25	  6325	  7188#
MMPROC	  7064	  7066
MONTYP	   196
MPER	  9497
MPROC	   750
MPRUN	  5125	  5205	  5298	  5422	  5498	  5585	  6561	  8053	  8056	  8270	  8286	  8293	  8520	  8523
	  8525	  8551	  8846	  8849	  9179	  9254	  9257	  9860	  9863	 10038
MSG	  7594
MULFLG	   395#	   395	  2899	  4959	  4965	  4992	  5135	  5143	  5432	  5441	  5895	  5898	  7466
MULINI	   396#	   396	  2900	  4974	  5907
MVCOM	  7191	  7195	  7200#
MVFLAG	  7189#	  7189	  7194	  7240	  7242	  7253	  7255
MVNUM	  6406	  6433	  6442	  7200#	  7200	  7263	  7283	  7302	  7306
MVPNT	  7286	  7302#	  7595
MVPNT1	  7313#	  7334
MVPNTW	  7319	  7323	  7329	  7340#
MVPNTX	  7331	  7336#
MVREP	  7186#	  7186	  7188	  7285
MWBADR	  7206	  7207	  7267	  7292#	  7313
MWBLAC	  7271	  7294#	  7321	  7326
MWBLCO	  7268	  7293#	  7317	  7325
MWBRAC	  7208	  7273	  7296#	  7322	  7328
MWBRCO	  7269	  7295#	  7318	  7327
MWDQUE	  4699	  4874#
NCBUS	   871#	   925	   926	   927	   928	   929	   930	   931	   932	   933	   934	   935	   936	   937
	   938	   939	   940	   941	   942	   943	   944	   945	   946	   947	   948
NDCB	  7067	  7071
NDMP	  7067
NEBUS	   869#	   876	   877	   878	   879	   880	   881	   882	   883	   884	   885	   886	   887	   888
	   889	   890	   891	   892	   893	   894	   895	   896	   897	   898	   899
NERROR	 10289#
NETBAD	   789	   867#	  1845	  1846	  1847	  2540
NETDES	   827	   842	   876#	  2545
NETPNT	   782	   783	   784	   791	   792	   807	   808	   813	   814	   817	   818	   819	   826	   839
	   847	   866#
NEXM	  9503
NIPORT	   238	   241	   248	  1172	  1174
NISEL	    66	   233	   239	  1182	  1201	  1245	  1247	  1252	  1257	  1287	  1292	  1307	  1314	  1330
	  1336	  1342	  1360	  1371	  1807	  1817	 10259#
NMBUS	   872#
NMPROC	   870#	   903	   904	   905	   906	   907	   908	   909	   910	   911	   912	   913	   914	   915
	   916	   917	   918	   919	   920	   921
NOTWC0	  9501
NSSTEP	    42	  8045	  8063	  8088	  8161#	  8182	  8199	  8510	  8530	  8564	  8662	  8693
ODELA0	  7118#	  7121
ODELA1	  7108	  7128#
ODELAY	    30	  7107#	  8276	  8926	  9939
OPRSEL	   231	   263	   351	   357	   360	   406	   505	  1750	  1787	  1946
OVN	  9513
P	  1667	  1670	  1671	  1672	  2659	  2660	  2861	  3160	  3169	  6948	  7023	  7024	  7074	  7197     SEQ 0445
	  7284	  7576	  7582	  7591	  8105	  8106	  8107	  8123	  8139	  8154	  8327	  8588	  8589	  8590
	  8606	  8621	  8635	  8859	  8873	  8889	  8904	  8915	  8972	  8973	  8974	  9213	  9266	  9282
	  9298	  9313	  9324	  9394	  9395	  9396	  9413	  9414	  9415	  9710	  9745	  9780	  9816	  9842
	  9872	  9888	  9904	  9919	  9930	 10026	 10027	 10028
PARFLG	    26	  3567	  3569	  3574	  3576	  3845#	  5009	  5673	  5674	  5676	  5716	  5717	  5719	  5786
	  5787	  5789	  6096	  6097	  6099	  6135	  6136	  6138	  6200	  6201	  6203	  6375	  6376	  6378
	  6480	  6508	  7725	  7726	  7735
PASCNT	   202	   279	   285	   408
PASPNT	   264	   279#
PAT	  3771	  3772	  3773	  3781	  3782	  3792	  3793	  3794	  3799	  3800	  3804	  6693	  9185	  9240
	  9406	  9522
PAT1	  3772#	  3772	  3776#	  3776	  3781	  3787	  3792
PAT2	  3773#	  3773	  3782	  3785	  3786	  3804
PATCH	 10320#
PATCH0	 10319#
PATPNT	   123#	  3662	  3799
PCMD	  2875#	  2875	  2939	  2947
PFSET	   114#	   206
PGMNAM	    19	   129#
PMODE	    37	   225	   394	  1781	  2898	 10291#
PNTCRM	  4985	  6482	  7375	  7394#
PNTDEV	   119#	   825	  1956	  6901
PNTENB	   186	   370	  2878
PNTHST	  4164	  4207	  4245#
PNTWD	  4955	  6451	  6455	  6510	  7479#
PORSEL	    66	  1800	  1805	  1814	  1840	 10261#
PORTCI	    66	  1148	  1164	  1332	  1357	  1363	  1377	  1841	  6939	  7568	  7579	 10258#
PORTNI	    66	  1139	  1157	  1329	  1355	  1359	  1375	  1839	  6935	  7564	  7577	 10257#
PRSFLG	  3591	  3593	  3598	  3600	  3846#	  4139
PTEST	   483	  1354#	  2865
PTEST0	  1356	  1358	  1362	  1367#
PTESTP	   484	  1370#	  2866
PTESTX	  1374	  1379#
PVPAGI	   149
QADDR	    55	  9248	  9250	  9422#	  9450	  9459
QADDRF	    55	  9361	  9423#	  9453	  9462
RALUB	  5054#	  5054	  5065	  5077	  5088	  5092	  5107	  5137	  5166	  5188	  5233	  5244	  5256	  5266
	  5270	  5284	  5303	  5935	  5984
RALUE	  5056#	  5056	  5066	  5073	  5083	  5094	  5138	  5168	  5235	  5245	  5252	  5261	  5272	  5304
	  5936	  5985
RANCNT	  1688#	  1688	  1701	  1707
RANDBS	  1663
RANGEN	  1660#	  1697
RANNUM	  1662#	  1662	  1665	  1692
RDCRAM	   108#	  5034	  5041	  7243	  7257
RDCSR	   108#	  1140	  1149	  3860	  3901	  4058	  7157	  8280	  8291	  8295	  8927	  9336	  9940
RDEBUF	   108#	  3931	  4330	  5127	  5426	  8302	  8545	  8943	  9344	 10042
RDLAR	   108#	  4374	  6565	  8078	  8309	  8554	  8954	  9359	  9949
REL	   115#	 10372
RELIAB	  1857
REQ1	   115#	 10370
REQ2	   115#	 10371
RESCR0	  7729#	  7734                                                                                                     SEQ 0446
RESCRM	  5146	  5223	  5310	  5444	  5516	  5600	  6042	  6596	  7722#
RESQAV	  7159	  9257
RFROM	  4469	  4516	  4545#
RLOCB	  5351#	  5351	  5362	  5374	  5385	  5389	  5400	  5404	  5410	  5414	  5434	  5526#	  5526	  5537
	  5549	  5559	  5563	  5577	  5592	  5942	  5992
RLOCE	  5353#	  5353	  5363	  5370	  5380	  5391	  5436	  5528#	  5528	  5538	  5545	  5554	  5565	  5594
	  5943	  5993
RSTART	  1925
RTO	  4467	  4518	  4544#
RUNTME	   119#	   291	  1690	  1964	  7115	  7119	  7146	  7150
S1	  7775#	 10327
S2	  7895#	 10328
SAADDR	    42	  8082	  8097	  8103	  8164#	  8189	  8206	  8558	  8573	  8583	  8674	  8705
SAVADD	  1780#	  1780	  1795	  1853
SAVCMD	  2861#	  2861
SAVCR0	  7707#	  7712
SAVCRL	  7705	  7727	  7742#
SAVCRM	  5102	  5184	  5280	  5399	  5481	  5573	  6005	  6546	  7702#
SAVFLD	  4711#	  4711	  4712	  4719
SAVHST	  4149	  4158	  4266#
SAVMAX	   465#	   465	   471
SAVRAR	  7230#	  7230	  7249
SB	   138#
SCOOFF	   123#	  6920
SCOSW	   123#	  8172	  8357	  8652	  8999	  9444	  9488	 10070	 10172	 10194	 10216
SDATA	   110#	  4013	  4047	  4089	  4140	  4189	  4281	  4309	  6019	  6923	  8052	  8057	  8073	  8519
	  8524	  8540	  8550	  8845	  8850	  9253	  9258	  9259	  9859	  9864	  9865
SDEBUG	    16	   145#	   145	   380	   389	  2884	  2893	  8032	  8086	  8115	  8129	  8145	  8497	  8562
	  8598	  8612	  8627	  8823	  8852	  8865	  8879	  8895	  8911	  8960	  9160	  9200	  9261	  9274
	  9288	  9304	  9320	  9382	  9674	  9699	  9734	  9769	  9805	  9837	  9867	  9880	  9894	  9910
	  9926	 10016
SEADDR	    42	  8047	  8094	  8104	  8163#	  8186	  8203	  8512	  8570	  8584	  8667	  8671	  8698	  8702
SELLAR	  4372	  6563	  8056	  8552	  8849	  8952	  9257	  9357	  9863	  9947
SELTST	  1526	  1865	  7011#
SELTSX	  7016	  7028#
SEN11L	  7831	  7878	  7888	  7893	  7922#
SENT10	  7767	  7769	  7773	  7786#	 10330
SENT11	  7828	  7829	  7848	  7866	  7883	  7892	  7909#	 10338	 10347
SEQ	   748
SETEBU	   109#	  4323	  4355
SETLAR	   109#	  8058	  8264	  8307
SETVEC	   111#	   258	   401	  1094	  6878	  9824
SEXCAL	  8021	  8128#
SEXCHK	  8022	  8144#
SEXEC	    41	  8006#
SEXERR	  8024	  8025	  8026	  8027	  8031#
SEXEX1	  8013	  8018	  8032#
SEXJRS	  8023	  8114#
SEXSS0	  8067#	  8081
SEXSSC	  8020	  8042#
SEXSSS	  8019	  8040#
SHWC	  9511
SINCYC	  5125	  5298	  8056	  8523	 10038                                                                             SEQ 0447
SLAST	   110#	  4045	  4183	  4275
SLDATA	  4141#	  4141	  4279
SNARKF	   114#
SNEXT	   110#	  4011	  4044	  4085	  4186	  4277	  6021	  6035	  6922	  8041	  8042	  8067	  8080	  8253
	  8267	  8506	  8507	  8534	  8556	  8834	  8839	  8841	  8854	  9249	  9855
SPCHK1	  7766#	 10335
SPCHK2	  7828#	 10344	 10355
SPEAR1	   189#	   189	  7753	  7779
SPEAR2	    36	   190#	   190	  7810	  7902
SPRE1X	  7762	  7780#
SPRE2A	  7811	  7820#
SPRE2B	  7867#	  7870
SPRE2C	  7832	  7882#
SPRE2X	  7824	  7903#
SPREP1	   253	  7750#
SPREP2	    36	   759	  7803#
SRTDDT	  1092	 10349	 10385
SRTLIS	   650#	  1007
SSADDR	    42	  8043	  8091	  8162#	  8179	  8196	  8508	  8567	  8659	  8690
SSADRL	  4234#	  4246	  4276
SSADRN	  4235#	  4249	  4278
SSCSRL	  4236#	  4280
SSCSRN	  4227	  4237#	  4252	  4282
SSLOC	  4162	  4205	  4225	  4226	  4232#	  4268	  4270	  4272
SSNUM	  4213	  4233#	  4255	  4269	  4274
SSPN1	  8174	  8195#
SSPNT	    41	  8170#
SSPNX	  8191	  8211#
START	    20	   139#	  1111	  1926	 10376
STARTA	    20	   237	   257#	   271	   274
STARTB	   236	   261	   269	   275#
STCLOK	   119#	   201
STEST	 10326#
STEST0	 10332	 10337#
STEST1	 10340	 10346#
STESTP	 10331	 10339	 10348	 10357#	 10362
STRT1	   175	   194#
SWCHPT	   121#
SWCOM	   121#	  1571	  6808
SWITT	   121#	   214	   230	   262	   265	   272	   350	   356	   383	   504	  1171	  1636	  1737	  1786
	  1828	  1855	  1924	  1945	  2887	  6894	  7063	  7094	  7607	  7760	  7822
SWPTAB	   181
SWRGT	   121#	   179
SWSTP	  3268#	  6807
SWSTT	   662#	  1570
TADDR	    52	  8833	  8838	  8842	  8981#	  9001
TADDRF	    52	  8956	  8968	  8982#	  9011	  9020
TAKFIL	    37	  1591	  1597	  1602	  1605	  1608	  1613	  1616	  1624#
TALU	  1011	  1017	  2106#	  2636	  2637	  2650	  7855
TCBUS	  1013	  1019	  2179#	  2638	  2639	  2652	  7857
TCOMP	  8923	  8933	  8936	  8987#	  9006
TCSRF	    52	  8929	  8962	  8983#	  9028
TDENA	  1509	  1511	  1531	  6909	  6928                                                                             SEQ 0448
TDISP1	   990	  1523	  1696	  1698	  1746	  1982#
TDISP2	  1748	  2235#
TEBUFA	    52	  8944	  8950	  8965	  8986#	  9034	  9046
TEBUFC	    52	  8945	  8949	  8985#	  9033	  9040
TEBUS	  1009	  1981#	  2635	  2648	  7853
TEND	   992	  1020	  1696	  2227#	  2639
TEXCAC	  8813	  8894#
TEXCAL	  8812	  8878#
TEXCH0	  8947	  8952#
TEXCHK	  8814	  8922#
TEXCO0	  8835	  8841#
TEXCON	  8811	  8840#
TEXEC	    51	  8797#
TEXERR	  8809	  8818	  8822#
TEXEX1	  8804	  8823#
TEXEXI	  8816	  8911#
TEXJRS	  8815	  8864#
TEXSST	  8817	  8831#
TEXSTR	  8810	  8836#
TFAIL	  8924	  8931	  8934	  8989#	  9008	  9017
TLERR	  7587	  7594#
TLOAD	    25	  7562#
TLOADE	  7575	  7585#
TLOADX	  7563	  7566	  7570	  7582#
TMODE	 10307#
TMP1	  1475#	  1475	  1479#	  1479	  1487	  3681	  3688
TMPROC	  1012	  1018	  2143#	  2637	  2638	  2651	  7856
TPAT	    31	  6695	 10308#
TRACE	    30	  6891#
TRACE0	  6896	  6917#
TRACET	  6895
TRACEX	  6929	  6931	  6953#
TSEQ	  1010	  1016	  2047#	  2635	  2636	  2649	  7854
TSLOD1	    37	   373#	   373	  6938	  7565	  7578	 10383
TSLOD2	    37	   374#	   374	  6942	  7569	  7580	 10384
TSTA1	    87#	  2106	  2354
TSTA10	    87#	  2113	  2361
TSTA11	    88#	  2114	  2362
TSTA12	    88#	  2115	  2363
TSTA13	    88#	  2116	  2364
TSTA14	    88#	  2117	  2365
TSTA15	    88#	  2118	  2366
TSTA16	    88#	  2119	  2367
TSTA17	    88#	  2120	  2368
TSTA2	    87#	  2107	  2355
TSTA20	    88#	  2121	  2369
TSTA21	    89#	  2122	  2370
TSTA22	    89#	  2123	  2371
TSTA23	    89#	  2124	  2372
TSTA24	    89#	  2125	  2373
TSTA25	    89#	  2126	  2374
TSTA26	    89#	  2127	  2375
TSTA27	    89#	  2128	  2376                                                                                             SEQ 0449
TSTA3	    87#	  2108	  2356
TSTA30	    89#	  2129	  2377
TSTA31	    90#	  2130	  2378
TSTA32	    90#	  2131	  2379
TSTA33	    90#	  2132	  2380
TSTA34	    90#	  2133	  2381
TSTA35	    90#	  2134	  2382
TSTA36	    90#	  2135	  2383
TSTA37	    90#	  2136	  2384
TSTA4	    87#	  2109	  2357
TSTA40	    90#	  2137	  2385
TSTA41	    91#	  2138	  2386
TSTA42	    91#	  2139	  2387
TSTA5	    87#	  2110	  2358
TSTA6	    87#	  2111	  2359
TSTA7	    87#	  2112	  2360
TSTADD	    35	   459	   982	  1063	  1524	  1699	  1749	  1779	  1796	  1854	  1884	  2655	  6978	  7013
	  7860	 10275#
TSTAL0	  1935	  1940#
TSTALT	  1633	  1719	  1933#
TSTC1	    99#	  2179	  2452
TSTC10	    99#	  2186	  2482
TSTC11	   100#	  2187	  2454
TSTC12	   100#	  2188	  2486
TSTC13	   100#	  2189	  2487
TSTC14	   100#	  2190	  2488
TSTC15	   100#	  2191	  2489
TSTC16	   100#	  2192	  2490
TSTC17	   100#	  2193	  2491
TSTC2	    99#	  2180	  2453
TSTC20	   100#	  2194	  2492
TSTC21	   101#	  2195	  2493
TSTC22	   101#	  2196	  2494
TSTC23	   101#	  2197	  2495
TSTC24	   101#	  2198	  2496
TSTC25	   101#	  2199	  2497
TSTC26	   101#	  2200	  2498
TSTC27	   101#	  2201	  2499
TSTC3	    99#	  2181	  2477
TSTC30	   101#	  2202	  2500
TSTC31	   102#	  2203	  2501
TSTC32	   102#	  2204	  2502
TSTC33	   102#	  2205	  2503
TSTC34	   102#	  2206	  2504
TSTC35	   102#	  2207	  2505
TSTC36	   102#	  2208	  2506
TSTC37	   102#	  2209	  2507
TSTC4	    99#	  2182	  2478
TSTC40	   102#	  2210	  2511
TSTC41	   103#	  2211	  2512
TSTC42	   103#	  2212	  2513
TSTC43	   103#	  2213	  2514
TSTC44	   103#	  2214	  2515                                                                                             SEQ 0450
TSTC45	   103#	  2215	  2516
TSTC46	   103#	  2216	  2517
TSTC47	   103#	  2217	  2518
TSTC5	    99#	  2183	  2479
TSTC50	   103#	  2218	  2519
TSTC51	   104#	  2219	  2520
TSTC52	   104#	  2220	  2521
TSTC53	   104#	  2221	  2522
TSTC54	   104#	  2222	  2523
TSTC55	   104#	  2223	  2524
TSTC56	   104#	  2224	  2525
TSTC57	   104#	  2225	  2526
TSTC6	    99#	  2184	  2480
TSTC60	   104#	  2226	  2527
TSTC7	    99#	  2185	  2481
TSTCLS	    35	   467	  1008	  1537	  1893	  2625	  2634	  2647	  2672	  6903	  6993	  7085	  7836	  7852
	 10270#
TSTCNT	  1864	  1920	 10286#
TSTD0	  1726	  1737#
TSTD1	  1758	  1764#	  1772
TSTD10	  1881	  1888#
TSTD11	  1872	  1875	  1912#
TSTD12	  1867	  1870	  1922#
TSTD2	  1760	  1766	  1769	  1775#
TSTD3	  1653	  1700	  1751	  1779#
TSTD4	  1795#	  1834
TSTD5	  1804#	  1821	  1844	  1866	  1928
TSTD6	  1816	  1826#
TSTD7	  1822	  1839#
TSTD8	  1863#	  1929
TSTD9	  1868#	  1921
TSTDDT	   643	  1088#	  3150
TSTDE0	  2631#	  2675
TSTDEB	   632	  2858#
TSTDEC	   456	   972	  1492	  2614#	  6309	  6344
TSTDED	  2624	  2667#
TSTDEE	  2632	  2661#	  2671
TSTDER	  2643	  2660#
TSTDIA	   642	  1077#	  1947
TSTDIS	   754	  1719#
TSTDL0	  1526#	  1532	  1543
TSTDS0	  1487#	  1513
TSTDSA	   647	  1473#
TSTDSL	   648	  1519#
TSTE1	    70#	  1982	  2236
TSTE10	    70#	  1989	  2246
TSTE11	    71#	  1990	  2250
TSTE12	    71#	  1991	  2251
TSTE13	    71#	  1992	  2347
TSTE14	    71#	  1993	  2252
TSTE15	    71#	  1994	  2253
TSTE16	    71#	  1995	  2254
TSTE17	    71#	  1996	  2258                                                                                             SEQ 0451
TSTE2	    70#	  1983	  2237
TSTE20	    71#	  1997	  2259
TSTE21	    72#	  1998	  2260
TSTE22	    72#	  1999	  2396
TSTE23	    72#	  2000	  2264
TSTE24	    72#	  2001	  2265
TSTE25	    72#	  2002	  2397
TSTE26	    72#	  2003	  2398
TSTE27	    72#	  2004	  2399
TSTE3	    70#	  1984	  2238
TSTE30	    72#	  2005	  2400
TSTE31	    73#	  2006	  2401
TSTE32	    73#	  2007	  2402
TSTE33	    73#	  2008	  2403
TSTE34	    73#	  2009	  2404
TSTE35	    73#	  2010	  2348
TSTE36	    73#	  2011	  2349
TSTE37	    73#	  2012	  2350
TSTE4	    70#	  1985	  2239
TSTE40	    73#	  2013	  2391
TSTE41	    74#	  2014	  2392
TSTE42	    74#	  2015	  2405
TSTE43	    74#	  2016	  2406
TSTE44	    74#	  2017	  2407
TSTE45	    74#	  2018	  2408
TSTE46	    74#	  2019	  2409
TSTE47	    74#	  2020	  2410
TSTE5	    70#	  1986	  2240
TSTE50	    74#	  2021	  2411
TSTE51	    75#	  2022	  2412
TSTE52	    75#	  2023
TSTE53	    75#	  2024	  2277
TSTE54	    75#	  2025	  2235
TSTE55	    75#	  2026	  2417
TSTE56	    75#	  2027	  2418
TSTE57	    75#	  2028	  2278
TSTE6	    70#	  1987	  2244
TSTE60	    75#	  2029	  2440
TSTE61	    76#	  2030	  2441
TSTE62	    76#	  2031	  2442
TSTE63	    76#	  2032	  2443
TSTE64	    76#	  2033	  2444
TSTE65	    76#	  2034	  2445
TSTE66	    76#	  2035
TSTE67	    76#	  2036
TSTE7	    70#	  1988	  2245
TSTE70	    76#	  2037	  2446
TSTE71	    77#	  2038	  2447
TSTE72	    77#	  2039	  2448
TSTE73	    77#	  2040	  2413
TSTE74	    77#	  2041	  2414
TSTE75	    77#	  2042	  2415
TSTE76	    77#	  2043	  2416                                                                                             SEQ 0452
TSTEBF	  5125	  5424	  8300	  8523	  8525	  8551	  8941	  9342	 10040
TSTEN0	  1476	  1480#
TSTENA	   646	  1477#
TSTEOP	  1811	  1952#
TSTEPP	  1785#	  1785	  1790	  1953
TSTEXE	   621	   622	   623	   624	   625	   626	   746#
TSTEXG	   731	   754#
TSTFLG	    35	  1507	  1530	  6908	  6927	  6981	  6990	  6992	 10274#
TSTGET	  1064	  1505	  6319	  6354	  6975#	  7020	  7861
TSTHIG	  1889	  2573	  6987	 10282#
TSTHL0	  1405#	  1409
TSTHLC	  1398	  1412#
TSTHLL	  1405	  1420#
TSTHLP	   645	  1388#
TSTHLT	   644	  1103#
TSTINH	    37	   775	   961	  1522	  1643	  1687	  1743	  1745	  1747	  1871	 10281#
TSTL1	   983#	   983	   991	  1014	  1023	  1039	  1043	  1059	  1066
TSTL2	   960	   984#	   984	   993	  1021	  1044	  1055	  1061
TSTL3	  1015#	  1015	  1054
TSTLI0	   967#	   986
TSTLI1	   963	   990#
TSTLIS	   652	   959#
TSTLOW	  1902	  2586	  6989	 10283#
TSTLSS	   985	   994	  1030	  1045	  1059#	  1068
TSTLST	   653	   654	   655	   656	   657	  1007#
TSTMB0	   696	   708#
TSTMBU	   627	   694#
TSTMIC	    36	  6320	  6355	  6936	  6940	  6983	 10276#
TSTMSK	    36	   730	   753	  1755	  7055	 10277#
TSTMUL	   774	  1642	  1686	  1724	  1927	  1943	  1952	  7050	 10280#
TSTNAM	    35	  6985	  7098	  7862	 10269#
TSTNUM	    35	  1540	  1896	  2633	  6906	  6991	  7088	  7842	  7845	  7858	 10271#	 10354
TSTOFF	    36	  6893	 10284#
TSTPC	    35	  1506	  1869	  1882	  6979	  7049	 10273#
TSTPN0	  7091	  7094#
TSTPNT	    30	  1065	  7083#
TSTPNX	  7096	  7099#
TSTRA0	  1696#	  1702
TSTRAA	  1681	  1706#
TSTRAN	   628	  1681#
TSTREL	  1859	  1863	 10285#
TSTREP	    36	  1635	  1683	  1721	  1827	  1934	  1937	  1958	 10278#
TSTREQ	  1641	  1651	  1685	  1722	  1723	  1732	  1764	  1775	  1788	  1833	 10279#
TSTS1	    79#	  2047	  2288
TSTS10	    79#	  2054	  2295
TSTS11	    80#	  2055	  2296
TSTS12	    80#	  2056	  2297
TSTS13	    80#	  2057	  2298
TSTS14	    80#	  2058	  2299
TSTS15	    80#	  2059	  2300
TSTS16	    80#	  2060	  2301
TSTS17	    80#	  2061	  2302
TSTS2	    79#	  2048	  2289                                                                                             SEQ 0453
TSTS20	    80#	  2062	  2303
TSTS21	    81#	  2063	  2304
TSTS22	    81#	  2064	  2305
TSTS23	    81#	  2065	  2306
TSTS24	    81#	  2066	  2307
TSTS25	    81#	  2067	  2308
TSTS26	    81#	  2068	  2309
TSTS27	    81#	  2069	  2310
TSTS3	    79#	  2049	  2290
TSTS30	    81#	  2070	  2311
TSTS31	    82#	  2071	  2312
TSTS32	    82#	  2072	  2313
TSTS33	    82#	  2073	  2314
TSTS34	    82#	  2074	  2315
TSTS35	    82#	  2075	  2316
TSTS36	    82#	  2076	  2317
TSTS37	    82#	  2077	  2318
TSTS4	    79#	  2050	  2291
TSTS40	    82#	  2078	  2319
TSTS41	    83#	  2079	  2320
TSTS42	    83#	  2080	  2321
TSTS43	    83#	  2081	  2322
TSTS44	    83#	  2082	  2323
TSTS45	    83#	  2083	  2324
TSTS46	    83#	  2084	  2325
TSTS47	    83#	  2085	  2326
TSTS5	    79#	  2051	  2292
TSTS50	    83#	  2086	  2327
TSTS51	    84#	  2087	  2328
TSTS52	    84#	  2088	  2329
TSTS53	    84#	  2089	  2330
TSTS54	    84#	  2090	  2331
TSTS55	    84#	  2091	  2332
TSTS56	    84#	  2092	  2333
TSTS57	    84#	  2093	  2334
TSTS6	    79#	  2052	  2293
TSTS60	    84#	  2094	  2335
TSTS61	    85#	  2095	  2336
TSTS62	    85#	  2096	  2337
TSTS63	    85#	  2097	  2338
TSTS64	    85#	  2098	  2339
TSTS65	    85#	  2099	  2340
TSTS66	    85#	  2100	  2341
TSTS67	    85#	  2101	  2342
TSTS7	    79#	  2053	  2294
TSTS70	    85#	  2102	  2343
TSTSAV	   439#	   439	   447	   479
TSTSE0	  1233#
TSTSEG	   249	  1232	  1306#
TSTSEL	   634	   641	  1229#	  3158	  3167
TSTSEX	   232	  1273	  1302	  1320	  1336#
TSTSG0	  1309	  1318#
TSTSP0	  1645	  1652#                                                                                                    SEQ 0454
TSTSPC	   460	  1633#
TSTSSW	   664	   665	   666	   667	   668	   669	   670	   671	   672	   673	   674	   675	   676	   677
	   678	   679	   680	   681	   682	   683	   684	   685	   686	   687	   688	  1566#
TSTSUB	    35	  6919	  6977	  7090	  8048	  8514	  8922	  9331	  9403	  9937	 10272#
TSTSWI	   659	  1549#
TSTSWP	   660	  1555#
TSTTA0	  1589	  1595	  1601#
TSTTAK	   630	  1585#	  3153
TSTTAN	   631	  1583#	  3154
TSTU1	    93#	  2143	  2269
TSTU10	    93#	  2150	  2422
TSTU11	    94#	  2151	  2423
TSTU12	    94#	  2152	  2424
TSTU13	    94#	  2153	  2425
TSTU14	    94#	  2154	  2458
TSTU15	    94#	  2155	  2459
TSTU16	    94#	  2156	  2460
TSTU17	    94#	  2157	  2461
TSTU2	    93#	  2144	  2270
TSTU20	    94#	  2158	  2462
TSTU21	    95#	  2159	  2463
TSTU22	    95#	  2160	  2464
TSTU23	    95#	  2161	  2465
TSTU24	    95#	  2162	  2466
TSTU25	    95#	  2163	  2467
TSTU26	    95#	  2164	  2468
TSTU27	    95#	  2165	  2469
TSTU3	    93#	  2145	  2271
TSTU30	    95#	  2166	  2470
TSTU31	    96#	  2167	  2471
TSTU32	    96#	  2168	  2472
TSTU33	    96#	  2169	  2473
TSTU34	    96#	  2170	  2429
TSTU35	    96#	  2171	  2430
TSTU36	    96#	  2172	  2431
TSTU37	    96#	  2173	  2432
TSTU4	    93#	  2146	  2272
TSTU40	    96#	  2174	  2436
TSTU41	    97#	  2175	  2284
TSTU5	    93#	  2147	  2273
TSTU6	    93#	  2148	  2282
TSTU7	    93#	  2149	  2283
TTIME	  8984#
TTNBRF	  1773
TTPN0	  9007	  9009	  9017#
TTPN1	  9013	  9018	  9025#
TTPN2	  9026	  9033#
TTPNT	    51	  8997#
TTPNX	  9035	  9051#
TTYYES	   119#	  1311	  1322
TUSER	  6911	  6930
TWORD	    31	  6697	  6702	 10306#
TXALL	  7594	  7595                                                                                                     SEQ 0455
TXTINH	  7095	  7608	  8173	  8358	  8367	  8387	  8653	  9025	  9036	  9038	  9042	  9044	  9448	  9456
	  9473	  9475	  9479	  9481	  9489	 10074	 10082	 10102	 10179	 10181	 10185	 10187	 10201	 10203
	 10207	 10209	 10223	 10225	 10229	 10231
UDEBUG	    14	   143#	   143	   210	   216	   378	   385	  1134	  2882	  2889	  7750	  7803
UNAME	   120#	  3687	  3689	  3694	  3697
USER	   266	  1829	  1922	  7107	  7752	  7804	  8054	  8521	  8847	  9255	  9861
USRION	   114#	  1131
UUT	    66	  1842	  1868	 10262#
WRDERR	   123#	  6793
XWORDL	  6413#	  6413	  6418#	  6418	  6449
XWORDR	  6415#	  6415	  6421#	  6421	  6450
XXW	   426#	   426	  2924#	  2924	  4688#	  4688
XXX	  1710#	  1710	  3148#	  3148	  6955
ZAL	  1975#
ZCB	  1977#
ZEB	  1973#
ZMP	  1976#
ZSE	  1974#
$$TOGG	   188	 10375
$ARG2	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
$B	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
$CHR	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
$GARG	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
$ONETM	   138	   155	   172	   174	  7062	 10379
$TTCHR	   429	   435	   441	  2927	  2935	  2941	  4651	  4665	  4691	  4707	  4735
$TWCNT	   427	  2925	  4689
%ADDR	  5315#	  5315	  5321#	  5321	  5323	  5323#	  5325	  5325#	  5327	  5327#	  5329	  5329#	  5335#	  5335
	  5605#	  5605	  5607	  5607#	  5613#	  5613	  5615	  5615#	  5617	  5617#	  5619	  5619#	  5621	  5621#
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624	  6624#	  6626	  6626#	  6628	  6628#
%ML	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
%MR	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
.CGOT	   122#	  1569	  6806
.CLOSE	   119#	  1107
.COMM	   122#	   449	   481	  1237	  1278	  1399	  2623	  2670	  2949	  3312	  3480	  4721
.CONI	   111#
.CONO	   111#
.DARG	   122#	   698	  1028	  1041	  1647	  1728	  3609	  4127	  4201	  5156	  5240	  5248	  5358	  5366
	  5454	  5533	  5541	  5888	  6729
.DATAI	   111#
.DATAO	   111#	  5208	  5501
.DBCMD	   480	  2948	  2990#                                                                                            SEQ 0456
.DBDIS	   488	  2953	  3143#	  3268
.HLCMD	  3311	  3325#
.INPNT	   114#	  2874
.INWD1	   114#	   412
.ISWT	   121#	  1552	  3260
.JBSA	 10378
.LADDR	  5315	  5321	  5335	  5605	  5613	  5627	  6047	  6622
.LAND	  5335	  5627
.LCCER	  5323	  5615
.LCENA	  5323	  5615	  6624
.LCJP	  5323	  5615	  6624
.LCONT	  5327	  5619
.LCRTN	  6047
.LD	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621
	  5627	  6047	  6622	  6624	  6626	  6628
.LJ	  5315	  5321	  5323	  5325	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5621	  5627	  6622
	  6624	  6626	  6628
.LJMAP	  5315	  5321	  5325	  5329	  5335	  5605	  5607	  5613	  5617	  5621	  5627	  6622	  6626	  6628
.LLDLM	  5621	  5627
.LMGC	  5315	  5327	  5607	  5619	  5621
.LOENA	  5315	  5607	  5621	  5627
.LOR	  5315	  5327	  5605	  5607	  5619	  5621
.LRDLM	  5605
.LS0A	  5315	  5335	  5607	  5621	  5627
.LSD0	  5327	  5605	  5619
.LSELE	  5315	  5327	  5607	  5619
.LSWIT	   121#
.MAND	  5335	  5627
.MCCER	  5323	  5615
.MCENA	  5323	  5615	  6624
.MCJP	  5323	  5615	  6624
.MCONT	  5327	  5619
.MCRTN	  6047
.MD	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621
	  5627	  6047	  6622	  6624	  6626	  6628
.MJ	  5315	  5321	  5323	  5325	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5621	  5627	  6622
	  6624	  6626	  6628
.MJMAP	  5315	  5321	  5325	  5329	  5335	  5605	  5607	  5613	  5617	  5621	  5627	  6622	  6626	  6628
.MLDLM	  5621	  5627
.MMGC	  5315	  5327	  5607	  5619	  5621
.MOENA	  5315	  5607	  5621	  5627
.MOR	  5315	  5327	  5605	  5607	  5619	  5621
.MRDLM	  5605
.MS0A	  5315	  5335	  5607	  5621	  5627
.MSD0	  5327	  5605	  5619
.MSELE	  5315	  5327	  5607	  5619
.OARG	   122#	  3517	  3543	  3634	  3647	  3728	  3769	  3779	  3872	  3912	  3942	  3958	  4036	  4349
	  4390	  4475	  4485	  4570	  4578	  4586	  4594	  4602	  5061	  5069	  5171	  5468	  5650	  5693
	  5738	  5748	  5811	  5821	  6069	  6116	  6157	  6167	  6225	  6235	  6525	  6637	  6664
.PIOFF	   111#	  9943
.PION	   111#	 10024
.PNTOC	   121#
.RAND	  5335	  5627                                                                                                     SEQ 0457
.RCCER	  5323	  5615
.RCENA	  5323	  5615	  6624
.RCJP	  5323	  5615	  6624
.RCONT	  5327	  5619
.RCRTN	  6047
.RD	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621
	  5627	  6047	  6622	  6624	  6626	  6628
.RESET	   120#	   194
.RJ	  5315	  5321	  5323	  5325	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5621	  5627	  6622
	  6624	  6626	  6628
.RJMAP	  5315	  5321	  5325	  5329	  5335	  5605	  5607	  5613	  5617	  5621	  5627	  6622	  6626	  6628
.RLDLM	  5621	  5627
.RMGC	  5315	  5327	  5607	  5619	  5621
.ROENA	  5315	  5607	  5621	  5627
.ROR	  5315	  5327	  5605	  5607	  5619	  5621
.RRDLM	  5605
.RS0A	  5315	  5335	  5607	  5621	  5627
.RSD0	  5327	  5605	  5619
.RSELE	  5315	  5327	  5607	  5619
.RSWIT	   121#	   180
.SARG	   122#	   968	  1230	  1271	  1392	  1488	  1587	  1593	  3305	  3473	  3562	  3586	  3677	  3683
	  6303	  6338
.STCMD	  3479	  3487#
.STDIS	  3484	  3500#
.SWCHP	   121#	  1558	  3265
ALTCHK	   426	  1772	  2924	  4688
CALC	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621     SEQ 0458
	  5627	  6047	  6622	  6624	  6626	  6628
CONCAT	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621
	  5627	  6047	  6622	  6624	  6626	  6628
DISMS	  7131
ENDUUO	   270
EOPUUO	   275
FIELD	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621
	  5627	  6047	  6622	  6624	  6626	  6628
FMSG	   419	   470	  1936	  1939	  2916	  4566	  4753	  4754	  4755	  4756	  4757	  4758	  4759	  4760
	  4761	  4762	  4763	  4764	  4765	  4766	  4767	  4768	  4769	  4770
FMSGC	   466	   976	  1033	  1048	  1310	  1321	  1496	  1604	  1612	  1706	  1770	  1933	  4558	  6313
	  6348
FMSGCD	   352	   493	   636	   697	   967	   973	  1027	  1040	  1077	  1088	  1091	  1103	  1229	  1238
	  1255	  1263	  1270	  1279	  1290	  1298	  1400	  1474	  1478	  1481	  1493	  1519	  1549	  1555
	  1566	  1586	  1592	  1646	  1727	  2858	  2869	  2932	  2950	  3145	  3162	  3239	  3257	  3262
	  3313	  3475	  3481	  3516	  3524	  3542	  3561	  3585	  3608	  3615	  3633	  3640	  3646	  3649
	  3656	  3676	  3682	  3708	  3724	  3768	  3778	  3788	  3795	  3813	  3857	  3871	  3874	  3886
	  3898	  3911	  3914	  3928	  3941	  3944	  3957	  3986	  3997	  4007	  4035	  4049	  4052	  4057
	  4073	  4077	  4080	  4088	  4118	  4123	  4143	  4146	  4200	  4222	  4296	  4300	  4303	  4308
	  4319	  4324	  4342	  4348	  4351	  4356	  4368	  4389	  4392	  4407	  4474	  4484	  4495	  4501
	  4505	  4569	  4572	  4577	  4580	  4585	  4588	  4593	  4596	  4601	  4604	  4702	  4722	  4874
	  4875	  4876	  4877	  4890	  4891	  4892	  4893	  4912	  4919	  4920	  4921	  5060	  5068	  5079
	  5085	  5089	  5155	  5158	  5163	  5170	  5173	  5239	  5247	  5258	  5263	  5267	  5357	  5365
	  5376	  5382	  5386	  5453	  5456	  5462	  5467	  5470	  5532	  5540	  5551	  5556	  5560	  5643
	  5649	  5655	  5686	  5692	  5698	  5737	  5747	  5758	  5763	  5767	  5810	  5820	  5831	  5836
	  5840	  5887	  5973	  6001	  6023	  6026	  6062	  6068	  6074	  6109	  6115	  6121	  6156	  6166
	  6177	  6182	  6186	  6224	  6234	  6245	  6250	  6254	  6302	  6305	  6310	  6321	  6337	  6340
	  6345	  6356	  6366	  6402	  6466	  6495	  6524	  6527	  6539	  6636	  6639	  6663	  6666	  6687
	  6714	  6728	  6757	  6768	  6782	  6788	  6802	  6816	  6874
FMSGD	  1388	  1610	  1618	  1709	  1940	  3300	  3469	  4649	  4878	  4882	  4886	  4894	  4908	  4913
FSELEC	  1603
GET	   426	   858	   860	  1188	  1190	  1221	  1223	  1367	  1381	  1673	  1675	  1710	  1966	  2556
	  2562	  2598	  2661	  2663	  2924	  3148	  4258	  4283	  4285	  4688	  5020	  5022	  5043	  5045
	  5676	  5719	  5789	  6095	  6099	  6138	  6203	  6378	  6457	  6459	  6809	  6826	  6828	  6946
	  6948	  6953	  6955	  6994	  6996	  7028	  7030	  7075	  7077	  7099	  7101	  7122	  7124	  7132
	  7134	  7161	  7163	  7193	  7288	  7290	  7336	  7338	  7383	  7385	  7468	  7470	  7494	  7496
	  7545	  7547	  7581	  7585	  7613	  7615	  7647	  7649	  7713	  7715	  7735	  7736	  7738	  7780
	  7782	  7813	  7815	  7903	  7905	  7939	  7941	  8034	  8036	  8108	  8110	  8121	  8123	  8137
	  8139	  8155	  8157	  8211	  8213	  8317	  8319	  8402	  8404	  8499	  8501	  8591	  8593	  8604
	  8606	  8619	  8621	  8636	  8638	  8719	  8721	  8825	  8827	  8857	  8859	  8871	  8873	  8887
	  8889	  8905	  8907	  8916	  8918	  8975	  8977	  9051	  9053	  9162	  9164	  9214	  9216	  9267
	  9269	  9280	  9282	  9296	  9298	  9314	  9316	  9325	  9327	  9397	  9399	  9416	  9418	  9527
	  9529	  9676	  9678	  9711	  9713	  9746	  9748	  9781	  9783	  9817	  9819	  9843	  9845	  9873
	  9875	  9886	  9888	  9902	  9904	  9920	  9922	  9931	  9933	 10029	 10031	 10238	 10240
GETJI	  7937
GO	   194	   201	   206	   214	   229	   230	   232	   239	   244	   249	   253	   257	   258	   259
	   262	   264	   265	   272	   291	   350	   356	   362	   372	   383	   400	   401	   417	   422
	   449	   456	   460	   474	   481	   483	   484	   486	   488	   494	   499	   504	   633	   634
	   637	   639	   698	   754	   759	   763	   825	   968	   972	   974	   980	   985	   994	  1028
	  1037	  1041	  1052	  1064	  1065	  1078	  1080	  1089	  1092	  1093	  1094	  1104	  1106	  1107
	  1130	  1131	  1140	  1142	  1149	  1151	  1158	  1165	  1171	  1175	  1179	  1187	  1230	  1237
	  1239	  1252	  1260	  1271	  1278	  1280	  1287	  1295	  1311	  1322	  1392	  1394	  1399	  1401
	  1482	  1488	  1492	  1494	  1500	  1505	  1520	  1526	  1534	  1550	  1552	  1556	  1558	  1567     SEQ 0459
	  1571	  1587	  1593	  1601	  1636	  1647	  1690	  1697	  1700	  1728	  1737	  1786	  1788	  1811
	  1813	  1826	  1828	  1843	  1855	  1865	  1869	  1874	  1892	  1901	  1906	  1924	  1941	  1944
	  1945	  1956	  1964	  2544	  2623	  2631	  2670	  2859	  2865	  2866	  2868	  2874	  2887	  2904
	  2907	  2914	  2919	  2933	  2949	  2951	  2953	  3146	  3157	  3158	  3163	  3165	  3167	  3240
	  3258	  3260	  3263	  3265	  3305	  3307	  3312	  3314	  3473	  3476	  3480	  3482	  3484	  3517
	  3525	  3543	  3562	  3565	  3586	  3589	  3609	  3616	  3634	  3641	  3647	  3650	  3654	  3677
	  3683	  3706	  3711	  3712	  3713	  3714	  3715	  3716	  3717	  3728	  3735	  3769	  3779	  3789
	  3796	  3814	  3858	  3860	  3862	  3872	  3875	  3878	  3887	  3890	  3899	  3901	  3912	  3915
	  3918	  3929	  3931	  3942	  3945	  3948	  3958	  3961	  3987	  3989	  3998	  4000	  4008	  4014
	  4015	  4016	  4036	  4042	  4048	  4050	  4053	  4058	  4060	  4074	  4076	  4078	  4081	  4090
	  4127	  4130	  4142	  4144	  4147	  4149	  4158	  4164	  4201	  4207	  4223	  4297	  4299	  4301
	  4304	  4310	  4320	  4322	  4323	  4325	  4330	  4343	  4349	  4352	  4354	  4355	  4357	  4360
	  4369	  4371	  4373	  4374	  4390	  4393	  4395	  4397	  4399	  4408	  4410	  4412	  4413	  4475
	  4485	  4497	  4502	  4506	  4522	  4554	  4570	  4573	  4578	  4581	  4586	  4589	  4594	  4597
	  4602	  4605	  4614	  4633	  4643	  4650	  4671	  4676	  4682	  4703	  4705	  4713	  4721	  4723
	  4725	  4734	  4741	  4931	  4951	  4955	  4978	  4985	  5005	  5010	  5012	  5017	  5019	  5033
	  5034	  5040	  5041	  5061	  5069	  5081	  5086	  5090	  5102	  5120	  5124	  5126	  5127	  5146
	  5156	  5159	  5164	  5171	  5174	  5184	  5195	  5204	  5206	  5208	  5210	  5223	  5240	  5248
	  5259	  5264	  5268	  5280	  5291	  5297	  5299	  5310	  5358	  5366	  5378	  5383	  5387	  5399
	  5409	  5417	  5421	  5423	  5425	  5426	  5444	  5454	  5457	  5463	  5468	  5471	  5481	  5490
	  5497	  5499	  5501	  5503	  5516	  5533	  5541	  5552	  5557	  5561	  5573	  5580	  5584	  5586
	  5588	  5600	  5644	  5650	  5656	  5661	  5668	  5675	  5687	  5693	  5699	  5704	  5711	  5718
	  5738	  5748	  5759	  5764	  5768	  5773	  5780	  5788	  5811	  5821	  5832	  5837	  5841	  5846
	  5855	  5864	  5888	  5903	  5974	  6002	  6005	  6007	  6012	  6022	  6024	  6027	  6042	  6063
	  6069	  6075	  6080	  6087	  6092	  6098	  6110	  6116	  6122	  6127	  6134	  6137	  6157	  6167
	  6178	  6183	  6187	  6192	  6199	  6202	  6225	  6235	  6246	  6251	  6255	  6260	  6269	  6273
	  6281	  6303	  6306	  6309	  6311	  6317	  6319	  6322	  6324	  6325	  6338	  6341	  6344	  6346
	  6352	  6354	  6357	  6359	  6367	  6370	  6372	  6373	  6377	  6392	  6403	  6407	  6409	  6410
	  6416	  6422	  6451	  6455	  6467	  6469	  6472	  6481	  6482	  6496	  6498	  6500	  6509	  6510
	  6525	  6528	  6531	  6540	  6546	  6556	  6560	  6562	  6564	  6565	  6596	  6637	  6640	  6642
	  6653	  6664	  6667	  6669	  6677	  6688	  6698	  6700	  6704	  6715	  6729	  6758	  6760	  6769
	  6772	  6773	  6783	  6789	  6792	  6803	  6808	  6817	  6823	  6875	  6877	  6878	  6894	  6901
	  7020	  7021	  7063	  7094	  7115	  7119	  7146	  7150	  7157	  7191	  7195	  7212	  7213	  7231
	  7238	  7241	  7243	  7251	  7254	  7257	  7286	  7319	  7323	  7329	  7374	  7375	  7465	  7573
	  7574	  7607	  7612	  7670	  7691	  7704	  7708	  7724	  7732	  7760	  7766	  7822	  7861	  7887
	  8058	  8069	  8074	  8078	  8087	  8116	  8130	  8136	  8146	  8152	  8263	  8264	  8269	  8271
	  8276	  8280	  8290	  8291	  8294	  8295	  8301	  8302	  8307	  8309	  8359	  8368	  8526	  8536
	  8541	  8545	  8553	  8554	  8563	  8599	  8613	  8618	  8628	  8633	  8840	  8844	  8851	  8853
	  8866	  8880	  8886	  8896	  8902	  8912	  8926	  8927	  8942	  8943	  8953	  8954	  8961	  9178
	  9180	  9190	  9192	  9199	  9201	  9245	  9252	  9260	  9262	  9275	  9289	  9295	  9305	  9311
	  9321	  9335	  9336	  9343	  9344	  9358	  9359	  9368	  9383	  9407	  9449	  9492	  9523	  9700
	  9735	  9770	  9806	  9823	  9824	  9838	  9849	  9858	  9866	  9868	  9881	  9895	  9901	  9911
	  9917	  9927	  9939	  9940	  9943	  9948	  9949	  9959	  9964	 10017	 10024	 10037	 10039	 10041
	 10042	 10075	 10116	 10329	 10331	 10337	 10339	 10346	 10348
GTAD	  7768	  7882
HALT	  1110
MFLD	  5315#	  5315	  5321#	  5321	  5323#	  5323	  5325#	  5325	  5327#	  5327	  5329#	  5329	  5335#	  5335
	  5605#	  5605	  5607#	  5607	  5613#	  5613	  5615#	  5615	  5617#	  5617	  5619#	  5619	  5621#	  5621
	  5627#	  5627	  6047#	  6047	  6622#	  6622	  6624#	  6624	  6626#	  6626	  6628#	  6628
MWORD	  5315	  5321	  5323	  5325	  5327	  5329	  5335	  5605	  5607	  5613	  5615	  5617	  5619	  5621
	  5627	  6047	  6622	  6624	  6626	  6628
PCRL	   292	   824	   857	  1060	  1069	  1220	  1346	  1527	  1535	  1908	  1965	  2905	  3530	  3534
	  3550	  3554	  3572	  3596	  3621	  3659	  3668	  3692	  3699	  3748	  3755	  3761	  3798	  3863     SEQ 0460
	  4061	  4091	  4170	  4191	  4257	  4334	  4948	  4966	  4980	  4993	  5144	  5442	  5878	  6040
	  6295	  6456	  6476	  6488	  6504	  6516	  6532	  6591	  6749	  6761	  6774	  6794	  6864	  6913
	  7314	  7364	  7382	  7638	  8033	  8498	  8824	  9161	  9675	 10361
PCRL2	  3806
PCRLF	   358	   418	   473	   979	  1036	  1051	  1499	  2915	  4311	  4560	  4641	  4644	  4695	  4700
	  4704	  4724	  6316	  6351
PFORCE	   417	   511	   708	   728	  1403	  2914	  2959	  3316	  3816
PGMINT	   195
PJRST	   731	  1527	  3745	  3751	  5930	  5937	  5944	  5979	  5987	  5995
PNT1	  7400	  7403	  7408	  7411	  7414	  7417	  7420	  7432	  7435	  7456	  7459	  7462	  7672	  7695
PNT4	  4086	  4184	  4187	  4247	  4250	  6447	  7315	  7482	  7484	  7489	  7491	  7493	  8180	  8187
	  8190	  8197	  8204	  8207	  8356	  8364	  8370	  8374	  8391	  8660	  8668	  8672	  8675	  8691
	  8699	  8703	  8706	  9002	  9012	  9021	  9451	  9454	  9460	  9463	 10077	 10080	 10086	 10089
PNT4F	  4565	  4648
PNTAL	  2554
PNTCIF	  1607	  1615
PNTDCF	  1708	  1938
PNTDEC	   287	  1960	  3624	  6329	  6387	  6431	  6434	  6743	  6850	  6853	  7309	  8089	  8183	  8200
	  8565	  8663	  8694
PNTHW	  3667	  4190	  4253	  4333	  5129	  5428	  6746	  6857	  6860	  6863	  7606	  8361	  8577	  8681
	  8684	  8712	  8715	  8963	  9029	  9041	  9047	  9385	  9466	  9478	  9484	  9702	  9737	  9772
	  9808	  9840	 10019	 10092	 10095	 10101	 10184	 10190	 10206	 10212	 10228	 10234	 10360
PNTMSF	   352	   419	   466	   470	   493	   636	   697	   967	   973	   976	  1027	  1033	  1040	  1048
	  1077	  1088	  1091	  1103	  1229	  1238	  1255	  1263	  1270	  1279	  1290	  1298	  1310	  1321
	  1391	  1400	  1474	  1478	  1481	  1493	  1496	  1519	  1549	  1555	  1566	  1586	  1592	  1604
	  1610	  1612	  1618	  1646	  1706	  1709	  1727	  1770	  1933	  1936	  1939	  1940	  2858	  2869
	  2916	  2932	  2950	  3145	  3162	  3239	  3257	  3262	  3304	  3313	  3472	  3475	  3481	  3516
	  3524	  3542	  3561	  3585	  3608	  3615	  3633	  3640	  3646	  3649	  3656	  3676	  3682	  3708
	  3727	  3768	  3778	  3788	  3795	  3813	  3857	  3871	  3874	  3886	  3898	  3911	  3914	  3928
	  3941	  3944	  3957	  3986	  3997	  4007	  4035	  4049	  4052	  4057	  4073	  4077	  4080	  4088
	  4118	  4123	  4143	  4146	  4200	  4222	  4296	  4300	  4303	  4308	  4319	  4324	  4342	  4348
	  4351	  4356	  4368	  4389	  4392	  4407	  4474	  4484	  4495	  4501	  4505	  4558	  4566	  4569
	  4572	  4577	  4580	  4585	  4588	  4593	  4596	  4601	  4604	  4638	  4649	  4702	  4722	  4753
	  4754	  4755	  4756	  4757	  4758	  4759	  4760	  4761	  4762	  4763	  4764	  4765	  4766	  4767
	  4768	  4769	  4770	  4874	  4875	  4876	  4877	  4881	  4885	  4889	  4890	  4891	  4892	  4893
	  4907	  4911	  4912	  4918	  4919	  4920	  4921	  5060	  5068	  5079	  5085	  5089	  5155	  5158
	  5163	  5170	  5173	  5239	  5247	  5258	  5263	  5267	  5357	  5365	  5376	  5382	  5386	  5453
	  5456	  5462	  5467	  5470	  5532	  5540	  5551	  5556	  5560	  5643	  5649	  5655	  5686	  5692
	  5698	  5737	  5747	  5758	  5763	  5767	  5810	  5820	  5831	  5836	  5840	  5887	  5973	  6001
	  6023	  6026	  6062	  6068	  6074	  6109	  6115	  6121	  6156	  6166	  6177	  6182	  6186	  6224
	  6234	  6245	  6250	  6254	  6302	  6305	  6310	  6313	  6321	  6337	  6340	  6345	  6348	  6356
	  6366	  6402	  6466	  6495	  6524	  6527	  6539	  6636	  6639	  6663	  6666	  6687	  6714	  6728
	  6757	  6768	  6782	  6788	  6802	  6816	  6874
PNTMSG	   284	   288	   512	   716	   722	   727	   829	   831	   833	   835	   836	   843	   846	   850
	  1198	  1199	  1200	  1202	  1203	  1204	  1205	  1206	  1207	  1208	  1209	  1210	  1212	  1213
	  1214	  1215	  1216	  1217	  1218	  1219	  1338	  1341	  1345	  1376	  1378	  1380	  1420	  1430
	  1442	  1447	  1455	  1465	  1740	  1741	  1742	  1892	  1898	  1899	  1905	  1957	  1961	  2960
	  3345	  3360	  3365	  3370	  3374	  3384	  3389	  3394	  3399	  3407	  3412	  3417	  3424	  3430
	  3436	  3444	  3452	  3462	  3531	  3551	  3573	  3575	  3577	  3597	  3599	  3601	  3622	  3625
	  3660	  3665	  3693	  3696	  3710	  3734	  3740	  3745	  3751	  3757	  3817	  3861	  4084	  4134
	  4150	  4153	  4156	  4173	  4176	  4182	  4185	  4188	  4206	  4248	  4251	  4254	  4331	  4375
	  4378	  4382	  4950	  4975	  4982	  5106	  5111	  5114	  5407	  5409	  5412	  5848	  5865	  6013
	  6014	  6030	  6031	  6032	  6033	  6034	  6262	  6282	  6327	  6330	  6385	  6388	  6389	  6395     SEQ 0461
	  6429	  6432	  6435	  6445	  6448	  6452	  6471	  6478	  6506	  6574	  6583	  6601	  6602	  6603
	  6604	  6605	  6606	  6607	  6608	  6609	  6610	  6611	  6612	  6613	  6614	  6615	  6616	  6655
	  6680	  6738	  6741	  6744	  6836	  6838	  6839	  6840	  6841	  6842	  6843	  6844	  6845	  6848
	  6851	  6854	  6855	  6858	  6861	  6866	  6900	  6902	  6910	  6912	  7092	  7097	  7098	  7308
	  7310	  7311	  7316	  7320	  7324	  7335	  7355	  7367	  7398	  7401	  7406	  7409	  7412	  7415
	  7430	  7433	  7438	  7439	  7440	  7441	  7442	  7443	  7444	  7445	  7446	  7447	  7448	  7449
	  7450	  7451	  7452	  7453	  7454	  7604	  7640	  7655	  7656	  7657	  7658	  7659	  7660	  7661
	  7662	  7663	  7664	  7665	  7666	  7667	  7668	  7669	  7670	  7676	  7677	  7678	  7679	  7680
	  7681	  7682	  7683	  7684	  7685	  7686	  7687	  7688	  7689	  7690	  7694	  8031	  8087	  8090
	  8093	  8096	  8116	  8130	  8146	  8178	  8181	  8184	  8185	  8188	  8195	  8198	  8201	  8202
	  8205	  8354	  8359	  8362	  8365	  8368	  8371	  8380	  8389	  8392	  8398	  8496	  8563	  8566
	  8569	  8572	  8575	  8599	  8613	  8628	  8658	  8661	  8664	  8666	  8670	  8673	  8679	  8682
	  8689	  8692	  8695	  8697	  8701	  8704	  8710	  8713	  8822	  8853	  8866	  8880	  8896	  8912
	  8961	  8964	  8967	  9000	  9010	  9019	  9027	  9037	  9039	  9043	  9045	  9159	  9201	  9203
	  9204	  9205	  9206	  9209	  9262	  9275	  9289	  9305	  9321	  9383	  9386	  9389	  9449	  9452
	  9458	  9461	  9464	  9474	  9476	  9480	  9482	  9496	  9498	  9500	  9502	  9504	  9506	  9508
	  9510	  9512	  9514	  9673	  9700	  9703	  9706	  9735	  9738	  9741	  9770	  9773	  9776	  9806
	  9809	  9812	  9838	  9868	  9881	  9895	  9911	  9927	 10017	 10020	 10075	 10078	 10084	 10087
	 10090	 10093	 10099	 10104	 10106	 10107	 10108	 10109	 10110	 10111	 10113	 10114	 10115	 10118
	 10120	 10122	 10123	 10124	 10125	 10126	 10129	 10132	 10140	 10143	 10145	 10146	 10147	 10148
	 10149	 10150	 10151	 10160	 10163	 10165	 10166	 10176	 10180	 10182	 10186	 10188	 10198	 10202
	 10204	 10208	 10210	 10220	 10224	 10226	 10230	 10232	 10357
PNTOCC	  4949	  4981	  5867	  6035	  6284	  6477	  6505	  7366	  7397	  7405	  7423	  7426	  7429
PNTOCF	   472	   978	  1035	  1050	  1498	  4683	  6315	  6350
PNTOCS	   848	  1541	  1897	  3533	  3553	  3742	  3747	  3754	  3760	  4155	  4175	  4256	  4377	  4381
	  5113	  5411	  6394	  6847	  6907	  7089	  7093	  7345	  8092	  8095	  8098	  8118	  8132	  8148
	  8568	  8571	  8574	  8601	  8615	  8630	  8855	  8868	  8882	  8898	  8966	  8969	  9208	  9211
	  9264	  9277	  9291	  9307	  9388	  9391	  9705	  9708	  9740	  9743	  9775	  9778	  9811	  9814
	  9870	  9883	  9897	  9913	 10022	 10128	 10131	 10134	 10155	 10168	 10178	 10200	 10222
PNTSIX	  1539	  1895	  3695	  3698	  6905	  7087
PNTSXF	   469	  1606	  1609	  1614	  1617
PSP	   849	  1542	  2555	  5868	  6285	  7418	  7421	  7424	  7427	  7436	  7457	  7460
PSPF	  4684
PUT	   780	   782	  1128	  1130	  1196	  1198	  1354	  1370	  1660	  1662	  1955	  2538	  2544	  2569
	  2614	  2616	  4245	  4266	  4268	  5000	  5002	  5028	  5030	  5673	  5716	  5786	  6088	  6096
	  6135	  6200	  6375	  6440	  6442	  6805	  6819	  6821	  6891	  6893	  6975	  6977	  7011	  7013
	  7047	  7049	  7083	  7085	  7112	  7114	  7128	  7130	  7143	  7145	  7190	  7203	  7205	  7304
	  7306	  7353	  7355	  7394	  7396	  7479	  7481	  7515	  7517	  7572	  7602	  7604	  7625	  7627
	  7702	  7704	  7722	  7724	  7725	  7758	  7760	  7809	  7820	  7822	  7932	  7934	  8006	  8008
	  8134	  8136	  8150	  8152	  8170	  8172	  8244	  8246	  8352	  8354	  8470	  8472	  8617	  8632
	  8650	  8652	  8797	  8799	  8884	  8886	  8900	  8902	  8997	  8999	  9131	  9133	  9293	  9295
	  9309	  9311	  9442	  9444	  9644	  9646	  9899	  9901	  9915	  9917	 10068	 10070	 10333	 10335
	 10341	 10343	 10350	 10352
RGET	   858	  1188	  1221	  1673	  2556	  2661	  4283	  5020	  5043	  6457	  6826	  6946	  6953	  6994
	  7028	  7075	  7099	  7122	  7132	  7161	  7288	  7336	  7383	  7468	  7494	  7545	  7613	  7647
	  7713	  7736	  7780	  7903	  7939	  8034	  8108	  8121	  8137	  8155	  8211	  8317	  8402	  8499
	  8591	  8604	  8619	  8636	  8719	  8825	  8857	  8871	  8887	  8905	  8916	  8975	  9051	  9162
	  9214	  9267	  9280	  9296	  9314	  9325	  9397	  9416	  9527	  9676	  9711	  9746	  9781	  9817
	  9843	  9873	  9886	  9902	  9920	  9931	 10029	 10238
RPUT	   780	  1128	  1196	  1660	  2544	  2614	  4266	  5000	  5028	  6440	  6819	  6891	  6975	  7011
	  7047	  7083	  7112	  7128	  7143	  7203	  7304	  7353	  7394	  7479	  7515	  7602	  7625	  7702
	  7722	  7758	  7820	  7932	  8006	  8134	  8150	  8170	  8244	  8352	  8470	  8650	  8797	  8884
	  8900	  8997	  9131	  9293	  9309	  9442	  9644	  9899	  9915	 10068	 10333	 10341	 10350             SEQ 0462
RTN	   242	   247	   283	   293	   363	   420	   507	   620	   635	   638	   640	   699	   764	   776
	   778	   860	   969	   970	   975	   981	   995	  1029	  1038	  1042	  1053	  1062	  1071	  1079
	  1090	  1096	  1105	  1144	  1153	  1177	  1181	  1190	  1223	  1231	  1240	  1256	  1258	  1264
	  1266	  1272	  1281	  1291	  1293	  1299	  1301	  1347	  1368	  1382	  1393	  1396	  1402	  1406
	  1410	  1483	  1489	  1490	  1495	  1501	  1521	  1528	  1536	  1551	  1553	  1557	  1559	  1568
	  1572	  1588	  1594	  1611	  1620	  1648	  1675	  1711	  1729	  1791	  1832	  1835	  1900	  1948
	  1954	  1967	  2537	  2557	  2563	  2599	  2663	  2860	  2867	  2870	  2917	  3143	  3147	  3149
	  3161	  3164	  3166	  3170	  3241	  3247	  3259	  3261	  3264	  3266	  3306	  3309	  3315	  3319
	  3323	  3474	  3477	  3483	  3485	  3518	  3526	  3528	  3535	  3544	  3548	  3555	  3563	  3566
	  3568	  3570	  3578	  3587	  3590	  3592	  3594	  3602	  3610	  3617	  3619	  3626	  3635	  3642
	  3648	  3651	  3655	  3657	  3669	  3678	  3684	  3690	  3700	  3707	  3709	  3718	  3729	  3736
	  3738	  3749	  3756	  3762	  3770	  3780	  3790	  3797	  3807	  3815	  3818	  3859	  3864	  3873
	  3876	  3879	  3888	  3891	  3900	  3905	  3913	  3916	  3921	  3930	  3934	  3943	  3946	  3951
	  3959	  3979	  3988	  3990	  3999	  4001	  4009	  4017	  4037	  4051	  4054	  4056	  4062	  4075
	  4079	  4082	  4092	  4128	  4145	  4148	  4172	  4192	  4202	  4210	  4215	  4224	  4228	  4259
	  4285	  4298	  4302	  4305	  4307	  4312	  4321	  4326	  4335	  4344	  4350	  4353	  4358	  4361
	  4370	  4383	  4391	  4394	  4400	  4409	  4414	  4476	  4486	  4498	  4503	  4507	  4555	  4571
	  4574	  4579	  4582	  4587	  4590	  4595	  4598	  4603	  4606	  4619	  4645	  4745	  4775	  4777
	  4779	  4781	  4783	  4785	  4787	  4789	  4791	  4793	  4795	  4797	  4799	  4801	  4803	  4805
	  4807	  4809	  4814	  4816	  4818	  4820	  4822	  4824	  4826	  4828	  4830	  4832	  4834	  4836
	  4838	  4840	  4842	  4844	  4846	  4848	  4934	  4939	  4967	  4994	  5022	  5045	  5062	  5070
	  5082	  5087	  5091	  5147	  5157	  5160	  5165	  5172	  5175	  5224	  5241	  5249	  5260	  5265
	  5269	  5311	  5359	  5367	  5379	  5384	  5388	  5413	  5445	  5455	  5458	  5464	  5469	  5472
	  5517	  5534	  5542	  5553	  5558	  5562	  5601	  5645	  5651	  5652	  5657	  5688	  5694	  5695
	  5700	  5739	  5749	  5760	  5765	  5769	  5793	  5812	  5822	  5833	  5838	  5842	  5866	  5879
	  5889	  5906	  5975	  6003	  6043	  6064	  6070	  6071	  6076	  6111	  6117	  6118	  6123	  6158
	  6168	  6179	  6184	  6188	  6207	  6226	  6236	  6247	  6252	  6256	  6283	  6296	  6304	  6307
	  6312	  6318	  6323	  6331	  6339	  6342	  6347	  6353	  6358	  6360	  6368	  6371	  6396	  6404
	  6408	  6436	  6459	  6468	  6470	  6489	  6497	  6499	  6517	  6526	  6529	  6533	  6541	  6597
	  6638	  6641	  6656	  6665	  6668	  6681	  6689	  6705	  6716	  6730	  6750	  6759	  6762	  6770
	  6775	  6784	  6790	  6795	  6804	  6810	  6818	  6828	  6867	  6876	  6879	  6949	  6955	  6996
	  7030	  7077	  7101	  7124	  7134	  7163	  7196	  7198	  7202	  7245	  7290	  7303	  7338	  7347
	  7385	  7467	  7470	  7496	  7547	  7583	  7592	  7615	  7649	  7673	  7693	  7696	  7715	  7738
	  7751	  7754	  7782	  7805	  7814	  7816	  7905	  7941	  8036	  8099	  8110	  8119	  8124	  8133
	  8140	  8149	  8157	  8213	  8320	  8322	  8324	  8326	  8328	  8366	  8372	  8404	  8501	  8578
	  8593	  8602	  8607	  8616	  8622	  8631	  8638	  8721	  8827	  8856	  8860	  8869	  8874	  8883
	  8890	  8899	  8907	  8913	  8918	  8970	  8977	  9053	  9164	  9212	  9216	  9265	  9269	  9278
	  9283	  9292	  9299	  9308	  9316	  9322	  9327	  9392	  9399	  9418	  9455	  9529	  9678	  9709
	  9713	  9744	  9748	  9779	  9783	  9815	  9819	  9841	  9845	  9871	  9875	  9884	  9889	  9898
	  9905	  9914	  9922	  9928	  9933	  9962	  9967	 10023	 10031	 10043	 10081	 10121	 10240	 10363
SCOPER	  7587
SYERR	  7775	  7895
TMSG	   288	   846	  1202	  1203	  1204	  1205	  1206	  1207	  1208	  1209	  1212	  1213	  1214	  1215
	  1216	  1217	  1218	  1219	  1898	  1957	  1961	  3531	  3551	  3573	  3597	  3622	  3660	  3665
	  3693	  3696	  3745	  3751	  3757	  4173	  4185	  4188	  4248	  4251	  4254	  4378	  4950	  4982
	  5111	  5114	  5407	  5412	  6432	  6478	  6506	  6601	  6602	  6603	  6604	  6605	  6606	  6607
	  6608	  6609	  6610	  6611	  6612	  6613	  6614	  6615	  6616	  6738	  6744	  6848	  6851	  6854
	  6858	  6861	  6900	  6902	  6910	  6912	  7092	  7097	  7310	  7316	  7320	  7324	  7367	  7398
	  7401	  7406	  7409	  7412	  7415	  7430	  7433	  7438	  7439	  7440	  7441	  7442	  7443	  7444
	  7445	  7446	  7447	  7448	  7449	  7450	  7451	  7452	  7453	  7454	  7640	  7655	  7656	  7657
	  7658	  7659	  7660	  7661	  7662	  7663	  7664	  7665	  7666	  7667	  7668	  7669	  7670	  7676
	  7677	  7678	  7679	  7680	  7681	  7682	  7683	  7684	  7685	  7686	  7687	  7688	  7689	  7690
	  7694	  8090	  8093	  8096	  8181	  8184	  8198	  8201	  8392	  8566	  8569	  8572	  8575	  8661     SEQ 0463
	  8664	  8692	  8695	  8964	  8967	  9203	  9204	  9205	  9206	  9209	  9386	  9389	  9452	  9498
	  9500	  9502	  9504	  9506	  9508	  9510	  9512	  9514	  9703	  9706	  9738	  9741	  9773	  9776
	  9809	  9812	 10020	 10078	 10104	 10106	 10107	 10108	 10109	 10110	 10111	 10113	 10114	 10115
	 10118	 10120	 10122	 10123	 10124	 10125	 10129	 10132	 10145	 10146	 10147	 10148	 10149	 10150
	 10151	 10166
TMSGC	   284	   709	   717	   843	  1198	  1199	  1200	  1210	  1338	  1341	  1345	  1892	  1899	  1905
	  3740	  3861	  4084	  4150	  4153	  4182	  4331	  4375	  4975	  5106	  5409	  5848	  5865	  6013
	  6014	  6030	  6031	  6032	  6033	  6034	  6262	  6282	  6327	  6385	  6389	  6429	  6445	  6448
	  6452	  6471	  6574	  6583	  6741	  6836	  6838	  6839	  6840	  6841	  6842	  6843	  6844	  6845
	  6855	  7308	  7311	  7335	  7355	  7604	  8087	  8116	  8130	  8146	  8178	  8185	  8188	  8195
	  8202	  8205	  8354	  8359	  8362	  8365	  8368	  8371	  8380	  8389	  8398	  8563	  8599	  8613
	  8628	  8658	  8666	  8670	  8673	  8679	  8682	  8689	  8697	  8701	  8704	  8710	  8713	  8853
	  8866	  8880	  8896	  8912	  8961	  9000	  9010	  9019	  9027	  9037	  9039	  9043	  9045	  9201
	  9262	  9275	  9289	  9305	  9321	  9383	  9449	  9458	  9461	  9464	  9474	  9476	  9480	  9482
	  9496	  9700	  9735	  9770	  9806	  9838	  9868	  9881	  9895	  9911	  9927	 10017	 10075	 10084
	 10087	 10090	 10093	 10099	 10126	 10140	 10143	 10160	 10163	 10165	 10176	 10180	 10182	 10186
	 10188	 10198	 10202	 10204	 10208	 10210	 10220	 10224	 10226	 10230	 10232
TMSGCD	   723	   836	  1376	  1378	  1380	  1420	  1740	  1741	  1742	  3345	  3710	  3734	  4134	  4206
	  6655	  6680	  6866	  8031	  8496	  8822	  9159	  9673	 10357
TMSGD	   829	   831	   833	   835	  1422	  1432	  1444	  1449	  1457	  3347	  3362	  3367	  3372	  3376
	  3386	  3391	  3396	  3401	  3409	  3414	  3419	  3426	  3432	  3438	  3446	  3454	  3575	  3577
	  3599	  3601	  3625	  4156	  4176	  4382	  6330	  6388	  6395	  6435
TTALTM	  1067	  1914	  3801	  3903	  3919	  3932	  3949	  3977	  4168	  4208	  4932	  4956	  5132	  5300
	  5429	  5589	  5872	  6289	  6382	  6426	  6485	  6513	  6747	  6824	  7463
TTIDEC	  1771
TTSIXB	   425	  2923	  4687
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 1
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0464

     1						SUBTTL	EBUS Module Tests
     2
     3						SALL
     4
     5						SEARCH	DFPTA,MONSYM
     6
     7					; INTERN's
     8
     9						ENTRY	TSTE1,TSTE2,TSTE3,TSTE4,TSTE5,TSTE6,TSTE7,TSTE10
    10						ENTRY	TSTE11,TSTE12,TSTE13,TSTE14,TSTE15,TSTE16,TSTE17,TSTE20
    11						ENTRY	TSTE21,TSTE22,TSTE23,TSTE24,TSTE25,TSTE26,TSTE27,TSTE30
    12						ENTRY	TSTE31,TSTE32,TSTE33,TSTE34,TSTE35,TSTE36,TSTE37,TSTE40
    13						ENTRY	TSTE41,TSTE42,TSTE43,TSTE44,TSTE45,TSTE46,TSTE47,TSTE50
    14						ENTRY	TSTE51,TSTE52,TSTE53,TSTE54,TSTE55,TSTE56,TSTE57,TSTE60
    15						ENTRY	TSTE61,TSTE62,TSTE63,TSTE64,TSTE65,TSTE66,TSTE67,TSTE70
    16						ENTRY	TSTE71,TSTE72,TSTE73,TSTE74,TSTE75,TSTE76
    17
    18					; EXTERN's
    19
    20						EXTERN	TSTA1,TSTA2,TSTA3,TSTA4,TSTA5,TSTA6,TSTA7
    21						EXTERN	TSTU6,TSTU7,TSTU10,TSTU11,TSTU12,TSTU13,TSTU41
    22
    23					; EXTERN's located in DFPTA1.MAC (Mainline code..)
    24
    25						EXTERN	TSTFLG,TSTSUB,TSTPC,UDEBUG,BUFF
    26						EXTERN	TLOAD,CSRPNT,CSRENG,TRACE,ODELAY
    27						EXTERN	IEXEC,IIPNT,ICSR,IADDR,BEXEC,BBPNT,CEBUF,AEBUF,IFLAG,IIOPF
    28
    29					; EXTERN's located in DFPTAI.MAC (Port Device Handling Routines module)
    30
    31						EXTERN	LDEBUF,LDRAR,LDCSR,RDEBUF,RDCSR,ERESET,IPACLR
    32						EXTERN	IPASRT,SNEXT,SDATA,.DATAI,.DATAO
    33						EXTERN	INITPI,.PION,SETVEC,.CONI,.CONO,INTNUM,INTTYP
    34						EXTERN	PFAPR,PFAIL,PF500,PF501,PF502,PISYOF,PISYON
    35
    36					; EXTERN's located in DFPTAU.MAC (Utility Routines module)
    37
    38						EXTERN	SCOSW,BUFGEN
    39
    40					;#********************************************************************
    41					; Z2 - Address for use in DDT
    42					;#********************************************************************
    43
    44	000000'				Z2:					; address of 00000'
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 2
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0465

    45
    46					;#********************************************************************
    47					;* TEST 1 - Is there an port out there?
    48					;
    49					; Description:	Just do a CONI and see if there is any device out
    50					;		there at all.
    51					; 
    52					; Procedure:	EBUS Reset
    53					;		Read CSR
    54					;		Data?  non-zero - ok
    55					;		       zero - failed
    56					;
    57					; Failure:	If the CONI CSR returns zero, it is likely that
    58					;		the CONI is failing and timeout has occurred.
    59					;#********************************************************************
    60
    61					; Test data
    62
    63	000000'	254 00 0 00 000005'	TSTE1:	JRST	TG1			; go start test
    64	000001'	400000	000001			EBUS!ZEBUS!1			; test mask
    65	000002'	000000	010374'			0,,[ASCIZ /CONI Works?/]	; ucode,,description
    66	000003'	010377'	010401'			[EXP E1,MLAST!E22],,[EXP E9,MLAST!E5]
    67	000004'	777777	777777			-1				; failure test table
    68
    69					; Start test
    70
    71	000005'	201 00 0 00 000000'	TG1:	MOVEI	Z2			; get address of module start
    72	000006'	260 17 0 00 000000*		GO	TRACE			; handle trace output
    73
    74	000007'	400 15 0 00 000000 	TA1:	SETZ	ERFLG,			; clear error flag
    75	000010'	260 17 0 00 000000*		GO	ERESET			; do an EBUS Reset
    76	000011'	260 17 0 00 000000*		GO	RDCSR			; read CSR
    77	000012'	474 15 0 00 000000 		SETO	ERFLG,			; failed - set error flag
    78	000013'	336 00 0 00 000001 		SKIPN	1			; result zero?
    79	000014'	474 15 0 00 000000 		SETO	ERFLG,			; yes - set error flag
    80	000015'	027 00 0 00 000021'		SCOPER	MA1			; print error message
    81	000016'	254 00 0 00 000007'		JRST	TA1			; loop on error
    82	000017'	254 00 0 00 000020'		JRST	TX1			; altmode exit
    83
    84					; End of test
    85
    86	000020'	263 17 0 00 000000 	TX1:	RTN				; return
    87
    88					; Error messages
    89
    90	000021'	140000	010403'		MA1:	MSG!TXNOT![ASCIZ /Did EBUS Reset, then CONI CSR - Should be non-zero./]
    91	000022'	140000	010416'			MSG!TXNOT![ASCIZ /CSR - Actual:  000000,,000000/]
    92	000023'	140000	010424'			MSG!TXNOT![ASCIZ /     Correct:  400003,,000000/]
    93	000024'	130000	010432'			LAST!MSG!TXYES![ASCIZ /CSR zero after EBUS Reset/]
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 3
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0466

    94
    95					;#********************************************************************
    96					;* Test 2 - RH20/Port Interaction
    97					;
    98					; Description:	Check for RH20/Port Interaction problems by  doing
    99					;		a reset, then  doing something to an RH20 and then
   100					;		seeing if something can be done to the port.
   101					; 
   102					; Procedure:	EBUS Reset
   103					;		Read CSR and save results
   104					;		CONI RH0
   105					;		Read CSR
   106					;		CONI data should be the same as the first
   107					;		  CONI - if so - ok,
   108					;		         if not - error
   109					;
   110					; 		Repeat the EBUS Reset/CONI/CONI sequence 
   111					;		  for each RH1-7 except the port(s).
   112					;
   113					; Failure:	The CONI RHx may be decoded and executed partially
   114					;		by the port.  The second CONI then returns incorrect
   115					;		data because it is completing a partially done CONI.
   116					;#********************************************************************
   117
   118					; Test data
   119
   120	000025'	254 00 0 00 000035'	TSTE2:	JRST	TG2			; go start test
   121	000026'	400000	000002			EBUS!ZEBUS!2			; test mask
   122	000027'	000000	010440'			0,,[ASCIZ ^RH20/Port Interaction^]
   123	000030'	010377'	010401'			[EXP E1,MLAST!E22],,[EXP E9,MLAST!E5]
   124	000031'	000000	000123'			TSTE3				; failure test table
   125	000032'	000000	000214'			TSTE4				;   ...
   126	000033'	000000	000307'			TSTE5
   127	000034'	777777	777777			-1
   128
   129					; Start test
   130
   131	000035'	201 00 0 00 000000'	TG2:	MOVEI	Z2			; get address of module start
   132	000036'	260 17 0 00 000006*		GO	TRACE			; handle trace output
   133	000037'	260 17 0 00 000010*		GO	ERESET			; do an EBUS Reset
   134	000040'	202 16 0 00 013666'		MOVEM	MBCN,SAVMBC#		; save the MBC number
   135	000041'	200 16 0 00 010445'		MOVE	MBCN,[54000,,0]		; initialize RH number
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 4
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0467

   136
   137					; Segment 0-7 of test
   138
   139	000042'	350 00 0 00 000000*	TA2:	AOS	TSTSUB			; indicate next subtest
   140	000043'	400 15 0 00 000000 	TA2L:	SETZ	ERFLG,			; clear error flag
   141	000044'	316 16 0 00 013666'		CAMN	MBCN,SAVMBC		; is this the port under test?
   142	000045'	254 00 0 00 000070'		JRST	TA2X			; yes - do next RH
   143
   144	000046'	250 16 0 00 013666'		EXCH	MBCN,SAVMBC		; set up to read port
   145	000047'	260 17 0 00 000011*		GO	RDCSR			; read CSR
   146	000050'	255 00 0 00 000000 		JFCL				; ignore error
   147	000051'	250 16 0 00 013666'		EXCH	MBCN,SAVMBC		; restore MBC number
   148	000052'	202 01 0 00 010362'		MOVEM	1,SAVDA1		; save result
   149	000053'	260 17 0 00 000000*		GO	.CONI			; do a CONI of RH x
   150	000054'	202 01 0 00 010363'		MOVEM	1,SAVDA2		; save result
   151	000055'	250 16 0 00 013666'		EXCH	MBCN,SAVMBC		; set up to read port
   152	000056'	260 17 0 00 000047*		GO	RDCSR			; read CSR
   153	000057'	255 00 0 00 000000 		JFCL				; ignore error
   154	000060'	250 16 0 00 013666'		EXCH	MBCN,SAVMBC		; restore MBC number
   155	000061'	202 01 0 00 010364'		MOVEM	1,SAVDA3		; save result
   156	000062'	312 01 0 00 010362'		CAME	1,SAVDA1		; data same as before?
   157	000063'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   158	000064'	027 00 0 00 000075'		SCOPER	MA2			; print error message
   159	000065'	254 00 0 00 000043'		JRST	TA2L			; loop on error
   160	000066'	254 00 0 00 000073'		JRST	TX2			; altmode exit
   161	000067'	326 15 0 00 000073'		JUMPN	ERFLG,TX2		; error? yes - exit
   162
   163	000070'	270 16 0 00 010446'	TA2X:	ADD	MBCN,[400,,0]		; point to next RH
   164	000071'	317 16 0 00 010447'		CAMG	MBCN,[57400,,0]		; reach RH6 yet?
   165	000072'	254 00 0 00 000042'		JRST	TA2			; no - loop till done
   166
   167					; End of test
   168
   169	000073'	200 16 0 00 013666'	TX2:	MOVE	MBCN,SAVMBC		; restore MBC number
   170	000074'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 5
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0468

   171
   172					; Error messages
   173
   174	000075'	140000	010450'		MA2:	MSG!TXNOT![ASCIZ /Did EBUS Reset, then CONI CSR, then CONI RH/]
   175	000076'	240000	000102'			CALL!TXNOT!MA2PNA
   176	000077'	140000	010461'			MSG!TXNOT![ASCIZ /Both CONI CSR's should be the same./]
   177	000100'	240000	000106'			CALL!TXNOT!MA2PNB
   178	000101'	230000	010224'			LAST!CALL!TXYES!MPNT1		; Port/RH Interaction Message
   179
   180	000102'	135 00 0 00 010471'	MA2PNA:	LDB	[POINT 3,MBCN,9]	; get basic 3 bits
   181	000103'	037 16 0 00 000003 		PNTOCS
   182	000104'	037 00 0 00 010472'		TMSG	<, then CONI CSR.>
   183	000105'	263 17 0 00 000000 		RTN
   184
   185	000106'	037 00 0 00 010476'	MA2PNB:	TMSGC	<CONI RH>
   186	000107'	135 00 0 00 010471'		LDB	[POINT 3,MBCN,9]	; get basic 3 bits
   187	000110'	037 16 0 00 000003 		PNTOCS
   188	000111'	037 00 0 00 010500'		TMSG	<:  >
   189	000112'	200 00 0 00 010363'		MOVE	SAVDA2
   190	000113'	037 13 0 00 000000 		PNTHW
   191	000114'	037 00 0 00 010501'		TMSGC	<CSR (Original):  >
   192	000115'	200 00 0 00 010362'		MOVE	SAVDA1
   193	000116'	037 13 0 00 000000 		PNTHW
   194	000117'	037 00 0 00 010505'		TMSGC	<  (After CONI):  >
   195	000120'	200 00 0 00 010364'		MOVE	SAVDA3
   196	000121'	037 13 0 00 000000 		PNTHW
   197	000122'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 6
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0469

   198
   199					;#********************************************************************
   200					;* Test 3 - RH20/Port Interaction
   201					;
   202					; Description:	Check for RH20/Port Interaction problems by doing
   203					;		a reset, then doing something to  the  port, then
   204					;		seeing if something can be done to an RH20.
   205					; 
   206					; Procedure:	EBUS Reset
   207					;		CONI RH0 and save results
   208					;		Read CSR
   209					;		CONI RH0
   210					;		CONI data should be the same as the first
   211					;		  CONI - if so - ok
   212					;		         if not - error
   213					; 
   214					;		Repeat this sequence for each RH1-7 except the port(s).
   215					;
   216					; Failure:	The CONI CSR may leave the EBUS Control logic in
   217					;		a funny state that causes successive CONI's to
   218					;		other devices to fail.
   219					;#********************************************************************
   220
   221					; Test data
   222
   223	000123'	254 00 0 00 000132'	TSTE3:	JRST	TG3			; go start test
   224	000124'	400000	000003			EBUS!ZEBUS!3			; test mask
   225	000125'	000000	010440'			0,,[ASCIZ ^RH20/Port Interaction^]
   226	000126'	010377'	010401'			[EXP E1,MLAST!E22],,[EXP E9,MLAST!E5]
   227	000127'	000000	000214'			TSTE4				; failure test table
   228	000130'	000000	000307'			TSTE5				;   ...
   229	000131'	777777	777777			-1
   230
   231					; Start test
   232
   233	000132'	332 00 0 00 030037 	TG3:	SKIPE	USER			; user mode?
   234						GO	[MOVE	TSTFLG		; yes - ensure this test does not
   235							 TLO	(TUSER)		;    get run (but only if not in
   236							 SKIPN	UDEBUG		;    debug mode)
   237							 MOVEM	TSTFLG
   238	000133'	260 17 0 00 010511'			 RTN]
   239	000134'	201 00 0 00 000000'		MOVEI	Z2			; get address of module start
   240	000135'	260 17 0 00 000036*		GO	TRACE			; handle trace output
   241	000136'	260 17 0 00 000037*		GO	ERESET			; do an EBUS Reset
   242	000137'	202 16 0 00 013666'		MOVEM	MBCN,SAVMBC		; save the MBC number
   243	000140'	200 16 0 00 010445'		MOVE	MBCN,[54000,,0]		; initialize RH number
   244
   245					; Segment 0-7 of test
   246
   247	000141'	350 00 0 00 000042*	TA3:	AOS	TSTSUB			; indicate next subtest
   248	000142'	400 15 0 00 000000 	TA3L:	SETZ	ERFLG,			; clear error flag
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 7
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0470

   249	000143'	316 16 0 00 013666'		CAMN	MBCN,SAVMBC		; is this the port?
   250	000144'	254 00 0 00 000163'		JRST	TA3X			; yes - do next RH
   251	000145'	260 17 0 00 000053*		GO	.CONI			; do a CONI of RH x
   252	000146'	202 01 0 00 010362'		MOVEM	1,SAVDA1		; save result
   253	000147'	250 16 0 00 013666'		EXCH	MBCN,SAVMBC		; set up to read port
   254	000150'	260 17 0 00 000056*		GO	RDCSR			; read CSR
   255	000151'	255 00 0 00 000000 		JFCL				; ignore error
   256	000152'	250 16 0 00 013666'		EXCH	MBCN,SAVMBC		; restore MBC number
   257	000153'	260 17 0 00 000145*		GO	.CONI			; do a CONI of RH x
   258	000154'	202 01 0 00 010363'		MOVEM	1,SAVDA2		; save result
   259	000155'	312 01 0 00 010362'		CAME	1,SAVDA1		; data same as before?
   260	000156'	474 15 0 00 000000 		SETO	ERFLG,			; no - set error flag
   261	000157'	027 00 0 00 000170'		SCOPER	MA3			; print error message
   262	000160'	254 00 0 00 000142'		JRST	TA3L			; loop on error
   263	000161'	254 00 0 00 000166'		JRST	TX3			; altmode exit
   264	000162'	326 15 0 00 000166'		JUMPN	ERFLG,TX3		; error? yes - exit
   265
   266	000163'	270 16 0 00 010446'	TA3X:	ADD	MBCN,[400,,0]		; point to next RH
   267	000164'	317 16 0 00 010447'		CAMG	MBCN,[57400,,0]		; reach RH6 yet?
   268	000165'	254 00 0 00 000141'		JRST	TA3			; no - loop till done
   269
   270					; End of test
   271
   272	000166'	200 16 0 00 013666'	TX3:	MOVE	MBCN,SAVMBC		; restore MBC number
   273	000167'	263 17 0 00 000000 		RTN				; return
   274
   275					; Error messages
   276
   277	000170'	240000	000172'		MA3:	CALL!TXNOT!MA3PNT
   278	000171'	230000	010224'			LAST!CALL!TXYES!MPNT1		; Port/RH Interaction Message
   279
   280	000172'	037 00 0 00 010516'	MA3PNT:	TMSGC	<Did EBUS Reset, then CONI RH>
   281	000173'	135 00 0 00 010471'		LDB	[POINT 3,MBCN,9]	; get basic 3 bits
   282	000174'	037 16 0 00 000003 		PNTOCS
   283	000175'	037 00 0 00 010525'		TMSG	<, then CONI CSR, then CONI RH>
   284	000176'	135 00 0 00 010471'		LDB	[POINT 3,MBCN,9]	; get basic 3 bits
   285	000177'	037 16 0 00 000003 		PNTOCS
   286	000200'	037 00 0 00 010415'		TMSG	<.>
   287	000201'	037 00 0 00 010533'		TMSGC	<Both CONI RH's should be the same.>
   288
   289	000202'	037 00 0 00 010476'		TMSGC	<CONI RH>
   290	000203'	135 00 0 00 010471'		LDB	[POINT 3,MBCN,9]	; get basic 3 bits
   291	000204'	037 16 0 00 000003 		PNTOCS
   292	000205'	037 00 0 00 010502'		TMSG	< (Original):  >
   293	000206'	200 00 0 00 010362'		MOVE	SAVDA1
   294	000207'	037 13 0 00 000000 		PNTHW
   295	000210'	037 00 0 00 010543'		TMSGC	<      (After RdCSR):  >
   296	000211'	200 00 0 00 010363'		MOVE	SAVDA2
   297	000212'	037 13 0 00 000000 		PNTHW
   298	000213'	263 17 0 00 000000 		RTN				; return
.MAIN	MACRO %53A(1152) 09:28 16-Oct-84 Page 8
DFPTA2	MAC	21-Apr-84 18:29		EBUS Module Tests                                                                  SEQ 0471

   299
   300					;#********************************************************************
   301					;* Test 4 - RH20/Port Interaction
   302					;
   303					; Description:	Check for RH20/Port Interaction