Trailing-Edge
-
PDP-10 Archives
-
6.1_emacs_manuals_1er
-
2-diagnostics/dfnia.seq
There are no other files named dfnia.seq in the archive.
;DFNIA
SEQ 0001
IDENTIFICATION
--------------
PRODUCT CODE: AH-E???A-DD
DIAGNOSTIC CODE: DFNIA
PRODUCT NAME: DFNIAA0 NI Functional Diagnostic
VERSION: 0.1
DATE RELEASED: December 31, 1983
MAINTAINED BY: Peripherals/CPS Engineering
AUTHOR: Richard Stockdale
COPYRIGHT (C) 1983
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSION
OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER
COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE
TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO
AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE
SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL EQUIPMENT
CORPORATION.
THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
EQUIPMENT CORPORATION.
DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
USE OR RELIABILITY OF ITS SOFTWARE IN EQUIPMENT WHICH IS NOT
SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
MAINDEC-10-DFNIA-A-D Page ii
Table of Contents SEQ 0002
Table of Contents
Page
----
1.0 PROGRAM ABSTRACT . . . . . . . . . . . . . . . . . . 1
2.0 REQUIREMENTS . . . . . . . . . . . . . . . . . . . . 2
2.1 Hardware Requirements . . . . . . . . . . . . . . 2
2.1.1 KL10 Microcode Requirements . . . . . . . . . . 2
2.1.2 Memory Requirements . . . . . . . . . . . . . . 2
2.1.3 Load Device . . . . . . . . . . . . . . . . . . 2
2.2 Software Requirements . . . . . . . . . . . . . . 2
2.3 Diagnostic Prerequisites . . . . . . . . . . . . . 3
3.0 PROGRAM LOADING PROCEDURE . . . . . . . . . . . . . 4
4.0 PROGRAM STARTING PROCEDURE . . . . . . . . . . . . . 5
4.1 Starting the Diagnostic . . . . . . . . . . . . . 5
4.2 Initial Program Switches . . . . . . . . . . . . . 5
4.3 Startup Procedure . . . . . . . . . . . . . . . . 5
4.4 Optional Restart Address . . . . . . . . . . . . . 6
5.0 PROGRAM STOPPING PROCEDURE . . . . . . . . . . . . . 7
6.0 PROGRAM OPERATING PROCEDURE . . . . . . . . . . . . 8
6.1 Overview . . . . . . . . . . . . . . . . . . . . . 8
6.2 Hardware Configuration . . . . . . . . . . . . . . 8
6.2.1 Configuration Modification . . . . . . . . . . . 8
6.3 NI Configuration . . . . . . . . . . . . . . . . . 8
6.4 Choosing Run Time Options . . . . . . . . . . . . 9
6.5 Modes of Diagnostic Operation . . . . . . . . . . 9
6.6 Scope Looping . . . . . . . . . . . . . . . . . . 9
6.7 General User Interface Philosophy . . . . . . . 10
6.7.1 User Interface . . . . . . . . . . . . . . . . 10
6.8 Terminal Input . . . . . . . . . . . . . . . . . 10
6.8.1 General . . . . . . . . . . . . . . . . . . . 10
6.8.2 Control-C Capability (Ctrl-C) . . . . . . . . 10
6.8.3 Control-O Capability (Ctrl-O) . . . . . . . . 11
6.8.4 Control-Q Capability (Ctrl-Q) . . . . . . . . 11
6.8.5 Control-S Capability (Ctrl-S) . . . . . . . . 11
6.8.6 Control-T Capability (Ctrl-T) . . . . . . . . 11
6.8.7 Control-U Capability (Ctrl-U) . . . . . . . . 11
6.8.8 Control-Z Capability (Ctrl-Z) . . . . . . . . 11
6.8.9 Question Mark (?) . . . . . . . . . . . . . . 12
6.8.10 Altmode (ESC) . . . . . . . . . . . . . . . . 12
6.9 Terminal Output . . . . . . . . . . . . . . . . 12
6.9.1 Statistics Printouts . . . . . . . . . . . . . 12
7.0 PROGRAM OPTIONS (SWITCHES) . . . . . . . . . . . . 14
7.1 Left Hand Switches . . . . . . . . . . . . . . . 14
7.1.1 Left Hand Switches (Brief Description) . . . . 15
7.1.2 Left Hand Switches (Detailed Description) . . 16
7.2 Right Hand Switches . . . . . . . . . . . . . . 19
7.2.1 Right Hand Switches (Brief Description) . . . 19
7.2.2 Right Hand Switches (Detailed Description) . . 20
MAINDEC-10-DFNIA-A-D Page iii
Table of Contents SEQ 0003
8.0 ERRORS . . . . . . . . . . . . . . . . . . . . . . 23
8.1 User Input Errors at the Terminal . . . . . . . 23
8.2 Error Reporting of Hardware Detected Errors . . 23
8.2.1 Reporting to SPEAR . . . . . . . . . . . . . . 23
8.2.2 Error Printouts . . . . . . . . . . . . . . . 24
8.3 Unexpected Errors . . . . . . . . . . . . . . . 25
9.0 PROGRAM DESCRIPTION . . . . . . . . . . . . . . . 27
9.1 Program Overview . . . . . . . . . . . . . . . . 27
9.1.1 Program Purpose . . . . . . . . . . . . . . . 27
9.1.2 Testing Strategy . . . . . . . . . . . . . . . 27
9.2 Run-Time Dynamics . . . . . . . . . . . . . . . 27
9.2.1 Memory Allocation Requirements . . . . . . . . 27
9.2.2 Operating System Interactions . . . . . . . . 27
9.2.2.1 TOPS-10 . . . . . . . . . . . . . . . . . . 27
9.2.2.2 TOPS-20 . . . . . . . . . . . . . . . . . . 28
9.2.3 User Mode Restrictions . . . . . . . . . . . . 28
9.2.3.1 User Mode Privileges . . . . . . . . . . . . 28
9.2.3.2 User Mode Priority Interrupts . . . . . . . 28
9.3 Exec Mode Capability . . . . . . . . . . . . . . 28
9.4 User Mode Capability . . . . . . . . . . . . . . 28
9.5 Fault Detection . . . . . . . . . . . . . . . . 28
9.5.1 Error Resolution . . . . . . . . . . . . . . . 29
9.5.2 Fault Detection And Isolation . . . . . . . . 29
9.5.3 Fault Detection . . . . . . . . . . . . . . . 29
9.6 Performance During Hardware Failures . . . . . . 29
9.6.1 CPU/Memory Failures . . . . . . . . . . . . . 29
9.6.2 Power Fail/Restart . . . . . . . . . . . . . . 29
9.6.3 Port Failure . . . . . . . . . . . . . . . . . 29
9.6.4 Unexpected Traps . . . . . . . . . . . . . . . 30
9.7 Program Applications . . . . . . . . . . . . . . 30
9.7.1 Users and Uses . . . . . . . . . . . . . . . . 30
9.7.2 Engineering Usage . . . . . . . . . . . . . . 30
9.7.3 Manufacturing Usage . . . . . . . . . . . . . 30
9.7.4 Customer Services Usage . . . . . . . . . . . 30
9.7.5 Customer Usage . . . . . . . . . . . . . . . . 30
9.8 Test Design . . . . . . . . . . . . . . . . . . 31
9.8.1 Type of Tests . . . . . . . . . . . . . . . . 31
9.8.2 Test Flow . . . . . . . . . . . . . . . . . . 32
9.8.2.1 Starting the Test . . . . . . . . . . . . . 32
9.8.2.2 Stopping the Test . . . . . . . . . . . . . 32
9.8.2.3 Obtaining Run Time Status (Control-T) . . . 33
9.8.2.4 Obtaining Run Time Status (S or Control-S) . 33
10.0 TEST DESCRIPTIONS . . . . . . . . . . . . . . . . 34
10.1 Test Description Assumptions . . . . . . . . . . 34
10.2 Test Description Overview . . . . . . . . . . . 34
10.3 Program Option Selections . . . . . . . . . . . 35
10.3.1 Basic Description . . . . . . . . . . . . . . 35
10.3.2 Commands Available . . . . . . . . . . . . . . 35
10.3.3 Detailed Command Description . . . . . . . . . 36
10.3.3.1 Hardware Tests . . . . . . . . . . . . . . . 36
10.3.3.2 General Commands . . . . . . . . . . . . . . 37
10.3.3.3 Test Control Commands . . . . . . . . . . . 38
10.3.3.4 Statistics Commands . . . . . . . . . . . . 39
10.3.3.5 NI Configuration Command . . . . . . . . . . 39
MAINDEC-10-DFNIA-A-D Page iv
Table of Contents SEQ 0004
10.3.3.6 Switches . . . . . . . . . . . . . . . . . . 40
10.4 Hardware Tests . . . . . . . . . . . . . . . . . 42
10.4.1 Hardware Tests - EBUS/MPROC/CBUS modules . . . 42
10.4.2 Functional Tests . . . . . . . . . . . . . . . 42
10.4.2.1 Basic Operations . . . . . . . . . . . . . . 42
10.4.2.2 CRC Tests . . . . . . . . . . . . . . . . . 42
10.4.2.3 Datagram Tests . . . . . . . . . . . . . . . 42
10.4.2.4 Multicast Tests . . . . . . . . . . . . . . 42
10.4.2.5 PTT Tests . . . . . . . . . . . . . . . . . 42
10.4.2.6 Miscellanous Tests . . . . . . . . . . . . . 43
10.5 Debug Test . . . . . . . . . . . . . . . . . . . 44
10.5.1 Basic Description . . . . . . . . . . . . . . 44
10.5.2 Commands Available . . . . . . . . . . . . . . 44
10.5.3 Detailed Command Description . . . . . . . . . 47
10.5.3.1 General Commands . . . . . . . . . . . . . . 48
10.5.3.2 Starting, Stopping, Initializing the Port . 52
10.5.3.3 Handling port registers . . . . . . . . . . 54
10.5.3.4 Handling port CRAM locations . . . . . . . . 55
10.5.3.5 2901 Commands . . . . . . . . . . . . . . . 58
10.5.3.6 Local Storage Commands . . . . . . . . . . . 59
10.5.3.7 Mark Bit Commands . . . . . . . . . . . . . 60
10.5.3.8 Breakpoint Commands . . . . . . . . . . . . 60
10.5.3.9 Microcode Commands . . . . . . . . . . . . . 61
10.5.3.10 Statistics Commands . . . . . . . . . . . . 63
10.5.3.11 NI Configuration Command . . . . . . . . . . 63
10.5.3.12 NI Commands . . . . . . . . . . . . . . . . 64
10.5.3.13 PLI Register Commands . . . . . . . . . . . 67
10.5.3.14 Miscellaneous Commands . . . . . . . . . . . 68
10.5.3.15 Data Transfer Commands . . . . . . . . . . . 71
10.5.3.16 Switches . . . . . . . . . . . . . . . . . . 72
11.0 PROGRAM RUN TIME . . . . . . . . . . . . . . . . . 74
12.0 APPENDIX . . . . . . . . . . . . . . . . . . . . . 75
12.1 Special Configurations . . . . . . . . . . . . . 75
12.1.1 DMT Configuration . . . . . . . . . . . . . . 75
12.1.2 Creating the Modified Diagnostics . . . . . . 75
12.1.3 Modifying the System . . . . . . . . . . . . . 76
12.1.4 Other configurations . . . . . . . . . . . . . 77
MAINDEC-10-DFNIA-A-D Page 1
PROGRAM ABSTRACT SEQ 0005
1.0 PROGRAM ABSTRACT
DFNIA is a functional diagnostic intended to verify the
functionality of a NI20 port consisting of an 3 Port modules, an NIA
module, H4000 Transceiver, and NI cable. It attempts to isolate
faults to either of - (1) 3 Port modules, and (2) NIA module + H4000
Transceiver + cables.
DFNIA tests the NI port consisting of three port modules residing
in RH20 slot #5 and an NIA module residing in a separate card cage.
DFNIA consists of two major program sections:
o Test section - Contains all of the hardware tests. This section
is used to functionally verify the port or to isolate an actual
problem.
o Debug section - Allows detailed manipulation or inspection of
the port.
MAINDEC-10-DFNIA-A-D Page 2
REQUIREMENTS SEQ 0006
2.0 REQUIREMENTS
2.1 Hardware Requirements
Hardware requirements consist of:
o A KL10, Model B, with at least 80K of memory.
o An NI20 Port in RH slot #5.
o Card cage installed, with an NIA module inserted and a PLI
interface cable connecting the CBUS module with the NIA module.
o A load device.
2.1.1 KL10 Microcode Requirements
The NI20 requires special functionality of the KL10 microcode.
Therefore, Version 312 or above must be loaded both in user and exec
mode.
2.1.2 Memory Requirements
The diagnostic requires 80K of memory of any type. Memory may be
configured in any manner, i.e., internal, external, interleaved in
any rational manner. The diagnostic's performance is not affected
by memory and cache options other than in overall diagnostic run
time.
2.1.3 Load Device
The diagnostic loads from any standard load device. Program
loading is a function of the standard diagnostic loaders and
monitors, i.e., DIAMON, D20MON, MAGMON, KLDCP, etc.
2.2 Software Requirements
Software requirements consist of:
o In exec mode the diagnostic may be loaded by KLDCP, DIAMON,
D20MON, or MAGMON. The Subroutine Package must be loaded prior
to running the diagnostic.
o In user mode, TOPS-20, Release 6.1 or above is required.
MAINDEC-10-DFNIA-A-D Page 3
REQUIREMENTS SEQ 0007
2.3 Diagnostic Prerequisites
The diagnostic should only be run after it has been verified that
the system has no solid hardware problems of a nature that would
render the diagnostic unable to run. This should be determined by
first running the following diagnostic programs:
o CPU and Memory Diagnostics
o E-Bus Diagnostics
o C-Bus Diagnostics
o MAINDEC-10-DFRHB - RH20 Fault Isolator Diagnostic.
o MAINDEC-10-DFPTA - Port Basic Device Diagnostic.
MAINDEC-10-DFNIA-A-D Page 4
PROGRAM LOADING PROCEDURE SEQ 0008
3.0 PROGRAM LOADING PROCEDURE
The diagnostic must be loaded via a diagnostic loader program.
Refer to loader documentation for instructions on loading and
operating the loader program. The diagnostic may be run as a single
program or may be chained with other programs using the loader chain
feature.
Additionally, in exec mode under KLDCP, the diagnostic may be
loaded without using a diagnostic loader program by telling KLDCP to
load the diagnostic. This has the advantage of being simpler, but
has the disadvantage of inhibiting file handling operations which
then prevents use of the TAKE command, and loading of operational
microcode by the diagnostic.
MAINDEC-10-DFNIA-A-D Page 5
PROGRAM STARTING PROCEDURE SEQ 0009
4.0 PROGRAM STARTING PROCEDURE
4.1 Starting the Diagnostic
The diagnostic is started in the same manner as most other
diagnostics. The diagnostic loader program is run, then the name of
the diagnostic, DFNIA, is specified. The loader then loads and
starts the diagnostic.
If the diagnostic is already loaded, it may be restarted by a STD
or STM in exec mode, or a START or CONTINUE in user mode.
4.2 Initial Program Switches
In exec mode, right hand switches may be selected using the SW
command as documented in the KL10 Maintanance Guide under KLDCP.
Left hand switches may be selected on the PDP 11 switch panel. If
the switches are 0, the diagnostic runs 5 passes of all hardware
tests then exits. To allow the user to select which test(s) to run,
the left hand switch 'OPRSEL' should be set.
In user mode, switches will be queried when the diagnostic starts
up. At this point, OPRSEL switch can be set, and any other
switches.
In both exec and user mode, switch settings may be altered after
the diagnostic has been started.
4.3 Startup Procedure
When the diagnostic is started, the diagnostic name and version
number will be printed, followed by a memory map of the system.
If OPRSEL switch is not set, the diagnostic will immediately
begin testing the NI port. If this switch is set, the diagnostic
will ask what test to execute.
For example (OPRSEL switch not set):
| D20MON CMD - DFNIA
|
| DFNIA NI Port Functional Diagnostic
| VERSION 0.1, SV=0.15, TOPS-20, KL10, CPU#=2263
|
| SWITCHES = 000000 000000
|
| MEMORY MAP =
| FROM TO SIZE/K
| 00000000 00215777 71
|
| End pass 1. at 3m 48s
|
MAINDEC-10-DFNIA-A-D Page 6
PROGRAM STARTING PROCEDURE SEQ 0010
| End pass 2. at 7m 32s
|
| End pass 3. at 11m 20s
|
| End pass 4. at 15m 8s
|
| End pass 5. at 18m 56s
|
| D20MON CMD -
For example (OPRSEL switch set):
| D20MON CMD - DFNIA
|
| DFNIA NI Port Functional Diagnostic
| VERSION 0.1, SV=0.15, TOPS-20, KL10, CPU#=2263
|
| SWITCHES = 000010 000000
|
| MEMORY MAP =
| FROM TO SIZE/K
| 00000000 00215777 71
|
| Type ? for help
|
| What test -
The diagnostic asks what test to run. Any test may be selected,
or ? or HELP typed to find out what tests are available.
At the end of a test the diagnostic continues at the question
'What test -'. The next test is selected and run and so on.
4.4 Optional Restart Address
Under TOPS-20 the diagnostic can be restarted via the 'REENTER'
command. The program switches are queried, then either testing is
begun immediately (if OPRSEL switch is not set) or 'What Test - ' is
asked (if OPRSEL switch is set).
Startup is identical to what occurs if the 'START' command is
given, except for the DIAMON asking 'DIAMON CMD - '.
MAINDEC-10-DFNIA-A-D Page 7
PROGRAM STOPPING PROCEDURE SEQ 0011
5.0 PROGRAM STOPPING PROCEDURE
Several methods may be used to stop the diagnostic:
o Altmode.
o Control-C.
o ABORT switch.
o RSTART switch.
A test can be aborted at any time by typing an altmode on the
terminal. When an altmode is typed, the diagnostic is restarted at
the test selection routine. At this point, if OPRSEL switch is set,
the diagnostic asks what test to run next. If OPRSEL switch is not
set the diagnostic runs all tests over again.
Control-C may be typed at any time to stop the diagnostic. To
restart, a 'START', 'CONTINUE', or 'REENTER' may be typed in user
mode. In exec mode a 'STD', 'ST', 'STM', or 'RN' may be used.
In exec mode, the ABORT switch may be set, so the diagnostic
halts at end of pass.
In exec mode, the RSTART switch may be set. This causes the
diagnostic to be restarted, and if OPRSEL switch is set, the
diagnostic will have effectively stopped and will be waiting for
selection of what test to run.
MAINDEC-10-DFNIA-A-D Page 8
PROGRAM OPERATING PROCEDURE SEQ 0012
6.0 PROGRAM OPERATING PROCEDURE
6.1 Overview
The diagnostic is designed to perform functional level testing of
the NI port.
Essentially, the diagnostic consists of a series of functional
tests as well as 3 hardware tests. The hardware tests constitute a
basic confidence test of the 3 port modules. The functional tests
load operational microcode and test functional characteristics of
the port.
6.2 Hardware Configuration
When the diagnostic starts up it assumes that a NI port is
located in RH20 slot #5. It will attempt to select the port (this
always succeeds in exec mode, but may fail in user mode if the
system does not give the port to the diagnostic when requested).
6.2.1 Configuration Modification
The configuration of a NI port in RH20 slot #5 cannot be changed
via program commands. However, a memory location in the program
which contains the controller number can be changed to indicate a
different port in the unlikely event that the NI port was actually
in RH20 slot #7. This location is called 'MBCN' and can be changed
as follows:
What test - DDT
Type RTN$X to continue
DDT
MBCN/ 56400,,0 57400,,0 <CR>
RTN$X
What test -
6.3 NI Configuration
The diagnostic can be directed to print the configuration of
nodes on the NI bus. This is done with the 'CONFIG' command which
is identical to running TST26 'Configuration Test'. It merely
prints whatever configuration data has been accumulated so far. For
example:
MAINDEC-10-DFNIA-A-D Page 9
PROGRAM OPERATING PROCEDURE SEQ 0013
| What test - CONFIG
|
| ***** NI Configuration *****
| Physical Address Ver ECO Usr Com DLL
| Bt1 Bt2 Bt3 Bt4 Bt5 Bt6 # # ECO Functionality Dev Type
| ----------------------- --- --- --- ---------------- --- --------
| 252 000 003 003 000 000 (Self)
| 252 000 003 003 000 006 1 0 0 12000030 0 Ethernet
| 274 033 000 000 000 001 5 101 1 10004730 0 Ethernet
Only those nodes which broadcast a periodic system ID message
will be included. Nodes which are turned off or are not running
will not be seen.
6.4 Choosing Run Time Options
Before starting a test, the diagnostic may ask how many times to
execute test selected. If the OPRSEL switch is not set this
question is not asked. No other run time options are available,
aside from program switch options which are fully described in the
Section 7.0 'Program Options (Switches)'.
6.5 Modes of Diagnostic Operation
The diagnostic runs in either user mode or exec mode. The
operation of the diagnostic is almost identical in either case with
the exception of the handling of console switches, and speed of
operation. The diagnostic runs faster in exec mode for obvious
reasons. Also, the PI system is not used in user mode. This
affects the ease of using breakpoints when debugging microcode.
In addition, the diagnostic runs with or without user
interaction. This is determined by the console switch 'OPRSEL'.
More details may be found in Section 7.0 'Program Options
(Switches)'.
6.6 Scope Looping
Scope looping is not supported by the diagnostic. However, one
can loop on a test, using the right hand switch 'LOOPTS'.
MAINDEC-10-DFNIA-A-D Page 10
PROGRAM OPERATING PROCEDURE SEQ 0014
6.7 General User Interface Philosophy
Decimal numbers are always followed by a point. All other
numbers are octal.
All input is preceded with a prompt. All input is checked for
legality and incorrect responses are followed by a reprompt and/or
an additional error message. All numerical input can be specified
as an octal number. Some numerical input may be alternatively given
as a decimal number followed by a decimal point. Where the the
diagnostic allows multiple input options, a help message is
available to explain the options. The diagnostic requests three
types of input - numerical, yes or no, and sixbit.
Additionally, the user may obtain a short description of the
input expected at any point by typing a question mark followed by a
carriage return. The text is printed and the question re-asked.
6.7.1 User Interface
The user interface to the diagnostic is dialogue through the
terminal. In exec mode the console switches on the KL are used
directly in addition to software switches. In user mode the
software switches are used as standard procedure. All
user/diagnostic dialogue is done through the diagnostic subroutine
package.
6.8 Terminal Input
6.8.1 General
Terminal input is handled by the Subroutine Package. It does not
have COMND JSYS style input. However, some control characters are
supported. And the diagnostic supports ? and help commands where
appropriate to facilitate input.
6.8.2 Control-C Capability (Ctrl-C)
Control-C is used to halt diagnostic execution. In exec mode,
control is returned to KLDCP at the ">." prompt. In user mode, the
user is returned to monitor level.
When ready to continue, the user may restart or continue the
diagnostic in any manner listed previously in Section 5.0, 'Program
Stopping Procedure'. This would be by saying 'CONTINUE' in user
mode or 'RN' in exec mode.
MAINDEC-10-DFNIA-A-D Page 11
PROGRAM OPERATING PROCEDURE SEQ 0015
6.8.3 Control-O Capability (Ctrl-O)
Control-O inhibits terminal output. Terminal output resumes when
the diagnostic prints some forced output or when the user types
another Control-O.
6.8.4 Control-Q Capability (Ctrl-Q)
In exec mode Control-Q is treated as an illegal character by the
diagnostic and typing it in response to a question results in an
error message.
In user mode Control-Q allows terminal output which may have been
inhibited by a prior Control-S. This character may be typed at any
time with no other effect than resuming terminal output.
6.8.5 Control-S Capability (Ctrl-S)
In exec mode, Control-S is treated as an illegal character by the
diagnostic and typing it in response to a question results in an
error message. It may also be typed followed by a carriage return
in order to obtain run-time status of the diagnostic.
In user mode, it is used as a terminal output control character
along with Control-Q, and has no other function.
6.8.6 Control-T Capability (Ctrl-T)
Control-T is treated as an illegal character by the diagnostic
and typing it in response to a question results in an error message
in exec mode. Under TOPS-20, Control-T gives the current program
status and does not interfere with program input.
6.8.7 Control-U Capability (Ctrl-U)
Control-U is used to delete whatever has been typed so far in
response to a question. After typing Control-U, the desired input
can be entered.
6.8.8 Control-Z Capability (Ctrl-Z)
Control-Z is used to exit from DDT, to either KLDCP in exec mode
or to monitor level in user mode.
MAINDEC-10-DFNIA-A-D Page 12
PROGRAM OPERATING PROCEDURE SEQ 0016
6.8.9 Question Mark (?)
Question mark may be typed in response to any question. The
diagnostic prints a short help message and reprompts the user. If
the diagnostic is asking for a test name or a debug command, it
prints a list of all valid commands that may be typed.
If a question mark is typed after a legal command, the expected
format of the command is given, showing possible arguments.
6.8.10 Altmode (ESC)
Altmode is normally used to abort a test or a sequence of test.
If it is given in response to a question, the diagnostic aborts the
task which is under way. For example, in DEBUG test, if the user is
altering a CRAM location and types altmode in the middle of that,
the diagnostic aborts the operation and returns to 'DEBUG>' prompt
without writing the location.
6.9 Terminal Output
The terminal output generated by the diagnostic consists of:
o Program initialization information
o Program questions/messages
o Test error messages
o Statistics printouts
Much of this output can be affected by program switches,
specifically, NOPNT, PNTLPT, TXTINH, and INHMSG.
6.9.1 Statistics Printouts
Statistics are kept on NI traffic originating from or received at
this node. They are not printed out by the program automatically.
To obtain a printout, the 'OPRSEL' switch must be set and the
command 'STATIS' given explicitly.
Statistics may be useful when running a debugger test such as
'WATCH' over a long period of time. One can obtain data from the
statistics such as which NI path has the highest occurrence of no
responses or other failures.
MAINDEC-10-DFNIA-A-D Page 13
PROGRAM OPERATING PROCEDURE SEQ 0017
A sample printout follows:
| What test - STATIS
|
| *** STATISTICS - Packets Sent (0m 16s) ***
| (All numbers decimal)
| Packets Bytes Transmit
| Type Sent Sent Errors
| ---- ---- ---- ------
| Self-Directed DGMs 4329 470821 44
| Other DGMs 5 240 0
| Other Packets 0 0 0
|
| *** STATISTICS - Packets Received (0m 16s) ***
| (All numbers decimal) Unexpected Expected
| Packets Bytes Rcvd CRC CRC
| Type Rcvd Rcvd Errors Errors Errors
| ---- ---- ---- ------ ------ ------
| Self-Directed DGMs 4329 470821 3 0 0
| Other DGMs 0 0 0 0 0
| Other Packets 0 0 0 0 0
MAINDEC-10-DFNIA-A-D Page 14
PROGRAM OPTIONS (SWITCHES) SEQ 0018
7.0 PROGRAM OPTIONS (SWITCHES)
Program options are controlled by switches. Left hand switches
are predefined but not all are used. Most of the right hand
switches are defined specific to the diagnostic.
7.1 Left Hand Switches
In exec mode, left hand switches are modified either via the
front end console switches or by using the KLDCP command ESW. See
KLDCP documentation for details on the use of the ESW command.
Typically, these switches are modified by using the console
switches.
In user mode, left hand switches are queried when the diagnostic
starts. After that, if the OPRSEL switch is set, switches may be
changed using the SWITCH command. The diagnostic will ask for the
switches in the same manner as occurred at start up. Also the name
of the switch can be typed as a command. This turns the switch on
or off depending on its state.
For example:
| What test - TXTINH
|
| [TXTINH On]
|
| What test - TXTINH
|
| [TXTINH On]
|
| What test - SWPRIN
|
| Switches: 000210 000000 TXTINH OPRSEL
|
| What test - TXTINH
|
| [TXTINH Off]
|
| What test - SWITCH
|
| Print the selectable pgm switches? (Y or N) - N
|
| Switches = 000010 000000
|
| 10 LH Switches <# or ?> - 210
|
| 0 RH Switches <# or ?> - 0
|
| SWITCHES = 020210 000000
|
| What test - SWPRIN
|
| Switches: 000210 000000 TXTINH OPRSEL
MAINDEC-10-DFNIA-A-D Page 15
PROGRAM OPTIONS (SWITCHES) SEQ 0019
7.1.1 Left Hand Switches (Brief Description)
Switch Symbol State Function Description
------ ------ ----- --------------------
0 (400000) ABORT 0 No function.
1 Abort at end of pass.
1 (200000) RSTART 0 No function.
1 Restart diagnostic.
2 (100000) TOTALS 0 No function.
1 No function.
3 (040000) NOPNT 0 Normal typeout.
1 Inhibit all printing except forced.
4 (020000) PNTLPT 0 Normal output to TTY.
1 Print on LPT (user, logical dev).
5 (010000) DING 0 No function.
1 Ring bell on error.
6 (004000) LOOPER 0 Normal operation.
1 Normal operation.
7 (002000) ERSTOP 0 Normal operation.
1 Halt on error.
8 (001000) PALERS 0 Print only first error in loop.
1 Print all errors.
9 (000400) RELIAB 0 No function.
1 Reliability mode switch.
10 (000200) TXTINH 0 Print full error messages.
1 Short error messages.
11 (000100) INHPAG 0 KL - allow 4096K addressing.
1 KL - inhibit paging.
12 (000040) MODDVC 0 No function.
1 Modify device codes.
13 (000020) INHCSH 0 Use cache.
1 Inhibit using cache on pgm start.
14 (000010) OPRSEL 0 Run default operations.
1 Operator test selections.
15 (000004) CHAIN 0/1 Used by "DIAMON", etc. to control
MAINDEC-10-DFNIA-A-D Page 16
PROGRAM OPTIONS (SWITCHES) SEQ 0020
chain operations.
16 (000002) Unused 0 KA10 60 Hertz power
1 KA10 50 Hertz power
17 (000001) Unused Reserved
7.1.2 Left Hand Switches (Detailed Description)
The following is a detailed description of each console data
switch function:
Switch 0 (ABORT)
When this switch is set, the diagnostic returns control to the
diagnostic loader at end of pass.
Switch 1 (RSTART)
When this switch is set while a test is being executed, the
diagnostic aborts testing after completion of the current test, and
restarts the diagnostic.
Switch 2 (TOTALS)
Setting this switch has no effect on diagnostic operation.
Switch 3 (NOPNT)
This switch inhibits all printout except forced. Forced printout
is used with questions requiring user response. This switch is
useful when it is desired to force a test to run without printing
error information. To suppress the remainder of a current error
report, type a Control-O on the terminal. This suppresses the
remaining error information for the current error and allows
printing to start again for the next error.
Switch 4 (PNTLPT)
When this switch is zero, all printouts from the diagnostic are
printed on the terminal. If set only forced printouts are printed
on the terminal. All data, including forced printouts, is printed
on the line printer.
Switch 5 (DING)
MAINDEC-10-DFNIA-A-D Page 17
PROGRAM OPTIONS (SWITCHES) SEQ 0021
This switch causes the terminal bell to be rung when an error
occurs.
Switch 6 (LOOPER) - Unused
Switch 7 (ERSTOP)
This switch causes the diagnostic to terminate testing when an
error occurs. If the OPRSEL switch is set the diagnostic will
continue at the 'What Test -' prompt. If the OPRSEL switch is not
set the diagnostic will exit and return control to the diagnostic
loader.
Switch 8 (PALERS)
Normally an error message is printed only the first time an error
occurs if that error is being repeated continuously. To print all
occurrences of every error, set this switch.
Switch 9 (RELIAB)
If this switch is set, each test is run 4 times before control is
passed to the next test selected. If only one test has been
selected, the test would be run 4 times the repeat count given for
the test.
Switch 10 (TXTINH)
If this switch is not set, complete data is printed with each
error message. If this switch is set, less data is printed in a
shortened form.
Switch 11 (INHPAG)
This switch inhibits paging if set and allows it if not set.
Switch 12 (MODDVC)
If this switch is set, DIAMON asks for any device code
modifications. This is not used by the diagnostic itself.
Switch 13 (INHCSH)
This switch, if set, inhibits the use of cache during the time
the diagnostic is run. This switch is inspected only in exec mode
and only at diagnostic start up. Changes of the switch setting do
not affect the cache after the diagnostic has started up.
MAINDEC-10-DFNIA-A-D Page 18
PROGRAM OPTIONS (SWITCHES) SEQ 0022
Switch 14 (OPRSEL)
If set, this switch enables increased user interaction. The
diagnostic asks explicitly what test or function to do before doing
anything. Test selection is made in response to the question:
What Test? -
At least enough letters to recognize the test selection must be
typed although up to six letters are accepted. '?' may be typed to
get a list of the test names or commands. 'HELP' may be typed to
get a short description of each test or command.
If this switch is not set, the diagnostic runs all hardware
tests, prints fault isolation data (if the inhibit fault isolation
switch is not set), then exits.
Switch 15 (CHAIN)
This switch is used by DIAMON in chaining operations and is not
used by the diagnostic in normal operation.
Switch 16 (50CYC) - Unused
This switch is used on KA10's to select 50 hertz power. It is
not used by this diagnostic.
Switch 17 - Unused
This switch is reserved for use by the diagnostic monitor or
subroutine package and is not used by the diagnostic.
MAINDEC-10-DFNIA-A-D Page 19
PROGRAM OPTIONS (SWITCHES) SEQ 0023
7.2 Right Hand Switches
7.2.1 Right Hand Switches (Brief Description)
Switch Symbol State Function Description
------ ------ ----- --------------------
18 (400000) TRACE 0 Normal operation.
1 Trace operation of tests.
19 (200000) INHFLT 0 Normal operation.
1 Inhibit fault isolation.
20 (100000) INHMSG 0 Normal operation.
1 Inhibit error message printout.
21 (040000) LOOPGM 0 Normal operation.
1 Loop on program.
22 (020000) LOOPTS 0 Normal operation.
1 Loop on selected test.
23 (010000) RUNALL 0 Normal operation.
1 Run all segments of each test.
24 (004000) DSPEAR 0 Normal operation.
1 Disable SPEAR error reporting.
25 (002000) UDEBUG 0 Normal operation.
1 Diagnostic debug mode.
26 (001000) MDEBUG 0 Normal operation.
1 Error message debug mode.
27 (000400) LDEBUG 0 Normal operation.
1 Inhibit loading of test microcode.
28 (000200) DDEBUG 0 Normal operation.
1 Dump port state upon error.
29 (000100) EDEBUG 0 Normal operation.
1 Print expanded error message upon error.
30 (000040) Unused
31 (000020) Unused
32 (000010) Unused
33 (000004) Unused
34 (000002) Unused
35 (000001) Unused
MAINDEC-10-DFNIA-A-D Page 20
PROGRAM OPTIONS (SWITCHES) SEQ 0024
7.2.2 Right Hand Switches (Detailed Description)
Switch 18 (TRACE)
This switch is used if the user wants to follow test progress.
As each test is started, the diagnostic prints the name of the test
and the current PC. This is useful to gain assurance that the
diagnostic is running or to find out what test it died on, if the
diagnostic fades into oblivion.
The names of all tests selected are printed. If the test has
been disabled, the test name is printed followed by the phrase
'(Disabled)'.
Switch 19 (INHFLT)
If set, this switch inhibits fault isolation. All tests are
still run and in the same order, but the module callout in any error
messages is ommitted.
Switch 20 (INHMSG)
This switch is used to run the diagnostic with all normal
printout except error messages. It can be used in place of 'NOPNT'
switch when looping on a test.
Switch 21 (LOOPGM)
If this switch is not set and OPRSEL switch is not set, the
diagnostic runs 5 passes of all tests. Then the diagnostic returns
to DIAMON or D20MON or KLDCP.
If this switch is set and OPRSEL switch is not set, the
diagnostic runs all tests continuously, pass after pass.
If OPRSEL switch is set, the diagnostic asks 'What Test - ' to
determine what test to run. When done with a test, the diagnostic
returns to this question. The LOOPGM switch is not used.
Switch 22 (LOOPTS)
This switch allows a specified test to be looped on forever. It
is equivalent to specifying '22 377777777777' to run TST22 a very
large number of times. This switch may be overridden by specifying
an explicit repeat count.
This switch is effective only when selecting a single test. If a
class of tests is selected, the switch is ineffective.
MAINDEC-10-DFNIA-A-D Page 21
PROGRAM OPTIONS (SWITCHES) SEQ 0025
If this switch is not set the default repeat count when selecting
a specific test is 1 repetition.
Switch 23 (RUNALL)
This switch forces every segment of a test to be run. Normally,
a test exits after the first error, unless looping on error. To
force the diagnostic to run every segment of the test regardless of
error, this switch may be set.
This switch has no effect if LOOPER switch is set and the
diagnostic is looping on an error.
Switch 24 (DSPEAR)
This switch enables or disables SPEAR error reporting. If the
switch is not set, the diagnostic will make two SPEAR entries - (1)
an entry when the diagnostic is started and (2) an entry either upon
first error or at end of pass if no errors have occurred.
If the switch is set, no SPEAR entries will be made. If the
diagnostic has already started, the second entry will not be made.
Switch 25 (UDEBUG)
This switch allows the diagnostic to be run in user mode without
a port for the purposes of diagnostic development or debug or for
the purpose of familiarization with the diagnostic without affecting
or requiring a port.
If this switch is set, the diagnostic runs every test as
demanded. All tests and most commands in the DEBUG test appear to
succeed.
Switch 26 (MDEBUG)
This switch forces every test to fail and prints out an error
message for each failure. This may be used to debug error messages,
or familiarize a person with typical error printouts of this
diagnostic. It can also be used when trying to diagnose a failing
test which passes the first few test segments - this switch causes
error messages to be printed for passing portions of the test so
that it can be seen what the port is doing correctly, without
looking through the diagnostic listing.
Switch 27 (LDEBUG)
The first action of any test is normally to load the microcode
required by the test. Setting this switch inhibits the automatic
loading of microcode. This allows test microcode to be modified
using the DEBUG facility and the test to be rerun.
MAINDEC-10-DFNIA-A-D Page 22
PROGRAM OPTIONS (SWITCHES) SEQ 0026
Switch 28 (DDEBUG)
This switch affects the contents of error printouts. If not set
error printouts contain the usual amount of data. If set, the
diagnostic prints a complete dump of the port (about 12 pages of
data) upon any error applicable error. The types of errors with
which this would occur are such things as port hung or status error
in received packet, etc.
This switch would be used if complete data regarding the state of
the port and microcode was desired on any error.
Switch 29 (EDEBUG)
This switch affects the contents of error printouts. If not set
error printouts contain the usual amount of data. If set, the
diagnostic prints port number and, if user mode, date and time of
error.
Switch 30 - Unused
Switch 31 - Unused
Switch 32 - Unused
Switch 33 - Unused
Switch 34 - Unused
Switch 35 - Unused
MAINDEC-10-DFNIA-A-D Page 23
ERRORS SEQ 0027
8.0 ERRORS
This section describes the operation of the diagnostic upon
encountering various types of errors. There are basically three
types:
o User input errors
o Hardware errors
o Unexpected errors
8.1 User Input Errors at the Terminal
The diagnostic requests three types of input: numerical, yes or
no, and SIXBIT. The action taken upon input error is as follows:
When an error is detected on numerical input the diagnostic
prints an error message describing the type of error. Then it
either asks the question again, or returns to 'What test -' or
'DEBUG>'.
When an error is detected on a yes or no input, the user is
merely reprompted, until a Y or N is typed.
When an error is detected on SIXBIT input an error message is
printed and the user is asked the question again. The user can then
ask the diagnostic for further information by asking for help or
typing '?'.
8.2 Error Reporting of Hardware Detected Errors
Upon the occurrence of a hardware error a full error description
is printed, depending on the setting of switches 'NOPNT', 'PNTLPT',
'TXTINH', and 'INHMSG'.
If the diagnostic is looping on error only the first occurrence
of an error is printed. Subsequent errors at the same place are not
printed. If the 'DING' switch is set, the terminal bell is sounded
to indicate that an error was detected, even though nothing is
printed.
8.2.1 Reporting to SPEAR
The diagnostic makes 2 SPEAR entries. The first is an entry when
the diagnostic is started. This entry contains the date, time,
user, diagnostic name and version. A second entry is made when the
first error occurs. This entry contains the date, time, user,
diagnostic name and version, failing test name and test description.
MAINDEC-10-DFNIA-A-D Page 24
ERRORS SEQ 0028
If the diagnostic completes a successful pass with no errors, it
will make the second entry as above, but there will be no test name
or test description included.
If, thereafter, an error occurs and the diagnostic has already
made an entry indicating successful completion of a pass, the
diagnostic will make one more entry, giving the error information.
Whenever the diagnostic is restarted by an STM or reloaded and
restarted, it will make entries into the system error file. If the
2 entries have already been made, restarting via a STD or CONT will
not result in additional entries.
SPEAR entries can be disabled using the switch 'DSPEAR'.
8.2.2 Error Printouts
Errors are printed as they occur in a standard form. Where
appropriate, the CSR register or LAR register contents is printed.
A sample printout with TXTINH switch not set follows:
| +-+-+-+-+-+-+
| Error: TST6-4 - NSA ROM Address Test
| Error PC = 430' Switches = 000010 000000 Ucode version 0
| NSA not read correctly:
| Correct (Bytes 0-5): 252 005 252 003 000 005
| Actual (Bytes 0-5): 000 000 000 000 000 000
| FRU: NIA Module
| -------------
This error printout gives the following data:
o Test name - TST4-6 (Test #4 segment #6), name of test is 'NSA
ROM Address Test'.
o Error PC - 430' - address which can be found in the diagnostic
listing of the call to the scope loop routine. Note that this
is a relative address also.
o Switches - those in effect at the time of the error printout.
o 'NSA not read correctly:' - description of the error.
o Results, correct and actual.
o Module callout - NIA module.
MAINDEC-10-DFNIA-A-D Page 25
ERRORS SEQ 0029
| +-+-+-+-+-+-+
| Error: TST10-311 - CRC Test 1
| Error PC = 1050' Switches = 000010 000000 Ucode version 55
| Errors noted with self-directed datagrams:
| What Expected Actual
| ----------- -------- ------
| Packets Sent 200. 200.
| Status Errors 0. 0.
| Packets Rcvd 200. 0.
| Status Errors 0. 0.
| CRC Errors 0. 0.
| DtCmp Errors (PKTS) 0. 0.
| DtCmp Errors (WORDS) 0. 0.
| FRU: NIA Module
| -------------
This error printout gives the following data:
o Test name - TST10-311 (Test #10 segment #311), name of test is
'CRC Test 1'.
o Microcode version number - 55.
o Error PC - 1050' - address of the call to the scope loop
routine.
o Switches - those in effect at the time of the error printout.
o 'Errors noted with self-directed datagrams:' - description of
the error including packets sent and receive and number of
errors expected and actual.
o Module callout - the NIA Module.
8.3 Unexpected Errors
The diagnostic is written to recover from any usual error
condition and continue testing. However, there are a few halts
coded into the diagnostic to catch a completely lost program because
of some unexpected malfunction:
ADDRESS REASON
1011 Fatal push list pointer error
1012 Initial push list pointer error
1013 MUUO with LUUO handler wiped out
1014 DTE20 interrupt without doorbell
1015 DTE20 clock interrupt without flag set
1016 CPU initialization error
1017 End of program error
1020 Interrupt with LUUO handler wiped out
MAINDEC-10-DFNIA-A-D Page 26
ERRORS SEQ 0030
The diagnostic is coded with several fatal instructions which cause
Fatal program error at address xxxxx
to be printed and the diagnostic to halt. These instructions are
placed where the diagnostic finds itself in a situation where it
does not know how to proceed. There are no anticipated program
deficiencies that allow a fatal error to be executed.
MAINDEC-10-DFNIA-A-D Page 27
PROGRAM DESCRIPTION SEQ 0031
9.0 PROGRAM DESCRIPTION
This section provides a functional overview of the diagnostic,
giving information concerning requirements and restrictions, fault
detection and isolation, error handling, terminal input and output
characteristics, and diagnostic applications.
9.1 Program Overview
9.1.1 Program Purpose
DFNIA is a functional diagnostic intended to verify the
functionality of a NI20 port consisting of 3 Port modules, NIA
module, H4000 Transceiver, and NI cables. It attempts to isolate
faults to either - (1) 3 Port modules, (2) NIA module + H4000
Transceiver + cable.
9.1.2 Testing Strategy
The diagnostic attempts to run simpler tests first that exercise
a small amount of logic. Then more and more testing is done, until
the tests are exercising much of the logic of the port at once.
First, the three port modules are tested, with basic hardware tests.
Then basic port operations are verified. Then datagrams of varying
types.
9.2 Run-Time Dynamics
9.2.1 Memory Allocation Requirements
The diagnostic loads and executes in less than 80K of memory.
This includes the memory used by the diagnostic monitor (DIAMON or
D20MON or MAGMON) and the subroutine package (SUBRTN or SUBUSR or
SUBKL).
9.2.2 Operating System Interactions
9.2.2.1 TOPS-10
The diagnostic does not run under TOPS-10.
MAINDEC-10-DFNIA-A-D Page 28
PROGRAM DESCRIPTION SEQ 0032
9.2.2.2 TOPS-20
The diagnostic interfaces with TOPS-20 via the DIAG JSYS. The
diagnostic requests the port using the DIAG JSYS. When done, the
diagnostic releases the device also using the DIAG JSYS.
The diagnostic can only be run if the port is not being used by
the operating system. The DIAG JSYS will succeed only if this is
so. Hence, the user must close any NI connections before running
this diagnostic. This is accomplished via the OPR program.
9.2.3 User Mode Restrictions
9.2.3.1 User Mode Privileges
Under TOPS-20 a user must have at least MAINTENANCE privileges in
order to run the diagnostic. WHEEL's and OPERATOR's also have
sufficient privileges to run the diagnostic in USER Mode.
9.2.3.2 User Mode Priority Interrupts
The diagnostic is not allowed to use the Priority Interrupt
System in user mode. In user mode, the diagnostic polls the CSR
Register for interrupt conditions.
9.3 Exec Mode Capability
The diagnostic runs in exec mode under KLDCP or, additionally,
under DIAMON or MAGMON. All tests are capable of being run in exec
mode.
9.4 User Mode Capability
The diagnostic runs in user mode under TOPS-20 (Release 6.1 or
newer). There are some restrictions imposed upon the diagnostic in
user mode that are listed in Section 9.2.3 'User Mode Restrictions'.
9.5 Fault Detection
MAINDEC-10-DFNIA-A-D Page 29
PROGRAM DESCRIPTION SEQ 0033
9.5.1 Error Resolution
The diagnostic isolates faults to a logical functional group,
either the three port modules, or the NIA module + H4000 Transceiver
+ cables.
9.5.2 Fault Detection And Isolation
The purpose of the diagnostic is to perform a functional test of
the NI20, not necessarily to detect and isolate faults. However
this diagnostic should detect 50% of solid faults in the 3 port
modules, and 85% of faults in the NIA module, and isolate 95% of
these to the FRU.
9.5.3 Fault Detection
Typically, the diagnostic detects a fault, then prints it out and
continues testing. The failing module is printed with each error
message.
Occasionally, particularly with EBUS interface failures, the
diagnostic may just hang, or the KL10 microcode may hang. This may
happen if the port cannot complete an EBUS operation such as an
examine or deposit properly. If this occurs, no error message or
module callout is printed. The solution is to run the basic
diagnostic, DFPTA, in order to debug or verify the three port
modules, EBUS, MPROC, and CBUS modules.
9.6 Performance During Hardware Failures
9.6.1 CPU/Memory Failures
Most CPU and memory faults are fatal errors to the diagnostic and
it does not continue after one.
9.6.2 Power Fail/Restart
If a power fail occurs, the diagnostic must be reloaded and rerun
when the system is back in operation.
9.6.3 Port Failure
Hardware failure in the port is anticipated and results in an
error message.
MAINDEC-10-DFNIA-A-D Page 30
PROGRAM DESCRIPTION SEQ 0034
9.6.4 Unexpected Traps
The diagnostic can fail due to an unexpected malfunction.
Sometimes an error code is printed, if the subroutine package
intercepts the error. Other cases may result in a hung diagnostic
or CPU or occasionally a fatal error message. See the Section 8.3
'Unexpected Errors' for more details.
9.7 Program Applications
The diagnostic can be used for coarse determination of a fault -
does the port work and if not what module is broken.
It can also be used for detailed examination of a port.
9.7.1 Users and Uses
The diagnostic is generally used only by Manufacturing to assist
module verification and debug, and by Customer Services when
determining the FRU of a failing port.
9.7.2 Engineering Usage
Engineering used this diagnostic for microcode debug and for
prototype debug and maintenance. Engineering may use the diagnostic
if any ECO's are made in the future.
9.7.3 Manufacturing Usage
This diagnostic is used by Manufacturing as part of the
acceptance procedure for an NI20.
9.7.4 Customer Services Usage
Customer Services uses the diagnostic as part of acceptance
procedure, when an NI20 is sent to a customer in a drop ship
environment. Customer Services also uses this during CM and PM.
9.7.5 Customer Usage
With the exception of OEM customers, it is not likely that any
customers will use the diagnostic. If they have a problem with the
port they notify Customer Services who can then run the diagnostic.
OEM customers, running the diagnostic themselves, would interface to
MAINDEC-10-DFNIA-A-D Page 31
PROGRAM DESCRIPTION SEQ 0035
their account sales representative if any difficulties arose or
problems discovered.
9.8 Test Design
The basic design of most tests is as follows:
o Do something to the port.
o Inspect the results.
o If error, print an error message.
o If error and error looping enabled, loop on error.
This fits into the diagnostic as described by the following steps
done by the diagnostic:
o Do program initialization
o Select test category
o Run these tests
o Select a test
o Run it
o Select next test, exit if no more
o Select next test category to test if OPRSEL switch is set,
otherwise exit the diagnostic.
9.8.1 Type of Tests
There are three types of tests:
o Hardware Test
o Program Option Selection
o Debugger Test
Whenever the tests are run without manual control of which test
is selected, only hardware tests are run. This is the major
function of the diagnostic and these tests comprise 95% of the
MAINDEC-10-DFNIA-A-D Page 32
PROGRAM DESCRIPTION SEQ 0036
diagnostic.
Program option selection tests can be selected when manual
control of what test to run has been selected. These are not tests
in that they do not do anything to the hardware. But since they are
selected from a list of hardware tests, they are called tests.
These consist of switch selections or changes, help, and exit
commands.
The debugger test is a special test that allows one to to CONI,
CONO, DATAI, and DATAO's to the port and in effect write one's own
test. The purpose of this test is for hardware debug of the port,
where one is interested in doing things and inspecting the results
in a less formal fashion than just running tests. This is only one
test but it allows many different things to be done to the port. It
is intended to be used primarily in diagnostic and microcode debug,
but may be used later by Customer Services or Manufacturing.
9.8.2 Test Flow
The diagnostic runs all tests in numerical sequence, printing out
error message and module callouts as necessary.
The following sections describe starting and stopping tests.
9.8.2.1 Starting the Test
After the program switches have either been given via console
switches or by typing them in on the terminal, the diagnostic starts
the tests as selected by the switches or by user input.
If test tracing is enabled, the diagnostic prints the test pc and
test name at the beginning of each test, and a phrase such as
'(disabled)' if the test actually is not going to be run.
A test is disabled if such has been specified with the DISABLE
test command.
9.8.2.2 Stopping the Test
A test sequence may stop either by terminating normally, by
halting on error (if the ERSTOP switch is set), by the user setting
the ABORT or RSTART switches, or by typing an Altmode or C. In user
mode, ABORT and RSTART are ignored if set.
The diagnostic continues at one of several places depending on
switch settings and whether or not the diagnostic is being run in
exec or user mode and what loader has been used to load the
diagnostic:
MAINDEC-10-DFNIA-A-D Page 33
PROGRAM DESCRIPTION SEQ 0037
o D20MON CMD -
o DIAMON CMD -
o MAGMON CMD -
o What Test -
o @ (TOPS-20 prompt)
o o >. (KLDCP prompt)
9.8.2.3 Obtaining Run Time Status (Control-T)
In user mode the current program status is given when T is typed.
This is not available in exec mode.
9.8.2.4 Obtaining Run Time Status (S or Control-S)
In exec mode, while running tests, the current test name and time
is printed when an S <CR>, s <CR> or Control-S is typed.
In user mode, typing an S or s produces the printout.
MAINDEC-10-DFNIA-A-D Page 34
TEST DESCRIPTIONS SEQ 0038
10.0 TEST DESCRIPTIONS
10.1 Test Description Assumptions
All test descriptions assume that no program switches are set.
The action of a test if a particular switch is set may be determined
by reviewing the function of the switch, given in prior sections.
10.2 Test Description Overview
The description for 'program option selection' test consists of
what each item does and a description of its use.
The description given for a 'hardware' test consists of a single
line test description. The diagnostic listing provides a detailed
description at the beginning of each test. Specific implementation
details can be obtained from the listing or from the microcode of
the test.
The description for the 'debug' test gives a list of commands and
what each does.
MAINDEC-10-DFNIA-A-D Page 35
TEST DESCRIPTIONS SEQ 0039
10.3 Program Option Selections
10.3.1 Basic Description
This is a set of commands that can be given to facilitate running
tests or debugging the port.
10.3.2 Commands Available
The commands available in regular mode are as follows, which are
typed in response to the prompt 'What test - ':
NAME DESCRIPTION
---- -----------
Hardware Tests:
--------------
ALL n Execute ALL tests (n times)
PORT n Execute Port modules tests
NIA n Execute NIA module tests
LOOP n Execute Loopback tests
FUNCT n Execute tests verifying microcode functionality
m n Test m
General Commands:
----------------
HELP Print this message
EXIT Return to normal test dispatching
DDT Enter DDT (Type RTN$X to return)
TAKE Take cmds from file
NTAKE Take cmds from file (not echoed)
DEBUG Enter port debugger
DIAMON Enter DIAMON
Test Control Commands:
---------------------
ENABLE n Enable execution of test n
DISABL n Disable execution of test n
DISLIS List disabled tests
LIST n List all tests (or just test n)
Statistics Commands:
-------------------
STATIS Print statistics
ZSTATS Clear statistics
CI Configuration Command:
------------------------
MAINDEC-10-DFNIA-A-D Page 36
TEST DESCRIPTIONS SEQ 0040
CONFIG Print configuration
Switches:
--------
SWITCH Enter switch information
SWPRIN Print current switch settings
NOPNT Complement 'no print' switch
PNTLPT Complement 'print lpt' switch
DING Complement 'bell on error' switch
ERSTOP Complement 'halt on error' switch
PALERS Complement 'print all errors' switch
RELIAB Complement 'reliability mode' switch
TXTINH Complement 'text inhibit' switch
OPRSEL Complement 'operator select' switch
TRACE Complement 'trace test' switch
INHFLT Complement 'inhibit fault isolation' switch
INHMSG Complement 'inhibit error message' switch
LOOPGM Complement 'loop on pgm' switch
LOOPTS Complement 'loop on test' switch
RUNALL Complement 'run all test segments' switch
DSPEAR Complement 'disable SPEAR reporting' switch
UDEBUG Complement 'user mode debug' switch
MDEBUG Complement 'error message debug' switch
LDEBUG Complement 'load microcode debug' switch
DDEBUG Complement 'dump on error' switch
EDEBUG Complement 'expanded error msg' switch
10.3.3 Detailed Command Description
In more detail these commands are as follows:
10.3.3.1 Hardware Tests
ALL n
This command will run all hardware tests the number of times
specified by the repeat count. If no repeat count is specified, the
diagnostic asks how many passes to run.
PORT n
This command will run all port related (EBUS, MPROC, CBUS
modules) tests the number of times specified by the repeat count.
If no repeat count is specified, the diagnostic asks how many passes
to run.
MAINDEC-10-DFNIA-A-D Page 37
TEST DESCRIPTIONS SEQ 0041
NIA n
This command will run all NIA module tests the number of times
specified by the repeat count. If no repeat count is specified, the
diagnostic asks how many passes to run.
LOOP n
This command will run all LOOPBACK tests the number of times
specified by the repeat count. If no repeat count is specified, the
diagnostic asks how many passes to run.
FUNCT n
This command will run all tests which verify the functionality of
the microcode. They will be run the number of times specified by
the repeat count. If no repeat count is specified, the diagnostic
asks how many passes to run.
m n
This command is given to run a single test. The test number is
given followed by an optional repeat count. If a repeat count is
not given, the test is executed only once.
10.3.3.2 General Commands
HELP
This command prints a one line description for each command.
EXIT
This command returns control to the diagnostic loader or to KLDCP
if no loader program was used to load the diagnostic in exec mode.
DDT
This command invokes DDT. When RTN$X (POPJ 17,0) is executed,
the diagnostic resets the PI system in exec mode and returns to
'What Test - ' question. DDT can also be entered by typing
Control-D and when done typing RTN$X. When invoked in this fashion,
the diagnostic does not reset the PI system.
TAKE file ext
This command takes commands from a file. The file may be
specified as an argument to the command. If no file name is
specified, the default file name is used. The default file name is
either 'DFNIA.CMD' or the last file specified.
Any legal command may be specified except another TAKE or
commands which cause exit from the diagnostic such as DDT or DIAMON
or EXIT. DIAMON or EXIT may be included but processing of the take
MAINDEC-10-DFNIA-A-D Page 38
TEST DESCRIPTIONS SEQ 0042
file will terminate with the command. The diagnostic prints each
command and result on the terminal as it executes each command.
The file specified must be on the load device known to MAGMON or
D20MON or DIAMON. If not, an error message is printed and the take
command is aborted.
If any error occurs while processing the take file, the take
command is aborted. Errors include any unexpected errors such as
unrecognized command, failures to start the port, argument errors,
etc.
NTAKE file ext
This command is identical to the TAKE command with the single
exception that the commands executed are not echoed on the terminal.
All output resulting from execution of the commands is echoed.
DEBUG
Enter port debugger. This test allows specific operations to be
done with the port without the restrictions of executing a
particular test.
DIAMON
Enter DIAMON. This is the same as the EXIT command if a
diagnostic loader is present. If MAGMON is loaded instead of
DIAMON, control returns to MAGMON.
10.3.3.3 Test Control Commands
ENABLE n,n,n,... and DISABL n,n,n,...
The running of a particular test can be explicitly prevented with
the DISABL command. The ENABLE command allows the execution of the
specified tests to be enabled again. Disabling a test will
guarantee that the test will not be run. Enabling a test will allow
a test to be run, but whether or not it is run, depends on the
determination made by the fault isolation algorithm and the
availability of the required port modules.
Example:
| What test - ENABLE 3,4
| What test - DISABL 3,4,10,22
DISLIS
This command lists what tests have been disabled. Example:
| What test - DISLIS
|
MAINDEC-10-DFNIA-A-D Page 39
TEST DESCRIPTIONS SEQ 0043
| TST1 TST3 TST4 TST11 TST22
LIST n
List all tests (or just test n). This command prints the test
description which is also printed in each error message. If no
argument is given, all test descriptions are printed (this can be
aborted by typing an altmode). If a test number such as 2 is typed,
only the description for that test will be printed. Example:
| What test - LIST 2
|
| TST2 - Port Hardware Test 2
|
| What test - LIST
|
| TST1 - Port Hardware Test 1
| TST2 - Port Hardware Test 2
| TST3 - Port Hardware Test 3
| ...
10.3.3.4 Statistics Commands
STATIS
This command prints accumulated statistics. Statistics are kept
only on packets sent and packets received and various information
connected with each. See the Section 6.9.1 'Statistics Printouts'
for more details.
ZSTATS
This command clears statistics. Statistics are also
automatically cleared whenever the diagnostic is restarted via a STM
command.
10.3.3.5 NI Configuration Command
CONFIG
This command directs the diagnostic to print the configuration of
nodes on the NI bus. This is identical to running TST26
'Configuration Test'. It merely prints whatever configuration data
has been accumulated so far. For example:
MAINDEC-10-DFNIA-A-D Page 40
TEST DESCRIPTIONS SEQ 0044
| What test - CONFIG
|
| ***** NI Configuration *****
| Physical Address Ver ECO Usr Com DLL
| Bt1 Bt2 Bt3 Bt4 Bt5 Bt6 # # ECO Functionality Dev Type
| ----------------------- --- --- --- ---------------- --- --------
| 252 000 003 003 000 000 (Self)
| 252 000 003 003 000 006 1 0 0 12000030 0 Ethernet
| 274 033 000 000 000 001 5 101 1 10004730 0 Ethernet
Only those nodes which broadcast a periodic system ID message
will be included. Nodes which are turned off or are not running
will not be seen.
10.3.3.6 Switches
SWITCH
Enter switch information. Switches can be entered as in the
following example. Usually, though, it is easier just to type the
switch name to turn on or off a switch.
| What Test - SWITCH
|
| Print the selectable pgm switches? (Y or N) - Y
|
| ----Left Side Switches-------- ----Right Side Switches--------
|
| SW KL10 11 Function SW Value Function
| -- ---- ---- -------- -- ----- --------
| 0 400000 100000 Abort 18 400000 Program trace
| ...
|
| Switches = 020010 004000
|
| 20010 LH Switches <# or ?> - ?
|
| Type Y,N,^,CR,^Z
|
| N ABORT -
| N RSTART -
| ...
|
| 4000 RH Switches <# or ?> - ?
|
| Type Y,N,^,CR,^Z
|
| N TRACE -
| N INHFLT -
| ...
MAINDEC-10-DFNIA-A-D Page 41
TEST DESCRIPTIONS SEQ 0045
SWPRIN
Print current switch settings. Example:
| What Test - SWPRIN
|
| Switches: 020010 002000 PNTLPT OPRSEL UDEBUG
NOPNT PALERS TRACE LOOPTS MDEBUG
PNTLPT RELIAB INHFLT RUNALL LDEBUG
DING TXTINH INHMSG DSPEAR DDEBUG
ERSTOP OPRSEL LOOPGM UDEBUG EDEBUG
The name of each of these switches can be typed. The result is
to complement the switch setting. If left hand switches are typed
in exec mode an error message is printed.
MAINDEC-10-DFNIA-A-D Page 42
TEST DESCRIPTIONS SEQ 0046
10.4 Hardware Tests
More information on each of the following hardware tests listed
here can be found in the program listing.
10.4.1 Hardware Tests - EBUS/MPROC/CBUS modules
TST1 - Port Hardware Test 1
TST2 - Port Hardware Test 2
TST3 - Port Hardware Test 3
10.4.2 Functional Tests
10.4.2.1 Basic Operations
TST4 - Idle Loop Test
TST5 - Queue Handling Test
TST6 - NSA ROM Address Test
TST7 - NSA RAM Address Test
10.4.2.2 CRC Tests
TST10 - CRC Test 1
TST11 - CRC Test 2
10.4.2.3 Datagram Tests
TST12 - Non-BSD Datagram Loopback Test
TST13 - BSD Datagram Loopback Test 1
TST14 - BSD Datagram Loopback Test 2
10.4.2.4 Multicast Tests
TST15 - Multicast Table Test 1
TST16 - Multicast Table Test 2
TST17 - Multicast Table Test 3
TST20 - Broadcast Test 3
10.4.2.5 PTT Tests
TST21 - PTT Table Test 1
TST22 - PTT Table Test 2
TST23 - PTT Table Test 3
MAINDEC-10-DFNIA-A-D Page 43
TEST DESCRIPTIONS SEQ 0047
10.4.2.6 Miscellanous Tests
TST24 - PAD Flag Bit Test 1
TST25 - PAD Flag Bit Test 2
TST26 - Configuration Test
TST27 - Statistics Test
MAINDEC-10-DFNIA-A-D Page 44
TEST DESCRIPTIONS SEQ 0048
10.5 Debug Test
10.5.1 Basic Description
This test allows the selection of different operations that may
be done with the port. In some cases, probably rarely, a field
engineer may wish to diagnose a port by doing particular operations.
More often this type of testing may be useful when repairing
individual modules if the technician doing the repair is very
familiar with the module and how it works. This test provides the
ability to perform a basic operation such as writing a register or
doing something with microcode and then inspecting the results to
see what happened.
Normally, the port tests provide sufficient detection and
isolation of faults to fix the port. Occasionally, a person trying
to fix the port may encounter an unusual problem not detected by the
diagnostic or having strange symptoms. This test may allow some
understanding of the problem to be gained.
This test can also be used to debug microcode using the
breakpoint facilities. And it can be used to run small microcode
routines of the user's own devising.
10.5.2 Commands Available
The commands available in debug mode are as follows, which are
typed in response to the prompt 'DEBUG> ':
NAME DESCRIPTION
---- -----------
General Commands:
----------------
HELP Print this message
EXIT Exit DEBUG mode
DDT Enter DDT (Type RTN$X to return)
SET opt arg Set/clear/print options
TAKE file ext Take commands from a file
NTAKE file ext Take commands from file (unechoed)
Starting, Stopping, Initializing the Port:
-----------------------------------------
RESET Issue EBUS Reset
CLEAR Issue a 'Port Clear'
START adr Start the port micro-sequencer
STOP Stop the port micro-sequencer
CONT Continue the port micro-sequencer
SSTEP cnt Single step the port micro-sequencer
STRACE cnt Single step and trace execution
MAINDEC-10-DFNIA-A-D Page 45
TEST DESCRIPTIONS SEQ 0049
SPRINT cnt Print single step history data
SCLEAR Clear single step history data
SSINIT Set up single step addr/data/history
Handling Port Registers:
-----------------------
ECSR Examine CSR Register
DCSR dat Deposit CSR Register
ZCSR Zero CSR Register
EEBUF Examine EBUF register
DEBUF dat Deposit EBUF register
ZEBUF Zero EBUF register
ELAR Examine LAR register
DRAR dat Deposit RAR register
ZRAR Zero RAR register
Handling Port CRAM Locations:
----------------------------
The next few commands must have at least one argument and
possibly two. Two arguments give the range of CRAM address to be
altered or inspected. If only one argument is given the range is
only one location. If the deposit command is given, the diagnostic
will ask what to deposit into each location.
DCRAM adr,adr Deposit into CRAM
BCRAM adr,adr Deposit into CRAM by fields
ACRAM adr,adr Alter CRAM
ECRAM adr,adr Examine CRAM
LCRAM adr,adr List CRAM
ZCRAM adr,adr Zero CRAM
2901 Commands:
-------------
E2901 reg,reg Examine 2901 registers
D2901 reg,dat Deposit 2901 register
Z2901 reg,reg Zero 2901 registers
Local Storage Commands:
----------------------
ELOCS adr,adr Examine local storage
DLOCS adr,dat Deposit local storage
ZLOCS adr,adr Zero local storage
Mark Bit Commands:
-----------------
MARK adr,adr Set mark bit
RMARK adr,adr Remove mark bit
CMARK adr,adr Clear all mark bits
LMARK adr,adr List mark bits
MAINDEC-10-DFNIA-A-D Page 46
TEST DESCRIPTIONS SEQ 0050
Breakpoint Commands:
-------------------
BREAK adr,adr Set breakpoint
RBREAK adr,adr Remove breakpoint
CBREAK adr,adr Clear all breakpoints
LBREAK adr,adr List breakpoints
Microcode Commands:
------------------
LOAD tst Load microcode from Test 'tst' into CRAM
LIST tst List microcode from Test 'tst'
FLOAD Load microcode from file into CRAM
FVERFY Verify microcode loaded from file
FLIST List microcode in file
FEXAM Examine microcode in file
Statistics Commands:
-------------------
STATIS Print statistics
ZSTATS Clear statistics
Configuration Commands:
----------------------
CONFIG Print configuration
NI Commands:
-----------
NI Commands:
-----------
PINIT Initialize PCB and queues
SIDLE Start port/wait for IDLE loop
BPACK Build packet/put on queue
IQUEUE Insert packet on command queue
PQUEUE n Print specified queue
PPCB Print PCB
WATCH Watch port and print events
DEPPTT adr,data Deposit into PTT table
DEPMUL adr,data Deposit into Multicast table
DEPPAK adr,data Deposit into packet
PLI Register Commands:
---------------------
DPLI lnk,data,rep Deposit PLI data
EPLI lnk,rep Examine PLI data
Miscellaneous Commands:
----------------------
MAINDEC-10-DFNIA-A-D Page 47
TEST DESCRIPTIONS SEQ 0051
TRANSL dat Translate data to CSR bits
FILLNX dat Fill CRAM with 'J=.+1,CTL=dat'
FILLPC dat Fill CRAM with 'J=.,CTL=dat'
CCODE Print condition codes
ESTACK Examine 2910 stack contents
ENEXT Examine next
DNEXT arg Deposit next
DUMP Dump entire port status
IPRINT Print accumulated interrupt activity
ICLEAR Clear accumulated interrupt activity
IINIT Init interrupt system
Data Transfer Commands:
----------------------
CCWPNT Print CCW list
LOGPNT Print logout data
Switches:
--------
SWITCH Enter switch information
SWPRIN Print current switch settings
NOPNT Complement 'no print' switch
PNTLPT Complement 'print lpt' switch
DING Complement 'bell on error' switch
ERSTOP Complement 'halt on error' switch
PALERS Complement 'print all errors' switch
RELIAB Complement 'reliability mode' switch
TXTINH Complement 'text inhibit' switch
OPRSEL Complement 'operator select' switch
TRACE Complement 'trace test' switch
INHFLT Complement 'inhibit fault isolation' switch
INHMSG Complement 'inhibit error message' switch
LOOPGM Complement 'loop on pgm' switch
LOOPTS Complement 'loop on test' switch
RUNALL Complement 'run all test segments' switch
DSPEAR Complement 'disable SPEAR reporting' switch
UDEBUG Complement 'user mode debug' switch
MDEBUG Complement 'error message debug' switch
LDEBUG Complement 'load microcode debug' switch
DDEBUG Complement 'dump on error' switch
EDEBUG Complement 'expanded error msg' switch
10.5.3 Detailed Command Description
In more detail these commands are as follows:
MAINDEC-10-DFNIA-A-D Page 48
TEST DESCRIPTIONS SEQ 0052
10.5.3.1 General Commands
HELP
This command prints a one line description similar to the above
for each command.
EXIT
This command returns control to normal test dispatching at the
'What Test -' question.
DDT
This command invokes DDT. When RTN$X (POPJ 17,0) is executed,
the diagnostic resets the PI system in exec mode and returns to
'DEBUG>' question. DDT can also be entered by typing Control-D and
when done typing RTN$X. When invoked in this fashion, the
diagnostic does not reset the PI system.
SET
This command is used to set, clear, or print program options.
The option is specified as the first argument and the option setting
as the second argument. The options that may be dealt with are as
follows:
o SET ADDR adr.
This command sets the start address of the microsequencer.
Whenever a START command or a SSINIT command is given, the
default address given here is used. A START command may also
explicitly specify the starting address. No commands other than
SET ADDR alter the default starting address.
The initial default address is location 0. To find out the
current default address, type SET ADDR <CR>.
o SET CSR data.
This command sets the initial CSR register starting contents.
When a subsequent START or SSINIT command is given, this data is
written to the CSR when starting the microsequencer. This
allows the state of CSR bits to be set up - such as interrupt
enable and PI level bits.
The initial value is 0. When a START or single step command is
given with the default CSR data equal to 0, the diagnostic
writes 14 to the CSR register (MPRUN, PI Level 4) or 20014 if
single stepping (SINCYC bit included).
To find out the current start data, type SET CSR <CR>.
o SET PARITY arg.
MAINDEC-10-DFNIA-A-D Page 49
TEST DESCRIPTIONS SEQ 0053
This command affects the automatic parity generation when
loading microcode into the CRAM. If the flag is 'YES' the
diagnostic computes correct parity before it loads any
microcode. If 'NO' the diagnostic assumes the parity has
already computed and does not alter the parity bit specified in
the microcode data.
This flag only affects microcode explicitly loaded in the DEBUG
test. This flag does not affect loading microcode from a file.
When operational microcode is loaded in this fashion, parity is
not affected.
The initial value of the flag is 'YES'. To find out the current
setting, type SET PARITY <CR>.
o SET EBUF arg.
This command affects the automatic preservation of the EBUF when
single stepping or stopping the microsequencer. If 'preserve
EBUF' flag is 'YES' the diagnostic will read the EBUF before
reading the LAR and then write back the data afterwards. If the
flag is 'NO' the contents of the EBUF will be destroyed every
time the RAR is written or the LAR read.
The initial value of the flag is 'YES'. To find out the current
setting, type SET EBUF <CR>.
o SET LENGTH len.
This command sets the text length in bytes to be used when
generating datagrams. Any length up to 750 (decimal) bytes may
be specified.
The initial length is '100. bytes'. To find out the current
setting, type SET LEN <CR>.
o SET PAT n.
This command specifies the data pattern to be used when building
a datagram containing a text portion. Any data pattern from 1
to 126 (octal) may be entered.
The initial value is '1' (data pattern zeros). To find out the
current setting, type SET PAT <CR>.
o SET PATLIS arg,arg.
This command prints what data patterns are available. One or
two arguments may be given to specify a range of data patterns.
The diagnostic prints a description for each data pattern in the
range specified. If no arguments are specified, all data
patterns will be printed.
o SET FNAME name ext
MAINDEC-10-DFNIA-A-D Page 50
TEST DESCRIPTIONS SEQ 0054
The diagnostic allows a microcode file to be loaded into CRAM or
listed on the terminal. The commands used do not allow a
microcode file name to be specified. The name of the file used
can be changed by this command.
The initial file name is 'NI20.ULD'. To find out the current
setting, type SET FNAME <CR>.
o SET PCB arg
This command is used for operational microcode debug. A flag is
maintained that determines whether or not the START command
should set up a CCW list specifying a portion of the PCB (Port
Control Block). If the flag is set, the diagnostic will set up
the CCW list. The microcode reads the data in the PCB for
initialization purposes.
The initial value of the flag is 'NO'. To find out the current
setting, type SET PCB <CR>.
o SET RESPON arg
This option specifies whether or not a response packet is
desired on every command packet given to the operational
microcode. If the response flag is not set in the packet, a
response packet will be placed on the response queue only if an
error occurs. If the response flag is set, a response packet is
always built.
The initial setting of the flag is 'YES'. To find out the
current setting, type SET RESPON <CR>.
o SET DADDR
This option specifies the destination address. All packets
built in DEBUG mode will contain this destination address.
The initial setting of the destination address is '0'. To find
out the current setting, type SET DADDR <CR>.
o SET SADDR
This option sets the source address. The diagnostic reads the
station address ROM on the NIA module and saves this as the
source address.
Whenever the microcode is started, the diagnostic reads the NI
station address and replaces whatever has been saved as the
source address.
To find out the current setting, type SET SADDR <CR>.
o SET PTTVAL
MAINDEC-10-DFNIA-A-D Page 51
TEST DESCRIPTIONS SEQ 0055
This option determines the PTT value to be used when
constructing a packet.
The initial setting is '5'. To find out the current setting,
type SET PTTVAL <CR>.
o SET PRINT
This option determines the amount of the text portion to print
when printing a packet.
The initial setting of the flag is '3 words'. To find out the
current setting, type SET PRINT <CR>.
o SET INTERV
This parameter determines the interval to insert packets on the
command queue when running the special debug function 'WATCH'.
If this is set to zero, packets will be stuffed on the command
queue until there is no more room, then as packets are received
get put on the free queue, more packets are placed on the
command queue.
The initial setting of the interval is '0 milliseconds'. To
find out the current setting, type SET INTERV <CR>.
o SET SUMMAR
This parameter determines the summary interval when running the
special debug function 'WATCH'. Short statistics will be
printed at this interval.
The initial setting of the interval is '30 seconds'. To find
out the current setting, type SET SUMMAR <CR>.
o SET WHAT
This command prints the current selection of each option.
o SET HELP
This command prints a help message describing each option
available to the set command.
TAKE file ext
This command takes commands from a file. The file may be
specified as an argument to the command. If no file name is
specified, the default file name is used. The default file name is
either 'DFNIA.CMD' or the last file specified.
Any legal command may be specified including another TAKE
command. The presence of a TAKE or DDT or EXIT (from DFNIA) command
in the take file will terminate use of the current file. The
diagnostic prints each command and result on the terminal as it
MAINDEC-10-DFNIA-A-D Page 52
TEST DESCRIPTIONS SEQ 0056
executes each command.
The file specified must be on the load device known to MAGMON or
D20MON or DIAMON. If not, an error message is printed and the TAKE
command is aborted.
If any error occurs while processing the take file, the TAKE
command is aborted. Errors include any unexpected errors such as
unrecognized command, failures to start the port, argument errors,
etc.
NTAKE file ext
This command is identical to the TAKE command with the single
exception that the commands executed are not echoed on the terminal.
All output resulting from execution of the commands is echoed.
10.5.3.2 Starting, Stopping, Initializing the Port
The START, SSTEP or STRACE commands can be given at any time
without concern if the port is running or not. The diagnostic will
stop the port if it has to and clear any error condition. If it
changes the state of the port, the diagnostic prints a message to
that effect.
RESET
Issue EBUS Reset. This does a CONO APR,200000. In user mode a
'Port Clear' is done instead.
CLEAR
Issue a 'Port Clear'. A 400000 is written to the CSR register.
START adr
The port is started at address specified. The procedure is as
follows:
o Determine start address. If no address is specified, the start
address used is the default address given by the SET ADDR
command.
o Determine start CSR data. This is the data specified by a SET
CSR command. Insert the necessary bit 'MPRUN' and ensure
'SINCYC' bit is not set.
o Read the CSR register, if the port is already running or error
bits are set, stop the port or clear error bits as necessary.
o Write the start address to the RAR
MAINDEC-10-DFNIA-A-D Page 53
TEST DESCRIPTIONS SEQ 0057
o Write CSR data to the CSR
CONT
This command is identical in function to the START command with
the exception of the start address. In addition, if the port is not
already stopped, an error message is printed and the start sequence
aborted. The start address is the last 'next' address obtained from
a single step command.
The only purpose of this command is to start up the port after
single stepping it for a while.
STOP
Stop the port micro-sequencer and print out the contents of the
LAR. If the CSR is inaccessible, or if error bits CRAM PE or MBUS
Error are set, an error message is printed.
SSTEP n and STRACE n
Single step the port micro-sequencer 'n' times. Before this
command is done the first time, the start data and start CSR data
must be set up using the SSINIT command. Thereafter, the address
written to the RAR each time the port is single stepped is the 'last
address' read from the LAR after the prior single step.
STRACE causes the single step history data to be printed at the
same time that single steps are being done. The data is printed in
the same format as the SPRINT command except for the order in which
the single steps are printed.
The port is stopped or error bits are cleared from the CSR
register as necessary before any single steps are done.
If CRAM PE or MBUS Error bits become set in the CSR register, a
message is printed and the single stepping is aborted.
To abort the single step procedure at any time, type altmode.
SPRINT n
Print single step history data. Data for the last 'n' (maximum
128) single steps are printed in the following format. If no
argument is given, no more than 20 single steps are printed.
| DEBUG> SPRINT 4
|
| RAR LAR CSR (final) SS#
| 0000 0100 000000 020010 12
| 0100 0230 000000 020010 11
| 0230 0231 000000 020010 10
| 0231 0232 000000 020010 7
MAINDEC-10-DFNIA-A-D Page 54
TEST DESCRIPTIONS SEQ 0058
SCLEAR
Clear single step history data.
SSINIT
Set up single step data. This sets the single step address to be
the default address specified by the SET ADDR command. The single
step CSR data is set to the default data specified by the SET CSR
command. Also, the single step history data is cleared.
This command MUST be given in order to execute the first single
step. If not given the port will start at the last address executed
by a single step.
10.5.3.3 Handling port registers
Each of the EBUF commands can be given at any time without
concern if the port is running or not. The diagnostic will stop the
port if it has to and clear any error condition. If it changes the
state of the port, the diagnostic prints a message to that effect.
ECSR
Examine CSR Register. The contents are printed in octal and
translated into English as well.
DCSR dat
Deposit CSR Register. The data expected is up to 6 octal digits.
ZCSR
Zero CSR Register. This also stops the port if it is running.
EEBUF
Examine EBUF register. The data is printed in halfword format.
The port is stopped or error bits are cleared from the CSR
register as necessary before reading the EBUF. Then the 'Test EBUF'
bit is set in the CSR register if it is not already set and the EBUF
is read.
DEBUF dat
Deposit EBUF register. The data expected is up to 12 octal
digits.
The port is stopped or error bits are cleared from the CSR
register as necessary before reading the EBUF. Then the 'Test EBUF'
bit is set in the CSR register if it is not already set and the EBUF
is written.
MAINDEC-10-DFNIA-A-D Page 55
TEST DESCRIPTIONS SEQ 0059
ZEBUF
Zero EBUF register
The port is stopped or error bits are cleared from the CSR
register as necessary before reading the EBUF. Then the 'Test EBUF'
bit is set in the CSR register if it is not already set and the EBUF
is zeroed.
ELAR
Examine LAR register and print it as 'LAR/ 0000'. This is
actually a 13 bit register. The right most bit is the bit written
to the RAR register to specify which half of the CRAM to access.
This bit is not printed.
DRAR dat
Deposit RAR register. The data consists of a 12 bit CRAM address
followed by one bit specifying left or right half. Example:
| DEBUG> DRAR 0 ; Write location 0 (right half)
| DEBUG> DRAR 1 ; Write location 0 (left half)
| DEBUG> DRAR 10 ; Write location 4 (right half)
| DEBUG> DRAR 11 ; Write location 4 (left half)
ZRAR
Zero RAR register.
10.5.3.4 Handling port CRAM locations
Each of the following commands can be given at any time without
concern if the port is running or not. The diagnostic will stop the
port if it has to and clear any error condition. If it changes the
state of the port, the diagnostic prints a message to that effect.
The diagnostic also ensures that 'Test EBUF' bit is not set and 'Sel
LAR' bit is not set.
Commands that read or write CRAM locations are given up to 2
arguments. The action in each case is as follows:
o No arguments - The CRAM addresses used are those last used. So
if a zero CRAM command is given to clear locations 1001 through
1004, a subsequent examine cram command with no arguments would
examine locations 1001 through 1004.
o One argument - The range of CRAM locations is taken as
addr1,addr1.
MAINDEC-10-DFNIA-A-D Page 56
TEST DESCRIPTIONS SEQ 0060
o Two arguments - The range of CRAM locations is taken as
addr1,addr2.
DCRAM adr,adr
Deposit into CRAM locations specified either by explicit
arguments or by default. The format of the data is the same format
produced as output of the MICRO2 assembler. Example:
| DEBUG> DCRAM 10
|
| Type xxxx,xxxx,xxxx,xxxx,xxxx
| 0010 :: 11,22,33,44,55
BCRAM adr,adr
Deposit into CRAM locations specified either by explicit
arguments or by default. The data is asked for each location, one
field at a time. The initial data to be written to each CRAM
location is zero. Example:
| DEBUG> BCRAM 10
|
| Type value,value... or ^,CR,^Z,field name
| 0010 ::
| J -
| PAR - Type: value<CR> value<CR> ...
| OENA - or: value,value,...<CR>
| MGC - or: ^ to back up to the previous
| SORC - value
| FUNC - or: <CR> to leave a value unchanged
| DEST - or: field name such as MGC or FUN or
| CENA - A or M (for MGC) .. to skip to
| RAM - a particular field
| A - or: ^Z to terminate input and store
| B - the CRAM location
| SK - or: $ (altmode) to abort the command
| BUS - and not store anything
| CRY -
| CTL -
| TIME -
| SPARE -
| MARK -
Note: Everything can be typed on one line, such as this
example to change A, B, and MGC fields only:
| DEBUG> BCRAM 10
|
| Type value,value... or ^,CR,^Z,field name
| 0010 ::
| J - A,3,4,M,1234,^Z
|
| DEBUG>
MAINDEC-10-DFNIA-A-D Page 57
TEST DESCRIPTIONS SEQ 0061
ACRAM adr,adr
Alter CRAM locations specified either by explicit arguments or by
default. The data is asked for each location, one field at a time.
Example:
| DEBUG> ACRAM 10
|
| Type value,value... or ^,CR,^Z,field name
| 0010 ::
| 0 J -
| 0 PAR - Type: value<CR> value<CR> ...
| 0 OENA - or: value,value,...<CR>
| 33 MGC - or: ^ to back up to the previous
| 0 SORC - value
| 1 FUNC - or: <CR> to leave a value unchanged
| 0 DEST - or: field name such as MGC or FUN or
| 0 CENA - A or M (for MGC) .. to skip to
| 0 RAM - a particular field
| 0 A - or: ^Z to terminate input and store
| 0 B - the CRAM location
| 22 SK - or: $ (altmode) to abort the command
| 0 BUS - and not store anything
| 1 CRY -
| 0 CTL -
| 0 TIME -
| 0 SPARE -
| 0 MARK -
Note: Everything can be typed on one line, as in the
example under 'BCRAM' command above.
ECRAM adr,adr
Examine CRAM locations specified either by explicit arguments or
by default. The data is printed in MICRO2 assembler format.
Example:
| DEBUG> ECRAM 10,12
|
| 0010 / 0000 0001 0400 0000 0400
| 0011 / 0000 0001 1400 0000 0440
| 0012 / 0000 0001 2400 0000 0500
LCRAM adr,adr
List CRAM locations specified either by explicit arguments or by
default. The data is printed in bit field format. Example:
| DEBUG> LCRAM 0,3
|
| ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL TM SP MK
MAINDEC-10-DFNIA-A-D Page 58
TEST DESCRIPTIONS SEQ 0062
| 0/ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 JZ 0 0 0
| 1/ 0 0 0 0 0 3 0 0 0 0 0 0 0 0 JZ 0 1 0
| 2/ 0 0 0 0 0 5 0 0 0 0 0 0 0 0 JZ 0 2 0
| 3/ 0 0 0 0 0 7 0 0 0 0 0 0 0 0 JZ 0 3 0
ZCRAM adr,adr
Zero CRAM locations specified either by explicit arguments or by
default.
10.5.3.5 2901 Commands
Each of the following commands can be given at any time without
concern if the port is running or not. The diagnostic will stop the
port if it has to and clear any error condition. If it changes the
state of the port, the diagnostic prints a message to that effect.
These commands may be given up to 2 arguments. The action in
each case is as follows:
o No arguments - The 2901 registers used are those last used. So
if registers 0 through 4 are examined, a subsequent examine
command with no arguments would examine registers 0 through 4.
o One argument - The range of 2901 registers is taken as
reg1,reg1.
o Two arguments - The range of 2901 registers is taken as
reg1,reg2
E2901 reg,reg
Examine the contents of the range of 2901 registers specified.
Microcode is loaded into the port to accomplish this, but no 2901
registers or local storage locations are affected. And the original
contents of the CRAM location used are restored.
D2901 reg,data
Deposit the data into the 2901 register specified. Microcode is
loaded into the port to accomplish this, and only the 2901 register
specified is affected. The original contents of the CRAM location
used are restored.
To deposit data into successive registers, additional data can be
typed. For example, to load registers 3,4,5,6 with 333,444,555,666
respectively, type the following:
| DEBUG> D2901 3,333,444,555,666
|
MAINDEC-10-DFNIA-A-D Page 59
TEST DESCRIPTIONS SEQ 0063
Z2901 reg,reg
Zero the range of 2901 registers specified. Microcode is loaded
into the port to accomplish this. The original contents of the CRAM
location used are restored.
10.5.3.6 Local Storage Commands
Each of the following commands can be given at any time without
concern if the port is running or not. The diagnostic will stop the
port if it has to and clear any error condition. If it changes the
state of the port, the diagnostic prints a message to that effect.
These commands may be given up to 2 arguments. The action in
each case is as follows:
o No arguments - The local storage addresses used are those last
used. So if a zero local storage command is given to clear
locations 101 through 104, a subsequent examine local storage
command with no arguments would examine locations 1001 through
1004.
o One argument - The range of local storage locations is taken as
addr1,addr1.
o Two arguments - The range of local storage locations is taken as
addr1,addr2
ELOCS adr,adr
Examine local storage addresses specified by the range of
addresses. Microcode is loaded into the port to accomplish this and
several 2901 registers are destroyed in the process. No local
storage locations are affected. And the original contents of the
CRAM locations used are restored.
DLOCS adr,dat
Deposit local storage address 'adr' with 36 bit octal data 'dat'.
Microcode is loaded into the port to accomplish this and several
2901 registers are destroyed in the process. No local storage
locations are affected. And the original contents of the CRAM
locations used are restored.
To deposit data into successive locations, additional data can be
typed. For example, to load locations 103,104,105,106 with
333,444,555,666 respectively, type the following:
| DEBUG> DLOCS 103,333,444,555,666
|
MAINDEC-10-DFNIA-A-D Page 60
TEST DESCRIPTIONS SEQ 0064
ZLOCS adr,adr
Zero local storage addresses specified by the range of addresses.
Microcode is loaded into the port to accomplish this, but no 2901
registers or local storage locations are affected. And the original
contents of the CRAM locations used are restored.
10.5.3.7 Mark Bit Commands
Each CRAM word has a mark bit that can be set or cleared. It is
used only to sync a scope on. Parity is not calculated for this
location.
The diagnostic does not keep track of which locations have mark
bits set. If it is requested to list marked CRAM locations, the
diagnostic just looks for locations with the mark bit set.
Each of these commands can be given at any time without concern
if the port is running or not. The diagnostic will stop the port if
it has to and clear any error condition. If it changes the state of
the port, the diagnostic prints a message to that effect.
MARK adr1,adr2,adr3,...
Set mark bit at locations adr1,adr2,adr3,...
RMARK adr1,adr2,adr3,...
Remove mark bit from locations adr1,adr2,adr3,...
CMARK adr1,adr2
Clear all mark bits between adr1 and adr2. If only one argument
is given only that one location is rewritten without the mark bit
set. If no arguments are supplied, all mark bits are cleared
throughout the CRAM.
LMARK adr1,adr2
List all locations with mark bit set between adr1 and adr2. If
only one argument is given only that one location is checked. If no
arguments are supplied, all location with the bit set are listed
throughout the CRAM.
10.5.3.8 Breakpoint Commands
A breakpoint consists of a location with bad parity. The
diagnostic does not keep track of these locations itself. If it is
requested to list breakpoints, it just looks for locations with bad
parity.
MAINDEC-10-DFNIA-A-D Page 61
TEST DESCRIPTIONS SEQ 0065
Each of these commands can be given at any time without concern
if the port is running or not. The diagnostic will stop the port if
it has to and clear any error condition. If it changes the state of
the port, the diagnostic prints a message to that effect.
BREAK adr1,adr2,adr3,...
Set breakpoints at locations adr1,adr2,adr3,...
RBREAK adr1,adr2,adr3,...
Remove breakpoints from locations adr1,adr2,adr3,...
CBREAK adr1,adr2
Clear all breakpoints between adr1 and adr2. If only one
argument is given only that one location is rewritten with good
parity. If no arguments are supplied, all breakpoints are removed
throughout the CRAM.
LBREAK adr1,adr2
List breakpoints between adr1 and adr2. If only one argument is
given only that one location is checked for bad parity. If no
arguments are supplied, all breakpoints are listed throughout the
CRAM.
10.5.3.9 Microcode Commands
Each of these commands can be given at any time without concern
if the port is running or not. The diagnostic will stop the port if
it has to and clear any error condition. If it changes the state of
the port, the diagnostic prints a message to that effect.
LOAD tst
Load microcode from Test 'tst' into CRAM and verify the result.
Example:
| DEBUG> LOAD 3
|
| [Done - Number of CRAM locations loaded/verified = 182.]
LIST tst
List microcode from Test 'tst'. All locations are listed in the
order that they would be loaded, not necessarily in order by CRAM
address. Example:
| DEBUG> LIST 3
|
| ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL TM SP MK
| 0/ 2 0 0 0 0 0 0 0 0 0 0 1 0 0 CJPP 0 0 0
MAINDEC-10-DFNIA-A-D Page 62
TEST DESCRIPTIONS SEQ 0066
| 1/ 10 1 0 0 0 0 0 0 0 0 0 0 0 0 JMAP 0 0 0
| 2/ 4 1 0 0 0 0 0 0 0 0 0 3 0 0 CJPP 0 0 0
| 3/ 11 0 0 0 0 0 0 0 0 0 0 0 0 0 JMAP 0 0 0
| ...
FLOAD
Load microcode from file into a buffer and from the buffer into
CRAM. The file used is the default file name NI20.ULD or the file
last specified by the SET FNAME command. DIAMON or D20MON or MAGMON
must be loaded in order to load the microcode from the selected load
device. The diagnostic prints an error message if it cannot access
the microcode file. This command also verifies the microcode it has
loaded. Example:
| DEBUG> FLOAD
|
| [Reading file: NI20.ULD]
|
| [3040. microwords loaded]
|
| [Loading NI20.ULD into CRAM]
|
| [3040. CRAM locations loaded/verified]>
|
| [Ucode version 55]
|
| DEBUG>
FVERFY
This command causes the microcode previously loaded into CRAM
from a file to be verified. Up to 3 verify errors are printed.
Example:
| DEBUG> FVERFY
|
| 3040. CRAM locations loaded - 74. verify errors:
| Addr Correct Actual
| 0000 0002 0000 1631 6702 0060 0000 0000 0100 0000 0000
| 0001 0002 0000 7510 0002 0060 0000 0000 0300 0000 0002
| 0002 0007 2000 4315 6002 0060 0000 0000 0500 0000 0004
|
| DEBUG>
FLIST
List microcode in file in field format. The file used is the
default file name NI20.ULD or the file last specified by the SET
FNAME command. DIAMON or D20MON or MAGMON must be loaded in order
to obtain the microcode from the selected load device. The
diagnostic prints an error message if it cannot access the microcode
file. Example:
MAINDEC-10-DFNIA-A-D Page 63
TEST DESCRIPTIONS SEQ 0067
| DEBUG> FLIST
|
| ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL TM SP MK
| 0/ 2 0 0 0 1 6 3 0 0 16 16 2 0 0 CJP 0 0 0
| 1/ 2 1 0 0 7 5 1 0 0 0 0 2 0 0 CJP 0 0 0
| 2/ 7 0 1 0 4 3 1 1 0 16 0 2 0 0 CJP 0 0 0
| ...
FEXAM
List microcode in file in MICRO2 format. The file used is the
default file name NI20.ULD or the file last specified by the SET
FNAME command. DIAMON or D20MON or MAGMON must be loaded in order
to obtain the microcode from the selected load device. The
diagnostic prints an error message if it cannot access the microcode
file. Example:
| DEBUG> FEXAM
|
| 0000 / 0001 0000 1631 6702 0060
| 0001 / 0025 6000 4315 6542 0060
| 0007 / 0004 4000 7510 7542 0060
| ...
10.5.3.10 Statistics Commands
STATIS
This command prints accumulated statistics. Statistics are kept
only on packets sent and packets received and various information
connected with each. See the Section 6.9.1 'Statistics Printouts'
for more details.
ZSTATS
This command clears statistics. Statistics are also
automatically cleared whenever the diagnostic is restarted via a STM
command.
10.5.3.11 NI Configuration Command
| What test - CONFIG
|
| ***** NI Configuration *****
| Physical Address Ver ECO Usr Com DLL
| Bt1 Bt2 Bt3 Bt4 Bt5 Bt6 # # ECO Functionality Dev Type
| ----------------------- --- --- --- ---------------- --- --------
| 252 000 003 003 000 000 (Self)
MAINDEC-10-DFNIA-A-D Page 64
TEST DESCRIPTIONS SEQ 0068
| 252 000 003 003 000 006 1 0 0 12000030 0 Ethernet
| 274 033 000 000 000 001 5 101 1 10004730 0 Ethernet
Only those nodes which broadcast a periodic system ID message
will be included. Nodes which are turned off or are not running
will not be seen.
10.5.3.12 NI Commands
PINIT
This command initializes the port control block and all of the
queues specified in it.
SIDLE
This command sets up the 3 word data transfer giving the
initialization data used by the microcode at start up. It ensures
that EPT location 34 contains a jump CCW word to the CCW in the PCB.
Then the diagnostic starts up the port and waits up to 2 seconds for
the microcode to enter the idle loop. If it does not, a message to
that effect is printed.
BPACK opcode
This command builds a packet which can then be placed on a
command queue. A packet is built based on opcode and program
options.
It is assumed that the PCB and queues have already been
initialized. The microcode need not have been started however.
A list of opcodes may be obtained by typing BPACK ? as follows:
| DEBUG> BP ?
| BPACK opcode (CR), where opcode:
| 1-SNDDG 2-LDMCAT 3-LDPTT 4-RCCNT 6-WRPLI 7-RDPLI
| 10-RDNSA 11-WRNSA
|
| DEBUG>
IQUEUE
This command places a packet that has already been built on the
command queue.
PQUEUE queue1,queue2
This command prints specified queue(s). If only one queue number
is given, only that queue will be printed. If a range of queues is
given all of the queues specified will be printed.
MAINDEC-10-DFNIA-A-D Page 65
TEST DESCRIPTIONS SEQ 0069
The queues are printed in the following format:
| DEBUG> PQUEUE 0,6
|
| CmdQ (PCB ): Flink = PCB+1 Blink = PCB+1
| Queue is empty
|
| RspQ (PCB+4 ): Flink = PCB+5 Blink = PCB+5
| Queue is empty
|
| UnkFQ (PCB+10): Flink = QUNKF0 Blink = QUNKF7
| QUNKF0/ Flink = QUNKF1 Blink = PCB+11
| QUNKF1/ Flink = QUNKF2 Blink = QUNKF0
| QUNKF2/ Flink = QUNKF3 Blink = QUNKF1
| QUNKF3/ Flink = QUNKF4 Blink = QUNKF2
| QUNKF4/ Flink = QUNKF5 Blink = QUNKF3
| QUNKF5/ Flink = QUNKF6 Blink = QUNKF4
| QUNKF6/ Flink = QUNKF7 Blink = QUNKF5
| QUNKF7/ Flink = PCB+11 Blink = QUNKF6
|
| PttFQ (PTTFQ ): Flink = PTTF0 Blink = PTTF7
| PTTF0 / Flink = PTTF1 Blink = PTTFQ+1
| PTTF1 / Flink = PTTF2 Blink = PTTF0
| PTTF2 / Flink = PTTF3 Blink = PTTF1
| PTTF3 / Flink = PTTF4 Blink = PTTF2
| PTTF4 / Flink = PTTF5 Blink = PTTF3
| PTTF5 / Flink = PTTF6 Blink = PTTF4
| PTTF6 / Flink = PTTF7 Blink = PTTF5
| PTTF7 / Flink = PTTFQ+1 Blink = PTTF6
|
| ** Protocol Type Table **
| N Ena Type Address
| - --- ---- -------
| 0 Y 0 PTTFQ+1
| 0 Y 1 PTTFQ+1
| 0 Y 2 PTTFQ+1
| 0 Y 3 PTTFQ+1
| 0 Y 4 PTTFQ+1
| 0 Y 5 PTTFQ+1
| 0 Y 6 PTTFQ+1
| 0 Y 7 PTTFQ+1
| 0 Y 10 PTTFQ+1
| 0 Y 11 PTTFQ+1
| 0 Y 12 PTTFQ+1
| 0 Y 13 PTTFQ+1
| 0 Y 14 PTTFQ+1
| 0 Y 15 PTTFQ+1
| 0 Y 16 PTTFQ+1
| 0 Y 17 PTTFQ+1
|
| ** Multi-Cast Table **
| N Ena Bt5 BT4 BT3 BT2 BT1 BT0
| - --- --- --- --- --- --- ---
| 0 Y 000 000 000 000 000 003
| 0 Y 000 000 000 000 000 005
| 0 Y 000 000 000 000 000 007
MAINDEC-10-DFNIA-A-D Page 66
TEST DESCRIPTIONS SEQ 0070
| 0 Y 000 000 000 000 000 011
| 0 Y 000 000 000 000 000 013
| 0 Y 000 000 000 000 000 015
| 0 Y 000 000 000 000 000 017
| 0 Y 000 000 000 000 000 021
| 0 Y 000 000 000 000 000 023
| 0 Y 000 000 000 000 000 025
| 0 Y 000 000 000 000 000 027
| 0 Y 000 000 000 000 000 031
| 0 Y 000 000 000 000 000 033
| 0 Y 000 000 000 000 000 035
| 0 Y 000 000 000 000 000 037
| 0 Y 000 000 000 000 000 041
PPCB
This command prints the current state of the PCB, as follows:
| DEBUG> PPCB
|
| PCB:
| PCB Base Addr: 71000
| PI Level: 0
| Int Vector: 0
| CCW: 000000 000000
| ---------------
| PTT Address: 102350
| MCT Address: 105550
| ---------------
| Logout 0: 000000 000000
| Logout 1: 000000 000000
| Logout 2: 000000 000000
| Logout 3: 000000 000000
| ---------------
| # Queue PCB Addr Interlock Flink Blink
| - ----- -------- --------- ----- -----
| 0 CmdQ PCB+ 0 -1 PCB+1 PCB+1
| 1 RspQ PCB+ 4 -1 PCB+5 PCB+5
| 2 UnkFQ PCB+10 -1 QUNKF0 QUNKF7
WATCH
This command allows one to watch the port and print events that
occur. If a command packet has previously been built, one may also
place the packet again and again on the command queue.
The diagnostic checks the CSR register periodically and prints it
out whenever it changes. It also looks for entries appearing on the
response queue - if any are found they are removed from the response
queue, printed out, and placed back on the free queue. The
diagnostic also sets 'CmdQ Avail' bit in the CSR register if there
is a command queue entry which has not yet been processed.
MAINDEC-10-DFNIA-A-D Page 67
TEST DESCRIPTIONS SEQ 0071
While watching the port, 10 characters may be typed to obtain
information or to perform some action:
o S - Insert another packet on the command queue (same packet as
the last one built).
o O - Insert packets on the command queue (same packet as the last
one built). Insert them at the interval specified by the 'SET
INTERV' command or 10 seconds if the interval has not been
explicitly defined.
o L - Loopback any packets received by this port.
o 0 - Turn off echoing of packets sent and received.
o 1 - Turn on echoing of packets sent and received.
o 2 - Print CSR register.
o 3 - Print PCB contents.
o 4 - Print statistics
o $ (altmode) - Exit (back to DEBUG> prompt).
o ? - Print commands available
DEPPAK offset,data
Data can be initialized in a packet by using the BPACK command or
by going into DDT and physically inserting the desired data at
location PACKET. To make this easier, the DEPPAK command allows
data to be inserted in PACKET by giving the offset into PACKET and
the data, without going into DDT. This is then useful if a command
file is created with a string of DEPPAK commands. Then a TAKE of
the command file is done to load the packet data.
10.5.3.13 PLI Register Commands
DPLI lnk,data,rep
This command allows one to write 8 bits of data over the PLI
interface. The link control bits specifying the register is
specified, as well as the 8 bit data. Also, a repeat count can be
given to repeat the deposit more than once.
This can be used to write data into the transmit buffer, as in
the following example:
| DEBUG> DPLI ?
| DPLI cntrl,data,repcount (CR) where cntrl is:
| 0-RdReg 4-RRecBf 10-ClrRBf 14-RcXmBf
| 1-EnaLnk 5-WtAdrs 11-DsaLnk 15-RUBLst
MAINDEC-10-DFNIA-A-D Page 68
TEST DESCRIPTIONS SEQ 0072
| 2-WFBLst 6-XmtAct 12-WRBfAd 16-RRcAtn
| 3-WXmtBf 7-RdRSta 13-RdXSta 17-WtReg
EPLI lnk,rep
This command reads 8 bit data over the PLI interface. The link
control bits are specified to indicate what register to read. A
repeat count is given to allow reading the register more than once,
which is useful when reading one of the transmit or receive buffers.
An example follows:
| DEBUG> EPLI ?
| EPLI lnkctrl,repcount (CR) where lnkctrl is:
| 0-RdReg 4-RRecBf 10-ClrRBf 14-RcXmBf
| 1-EnaLnk 5-WtAdrs 11-DsaLnk 15-RUBLst
| 2-WFBLst 6-XmtAct 12-WRBfAd 16-RRcAtn
| 3-WXmtBf 7-RdRSta 13-RdXSta 17-WtReg
|
| DEBUG> EPLI 4,10 ; Read first 10 locations of receive buffer
|
| 4-RRecBf:
| 0/ 000
| 1/ 000
| 2/ 000
| 3/ 000
| 4/ 000
| 5/ 000
| 6/ 000
| 7/ 000
10.5.3.14 Miscellaneous Commands
TRANSL dat
This is used if a description of the CSR register is not at hand.
The data (36 bits) is translated into English. Example:
| DEBUG> TRANSL 3000
|
| CSR: 000000 003000 FQErr MVErr
FILLNX dat
This command fills all of CRAM with special data 'J=.+1,CTL=dat'.
The argument specified is the control field for the microsequencer.
This may be useful when testing out dispatching of the
microsequencer.
MAINDEC-10-DFNIA-A-D Page 69
TEST DESCRIPTIONS SEQ 0073
If the port is running or halted with an error condition, the
diagnostic stops the port and clears any error condition. If it
changes the state of the port, the diagnostic prints a message to
that effect.
Example: Fill CRAM with JMAP (unconditional jump) instructions:
| DEBUG> FILLNX 2
|
| [Number of CRAM locations loaded = 4096.]
|
| Cram now contains:
|
| 0000/ JMAP J=1
| 0001/ JMAP J=2
| ...
| 7776/ JMAP J=7777
| 7777/ JMAP J=0
FILLPC dat
This command fills all of CRAM with special data 'J=.,CTL=dat'.
The argument specified is the control field for the microsequencer.
This may be useful when testing out dispatching of the
microsequencer.
If the port is running or halted with an error condition, the
diagnostic stops the port and clears any error condition. If it
changes the state of the port, the diagnostic prints a message to
that effect.
Example: Fill CRAM with JMAP (unconditional jump) instructions:
| DEBUG> FILLPC 2
|
| [Number of CRAM locations loaded = 4096.]
|
| Cram now contains:
|
| 0000/ JMAP J=0
| 0001/ JMAP J=1
| ...
| 7776/ JMAP J=7776
| 7777/ JMAP J=7777
CCODE
This command determines the setting of each condition code and
prints it out. It loads special microcode to do this but restores
the original contents afterwards.
Some condition codes cannot be seen in their proper state since
this command may change them. These are 'CSR Changed', 'MB Sign',
and 'F Eql Zero', but they are printed anyway. For example:
MAINDEC-10-DFNIA-A-D Page 70
TEST DESCRIPTIONS SEQ 0074
| What test - CCODE
|
| CC On: CBAV FEQ0 CSRC MVRP PLPE CBLW
| CC Off: GCSR EBPE RATN EOFF XATN ERQS IACT MSGN CBPE CHER
ESTACK
This command determines the contents of the internal 2910
microsequencer stack. It loads special microcode to do this but
restores the original contents afterwards. For example:
| What test - ESTACK
|
| 2910 Stack:
| Location Contents (addr)
| Top 3042
| -1 733
| -2 140
| -3 5732
| -4 10
ENEXT
ENEXT does an 'examine next' function. Whatever examine or
deposit operation was previously done, the next location or register
is examined. The commands which set up for an examine next are:
ECRAM, DCRAM, BCRAM, ACRAM, ZCRAM, LCRAM, E2901, D2901, Z2901,
ELOCS, DLOCS, ZLOCS, EPLI, and DPLI.
DNEXT arg
DNEXT does an 'deposit next' function. Whatever examine or
deposit operation was previously done, the data given is deposited
into the next location or register. No argument is expected on the
BCRAM or ACRAM type of deposit, the data for each field of the
microword will be queried. The commands which set up for an examine
next are: ECRAM, DCRAM, BCRAM, ACRAM, ZCRAM, LCRAM, E2901, D2901,
Z2901, ELOCS, DLOCS, ZLOCS, EPLI, and DPLI.
DUMP
This command prints the complete state of the port. It prints
the following data:
o CSR data
o EBUF contents
o LAR contents
o 2901 register contents
MAINDEC-10-DFNIA-A-D Page 71
TEST DESCRIPTIONS SEQ 0075
o 2910 stack contents
o PCB
o Queues
o Local storage contents
o Transmit and receive buffers contents
o Channel logout data
IPRINT
This command prints accumulated interrupt activity. The data for
up to 20 interrupts are held in an interrupt data table. This data
can be printed with this command.
Printing can be aborted by typing an altmode or suppressed by
typing a Control-O.
ICLEAR
This command clears the accumulated interrupt activity.
Subsequent interrupts are numbered 1,2,...
IINIT
In the event the PI system got shut off in exec mode, this
command may be given to initialize the interrupt system and set up
40+2n addresses. This may be useful in the event the diagnostic
shuts off the PI system because of too many interrupts - this occurs
after 8192 interrupts.
10.5.3.15 Data Transfer Commands
CCWPNT
This command prints the CCW list last generated which is kept in
PCB+27. Example:
| DEBUG> CCWPNT
|
| CCW (PCB+27): 000000 000000 OP=Halt WC=0. Adr=00000000
LOGPNT
This command prints the logout data last stored by the channel
upon receipt of the 'store' command issued by the microprocessor.
Example:
| DEBUG> LOGPNT
MAINDEC-10-DFNIA-A-D Page 72
TEST DESCRIPTIONS SEQ 0076
|
| Channel-5 Logout Data
| Loc Contents
| 1 ICW: 000000 000000
| 2 SW1: CLP points to: 0
| 3 Last Updated CCW: 000000 000000 WC=0. ADR=0
10.5.3.16 Switches
SWITCH
Enter switch information. Switches can be entered as in the
following example. Usually, though, it is easier just to type the
switch name to turn on or off a switch.
| DEBUG> SWITCH
|
| Print the selectable pgm switches? (Y or N) - Y
|
| ----Left Side Switches-------- ----Right Side Switches--------
|
| SW KL10 11 Function SW Value Function
| -- ---- ---- -------- -- ----- --------
| 0 400000 100000 Abort 18 400000 Program trace
| ...
|
| Switches = 020010 004000
|
| 20010 LH Switches <# or ?> - ?
|
| Type Y,N,^,CR,^Z
|
| N ABORT -
| N RSTART -
| ...
|
| 4000 RH Switches <# or ?> - ?
|
| Type Y,N,^,CR,^Z
|
| N TRACE -
| ...
SWPRIN
Print current switch settings. Example:
| DEBUG> SWPRIN
|
| Switches: 020010 002000 PNTLPT OPRSEL UDEBUG
MAINDEC-10-DFNIA-A-D Page 73
TEST DESCRIPTIONS SEQ 0077
NOPNT PALERS TRACE LOOPTS MDEBUG
PNTLPT RELIAB INHFLT RUNALL LDEBUG
DING TXTINH INHMSG DSPEAR DDEBUG
ERSTOP OPRSEL LOOPGM UDEBUG EDEBUG
The name of each of these switches can be typed. The result is
to complement the switch setting. If left hand switches are typed
in exec mode an error message is printed.
MAINDEC-10-DFNIA-A-D Page 74
PROGRAM RUN TIME SEQ 0078
11.0 PROGRAM RUN TIME
The run time varies according to the sequence of tests chosen,
the test options selected, and the program switch options selected.
In default mode the run time is approximately 4 minutes, excluding
any time taken to print error messages.
Running all of the tests with 'RELIAB' switch set extends the
time by a factor of 4 - to 16 minutes.
MAINDEC-10-DFNIA-A-D Page 75
APPENDIX SEQ 0079
12.0 APPENDIX
12.1 Special Configurations
12.1.1 DMT Configuration
There are several features of the diagnostic which enable it to
be used for DMT. The DMT configuration is as follows:
o One KL10
o Four ports and NIA module sets, all connected to an 'NI' via a
loopback connector so that all are independent
o TOPS-20 Release 5.0 or later (modified so that the system does
not know about RH's 1,3,5,7)
o DFNIA being run under PTYCON (4 copies)
12.1.2 Creating the Modified Diagnostics
The diagnostic must be modified to create 4 different copies each
for a different RH20 slot. The changes are:
o DIAG 'Request device' and 'Release device' are replaced by a
SKIPA (to noop the action)
o Port number (MBC number) is changed to reflect the particular
port
o Switches are set to 10,,140 which are 'OPRSEL', 'DDUMP' (which
can cause a complete dump of the port to be printed (where
appropriate)), and 'EDEBUG' (which prints port number, date, and
time with each error message)
o The diagnostics are renamed to DFNIA1.EXE, DFNIA3.EXE,
DFNIA5.EXE, and DFNIA7.EXE to reflect the port number
To create the 4 copies, the following steps are done: Note that
the diagnostic is modified by the EXEN$G (which eliminates the
DIAG's) and the P7$G ... (which changes the port number).
@RUN D20MON
* D20MON [DDQDH] - DECSYSTEM20 DIAGNOSTIC MONITOR - VER 0.3 *
D20MON CMD - DFNIA
DFNIA NI Port Functional Diagnostic
VERSION 1.1, SV=0.15, TOPS-20, KL10, CPU#=2263
TTY SWITCH CONTROL ? - 0,S, Y OR N <CR> - ^D
MAINDEC-10-DFNIA-A-D Page 76
APPENDIX SEQ 0080
DDT
EXEN$G
DDT
P7$G
DDT
^Z
@CSAVE DFNIA7.EXE
DFNIA7.EXE.1 Saved
@DDT
DDT
P5$G
DDT
^Z
@CSAVE DFNIA5.EXE
DFNIA5.EXE.1 Saved
@DDT
DDT
P3$G
DDT
^Z
@CSAVE DFNIA5.EXE
DFNIA3.EXE.1 Saved
@DDT
DDT
P1$G
DDT
^Z
@CSAVE DFNIA5.EXE
DFNIA1.EXE.1 Saved
12.1.3 Modifying the System
To run a modified non-DIAG diagnostic, the system must be
modified so that it does not know about the channel with which the
diagnostic is to be run. This is done by going into MDDT and
modifying the channel table (CHNTAB) as follows:
@ENABLE ; must have privileges
$SDDT ; DDT from anyplace will do
DDT
JSYS 777$X ; to get into MDDT
MDDT
CHNTAB+5/ address 0 ; replace whatever is there by a zero
MRETN$G<> ; get out of MDDT
^Z
MAINDEC-10-DFNIA-A-D Page 77
APPENDIX SEQ 0081
12.1.4 Other configurations
This has been described particular to DMT of the NI20, but there
may be other applications that may need to do the above, possibly
only 2 copies. One configuration which is possible is running a
copy of DFNIA which uses DIAG's and one which doesn't. To create
the one without DIAG's, the prior steps are done. To create the one
with DIAG's, instead of doing an EXEN$G, an EXE$G must be done.
------------------------------------------------------------------------
SEQ 0082
VERSION: MAINDEC-10-DFNIA-A Version 0.2
AUTHOR: Richard Stockdale
DATE: February 1984
REASON: Updates to reflect microcode changes, particularly
as regards performance counters.
------------------------------------------------------------------------
VERSION: MAINDEC-10-DFNIA-A Version 0.1
AUTHOR: Richard Stockdale
DATE: March 1983
REASON: Original release.
------------------------------------------------------------------------
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 1
SEQ 0083
DOCUMENT
**************
DFNIA LST
**************
COPYRIGHT 1984
DIGITAL EQUIPMENT CORPORATION
MAYNARD, MASS. 01754
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 2
SEQ 0084
TABLE OF CONTENTS
*******************
1
757 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979
792 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979
998 ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
1036 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
3 Externs / Entrys
90 Initialization
264 Test/Command Selection
987 Test Dispatching
1314 Port Debugger
7187 Program Utility Routines
7650 Statistics Routines
7906 Microcode Handling Routines
8638 NI Initialization Routines
9218 Packet Handling Routines
10338 Queue Print Routines
11500 Port Control Block and Data Areas
11903 SPEAR Reporting
12090 Miscellaneous Test Variables
1 Test Module DFNIA2.MAC
38 Port Modules
1806 Miscellaneous Routines
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 3
SEQ 0085
TABLE OF CONTENTS
*******************
1 Test Module DFNIA3.MAC
40 Microcode Functional Tests
385 NSA Tests
744 CRC Tests
1277 Datagram Loopback Tests
2257 Multicast Address Tests
3298 Protocol Type Tests
4077 Miscellaneous Tests
4758 Miscellaneous Routines
1 Port Controller Utility Package
59 Port Register Read/Write Routines
390 Port Specific Utility Routines
799 PI System Routines
1203 Channel Handling Routines
1572 User Mode Support Routines
2011 Miscellaneous Routines
1 UTILITY Routines Module
62 Printout/Typin Routines
470 Clock Handling Routines
743 TOPS10/20 Related Routines
822 File Handling Routines
965 Data Pattern Generator/Compare Routines
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 4
SEQ 0086
TABLE OF CONTENTS
*******************
1112 Data Patterns
1428 Switch Handling Routines
1950 Miscellaneous Routines
2672 Scope Looping And Error Reporting Routine
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 5
SEQ 0087
*****************************************************************
1 DFNIA TITLE FILE
*****************************************************************
20 Copyright (C) 1983
DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
This software is furnished under a license for use only
on a single computer system and may be copied only with
the inclusion of the of the above copyright notice. This
software, or any other copies thereof, may not be provided
or otherwise made available to any other person except for
use on such system and to one who agrees to these license
terms. Title to and ownership of the software shall at all
times remain in DEC.
The information in this document is subject to change
without notice and should not be construed as a commitment
by Digital Equipment Corporation.
DEC assumes no responsibility for the use or reliability
of its software on equipment which is not supplied by DEC.
Author: Dick Stockdale
Maintainer: 36-Bit Diagnostic Engineering
44 Program Parameters
59 Assembly Parameters
90 Channel Logout Status Bits
106 Right Hand Switches
123 OP Code definitions (for operational microcode)
150 Macro Definitions
154 Text macros
181 ASCII text macro
187 RPUT/RGET - Multiple put/get
225 Test Dispatch Table Definitions
237 Port CONI/CONO CSR Bit Assignments
273 OPDEF/UUO Definitions
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 6
SEQ 0088
301 Bit Definitions For "SCOPE" UUO Handler - Error Message Printer
313 Microword Field Definitions
713 Microword Macros (Note: If ADDR not specified, 'ADDR'+1 is used).
*****************************************************************
757 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979
*****************************************************************
762 DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
*****************************************************************
792 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979
*****************************************************************
795 SPECIAL SUBPROGRAM LINKAGES
806 SPECIAL SUBROUTINE FATAL HALTS
USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
*****************************************************************
998 ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
*****************************************************************
*****************************************************************
1036 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
*****************************************************************
*****************************************************************
3 Externs / Entrys
*****************************************************************
*****************************************************************
90 Initialization
*****************************************************************
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 7
SEQ 0089
*****************************************************************
264 Test/Command Selection
*****************************************************************
267 DISPAT - Routine to dispatch to proper test as typed by the operator
in response to the 'WHAT TEST' prompt.
489 DISLIS - List of all valid test names that can be typed
547 DISGO - Test dispatch addresses
603 ALL Execute all tests
PORT Execute Port modules related tests
NIA Execute NIA module related tests
LOOP Execute Loopback tests
FUNCT Execute Functional tests
628 TSTLIS - List test description for either single test or range of tests.
693 TSTDIA - Return to DIAMON
704 TSTDDT - Enter DDT
718 TSTHLT - Program halts - CONTINUE will start it back up.
733 TSTZER - Clear statistics
744 TSTCON - Print configuration
754 TSTHLP - Help for 'WHAT TEST' question.
826 TSTDSA - Disable a test.
TSTENA - Enable a test.
869 TSTDSL - List disabled tests
896 TSTPRI - Print statistics
906 TSTSWI/TSTSWP - Input switches / Print switch selections
923 TSTSSW - Switch complement commands
935 TSTTAK - Take commands from a file
TSTTAN - Take commands from a file without echoing results
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 8
SEQ 0090
*****************************************************************
987 Test Dispatching
*****************************************************************
990 TSTSPC - Run only one test
1016 RANGEN - Random number generator
1071 TSTDIS - Dispatch to the tests
*****************************************************************
1314 Port Debugger
*****************************************************************
1317 TSTDEB - Console command utility for the port.
1625 .DBCMD - List of acceptable commands
1783 .DBDIS - List of dispatch addresses
1945 DHELP - Print DEBUG> help message
2128 DSET - Set/clear/print options
2197 DSETAD - Set start address for START/SSTEP/CONT commands
2222 DSETCS - Set start CSR data for START/CONT commands
2242 DSETPR - Set/clear automatic parity generation for load cram command
2265 DSETEB - Set/clear preserve EBUF for single stepping
2289 DSETPC - Set/clear PCB CCW list made up for START command
2312 DSETFN - Set default microcode file name
2343 DSETPA - Set data pattern to insert in buffer
2385 DSETPL - List data patterns
2430 DSETRE - Set/clr forced response
2456 DSETFO - Set format (COMPAT or HIDEN)
2483 DSETBS - Set BSD stype datagram
2507 DSETPD - Set pad flag
2530 DSETLN - Set length of text portion of packet
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 9
SEQ 0091
2554 DSETDA - Set destination address
2641 DSETSA - Set self address
2668 DSETPV - Set protocol type value
2687 DSETPT - Set length of text portion to print
2712 DSETIN - Set interval (milliseconds)
2731 DSETSU - Set summary interval (seconds)
2751 DSETWH - Print all selected options
2780 DSETHE - Set help message
2819 Program Flags
2856 DECSR - Examine CSR register
2870 DDCSR - Deposit CSR register
2885 DZCSR - Zero CSR register
2897 DRESET - Issue an EBUS Reset
2907 DCLEAR - Issue a 'Port Clear'
2918 DSINIT - Set up start addr/data/history prior to single step command
2935 DSTART - Start the port
2984 DSTOP - Stop the port
3014 DSSTEP - Single step the port
DTRACE - Single step the port and trace progress
3114 DSSPNT - Print single step history
3138 DSSCLR - Clear single step history data
3159 PNTHST - Print a single step history entry
3182 SAVHST - Save single step history data
3207 DCONT - Continue the port
3234 DEEBUF - Examine EBUF register
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 10
SEQ 0092
3256 DDEBUF - Deposit EBUF register
DZEBUF - Zero EBUF register
3283 DELAR - Examine LAR register
3304 DDRAR - Deposit RAR register
3322 DZRAR - Zero RAR register
3335 DECRAM - Examine CRAM locations specified by "PARG1" and "PARG2".
3343 DDCRAM - Change CRAM locations.
3351 DBCRAM - Change CRAM locations by field
3359 DACRAM - Alter CRAM locations.
3367 DZCRAM -- Zero CRAM addresses specified.
3375 DLCRAM -- List CRAM addresses specified.
3964 DEALU - Examine 2901 registers
4066 DDALU - Deposit register
4143 DZALU - Zero 2901 registers
4261 DELOCS - Examine local storage
4364 DDLOCS - Deposit local storage
4436 DZLOCS - Zero local storage
4553 DMARK - Set mark bit in CRAM locations
4596 DRMARK - Remove mark bit in CRAM locations
4639 DCMARK - Clear all mark bits
4712 DLMARK - List locations with mark bit set
4798 DDPLI - Deposit data to PLI
4896 DEPLI - Examine PLI registers
5040 DETBUF - Read transmit buffer
5054 DERBUF - Read receive buffer
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 11
SEQ 0093
5067 DDUMP - Dump port state
5175 RDBUFT - Read transmit buffer (80 bytes only)
5206 RDBUFR - Read transmit buffers
5248 PLOG - Obtain EPT logout data
5406 DENEXT - Examine next
5479 DDNEXT - Deposit next
5559 DDPPTT - Deposit into PTT table
5594 DDPMUL - Deposit into Multicast table
5629 DDPPAK - Deposit into packet
5664 DESTAK - examine 2910 stack
5718 DBREAK - Set breakpoint
5769 DRBRK - Remove breakpoint
5808 DCBRK - Clear all breakpoints
5876 DLBRK - List breakpoints
5965 DLOAD - Load microcode into CRAM from a test.
5996 DLIST - List microcode from test
6021 DFLOAD - Load microcode from file into CRAM
6064 DFVERF - Verify microcode from file versus CRAM
6087 DFLIST - List microcode in file
6122 DFEXAM - Examine microcode in file
6158 DTRANS - Translate CSR bits to English
6173 DCCODE - Print condition codes
6270 DFILLN - Fill CRAM with special data (J=PC+1,OPCode)
6298 DFILLP - Fill CRAM with special data (J=PC,OPCode)
6323 DCWPNT - Print CCW list
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 12
SEQ 0094
6335 DLGPNT - Print logout data
6347 DSWIT - Switch complement commands
6361 IPRINT - Print interrupt history
6419 IINIT - Initialize interrupt system
6431 DPINIT - Initialize PCB and queues
6442 DSIDLE - Start port and wait for IDLE loop
6457 DBPACK - Build packet
6528 DIQUEU - Insert a packet on a command queue
6555 DPPCB - Print PCB
6566 DPQUEU - Print specified queue
6616 DWATCH - Watch port and print events and loop back packets
7017 SANCHK - Sanity check of the free queue
7048 CONVRR - Convert physical address to virtual
7071 PNTRSP - Print a response queue entry
7107 DCONF - Determine and print NI configuration
7116 SETENA - Ensure the port is in the enabled state
7163 SETDSA - Disable the port
*****************************************************************
7187 Program Utility Routines
*****************************************************************
7190 TRACE - Program Trace Routine
7230 TSTEND - Do end of test processing
7238 TSTPNT - Print test name/number
7261 PNTCRM - Print CRAM word
7346 PNTWD - Print a CRAM word (xxxx xxxx xxxx xxxx xxxx)
7372 CALPAR - Calculate parity for a CRAM location
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 13
SEQ 0095
7423 CSRPNT - Print CSR register as 'CSR: xxxxxx,,xxxxxx' followed by
English translation.
7444 CSRENG - Print CSR data in English
7478 CSRENB - CSR bits
7525 SAVCRM - Save specified CRAM locations in a buffer
7545 RESCRM - Restore CRAM locations
7571 CONPNT - Print configuration data
7613 SAVCON - Accumulate configuration data
*****************************************************************
7650 Statistics Routines
*****************************************************************
7653 SUPDAT - Update statistics for datagrams sent
7698 RUPDAT - Update statistics for datagrams received
7786 SREPOR - Report statistics
7866 SZERO - Clear statistics
7876 Statistics data areas
*****************************************************************
7906 Microcode Handling Routines
*****************************************************************
7929 TFLOAD - Load operational microcode for a test
8006 FLOADB - Load operational microcode into buffer
8098 FLOADC - Load microcode buffer contents into the port
8181 FVERFC - Verify port microcode against buffer contents
8273 FUERR - Print verify error data
8314 ZCOUNT - Zero counters data (local storage locations 1400-1777)
8366 MLOADN - Load microcode and verify it (do not print errors)
MLOADY - Load microcode and verify it (print errors)
8514 MVPNT - Print verify error data
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 14
SEQ 0096
8565 MLIST - List microcode of a test
8603 TLOAD - Load microcode/verify it for a test
*****************************************************************
8638 NI Initialization Routines
*****************************************************************
8641 TPCB - Set up initial PCB
9162 TIDLE - Start the port and wait for IDLE bit to set in CSR
9194 RDADDR - Read NI physical address register (ROM)
*****************************************************************
9218 Packet Handling Routines
*****************************************************************
9272 BPACK - Build a packet
9334 BPAK1 - Build packet for DGSNT command
9391 BPAK4 - Build packet for RCCNT command
9407 BPAK6 - Build packet for WRPLI command
9447 BPAK7 - Build packet for RDPLI command
9473 BPAK11 - Build packet for WRNSA command
9534 ITEXT - get text length + text
9586 ICRC - Calculate CRC
9734 CRCCAL - Calculate CRC (cumulative) for 8 bits
9757 CRCFIX - Adjust properly
9777 RWAIT - Wait for a response (by CSR bit 'RspQAvail' bit being set.
9799 CHKINT - Check/set up interlock for queue
9869 CONVIR - Convert physical address to virtual
9907 INSQUE - Insert a packet into a queue
10010 GETQUE - Remove a queue entry from the beginning of a queue
10070 PUTQUE - Insert an entry onto the specified queue
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 15
SEQ 0097
10145 CHKRSP - Check if a response queue entry
10212 CHKRQV - Check for response queue available
10228 PTCHKP - Check type of packet and for matching PTT value
10271 CHKQUE - Determine which queue to insert entry back on
10325 SHUTRQ - Turn off response queue available
*****************************************************************
10338 Queue Print Routines
*****************************************************************
10341 PQUEUE - Print a set of queue entries
10464 PPAKC - Print a command queue entry
10507 PPAKR - Print a response queue entry
10523 PPAKF - Print a free queue entry
10545 PACK1 - Print a packet - SNDDG command / DGSNT response
10610 PACK2 - Print a packet - LDMCAT command / MCATLD response
10618 PACK3 - Print a packet - LDPTT command / PTTLD response
10625 PACK4 - Print a packet - RCCNT command / CNTRC response
10775 PACK5 - Print a packet - DGRCV response
10804 PACK6 - Print a packet - WRPLI command / PLIWR response
10818 PACK7 - Print a packet - RDPLI command / PLIRD response
10833 PACK10 - Print a packet - RDNSA command / NSARD response
10867 PACK11 - Print a packet - WRNSA command / NSAWR response
10891 PACKG - Print a general type packet (unrecognized)
10911 OPCPNT - Print opcode of command packet
10965 DECOPC - Decode op code
11006 PHEAD - Print header info of a packet
11033 PADDR - Print 6 byte source/destination address
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 16
SEQ 0098
11053 PSTATS - Print status field
11118 PFLAGS - Print flags field (AC1 contains status byte (right justified))
11172 PTEXT - Print text data in a datagram
11229 PBSD - Print BSD segment
11266 LINKP - Print FLINK/BLINK data in symbolic format
11278 LINKV - Print FLINK/BLINK data in symbolic format
11423 PPCB - Print current data in the PCB
*****************************************************************
11500 Port Control Block and Data Areas
*****************************************************************
11503 IPCB - PCB initial data
11538 IPTAB - PTABLE initial data
11560 IMTAB - MTABLE initial data
11597 PCB - Port Control Block
11646 Command/Unknown protocol queues
11702 PTABLE - Protocol type free queues
11864 MTABLE - Table of multi-cast addresses
*****************************************************************
11903 SPEAR Reporting
*****************************************************************
11906 SPREP1 - Print initial SPEAR report 'diagnostic started'
11959 SPREP2 - Print error or successful completion SPEAR report
12076 GETPPN - Find out PPN number
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 17
SEQ 0099
*****************************************************************
12090 Miscellaneous Test Variables
*****************************************************************
12128 Special code to test SPEAR entries
12171 Special code to produce an EXE version
*****************************************************************
1 Test Module DFNIA2.MAC
*****************************************************************
*****************************************************************
38 Port Modules
*****************************************************************
41 TEST 1 - Port Hardware Test 1
443 TEST 2 - Port Hardware Test 2
1358 TEST 3 - Port Hardware Test 3
*****************************************************************
1806 Miscellaneous Routines
*****************************************************************
1809 MWAIT - Routine to wait for test completion and determine test results
1856 MSTART - Start the port at location 5777
1871 MPRINT - Print test completion data for a test
*****************************************************************
1 Test Module DFNIA3.MAC
*****************************************************************
*****************************************************************
40 Microcode Functional Tests
*****************************************************************
43 TEST 4 - Idle Loop Test
175 TEST 5 - Queue Handling Test
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 18
SEQ 0100
*****************************************************************
385 NSA Tests
*****************************************************************
388 TEST 6 - NSA ROM Address Test
565 TEST 7 - NSA RAM Address Test
*****************************************************************
744 CRC Tests
*****************************************************************
747 TEST 10 - CRC Test 1
1000 TEST 11 - CRC Test 2
*****************************************************************
1277 Datagram Loopback Tests
*****************************************************************
1280 TEST 12 - Non-BSD Datagram Loopback Test
1622 CRCINI - Special routine to clear a CRC table used by TST12...
1638 TEST 13 - BSD Datagram Loopback Test 1
1948 TEST 14 - BSD Datagram Loopback Test 2
*****************************************************************
2257 Multicast Address Tests
*****************************************************************
2260 TEST 15 - Multicast Table Test 1
2512 TEST 16 - Multicast Table Test 2
2778 TEST 17 - Multicast Table Test 3
3032 TEST 20 - Broadcast Test
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 19
SEQ 0101
*****************************************************************
3298 Protocol Type Tests
*****************************************************************
3301 TEST 21 - PTT Table Test 1
3569 TEST 22 - PTT Table Test 2
3824 TEST 23 - PTT Table Test 3
*****************************************************************
4077 Miscellaneous Tests
*****************************************************************
4079 *******************************************************************
TEST 24 - PAD Flag Bit Test 1
4327 *******************************************************************
TEST 25 - PAD Flag Bit Test 2
4567 TEST 26 - Configuration Test
4595 TEST 27 - Statistics Test
*****************************************************************
4758 Miscellaneous Routines
*****************************************************************
4761 MPACK - Build a packet based on parameters in AC1
4780 MPACKN - Build a packet based on parameters in AC1
4799 MCOMP - Do data compare of a packet received
4849 MCOMP2 - Compare RSPONS against contents of PACKET
4879 MCHECK - Check results
4922 SAVPK1 - Save packet data (status error packet)
SAVPK2 - Save packet data (data error packet)
4970 PKPNT - Print special saved packet data
4989 LODERR - Print ucode load error
5014 CHKDEB - Check for debug mode (transfer entry from cmd to rsp queue)
5053 PIDLE - Start the port and wait for IDLE bit to set in CSR
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 20
SEQ 0102
5087 QCHECK - Check for received type of free queue
5104 LOADPM - Load PTT table and MCAT tables and H4000 mode (via port commands)
*****************************************************************
1 Port Controller Utility Package
*****************************************************************
*****************************************************************
59 Port Register Read/Write Routines
*****************************************************************
62 Notes On I/O Routine Design
111 Port Register Load Routines
123 LDEBUF - Load EBUF
140 LDCSR - Load CSR (This is simply a CONO).
154 LDRAR - Load RAR
180 LDCRAM - Load CRAM
201 Port Register Read Routines
218 RDEBUF - Read EBUF
234 RDCSR - Read CSR
258 RDLAR - Read LAR
281 RDCRAM - Read CRAM
300 .CONI - Do a simple CONI (no error checking)
319 .CONO - Do a simple CONO
340 .DATAI - Do a simple DATAI (no error checking)
359 .DATAO - Do a simple DATAO
379 ERESET - Issue an EBUS reset
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 21
SEQ 0103
*****************************************************************
390 Port Specific Utility Routines
*****************************************************************
393 ISTOP - Stop IPA either by a port clear or by clearing the CSR register
440 IPACLR - Issue a port clear
451 SETEBU - Check that 'Diag Test EBUF' bit is set in CSR and set if not.
473 SETLAR - Check that 'Diag Sel LAR' bit is set in CSR and set if not.
494 CLREBU - Check that 'Diag Test EBUF' is not set in CSR and clear if is.
515 CHKCSR - Check if error bits are set in the CSR register
544 IPASRT - Start the port at the address given in 'SADDR' and with
initial parameters given in 'SDATA'.
626 IPASTP - Stop the port
692 IPASST - Single step the port at the address given in 'SNEXT' and
with initial parameters given in 'SDATA'.
*****************************************************************
799 PI System Routines
*****************************************************************
802 INITPI - Initialize and Turn On PI System
843 .PIOFF - Detach port from PI system
859 .PION - Attach port to PI system (Channel 4)
877 PISYOF - Turn PI system off
886 PISYON - Turn PI system on
894 SETVEC - Set up interrupt vectors for an port under test
918 SET2N - Set up 40 + 2N locations with interrupt dispatch instruction
940 VIINT - Vectored interrupt (Port)
1007 NVIINx - Non-Vectored interrupt (Port)
1156 .INPNT - Print special interrupt data
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 22
SEQ 0104
*****************************************************************
1203 Channel Handling Routines
*****************************************************************
1206 Routines To Interface With A Channel
1255 CHINIT - Channel Initialization Routine
1407 GETLOG - Snapshot The Channel Logout Area
1444 CCWPNT - Prints CCW word currently in PCB+32.
1473 LOGPNT - Channel Logout Printer
1549 DIAGER - Report Monitor Call Error In User Mode
*****************************************************************
1572 User Mode Support Routines
*****************************************************************
1575 DSETUP - Setup Routine For Diagnostic Function
1662 CPUTST - Determine Which Of 2 CPU's To Run On
1705 DEVREL - User Mode Release Routine
1757 DEVREQ - User Mode Request Routine
1817 ENDIAG - Enable the NI/CI port
1835 DGEPNT - Decode and print DIAG error
1916 LOCPHY - Lock part of the diagnostic
1948 USRION/USRIOF - Turn User I/O Privileges On/Off
1990 ENABLE - Enable Capabilities of This Process
*****************************************************************
2011 Miscellaneous Routines
*****************************************************************
2014 FFF - Routine To Handle Fatals
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 23
SEQ 0105
*****************************************************************
1 UTILITY Routines Module
*****************************************************************
*****************************************************************
62 Printout/Typin Routines
*****************************************************************
65 CONVSX - Convert sixbit to octal
108 ALTCHH - Handle altmode intercept
133 CLRBUF - Clear input buffer
150 TTYYES - Answer yes or no question
180 PSDN - Prints signed decimal numbers
205 .PNTOC - Print n digit octal number with leading zeros suppressed
252 .PNTDC - Print n digit decimal number with leading zeros suppressed
299 .PNTDL - Print decimal number left justified leading zeros suppressed
346 .PNTDP - Print n digit decimal number with leading zeros suppressed
393 PPDEC - Print decimal number in a field of size x.
432 PPDECF - Force print decimal number in a field of size x.
*****************************************************************
470 Clock Handling Routines
*****************************************************************
473 STCLOK - Initialize program runtime clock
515 MONTIM - Read program runtime from monitor
549 PTIME - Print time of day
567 RUNTME - Calculate and print program runtime
675 PSTAMP - Check for an 'S' typed.
711 .DELAY - Delay a specified amount of time (in milliseconds)
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 24
SEQ 0106
*****************************************************************
743 TOPS10/20 Related Routines
*****************************************************************
746 .RESET - Subroutine to issue a RESET JSYS/UUO
765 .CLOSE - Subroutine to close opened files
793 .EXIT - Subroutine to exit job in user mode
*****************************************************************
822 File Handling Routines
*****************************************************************
825 CHRIN - Routine to read an ASCII character from the selected file.
836 CHRINS - Routine to read an ASCII character from the selected file.
862 FGETW - Get microword entry from file
910 FGETA - Obtain microcode load address 'ADDR:' from file
937 FGETD - Obtain microcode data entry from file (4 digits).
*****************************************************************
965 Data Pattern Generator/Compare Routines
*****************************************************************
968 BUFGEN - Generate the specified data pattern in the data buffer.
BUFCOM - Compare the data buffer with expected data
1070 DATMES - A data comparison error has been found. Report the error,
printing a maximum of three lines of errors.
*****************************************************************
1112 Data Patterns
*****************************************************************
1115 Data Patterns
1336 PATPNT - Translate pattern number to description
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 25
SEQ 0107
*****************************************************************
1428 Switch Handling Routines
*****************************************************************
1431 .SWCHP - Print switch settings in English
1499 SWITT - Get value of switches
1512 .ISWT - Complete switch handling
1609 .SLEFT - Input left hand switches
1674 .SRIGT - Enter right hand switches
1846 SWCHPT - Prints current state of switches
1858 SWCOM - Switch complement routine
*****************************************************************
1950 Miscellaneous Routines
*****************************************************************
1953 PARSER - Additional CPU parity error service
2001 .COMM - Match a command entered against a command table.
2052 .COMM2 - Compare command typed to table to see if valid
2088 .SARG - Obtain SIXBIT argument
2176 .OARG - Obtain octal argument
2267 DECYN - Decode an argument which should be NO or YES
2295 .DARG - Obtain octal/decimal argument
2389 CHKARG - Check for argument when there shouldn't be any
2436 LASARG - Check for last argument when there shouldn't be any more
2479 FIOFF - Routine to turn off the 'file input' switch
2497 FINCMD - Input a sixbit command from a file
2547 FSARG - Input a sixbit argument from a file
2597 FOARG - Input a octal argument from a file
2661 FEOL - Skip characters until end of line is reached
DFNIA LST DECDOC VER 00.25 24-SEP-84 20:13:07 PAGE 26
SEQ 0108
*****************************************************************
2672 Scope Looping And Error Reporting Routine
*****************************************************************
2675 SCOPE1 - Error reporter and scope loop controller
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 1
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0109
1 SUBTTL DFNIA TITLE FILE
2
3 SALL
4
5 UNIVERSAL DFNIA
6 SEARCH MONSYM
7
8 EXTERN START,STARTA,PGMNAM,SCOPE1
9 EXTERN PPDEC,PPDECF,ALTCHH,.PNTOC,.PNTDC,.PNTDP,.PNTDL,.DELAY
10
11 .REQUIRE DFNIA1
12 .REQUIRE DFNIA2
13 .REQUIRE DFNIA3
14 .REQUIRE DFNIAI
15 .REQUIRE DFNIAU
16
17 000000 MCNVER==0
18 000002 DECVER==2
19
20 ;* Copyright (C) 1983
21 ;* DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
22 ;*
23 ;* This software is furnished under a license for use only
24 ;* on a single computer system and may be copied only with
25 ;* the inclusion of the of the above copyright notice. This
26 ;* software, or any other copies thereof, may not be provided
27 ;* or otherwise made available to any other person except for
28 ;* use on such system and to one who agrees to these license
29 ;* terms. Title to and ownership of the software shall at all
30 ;* times remain in DEC.
31 ;*
32 ;* The information in this document is subject to change
33 ;* without notice and should not be construed as a commitment
34 ;* by Digital Equipment Corporation.
35 ;*
36 ;* DEC assumes no responsibility for the use or reliability
37 ;* of its software on equipment which is not supplied by DEC.
38 ;*
39 ;* Author: Dick Stockdale
40 ;* Maintainer: 36-Bit Diagnostic Engineering
41
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 2
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0110
42
43 ;#********************************************************************
44 ;* Program Parameters
45 ;#********************************************************************
46
47 ; AC Assignments.
48
49 000011 OP=11 ; op code
50 000012 PK=12 ; packet address
51 000013 Q=13 ; queue number
52 000014 PAT=14 ; data pattern in use
53 000015 ERFLG=15 ; error flag (gets cleared by SCOPER)
54 000016 MBCN=16 ; channel 54000,,0 to 57400,,0
55 000017 P=17 ; stack pointer
56
57
58 ;#********************************************************************
59 ;* Assembly Parameters
60 ;#********************************************************************
61
62 000005 ITERAT==5 ; default to 5 passes
63 000001 KL10==1 ; assemble for KL10
64 000001 EXCASB==1 ; assemble for exec mode
65 000001 USRASB==1 ; assemble for user mode
66 000001 MEMMAP==1 ; allow memory to be mapped
67
68 000001 $LPAPER==1 ; don't list literals
69
70 030000 SADR1=BEGIN
71 030000 SADR2=BEGIN
72 030000 SADR3=BEGIN
73 030007 SADR4=SRTDDT
74 000000* SADR5=START ; ^C restart
75 030007 SADR6=SRTDDT
76 254200 000000* SADR7=HALT START
77 254200 000000* SADR8=HALT START
78 254200 000000* SADR9=HALT START
79 254200 000000* SADR10=HALT START
80 254200 000000* SADR11=HALT START
81
82 711523 655207 PAREA1==711523,,655207 ; random number base
83 000000 PAREA2==0
84 444656 514100 PAREA3==SIXBIT/DFNIA/
85 605664 000000 PAREA4==SIXBIT/PNT/
86 000000 PAREA5==0
87 000000 PAREA6==0
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 3
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0111
88
89 ;#************************************************************
90 ;* Channel Logout Status Bits
91 ;#************************************************************
92
93 400000 000000 LOGO==1B0 ; channel log out bit
94 200000 000000 MPER==1B1 ; memory parity error
95 100000 000000 ADRPE==1B2 ; set when no address parity error
96 040000 000000 NOTWC0==1B3 ; not word count zero
97 020000 000000 NEXM==1B4 ; non-existant memory
98 000400 000000 LAXER==1B9 ; last xfer error
99 000200 000000 IPAER==1B10 ; IPA20 error
100 000100 000000 LGWC==1B11 ; long word count
101 000040 000000 SHWC==1B12 ; short word count
102 000020 000000 OVN==1B13 ; overrrun
103
104
105 ;#********************************************************************
106 ;* Right Hand Switches
107 ;#********************************************************************
108
109 400000 TRACET==1B18 ; program test # trace feature
110 200000 INHFLT==1B19 ; inhibit fault isolation
111 100000 INHMSG==1B20 ; inhibit error message printout
112 040000 LOOPGM==1B21 ; loop on program
113 020000 LOOPTS==1B22 ; loop on test
114 010000 RUNALL==1B23 ; run all segments of a test
115 004000 DSPEAR==1B24 ; disable SPEAR switch
116 002000 DEBUG1==1B25 ; debug mode (debug without an IPA)
117 001000 DEBUG2==1B26 ; debug mode (print error messages)
118 000400 DEBUG3==1B27 ; debug mode (don't load test ucode)
119 000200 DEBUG4==1B28 ; debug mode (dump on error)
120 000040 DEBUG6==1B30 ; debug mode (expanded error message)
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 4
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0112
121
122 ;#********************************************************************
123 ;* OP Code definitions (for operational microcode)
124 ;#********************************************************************
125
126 ; Op code sent
127
128 000001 SNDDG==1
129 000002 LDMCAT==2
130 000003 LDPTT==3
131 000004 RCCNT==4
132 000006 WRPLI==6
133 000007 RDPLI==7
134 000010 RDNSA==10
135 000011 WRNSA==11
136
137 ; Op code received
138
139 000001 DGSNT==SNDDG
140 000005 DGRCV==5
141 000002 MCATLD==LDMCAT
142 000003 PTTLD==LDPTT
143 000004 CNTRC==RCCNT
144 000006 PLIWR==WRPLI
145 000007 PLIRD==RDPLI
146 000010 NSARD==RDNSA
147 000011 NSAWR==WRNSA
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 5
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0113
148
149 ;#*********************************************************************
150 ;* Macro Definitions
151 ;#*********************************************************************
152
153 ;#********************************************************************
154 ;* Text macros
155 ;#********************************************************************
156
157 DEFINE TMSG(TEXT),<PNTMSG [ASCIZ ^TEXT^]>
158
159 DEFINE TMSGC(TEXT),<PNTMSG [ASCIZ ^
160 TEXT^]>
161
162 DEFINE TMSGD(TEXT),<PNTMSG [ASCIZ ^TEXT
163 ^]>
164
165 DEFINE TMSGCD(TEXT),<PNTMSG [ASCIZ ^
166 TEXT
167 ^]>
168 DEFINE FMSG(TEXT),<PNTMSF [ASCIZ ^TEXT^]>
169
170 DEFINE FMSGC(TEXT),<PNTMSF [ASCIZ ^
171 TEXT^]>
172
173 DEFINE FMSGD(TEXT),<PNTMSF [ASCIZ ^TEXT
174 ^]>
175
176 DEFINE FMSGCD(TEXT),<PNTMSF [ASCIZ ^
177 TEXT
178 ^]>
179
180 ;#********************************************************************
181 ;* ASCII text macro
182 ;#********************************************************************
183
184 DEFINE TASCIZ (TEXT)<[ASCIZ /TEXT/]>
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 6
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0114
185
186 ;#********************************************************************
187 ;* RPUT/RGET - Multiple put/get
188 ;#********************************************************************
189
190 DEFINE RPUT (R0,R1<-1>,R2<-1>,R3<-1>,R4<-1>,R5<-1>,R6<-1>,R7<-1>,R8<-1>,R9<-1>)<
191 PUT R0
192 XLIST
193 IFGE R1,<PUT R1>
194 IFGE R2,<PUT R2>
195 IFGE R3,<PUT R3>
196 IFGE R4,<PUT R4>
197 IFGE R5,<PUT R5>
198 IFGE R6,<PUT R6>
199 IFGE R7,<PUT R7>
200 IFGE R8,<PUT R8>
201 IFGE R9,<PUT R9>
202 LIST>
203
204 DEFINE RGET (R0,R1<-1>,R2<-1>,R3<-1>,R4<-1>,R5<-1>,R6<-1>,R7<-1>,R8<-1>,R9<-1>)<
205 GET R0
206 XLIST
207 IFGE R1,<GET R1>
208 IFGE R2,<GET R2>
209 IFGE R3,<GET R3>
210 IFGE R4,<GET R4>
211 IFGE R5,<GET R5>
212 IFGE R6,<GET R6>
213 IFGE R7,<GET R7>
214 IFGE R8,<GET R8>
215 IFGE R9,<GET R9>
216 LIST>
217
218 ; Microword table macro
219
220 DEFINE SUBTAB(ADDR)<
221 -2
222 ADDR>
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 7
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0115
223
224 ;#********************************************************************
225 ;* Test Dispatch Table Definitions
226 ;#********************************************************************
227
228 400000 000000 PORT==1B0 ; PORT tests
229 200000 000000 NIA==1B1 ; NIA tests
230 100000 000000 LOOP==1B2 ; Loopback tests
231 040000 000000 FUNCT==1B3 ; Functional tests
232 740000 000000 ALL==17B3 ; All tests
233 000100 000000 TDENA==1B11 ; test dispatch enable (0-yes,1-no)
234
235
236 ;#*********************************************************************
237 ;* Port CONI/CONO CSR Bit Assignments
238 ;#*********************************************************************
239
240 400000 000000 PORTP==1B0 ; port present
241 200000 000000 CSRRQS==1B1 ; diag request CSR
242 100000 000000 CSRCHN==1B2 ; diag CSR changed
243 040000 000000 DINIT==1B3 ; diag initialized
244 020000 000000 PI00RQ==1B4 ; PI Level 0 interrupt in progress
245 010000 000000 RQINT==1B5 ; request interrupt
246 004000 000000 CRAMPE==1B6 ; CRAM parity error
247 002000 000000 MBERR==1B7 ; MBUS error
248 000100 000000 IDLE==1B11 ; IDLE loop
249 000040 000000 DCOMP==1B12 ; disable complete
250 000020 000000 ECOMP==1B13 ; enable complete
251 400000 PCLEAR==1B18 ; port clear
252 200000 TSTEBF==1B19 ; diag test EBUF
253 100000 GENEPE==1B20 ; diag generate EBUS parity error
254 040000 SELLAR==1B21 ; diag select LAR/SQR
255 020000 SINCYC==1B22 ; diag single cycle
256 010000 SPARE1==1B23 ; spare bit
257 004000 EBUSPE==1B24 ; EBUS parity error
258 002000 FQUERR==1B25 ; free queue error
259 001000 MVRERR==1B26 ; data mover error
260 000400 CMDQAV==1B27 ; command queue available
261 000200 RESQAV==1B28 ; response queue available
262 000100 SPARE2==1B29 ; spare bit
263 000040 PDSABL==1B30 ; disable
264 000020 PENABL==1B31 ; enable
265 000010 MPRUN==1B32 ; mproc run
266 000004 PIA00==1B33 ; PIA field bit 0
267 000002 PIA01==1B34 ; PIA field bit 1
268 000001 PIA02==1B35 ; PIA field bit 2
269
270 002000 TCOMP==1B25 ; test completed bit
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 8
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0116
271
272 ;#*********************************************************************
273 ;* OPDEF/UUO Definitions
274 ;#*********************************************************************
275
276 104000 000000 OPDEF JSYS [104000,,0] ; TOPS-20 command
277 104000 000100 OPDEF CFIBF [JSYS 100] ; clear TOPS-20 input buffer
278
279 001000 000000 OPDEF PNTOCC [1B8] ; print n digits leading 0's suppressed
280 002000 000000 OPDEF PDECF [2B8] ; force print decimal number
281 003000 000000 OPDEF PNTDCC [3B8] ; print n digits leading 0's suppressed
282 004000 000000 OPDEF PNTDCP [4B8] ; print n digits leading 0's suppressed
283 005000 000000 OPDEF DELAY [5B8] ; delay for n milliseconds
284 006000 000000 OPDEF PDEC [6B8] ; print decimal number
285 007000 000000 OPDEF ALTCHK [7B8] ; check for altmode character typed
286 010000 000000 OPDEF PNTDCL [10B8] ; print decimal number left justified
287 027000 000000 OPDEF SCOPER [27B8] ; error handler UUO
288
289 000000* LUUO1==.PNTOC ; service routine for n digit octal
290 000000* LUUO2==PPDECF ; force print decimal number
291 000000* LUUO3==.PNTDC ; service routine for n digit decimal
292 000000* LUUO4==.PNTDP ; service routine for n digit decimal
293 000000* LUUO5==.DELAY ; delay routine (n milliseconds)
294 000000* LUUO6==PPDEC ; print decimal number
295 000000* LUUO7==ALTCHH ; check if an altmode was typed
296 000000* LUUO10==.PNTDL ; print decimal number left justified
297 000000* LUUO27==SCOPE1 ; error print routine
298
299
300 ;#*********************************************************************
301 ;* Bit Definitions For "SCOPE" UUO Handler - Error Message Printer
302 ;#*********************************************************************
303
304 100000 000000 MSG==1B2 ; ASCIZ message
305 200000 000000 CALL==2B2 ; call special print routine
306 300000 000000 GOTO==3B2 ; goto (new address of error table)
307 040000 000000 TXNOT==1B3 ; print/call entry if TXTINH not set
308 020000 000000 TXYES==1B4 ; print/call entry if TXTINH set
309 060000 000000 TXALL==3B4 ; print/call entry always
310 010000 000000 LAST==1B5 ; last table entry
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 9
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0117
311
312 ;#********************************************************************
313 ;* Microword Field Definitions
314 ;
315 ; These definitions are arranged for the macro which generates pairs
316 ; of microwords as (addr & parity flags & left 20 bits,right 36 bits).
317 ; These are of the form:
318 ;
319 ; Word 1: Bits 00-11 - Microword load address (0000-7777)
320 ; 12-35 - Bits 0-23 of microword to load
321 ; Word 2: Bits 00-34 - Bits 24-57,59 of microword to load
322 ; 35 ---- Force Bad Parity flag
323 ;
324 ; In detail:
325 ;
326 ; Word 1: Bits 00-11 - Microword load address
327 ; 12-23 - MWJMPFLD
328 ; 24 - MWPAR
329 ; 25 - MWOUTPUTENA
330 ; 26-35 - MWMGCFLD
331 ;
332 ; Word 2: Bits 00-02 - MWSORCEFLD
333 ; 03-05 - MWFUNCTFLD
334 ; 06-08 - MWDESTFLD
335 ; 09 - MWCCENA
336 ; 10 - MWRAMODE
337 ; 11-14 - MWPORTAFLD
338 ; 15-18 - MWPORTBFLD
339 ; 19-23 - MWSKIPFLD
340 ; 24-26 - MWBUSCTLFLD
341 ; 27 - MWCARRY
342 ; 28-31 - MWCTRLFLD
343 ; 32 - MWTIMEFLD
344 ; 33 - MWSPARE00
345 ; 34 - MWMARKBIT
346 ;
347 ; 35 - Force bad parity flag
348 ;
349 ; The microwords are generated using a set of field definitions
350 ; describing how the two words are to be constructed. Each field
351 ; is defined as a bit position in the first word, a bit position
352 ; in the right word, and a magnitude describing the size of the
353 ; field. These are defined as follows:
354 ;
355 ; .Lxxxx - Specifies the rightmost bit position of the field
356 ; in the left word. If the field does not appear in
357 ; left word, this will be zero.
358 ;
359 ; .Rxxxx - Specifies the rightmost bit position of the field
360 ; in the right word. If the field does not appear
361 ; in right word, this will be zero.
362 ;
363 ; .Mxxxx - Specifies the maximum magnitude of the field in
364 ; the word.
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 10
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0118
365
366 ; The microwords are generated as follows:
367 ;
368 ; Left word = ((value AND .Mxxxx) times .Lxxxx) ! next field ...
369 ; Right word = ((value AND .Mxxxx) times .Rxxxx) ! next field ...
370 ;
371 ; Parity is calculated prior to loading into the CRAM. The parity
372 ; bit may be specified explicitly by specifying EVEN or ODD. The
373 ; microcode loader will ensure that the word has the specified
374 ; parity. If not specified, the correct parity will be calculated.
375 ;
376 ; Sample microword definitions:
377 ;
378 ; (a) Specify: J 1000, OUTENA, SORCE fld = 2, DEST fld = 3
379 ; load address = 120
380 ;
381 ; Type: MWORD <ADDR=120,J=1000,OENA,SORC=2,DEST=3>
382 ;#********************************************************************
383
384 000100 000000 .LADDR==1B11 ; MW load address
385 000000 .RADDR==0
386 007777 .MADDR==7777
387
388 010000 .LJ==1B23 ; MW jump field (00:11)
389 000000 .RJ==0
390 007777 .MJ==7777
391
392 004000 .LPAR==1B24 ; MW parity (12:12)
393 000000 .RPAR==0
394 000001 .MPAR==1
395
396 002000 .LOENA==1B25 ; MW output enable (13:13)
397 000000 .ROENA==0
398 000001 .MOENA==1
399
400 000001 .LMGC==1B35 ; MW magic number field (14:23)
401 000000 .RMGC==0
402 001777 .MMGC==1777
403
404 000000 .LSORC==0 ; MW source field (24:26)
405 100000 000000 .RSORC==1B2
406 000007 .MSORC==7
407
408 000000 .LSAQ==0 ; Source = AQ
409 000000 .RSAQ==0B2
410 000007 .MSAQ==7
411
412 000000 .LSAB==0 ; Source = AB
413 100000 000000 .RSAB==1B2
414 000007 .MSAB==7
415
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 11
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0119
416 000000 .LS0Q==0 ; Source = 0Q
417 200000 000000 .RS0Q==2B2
418 000007 .MS0Q==7
419
420 000000 .LS0B==0 ; Source = 0B
421 300000 000000 .RS0B==3B2
422 000007 .MS0B==7
423
424 000000 .LS0A==0 ; Source = 0A
425 400000 000000 .RS0A==4B2
426 000007 .MS0A==7
427
428 000000 .LSDA==0 ; Source = DA
429 500000 000000 .RSDA==5B2
430 000007 .MSDA==7
431
432 000000 .LSDQ==0 ; Source = DQ
433 600000 000000 .RSDQ==6B2
434 000007 .MSDQ==7
435
436 000000 .LSD0==0 ; Source = D0
437 700000 000000 .RSD0==7B2
438 000007 .MSD0==7
439
440 000000 .LFUNC==0 ; MW function field (27:29)
441 010000 000000 .RFUNC==1B5
442 000007 .MFUNC==7
443
444 000000 .LPLUS==0 ; R PLUS S function
445 000000 .RPLUS==0B5
446 000007 .MPLUS==7
447
448 000000 .LSMIN==0 ; R MINUS S function
449 010000 000000 .RSMIN==1B5
450 000007 .MSMIN==7
451
452 000000 .LRMIN==0 ; R MINUS S function
453 020000 000000 .RRMIN==2B5
454 000007 .MRMIN==7
455
456 000000 .LOR==0 ; R OR S function
457 030000 000000 .ROR==3B5
458 000007 .MOR==7
459
460 000000 .LAND==0 ; R AND S function
461 040000 000000 .RAND==4B5
462 000007 .MAND==7
463
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 12
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0120
464 000000 .LNAND==0 ; NOT R AND S function
465 050000 000000 .RNAND==5B5
466 000007 .MNAND==7
467
468 000000 .LXOR==0 ; R XOR S function
469 060000 000000 .RXOR==6B5
470 000007 .MXOR==7
471
472 000000 .LXNOR==0 ; R XNOR S function
473 070000 000000 .RXNOR==7B5
474 000007 .MXNOR==7
475
476 000000 .LD==0 ; MW destination field (30:32)
477 001000 000000 .RD==1B8
478 000007 .MD==7
479
480 000000 .LCENA==0 ; MW CC enable (33:33)
481 000400 000000 .RCENA==1B9
482 000001 .MCENA==1
483
484 000000 .LDISA==0 ; MW CC disable
485 000000 .RDISA==0B9
486 000001 .MDISA==1
487
488 000000 .LENA==0 ; MW CC enable
489 000400 000000 .RENA==1B9
490 000001 .MENA==1
491
492 000000 .LRAM==0 ; MW RAM mode (34:34)
493 000200 000000 .RRAM==1B10
494 000001 .MRAM==1
495
496 000000 .LA==0 ; MW Port A field (35:38)
497 000010 000000 .RA==1B14
498 000017 .MA==17
499
500 000000 .LB==0 ; MW Port B field (39:42)
501 400000 .RB==1B18
502 000017 .MB==17
503
504 000000 .LSK==0 ; MW skip field (43:47)
505 010000 .RSK==1B23
506 000037 .MSK==37
507
508 000000 .LCCON==0 ; Select CC 'on' (CCCSRCHNG)
509 030000 .RCCON==03B23
510 000037 .MCCON==37
511
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 13
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0121
512 000000 .LCCOF==0 ; Select CC 'off' (CCGRNTCSR)
513 010000 .RCCOF==01B23
514 000037 .MCCOF==37
515
516 000000 .LCCCA==0 ; Select CCCBUSAVAIL
517 000000 .RCCCA==0B23
518 000037 .MCCCA==37
519
520 000000 .LCCGC==0 ; Select CCGRNTCSR
521 010000 .RCCGC==01B23
522 000037 .MCCGC==37
523
524 000000 .LCCFZ==0 ; Select CCFEQ0
525 020000 .RCCFZ==02B23
526 000037 .MCCFZ==37
527
528 000000 .LCCCC==0 ; Select CCCSRCHNG
529 030000 .RCCCC==03B23
530 000037 .MCCCC==37
531
532 000000 .LCCEB==0 ; Select CCEBPARERR
533 040000 .RCCEB==4B23
534 000037 .MCCEB==37
535
536 000000 .LCCRA==0 ; Select CCRCVATTN
537 050000 .RCCRA==5B23
538 000037 .MCCRA==37
539
540 000000 .LCCEF==0 ; Select CCEOFRAME
541 060000 .RCCEF==6B23
542 000037 .MCCEF==37
543
544 000000 .LCCXA==0 ; Select CCXMTRATTN
545 070000 .RCCXA==7B23
546 000037 .MCCXA==37
547
548 000000 .LCCER==0 ; Select CCEBUSRQST
549 100000 .RCCER==10B23
550 000037 .MCCER==37
551
552 000000 .LCCIA==0 ; Select CCINTRACTIVE
553 110000 .RCCIA==11B23
554 000037 .MCCIA==37
555
556 000000 .LCCMB==0 ; Select CCMBSIGN
557 120000 .RCCMB==12B23
558 000037 .MCCMB==37
559
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 14
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0122
560 000000 .LCCMP==0 ; Select CCMVRPARCHK
561 130000 .RCCMP==13B23
562 000037 .MCCMP==37
563
564 000000 .LCCCP==0 ; Select CCCBUSPARERR
565 140000 .RCCCP==14B23
566 000037 .MCCCP==37
567
568 000000 .LCCPP==0 ; Select CCPLIPARERR
569 150000 .RCCPP==15B23
570 000037 .MCCPP==37
571
572 000000 .LCCCE==0 ; Select CCCHANERR
573 160000 .RCCCE==16B23
574 000037 .MCCCE==37
575
576 000000 .LCCLW==0 ; Select CCCBLSTWD
577 170000 .RCCLW==17B23
578 000037 .MCCLW==37
579
580 000000 .LLSAD==0 ; Load SAD Reg
581 200000 .RLSAD==20B23
582 000037 .MLSAD==37
583
584 000000 .LSKMB==0 ; Select MBUS field
585 210000 .RSKMB==21B23
586 000037 .MSKMB==37
587
588 000000 .LLDLM==0 ; Load Local Mem
589 230000 .RLDLM==23B23
590 000037 .MLDLM==37
591
592 000000 .LRDLM==0 ; Read Local Mem
593 220000 .RRDLM==22B23
594 000037 .MRDLM==37
595
596 000000 .LSKCN==0 ; Select constant field
597 240000 .RSKCN==24B23
598 000037 .MSKCN==37
599
600 000000 .LBUS==0 ; MW bus control field (48:50)
601 001000 .RBUS==1B26
602 000007 .MBUS==7
603
604 000000 .LSELP==0 ; Select PLI field
605 001000 .RSELP==1B26
606 000007 .MSELP==7
607
608 000000 .LSELM==0 ; Select Mbus field
609 002000 .RSELM==2B26
610 000007 .MSELM==7
611
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 15
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0123
612 000000 .LSELF==0 ; Select Fmtr field
613 003000 .RSELF==3B26
614 000007 .MSELF==7
615
616 000000 .LSELC==0 ; Select Cbus field
617 004000 .RSELC==4B26
618 000007 .MSELC==7
619
620 000000 .LSELE==0 ; Select Ebus field
621 005000 .RSELE==5B26
622 000007 .MSELE==7
623
624 000000 .LCRY==0 ; MW carry (51:51)
625 000400 .RCRY==1B27
626 000001 .MCRY==1
627
628 000000 .LOP==0 ; MW control field (52:55)
629 000020 .ROP==1B31
630 000017 .MOP==17
631
632 000000 .LJZ==0 ; Jump zero instruction
633 000000 .RJZ==00B31
634 000017 .MJZ==17
635
636 000000 .LCJS==0 ; Conditional JSB pipeline instruction
637 000020 .RCJS==01B31
638 000017 .MCJS==17
639
640 000000 .LJMAP==0 ; Jump MAP instruction
641 000040 .RJMAP==02B31
642 000017 .MJMAP==17
643
644 000000 .LCJP==0 ; Conditional jump pipeline instruction
645 000060 .RCJP==03B31
646 000017 .MCJP==17
647
648 000000 .LPUSH==0 ; Push/cond load counter instruction
649 000100 .RPUSH==04B31
650 000017 .MPUSH==17
651
652 000000 .LJSRP==0 ; Cond JSB R/Pipeline instruction
653 000120 .RJSRP==05B31
654 000017 .MJSRP==17
655
656 000000 .LCJV==0 ; Conditional jump vector instruction
657 000140 .RCJV==06B31
658 000017 .MCJV==17
659
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 16
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0124
660 000000 .LJRP==0 ; Cond jump R/Pipeline instruction
661 000160 .RJRP==07B31
662 000017 .MJRP==17
663
664 000000 .LRFCT==0 ; Repeat loop, counter#0 instruction
665 000200 .RRFCT==10B31
666 000017 .MRFCT==17
667
668 000000 .LRPCT==0 ; Repeat pipeline, counter#0 instr
669 000220 .RRPCT==11B31
670 000017 .MRPCT==17
671
672 000000 .LCRTN==0 ; Conditional RTN instruction
673 000240 .RCRTN==12B31
674 000017 .MCRTN==17
675
676 000000 .LCJPP==0 ; Cond jump pipeline and pop instr
677 000260 .RCJPP==13B31
678 000017 .MCJPP==17
679
680 000000 .LLDCT==0 ; Load counter and continue instruction
681 000300 .RLDCT==14B31
682 000017 .MLDCT==17
683
684 000000 .LLOOP==0 ; Test end loop instruction
685 000320 .RLOOP==15B31
686 000017 .MLOOP==17
687
688 000000 .LCONT==0 ; Continue instruction
689 000340 .RCONT==16B31
690 000017 .MCONT==17
691
692 000000 .LTWB==0 ; Three way branch instruction
693 000360 .RTWB==17B31
694 000017 .MTWB==17
695
696 000000 .LTIM==0 ; time field
697 000010 .RTIM==1B32
698 000001 .MTIM==1
699
700 000000 .LSPAR==0 ; 1st spare bit
701 000004 .RSPAR==1B33
702 000001 .MSPAR==1
703
704 000000 .LMARK==0 ; mark bit
705 000002 .RMARK==1B34
706 000001 .MMARK==1
707
708 000000 .LBAD==0 ; force bad parity
709 000001 .RBAD==1B35
710 000001 .MBAD==1
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 17
DFNIAT MAC 14-Feb-84 16:51 DFNIA TITLE FILE SEQ 0125
711
712 ;#********************************************************************
713 ;* Microword Macros (Note: If ADDR not specified, 'ADDR'+1 is used).
714 ;
715 ; Left word = ((value AND .Mxxxx) times .Lxxxx) ! next field ...
716 ; Right word = ((value AND .Mxxxx) times .Rxxxx) ! next field ...
717 ;
718 ; Samples: MWORD <J=1000,OENA,SORC=2,DEST=3>
719 ; MWORD <J=0,OENA,SORC=2,DEST=3>
720 ;#********************************************************************
721
722 ; CALC - Insert field value into the microwords under construction
723
724 DEFINE CALC($ARG1)<
725 IFE .L'$ARG1-1B11,<%ADDR==$ARG2>
726 IFN .L'$ARG1-1B11,<%ML=%ML!<<$ARG2&.M'$ARG1>*.L'$ARG1>
727 %MR=%MR!<<$ARG2&.M'$ARG1>*.R'$ARG1>>>
728
729 ; CONCAT - Build string argument
730
731 DEFINE CONCAT($A)<
732 $B=<SIXBIT /$A/>_-36 ; get right justified character in
733 $CHR=$CHR_6+$B> ; octal and accumulate in string
734
735 ; FIELD - Decode argument in the form XXXX=NNNN into XXXX and NNNN
736
737 DEFINE FIELD($ARG)<
738 $CHR=0 ; init string argument
739 $GARG=0 ; init numeric argument
740 IRPC $ARG,<IFN $GARG,<$ARG2=$ARG2*8+$ARG>
741 IFIDN "=",$ARG,<$GARG=1
742 $ARG2=0>
743 IFE $GARG,<CONCAT $ARG>
744 IFE $GARG,<$ARG2=1>>
745 CALC \'$CHR> ; enter into microword
746
747 ; MWORD - Build microwords
748
749 DEFINE MWORD ($FLD)<
750 %ML==0 ; init left word
751 %MR==0 ; init right word
752 IRP $FLD,<DEFINE MFLD($A)<FIELD $A>
753 MFLD $FLD>
754 %ML==%ML!%ADDR_^D24
755 %ADDR==%ADDR+1
756 EXP %ML,%MR> ; done
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 1
PARAM KLM 18-Sep-79 17:16 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979 SEQ 0126
757 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, SEPT 18,1979
758
759 DEFINE S,<; *********************************************************************>
760
761 ; **********************************************************************
762 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE)
763 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE
764 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS
765 ; **********************************************************************
766
767 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION
768 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS
769 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE
770
771 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED)
772 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE)
773 010000 DING== 010000 ;RING BELL ON ERROR
774
775 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR
776 002000 ERSTOP==002000 ;HALT ON TEST ERROR
777 001000 PALERS==001000 ;PRINT ALL ERRORS
778
779 000400 RELIAB==000400 ;RELIABILITY MODE
780 000200 TXTINH==000200 ;INHIBIT ERROR TEXT
781 000100 INHPAG==000100 ;INHIBIT PAGING
782
783 000040 MODDVC==000040 ;MODIFY DEVICE CODE
784 000020 INHCSH==000020 ;INHIBIT CACHE
785 000010 OPRSEL==000010 ;OPERATOR SELECTION
786
787 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH
788
789 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER
790
791 ;SWITCH 17 RESERVED !!!
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 2
PARAM KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 SEQ 0127
792 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979
793
794 ; **********************************************************************
795 ;*SPECIAL SUBPROGRAM LINKAGES
796 ; **********************************************************************
797
798 027772 FSELNK= 27772 ;FILE SELECT LINK
799 027773 FRDLNK= 27773 ;FILE READ LINK
800 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS
801 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS
802 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS
803 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS
804
805 ; **********************************************************************
806 ;*SPECIAL SUBROUTINE FATAL HALTS
807 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE
808 ; **********************************************************************
809
810 ;ADDRESS TAG REASON
811 ;---------------------
812
813 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION
814 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR
815 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR
816 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT
817 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL
818 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET
819 ; 1016 CPIERR ;CPU INITIALIZATION ERROR
820 ; 1017 EOPERR ;END OF PROGRAM ERROR
821 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT
822
823 ; **********************************************************************
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 3
PARAM KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 SEQ 0128
824 ; **********************************************************************
825 ;OPERATOR DEFINITIONS (NON-UUO'S)
826 ; **********************************************************************
827
828 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL
829 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN
830 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST
831 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST
832 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S
833 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT
834 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT
835 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT
836
837 ; **********************************************************************
838 ;SUBROUTINE INITIALIZATION CALL
839 ; **********************************************************************
840
841 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION
842
843 ; **********************************************************************
844 ;HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION).
845 ; **********************************************************************
846
847 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT
848 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT
849
850 ; **********************************************************************
851 ;TERMINAL INPUT UUO'S
852 ;ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE
853 ;CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE.
854 ; **********************************************************************
855
856 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER
857 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y
858 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N
859 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD
860 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD
861 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD
862 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK
863 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK
864 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD
865 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT
866 037500 000003 OPDEF TTICLR [37B8!12B12!3] ;TTY, CLEAR INPUT
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 4
PARAM KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 SEQ 0129
867 ;TERMINAL OUTPUT UUO'S.
868
869 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD
870 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED
871 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE
872 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED
873 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE
874 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED
875 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE
876 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED
877 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE
878 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED
879 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE
880 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED
881 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER
882 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED
883 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT
884 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED
885 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS
886 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED
887 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS
888 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED
889 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS
890 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED
891 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS
892 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED
893 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS
894 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED
895 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS
896 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED
897 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS
898 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED.
899 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS
900 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED
901 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL
902 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED
903 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6
904 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED
905 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S
906 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED
907 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S
908 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED
909 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S
910 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 5
PARAM KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 SEQ 0130
911 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME
912 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD
913 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED
914 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE
915 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD
916 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED
917 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED
918 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED
919 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE
920 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED
921 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE)
922 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED
923 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL
924
925 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE
926
927 DEFINE PMSG (ARG),<
928 PSIXM [SIXBIT\ARG'_\]>
929
930 DEFINE PMSGF (ARG),<
931 PSIXMF [SIXBIT\ARG'_\]>
932
933 ;SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING
934 ; CONSERVES CORE OVER ASCIZ
935
936 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]>
937
938 ;CONSOLE SWITCH INPUT UUO.
939 ;READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF
940 ; USER MODE.
941
942 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES
943
944 ;CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION
945 ;EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR.
946
947 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK
948 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER
949
950 ;KL10 ONLY CACHE OPERATION UUO'S
951
952 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE
953 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH
954 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 6
PARAM KLM 18-Sep-79 17:16 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, SEPT 18,1979 SEQ 0131
955 ;END OF PASS/PROGRAM UUOS
956
957 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT,
958 ;DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC.
959
960 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS
961 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO
962
963 ;MEMORY MANAGEMENT UUO'S
964 ;UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING,
965 ;ADDRESS CONVERSION, ETC...
966
967 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY
968 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY
969 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT
970 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT
971 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK
972 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP
973 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP
974
975 ;DEVICE CODE MODIFICATION UUO
976 ;ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO
977 ;IOT'S TO A DIFFERENT DEVICE CODE.
978
979 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER
980 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM
981
982 030000 IFNDEF MODDVL,<MODDVL==BEGIN>
983 030000 IFNDEF MODDVU,<MODDVU==BEGIN>
984
985 ;"DIAMON" FILE SELECTION AND READ UUOS
986
987 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION
988 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA
989 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA
990 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA
991
992 ;KI10 ONLY UUO FOR PRINTING MARGIN VALUES
993
994 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE
995
996 XLIST
997 IFNDEF KLOLD,<LIST
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 7
PARAM KLM 18-Sep-79 17:16 ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979 SEQ 0132
998 SUBTTL ERROR HANDLING UUO DEFINITIONS, SEPT 18,1979
999
1000 ; **********************************************************************
1001 ;ERROR HANDLER PARAMETERS
1002 ; **********************************************************************
1003
1004 036000 000000 OPDEF ERUUO [36B8] ;ERROR CALL UUO
1005 035000 000000 OPDEF ERLOOP [35B8] ;ERROR LOOP, CHECKS PC,REPT,REPT1,ERROR
1006 035040 000000 OPDEF ERLP1 [35B8!1B12] ;ERROR LOOP IF PC'S MATCH
1007 035100 000000 OPDEF ERLP2 [35B8!2B12] ;ERROR LOOP IF ANY ERROR
1008 034000 000000 OPDEF REPTUO [34B8] ;REPEAT LOOP UUO
1009
1010 ;THE ERROR HANDLER MACROS
1011
1012 ;A MACRO TO REPORT AN ERROR AND LOOP
1013
1014 DEFINE ERROR (ADR,FORMAT,CORECT,ACTUAL,F,D,ERR)<
1015 SALL
1016 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
1017 CORECT,,ACTUAL
1018 [SIXBIT\D'_\],,ERR]
1019 XALL
1020 ERLOOP ADR ;IF ERROR, LOOP TO ADR
1021 >
1022
1023 ;A MACRO TO REPORT AN ERROR AND NOT LOOP
1024
1025 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)<
1026 SALL
1027 ERUUO FORMAT,[T,,[SIXBIT\F'_\]
1028 CORECT,,ACTUAL
1029 [SIXBIT\D'_\],,ERR]
1030 XALL>
1031
1032 >;END OF KLOLD CONDITIONAL
1033
1034 XLIST
1035 LIST
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 1
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0133
1036 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979
1037
1038 030000 LOC 30000
1039
1040 ; **********************************************************************
1041 ;PROGRAM STARTING ADDRESSES
1042 ;THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS
1043 ;NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE
1044 ;OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER
1045 ;MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS.
1046 ; **********************************************************************
1047
1048 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START
1049 030001 254 00 0 00 000000* $START: JRST START ;MODE CHECK STARTING ADDRESS
1050
1051 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START
1052
1053 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START
1054
1055 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START
1056
1057 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART
1058
1059 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY)
1060
1061 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT"
1062 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START
1063
1064 030010 254 00 0 00 000000* BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE)
1065 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE
1066 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE
1067
1068 030013 254200 030001* START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS
1069 030014 254200 030013* START2: SADR8 ; "
1070 030015 254200 030014* START3: SADR9 ; "
1071 030016 254200 030015* START4: SADR10 ; "
1072 030017 254200 030016* START5: SADR11 ; "
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 2
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0134
1073 ; **********************************************************************
1074 ;PROGRAM FIXED PARAMETER AREA
1075 ; **********************************************************************
1076
1077 030020 444656 514100 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME
1078 030021 605664 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION
1079 030022 711523 655207 RANDBS: PAREA1 ;RANDOM BASE NUMBER
1080 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES
1081 030024 000000 000005 ITRCNT: ITERAT ;PROGRAM ITERATIONS
1082 030025 000000000000# $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME
1083 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL
1084 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT
1085 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT
1086 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED
1087 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED
1088 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE
1089 030034 777777 777777 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS
1090 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER
1091 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER
1092
1093 ; **********************************************************************
1094 ;PROGRAM VARIABLE PARAMETER AREA
1095 ; **********************************************************************
1096
1097 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG
1098 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10
1099 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10
1100 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG
1101 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG
1102 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10
1103 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG
1104 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS
1105 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT
1106 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG
1107 030051 000000 000000 TESTPC: 0 ;SUBTEST PC
1108 030052 000000 000000 ERRPC: 0 ;ERROR PC
1109 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS
1110 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME
1111 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE
1112 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 3
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0135
1113 ; **********************************************************************
1114 ;SPECIAL PROGRAM DISPATCH ADDRESSES
1115 ; **********************************************************************
1116
1117 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS
1118 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM
1119 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN
1120 030062 000000000000# CNTLC: SADR5 ;CONTROL C XFER ADDRESS
1121 030063 000000 030007 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS
1122 030064 CPOPJ1: ;SKIP RETURN
1123 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO
1124 030065 CPOPJ: ;NON-SKIP REGULAR RETURN
1125 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN
1126 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE
1127 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE
1128 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX)
1129 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE
1130 030072 255 00 0 00 000000 $ITRX1: JFCL ; "
1131 030073 255 00 0 00 000000 $USRHL: JFCL ; "
1132 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE
1133 030075 255 00 0 00 000000 $RSRTY: JFCL ; "
1134 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX)
1135 030077 255 00 0 00 000000 RESRT2: JFCL ; "
1136 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE
1137 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE
1138 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT
1139
1140 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR)
1141 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT
1142 030105 000000 000000 0 ;INITED AS (JRST $ITRC1)
1143
1144 ; **********************************************************************
1145 ;PROCESSOR CONTROL STORAGE
1146 ; **********************************************************************
1147
1148 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0
1149 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI
1150 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR
1151 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI)
1152 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI)
1153
1154 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO
1155 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO
1156
1157 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS
1158 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG
1159 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG
1160 030120 000000 000000 %COREC: 0 ; " CORRECT DATA
1161 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG
1162 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA
1163 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 4
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0136
1164 ; **********************************************************************
1165 ;UUO DISPATCH TABLE
1166 ; **********************************************************************
1167 XLIST
1168 LIST
1169 030124 000000* 030070 UUODIS: LUUO1,,$UUOER
1170 030125 000000* 000000* LUUO3,,LUUO2
1171 030126 000000* 000000* LUUO5,,LUUO4
1172 030127 000000* 000000* LUUO7,,LUUO6
1173 030130 030070 000000* LUUO11,,LUUO10
1174 030131 030070 030070 LUUO13,,LUUO12
1175 030132 030070 030070 LUUO15,,LUUO14
1176 030133 030070 030070 LUUO17,,LUUO16
1177 030134 030070 030070 LUUO21,,LUUO20
1178 030135 030070 030070 LUUO23,,LUUO22
1179 030136 030070 030070 LUUO25,,LUUO24
1180 030137 000000* 030070 LUUO27,,LUUO26
1181 030140 030070 030070 LUUO31,,LUUO30
1182 030141 030070 030070 LUUO33,,LUUO32
1183
1184 ; **********************************************************************
1185 ;MEMORY MANAGMENT STORAGE
1186 ; **********************************************************************
1187
1188 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT
1189 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING
1190 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.)
1191 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY
1192 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE
1193
1194 ; **********************************************************************
1195 ;PRINT CONTROL STORAGE
1196 ; **********************************************************************
1197
1198 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE
1199 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE
1200 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG
1201 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS
1202 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL
1203 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME
1204 030225 000000 000000 $TWCNT: 0 ;TIME WAITED
1205 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG
1206 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG
1207 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE
1208 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR
1209 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR
1210 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER
1211 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG
1212 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG
1213 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG
1214 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG
1215 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS
1216 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 5
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0137
1217 ; **********************************************************************
1218 ;THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED
1219 ;TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS:
1220 ; MOVEI NAME
1221 ; PNTA ;OR PNTAF
1222 ; **********************************************************************
1223
1224 030242 CRLF: ASCII/
1225 030242 015 012 000 000 000 /
1226 030243 CRLF2: ASCII/
1227
1228 030243 015 012 015 012 000 /
1229 030244 054 000 000 000 000 COMMA: ASCII/,/
1230 030245 056 000 000 000 000 PERIOD: ASCII/./
1231 030246 040 000 000 000 000 SPACE: ASCII/ /
1232 030247 011 000 000 000 000 TAB: ASCII/ /
1233 030250 MINUS:
1234 030250 055 000 000 000 000 HYPEN: ASCII/-/
1235 030251 053 000 000 000 000 PLUS: ASCII/+/
1236 030252 052 000 000 000 000 AST: ASCII/*/
1237 030253 100 000 000 000 000 ATSIN: ASCII/@/
1238 030254 050 000 000 000 000 LFP: ASCII/(/
1239 030255 051 000 000 000 000 RTP: ASCII/)/
1240 030256 007 0000000000 BELL: BYTE (7) 007
1241 030257 077 000 000 000 000 QUEST: ASCII/?/
1242 030260 057 000 000 000 000 SLASH: ASCII!/!
1243 030261 044 000 000 000 000 DOLLAR: ASCII/$/
1244 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX
1245 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR
1246 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT
1247
1248 ; **********************************************************************
1249 ;USER MODE OUTPUT FILE INFORMATION
1250 ; **********************************************************************
1251
1252 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER
1253 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME
1254 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION
1255 030272 BLOCK 2
1256
1257 ; **********************************************************************
1258 ;DISK UPDATE MODE FILE INFORMATION
1259 ; **********************************************************************
1260
1261 030274 $IBUF: BLOCK 3
1262 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/
1263 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/
1264 030301 BLOCK 2
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 6
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0138
1265 ; **********************************************************************
1266 ;PUSHDOWN LIST CONTROL INFORMATION
1267 ; **********************************************************************
1268
1269 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST
1270 030304 PLISTS: BLOCK 200
1271 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST
1272
1273 ; **********************************************************************
1274 ;POWER LINE CLOCK FREQUENCY FLAG
1275 ; **********************************************************************
1276
1277 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE
1278
1279 ; **********************************************************************
1280 ;KL10 CACHE CONTROL FLAGS
1281 ; **********************************************************************
1282
1283 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0
1284 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0
1285
1286 ; **********************************************************************
1287 ;NUMBER INPUT DIGIT FLAG
1288 ; **********************************************************************
1289
1290 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED
1291
1292 ; **********************************************************************
1293 ;KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION
1294 ; **********************************************************************
1295
1296 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION
1297
1298 ; **********************************************************************
1299 ;ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS
1300 ; **********************************************************************
1301
1302 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO
1303 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO
1304 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO
1305
1306 ; **********************************************************************
1307 ;SPECIAL USERS UUO INTERCEPT INSTRUCTION
1308 ; **********************************************************************
1309
1310 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 7
FIXED KLM 18-Sep-79 17:18 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0139
1311 ; **********************************************************************
1312 ;USER MODE MONITOR TYPE FLAG
1313 ; **********************************************************************
1314
1315 030516 000000 000000 MONTYP: 0 ;0 = TOPS10, -1 = TOPS20
1316
1317 ; **********************************************************************
1318 ;SPECIAL USERS MUUO INTERCEPT INSTRUCTION
1319 ; **********************************************************************
1320
1321 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER
1322
1323 ; **********************************************************************
1324 ;SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION
1325 ; **********************************************************************
1326
1327 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR
1328
1329 ; **********************************************************************
1330 ;"SWITCH" CALL USAGE CONTROL
1331 ; **********************************************************************
1332
1333 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES
1334
1335 ; **********************************************************************
1336 ;SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS
1337 ; **********************************************************************
1338
1339 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL
1340 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL
1341
1342 ; **********************************************************************
1343 ;SM10 (KS-10) PROCESSOR TYPE FLAG
1344 ; **********************************************************************
1345
1346 030524 000000 000000 SM10: 0 ;IF -1 THIS IS A KS-10
1347
1348 ; **********************************************************************
1349 ;RIGHT HALF SWITCHES PROMPT TABLE ADDRESS
1350 ; **********************************************************************
1351
1352 030525 000000 000000 SWPTAB: 0 ;0 = NO PROMPT, ADR = ADR OF SIXBIT PROMPT TABLE
1353
1354 ; **********************************************************************
1355 ;SPECIAL FUTURE EXPANSION ROOM
1356 ; **********************************************************************
1357
1358 ; **********************************************************************
1359 ;END OF FIXED STORAGE
1360 ; **********************************************************************
1361
1362 030577 LOC 30577
1363 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page 1
DFNIAE MAC 20-Nov-82 15:06 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, SEPT 18,1979 SEQ 0140
1364 ;#********************************************************************
1365 ; End of DFNIAT,PARAM,FIXED,DFNIA files
1366 ;#********************************************************************
1367
1368 XLIST
1369
NO ERRORS DETECTED
PROGRAM BREAK IS 030601
ABSOLUTE BREAK IS 030600
CPU TIME USED 00:05.889
69P CORE USED
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page S-1
DFNIAE MAC 20-Nov-82 15:06 SYMBOL TABLE SEQ 0141
ABORT 400000 spd DEBUG3 000400 spd IOCLR 200000 spd LDATAF 000200 spd
ADRPE 100000 000000 spd DEBUG4 000200 spd IPAER 000200 000000 spd LDCASD 040020 spd
ALL 740000 000000 spd DEBUG6 000040 spd ITERAT 000005 spd LDIOPF 040400 spd
ALTCHH 000000 ext DECVER 000002 spd ITRCH1 030104 LDLNK 027774
ALTCHK 007000 000000 DELAY 005000 000000 ITRCNT 030024 LDMCAT 000002 spd
ALTMGO 030063 DF22F 030142 JEN 254500 000000 LDNXER 042000 spd
ANXM 010000 spd DGRCV 000005 spd JOB41 000041 spd LDPAER 041000 spd
AROV 400000 spd DGSNT 000001 spd JOBAPR 000125 spd LDPTT 000003 spd
AROVU 000010 spd DIAGMN 030002 JOBCNI 000126 spd LDPWRF 040100 spd
AST 030252 DING 010000 spd JOBDDT 000074 spd LDSBER 044000 spd
ATSIN 030253 DINIT 040000 000000 spd JOBFF 000121 spd LECASD 100020 spd
BEGEND 030057 DOLLAR 030261 JOBOPC 000130 spd LEIOPF 100400 spd
BEGIN 030000 DROPDV 037240 000002 JOBREL 000044 spd LENXER 102000 spd
BEGIN1 030010 DSPEAR 004000 spd JOBREN 000124 spd LEPAER 101000 spd
BELL 030256 EBUSPE 004000 spd JOBSA 000120 spd LEPWRF 100100 spd
BIS 020000 spd ECOMP 000020 000000 spd JOBSYM 000116 spd LESBER 104000 spd
CALL 200000 000000 spd ENDFIX 030577 JOBTPC 000127 spd LEUPFW 000420 spd
CCA 000014 spd ENDUUO 037500 000004 JOBUSY 000117 spd LEVNCD 100000 spd
CFIBF 104000 000100 EOPUUO 037700 000004 JOBUUO 000040 spd LEVNPA 400000 spd
CFLUSH 037100 000004 ERFLG 000015 JOBVER 000137 spd LEVNPD 200000 spd
CHAIN 000004 spd ERLOOP 035000 000000 JRSTF 254100 000000 LEXCMP 000000 spd
CHNOFF 001000 spd ERLP1 035040 000000 JSYS 104000 000000 LFLGCL 020000 spd
CHNON 002000 spd ERLP2 035100 000000 KAHZ50 000002 spd LFLGDS 040000 spd
CINVAL 037040 000004 ERMORE 030101 KAIFLG 030040 LFLGEN 100000 spd
CLK 001000 spd ERRHLT 037600 000004 KL10 000001 spd LFLGST 010000 spd
CLKCLR 001000 spd ERRPC 030052 KLFLG 030041 LFP 030254
CLKDIS 004000 spd ERRTLS 030053 LAPRAL 127520 spd LGWC 000100 000000 spd
CLKENB 002000 spd ERSTOP 002000 spd LAPRP1 000001 spd LINSTF 000400 spd
CLKU 001000 spd ERUUO 036000 000000 LAPRP2 000002 spd LINT 000010 spd
CLOCKF 030045 EXCASB 000001 spd LAPRP3 000003 spd LIOCLR 200000 spd
CLOKOP 037540 000004 EXIOT 004000 spd LAPRP4 000004 spd LIOPFE 000400 spd
CMDQAV 000400 spd FATAL 037640 000004 LAPRP5 000005 spd LKNTRP 000430 spd
CNTLC 030062 FOV 040000 spd LAPRP6 000006 spd LKTRP 000431 spd
CNTRC 000004 spd FOVU 000100 spd LAPRP7 000007 spd LLACBL 400000 spd
COMMA 030244 FQUERR 002000 spd LAROVT 000421 spd LLDUSB 100000 spd
CONSW 030046 FRD36 037340 000004 LAST 010000 000000 spd LLPRCN 200000 spd
CPOPJ 030065 FRD8 037400 000004 LAXER 000400 000000 spd LMUUO 000424 spd
CPOPJ1 030064 FRDLNK 027773 LCASDE 000020 spd LMUUOP 000425 spd
CRAMPE 004000 000000 spd FREAD 037300 000004 LCASLD 200000 spd LNXMEN 002000 spd
CRLF 030242 FSELEC 037240 000004 LCASLO 400000 spd LNXMER 002000 spd
CRLF2 030243 FSELNK 027772 LCASWB 200000 spd LOGO 400000 000000 spd
CRY0 200000 spd FUNCT 040000 000000 spd LCASWD 000020 spd LOOP 100000 000000 spd
CRY1 100000 spd FXU 000100 spd LCCASD 020020 spd LOOPER 004000 spd
CSHFLG 030506 GENEPE 100000 spd LCHNOF 001000 spd LOOPGM 040000 spd
CSHMEM 030507 GET 262740 000000 LCHNON 002000 LOOPTS 020000 spd
CSRCHN 100000 000000 spd GO 260740 000000 LCIOPF 020400 spd LPAREN 001000 spd
CSRRQS 200000 000000 spd GOTO 300000 000000 spd LCNTRP 000434 spd LPARER 001000 spd
CWRTBI 037140 000004 HALT 254200 000000 LCNXER 022000 spd LPDOVT 000422 spd
CYCL60 030505 HYPEN 030250 LCPAER 021000 spd LPFWPC 000426 spd
DCK 000040 spd IDLE 000100 000000 spd LCPWRF 020100 spd LPGFTR 000427 spd
DCOMP 000040 000000 spd INHCSH 000020 spd LCSBER 024000 spd LPICH1 000100 spd
DDTLNK 027775 INHFLT 200000 spd LCSLOA 200000 spd LPICH2 000040 spd
DDTSRT 030007 INHMSG 100000 spd LCSLOO 400000 spd LPICH3 000020 spd
DEBUG1 002000 spd INHPAG 000100 spd LCTRP 000435 spd LPICH4 000010 spd
DEBUG2 001000 spd INXM 000100 spd LCWSX 000040 spd LPICH5 000004 spd
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page S-2
DFNIAE MAC 20-Nov-82 15:06 SYMBOL TABLE SEQ 0142
LPICH6 000002 spd LUUO22 030070 NSARD 000010 spd PION 000200 spd
LPICH7 000001 spd LUUO23 030070 NSAWR 000011 spd PJRST 254000 000000
LPICHA 000177 spd LUUO24 030070 NXMU 010000 spd PK 000012
LPICLR 010000 spd LUUO25 030070 OP 000011 PLIRD 000007 spd
LPIIP1 040000 spd LUUO26 030070 OPRSEL 000010 spd PLIST 030303
LPIIP2 020000 spd LUUO27 000000* spd OPTIME 030224 PLISTE 030504
LPIIP3 010000 spd LUUO3 000000* spd OVN 000020 000000 spd PLISTS 030304
LPIIP4 004000 spd LUUO30 030070 P 000017 PLIWR 000006 spd
LPIIP5 002000 spd LUUO31 030070 PAG 000010 spd PLUS 030251
LPIIP6 001000 spd LUUO32 030070 PALERS 001000 spd PNT1 037040 000000
LPIIP7 000400 spd LUUO33 030070 PARCLR 200000 spd PNT11 037440 000000
LPIOFF 000400 spd LUUO4 000000* spd PARDIS 100000 spd PNT11F 037440 000001
LPION 000200 spd LUUO5 000000* spd PAREA1 711523 655207 spd PNT1F 037040 000001
LPNTRP 000436 spd LUUO6 000000* spd PAREA2 000000 spd PNT2 037100 000000
LPRCH1 000100 spd LUUO7 000000* spd PAREA3 444656 514100 spd PNT2F 037100 000001
LPRCH2 000040 spd LUUOI 000041 spd PAREA4 605664 000000 spd PNT3 037140 000000
LPRCH3 000020 spd LWRITE 000100 spd PAREA5 000000 spd PNT3F 037140 000001
LPRCH4 000010 spd MAPADR 037540 000002 PAREA6 000000 spd PNT4 037200 000000
LPRCH5 000004 spd MAPCNK 037640 000002 PAREA7 030035 PNT4F 037200 000001
LPRCH6 000002 spd MAPMEM 037000 000004 PAREA8 030036 PNT5 037240 000000
LPRCH7 000001 spd MAPNEW 030143 PARENB 040000 spd PNT5F 037240 000001
LPTRP 000437 spd MAPPNT 037740 000002 PARU 004000 spd PNT6 037300 000000
LPWRFE 000100 spd MAPSET 037600 000002 PASCNT 030047 PNT6F 037300 000001
LPWRFL 000100 spd MARGIN 030055 PAT 000014 PNT7 037340 000000
LREQSE 004000 spd MBCN 000016 PBELL 037040 000007 PNT7F 037340 000001
LRQCLR 020000 spd MBERR 002000 000000 spd PCLEAR 400000 spd PNTA 037000 000000
LSBSEN 004000 spd MCATLD 000002 spd PCRL 037000 030242 PNTADF 037400 000001
LSBUSE 004000 spd MCNVER 000000 spd PCRL2 037000 030243 PNTADR 037400 000000
LSCASD 010020 spd MEMLOW 030145 PCRL2F 037040 030243 PNTAF 037000 000001
LSECMO 040000 spd MEMMAP 000001 spd PCRLF 037040 030242 PNTAL 037740 000000
LSIOPF 010400 spd MEMSEG 037440 000002 PDEC 006000 000000 PNTALF 037740 000001
LSMODE 040000 spd MEMSIZ 030146 PDECF 002000 000000 PNTCHF 037500 000001
LSNTRP 000432 spd MEMTOT 030144 PDISF 030221 PNTCHR 037500 000000
LSNXER 012000 spd MEMZRO 037500 000002 PDLOVU 200000 spd PNTCI 037000 000000
LSPAER 011000 spd MINUS 030250 PDSABL 000040 spd PNTCIF 037040 000000
LSPWRF 010100 spd MODDVC 000040 spd PENABL 000020 spd PNTCW 037100 000002
LSSBER 014000 spd MODDVL 030000 spd PERIOD 030245 PNTCWF 037140 000002
LSTRP 000433 spd MODDVU 030000 spd PFORCE 037040 000026 PNTDCC 003000 000000
LTRP3T 000423 spd MODLNK 027776 PFSTRT 030005 PNTDCF 037640 000001
LTRPAE 020000 spd MODPCP 037300 000002 PGMINT 265000 030011 PNTDCL 010000 000000
LTRPEN 020000 spd MODPCU 037340 000002 PGMNAM 000000 ext PNTDCP 004000 000000
LUSCMP 000040 spd MONCTL 030043 PI00RQ 020000 000000 spd PNTDEC 037640 000000
LUUO 000040 spd MONFLG 030042 PIA00 000004 spd PNTDS 037700 000000
LUUO1 000000* spd MONTEN 030044 PIA01 000002 spd PNTDSF 037700 000001
LUUO10 000000* spd MONTYP 030516 PIA02 000001 spd PNTENB 030220
LUUO11 030070 MPER 200000 000000 spd PICHN1 000100 spd PNTEXT 030021
LUUO12 030070 MPRUN 000010 spd PICHN2 000040 spd PNTFLG 030217
LUUO13 030070 MPVU 020000 spd PICHN3 000020 spd PNTHW 037540 000000
LUUO14 030070 MSG 100000 000000 spd PICHN4 000010 spd PNTHWF 037540 000001
LUUO15 030070 MTROP 037200 000004 PICHN5 000004 spd PNTINH 030222
LUUO16 030070 MVRERR 001000 spd PICHN6 000002 spd PNTLPT 020000 spd
LUUO17 030070 NEXM 020000 000000 spd PICHN7 000001 spd PNTMGN 037700 000002
LUUO2 000000* spd NIA 200000 000000 spd PICHNA 000177 spd PNTMSF 037040 000000
LUUO20 030070 NOPNT 040000 spd PICLR 010000 spd PNTMSG 037000 000000
LUUO21 030070 NOTWC0 040000 000000 spd PIOFF 000400 spd PNTNAM 030020
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page S-3
DFNIAE MAC 20-Nov-82 15:06 SYMBOL TABLE SEQ 0143
PNTNM 037200 000002 SADR5 000000* TXNOT 040000 000000 spd $SVUPC 030114
PNTOCC 001000 000000 SADR6 030007 TXTINH 000200 spd $SVUUO 030113
PNTOCF 037740 000003 SADR7 254200 000000* TXYES 020000 000000 spd $TABF 030235
PNTOCS 037700 000003 SADR8 254200 000000* USER 030037 $TTCHR 030231
PNTOCT 037600 000000 SADR9 254200 000000* USERF 010000 spd $TWCNT 030225
PNTOTF 037600 000001 SBINIT 030011 USRASB 000001 spd $TYPNB 030233
PNTSIX 037000 000002 SCOPE 030116 USRCRF 030241 $UMODE 030032
PNTSPC 030223 SCOPE1 000000 ext USRLFF 030240 $UORTX 030067
PNTSXF 037040 000002 SCOPER 027000 000000 UUODIS 030124 $USRHL 030073
PORT 400000 000000 spd SELLAR 040000 spd UUOEXT 030065 $UUOER 030070
PORTP 400000 000000 spd SFSTRT 030004 UUORTN 030066 $VTF 030237
PPDEC 030127 ext SHWC 000040 000000 spd UUOSKP 030064 %ACTFL 030121
PPDECF 030125 ext SINCYC 020000 spd WRNSA 000011 spd %ACTUL 030122
PSIXL 037600 000003 SLASH 030260 WRPLI 000006 spd %COREC 030120
PSIXLF 037640 000003 SM10 030524 $$MUUO 030517 %CORFL 030117
PSIXM 037100 000000 SNDDG 000001 spd $$OUTE 030520 %DISCR 030123
PSIXMF 037200 000000 SPACE 030246 $$TAX1 030522 %ERHI1 030512
PSP 037000 000040 SPARE1 010000 spd $$TAX2 030523 %ERHI2 030513
PSPF 037040 000040 SPARE2 000100 spd $$TOGG 030521 %ERHI3 030514
PTTLD 000003 spd SRTDDT 030007 $$UUO 030515 .DELAY 000000 ext
PUT 261740 000000 START 030017 ext $ACC0 030106 .JB41 000041 spd
PVPAGI 030511 START1 030013 $BEND1 030060 .JBAPR 000125 spd
PWFCLR 400000 spd START2 030014 $BEND2 030061 .JBCNI 000126 spd
Q 000013 START3 030015 $CHRIN 030232 .JBDDT 000074 spd
QUEST 030257 START4 030016 $CRLF 030234 .JBFF 000121 spd
RADIX 030262 START5 030017 $DEVCH 000017 spd .JBOPC 000130 spd
RADLSC 030264 STARTA 030010 ext $DSKUP 030033 .JBREL 000044 spd
RADLSP 030263 SUBLNK 027777 $DVCH1 000016 spd .JBREN 000124 spd
RANDBS 030022 SWITCH 037400 000002 $DVOFF 030226 .JBSA 000120 spd
RCCNT 000004 spd SWPTAB 030525 $EMODE 030031 .JBSYM 000116 spd
RDNSA 000010 spd SWTEXR 030023 $FFF 030236 .JBTPC 000127 spd
RDPLI 000007 spd SYSEXR 030003 $IBUF 030274 .JBUSY 000117 spd
REENTR 030006 TAB 030247 $INEXT 030300 .JBUUO 000040 spd
RELIAB 000400 spd TCOMP 002000 spd $INNM 030277 .JBVER 000137 spd
REPT 000015 spd TDENA 000100 000000 spd $ITRHL 030071 .LA 000000 spd
REPT1 000016 spd TESTPC 030051 $ITRX1 030072 .LADDR 000100 000000 spd
REPTU 030115 TICKS 030054 $LPAPE 000001 spd .LAND 000000 spd
REPTUO 034000 000000 TOTALS 100000 spd $MMAP 030034 .LB 000000 spd
REQSET 004000 spd TRACET 400000 spd $MODVL 030027 .LBAD 000000 spd
RESQAV 000200 spd TSTEBF 200000 spd $MODVU 030030 .LBUS 000000 spd
RESRT1 030076 TTALTM 037340 000003 $OBUF 030265 .LCCCA 000000 spd
RESRT2 030077 TTICHR 037000 000003 $ONETM 030056 .LCCCC 000000 spd
RETURN 030012 TTICLR 037500 000003 $OUTEX 030271 .LCCCE 000000 spd
RQINT 010000 000000 spd TTICNV 037240 000003 $OUTNM 030270 .LCCCP 000000 spd
RSTART 200000 spd TTIDEC 037200 000003 $PARER 030100 .LCCEB 000000 spd
RTN 263740 000000 TTINO 037100 000003 $PNAME 030025 .LCCEF 000000 spd
RTP 030255 TTIOCT 037140 000003 $PSHER 030103 .LCCER 000000 spd
RUNALL 010000 spd TTIYES 037040 000003 $PVER 030026 .LCCFZ 000000 spd
RUNFLG 030050 TTLOOK 037300 000003 $RSRTX 030074 .LCCGC 000000 spd
SADR1 030000 TTNBRF 030510 $RSRTY 030075 .LCCIA 000000 spd
SADR10 254200 000000* TTSIXB 037400 000003 $SPAG1 030112 .LCCLW 000000 spd
SADR11 254200 000000* TTYFIL 030227 $START 030001 .LCCMB 000000 spd
SADR2 030000 TTYINP 037440 000003 $SVAPR 030110 .LCCMP 000000 spd
SADR3 030000 TTYSPD 030230 $SVPAG 030111 .LCCOF 000000 spd
SADR4 030007 TXALL 060000 000000 spd $SVPI 030107 .LCCON 000000 spd
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page S-4
DFNIAE MAC 20-Nov-82 15:06 SYMBOL TABLE SEQ 0144
.LCCPP 000000 spd .LSORC 000000 spd .MOP 000017 spd .RCCMP 130000 spd
.LCCRA 000000 spd .LSPAR 000000 spd .MOR 000007 spd .RCCOF 010000 spd
.LCCXA 000000 spd .LTIM 000000 spd .MPAR 000001 spd .RCCON 030000 spd
.LCENA 000000 spd .LTWB 000000 spd .MPLUS 000007 spd .RCCPP 150000 spd
.LCJP 000000 spd .LXNOR 000000 spd .MPUSH 000017 spd .RCCRA 050000 spd
.LCJPP 000000 spd .LXOR 000000 spd .MRAM 000001 spd .RCCXA 070000 spd
.LCJS 000000 spd .MA 000017 spd .MRDLM 000037 spd .RCENA 000400 000000 spd
.LCJV 000000 spd .MADDR 007777 spd .MRFCT 000017 spd .RCJP 000060 spd
.LCONT 000000 spd .MAND 000007 spd .MRMIN 000007 spd .RCJPP 000260 spd
.LCRTN 000000 spd .MB 000017 spd .MRPCT 000017 spd .RCJS 000020 spd
.LCRY 000000 spd .MBAD 000001 spd .MS0A 000007 spd .RCJV 000140 spd
.LD 000000 spd .MBUS 000007 spd .MS0B 000007 spd .RCONT 000340 spd
.LDISA 000000 spd .MCCCA 000037 spd .MS0Q 000007 spd .RCRTN 000240 spd
.LENA 000000 spd .MCCCC 000037 spd .MSAB 000007 spd .RCRY 000400 spd
.LFUNC 000000 spd .MCCCE 000037 spd .MSAQ 000007 spd .RD 001000 000000 spd
.LJ 010000 spd .MCCCP 000037 spd .MSD0 000007 spd .RDISA 000000 spd
.LJMAP 000000 spd .MCCEB 000037 spd .MSDA 000007 spd .RENA 000400 000000 spd
.LJRP 000000 spd .MCCEF 000037 spd .MSDQ 000007 spd .RFUNC 010000 000000 spd
.LJSRP 000000 spd .MCCER 000037 spd .MSELC 000007 spd .RJ 000000 spd
.LJZ 000000 spd .MCCFZ 000037 spd .MSELE 000007 spd .RJMAP 000040 spd
.LLDCT 000000 spd .MCCGC 000037 spd .MSELF 000007 spd .RJRP 000160 spd
.LLDLM 000000 spd .MCCIA 000037 spd .MSELM 000007 spd .RJSRP 000120 spd
.LLOOP 000000 spd .MCCLW 000037 spd .MSELP 000007 spd .RJZ 000000 spd
.LLSAD 000000 spd .MCCMB 000037 spd .MSK 000037 spd .RLDCT 000300 spd
.LMARK 000000 spd .MCCMP 000037 spd .MSKCN 000037 spd .RLDLM 230000 spd
.LMGC 000001 spd .MCCOF 000037 spd .MSKMB 000037 spd .RLOOP 000320 spd
.LNAND 000000 spd .MCCON 000037 spd .MSMIN 000007 spd .RLSAD 200000 spd
.LOENA 002000 spd .MCCPP 000037 spd .MSORC 000007 spd .RMARK 000002 spd
.LOP 000000 spd .MCCRA 000037 spd .MSPAR 000001 spd .RMGC 000000 spd
.LOR 000000 spd .MCCXA 000037 spd .MTIM 000001 spd .RNAND 050000 000000 spd
.LPAR 004000 spd .MCENA 000001 spd .MTWB 000017 spd .ROENA 000000 spd
.LPLUS 000000 spd .MCJP 000017 spd .MXNOR 000007 spd .ROP 000020 spd
.LPUSH 000000 spd .MCJPP 000017 spd .MXOR 000007 spd .ROR 030000 000000 spd
.LRAM 000000 spd .MCJS 000017 spd .PNTDC 000000 ext .RPAR 000000 spd
.LRDLM 000000 spd .MCJV 000017 spd .PNTDL 030130 ext .RPLUS 000000 spd
.LRFCT 000000 spd .MCONT 000017 spd .PNTDP 030126 ext .RPUSH 000100 spd
.LRMIN 000000 spd .MCRTN 000017 spd .PNTOC 000000 ext .RRAM 000200 000000 spd
.LRPCT 000000 spd .MCRY 000001 spd .RA 000010 000000 spd .RRDLM 220000 spd
.LS0A 000000 spd .MD 000007 spd .RADDR 000000 spd .RRFCT 000200 spd
.LS0B 000000 spd .MDISA 000001 spd .RAND 040000 000000 spd .RRMIN 020000 000000 spd
.LS0Q 000000 spd .MENA 000001 spd .RB 400000 spd .RRPCT 000220 spd
.LSAB 000000 spd .MFUNC 000007 spd .RBAD 000001 spd .RS0A 400000 000000 spd
.LSAQ 000000 spd .MJ 007777 spd .RBUS 001000 spd .RS0B 300000 000000 spd
.LSD0 000000 spd .MJMAP 000017 spd .RCCCA 000000 spd .RS0Q 200000 000000 spd
.LSDA 000000 spd .MJRP 000017 spd .RCCCC 030000 spd .RSAB 100000 000000 spd
.LSDQ 000000 spd .MJSRP 000017 spd .RCCCE 160000 spd .RSAQ 000000 spd
.LSELC 000000 spd .MJZ 000017 spd .RCCCP 140000 spd .RSD0 700000 000000 spd
.LSELE 000000 spd .MLDCT 000017 spd .RCCEB 040000 spd .RSDA 500000 000000 spd
.LSELF 000000 spd .MLDLM 000037 spd .RCCEF 060000 spd .RSDQ 600000 000000 spd
.LSELM 000000 spd .MLOOP 000017 spd .RCCER 100000 spd .RSELC 004000 spd
.LSELP 000000 spd .MLSAD 000037 spd .RCCFZ 020000 spd .RSELE 005000 spd
.LSK 000000 spd .MMARK 000001 spd .RCCGC 010000 spd .RSELF 003000 spd
.LSKCN 000000 spd .MMGC 001777 spd .RCCIA 110000 spd .RSELM 002000 spd
.LSKMB 000000 spd .MNAND 000007 spd .RCCLW 170000 spd .RSELP 001000 spd
.LSMIN 000000 spd .MOENA 000001 spd .RCCMB 120000 spd .RSK 010000 spd
DFNIA MACRO %53A(1152) 19:59 24-Sep-84 Page S-5
DFNIAE MAC 20-Nov-82 15:06 SYMBOL TABLE SEQ 0145
.RSKCN 240000 spd
.RSKMB 210000 spd
.RSMIN 010000 000000 spd
.RSORC 100000 000000 spd
.RSPAR 000004 spd
.RTIM 000010 spd
.RTWB 000360 spd
.RXNOR 070000 000000 spd
.RXOR 060000 000000 spd
ABORT 767#
ADRPE 95# SEQ 0146
ALL 232#
ALTCHH 9# 295
ALTMGO 1121#
ANXM 1035#
AROV 1035#
AROVU 1035#
AST 1236#
ATSIN 1237#
BEGEND 1117#
BEGIN 70 71 72 982 983 1048#
BEGIN1 1064# 1118
BELL 1240#
BIS 1035#
CALL 305#
CCA 1035#
CHAIN 787#
CHNOFF 1035#
CHNON 1035#
CLK 1035#
CLKCLR 1035#
CLKDIS 1035#
CLKENB 1035#
CLKU 1035#
CLOCKF 1103#
CMDQAV 260#
CNTLC 1120#
CNTRC 143#
COMMA 1229#
CONSW 1104#
CPOPJ 1124#
CPOPJ1 1122#
CRAMPE 246#
CRLF 917 918 1224#
CRLF2 921 922 1226#
CRY0 1035#
CRY1 1035#
CSHFLG 1283#
CSHMEM 1284#
CSRCHN 242#
CSRRQS 241#
CYCL60 1277#
DCK 1035#
DCOMP 249#
DDTLNK 801# 1062
DDTSRT 1062#
DEBUG1 116#
DEBUG2 117#
DEBUG3 118#
DEBUG4 119#
DEBUG6 120#
DECVER 18# 1083
DF22F 1188#
DGRCV 140# SEQ 0147
DGSNT 139#
DIAGMN 1051#
DING 773#
DINIT 243#
DOLLAR 1243#
DSKUPD 1088
DSPEAR 115#
EBUSPE 257#
ECOMP 250#
ENDFIX 1363#
ERFLG 53#
ERMORE 1137#
ERRPC 1108#
ERRTLS 1109#
ERSTOP 776#
EXCASB 64# 1086
EXIOT 1035#
FOV 1035#
FOVU 1035#
FQUERR 258#
FRDLNK 799#
FSELNK 798#
FUNCT 231#
FXU 1035#
GENEPE 253#
GOTO 306#
HYPEN 1234#
IDLE 248#
INHCSH 784#
INHFLT 110#
INHMSG 111#
INHPAG 781#
INXM 1035#
IOCLR 1035#
IPAER 99#
ITERAT 62# 1081
ITRCH1 1141#
ITRCNT 1081#
JOB41 1035#
JOBAPR 1035#
JOBCNI 1035#
JOBDDT 1035#
JOBFF 1035#
JOBOPC 1035#
JOBREL 1035#
JOBREN 1035#
JOBSA 1035#
JOBSYM 1035#
JOBTPC 1035#
JOBUSY 1035#
JOBUUO 1035#
JOBVER 1035#
KA10 1035 SEQ 0148
KAHZ50 789#
KAIFLG 1098#
KI10 1035
KL10 63# 1035
KL10P0 1035
KLFLG 1099#
KLOLD 997
LAPRAL 1035#
LAPRP1 1035#
LAPRP2 1035#
LAPRP3 1035#
LAPRP4 1035#
LAPRP5 1035#
LAPRP6 1035#
LAPRP7 1035#
LAROVT 1035#
LAST 310#
LAXER 98#
LCASDE 1035#
LCASLD 1035#
LCASLO 1035#
LCASWB 1035#
LCASWD 1035#
LCCASD 1035#
LCHNOF 1035#
LCHNON 1035#
LCIOPF 1035#
LCNTRP 1035#
LCNXER 1035#
LCPAER 1035#
LCPWRF 1035#
LCSBER 1035#
LCSLOA 1035#
LCSLOO 1035#
LCTRP 1035#
LCWSX 1035#
LDATAF 1035#
LDCASD 1035#
LDIOPF 1035#
LDLNK 800# 1051 1053
LDMCAT 129# 141
LDNXER 1035#
LDPAER 1035#
LDPTT 130# 142
LDPWRF 1035#
LDSBER 1035#
LECASD 1035#
LEIOPF 1035#
LENXER 1035#
LEPAER 1035#
LEPWRF 1035#
LESBER 1035#
LEUPFW 1035# SEQ 0149
LEVNCD 1035#
LEVNPA 1035#
LEVNPD 1035#
LEXCMP 1035#
LFLGCL 1035#
LFLGDS 1035#
LFLGEN 1035#
LFLGST 1035#
LFP 1238#
LGWC 100#
LINSTF 1035#
LINT 1035#
LIOCLR 1035#
LIOPFE 1035#
LKNTRP 1035#
LKTRP 1035#
LLACBL 1035#
LLDUSB 1035#
LLPRCN 1035#
LMUUO 1035#
LMUUOP 1035#
LNXMEN 1035#
LNXMER 1035#
LOGO 93#
LOOP 230#
LOOPER 775#
LOOPGM 112#
LOOPTS 113#
LPAREN 1035#
LPARER 1035#
LPDOVT 1035#
LPFWPC 1035#
LPGFTR 1035#
LPICH1 1035#
LPICH2 1035#
LPICH3 1035#
LPICH4 1035#
LPICH5 1035#
LPICH6 1035#
LPICH7 1035#
LPICHA 1035#
LPICLR 1035#
LPIIP1 1035#
LPIIP2 1035#
LPIIP3 1035#
LPIIP4 1035#
LPIIP5 1035#
LPIIP6 1035#
LPIIP7 1035#
LPIOFF 1035#
LPION 1035#
LPNTRP 1035#
LPRCH1 1035# SEQ 0150
LPRCH2 1035#
LPRCH3 1035#
LPRCH4 1035#
LPRCH5 1035#
LPRCH6 1035#
LPRCH7 1035#
LPTRP 1035#
LPWRFE 1035#
LPWRFL 1035#
LREQSE 1035#
LRQCLR 1035#
LSBSEN 1035#
LSBUSE 1035#
LSCASD 1035#
LSECMO 1035#
LSIOPF 1035#
LSMODE 1035#
LSNTRP 1035#
LSNXER 1035#
LSPAER 1035#
LSPWRF 1035#
LSSBER 1035#
LSTRP 1035#
LTRP3T 1035#
LTRPAE 1035#
LTRPEN 1035#
LUSCMP 1035#
LUUO 1035#
LUUO1 289# 1168 1169
LUUO10 296# 1168 1173
LUUO11 1168 1173
LUUO12 1168 1174
LUUO13 1168 1174
LUUO14 1168 1175
LUUO15 1168 1175
LUUO16 1168 1176
LUUO17 1168 1176
LUUO2 290# 1168 1170
LUUO20 1168 1177
LUUO21 1168 1177
LUUO22 1168 1178
LUUO23 1168 1178
LUUO24 1168 1179
LUUO25 1168 1179
LUUO26 1168 1180
LUUO27 297# 1168 1180
LUUO3 291# 1168 1170
LUUO30 1168 1181
LUUO31 1168 1181
LUUO32 1168 1182
LUUO33 1168 1182
LUUO4 292# 1168 1171
LUUO5 293# 1168 1171 SEQ 0151
LUUO6 294# 1168 1172
LUUO7 295# 1168 1172
LUUOI 1035#
LWRITE 1035#
MAPNEW 1189#
MARGIN 1111#
MBCN 54#
MBERR 247#
MCATLD 141#
MCNVER 17# 1083
MEMLOW 1191#
MEMMAP 66# 1089
MEMSIZ 1192#
MEMTOT 1190#
MINUS 1233#
MODDVC 783#
MODDVL 982 982# 1084
MODDVU 983 983# 1085
MODLNK 802# 1048
MONCTL 1101#
MONFLG 1100#
MONTEN 1102#
MONTYP 1315#
MPER 94#
MPRUN 265#
MPVU 1035#
MSG 304#
MVRERR 259#
NEXM 97#
NIA 229#
NOPNT 771#
NOTWC0 96#
NSARD 146#
NSAWR 147#
NXMU 1035#
OP 49#
OPRSEL 785#
OPTIME 1203#
OVN 102#
P 55# 828 829 830 831 1035# 1123
PAG 1035#
PALERS 777#
PARCLR 1035#
PARDIS 1035#
PAREA1 82# 1079
PAREA2 83# 1080
PAREA3 84# 1077
PAREA4 85# 1078
PAREA5 86# 1090
PAREA6 87# 1091
PAREA7 1090#
PAREA8 1091#
PARENB 1035# SEQ 0152
PARU 1035#
PASCNT 1105#
PAT 52#
PCLEAR 251#
PDISF 1200#
PDLOVU 1035#
PDSABL 263#
PENABL 264#
PERIOD 1230#
PFSTRT 1057#
PGMNAM 8# 1082
PI00RQ 244#
PIA00 266#
PIA01 267#
PIA02 268#
PICHN1 1035#
PICHN2 1035#
PICHN3 1035#
PICHN4 1035#
PICHN5 1035#
PICHN6 1035#
PICHN7 1035#
PICHNA 1035#
PICLR 1035#
PIOFF 1035#
PION 1035#
PK 50#
PLIRD 145#
PLIST 1269# 1269
PLISTE 1269 1271#
PLISTS 1270#
PLIWR 144#
PLUS 1235#
PNTENB 1199#
PNTEXT 1078#
PNTFLG 1198#
PNTINH 1201#
PNTLPT 772#
PNTNAM 1077#
PNTSPC 1202#
PORT 228#
PORTP 240#
PPDEC 9# 294
PPDECF 9# 290
PTTLD 142#
PVPAGI 1296#
PWFCLR 1035#
Q 51#
QUEST 1241#
RADIX 1244#
RADLSC 1246#
RADLSP 1245#
RANDBS 1079# SEQ 0153
RCCNT 131# 143
RDNSA 134# 146
RDPLI 133# 145
REENTR 1059#
RELIAB 779#
REPT 1035#
REPT1 1035#
REPTU 1157#
REQSET 1035#
RESQAV 261#
RESRT1 1134#
RESRT2 1135#
RETURN 1066#
RQINT 245#
RSTART 768#
RTP 1239#
RUNALL 114#
RUNFLG 1106#
SADR1 70# 1055
SADR10 79# 1071
SADR11 80# 1072
SADR2 71# 1057
SADR3 72# 1059
SADR4 73#
SADR5 74# 1120
SADR6 75# 1121
SADR7 76# 1068
SADR8 77# 1069
SADR9 78# 1070
SBINIT 841 1065#
SCOPE 1158#
SCOPE1 8# 297
SELLAR 254#
SFSTRT 1055#
SHWC 101#
SINCYC 255#
SLASH 1242#
SM10 1346#
SNDDG 128# 139
SPACE 1231#
SPARE1 256#
SPARE2 262#
SRTDDT 73 75 1061#
START 8# 74 76 77 78 79 80 1049
START1 1068#
START2 1069#
START3 1070#
START4 1071#
START5 1072#
STARTA 8# 1064
SUBLNK 803# 1065
SWPTAB 1352#
SWTEXR 1080# SEQ 0154
SYSEXR 1053#
TAB 1232#
TCOMP 270#
TDENA 233#
TESTPC 1107#
TICKS 1110#
TOTALS 769#
TRACET 109#
TSTEBF 252#
TTNBRF 1290#
TTYFIL 1206#
TTYSPD 1207#
TXALL 309#
TXNOT 307#
TXTINH 780#
TXYES 308#
USER 1097#
USERF 1035#
USRASB 65# 1087
USRCRF 1216#
USRLFF 1215#
UUODIS 1169#
UUOEXT 1125#
UUORTN 1126#
UUOSKP 1123#
WRNSA 135# 147
WRPLI 132# 144
$$MUUO 1321#
$$OUTE 1327#
$$TAX1 1339#
$$TAX2 1340#
$$TOGG 1333#
$$UUO 1310#
$ACC0 1148#
$BEND1 1118#
$BEND2 1119#
$CHRIN 1209#
$CRLF 1211#
$DEVCH 1035#
$DSKUP 1088#
$DVCH1 1035#
$DVOFF 1205#
$EMODE 1086#
$FFF 1213#
$IBUF 1261#
$INEXT 1263#
$INNM 1262#
$ITRHL 1129#
$ITRX1 1130#
$LPAPE 68#
$MMAP 1089#
$MODVL 1084#
$MODVU 1085# SEQ 0155
$OBUF 1252#
$ONETM 1112#
$OUTEX 1254#
$OUTNM 1253#
$PAPER 1035
$PARER 1136#
$PNAME 1082#
$PSHER 1140#
$PVER 1083#
$RSRTX 1132#
$RSRTY 1133#
$SPAG1 1152#
$START 1049#
$SVAPR 1150#
$SVPAG 1151#
$SVPI 1149#
$SVUPC 1155#
$SVUUO 1154#
$TABF 1212#
$TTCHR 1208#
$TWCNT 1204#
$TYPNB 1210#
$UMODE 1087#
$UORTX 1127#
$USRHL 1131#
$UUOER 1128# 1169
$VTF 1214#
%ACTFL 1161#
%ACTUL 1162#
%COREC 1160#
%CORFL 1159#
%DISCR 1163#
%ERHI1 1302#
%ERHI2 1303#
%ERHI3 1304#
.DELAY 9# 293
.JB41 1035#
.JBAPR 1035#
.JBCNI 1035#
.JBDDT 1035#
.JBFF 1035#
.JBOPC 1035#
.JBREL 1035#
.JBREN 1035#
.JBSA 1035#
.JBSYM 1035#
.JBTPC 1035#
.JBUSY 1035#
.JBUUO 1035#
.JBVER 1035#
.LA 496#
.LADDR 384#
.LAND 460# SEQ 0156
.LB 500#
.LBAD 708#
.LBUS 600#
.LCCCA 516#
.LCCCC 528#
.LCCCE 572#
.LCCCP 564#
.LCCEB 532#
.LCCEF 540#
.LCCER 548#
.LCCFZ 524#
.LCCGC 520#
.LCCIA 552#
.LCCLW 576#
.LCCMB 556#
.LCCMP 560#
.LCCOF 512#
.LCCON 508#
.LCCPP 568#
.LCCRA 536#
.LCCXA 544#
.LCENA 480#
.LCJP 644#
.LCJPP 676#
.LCJS 636#
.LCJV 656#
.LCONT 688#
.LCRTN 672#
.LCRY 624#
.LD 476#
.LDISA 484#
.LENA 488#
.LFUNC 440#
.LJ 388#
.LJMAP 640#
.LJRP 660#
.LJSRP 652#
.LJZ 632#
.LLDCT 680#
.LLDLM 588#
.LLOOP 684#
.LLSAD 580#
.LMARK 704#
.LMGC 400#
.LNAND 464#
.LOENA 396#
.LOP 628#
.LOR 456#
.LPAR 392#
.LPLUS 444#
.LPUSH 648#
.LRAM 492#
.LRDLM 592# SEQ 0157
.LRFCT 664#
.LRMIN 452#
.LRPCT 668#
.LS0A 424#
.LS0B 420#
.LS0Q 416#
.LSAB 412#
.LSAQ 408#
.LSD0 436#
.LSDA 428#
.LSDQ 432#
.LSELC 616#
.LSELE 620#
.LSELF 612#
.LSELM 608#
.LSELP 604#
.LSK 504#
.LSKCN 596#
.LSKMB 584#
.LSMIN 448#
.LSORC 404#
.LSPAR 700#
.LTIM 696#
.LTWB 692#
.LXNOR 472#
.LXOR 468#
.MA 498#
.MADDR 386#
.MAND 462#
.MB 502#
.MBAD 710#
.MBUS 602#
.MCCCA 518#
.MCCCC 530#
.MCCCE 574#
.MCCCP 566#
.MCCEB 534#
.MCCEF 542#
.MCCER 550#
.MCCFZ 526#
.MCCGC 522#
.MCCIA 554#
.MCCLW 578#
.MCCMB 558#
.MCCMP 562#
.MCCOF 514#
.MCCON 510#
.MCCPP 570#
.MCCRA 538#
.MCCXA 546#
.MCENA 482#
.MCJP 646#
.MCJPP 678# SEQ 0158
.MCJS 638#
.MCJV 658#
.MCONT 690#
.MCRTN 674#
.MCRY 626#
.MD 478#
.MDISA 486#
.MENA 490#
.MFUNC 442#
.MJ 390#
.MJMAP 642#
.MJRP 662#
.MJSRP 654#
.MJZ 634#
.MLDCT 682#
.MLDLM 590#
.MLOOP 686#
.MLSAD 582#
.MMARK 706#
.MMGC 402#
.MNAND 466#
.MOENA 398#
.MOP 630#
.MOR 458#
.MPAR 394#
.MPLUS 446#
.MPUSH 650#
.MRAM 494#
.MRDLM 594#
.MRFCT 666#
.MRMIN 454#
.MRPCT 670#
.MS0A 426#
.MS0B 422#
.MS0Q 418#
.MSAB 414#
.MSAQ 410#
.MSD0 438#
.MSDA 430#
.MSDQ 434#
.MSELC 618#
.MSELE 622#
.MSELF 614#
.MSELM 610#
.MSELP 606#
.MSK 506#
.MSKCN 598#
.MSKMB 586#
.MSMIN 450#
.MSORC 406#
.MSPAR 702#
.MTIM 698#
.MTWB 694# SEQ 0159
.MXNOR 474#
.MXOR 470#
.PNTDC 9# 291
.PNTDL 9# 296
.PNTDP 9# 292
.PNTOC 9# 289
.RA 497#
.RADDR 385#
.RAND 461#
.RB 501#
.RBAD 709#
.RBUS 601#
.RCCCA 517#
.RCCCC 529#
.RCCCE 573#
.RCCCP 565#
.RCCEB 533#
.RCCEF 541#
.RCCER 549#
.RCCFZ 525#
.RCCGC 521#
.RCCIA 553#
.RCCLW 577#
.RCCMB 557#
.RCCMP 561#
.RCCOF 513#
.RCCON 509#
.RCCPP 569#
.RCCRA 537#
.RCCXA 545#
.RCENA 481#
.RCJP 645#
.RCJPP 677#
.RCJS 637#
.RCJV 657#
.RCONT 689#
.RCRTN 673#
.RCRY 625#
.RD 477#
.RDISA 485#
.RENA 489#
.RFUNC 441#
.RJ 389#
.RJMAP 641#
.RJRP 661#
.RJSRP 653#
.RJZ 633#
.RLDCT 681#
.RLDLM 589#
.RLOOP 685#
.RLSAD 581#
.RMARK 705#
.RMGC 401# SEQ 0160
.RNAND 465#
.ROENA 397#
.ROP 629#
.ROR 457#
.RPAR 393#
.RPLUS 445#
.RPUSH 649#
.RRAM 493#
.RRDLM 593#
.RRFCT 665#
.RRMIN 453#
.RRPCT 669#
.RS0A 425#
.RS0B 421#
.RS0Q 417#
.RSAB 413#
.RSAQ 409#
.RSD0 437#
.RSDA 429#
.RSDQ 433#
.RSELC 617#
.RSELE 621#
.RSELF 613#
.RSELM 609#
.RSELP 605#
.RSK 505#
.RSKCN 597#
.RSKMB 585#
.RSMIN 449#
.RSORC 405#
.RSPAR 701#
.RTIM 697#
.RTWB 693#
.RXNOR 473#
.RXOR 469#
ALTCHK 285#
CALC 724# SEQ 0161
CFIBF 277#
CFLUSH 953#
CINVAL 952#
CLOKOP 947#
CONCAT 731#
CWRTBI 954#
DELAY 283#
DROPDV 914#
ENDUUO 960# 1117
EOPUUO 961# 1119
ERLOOP 1005#
ERLP1 1006#
ERLP2 1007#
ERRHLT 848#
ERROR 1014#
ERROR1 1025#
ERUUO 1004#
FATAL 847#
FIELD 737#
FMSG 168#
FMSGC 170#
FMSGCD 176#
FMSGD 173#
FRD36 989#
FRD8 990#
FREAD 988#
FSELEC 987#
GET 831#
GO 828#
HALT 76 77 78 79 80 833# 1138
JEN 835#
JRSTF 834#
JSYS 276# 277
MAPADR 970#
MAPCNK 971#
MAPMEM 967#
MAPPNT 973#
MAPSET 972#
MEMSEG 969#
MEMZRO 968#
MODPCP 980#
MODPCU 979#
MTROP 948#
MWORD 749#
PBELL 923#
PCRL 917#
PCRL2 921#
PCRL2F 922#
PCRLF 918#
PDEC 284#
PDECF 280#
PFORCE 925#
PGMINT 841# SEQ 0162
PJRST 832#
PMSG 927#
PMSGF 930#
PNT1 883#
PNT11 897#
PNT11F 898#
PNT1F 884#
PNT2 885#
PNT2F 886#
PNT3 887#
PNT3F 888#
PNT4 889#
PNT4F 890#
PNT5 891#
PNT5F 892#
PNT6 893#
PNT6F 894#
PNT7 895#
PNT7F 896#
PNTA 869#
PNTADF 900#
PNTADR 899#
PNTAF 870#
PNTAL 871#
PNTALF 872#
PNTCHF 882#
PNTCHR 881#
PNTCI 879#
PNTCIF 880#
PNTCW 915#
PNTCWF 916#
PNTDCC 281#
PNTDCF 908#
PNTDCL 286#
PNTDCP 282#
PNTDEC 907#
PNTDS 909#
PNTDSF 910#
PNTHW 903#
PNTHWF 904#
PNTMGN 994#
PNTMSF 876#
PNTMSG 875#
PNTNM 911#
PNTOCC 279#
PNTOCF 906#
PNTOCS 905#
PNTOCT 901#
PNTOTF 902#
PNTSIX 912#
PNTSXF 913#
PSIXL 873#
PSIXLF 874# SEQ 0163
PSIXM 877#
PSIXMF 878#
PSP 919#
PSPF 920#
PUT 830#
REPTUO 1008#
RGET 204#
RPUT 190#
RTN 829# 1125
S 759#
SCOPER 287#
SIXBTZ 936#
SUBTAB 220#
SWITCH 942#
TASCIZ 184#
TMSG 157#
TMSGC 159#
TMSGCD 165#
TMSGD 162#
TTALTM 863#
TTICHR 856#
TTICLR 866#
TTICNV 861#
TTIDEC 860#
TTINO 858#
TTIOCT 859#
TTIYES 857#
TTLOOK 862#
TTSIXB 864#
TTYINP 865#
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 1
DFNIA1 MAC 18-Feb-84 20:30 Externs / Entrys SEQ 0164
1 TITLE DFNIA (Port Functional Diagnostic)
2
3 SUBTTL Externs / Entrys
4
5 SALL
6
7 SEARCH DFNIA,MONSYM
8 000137 LOC 137
9 000137 000000 000002 MCNVER,,DECVER
10 030600 LOC ENDFIX+1
11
12 ; Miscellaneous stuff
13
14 INTERN UDEBUG ; no-IPA user mode debug switch
15 INTERN MDEBUG ; error message debug switch
16 INTERN LDEBUG ; ucode load debug switch
17 INTERN DDEBUG,DDUMP ; dump on error debug switch
18 INTERN EDEBUG ; expanded error message mode switch
19 INTERN PGMNAM ; program name
20 INTERN TXADDL ; additional text routine address
21 ENTRY START,STARTA ; start addresses
22
23 ; Microcode routines
24
25 ENTRY CALPAR,DWCRAM,DRCRAM,MLOADN,MLOADY,TLOAD,TFLOAD,MVPNT
26 INTERN CADDR,CWORDL,CWORDR,PARFLG,UVERSN,MLNUM
27
28 ; Miscellaneous routines
29
30 ENTRY CSRPNT,CSRENG,TRACE,RUPDAT,SUPDAT,SETENA,SETDSA,PACK4T,CNTPNT
31 INTERN FINPUT,FINECH,DSPRIN
32 INTERN STASNT,STARCV,.RREXP
33
34 ; Test variables
35
36 ENTRY TSTPNT,TSTEND
37 INTERN TSTNAM,TSTNUM,TSTSUB,TSTPC,TSTFLG,TSTMSK,TSTREP,TSTOFF
38 INTERN ALTF,TSLOAD,TAKFIL,SPEAR2,SPREP2,PMODE,TSTTAB
39
40 ; Interrupt activity print routines
41
42 ENTRY IPRINT
43
44 ; Packet Handling Routines
45
46 ENTRY BPACK,BPACKN,RWAIT,CHKINT,INSQUE,CHKRSP,RSPQUE,PNTRSP,CHKRQV
47 ENTRY CMDOPC,OPCPNT,TPCB,TIDLE,RDADDR,CONPNT,CONVIR,GETQUE,PUTQUE
48 INTERN CONTBL,NUMENT,RQAFLG,NEWENT,MTABLE,PTABLE,MCAT17
49 INTERN PACKET,RSPONS,BUFF,TPAT,TREGN,TREGD,TAMC,TH4000,TPRMSC,TRETRY
50 INTERN TDEST,TFMFLG,TRSFLG,TBSDFL,TPDFLG,TBYTE,TWORD,SADDR,TPTTVL
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 2
DFNIA1 MAC 18-Feb-84 20:30 Externs / Entrys SEQ 0165
51
52 ; Queue Print Routines
53
54 ENTRY PQUEUE,PPAKC,PPAKR,PPAKF,PPCB,PPCBD
55 INTERN PCB,PTTFQ
56
57 ; Tests 1-27
58
59 EXTERN TST1,TST2,TST3,TST4,TST5,TST6,TST7,TST10,TST11,TST12
60 EXTERN TST13,TST14,TST15,TST16,TST17,TST20,TST21,TST22,TST23
61 EXTERN TST24,TST25,TST26,TST27
62
63 ; Microcode Tests 2-3
64
65 EXTERN T2M,T3M
66
67 ; EXTERN's located in DFCIA3.MAC
68
69 EXTERN CRCSAV,CRCOFF,CRCTAB
70
71 ; EXTERN's located in DFNIAI.MAC (Port Handling Routines module)
72
73 EXTERN LDEBUF,LDRAR,LDCRAM,LDCSR,RDEBUF,RDLAR,RDCRAM,RDCSR
74 EXTERN SETEBU,SETLAR,CLREBU,CHKCSR,ERESET,IPACLR,ISTOP
75 EXTERN IPASRT,IPASTP,IPASST,SLAST,SNEXT,EADDR,AADDR,SDATA
76 EXTERN INITPI,INITPD,SETVEC,.CONI,.CONO,.DATAI,.DATAO,USRION
77 EXTERN INTNUM,INTPC,INTTYP,INTCON,INTAPR,INTTIM,INTUSE,INTCSR,INTEND
78 EXTERN CHINIT,GETLOG,CCWPNT,LOGPNT,CBASE,.INPNT,.INWD1,ICWA0,ENABLE
79 EXTERN DSETUP,DEVREQ,DEVREL,SNARKF,FFF,HAVIPA,REQ1,REQ2,REL
80 EXTERN LOCDON,LOCPHY
81
82 ; EXTERN's located in DFNIAU.MAC (Utility Routines module)
83
84 EXTERN CLRBUF,TTYYES,STCLOK,PTIME,RUNTME,CURTIM,.CLOSE
85 EXTERN DEBTIM,FORPNT,CONVSX,FGETW,FINCMD,FIOFF,FOARG,.RESET
86 EXTERN .SWCHP,SWITT,.ISWT,SWCHPT,.RSWIT,.LSWIT,SWRGT,SWCOM,SCOSW
87 EXTERN .COMM,.CGOT,.SARG,.OARG,.DARG,ARGFLG,ARGUM,CHKARG,LASARG,DECYN
88 EXTERN SCOPE1,SCOOFF,BUFGEN,BUFCOM,WRDERR,PATPNT
89
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 3
DFNIA1 MAC 18-Feb-84 20:30 Initialization SEQ 0166
90 SUBTTL Initialization
91
92 SALL
93
94 030600 PGMNAM: ASCIZ $
95 030600 015 012 104 106 116 DFNIA NI Port Functional Diagnostic
96 030601 111 101 040 116 111
97 030602 040 120 157 162 164
98 030603 040 106 165 156 143
99 030604 164 151 157 156 141
100 030605 154 040 104 151 141
101 030606 147 156 157 163 164
102 030607 151 143 015 012 000 $
103
104 030610 402 00 0 00 030056 SB: SETZM $ONETM ; reinit everything
105 030611 START:
106
107 ; First clear debug switches and set up PGMINT variables - MAPNEW, PVPAGI
108
109 030611 402 00 0 00 134255' SETZM UDEBUG# ; no-IPA user mode debug switch
110 030612 402 00 0 00 134172' SETZM MDEBUG# ; error message debug switch
111 030613 402 00 0 00 134166' SETZM LDEBUG# ; ucode load debug switch
112 030614 402 00 0 00 134151' SETZM DDEBUG# ; dump on error debug switch
113 030615 402 00 0 00 134156' SETZM EDEBUG# ; expanded error message switch
114 030616 476 00 0 00 030143 SETOM MAPNEW ; map all memory
115 030617 476 00 0 00 030511 SETOM PVPAGI ; always use paging
116
117 ; MCPUS - Multiple cpu print switch - If this flag is cleared, the multiple
118 ; cpu message is printed in full, if set, only the question asking which
119 ; cpu to run on is asked.
120
121 030620 336 00 0 00 030056 SKIPN $ONETM ; first time through here?
122 030621 402 00 0 00 134171' SETZM MCPUS# ; yes - clear the flag
123
124 ; Set up cache usage
125
126 030622 402 00 0 00 030506 SETZM CSHFLG ; allow pgm and any buffer space
127 030623 402 00 0 00 030507 SETZM CSHMEM ; to be in cache
128
129 ; Init file input switch
130
131 030624 402 00 0 00 134161' SETZM FINPUT# ; initialize 'file input' switch
132 030625 476 00 0 00 134160' SETOM FINECH# ; set echo switch
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 4
DFNIA1 MAC 18-Feb-84 20:30 Initialization SEQ 0167
133
134 ; Init flags/switches
135
136 030626 402 00 0 00 134162' SETZM FMTTYP# ; allow all data formats
137 030627 402 00 0 00 134144' SETZM BONETM# ; clear $ONETM flag
138 030630 336 00 0 00 030056 SKIPN $ONETM ; 1st time pgm init?
139 030631 476 00 0 00 134144' SETOM BONETM ; yes - set $ONETM flag
140 030632 332 00 0 00 030056 SKIPE $ONETM ; 1st time pgm init?
141 030633 254 00 0 00 030651 JRST STRT1 ; no - skip next bit of code
142
143 ; First time only code
144
145 030634 402 00 0 00 000000* SETZM SWRGT ; yes - clear right hand switches
146 030635 201 00 0 00 000000* MOVEI .RSWIT ; get start addr of prompt table
147 030636 202 00 0 00 030525 MOVEM SWPTAB ; setup for switch prompting
148
149 ; Init print enable, forced print switch, and statistics, and SPEAR flags
150
151 030637 211 00 0 00 023420 MOVNI ^D10000 ; set the printout limit
152 030640 202 00 0 00 030220 MOVEM PNTENB ; so won't die too soon
153 030641 402 00 0 00 000000* SETZM FORPNT ; clear forced print switch
154 030642 402 00 0 00 030521 SETZM $$TOGGLE ; enable switches
155 030643 260 17 0 00 043661 GO SZERO ; clear statistics
156 030644 402 00 0 00 134244' SETZM SPEAR1# ; clear 'SPEAR initial msg prnted' flag
157 030645 402 00 0 00 134245' SETZM SPEAR2# ; clear 'SPEAR err/fin msg prnted' flag
158 030646 402 00 0 00 043151 SETZM CONTBL ; clear first word of config table
159 030647 200 00 0 00 117020 MOVE [CONTBL,,CONTBL+1] ; build BLT pointer
160 030650 251 00 0 00 043460 BLT CONTBL+^D199 ; clear configuration table
161
162 ; Standard startup and handle paging and clock
163
164 030651 260 17 0 00 000000* STRT1: GO .RESET ; reset everything
165 030652 265 00 0 00 030011 PGMINT ; init the program
166 030653 476 00 0 00 030516 SETOM MONTYP ; force to be TOPS-20
167 030654 205 00 0 00 500000 MOVSI 500000 ; access bits for the page table
168 030655 502 00 0 00 000400 HLLM 400 ; maps 340000 to physical 0
169 030656 201 00 0 00 340000 MOVEI 340000 ; causes paging when E is calculated
170 030657 202 00 0 00 000000* MOVEM CBASE ; channel routines now page correctly
171 030660 260 17 0 00 000000* GO STCLOK ; start the clock ...
172 030661 402 00 0 00 030047 SETZM PASCNT ; clear pass count
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 5
DFNIA1 MAC 18-Feb-84 20:30 Initialization SEQ 0168
173
174 ; Set/clear debug switches
175
176 030662 402 00 0 00 134255' SETZM UDEBUG ; clear no-IPA user mode debug switch
177 030663 402 00 0 00 134172' SETZM MDEBUG ; clear error message debug switch
178 030664 402 00 0 00 134166' SETZM LDEBUG ; clear ucode load debug switch
179 030665 402 00 0 00 134151' SETZM DDEBUG ; clear dump on error debug switch
180 030666 402 00 0 00 134156' SETZM EDEBUG ; clear expanded error message switch
181 030667 260 17 0 00 000000* GO SWITT ; get switches
182 030670 602 00 0 00 002000 TRNE DEBUG1 ; debug switch set?
183 030671 476 00 0 00 134255' SETOM UDEBUG ; set no-IPA user mode debug switch
184 030672 602 00 0 00 001000 TRNE DEBUG2 ; debug switch set?
185 030673 476 00 0 00 134172' SETOM MDEBUG ; set error message debug switch
186 030674 602 00 0 00 000400 TRNE DEBUG3 ; debug switch set?
187 030675 476 00 0 00 134166' SETOM LDEBUG ; set ucode load debug switch
188 030676 602 00 0 00 000200 TRNE DEBUG4 ; debug switch set?
189 030677 476 00 0 00 134151' SETOM DDEBUG ; set dump on error debug switch
190 030700 602 00 0 00 000040 TRNE DEBUG6 ; debug switch set?
191 030701 476 00 0 00 134156' SETOM EDEBUG ; set expanded error message switch
192 030702 201 00 0 00 000005 MOVEI ITERAT ; get default pass count
193 030703 202 00 0 00 030024 MOVEM ITRCNT ; save in FIXED area location
194 030704 402 00 0 00 115611 SETZM PMODE ; set program mode to 'no test'
195
196 ; Request device, ...
197
198 030705 200 16 0 00 115612 MOVE MBCN,NIPORT ; set up MBCN register
199 030706 260 17 0 00 000000* GO DSETUP ; set up DIAG JSYS
200 030707 260 17 0 00 000000* GO LOCPHY ; lock part of the diagnostic
201 030710 260 17 0 00 000000* GO ENABLE ; enable privileges
202 030711 260 17 0 00 000000* GO USRION ; set USRIOT bit
203 030712 260 17 0 00 000000* GO RDCSR ; read CSR
204 030713 400 01 0 00 000000 SETZ 1, ; error
205 030714 404 01 0 00 117021 AND 1,[400003,,0] ; mask out all but hardwired bits
206 030715 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
207 030716 316 01 0 00 117021 CAMN 1,[400003,,0] ; no - an NI20 here?
208 030717 260 17 0 00 000000* GO DEVREQ ; yes - request the device
209 JRST [FMSGCD <? NI port not found>
210 SKIPE 20000
211 JRST 20000
212 HALT .+1
213 030720 254 00 0 00 117027 JRST START]
214
215 ; Handle SPEAR reporting
216
217 030721 260 17 0 00 115360 GO SPREP1 ; do initial SPEAR report
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 6
DFNIA1 MAC 18-Feb-84 20:30 Initialization SEQ 0169
218
219 ; Go do a test
220
221 030722 336 00 0 00 033704 STARTA: SKIPN SADDR ; address already gotten?
222 GO [GO RDADDR ; no - read station address and
223 DMOVE SADDR ; set up some defaults
224 DMOVEM TDEST ; ...
225 030723 260 17 0 00 117034 RTN]
226 030724 260 17 0 00 000000* GO INITPI ; initialize PI system
227 030725 260 17 0 00 000000* GO SETVEC ; set up vector addresses
228 030726 260 17 0 00 030766 GO DISPAT ; do a test
229 030727 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
230 030730 254 00 0 00 030746 JRST STARTB ; yes - exit
231 030731 260 17 0 00 030667* GO SWITT ; get switches
232 030732 607 00 0 00 000010 TLNN OPRSEL ; OPRSEL switch set?
233 030733 260 17 0 00 030747 GO PASPNT ; no - print end of pass
234 030734 260 17 0 00 030731* GO SWITT ; get switches
235 030735 336 00 0 00 030037 SKIPN USER ; user mode?
236 030736 607 00 0 00 400000 TLNN ABORT ; abort switch set?
237 030737 334 00 0 00 000000 SKIPA ; no (or user mode) - continue
238 030740 254 00 0 00 030746 JRST STARTB ; yes - exit
239 030741 037 12 0 00 000004 ENDUUO ; end of pass handling
240 030742 254 00 0 00 030722 JRST STARTA ; ITRCNT not exhausted - continue
241 030743 260 17 0 00 030734* GO SWITT ; get switches
242 030744 602 00 0 00 040000 TRNE LOOPGM ; loop on program switch set?
243 030745 254 00 0 00 030722 JRST STARTA ; yes - loop forever
244 030746 037 16 0 00 000004 STARTB: EOPUUO ; ITRCNT exhausted - exit pgm
245
246 ; Print pass count
247
248 030747 200 00 0 00 030047 PASPNT: MOVE PASCNT ; get pass count
249 030750 350 00 0 00 000000 AOS ; increment by 1
250 030751 231 00 0 00 000012 IDIVI ^D10 ; divide by 10
251 030752 332 00 0 00 000000 SKIPE ; print pass number only for passes
252 030753 326 01 0 00 117037 JUMPN 1,[RTN] ; 1,2..7,10,20,30,40 ...
253 030754 037 00 0 00 117040 TMSGC <End pass > ; print it
254 030755 200 00 0 00 030047 MOVE PASCNT
255 030756 350 00 0 00 000000 AOS
256 030757 037 15 0 00 000000 PNTDEC
257 030760 037 00 0 00 117043 TMSG <. at >
258 030761 402 00 0 00 030641* SETZM FORPNT ; clear force print
259 030762 200 03 0 00 117045 MOVE 3,[JFCL] ; set up timer routine
260 030763 260 17 0 00 000000* GO RUNTME ; print current time
261 030764 037 00 0 00 030242 PCRL
262 030765 263 17 0 00 000000 RTN ; return
263
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 7
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0170
264 SUBTTL Test/Command Selection
265
266 ;#*********************************************************************
267 ;* DISPAT - Routine to dispatch to proper test as typed by the operator
268 ;* in response to the 'WHAT TEST' prompt.
269 ;
270 ; COMMAND DEFINITION
271 ; ------- ----------
272 ; ALL n All tests
273 ; PORT n Port modules related tests
274 ; NIA n NIA module related tests
275 ; LOOP n Loopback tests
276 ; FUNCT n Functional tests (including loopback)
277 ; n n Test n
278 ;
279 ; Other tests:
280 ;
281 ; DEBUG Enter debugger
282 ;
283 ; DIAMON Enter DIAMON
284 ; DDT Enter DDT
285 ; HELP Print this text
286 ; EXIT Exit program
287 ;
288 ; TAKE Take commands from a file
289 ; NTAKE Take commands from a file (without echoing them)
290 ;
291 ; CONFIG Print current configuration
292 ;
293 ; ENABLE Enable execution of a test
294 ; DISABL Disable execution of a test
295 ; DISLIS List disabled tests
296 ;
297 ; LIST n List all tests
298 ;
299 ; Switches: To complement switch, type switch name
300 ;
301 ; SWITCH Enter switches
302 ; SWPRIN Print current switches
303 ;
304 ; NOPNT ERSTOP TXTINH TRACE LOOPGM DSPEAR LDEBUG
305 ; PNTLPT PALERS OPRSEL INHMSG LOOPTS UDEBUG DDEBUG
306 ; DING RELIAB INHFLT RUNALL MDEBUG EDEBUG
307 ;#********************************************************************
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 8
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0171
308
309 030766 402 00 0 00 134143' DISPAT: SETZM ALTF# ; clear 'altmode typed' flag
310
311 030767 260 17 0 00 030743* GO SWITT ; get switches
312 030770 603 00 0 00 000010 TLNE OPRSEL ; OPRSEL switch set?
313 030771 037 01 0 00 117046 FMSGCD <Type ? for help> ; yes - print this
314
315 ; Do a little initialization - first set up altmode transfer address
316
317 030772 202 17 0 00 134233' DISP0: MOVEM P,SAVEP# ; save stack pointer
318 030773 260 17 0 00 030767* GO SWITT ; get switches
319 030774 603 00 0 00 000010 TLNE OPRSEL ; OPRSEL switch set?
320 MOVEI 1,[PCRLF ; yes - set $ addr to print blank line
321 030775 201 01 0 00 117052 JRST DISP0] ; line and continue at 'What test'
322 030776 607 00 0 00 000010 TLNN OPRSEL ; OPRSEL switch set?
323 MOVEI 1,[SETZM ALTF ; no - set up $ xfr addr to exit pass
324 GO FIOFF
325 030777 201 01 0 00 117054 RTN]
326 031000 202 01 0 00 030063 MOVEM 1,ALTMGO ; store it
327 031001 402 00 0 00 134143' SETZM ALTF ; clear 'altmode typed' flag
328
329 ; Set up print limit, clear error flag, clear input buffer, set up MBCN
330
331 031002 201 00 0 00 303240 MOVEI ^D100000 ; re-set up print limit just in case
332 031003 212 00 0 00 030220 MOVNM PNTENB ; the last test exceeded it
333 031004 400 15 0 00 000000 SETZ ERFLG, ; clear error flag
334 031005 260 17 0 00 000000* GO CLRBUF ; clear input buffer
335 031006 200 16 0 00 115612 MOVE MBCN,NIPORT ; set up MBCN register properly
336 031007 476 00 0 00 134250' SETOM TSLOAD# ; initialize ucode loaded flag
337
338 ; Set/clear debug switches
339
340 031010 402 00 0 00 134255' SETZM UDEBUG ; clear no-IPA user mode debug switch
341 031011 402 00 0 00 134172' SETZM MDEBUG ; clear error message debug switch
342 031012 402 00 0 00 134166' SETZM LDEBUG ; clear ucode load debug switch
343 031013 402 00 0 00 134151' SETZM DDEBUG ; clear dump on error debug switch
344 031014 402 00 0 00 134156' SETZM EDEBUG ; clear expanded error message switch
345 031015 260 17 0 00 030773* GO SWITT ; get switches
346 031016 602 00 0 00 002000 TRNE DEBUG1 ; debug switch set?
347 031017 476 00 0 00 134255' SETOM UDEBUG ; set no-IPA user mode debug switch
348 031020 602 00 0 00 001000 TRNE DEBUG2 ; debug switch set?
349 031021 476 00 0 00 134172' SETOM MDEBUG ; set error message debug switch
350 031022 602 00 0 00 000400 TRNE DEBUG3 ; debug switch set?
351 031023 476 00 0 00 134166' SETOM LDEBUG ; set ucode load debug switch
352 031024 602 00 0 00 000200 TRNE DEBUG4 ; debug switch set?
353 031025 476 00 0 00 134151' SETOM DDEBUG ; set dump on error debug switch
354 031026 602 00 0 00 000040 TRNE DEBUG6 ; debug switch set?
355 031027 476 00 0 00 134156' SETOM EDEBUG ; set expanded error message switch
356 031030 402 00 0 00 115611 SETZM PMODE ; set program mode to 'no test'
357 031031 402 00 0 00 134174' SETZM MULFLG# ; clear 'multiple examine' flag
358 031032 476 00 0 00 134175' SETOM MULINI# ; set 'initial examine' flag
359 031033 402 00 0 00 134254' SETZM TXADDL# ; clear 'addl text' routine address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 9
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0172
360
361 ; Set up PI system in case any interrupts occur
362
363 031034 260 17 0 00 030724* GO INITPI ; init PI system
364 031035 260 17 0 00 030725* GO SETVEC ; set up vector addresses
365
366 ; Do ALL test automatically if OPRSEL switch is not set
367
368 031036 201 01 0 00 000001 MOVEI 1,1 ; set to ALL test
369 031037 607 00 0 00 000010 TLNN OPRSEL ; OPRSEL switch set?
370 031040 254 00 0 00 031117 JRST DISP2 ; no - go do test
371 031041 402 00 0 00 030047 SETZM PASCNT ; clear pass count
372
373 ; Now handle a normal command
374
375 031042 402 00 0 00 000000* SETZM .INWD1 ; clear special interrupt data
376 031043 476 00 0 00 134144' SETOM BONETM ; set 'not first time' flag
377 031044 336 00 0 00 134161' SKIPN FINPUT ; file input?
378 031045 476 00 0 00 134160' SETOM FINECH ; no - ensure echo flag set
379 031046 332 00 0 00 134160' SKIPE FINECH ; echo flag set?
380 GO [PFORCE ; no - print all this
381 PCRLF
382 FMSG <What test - >
383 031047 260 17 0 00 117062 RTN]
384 031050 332 00 0 00 134161' SKIPE FINPUT ; file input?
385 JRST [GO FINCMD ; yes - input sixbit cmd
386 JRST DISP0 ; error or EOF
387 031051 254 00 0 00 117066 JRST DISP0B] ; continue
388 031052 037 10 0 00 000003 DISP0A: TTSIXB ; get the name in sixbit
389 ALTCHK [GET XXW# ; adjust stack properly
390 SKIPN $TWCNT ; did a timeout occur?
391 JRST DISP0 ; yes - keep looking for input
392 MOVE 1,$TTCHR ; no - get character typed
393 CAIN 1,40 ; space (delimiter) typed?
394 JRST .+1 ; yes - continue (no error condition)
395 CAIN 1,77 ; was a question mark typed?
396 JRST DISQUE ; yes - handle
397 031053 007 00 0 00 117071 JRST DISPE] ; no - error - reask question
398 DISP0B: JUMPE [MOVE $TTCHR ; anything typed? if a space, keep
399 CAIN 40 ; looking for an argument, if not
400 JRST DISP0A ; exit
401 031054 322 00 0 00 117102 JRST DISP0]
402 031055 202 00 0 00 134253' MOVEM TSTSAV# ; save the typed name
403 031056 402 00 0 00 000000* SETZM ARGFLG ; clear 'argument given' flag
404 031057 200 01 0 00 030231 MOVE 1,$TTCHR ; get last character typed
405 031060 302 01 0 00 000015 CAIE 1,15 ; CR? (end of line)
406 031061 476 00 0 00 031056* SETOM ARGFLG ; set 'argument given' flag
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 10
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0173
407
408 ; Process command
409
410 031062 200 01 0 00 134253' DISP1: MOVE 1,TSTSAV ; get command into AC1
411 031063 201 02 0 00 031131 MOVEI 2,DISLIS ; get address of cmd list
412 031064 260 17 0 00 000000* GO .COMM ; handle command decoding
413 031065 334 00 0 00 000000 SKIPA ; error return
414 031066 254 00 0 00 031117 JRST DISP2 ; dispatch to test
415
416 ; Now check to see if a test number was selected in the form 'n r'
417 ; where 'n' is the test number and 'r' is the repeat count.
418
419 000027 MAXTST==TSTMAX-TSTTAB-1
420
421 031067 260 17 0 00 000000* GO CONVSX ; convert to octal test number
422 031070 254 00 0 00 031106 JRST DISPD ; error return (unrecognizable)
423 031071 333 00 0 00 000001 SKIPLE 1 ; out of range?
424 031072 303 01 0 00 000027 CAILE 1,MAXTST ; out of range?
425 031073 254 00 0 00 031100 JRST DISPR ; yes - handle
426 031074 370 00 0 00 000001 SOS 1 ; normalize to 0..n
427 031075 202 01 0 00 115576 MOVEM 1,TSTNUM ; save test number
428 031076 260 17 0 00 031563 GO TSTSPC ; execute it
429 031077 254 00 0 00 031120 JRST DISPX ; end of test
430
431 ; Range error
432
433 031100 037 01 0 00 117106 DISPR: FMSGC <? Test selected is not in range 1->
434 031101 201 00 0 00 000027 MOVEI MAXTST ; get range
435 031102 037 17 0 00 000003 PNTOCF ; print it
436 031103 037 01 0 00 030242 PCRLF
437 031104 260 17 0 00 000000* GO FIOFF ; turn off file input
438 031105 254 00 0 00 030772 JRST DISP0 ; continue
439
440 ; Possibly a DEBUG command was typed - check for this and handle
441
442 031106 200 01 0 00 134253' DISPD: MOVE 1,TSTSAV ; get command into AC1
443 031107 201 02 0 00 032322 MOVEI 2,.DBCMD ; get address of cmd list
444 031110 260 17 0 00 031064* GO .COMM ; handle command decoding
445 031111 254 00 0 00 031114 JRST DISPE ; unrecognizable
446 031112 260 17 1 01 032474 GO @.DBDIS(1) ; dispatch to test
447 031113 254 00 0 00 030772 JRST DISP0 ; return to 'DEBUG>' prompt
448
449 ; Unrecognized command
450
451 031114 037 01 0 00 117116 DISPE: FMSGCD <? Unrecognizable - Type ? for help>
452 031115 260 17 0 00 031104* GO FIOFF ; turn off file input
453 031116 254 00 0 00 030772 JRST DISP0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 11
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0174
454
455 ; Dispatch to test
456
457 031117 260 17 1 01 031205 DISP2: GO @DISGO(1) ; dispatch to test
458
459 ; End of command - if OPRSEL switch set, ask for command
460 ; if OPRSEL switch not set, it is end of pass
461
462 031120 260 17 0 00 031015* DISPX: GO SWITT ; get program switches
463 031121 603 00 0 00 000010 TLNE OPRSEL ; OPRSEL set?
464 031122 254 00 0 00 030772 JRST DISP0 ; yes - not really end of pass
465 031123 263 17 0 00 000000 RTN ; no - end of pass
466
467 ; Handle ? typed
468
469 031124 037 01 0 00 000026 DISQUE: PFORCE ; handle Control-O
470 031125 037 00 1 00 031127 PNTMSG @DISQUU ; print text
471 031126 254 00 0 00 030772 JRST DISP0 ; continue
472
473 031127 DISQUU: [ASCII /
474 Tests Other Switches
475 ----- -------------- ----------------------
476 ALL DIAMON ENABLE NOPNT TRACE UDEBUG
477 PORT DDT DISABL PNTLPT INHFLT MDEBUG
478 NIA HELP DISLIS DING INHMSG LDEBUG
479 LOOP EXIT LIST ERSTOP LOOPGM DDEBUG
480 FUNCT TAKE STATIS PALERS LOOPTS EDEBUG
481 031127 000000 117126 NTAKE ZSTATS RELIAB RUNALL SWITCH /]
482 [ASCIZ /
483 DEBUG CONFIG ZCOUNT TXTINH DSPEAR SWPRIN
484 (Or 'n' where n OPRSEL
485 is the test #).
486 031130 000000 117240 /]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 12
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0175
487
488 ;#*********************************************************************
489 ;* DISLIS - List of all valid test names that can be typed
490 ;#*********************************************************************
491
492 031131 777777 777655 DISLIS: -123 ; ignore
493 031132 41 54 54 00 00 00 SIXBIT /ALL/ ; execute ALL tests
494 031133 60 57 62 64 00 00 SIXBIT /PORT/ ; execute Port tests
495 031134 56 51 41 00 00 00 SIXBIT /NIA/ ; execute Link tests
496 031135 54 57 57 60 00 00 SIXBIT /LOOP/ ; execute Loopback tests
497 031136 46 65 56 43 64 00 SIXBIT /FUNCT/ ; execute Functional tests
498 031137 62 41 56 44 57 55 SIXBIT /RANDOM/ ; execute tests randomly
499
500 ; Other
501
502 031140 63 64 41 64 51 63 SIXBIT /STATIS/ ; print collected statistics
503 031141 72 63 64 41 64 63 SIXBIT /ZSTATS/ ; clear statistics areas
504 031142 43 57 56 46 51 47 SIXBIT /CONFIG/ ; print current configuration
505
506 031143 45 56 41 42 54 45 SIXBIT /ENABLE/ ; enable specified tests
507 031144 44 51 63 41 42 54 SIXBIT /DISABL/ ; disable specified tests
508 031145 44 51 63 54 51 63 SIXBIT /DISLIS/ ; list disabled tests
509 031146 54 51 63 64 00 00 SIXBIT /LIST/ ; list test descriptions
510
511 031147 64 41 53 45 00 00 SIXBIT /TAKE/ ; take commands from a file
512 031150 56 64 41 53 45 00 SIXBIT /NTAKE/ ; take commands from a file
513 031151 44 45 42 65 47 00 SIXBIT /DEBUG/ ; execute debugger test
514 031152 44 51 41 55 57 56 SIXBIT /DIAMON/ ; exit to DIAMON
515 031153 44 44 64 00 00 00 SIXBIT /DDT/ ; enter DDT
516 031154 45 70 51 64 00 00 SIXBIT /EXIT/ ; exit pgm
517 031155 50 45 54 60 00 00 SIXBIT /HELP/ ; help
518
519 ; Switches
520
521 031156 63 67 51 64 43 50 SIXBIT /SWITCH/ ; input switches
522 031157 63 67 60 62 51 56 SIXBIT /SWPRIN/ ; print switch selections
523 031160 56 57 60 56 64 00 SIXBIT /NOPNT/ ; don't print anything
524 031161 60 56 64 54 60 64 SIXBIT /PNTLPT/ ; print on printer
525 031162 44 51 56 47 00 00 SIXBIT /DING/ ; ding on error
526 031163 45 62 63 64 57 60 SIXBIT /ERSTOP/ ; halt on error
527 031164 60 41 54 45 62 63 SIXBIT /PALERS/ ; print all errors
528 031165 62 45 54 51 41 42 SIXBIT /RELIAB/ ; reliability testing
529 031166 64 70 64 51 56 50 SIXBIT /TXTINH/ ; shorten printing
530 031167 57 60 62 63 45 54 SIXBIT /OPRSEL/ ; operator select
531 031170 64 62 41 43 45 00 SIXBIT /TRACE/ ; trace pgm flow
532 031171 51 56 50 46 54 64 SIXBIT /INHFLT/ ; inhibit fault isolation
533 031172 51 56 50 55 63 47 SIXBIT /INHMSG/ ; inhibit error messages
534 031173 54 57 57 60 47 55 SIXBIT /LOOPGM/ ; loop on program
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 13
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0176
535 031174 54 57 57 60 64 63 SIXBIT /LOOPTS/ ; loop on test
536 031175 62 65 56 41 54 54 SIXBIT /RUNALL/ ; run all test segments
537 031176 44 63 60 45 41 62 SIXBIT /DSPEAR/ ; disable SPEAR reporting
538 031177 65 44 45 42 65 47 SIXBIT /UDEBUG/ ; no-IPA user mode debug switch
539 031200 55 44 45 42 65 47 SIXBIT /MDEBUG/ ; error message debug switch
540 031201 54 44 45 42 65 47 SIXBIT /LDEBUG/ ; load microcode debug switch
541 031202 44 44 45 42 65 47 SIXBIT /DDEBUG/ ; dump on error debug switch
542 031203 45 44 45 42 65 47 SIXBIT /EDEBUG/ ; expanded error msg switch
543 031204 000 00 0 00 000000 Z
544
545
546 ;#********************************************************************
547 ;* DISGO - Test dispatch addresses
548 ;#********************************************************************
549
550 031205 000000 117037 DISGO: [RTN] ; ignore
551 031206 000000 031260 TSTEXE ; ALL - execute all tests
552 031207 000000 031260 TSTEXE ; PORT - execute PORT modules tests
553 031210 000000 031260 TSTEXE ; NIA - execute NIA module tests
554 031211 000000 031260 TSTEXE ; LOOP - execute Loopback tests
555 031212 000000 031260 TSTEXE ; FUNCT - execute Functional tests
556 031213 000000 031626 TSTRAN ; RANDOM - execute tests randomly
557
558 031214 000000 031477 TSTPRI ; STATIS - Print statistics
559 031215 000000 031361 TSTZER ; ZSTATS - Zero statistics
560 031216 000000 031366 TSTCON ; CONFIG - Print configuration
561
562 031217 000000 031431 TSTENA ; ENABLE - enable specified tests
563 031220 000000 031425 TSTDSA ; DISABL - disable specified tests
564 031221 000000 031455 TSTDSL ; DISLIS - list disabled tests
565 031222 000000 031266 TSTLIS ; LIST - list test descriptions
566
567 031223 000000 031527 TSTTAK ; TAKE - take commands from a file
568 031224 000000 031525 TSTTAN ; NTAKE - take commands from a file
569 031225 000000 032231 TSTDEB ; DEBUG - execute debugger test
570 031226 000000 031332 TSTDIA ; DIAMON - re-enter DIAMON
571 031227 000000 031337 TSTDDT ; DDT - enter DDT
572 031230 000000 031350 TSTHLT ; EXIT - exit
573 031231 000000 031373 TSTHLP ; HELP - help
574
575 031232 000000 031504 TSTSWI ; SWITCH - input switches
576 031233 000000 031511 TSTSWP ; SWPRIN - print switch selections
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 14
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0177
577
578 000027 SWSTT==.-DISGO
579
580 031234 000000 031516 TSTSSW ; NOPNT
581 031235 000000 031516 TSTSSW ; PNTLPT
582 031236 000000 031516 TSTSSW ; DING
583 031237 000000 031516 TSTSSW ; ERSTOP
584 031240 000000 031516 TSTSSW ; PALERS
585 031241 000000 031516 TSTSSW ; RELIAB
586 031242 000000 031516 TSTSSW ; TXTINH
587 031243 000000 031516 TSTSSW ; OPRSEL
588 031244 000000 031516 TSTSSW ; TRACE
589 031245 000000 031516 TSTSSW ; INHFLT
590 031246 000000 031516 TSTSSW ; INHMSG
591 031247 000000 031516 TSTSSW ; LOOPGM
592 031250 000000 031516 TSTSSW ; LOOPTS
593 031251 000000 031516 TSTSSW ; RUNALL
594 031252 000000 031516 TSTSSW ; DSPEAR
595 031253 000000 031516 TSTSSW ; UDEBUG
596 031254 000000 031516 TSTSSW ; MDEBUG
597 031255 000000 031516 TSTSSW ; LDEBUG
598 031256 000000 031516 TSTSSW ; DDEBUG
599 031257 000000 031516 TSTSSW ; EDEBUG
600
601
602 ;#********************************************************************
603 ;* ALL Execute all tests
604 ;* PORT Execute Port modules related tests
605 ;* NIA Execute NIA module related tests
606 ;* LOOP Execute Loopback tests
607 ;* FUNCT Execute Functional tests
608 ;
609 ; All of these commands dispatch to TSTEXE which sets up test mask
610 ; and does dispatch to tests.
611 ;#********************************************************************
612
613 TSTEXE: MOVE [ALL ; get test mask
614 PORT
615 NIA
616 LOOP
617 031260 200 00 0 01 117263 FUNCT]-1(1)
618 031261 202 00 0 00 115602 MOVEM TSTMSK ; save test mask
619 031262 260 17 0 00 031655 GO TSTDIS ; go dispatch to tests
620
621 ; Handle SPEAR reporting
622
623 031263 400 15 0 00 000000 SETZ ERFLG, ; clear error flag
624 031264 260 17 0 00 115421 GO SPREP2 ; do final SPEAR report
625 031265 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 15
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0178
626
627 ;#********************************************************************
628 ;* TSTLIS - List test description for either single test or range of tests.
629 ;
630 ; Argument(s): n - list only one test
631 ; n,m - list range of tests
632 ; none - list all tests
633 ;#********************************************************************
634
635 031266 402 00 0 00 115577 TSTLIS: SETZM TSTSUB ; clear subtest number
636 031267 402 00 0 00 134251' SETZM TSTL1# ; set up start test number
637 031270 350 00 0 00 134251' AOS TSTL1 ; set to 1
638 031271 201 00 0 00 000027 MOVEI MAXTST ; set up final test number
639 031272 202 00 0 00 134252' MOVEM TSTL2# ; set to MAXTST
640
641 ; Check for argument(s)
642
643 031273 200 01 0 00 117302 MOVE 1,[FMSGCD <LIST test# (CR) or LIST test#,test# (CR)>]
644 031274 260 17 0 00 000000* GO .DARG ; get test number
645 031275 263 17 0 00 000000 RTN ; error/altmode/question - exit
646 031276 254 00 0 00 031310 JRST TSTLI0 ; no argument given
647 031277 200 01 0 00 000000* MOVE 1,ARGUM ; get argument
648 031300 202 01 0 00 134251' MOVEM 1,TSTL1 ; save first test number
649 031301 202 01 0 00 134252' MOVEM 1,TSTL2 ; save second test number
650 031302 210 01 0 00 117302 MOVN 1,[FMSGCD <LIST test# (CR) or LIST test#,test# (CR)>]
651 031303 260 17 0 00 031274* GO .DARG ; get test number
652 031304 263 17 0 00 000000 RTN ; error/altmode/question - exit
653 031305 254 00 0 00 031310 JRST TSTLI0 ; no 2nd argument given
654 031306 200 01 0 00 031277* MOVE 1,ARGUM ; get argument
655 031307 202 01 0 00 134252' MOVEM 1,TSTL2 ; save second test number
656
657 ; Range check the arguments
658
659 031310 333 01 0 00 134251' TSTLI0: SKIPLE 1,TSTL1 ; first argument in range
660 031311 303 01 0 00 000027 CAILE 1,MAXTST ; 1-MAXTST?
661 JRST [FMSGCD <? Range of test numbers is 1->
662 MOVEI MAXTST ; get range
663 PNTOCF ; print it
664 PCRLF
665 GO FIOFF ; turn off file input
666 031312 254 00 0 00 117312 RTN]
667 031313 200 02 0 00 134252' MOVE 2,TSTL2 ; get 2nd argument
668 031314 311 02 0 00 000001 CAML 2,1 ; 2nd argument in range
669 031315 303 02 0 00 000027 CAILE 2,MAXTST ; 1st arg-MAXTST?
670 JRST [FMSGC <? Range of test numbers is 1->
671 MOVEI MAXTST ; get range
672 PNTOCF ; print it
673 PCRLF
674 GO FIOFF ; turn off file input
675 031316 254 00 0 00 117327 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 16
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0179
676
677 ; Print the test descriptions
678
679 031317 200 02 0 00 134251' TSTLI1: MOVE 2,TSTL1 ; get test number
680 031320 202 02 0 00 115576 MOVEM 2,TSTNUM ; set up for TSTPNT
681 031321 037 00 0 00 030242 PCRL ; skip a line
682 031322 260 17 0 00 042411 GO TSTPNT ; no - print it
683 031323 350 02 0 00 134251' AOS 2,TSTL1 ; point to next test
684 031324 313 02 0 00 134252' CAMLE 2,TSTL2 ; reach end of range?
685 031325 254 00 0 00 031330 JRST TSTLIX ; yes - exit
686 031326 037 07 0 00 000003 TTALTM ; no - altmode typed?
687 031327 254 00 0 00 031317 JRST TSTLI1 ; no - do next test
688 031330 037 00 0 00 030242 TSTLIX: PCRL ; final CRLF
689 031331 263 17 0 00 000000 RTN ; return
690
691
692 ;#********************************************************************
693 ;* TSTDIA - Return to DIAMON
694 ;#********************************************************************
695
696 031332 200 01 0 00 117341 TSTDIA: MOVE 1,[FMSGCD (DIAMON <CR>)]
697 031333 260 17 0 00 000000* GO CHKARG ; check for argument
698 031334 263 17 0 00 000000 RTN ; error - exit
699 031335 260 17 0 00 000000* GO DEVREL ; release the device
700 031336 254 00 0 00 020000 JRST 20000 ; enter DIAMON
701
702
703 ;#********************************************************************
704 ;* TSTDDT - Enter DDT
705 ;#********************************************************************
706
707 031337 200 01 0 00 117345 TSTDDT: MOVE 1,[FMSGCD (DDT <CR>)]
708 031340 260 17 0 00 031333* GO CHKARG ; check for argument
709 031341 263 17 0 00 000000 RTN ; error - exit
710 031342 037 01 0 00 117346 FMSGCD <Type RTN$X to continue>
711 031343 260 17 0 00 030007 GO SRTDDT ; enter DDT
712 031344 260 17 0 00 000000* GO INITPD ; init PI system
713 031345 260 17 0 00 031035* GO SETVEC ; set up vector addresses
714 031346 400 01 0 00 000000 SETZ 1, ; clear AC1
715 031347 263 17 0 00 000000 RTN ; ask for a test
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 17
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0180
716
717 ;#********************************************************************
718 ;* TSTHLT - Program halts - CONTINUE will start it back up.
719 ;#********************************************************************
720
721 031350 200 01 0 00 117357 TSTHLT: MOVE 1,[FMSGCD (EXIT <CR>)]
722 031351 260 17 0 00 031340* GO CHKARG ; check for argument
723 031352 263 17 0 00 000000 RTN ; error - exit
724 031353 260 17 0 00 031335* GO DEVREL ; release the device
725 031354 260 17 0 00 000000* GO .CLOSE ; close any open files
726 031355 332 00 0 00 020000 SKIPE 20000 ; DIAMON loaded?
727 031356 254 00 0 00 020000 JRST 20000 ; yes - return there
728 031357 254 04 0 00 031360 HALT .+1 ; no - halt
729 031360 254 00 0 00 030611 JRST START ; continue
730
731
732 ;#********************************************************************
733 ;* TSTZER - Clear statistics
734 ;#********************************************************************
735
736 031361 200 01 0 00 117363 TSTZER: MOVE 1,[FMSGCD (ZERO <CR>)]
737 031362 260 17 0 00 031351* GO CHKARG ; check for argument
738 031363 263 17 0 00 000000 RTN ; error - exit
739 031364 260 17 0 00 043661 GO SZERO ; clear statistics
740 031365 263 17 0 00 000000 RTN ; done
741
742
743 ;#********************************************************************
744 ;* TSTCON - Print configuration
745 ;#********************************************************************
746
747 031366 200 01 0 00 117370 TSTCON: MOVE 1,[FMSGCD (CONFIG <CR>)]
748 031367 260 17 0 00 031362* GO CHKARG ; check for argument
749 031370 263 17 0 00 000000 RTN ; error - exit
750 031371 260 17 0 00 043073 GO CONPNT ; print configuration
751 031372 263 17 0 00 000000 RTN ; done
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 18
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0181
752
753 ;#*********************************************************************
754 ;* TSTHLP - Help for 'WHAT TEST' question.
755 ;#*********************************************************************
756
757 TSTHLP: MOVN 1,[FMSGD <
758 HELP ALL MISC
759 031373 210 01 0 00 117402 TESTS SWITCH>]
760 031374 260 17 0 00 000000* GO .SARG ; get SIXBIT argument
761 031375 263 17 0 00 000000 RTN ; error/altmode/question - exit
762 GO [MOVE [SIXBIT /ALL/] ; no argument - assume all
763 MOVEM ARGUM
764 031376 260 17 0 00 117404 RTN]
765 031377 200 01 0 00 031306* MOVE 1,ARGUM ; get sixbit command
766 031400 201 02 0 00 031413 MOVEI 2,TSTHLC ; get address of cmd list
767 031401 260 17 0 00 031110* GO .COMM ; handle command decoding
768 JRST [FMSGCD <? Unrecognizable - Type ? for help>
769 GO FIOFF
770 031402 254 00 0 00 117407 RTN] ; error return
771 031403 037 01 0 00 000026 PFORCE ; handle Control-O
772 031404 200 02 0 00 000001 MOVE 2,1 ; get AC1
773 031405 336 03 0 01 031420 TSTHL0: SKIPN 3,TSTHLL(1) ; get address of TMSG
774 031406 263 17 0 00 000000 RTN ; all done - exit
775 031407 256 00 0 00 000003 XCT 3 ; print it
776 031410 350 00 0 00 000001 AOS 1 ; point to next address
777 031411 322 02 0 00 031405 JUMPE 2,TSTHL0 ; loop till done
778 031412 263 17 0 00 000000 RTN ; exit
779
780 031413 41 54 54 00 00 00 TSTHLC: SIXBIT /ALL/ ; print all help info
781 031414 64 45 63 64 63 00 SIXBIT /TESTS/ ; print test commands
782 031415 55 51 63 43 00 00 SIXBIT /MISC/ ; print miscellaneous commands
783 031416 63 67 51 64 43 50 SIXBIT /SWITCH/ ; print switch commands
784 031417 000000 000000 0 ; end of list
785
786 031420 037 00 0 00 117412 TSTHLL: TMSGCD <Tests Available:>
787
788 TMSGD <
789 ALL n Execute ALL tests (n times)
790 PORT n Execute Port modules tests
791 NIA n Execute NIA module tests
792 LOOP n Execute Loopback tests
793 FUNCT n Execute Functional tests
794 031421 037 00 0 00 117417 m n Test m>
795
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 19
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0182
796 TMSGD <
797 TAKE Take cmds from file
798 NTAKE Take commands from file (unechoed)
799 DEBUG Enter port debugger
800 DIAMON Enter DIAMON
801 DDT Enter DDT
802 HELP Print this
803 EXIT Exit program
804
805 STATIS Print statistics
806 ZSTATS Clear statistics
807 ZCOUNT Clear counters
808 CONFIG Print configuration
809 ENABLE Enable specified tests
810 DISABL Disable specified tests
811 DISLIS List disabled tests
812 031422 037 00 0 00 117466 LIST List test descriptions>
813
814 TMSGD <
815 Switches: To complement switch, type switch name
816
817 SWITCH Enter switches
818 SWPRIN Print current switches
819
820 NOPNT ERSTOP TXTINH TRACE LOOPGM DSPEAR LDEBUG
821 PNTLPT PALERS OPRSEL INHFLT LOOPTS UDEBUG DDEBUG
822 031423 037 00 0 00 117614 DING RELIAB INHMSG RUNALL MDEBUG EDEBUG>
823 031424 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 20
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0183
824
825 ;#********************************************************************
826 ;* TSTDSA - Disable a test.
827 ;* TSTENA - Enable a test.
828 ;#********************************************************************
829
830 031425 402 00 0 00 134157' TSTDSA: SETZM ENATST# ; clear 'enable' flag
831 031426 200 00 0 00 117710 MOVE [FMSGCD (DISABL n1,n2, ... <CR>)]
832 031427 202 00 0 00 134247' MOVEM TMP1#
833 031430 254 00 0 00 031434 JRST TSTEN0 ; continue
834 031431 476 00 0 00 134157' TSTENA: SETOM ENATST# ; set 'enable' flag
835 031432 200 00 0 00 117714 MOVE [FMSGCD (ENABLE n1,n2, ... <CR>)]
836 031433 202 00 0 00 134247' MOVEM TMP1#
837 031434 336 00 0 00 031061* TSTEN0: SKIPN ARGFLG ; argument given?
838 JRST [FMSGCD <? Missing argument>
839 GO FIOFF
840 031435 254 00 0 00 117722 RTN]
841
842 ; Get an argument
843
844 031436 200 01 0 00 134247' TSTDS0: MOVE 1,TMP1 ; get help string
845 031437 260 17 0 00 000000* GO .OARG ; yes - get octal argument
846 031440 263 17 0 00 000000 RTN ; error/altmode/question - exit
847 031441 263 17 0 00 000000 RTN ; no more arguments
848 031442 333 01 0 00 031377* SKIPLE 1,ARGUM ; get argument
849 031443 303 01 0 00 000027 CAILE 1,MAXTST ; out of range?
850 JRST [FMSGC <? Test selected is not in range 1->
851 MOVEI MAXTST ; get range
852 PNTOCF ; print it
853 PCRLF
854 GO FIOFF
855 031444 254 00 0 00 117725 RTN]
856 031445 202 01 0 00 115576 MOVEM 1,TSTNUM ; save test number
857
858 ; Now perform the specified function
859
860 031446 200 02 0 01 032037 MOVE 2,TSTTAB(1) ; get test dispatch word
861 031447 332 00 0 00 134157' SKIPE ENATST ; 'enable' flag set?
862 031450 621 02 0 00 000100 TLZ 2,(TDENA) ; yes - clear 'disable' bit
863 031451 336 00 0 00 134157' SKIPN ENATST ; 'enable' flag set?
864 031452 661 02 0 00 000100 TLO 2,(TDENA) ; no - set 'disable' bit
865 031453 202 02 0 01 032037 MOVEM 2,TSTTAB(1) ; save test dispatch word
866 031454 254 00 0 00 031436 JRST TSTDS0 ; get next argument
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 21
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0184
867
868 ;#********************************************************************
869 ;* TSTDSL - List disabled tests
870 ;#********************************************************************
871
872 031455 200 01 0 00 117737 TSTDSL: MOVE 1,[FMSGCD (DISLIS <CR>)]
873 031456 260 17 0 00 031367* GO CHKARG ; check for argument
874 031457 263 17 0 00 000000 RTN ; error - exit
875 031460 402 00 0 00 115576 SETZM TSTNUM ; initialize test number
876 031461 400 06 0 00 000000 SETZ 6, ; count of tests printed
877 031462 350 01 0 00 115576 TSTDL0: AOS 1,TSTNUM ; point to next test
878 031463 303 01 0 00 000027 CAILE 1,MAXTST ; done yet?
879 JRST [PCRL ; yes - return
880 031464 254 00 0 00 117740 RTN]
881 031465 200 00 0 01 032037 MOVE TSTTAB(1) ; get test dispatch word
882 031466 607 00 0 00 000100 TLNN (TDENA) ; disabled?
883 031467 254 00 0 00 031462 JRST TSTDL0 ; no - try next test
884 031470 377 00 0 00 000006 SOSG 6 ; done with line yet?
885 GO [MOVEI 6,12 ; yes - reset counter and
886 PCRL ; print a blank line
887 031471 260 17 0 00 117742 RTN]
888 031472 037 00 0 00 117745 TMSG <TST>
889 031473 200 00 0 00 115576 MOVE TSTNUM ; get test number
890 031474 037 16 0 00 000003 PNTOCS ; print it
891 031475 037 00 0 00 000040 PSP
892 031476 254 00 0 00 031462 JRST TSTDL0 ; continue
893
894
895 ;#********************************************************************
896 ;* TSTPRI - Print statistics
897 ;#********************************************************************
898
899 031477 200 01 0 00 117752 TSTPRI: MOVE 1,[FMSGCD (STATIS <CR>)]
900 031500 260 17 0 00 031456* GO CHKARG ; check for argument
901 031501 263 17 0 00 000000 RTN ; error - exit
902 031502 260 17 0 00 043571 GO SREPOR ; go print statistics
903 031503 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 22
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0185
904
905 ;#********************************************************************
906 ;* TSTSWI/TSTSWP - Input switches / Print switch selections
907 ;#********************************************************************
908
909 031504 200 01 0 00 117757 TSTSWI: MOVE 1,[FMSGCD (SWITCH <CR>)]
910 031505 260 17 0 00 031500* GO CHKARG ; check for argument
911 031506 263 17 0 00 000000 RTN ; error - exit
912 031507 260 17 0 00 000000* GO .ISWT ; input switches
913 031510 263 17 0 00 000000 RTN ; ask for a test
914
915 031511 200 01 0 00 117764 TSTSWP: MOVE 1,[FMSGCD (SWPRIN <CR>)]
916 031512 260 17 0 00 031505* GO CHKARG ; check for argument
917 031513 263 17 0 00 000000 RTN ; error - exit
918 031514 260 17 0 00 000000* GO .SWCHP ; print switches
919 031515 263 17 0 00 000000 RTN ; ask for a test
920
921
922 ;#********************************************************************
923 ;* TSTSSW - Switch complement commands
924 ;#********************************************************************
925
926 031516 200 01 0 00 117772 TSTSSW: MOVE 1,[FMSGCD (Switch Name <CR>)]
927 031517 260 17 0 00 031512* GO CHKARG ; check for argument
928 031520 263 17 0 00 000000 RTN ; error - exit
929 031521 200 01 0 00 000000* MOVE 1,.CGOT ; get dispatch number
930 031522 275 01 0 00 000027 SUBI 1,SWSTT ; normalize to 0..
931 031523 260 17 0 00 000000* GO SWCOM ; complement switch
932 031524 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 23
DFNIA1 MAC 18-Feb-84 20:30 Test/Command Selection SEQ 0186
933
934 ;#********************************************************************
935 ;* TSTTAK - Take commands from a file
936 ;* TSTTAN - Take commands from a file without echoing results
937 ;
938 ; This works by reading commands from a file as if they were being
939 ; typed to the diagnostic directly. Either end of file or the first
940 ; occurrence of an error halts this procedure.
941 ;#********************************************************************
942
943 031525 402 00 0 00 134160' TSTTAN: SETZM FINECH ; clear echo switch
944 031526 334 00 0 00 000000 SKIPA ; continue
945 031527 476 00 0 00 134160' TSTTAK: SETOM FINECH ; set echo switch
946 031530 200 01 0 00 120003 MOVE 1,[FMSGCD (TAKE <CR> or TAKE Fname Ext <CR>)]
947 031531 260 17 0 00 031374* GO .SARG ; get SIXBIT argument
948 031532 263 17 0 00 000000 RTN ; error/altmode/question - exit
949 031533 254 00 0 00 031544 JRST TSTTA0 ; no more arguments
950 031534 200 01 0 00 031442* MOVE 1,ARGUM ; get argument
951 031535 202 01 0 00 031561 MOVEM 1,TAKFIL ; save file name
952 031536 210 01 0 00 120003 MOVN 1,[FMSGCD (TAKE <CR> or TAKE Fname Ext <CR>)]
953 031537 260 17 0 00 031531* GO .SARG ; get SIXBIT argument
954 031540 263 17 0 00 000000 RTN ; error/altmode/question - exit
955 031541 254 00 0 00 031544 JRST TSTTA0 ; no more arguments
956 031542 200 01 0 00 031534* MOVE 1,ARGUM ; get argument
957 031543 202 01 0 00 031562 MOVEM 1,TAKFIL+1 ; save file name extension
958
959 ; Now start reading the file specified
960
961 031544 260 17 0 00 031115* TSTTA0: GO FIOFF ; shut off previous file input
962 031545 201 00 0 00 031561 MOVEI TAKFIL ; point to file name buffer
963 031546 037 05 0 00 000004 FSELECT ; init the file
964 JRST [FMSGC <? Can't access ">
965 MOVE TAKFIL ; get file name
966 PNTSXF ; print it
967 PNTCIF "."
968 MOVE TAKFIL+1 ; get extension
969 PNTSXF ; print it
970 FMSGD <" on selected load device.>
971 031547 254 00 0 00 120016 RTN]
972 031550 037 01 0 00 120026 FMSGC <[File input from: >
973 031551 200 00 0 00 031561 MOVE TAKFIL ; get the selected file name
974 031552 037 01 0 00 000002 PNTSXF ; print it
975 031553 037 01 0 00 000056 PNTCIF "."
976 031554 200 00 0 00 031562 MOVE TAKFIL+1 ; get the extension of file
977 031555 037 01 0 00 000002 PNTSXF ; print it
978 031556 037 01 0 00 120033 FMSGD <]>
979 031557 476 00 0 00 134161' SETOM FINPUT ; set 'file input' flag
980 031560 263 17 0 00 000000 RTN ; exit
981
982 ; File name
983
984 031561 44 46 56 51 41 00 TAKFIL: SIXBIT /DFNIA/
985 031562 43 55 44 00 00 00 SIXBIT /CMD/
986
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 24
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0187
987 SUBTTL Test Dispatching
988
989 ;#********************************************************************
990 ;* TSTSPC - Run only one test
991 ;#********************************************************************
992
993 031563 201 00 0 00 032003 TSTSPC: MOVEI TSTALT ; set up altmode transfer address
994 031564 202 00 0 00 030063 MOVEM ALTMGO ; to exit IPA testing
995 031565 402 00 0 00 115603 SETZM TSTREP ; clear pass count
996 031566 260 17 0 00 031120* GO SWITT ; get program switches
997 031567 602 00 0 00 020000 TRNE LOOPTS ; loop on test?
998 JRST [HRLEI 377777 ; yes - get 'infinite' repeat count
999 031570 254 00 0 00 120034 JRST .+2]
1000 031571 201 00 0 00 000001 MOVEI 1 ; no - set repeat count requested
1001 031572 202 00 0 00 115604 MOVEM TSTREQ ; to 1 pass
1002 031573 402 00 0 00 115605 SETZM TSTMUL ; clear multiple test flag
1003 031574 336 00 0 00 031434* SKIPN ARGFLG ; argument given?
1004 031575 254 00 0 00 031604 JRST TSTSP0 ; no - do the test
1005 031576 210 01 0 00 120043 MOVN 1,[FMSGCD (n RepeatCount <CR>)]
1006 031577 260 17 0 00 031303* GO .DARG ; yes - get repeat count argument
1007 031600 263 17 0 00 000000 RTN ; error/altmode/question - exit
1008 031601 334 00 0 00 000000 SKIPA ; no argument given
1009 031602 200 00 0 00 031542* MOVE ARGUM ; get argument
1010 031603 202 00 0 00 115604 MOVEM TSTREQ ; save it
1011 031604 476 00 0 00 031574* TSTSP0: SETOM ARGFLG ; remember that we had an argument
1012 031605 254 00 0 00 031716 JRST TSTD3 ; do the test
1013
1014
1015 ;#********************************************************************
1016 ;* RANGEN - Random number generator
1017 ;#********************************************************************
1018
1019 031606 261 17 0 00 000001 RANGEN: RPUT (1,2) ; save AC's
1020
1021 031610 200 01 0 00 134222' MOVE 1,RANNUM# ; get base number
1022 031611 270 01 0 00 030022 ADD 1,RANDBS ; modify number in AC1
1023 031612 241 01 0 00 777774 ROT 1,-4 ; to create a new number
1024 031613 447 01 0 00 134222' EQVB 1,RANNUM ; put result in AC1 and RANNUM
1025 031614 405 01 0 00 007777 ANDI 1,7777 ; save only 4 digits
1026 031615 220 01 0 17 777777 IMUL 1,-1(P) ; obtain (0..n-1)*10000
1027 031616 242 01 0 00 777764 LSH 1,-^D12 ; obtain 0..n-1
1028 031617 350 00 0 00 000001 AOS 1 ; obtain 1..n
1029 031620 313 01 0 17 777777 CAMLE 1,-1(P) ; in range?
1030 031621 200 01 0 17 777777 MOVE 1,-1(P) ; no - force it to be
1031 031622 250 01 0 17 777777 EXCH 1,-1(P) ; set up returned argument
1032 031623 262 17 0 00 000002 RGET (2,1) ; restore AC's
1033
1034 031625 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 25
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0188
1035
1036 ;#********************************************************************
1037 ; TSTRAN - Run tests randomly
1038 ;#********************************************************************
1039
1040 031626 201 00 0 00 031647 TSTRAN: MOVEI TSTRAA ; set up altmode transfer address
1041 031627 202 00 0 00 030063 MOVEM ALTMGO ; to exit port testing
1042 031630 402 00 0 00 115603 SETZM TSTREP ; clear pass count
1043 031631 201 00 0 00 000001 MOVEI 1 ; set repeat count requested
1044 031632 202 00 0 00 115604 MOVEM TSTREQ ; to 1 pass
1045 031633 402 00 0 00 115605 SETZM TSTMUL ; clear multiple test flag
1046 031634 402 00 0 00 134221' SETZM RANCNT# ; initialize test count
1047 031635 400 03 0 00 000000 SETZ 3, ; set up a base number using the
1048 031636 260 17 0 00 030763* GO RUNTME ; program run time and save
1049 031637 200 00 0 00 000000* MOVE CURTIM ; it in RANNUM
1050 031640 202 00 0 00 134222' MOVEM RANNUM
1051
1052 ; Determine test to run
1053
1054 031641 201 01 0 00 000027 TSTRA0: MOVEI 1,MAXTST ; get range 1..MAXTST
1055 031642 260 17 0 00 031606 GO RANGEN ; get a random number (in AC1)
1056 031643 202 01 0 00 115576 MOVEM 1,TSTNUM ; save test number
1057 031644 260 17 0 00 031716 GO TSTD3 ; do the test
1058 031645 350 01 0 00 134221' AOS 1,RANCNT ; increment test count
1059 031646 254 00 0 00 031641 JRST TSTRA0 ; keep looping
1060
1061 ; Altmode exit
1062
1063 031647 037 01 0 00 120044 TSTRAA: FMSGC <[Testing aborted after >
1064 031650 200 00 0 00 134221' MOVE RANCNT ; get test count
1065 031651 037 15 0 00 000001 PNTDCF ; print it
1066 031652 037 01 0 00 120052 FMSG <. tests]>
1067 031653 262 17 0 00 134261' GET XXX# ; pop off extra item
1068 031654 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 26
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0189
1069
1070 ;#********************************************************************
1071 ;* TSTDIS - Dispatch to the tests
1072 ;#********************************************************************
1073
1074 ; Set up flags, defaults, etc.
1075
1076 031655 201 00 0 00 032003 TSTDIS: MOVEI TSTALT ; set up altmode transfer address
1077 031656 202 00 0 00 030063 MOVEM ALTMGO ; to exit port testing
1078 031657 402 00 0 00 115603 SETZM TSTREP ; clear pass count
1079 031660 402 00 0 00 115604 SETZM TSTREQ ; set repeat count requested to 1
1080 031661 350 00 0 00 115604 AOS TSTREQ ; pass
1081 031662 476 00 0 00 115605 SETOM TSTMUL ; set multiple test flag
1082 031663 402 00 0 00 115576 SETZM TSTNUM ; initialize test number
1083 031664 336 00 0 00 031604* SKIPN ARGFLG ; argument given?
1084 031665 254 00 0 00 031675 JRST TSTD0 ; no - do the tests
1085 031666 210 01 0 00 120061 MOVN 1,[FMSGCD (CMD RepeatCount <CR>)]
1086 031667 260 17 0 00 031577* GO .DARG ; yes - get repeat count argument
1087 031670 263 17 0 00 000000 RTN ; error/altmode/question - exit
1088 031671 334 00 0 00 000000 SKIPA ; no argument given
1089 031672 200 00 0 00 031602* MOVE ARGUM ; get argument
1090 031673 202 00 0 00 115604 MOVEM TSTREQ ; save it
1091 031674 476 00 0 00 031664* SETOM ARGFLG ; remember that we had an argument
1092
1093 ; If OPRSEL switch is not set then all tests are run.
1094
1095 031675 402 00 0 00 032151 TSTD0: SETZM TSTRES ; clear first word
1096 031676 200 00 0 00 120062 MOVE [TSTRES,,TSTRES+1] ; build BLT pointer
1097 031677 251 00 0 00 032230 BLT TSTRES+57 ; clear the results
1098 031700 260 17 0 00 031566* GO SWITT ; get the pgm switches
1099 031701 607 00 0 00 000010 TLNN OPRSEL ; OPRSEL set?
1100 031702 254 00 0 00 031716 JRST TSTD3 ; no - go run all of them
1101
1102 ; Handle pass count
1103
1104 031703 200 00 0 00 115604 TSTD1: MOVE TSTREQ ; get argument typed
1105 031704 332 00 0 00 031674* SKIPE ARGFLG ; any argument given?
1106 031705 254 00 0 00 031715 JRST TSTD2 ; yes - skip over this question
1107 031706 332 00 0 00 134161' SKIPE FINPUT ; file input switch set?
1108 JRST [MOVEI 1 ; yes - default to 1 iteration
1109 031707 254 00 0 00 120063 JRST TSTD2]
1110 031710 037 01 0 00 120065 FMSGC <How many passes? (CR to loop forever) - >
1111 031711 037 04 0 00 000003 TTIDEC
1112 031712 007 00 0 00 031703 ALTCHK TSTD1
1113 031713 336 00 0 00 030510 SKIPN TTNBRF ; CR typed?
1114 031714 200 00 0 00 120076 MOVE [377777,,777777] ; yes - loop forever
1115 031715 202 00 0 00 115604 TSTD2: MOVEM TSTREQ ; save count
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 27
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0190
1116
1117 ; Save test number selection for multiple pass use
1118
1119 031716 200 00 0 00 115576 TSTD3: MOVE TSTNUM ; get test number
1120 031717 202 00 0 00 134235' MOVEM SAVNUM# ; save test number
1121 031720 476 00 0 00 115611 SETOM PMODE ; set program mode to 'test'
1122
1123 ; Initialize test number at beginning of pass
1124
1125 031721 200 00 0 00 134235' TSTD4: MOVE SAVNUM ; get test number
1126 031722 202 00 0 00 115576 MOVEM TSTNUM ; save test number
1127 031723 260 17 0 00 031700* GO SWITT ; get the pgm switches
1128 031724 201 01 0 00 000001 MOVEI 1,1 ; initialize repeat count
1129 031725 603 00 0 00 000400 TLNE RELIAB ; reliability switch set?
1130 031726 201 01 0 00 000004 MOVEI 1,4 ; yes - set up count of 4
1131 031727 202 01 0 00 115607 MOVEM 1,TSTREL ; save it
1132
1133 ; Now actually do the tests
1134
1135 031730 200 00 0 00 115607 TSTD5: MOVE TSTREL ; get reliability count
1136 031731 202 00 0 00 115610 MOVEM TSTCNT ; save it
1137 031732 350 01 0 00 115576 AOS 1,TSTNUM ; point to next test
1138 031733 303 01 0 00 000027 CAILE 1,MAXTST ; end of tests?
1139 031734 254 00 0 00 031770 JRST TSTD9 ; yes - handle
1140 031735 200 16 0 00 115612 TSTD6: MOVE MBCN,NIPORT ; valid test - set up MBCN
1141 031736 200 02 0 01 032037 MOVE 2,TSTTAB(1) ; get test dispatch word
1142 031737 512 02 0 00 115601 HLLZM 2,TSTFLG ; set up test flags
1143 031740 552 02 0 00 115600 HRRZM 2,TSTPC ; set up test PC
1144 031741 402 00 0 00 134254' SETZM TXADDL ; clear 'addl text' routine address
1145 031742 402 00 0 00 066700 SETZM IQFUL ; clear number of times freeq empty
1146 031743 201 00 0 00 000100 MOVEI 100 ; set up minumum number of
1147 031744 202 00 0 00 066701 MOVEM IQFMIN ; entries on the free queue
1148 031745 402 00 0 00 066702 SETZM IQCMAX ; clear maximum entries on cmd queue
1149
1150 ; Verify that test should be run
1151
1152 031746 200 02 0 00 115602 MOVE 2,TSTMSK ; get test mask
1153 031747 332 00 0 00 115605 SKIPE TSTMUL ; multiple passes?
1154 031750 612 02 0 00 115601 TDNE 2,TSTFLG ; valid test to execute?
1155 031751 260 17 1 00 115600 GO @TSTPC ; yes - dispatch to test
1156
1157 ; Dispatch is done - now check altmode
1158
1159 031752 332 00 0 00 134143' TSTD7: SKIPE ALTF ; 'altmode typed' flag set?
1160 031753 254 00 1 00 030063 JRST @ALTMGO ; yes - exit
1161 031754 037 07 0 00 000003 TTALTM ; altmode typed?
1162 031755 334 00 0 00 000000 SKIPA ; no - continue
1163 031756 254 00 1 00 030063 JRST @ALTMGO ; yes - exit thru $ transfer address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 28
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0191
1164
1165 ; Loop till reliability count expired
1166
1167 031757 373 00 0 00 115610 SOSLE TSTCNT ; decrement reliability count
1168 031760 254 00 0 00 031735 JRST TSTD6 ; loop till done
1169 031761 332 00 0 00 030037 TSTD8: SKIPE USER ; user mode?
1170 031762 254 00 0 00 031766 JRST .+4 ; yes - continue
1171 031763 260 17 0 00 031723* GO SWITT ; get switches
1172 031764 603 00 0 00 200000 TLNE RSTART ; RSTART switch set?
1173 031765 254 00 0 00 030611 JRST START ; yes - restart the diagnostic
1174 031766 332 00 0 00 115605 SKIPE TSTMUL ; multiple tests being done?
1175 031767 254 00 0 00 031730 JRST TSTD5 ; yes - do next test
1176
1177 ; Now bump pass count
1178
1179 031770 350 01 0 00 115603 TSTD9: AOS 1,TSTREP ; increment pass count
1180 031771 332 00 0 00 115605 SKIPE TSTMUL ; multiple test flag set?
1181 031772 260 17 0 00 032021 GO TSTEOP ; yes - print end of pass message
1182 031773 260 17 0 00 031763* GO SWITT ; get switches
1183 031774 336 00 0 00 030037 SKIPN USER ; user mode?
1184 031775 607 00 0 00 400000 TLNN ABORT ; abort switch set?
1185 031776 334 00 0 00 000000 SKIPA ; no - continue (or user mode)
1186 031777 263 17 0 00 000000 RTN ; exit
1187 032000 373 00 0 00 115604 SOSLE TSTREQ ; passes all done?
1188 032001 254 00 0 00 031721 JRST TSTD4 ; no - keep looping
1189 032002 263 17 0 00 000000 RTN ; exit
1190
1191 ; Altmode transfer code
1192
1193 032003 037 01 0 00 120077 TSTALT: FMSGC <[Testing aborted>
1194 032004 336 00 0 00 115603 SKIPN TSTREP ; zero passes?
1195 032005 254 00 0 00 032012 JRST TSTAL0 ; yes - don't print how many
1196 032006 037 01 0 00 120103 FMSG < after >
1197 032007 200 00 0 00 115603 MOVE TSTREP ; get pass count
1198 032010 037 15 0 00 000001 PNTDCF ; print it
1199 032011 037 01 0 00 120105 FMSG <. passes>
1200 032012 037 01 0 00 120033 TSTAL0: FMSGD <]>
1201 032013 260 17 0 00 031544* GO FIOFF ; clear 'file input' switch
1202 032014 476 00 0 00 134143' SETOM ALTF ; set altmode typed flag
1203 032015 260 17 0 00 031773* GO SWITT ; get program switches
1204 032016 607 00 0 00 000010 TLNN OPRSEL ; OPRSEL switch set?
1205 032017 254 00 0 00 031332 JRST TSTDIA ; no - exit to DIAMON
1206 032020 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 29
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0192
1207
1208 ; End of pass message
1209
1210 032021 260 17 0 00 032015* TSTEOP: GO SWITT ; get switches
1211 032022 607 00 0 00 000010 TLNN OPRSEL ; operator select?
1212 032023 263 17 0 00 000000 RTN ; no - don't print end of pass
1213 032024 332 00 0 00 134156' SKIPE EDEBUG ; expanded data switch set?
1214 GO [TMSG <Port-> ; yes - print what port
1215 LDB [POINT 3,MBCN,9]; this is
1216 PNT2
1217 PSP
1218 032025 260 17 0 00 120112 RTN]
1219 032026 037 00 0 00 120117 TMSG <End Pass > ; print pass count
1220 032027 200 00 0 00 115603 MOVE TSTREP
1221 032030 037 15 0 00 000000 PNTDEC
1222 032031 037 00 0 00 117043 TMSG <. at >
1223 032032 402 00 0 00 030761* SETZM FORPNT ; clear force print
1224 032033 200 03 0 00 117045 MOVE 3,[JFCL] ; set up timer routine
1225 032034 260 17 0 00 031636* GO RUNTME ; print current time
1226 032035 037 00 0 00 030242 PCRL
1227 032036 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 30
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0193
1228
1229 ; Table of test names and flags
1230
1231 032037 000000 000000 TSTTAB: 0
1232 032040 000000000000# PORT!TST1 ; 1
1233 032041 000000000000# PORT!TST2 ; 2
1234 032042 000000000000# PORT!TST3 ; 3
1235 032043 000000000000# FUNCT!TST4 ; 4
1236 032044 000000000000# FUNCT!TST5 ; 5
1237 032045 000000000000# NIA!TST6 ; 6
1238 032046 000000000000# NIA!TST7 ; 7
1239 032047 000000000000# NIA!TST10 ; 10
1240 032050 000000000000# NIA!TST11 ; 11
1241 032051 000000000000# LOOP!TST12 ; 12
1242 032052 000000000000# LOOP!TST13 ; 13
1243 032053 000000000000# LOOP!TST14 ; 14
1244 032054 000000000000# FUNCT!TST15 ; 15
1245 032055 000000000000# FUNCT!TST16 ; 16
1246 032056 000000000000# FUNCT!TST17 ; 17
1247 032057 000000000000# FUNCT!TST20 ; 20
1248 032060 000000000000# FUNCT!TST21 ; 21
1249 032061 000000000000# FUNCT!TST22 ; 22
1250 032062 000000000000# FUNCT!TST23 ; 23
1251 032063 000000000000# FUNCT!TST24 ; 24
1252 032064 000000000000# FUNCT!TST25 ; 25
1253 032065 000000000000# FUNCT!TST26 ; 26
1254 032066 000000000000# LOOP!TST27 ; 27
1255 032067 000000 000000 TSTMAX: 0
1256
1257 ; Table of address of test microcode
1258
1259 032070 000000 000000 TSTMIC: 0
1260 032071 000000 000000 0 ; 1
1261 032072 000000000000# T2M ; 2
1262 032073 000000000000# T3M ; 3
1263 032074 000000 000000 0 ; 4
1264 032075 000000 000000 0 ; 5
1265 032076 000000 000000 0 ; 6
1266 032077 000000 000000 0 ; 7
1267 032100 000000 000000 0 ; 10
1268 032101 000000 000000 0 ; 11
1269 032102 000000 000000 0 ; 12
1270 032103 000000 000000 0 ; 13
1271 032104 000000 000000 0 ; 14
1272 032105 000000 000000 0 ; 15
1273 032106 000000 000000 0 ; 16
1274 032107 000000 000000 0 ; 17
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 31
DFNIA1 MAC 18-Feb-84 20:30 Test Dispatching SEQ 0194
1275 032110 000000 000000 0 ; 20
1276 032111 000000 000000 0 ; 21
1277 032112 000000 000000 0 ; 22
1278 032113 000000 000000 0 ; 23
1279 032114 000000 000000 0 ; 24
1280 032115 000000 000000 0 ; 25
1281 032116 000000 000000 0 ; 26
1282 032117 000000 000000 0 ; 27
1283
1284 ; Test names
1285
1286 032120 000000 000000 TSTNAM: 0
1287 032121 037 00 0 00 120121 TMSG <Port Hardware Test 1> ; 1
1288 032122 037 00 0 00 120126 TMSG <Port Hardware Test 2> ; 2
1289 032123 037 00 0 00 120133 TMSG <Port Hardware Test 3> ; 3
1290 032124 037 00 0 00 120140 TMSG <Idle Loop Test> ; 4
1291 032125 037 00 0 00 120143 TMSG <Queue Handling Test> ; 5
1292 032126 037 00 0 00 120147 TMSG <NSA ROM Address Test> ; 6
1293 032127 037 00 0 00 120154 TMSG <NSA RAM Address Test> ; 7
1294 032130 037 00 0 00 120161 TMSG <CRC Test 1> ; 10
1295 032131 037 00 0 00 120164 TMSG <CRC Test 2> ; 11
1296 032132 037 00 0 00 120167 TMSG <Non-BSD Datagram Loopback Test>; 12
1297 032133 037 00 0 00 120176 TMSG <BSD Datagram Loopback Test 1> ; 13
1298 032134 037 00 0 00 120204 TMSG <BSD Datagram Loopback Test 2> ; 14
1299 032135 037 00 0 00 120212 TMSG <Multicast Table Test 1> ; 15
1300 032136 037 00 0 00 120217 TMSG <Multicast Table Test 2> ; 16
1301 032137 037 00 0 00 120224 TMSG <Multicast Table Test 3> ; 17
1302 032140 037 00 0 00 120231 TMSG <Broadcast Test 3> ; 20
1303 032141 037 00 0 00 120235 TMSG <PTT Table Test 1> ; 21
1304 032142 037 00 0 00 120241 TMSG <PTT Table Test 2> ; 22
1305 032143 037 00 0 00 120245 TMSG <PTT Table Test 3> ; 23
1306 032144 037 00 0 00 120251 TMSG <PAD Flag Bit Test 1> ; 24
1307 032145 037 00 0 00 120255 TMSG <PAD Flag Bit Test 2> ; 25
1308 032146 037 00 0 00 120261 TMSG <Configuration Test> ; 26
1309 032147 037 00 0 00 120265 TMSG <Statistics Test> ; 27
1310 032150 000000 000000 0
1311
1312 032151 TSTRES: BLOCK 60 ; test results
1313
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 32
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0195
1314 SUBTTL Port Debugger
1315
1316 ;#*********************************************************************
1317 ;* TSTDEB - Console command utility for the port.
1318 ;
1319 ; Command Action
1320 ; ------- ------
1321 ; ? Print list of commands available.
1322 ;
1323 ; HELP Print list of commands and description.
1324 ; EXIT Exit debugger mode and go back to 'What Test' level.
1325 ; DDT Enter DDT.
1326 ;
1327 ; TAKE Take commands from specified file
1328 ; NTAKE Take commands from specified file (unechoed)
1329 ;
1330 ; SET ADDR adr Set start address
1331 ; CSR data Set start CSR data
1332 ; PARITY arg* Set/clr auto par generation
1333 ; EBUF arg* Set/clr preserve EBUF flag
1334 ; PCB arg* Set/clr PCB CCW list for START
1335 ; FNAME nm ext Set default ucode file name
1336 ; PAT n Set data pattern
1337 ; PATLIS arg List data patterns
1338 ; RESPON arg* Set/clr forced response
1339 ; FORMAT arg Set format (COMPAT or HIDEN)
1340 ; BSD arg Set BSD style datagram
1341 ; LENGTH len Set text length
1342 ; DADDR n1,n2 Set destination address
1343 ; SADDR n1,n2 Set self address
1344 ; PTTVAL arg Set PTT value
1345 ; PRINT adr Set text length to print
1346 ; INTERV sec Interval (seconds)
1347 ; SUMMAR sec Summary interval (seconds)
1348 ; WHAT Print options
1349 ; HELP Set help message
1350 ;
1351 ; ECSR Print contents of the CSR register (in octal).
1352 ; DCSR arg Change the contents of the CSR registers.
1353 ; ZCSR Clear CSR register.
1354 ;
1355 ; RESET Issue an EBUS reset.
1356 ; CLEAR Issue a 'Clear Port'.
1357 ;
1358 ; START adr Start port microcode by setting CSR Bit 21 'MPROC Run'.
1359 ; If address is supplied, start at that address; if no
1360 ; address is supplied, start at location 0.
1361 ;
1362 ; STOP Stop port microcode by clearing CSR Bit 21 'MPROC Run'.
1363 ; Report the last CRAM address also.
1364 ;
1365 ; CONT Clear the single step bit and set 'MPROC Run' in the port.
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 33
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0196
1366
1367 ; Response Action
1368 ; -------- ------
1369 ; SSTEP arg Single step the port microcode 'ARG' times. Report
1370 ; final CRAM address.
1371 ;
1372 ; STRACE arg Single step the port microcode 'ARG' times. Report
1373 ; the CRAM address and CSR register contents after each
1374 ; micro-instruction.
1375 ;
1376 ; SPRINT arg Print single step history data, 'ARG' entries.
1377 ; SCLEAR Clear single step history data.
1378 ; SSINIT Initialize single step data
1379 ;
1380 ; EEBUF Print contents of EBUF register.
1381 ; DEBUF arg Deposit data to EBUF register.
1382 ; ZEBUF Zero EBUF register.
1383 ;
1384 ; ELAR Print contents of LAR register.
1385 ; DRAR arg Deposit data to RAR register.
1386 ; ZRAR Zero RAR register.
1387 ;
1388 ; DCRAM adr,adr Deposit data into port CRAM addresses specified by 'adr1'
1389 ; and 'adr2'. The data will be queried for each address.
1390 ; The port microcode must be stopped.
1391 ;
1392 ; BCRAM adr,adr Deposit data as above, data is queried by bit field.
1393 ;
1394 ; ACRAM adr,adr Alter CRAM locations, addresses selected as above.
1395 ;
1396 ; ECRAM adr,adr Examine port CRAM addresses. 'Adr1' and 'adr2' specify
1397 ; examine limits. The port microcode must be stopped.
1398 ;
1399 ; LCRAM adr,adr List port CRAM addresses. 'Adr1' and 'adr2' specify
1400 ; examine limits. The port microcode must be stopped.
1401 ;
1402 ; ZCRAM adr,adr Zero port CRAM addresses. 'Adr1' and 'adr2' specify
1403 ; examine limits. The port microcode must be stopped.
1404 ;
1405 ; ELOCS adr,adr Examine local storage contents
1406 ; DLOCS adr,adr Deposit local storage contents
1407 ; ZLOCS adr,adr Zero local storage contents
1408 ;
1409 ; E2901 adr,adr Examine 2901 registers
1410 ; D2901 adr,data Deposit 2901 registers
1411 ; Z2901 adr,adr Zero 2901 registers
1412 ;
1413 ; MARK adr.. Set mark bit in CRAM locations
1414 ; RMARK adr.. Remove mark bit at CRAM address 'adr'
1415 ; CMARK adr,adr Clear mark bit in CRAM locations
1416 ; LMARK List locations with mark bit set
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 34
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0197
1417
1418 ; Response Action
1419 ; -------- ------
1420 ; BREAK adr.. Set a breakpoint at port CRAM address
1421 ; RBREAK adr.. Remove breakpoint at port CRAM address 'adr'
1422 ; CBREAK adr,adr Clear all breakpoints
1423 ; LBREAK adr,adr List breakpoints
1424 ;
1425 ; LOAD arg Load microcode into CRAM from a test. 'Arg' specifies
1426 ; the test number.
1427 ; LIST arg List microcode of a test. 'Arg' specifies the test
1428 ; number.
1429 ;
1430 ; FLOAD Load microcode from disk file into CRAM.
1431 ; FVERFY Verify microcode loaded.
1432 ; FLIST List microcode on disk file.
1433 ; FEXAM Examine microcode on disk file.
1434 ;
1435 ; TRANSL arg Translate given CSR bits to English.
1436 ; CCODE Print current status of condition codes.
1437 ; ESTACK Examine 2910 stack contents
1438 ;
1439 ; FILLNX arg Fill CRAM with data as 'J=.+1,CTL=x', where 'x' is given.
1440 ; FILLPC arg Fill CRAM with data as 'J=.,CTL=x', where 'x' is given.
1441 ;
1442 ; IPRINT Print interrupt history
1443 ; ICLEAR Clear interrupt history
1444 ; IINIT Initialize interrupt system
1445 ;
1446 ; STATIS Print statistics
1447 ; ZSTATS Clear statistics
1448 ; ZCOUNT Clear counters
1449 ; CONFIG Print system configuration
1450 ;
1451 ; CCWPNT Print CCW list
1452 ; LOGPNT Print logout data
1453 ;
1454 ; PINIT Initialize PCB
1455 ; SIDLE Start port until reach IDLE loop
1456 ; BPACK Build a packet
1457 ; IQUEUE Put packet on cmd queue
1458 ; PQUEUE Print contents of a queue
1459 ; PPCB Print PCB
1460 ; WATCH Watch port and print events
1461 ;
1462 ; DEPPTT Deposit into PTT table
1463 ; DEPMUL Deposit into Multicast address table
1464 ; DEPPAK Deposit into packet
1465 ;
1466 ; DPLI lnk,data Deposit data to PLI
1467 ; EPLI lnk,reg Read PLI data
1468 ;
1469 ; ETBUFF Read transmit buffers
1470 ; ERBUFF Read receive buffers
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 35
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0198
1471
1472 ; Switches: To complement switch, type switch name
1473 ;
1474 ; SWITCH Enter switches
1475 ; SWPRIN Print current switches
1476 ;
1477 ; NOPNT LOOPER RELIAB TRACE LOOPGM DSPEAR LDEBUG
1478 ; PNTLPT ERSTOP TXTINH INHFLT LOOPTS UDEBUG DDEBUG
1479 ; DING PALERS OPRSEL INHMSG RUNALL MDEBUG EDEBUG
1480 ;
1481 ; Common Error Messages For 'DEBUG' Mode:
1482 ;
1483 ; "? Missing argument" - Response to "DEBUG>" prompt expects a command
1484 ; plus an argument.
1485 ;
1486 ; "? Argument Error" - An attempt was made to decode an octal or decimal
1487 ; argument. It was undecipherable.
1488 ;
1489 ; "? Range nonsensical" - The beginning address is greater than ending
1490 ; address.
1491 ;
1492 ; "? Range of CRAM locations is 0000-7777" - Argument(s) typed were not
1493 ; in range.
1494 ;
1495 ; "? Port not stopped" - An operation requiring the port to be stopped
1496 ; was issued when 'MPROC Run' was set.
1497 ;
1498 ; "? Port not running" - A function was issued to the port when it was
1499 ; stopped. It should have been running.
1500 ;
1501 ; "? Error accessing CSR registers" - A read of CSR register failed.
1502 ;
1503 ; "? Test specified does not have microcode" - An attempt to load ucode
1504 ; from this test failed because the test doesn't have any.
1505 ;
1506 ; "? Unrecognized command" - Unrecognized command entered.
1507 ;#********************************************************************
1508
1509 032231 200 01 0 00 120274 TSTDEB: MOVE 1,[FMSGCD (DEBUG <CR>)]
1510 032232 260 17 0 00 031517* GO CHKARG ; check for argument
1511 032233 263 17 0 00 000000 RTN ; error - exit
1512 032234 202 17 0 00 134232' MOVEM P,SAVCMD# ; save PC
1513
1514 ; Initialize things
1515
1516 032235 402 00 0 00 134213' CMD0: SETZM PCMD# ; clear the command storage
1517 032236 400 15 0 00 000000 SETZ ERFLG, ; clear error flag
1518 032237 201 00 0 00 303240 MOVEI ^D100000 ; re-set up print limit just in case
1519 032240 212 00 0 00 030220 MOVNM PNTENB ; the last test exceeded it
1520 032241 200 16 0 00 115612 MOVE MBCN,NIPORT ; set up MBCN register properly
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 36
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0199
1521
1522 ; Set/clear debug switches
1523
1524 032242 402 00 0 00 134255' SETZM UDEBUG ; clear no-IPA user mode debug switch
1525 032243 402 00 0 00 134172' SETZM MDEBUG ; clear error message debug switch
1526 032244 402 00 0 00 134166' SETZM LDEBUG ; clear ucode load debug switch
1527 032245 402 00 0 00 134151' SETZM DDEBUG ; clear dump on error debug switch
1528 032246 260 17 0 00 032021* GO SWITT ; get switches
1529 032247 602 00 0 00 002000 TRNE DEBUG1 ; debug switch set?
1530 032250 476 00 0 00 134255' SETOM UDEBUG ; set no-IPA user mode debug switch
1531 032251 602 00 0 00 001000 TRNE DEBUG2 ; debug switch set?
1532 032252 476 00 0 00 134172' SETOM MDEBUG ; set error message debug switch
1533 032253 602 00 0 00 000400 TRNE DEBUG3 ; debug switch set?
1534 032254 476 00 0 00 134166' SETOM LDEBUG ; set ucode load debug switch
1535 032255 602 00 0 00 000200 TRNE DEBUG4 ; debug switch set?
1536 032256 476 00 0 00 134151' SETOM DDEBUG ; set dump on error debug switch
1537 032257 402 00 0 00 115611 SETZM PMODE ; set program mode to 'no test'
1538 032260 402 00 0 00 134174' SETZM MULFLG ; clear 'multiple examine' flag
1539 032261 476 00 0 00 134175' SETOM MULINI ; set 'initial examine' flag
1540 032262 402 00 0 00 134254' SETZM TXADDL ; clear 'addl text' routine address
1541
1542 ; Input command
1543
1544 032263 260 17 0 00 031005* GO CLRBUF ; clear input buffer
1545 032264 260 17 0 00 000000* CMD1: GO .INPNT ; print interrupt fielded (if any)
1546 MOVEI [PCRL ; set up $ transfer address
1547 SETZM ALTF
1548 GO FIOFF
1549 032265 201 00 0 00 120275 JRST CMD0]
1550 032266 202 00 0 00 030063 MOVEM ALTMGO
1551 032267 402 00 0 00 134143' SETZM ALTF ; clear 'altmode typed' flag
1552 032270 336 00 0 00 134161' SKIPN FINPUT ; file input?
1553 032271 476 00 0 00 134160' SETOM FINECH ; no - ensure echo flag set
1554 032272 332 00 0 00 134160' SKIPE FINECH ; echo flag set?
1555 GO [PFORCE ; no - print all this
1556 PCRLF
1557 FMSG (DEBUG> )
1558 032273 260 17 0 00 120303 RTN]
1559 032274 332 00 0 00 134161' SKIPE FINPUT ; file input?
1560 JRST [GO FINCMD ; yes - input sixbit cmd
1561 JRST CMD1 ; error or EOF
1562 032275 254 00 0 00 120307 JRST CMD2] ; continue
1563 032276 037 10 0 00 000003 CMD1A: TTSIXB ; get operator input
1564 ALTCHK [GET XXW# ; adjust stack properly
1565 SKIPN $TWCNT ; did a timeout occur?
1566 JRST CMD1 ; yes - keep looking for input
1567 MOVE 1,$TTCHR ; no - get character typed
1568 CAIN 1,77 ; was a question mark typed?
1569 JRST CMDQUE ; yes - handle
1570 CAIN 1,40 ; space (delimiter character) typed?
1571 JRST .+1 ; yes - continue (no error occurred)
1572 FMSGCD <? Unrecognizable - Type ? for help>
1573 GO FIOFF ; turn off file input
1574 032277 007 00 0 00 120312 JRST CMD0] ; error - reask question
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 37
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0200
1575
1576 CMD2: JUMPE [MOVE $TTCHR ; anything typed? if a space, keep
1577 CAIN 40 ; looking for an argument, if not
1578 JRST CMD1A ; exit
1579 032300 322 00 0 00 120325 JRST CMD1]
1580 032301 202 00 0 00 134213' MOVEM PCMD ; save command typed
1581 032302 402 00 0 00 031704* SETZM ARGFLG ; clear 'argument given' flag
1582 032303 200 01 0 00 030231 MOVE 1,$TTCHR ; get last character typed
1583 032304 302 01 0 00 000015 CAIE 1,15 ; CR? (end of line)
1584 032305 476 00 0 00 032302* SETOM ARGFLG ; set 'argument given' flag
1585
1586 ; Decode the command
1587
1588 032306 200 01 0 00 134213' MOVE 1,PCMD ; get sixbit command
1589 032307 201 02 0 00 032322 MOVEI 2,.DBCMD ; get address of cmd list
1590 032310 260 17 0 00 031401* GO .COMM ; handle command decoding
1591 JRST [FMSGCD <? Unrecognizable - Type ? for help>
1592 GO FIOFF
1593 032311 254 00 0 00 120322 JRST CMD0] ; error return
1594 032312 260 17 1 01 032474 GO @.DBDIS(1) ; dispatch to test
1595 032313 254 00 0 00 032235 JRST CMD0 ; return to 'DEBUG>' prompt
1596
1597 ; Question mark typed
1598
1599 032314 037 01 0 00 000026 CMDQUE: PFORCE ; handle Control-O
1600 032315 037 00 1 00 032317 PNTMSG @CMDQUU ; print text
1601 032316 254 00 0 00 032235 JRST CMD0 ; look for new command
1602
1603 032317 CMDQUU: [ASCII /
1604 -------- Miscellaneous --------------------- - NI - -- Switches --
1605 HELP IPRINT START EEBUF ECRAM MARK PINIT NOPNT TRACE
1606 EXIT ICLEAR STOP DEBUF BCRAM RMARK SIDLE PNTLPT INHFLT
1607 DDT IINIT CONT ZEBUF ACRAM CMARK WATCH DING INHMSG
1608 032317 000000 120331 SSTEP ECRAM LMARK ERSTOP LOOPGM /]
1609 [ASCII /
1610 SET CCWPNT STRACE ELAR LCRAM BPACK PALERS LOOPTS
1611 TAKE LOGPNT SPRINT DRAR ZCRAM BREAK IQUEUE RELIAB RUNALL
1612 NTAKE SCLEAR ZRAR RBREAK TXTINH DSPEAR
1613 TRANSL CONFIG SSINIT ECSR CBREAK PPCB OPRSEL UDEBUG
1614 032320 000000 120440 FILLNX E2901 DCSR LBREAK PQUEUE MDEBUG/]
1615 [ASCIZ /
1616 FILLPC FLOAD ELOCS D2901 ZCSR SWITCH LDEBUG
1617 STATIS FVERFY DLOCS Z2901 DUMP DEBPTT SWPRIN DDEBUG
1618 ZSTATS FLIST ZLOCS EPLI CCODE DEPMUL EDEBUG
1619 ZCOUNT FEXAM ENEXT DPLI ESTACK DEPBAK
1620 RESET DNEXT ETBUFF
1621 CLEAR ERBUFF
1622 032321 000000 120547 /]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 38
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0201
1623
1624 ;#********************************************************************
1625 ;* .DBCMD - List of acceptable commands
1626 ;#********************************************************************
1627
1628 ; Miscellaneous commands
1629
1630 032322 777777 777655 .DBCMD: -123 ; ignore
1631 032323 50 45 54 60 00 00 SIXBIT /HELP/ ; print help message
1632 032324 45 70 51 64 00 00 SIXBIT /EXIT/ ; exit DEBUG mode
1633 032325 44 44 64 00 00 00 SIXBIT /DDT/ ; enter DDT
1634
1635 032326 63 45 64 00 00 00 SIXBIT /SET/ ; set/print options
1636 032327 64 41 53 45 00 00 SIXBIT /TAKE/ ; take commands from a file
1637 032330 56 64 41 53 45 00 SIXBIT /NTAKE/ ; take commands from a file
1638 032331 45 56 45 70 64 00 SIXBIT /ENEXT/ ; examine next location
1639 032332 44 56 45 70 64 00 SIXBIT /DNEXT/ ; examine next location
1640
1641 ; CSR commands
1642
1643 032333 45 43 63 62 00 00 SIXBIT /ECSR/ ; examine CSR register
1644 032334 44 43 63 62 00 00 SIXBIT /DCSR/ ; deposit CSR register
1645 032335 72 43 63 62 00 00 SIXBIT /ZCSR/ ; zero CSR register
1646
1647 032336 62 45 63 45 64 00 SIXBIT /RESET/ ; issue an EBUS Reset
1648 032337 43 54 45 41 62 00 SIXBIT /CLEAR/ ; issue a 'Port Clear'
1649
1650 ; Start/stop/single step commands
1651
1652 032340 63 64 41 62 64 00 SIXBIT /START/ ; start the port
1653 032341 63 64 57 60 00 00 SIXBIT /STOP/ ; stop the port
1654 032342 43 57 56 64 00 00 SIXBIT /CONT/ ; continue the port
1655 032343 63 63 64 45 60 00 SIXBIT /SSTEP/ ; single step the port
1656 032344 63 64 62 41 43 45 SIXBIT /STRACE/ ; single step the port while tracing
1657 032345 63 60 62 51 56 64 SIXBIT /SPRINT/ ; print single step history
1658 032346 63 43 54 45 41 62 SIXBIT /SCLEAR/ ; clear single step history data
1659 032347 63 63 51 56 51 64 SIXBIT /SSINIT/ ; set up ss start addr/data/history
1660
1661 ; EBUF commands
1662
1663 032350 45 45 42 65 46 00 SIXBIT /EEBUF/ ; examine EBUF register
1664 032351 44 45 42 65 46 00 SIXBIT /DEBUF/ ; deposit EBUF register
1665 032352 72 45 42 65 46 00 SIXBIT /ZEBUF/ ; zero EBUF register
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 39
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0202
1666
1667 ; RAR/LAR commands
1668
1669 032353 45 54 41 62 00 00 SIXBIT /ELAR/ ; examine LAR register
1670 032354 44 62 41 62 00 00 SIXBIT /DRAR/ ; deposit RAR register
1671 032355 72 62 41 62 00 00 SIXBIT /ZRAR/ ; zero RAR register
1672
1673 ; CRAM commands
1674
1675 032356 44 43 62 41 55 00 SIXBIT /DCRAM/ ; deposit into port CRAM
1676 032357 42 43 62 41 55 00 SIXBIT /BCRAM/ ; deposit into port CRAM by bit field
1677 032360 41 43 62 41 55 00 SIXBIT /ACRAM/ ; alter port CRAM
1678 032361 45 43 62 41 55 00 SIXBIT /ECRAM/ ; examine port CRAM
1679 032362 54 43 62 41 55 00 SIXBIT /LCRAM/ ; list port CRAM
1680 032363 72 43 62 41 55 00 SIXBIT /ZCRAM/ ; zero port CRAM
1681
1682 ; 2901 commands
1683
1684 032364 45 22 31 20 21 00 SIXBIT /E2901/ ; examine 2901 registers
1685 032365 44 22 31 20 21 00 SIXBIT /D2901/ ; deposit 2901 registers
1686 032366 72 22 31 20 21 00 SIXBIT /Z2901/ ; zero 2901 registers
1687
1688 ; Local storage commmands
1689
1690 032367 45 54 57 43 63 00 SIXBIT /ELOCS/ ; examine local storage
1691 032370 44 54 57 43 63 00 SIXBIT /DLOCS/ ; deposit local storage
1692 032371 72 54 57 43 63 00 SIXBIT /ZLOCS/ ; zero local storage
1693
1694 ; Mark bit commands
1695
1696 032372 55 41 62 53 00 00 SIXBIT /MARK/ ; set mark bit in locations
1697 032373 62 55 41 62 53 00 SIXBIT /RMARK/ ; remove mark bit in locations
1698 032374 43 55 41 62 53 00 SIXBIT /CMARK/ ; clear mark bit in locations
1699 032375 54 55 41 62 53 00 SIXBIT /LMARK/ ; list locations with mark bit set
1700
1701 ; Breakpoint commands
1702
1703 032376 42 62 45 41 53 00 SIXBIT /BREAK/ ; set breakpoint
1704 032377 62 42 62 45 41 53 SIXBIT /RBREAK/ ; remove breakpoint
1705 032400 43 42 62 45 41 53 SIXBIT /CBREAK/ ; clear all breakpoints
1706 032401 54 42 62 45 41 53 SIXBIT /LBREAK/ ; list breakpoints
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 40
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0203
1707
1708 ; Microcode file commands
1709
1710 032402 54 57 41 44 00 00 SIXBIT /LOAD/ ; load microcode from test into CRAM
1711 032403 54 51 63 64 00 00 SIXBIT /LIST/ ; list microcode from test
1712 032404 46 54 57 41 44 00 SIXBIT /FLOAD/ ; load microcode from file into CRAM
1713 032405 46 66 45 62 46 71 SIXBIT /FVERFY/ ; verify microcode loaded
1714 032406 46 54 51 63 64 00 SIXBIT /FLIST/ ; list microcode in file
1715 032407 46 45 70 41 55 00 SIXBIT /FEXAM/ ; examine microcode in file
1716
1717 ; Miscellaneous commands
1718
1719 032410 64 62 41 56 63 54 SIXBIT /TRANSL/ ; translate CSR bits
1720 032411 43 43 57 44 45 00 SIXBIT /CCODE/ ; print condition codes
1721 032412 45 63 64 41 43 53 SIXBIT /ESTACK/ ; examine 2910 stack contents
1722 032413 46 51 54 54 56 70 SIXBIT /FILLNX/ ; fill CRAM with special data
1723 032414 46 51 54 54 60 43 SIXBIT /FILLPC/ ; fill CRAM with special data
1724 032415 51 60 62 51 56 64 SIXBIT /IPRINT/ ; print interrupt history
1725 032416 51 43 54 45 41 62 SIXBIT /ICLEAR/ ; clear interrupt history
1726 032417 51 51 56 51 64 00 SIXBIT /IINIT/ ; initialize interrupt system
1727
1728 032420 63 64 41 64 51 63 SIXBIT /STATIS/ ; print collected statistics
1729 032421 72 63 64 41 64 63 SIXBIT /ZSTATS/ ; clear statistics areas
1730 032422 72 43 57 65 56 64 SIXBIT /ZCOUNT/ ; clear counters data
1731 032423 43 57 56 46 51 47 SIXBIT /CONFIG/ ; print current configuration
1732 032424 44 65 55 60 00 00 SIXBIT /DUMP/ ; dump entire port status
1733
1734 ; Data transfer routines
1735
1736 032425 43 43 67 60 56 64 SIXBIT /CCWPNT/ ; print CCW list
1737 032426 54 57 47 60 56 64 SIXBIT /LOGPNT/ ; print logout data
1738
1739 ; NI related commands
1740
1741 032427 60 51 56 51 64 00 SIXBIT /PINIT/ ; initialize PCB and queues
1742 032430 63 51 44 54 45 00 SIXBIT /SIDLE/ ; start port and wait for IDLE loop
1743 032431 42 60 41 43 53 00 SIXBIT /BPACK/ ; build a packet
1744 032432 51 61 65 45 65 45 SIXBIT /IQUEUE/ ; insert on queue
1745 032433 60 61 65 45 65 45 SIXBIT /PQUEUE/ ; print specified queue
1746 032434 60 60 43 42 00 00 SIXBIT /PPCB/ ; print PCB
1747 032435 67 41 64 43 50 00 SIXBIT /WATCH/ ; watch port and print events
1748 032436 44 60 54 51 00 00 SIXBIT /DPLI/ ; deposit data to PLI
1749 032437 45 60 54 51 00 00 SIXBIT /EPLI/ ; examine PLI
1750 032440 44 45 60 60 64 64 SIXBIT /DEPPTT/ ; deposit into PTT table
1751 032441 44 45 60 55 65 54 SIXBIT /DEPMUL/ ; deposit into Multicast table
1752 032442 44 45 60 60 41 53 SIXBIT /DEPPAK/ ; deposit into packet
1753 032443 45 64 42 65 46 46 SIXBIT /ETBUFF/ ; read transmit buffers
1754 032444 45 62 42 65 46 46 SIXBIT /ERBUFF/ ; read receive buffers
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 41
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0204
1755
1756 ; Switches
1757
1758 032445 63 67 51 64 43 50 SIXBIT /SWITCH/ ; input switches
1759 032446 63 67 60 62 51 56 SIXBIT /SWPRIN/ ; print switch selections
1760 032447 56 57 60 56 64 00 SIXBIT /NOPNT/ ; don't print anything
1761 032450 60 56 64 54 60 64 SIXBIT /PNTLPT/ ; print on printer
1762 032451 44 51 56 47 00 00 SIXBIT /DING/ ; ding on error
1763 032452 45 62 63 64 57 60 SIXBIT /ERSTOP/ ; halt on error
1764 032453 60 41 54 45 62 63 SIXBIT /PALERS/ ; print all errors
1765 032454 62 45 54 51 41 42 SIXBIT /RELIAB/ ; reliability testing
1766 032455 64 70 64 51 56 50 SIXBIT /TXTINH/ ; shorten printing
1767 032456 57 60 62 63 45 54 SIXBIT /OPRSEL/ ; operator select
1768 032457 64 62 41 43 45 00 SIXBIT /TRACE/ ; trace pgm flow
1769 032460 51 56 50 46 54 64 SIXBIT /INHFLT/ ; inhibit fault isolation
1770 032461 51 56 50 55 63 47 SIXBIT /INHMSG/ ; inhibit error messages
1771 032462 54 57 57 60 47 55 SIXBIT /LOOPGM/ ; loop on program
1772 032463 54 57 57 60 64 63 SIXBIT /LOOPTS/ ; loop on test
1773 032464 62 65 56 41 54 54 SIXBIT /RUNALL/ ; run all test segments
1774 032465 44 63 60 45 41 62 SIXBIT /DSPEAR/ ; disable SPEAR reporting
1775 032466 65 44 45 42 65 47 SIXBIT /UDEBUG/ ; no-IPA user mode debug switch
1776 032467 55 44 45 42 65 47 SIXBIT /MDEBUG/ ; error message debug switch
1777 032470 54 44 45 42 65 47 SIXBIT /LDEBUG/ ; load microcode debug switch
1778 032471 44 44 45 42 65 47 SIXBIT /DDEBUG/ ; dump on error debug switch
1779 032472 45 44 45 42 65 47 SIXBIT /EDEBUG/ ; expanded error msg switch
1780 032473 000 00 0 00 000000 Z ; list terminator
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 42
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0205
1781
1782 ;#********************************************************************
1783 ;* .DBDIS - List of dispatch addresses
1784 ;#********************************************************************
1785
1786 032474 000000 117037 .DBDIS: [RTN] ; ignore
1787 032475 000000 032645 DHELP ; HELP - print help message
1788 [MOVE 1,[FMSGCD (EXIT <CR>)] ; EXIT - exit DEBUG mode
1789 GO CHKARG
1790 RTN
1791 GET XXX#
1792 032476 000000 120655 RTN]
1793 032477 000000 031337 TSTDDT ; DDT - enter DDT
1794
1795 032500 000000 032737 DSET ; SET - set/clear/print options
1796 032501 000000 031527 TSTTAK ; TAKE - take commands from file
1797 032502 000000 031525 TSTTAN ; NTAKE - take commands from a file
1798 032503 000000 040157 DENEXT ; ENEXT - examine next location
1799 032504 000000 040241 DDNEXT ; DNEXT - deposit next location
1800
1801 032505 000000 033713 DECSR ; ECSR - examine CSR register
1802 032506 000000 033723 DDCSR ; DCSR - deposit CSR register
1803 032507 000000 033732 DZCSR ; ZCSR - zero CSR register
1804
1805 032510 000000 033740 DRESET ; RESET - issue an EBUS Reset
1806 032511 000000 033745 DCLEAR ; CLEAR - issue a 'Port Clear'
1807
1808 032512 000000 033765 DSTART ; START - start the port
1809 032513 000000 034014 DSTOP ; STOP - stop the port
1810 032514 000000 035405 DCONT ; CONT - continue the port
1811 032515 000000 034037 DSSTEP ; SSTEP - single step the port
1812 032516 000000 034034 DTRACE ; STRACE - sstep the port while tracing
1813 032517 000000 034106 DSSPNT ; SPRINT - print single step history
1814 032520 000000 034130 DSSCLR ; SCLEAR - clear single step history
1815 032521 000000 033752 DSINIT ; SSINIT - set up ss addr/data/history
1816
1817 032522 000000 035422 DEEBUF ; EEBUF - examine EBUF register
1818 032523 000000 035443 DDEBUF ; DEBUF - deposit EBUF register
1819 032524 000000 035436 DZEBUF ; ZEBUF - zero EBUF register
1820
1821 032525 000000 035455 DELAR ; ELAR - examine LAR register
1822 032526 000000 035475 DDRAR ; DRAR - deposit RAR register
1823 032527 000000 035507 DZRAR ; ZRAR - zero RAR register
1824
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 43
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0206
1825 032530 000000 035522 DDCRAM ; DCRAM - deposit CRAM
1826 032531 000000 035525 DBCRAM ; BCRAM - deposit CRAM by bit field
1827 032532 000000 035530 DACRAM ; ACRAM - alter port CRAM
1828 032533 000000 035517 DECRAM ; ECRAM - examine port CRAM
1829 032534 000000 035536 DLCRAM ; LCRAM - list port CRAM
1830 032535 000000 035533 DZCRAM ; ZCRAM - zero port CRAM
1831
1832 032536 000000 036304 DEALU ; E2901 - examine 2901 registers
1833 032537 000000 036412 DDALU ; D2901 - deposit 2901 registers
1834 032540 000000 036473 DZALU ; Z2901 - zero 2901 registers
1835
1836 032541 000000 036610 DELOCS ; ELOCS - examine local storage
1837 032542 000000 036713 DDLOCS ; DLOCS - deposit local storage
1838 032543 000000 036767 DZLOCS ; ZLOCS - zero local storage
1839
1840 032544 000000 037103 DMARK ; MARK - set mark bits
1841 032545 000000 037132 DRMARK ; RMARK - remove mark bits
1842 032546 000000 037161 DCMARK ; CMARK - clear mark bits
1843 032547 000000 037232 DLMARK ; LMARK - list mark bits
1844
1845 032550 000000 040455 DBREAK ; BREAK - set breakpoint
1846 032551 000000 040510 DRBRK ; RBREAK - remove breakpoint
1847 032552 000000 040533 DCBRK ; CBREAK - clear all breakpoints
1848 032553 000000 040577 DLBRK ; LBREAK - list breakpoints
1849
1850 032554 000000 040660 DLOAD ; LOAD - load test microcode into CRAM
1851 032555 000000 040701 DLIST ; LIST - list test microcode
1852 032556 000000 040714 DFLOAD ; FLOAD - load ucode from file to CRAM
1853 032557 000000 040737 DFVERF ; FVERFY - verify microcode loaded
1854 032560 000000 040753 DFLIST ; FLIST - list microcode in file
1855 032561 000000 041010 DFEXAM ; FEXAM - examine microcode in file
1856
1857 032562 000000 041045 DTRANS ; TRANSL - translate CSR bits
1858 032563 000000 041055 DCCODE ; CCODE - print condition codes
1859 032564 000000 040415 DESTAK ; ESTACK - examine 2910 stack
1860 032565 000000 041204 DFILLN ; FILLNX - fill CRAM with special data
1861 032566 000000 041230 DFILLP ; FILLPC - fill CRAM with special data
1862 032567 000000 041277 DIPRIN ; IPRINT - print interrupt history
1863 [MOVE 1,[FMSGCD (ICLEAR <CR>)]; ICLEAR - clear interrupt history
1864 GO CHKARG
1865 RTN
1866 SETZM INTNUM
1867 MOVE [INTNUM,,INTNUM+1]
1868 BLT INTEND
1869 SETOM INTNUM
1870 032570 000000 120670 RTN]
1871 032571 000000 041353 DIINIT ; IINIT - initialize interrupt system
1872
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 44
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0207
1873 032572 000000 031477 TSTPRI ; STATIS - print statistics
1874 032573 000000 031361 TSTZER ; ZSTATS - clear statistics
1875 [MOVE 1,[FMSGCD (ZCOUNT <CR>)]; ZCOUNT - clear counters
1876 GO CHKARG
1877 RTN
1878 GO ZCOUNT
1879 032574 000000 120705 RTN]
1880 032575 000000 031366 TSTCON ; CONFIG - print configuration
1881
1882 [MOVE 1,[FMSGCD (DUMP <CR>)] ; DUMP - Dump entire port status
1883 GO CHKARG
1884 RTN
1885 GO DDUMP
1886 032576 000000 120716 RTN]
1887
1888 032577 000000 041252 DCWPNT ; CCWPNT - print CCW list
1889 032600 000000 041260 DLGPNT ; LOGPNT - print logout area data
1890
1891 ; NI related commands
1892
1893 032601 000000 041361 DPINIT ; PINIT - initialize PCB and queues
1894 032602 000000 041366 DSIDLE ; SIDLE - start port/wait for IDLE loop
1895 032603 000000 041376 DBPACK ; BPACK - build packet
1896 032604 000000 041453 DIQUEU ; IQUEUE - put packet on cmd queue
1897 032605 000000 041472 DPQUEU ; PQUEUE - print specified queue
1898 032606 000000 041464 DPPCB ; PPCB - print PCB
1899 032607 000000 041531 DWATCH ; WATCH - watch port and print events
1900 032610 000000 037310 DDPLI ; DPLI - deposit data to PLI
1901 032611 000000 037400 DEPLI ; EPLI - examine PLI
1902 032612 000000 040324 DDPPTT ; DEPPTT - deposit into PTT table
1903 032613 000000 040347 DDPMUL ; DEPMUL - deposit into Multicast table
1904 032614 000000 040372 DDPPAK ; DEPPAK - deposit into packet
1905 032615 000000 037521 DETBUF ; ETBUFF - read transmit buffers
1906 032616 000000 037526 DERBUF ; ERBUFF - read receive buffers
1907
1908 ; Switches
1909
1910 [MOVE 1,[FMSGCD (SWITCH <CR>)]; SWITCH - input switches
1911 GO CHKARG
1912 RTN
1913 GO .ISWT
1914 032617 000000 120723 RTN]
1915 [MOVE 1,[FMSGCD (SWPRIN <CR>)]; SWPRIN - print switches
1916 GO CHKARG
1917 RTN
1918 GO .SWCHP
1919 032620 000000 120730 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 45
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0208
1920
1921 000125 SWSTP==.-.DBDIS
1922
1923 032621 000000 041266 DSWIT ; NOPNT
1924 032622 000000 041266 DSWIT ; PNTLPT
1925 032623 000000 041266 DSWIT ; DING
1926 032624 000000 041266 DSWIT ; ERSTOP
1927 032625 000000 041266 DSWIT ; PALERS
1928 032626 000000 041266 DSWIT ; RELIAB
1929 032627 000000 041266 DSWIT ; TXTINH
1930 032630 000000 041266 DSWIT ; OPRSEL
1931 032631 000000 041266 DSWIT ; TRACE
1932 032632 000000 041266 DSWIT ; INHFLT
1933 032633 000000 041266 DSWIT ; INHMSG
1934 032634 000000 041266 DSWIT ; LOOPGM
1935 032635 000000 041266 DSWIT ; LOOPTS
1936 032636 000000 041266 DSWIT ; RUNALL
1937 032637 000000 041266 DSWIT ; DSPEAR
1938 032640 000000 041266 DSWIT ; UDEBUG
1939 032641 000000 041266 DSWIT ; MDEBUG
1940 032642 000000 041266 DSWIT ; LDEBUG
1941 032643 000000 041266 DSWIT ; DDEBUG
1942 032644 000000 041266 DSWIT ; EDEBUG
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 46
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0209
1943
1944 ;#*********************************************************************
1945 ;* DHELP - Print DEBUG> help message
1946 ;#*********************************************************************
1947
1948 DHELP: MOVN 1,[FMSGD <
1949 HELP ALL START CRAM BREAK DTXFR
1950 MISC CSR 2901 UCODE NI
1951 INTRPT EBUF LOCS STATIS PLI
1952 032645 210 01 0 00 120776 RESET LAR MARK CONFIG SWITCH>]
1953 032646 260 17 0 00 031537* GO .SARG ; get SIXBIT argument
1954 032647 263 17 0 00 000000 RTN ; error/altmode/question - exit
1955 GO [MOVE [SIXBIT /ALL/] ; no argument - assume all
1956 MOVEM ARGUM
1957 032650 260 17 0 00 117404 RTN]
1958 032651 200 01 0 00 031672* MOVE 1,ARGUM ; get sixbit command
1959 032652 201 02 0 00 032665 MOVEI 2,.HLCMD ; get address of cmd list
1960 032653 260 17 0 00 032310* GO .COMM ; handle command decoding
1961 JRST [FMSGCD <? Unrecognizable - Type ? for help>
1962 GO FIOFF
1963 032654 254 00 0 00 117407 RTN] ; error return
1964 032655 037 01 0 00 000026 PFORCE ; handle Control-O
1965 032656 200 02 0 00 000001 MOVE 2,1 ; get AC1
1966 032657 336 03 0 01 032712 DHELP0: SKIPN 3,DHELP1(1) ; get address of TMSG
1967 032660 263 17 0 00 000000 RTN ; all done - exit
1968 032661 256 00 0 00 000003 XCT 3 ; print it
1969 032662 350 00 0 00 000001 AOS 1 ; point to next address
1970 032663 322 02 0 00 032657 JUMPE 2,DHELP0 ; loop till done
1971 032664 263 17 0 00 000000 RTN ; exit
1972
1973 032665 41 54 54 00 00 00 .HLCMD: SIXBIT /ALL/ ; print all help info
1974 032666 55 51 63 43 00 00 SIXBIT /MISC/ ; print miscellaneous commands
1975 032667 51 56 64 62 60 64 SIXBIT /INTRPT/ ; print interrupt commands
1976 032670 62 45 63 45 64 00 SIXBIT /RESET/ ; print reset commands
1977 032671 63 64 41 62 64 00 SIXBIT /START/ ; print start... commands
1978 032672 43 63 62 00 00 00 SIXBIT /CSR/ ; print CSR commands
1979 032673 45 42 65 46 00 00 SIXBIT /EBUF/ ; print EBUF commands
1980 032674 54 41 62 00 00 00 SIXBIT /LAR/ ; print LAR commands
1981 032675 43 62 41 55 00 00 SIXBIT /CRAM/ ; print CRAM commands
1982 032676 22 31 20 21 00 00 SIXBIT /2901/ ; print 2901 commands
1983 032677 54 57 43 63 00 00 SIXBIT /LOCS/ ; print local storage commands
1984 032700 55 41 62 53 00 00 SIXBIT /MARK/ ; print mark commands
1985 032701 42 62 45 41 53 00 SIXBIT /BREAK/ ; print breakpoint commands
1986 032702 65 43 57 44 45 00 SIXBIT /UCODE/ ; print microcode commands
1987 032703 63 64 41 64 51 63 SIXBIT /STATIS/ ; print statisitics commands
1988 032704 43 57 56 46 51 47 SIXBIT /CONFIG/ ; print configuration commands
1989 032705 44 64 70 46 62 00 SIXBIT /DTXFR/ ; print data transfer commands
1990 032706 56 51 00 00 00 00 SIXBIT /NI/ ; print NI related commands
1991 032707 60 54 51 00 00 00 SIXBIT /PLI/ ; print PLI commands
1992 032710 63 67 51 64 43 50 SIXBIT /SWITCH/ ; print switch commands
1993 032711 000000 000000 0 ; end of list
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 47
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0210
1994
1995 032712 037 00 0 00 120777 DHELP1: TMSGCD <DEBUG Commands:>
1996
1997 TMSGD <
1998 HELP arg Print help
1999 EXIT Exit DEBUG mode
2000 DDT Enter DDT
2001 SET opt arg Set/clear/print options
2002 TAKE file ext Take commands from file
2003 NTAKE file ext Take commands from file (unechoed)
2004 TRANSL dat Translate CSR data
2005 CCODE Print condition codes
2006 ESTACK Examine 2910 stack contents
2007 FILLNX dat Fill CRAM with 'J=.+1,CTL=dat'
2008 FILLPC dat Fill CRAM with 'J=.,CTL=dat'
2009 ENEXT Examine next
2010 032713 037 00 0 00 121003 DNEXT arg Deposit next>
2011
2012 TMSGD <
2013 IPRINT Print accumulated interrupt activity
2014 ICLEAR Clear accumulated interrupt activity
2015 032714 037 00 0 00 121137 IINIT Init interrupt system>
2016
2017 TMSGD <
2018 RESET Issue EBUS Reset
2019 032715 037 00 0 00 121173 CLEAR Issue a 'Port Clear'>
2020
2021 TMSGD <
2022 START adr Start the port microsequencer
2023 STOP Stop the port microsequencer
2024 CONT Continue the port microsequencer
2025 SSTEP cnt Single step the port microsequencer
2026 STRACE cnt Single step and trace execution
2027 SPRINT cnt Print single step history data
2028 SCLEAR Clear single step history data
2029 032716 037 00 0 00 121211 SSINIT Set up ss addr/data/history>
2030
2031 TMSGD <
2032 ECSR Examine CSR Register
2033 DCSR dat Deposit CSR Register
2034 032717 037 00 0 00 121321 ZCSR Zero CSR Register>
2035
2036 TMSGD <
2037 EEBUF Examine EBUF register
2038 DEBUF dat Deposit EBUF register
2039 032720 037 00 0 00 121346 ZEBUF Zero EBUF register>
2040
2041 TMSGD <
2042 ELAR Examine LAR register
2043 DRAR dat Deposit RAR register
2044 032721 037 00 0 00 121373 ZRAR Zero RAR register>
2045
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 48
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0211
2046 TMSGD <
2047 DCRAM adr,adr Deposit into CRAM
2048 BCRAM adr,adr Deposit into CRAM by fields
2049 ACRAM adr,adr Alter CRAM
2050 ECRAM adr,adr Examine CRAM
2051 LCRAM adr,adr List CRAM
2052 032722 037 00 0 00 121420 ZCRAM adr,adr Zero CRAM>
2053
2054 TMSGD <
2055 E2901 reg,reg Examine 2901 registers
2056 D2901 reg,dat Deposit 2901 register
2057 032723 037 00 0 00 121466 Z2901 reg,reg Zero 2901 registers>
2058
2059 TMSGD <
2060 ELOCS adr,adr Examine local storage
2061 DLOCS adr,dat Deposit local storage
2062 032724 037 00 0 00 121516 ZLOCS adr,adr Zero local storage>
2063
2064 TMSGD <
2065 MARK adr,adr Set mark bit
2066 RMARK adr,adr Remove mark bit
2067 CMARK adr,adr Clear all mark bits
2068 032725 037 00 0 00 121545 LMARK adr,adr List mark bits>
2069
2070 TMSGD <
2071 BREAK adr,adr Set breakpoint
2072 RBREAK adr,adr Remove breakpoint
2073 CBREAK adr,adr Clear all breakpoints
2074 032726 037 00 0 00 121600 LBREAK adr,adr List breakpoints>
2075
2076 TMSGD <
2077 LOAD tst Load microcode from Test 'tst' into CRAM
2078 LIST tst List microcode from Test 'tst'
2079 FLOAD Load microcode from file into CRAM
2080 FVERFY Verify microcode loaded from file
2081 FLIST List microcode in file
2082 032727 037 00 0 00 121635 FEXAM Examine microcode in file>
2083
2084 TMSGD <
2085 STATIS Print statistics
2086 ZSTATS Clear statistics
2087 032730 037 00 0 00 121724 ZCOUNT Clear counters>
2088
2089 TMSGD <
2090 032731 037 00 0 00 121745 CONFIG Print configuration>
2091
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 49
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0212
2092 TMSGD <
2093 CCWPNT Print CCW list
2094 032732 037 00 0 00 121754 LOGPNT Print logout data>
2095
2096 TMSGD <
2097 PINIT Initialize PCB and queues
2098 SIDLE Start port/wait for IDLE loop
2099 BPACK Build packet
2100 IQUEUE Put packet on cmd queue
2101 PQUEUE n Print specified queue
2102 PPCB Print PCB
2103 WATCH Watch port and print events
2104 LOOP Loop back packets
2105 DEPPTT Deposit into PTT table
2106 DEPMUL Deposit into Multicast table
2107 032733 037 00 0 00 121770 DEPPAK Deposit into packet>
2108
2109 TMSGD <
2110 DPLI lnk,data,rep Deposit PLI data
2111 EPLI lnk,rep Examine PLI data
2112
2113 ETBUFF Examine transmit buffers
2114 032734 037 00 0 00 122102 ERBUFF Examine receive buffers>
2115
2116 TMSGD <
2117 SWITCH Enter switch information
2118 SWPRIN Print current switch settings
2119
2120 (To complement switch setting, type switch name).
2121
2122 NOPNT ERSTOP TXTINH TRACE LOOPGM DSPEAR LDEBUG
2123 PNTLPT PALERS OPRSEL INHFLT LOOPTS UDEBUG DDEBUG
2124 032735 037 00 0 00 122140 DING RELIAB INHMSG RUNALL MDEBUG EDEBUG>
2125 032736 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 50
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0213
2126
2127 ;#********************************************************************
2128 ;* DSET - Set/clear/print options
2129 ;#********************************************************************
2130
2131 DSET: MOVE 1,[FMSGD <
2132 SET ADDR PCB RESPON DADDR PRINT HELP
2133 CSR FNAME FORMAT SADDR INTERV
2134 PARITY PAT BSD PTTVAL SUMMAR
2135 032737 200 01 0 00 122302 EBUF PATLIS LENGTH PAD WHAT>]
2136 032740 260 17 0 00 032646* GO .SARG ; get SIXBIT argument
2137 032741 263 17 0 00 000000 RTN ; error/altmode/question - exit
2138 JRST [FMSGCD <? Missing argument>
2139 GO FIOFF
2140 032742 254 00 0 00 117722 RTN]
2141 032743 200 01 0 00 032651* MOVE 1,ARGUM ; get sixbit command
2142 032744 201 02 0 00 032751 MOVEI 2,.STCMD ; get address of cmd list
2143 032745 260 17 0 00 032653* GO .COMM ; handle command decoding
2144 JRST [FMSGCD <? Unrecognizable - Type ? for help>
2145 GO FIOFF
2146 032746 254 00 0 00 117407 RTN] ; error return
2147 032747 260 17 1 01 032777 GO @.STDIS(1) ; dispatch to test
2148 032750 263 17 0 00 000000 RTN ; return to 'DEBUG>' prompt
2149
2150 032751 41 44 44 62 00 00 .STCMD: SIXBIT /ADDR/ ; set start address
2151 032752 43 63 62 00 00 00 SIXBIT /CSR/ ; set start data for CSR
2152 032753 60 41 62 51 64 71 SIXBIT /PARITY/ ; set/clr auto parity generation
2153 032754 45 42 65 46 00 00 SIXBIT /EBUF/ ; set/clr preserve EBUF
2154 032755 60 43 42 00 00 00 SIXBIT /PCB/ ; set/clr PCB CCW list in use by START
2155 032756 46 56 41 55 45 00 SIXBIT /FNAME/ ; set file name
2156 032757 60 41 64 00 00 00 SIXBIT /PAT/ ; set data pattern
2157 032760 60 41 64 54 51 63 SIXBIT /PATLIS/ ; list data patterns
2158 032761 62 45 63 60 57 56 SIXBIT /RESPON/ ; set/clr forced response
2159 032762 46 57 62 55 41 64 SIXBIT /FORMAT/ ; set format (COMPAT or HIDEN)
2160 032763 42 63 44 00 00 00 SIXBIT /BSD/ ; set BSD style datagram
2161 032764 54 45 56 47 64 50 SIXBIT /LENGTH/ ; set length of text portion of packet
2162 032765 44 41 44 44 62 00 SIXBIT /DADDR/ ; set destination address
2163 032766 63 41 44 44 62 00 SIXBIT /SADDR/ ; set self address
2164 032767 60 64 64 66 41 54 SIXBIT /PTTVAL/ ; protocol type value
2165 032770 60 41 44 00 00 00 SIXBIT /PAD/ ; set pad flag
2166 032771 60 62 51 56 64 00 SIXBIT /PRINT/ ; set text length to print
2167 032772 51 56 64 45 62 66 SIXBIT /INTERV/ ; interval (seconds)
2168 032773 63 65 55 55 41 62 SIXBIT /SUMMAR/ ; summary interval (seconds)
2169 032774 67 50 41 64 00 00 SIXBIT /WHAT/ ; print options
2170 032775 50 45 54 60 00 00 SIXBIT /HELP/ ; set help message
2171 032776 000 00 0 00 000000 Z
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 51
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0214
2172
2173 032777 000000 033024 .STDIS: DSETAD ; ADDR - set start address
2174 033000 000000 033045 DSETCS ; CSR - set start CSR data
2175 033001 000000 033062 DSETPR ; PARITY - set/clr auto par generation
2176 033002 000000 033102 DSETEB ; EBUF - set/clr preserve EBUF flag
2177 033003 000000 033122 DSETPC ; PCB - set/clr PCB CCW list for START
2178 033004 000000 033142 DSETFN ; FNAME - set default ucode file name
2179 033005 000000 033173 DSETPA ; PAT - set data pattern
2180 033006 000000 033233 DSETPL ; PATLIS - list data patterns
2181 033007 000000 033270 DSETRE ; RESPON - set/clr forced response
2182 033010 000000 033311 DSETFO ; FORMAT - set format (COMPAT or HIDEN)
2183 033011 000000 033333 DSETBS ; BSD - set BSD style datagram
2184 033012 000000 033373 DSETLN ; LENGTH - set text length
2185 033013 000000 033413 DSETDA ; DADDR - set destination address
2186 033014 000000 033513 DSETSA ; SADDR - set self address
2187 033015 000000 033537 DSETPV ; PTTVAL - protocol type value
2188 033016 000000 033353 DSETPD ; PAD - set pad flag
2189 033017 000000 033554 DSETPT ; PRINT - set text length to print
2190 033020 000000 033574 DSETIN ; INTERV - interval (seconds)
2191 033021 000000 033611 DSETSU ; SUMMAR - summary interval (seconds)
2192 033022 000000 033626 DSETWH ; WHAT - print options
2193 033023 000000 033655 DSETHE ; HELP - set help message
2194
2195
2196 ;#********************************************************************
2197 ;* DSETAD - Set start address for START/SSTEP/CONT commands
2198 ;#********************************************************************
2199
2200 033024 210 01 0 00 122315 DSETAD: MOVN 1,[FMSGCD (SET ADDR addr (0-7777) <CR> or SET ADDR <CR>)]
2201 033025 260 17 0 00 031437* GO .OARG ; get argument
2202 033026 263 17 0 00 000000 RTN ; error/altmode/question - exit
2203 033027 254 00 0 00 033037 JRST DSADD1 ; no argument given
2204 033030 200 00 0 00 032743* MOVE ARGUM ; get argument
2205 033031 202 00 0 00 033666 MOVEM DSADDR ; save it
2206 033032 301 00 0 00 000000 CAIL 0 ; out of range?
2207 033033 301 00 0 00 007777 CAIL 7777
2208 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
2209 GO FIOFF
2210 033034 254 00 0 00 122327 RTN]
2211 033035 202 00 0 00 033666 MOVEM DSADDR ; no - save it
2212 033036 263 17 0 00 000000 RTN ; exit
2213
2214 033037 037 00 0 00 030242 DSADD1: PCRL
2215 033040 037 00 0 00 122332 DSADD2: TMSG <Start address ............ >
2216 033041 200 00 0 00 033666 MOVE DSADDR
2217 033042 037 16 0 00 000003 PNTOCS
2218 033043 037 00 0 00 030242 PCRL
2219 033044 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 52
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0215
2220
2221 ;#********************************************************************
2222 ;* DSETCS - Set start CSR data for START/CONT commands
2223 ;#********************************************************************
2224
2225 033045 210 01 0 00 122350 DSETCS: MOVN 1,[FMSGCD (SET CSR xxxxxx <CR> or SET CSR <CR>)]
2226 033046 260 17 0 00 033025* GO .OARG ; get argument
2227 033047 263 17 0 00 000000 RTN ; error/altmode/question - exit
2228 033050 254 00 0 00 033054 JRST DSCSR1 ; no argument given
2229 033051 200 00 0 00 033030* MOVE ARGUM ; get argument
2230 033052 202 00 0 00 033667 MOVEM DSDATA ; save it
2231 033053 263 17 0 00 000000 RTN ; exit
2232
2233 033054 037 00 0 00 030242 DSCSR1: PCRL
2234 033055 037 00 0 00 122351 DSCSR2: TMSG <Start CSR data ........... >
2235 033056 200 00 0 00 033667 MOVE DSDATA
2236 033057 037 16 0 00 000003 PNTOCS
2237 033060 037 00 0 00 030242 PCRL
2238 033061 263 17 0 00 000000 RTN ; exit
2239
2240
2241 ;#********************************************************************
2242 ;* DSETPR - Set/clear automatic parity generation for load cram command
2243 ;#********************************************************************
2244
2245 033062 210 01 0 00 122367 DSETPR: MOVN 1,[FMSGCD (SET PAR NO or YES or SET PAR <CR>)]
2246 033063 260 17 0 00 032740* GO .SARG ; get argument
2247 033064 263 17 0 00 000000 RTN ; error/altmode/question - exit
2248 033065 254 00 0 00 033073 JRST DSPAR1 ; no argument given
2249 033066 260 17 0 00 000000* GO DECYN ; decode argument Y or N
2250 033067 263 17 0 00 000000 RTN ; error - unrecognized
2251 JRST [SETZM PARFLG ; no - clear the flag
2252 033070 254 00 0 00 122370 RTN]
2253 033071 476 00 0 00 033670 SETOM PARFLG ; yes - set it
2254 033072 263 17 0 00 000000 RTN ; exit
2255
2256 033073 037 00 0 00 030242 DSPAR1: PCRL
2257 033074 037 00 0 00 122372 DSPAR2: TMSG <Auto parity generation ... >
2258 033075 332 00 0 00 033670 SKIPE PARFLG ; set?
2259 033076 037 00 0 00 122400 TMSGD <YES>
2260 033077 336 00 0 00 033670 SKIPN PARFLG ; set?
2261 033100 037 00 0 00 122402 TMSGD <NO>
2262 033101 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 53
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0216
2263
2264 ;#********************************************************************
2265 ;* DSETEB - Set/clear preserve EBUF for single stepping
2266 ;#********************************************************************
2267
2268 033102 210 01 0 00 122413 DSETEB: MOVN 1,[FMSGCD (SET EBUF NO or YES or SET EBUF <CR>)]
2269 033103 260 17 0 00 033063* GO .SARG ; get argument
2270 033104 263 17 0 00 000000 RTN ; error/altmode/question - exit
2271 033105 254 00 0 00 033113 JRST DSEBU1 ; no argument given
2272 033106 260 17 0 00 033066* GO DECYN ; decode argument Y or N
2273 033107 263 17 0 00 000000 RTN ; error - unrecognized
2274 JRST [SETZM PRSFLG ; no - clear the flag
2275 033110 254 00 0 00 122414 RTN]
2276 033111 476 00 0 00 033671 SETOM PRSFLG ; yes - set it
2277 033112 263 17 0 00 000000 RTN ; exit
2278
2279 033113 037 00 0 00 030242 DSEBU1: PCRL
2280 033114 037 00 0 00 122416 DSEBU2: TMSG <EBUF preserved in sstep .. >
2281 033115 332 00 0 00 033671 SKIPE PRSFLG ; set?
2282 033116 037 00 0 00 122400 TMSGD <YES>
2283 033117 336 00 0 00 033671 SKIPN PRSFLG ; set?
2284 033120 037 00 0 00 122402 TMSGD <NO>
2285 033121 263 17 0 00 000000 RTN ; return
2286
2287
2288 ;#********************************************************************
2289 ;* DSETPC - Set/clear PCB CCW list made up for START command
2290 ;#********************************************************************
2291
2292 033122 210 01 0 00 122434 DSETPC: MOVN 1,[FMSGCD (SET PCB NO or YES or SET PCB <CR>)]
2293 033123 260 17 0 00 033103* GO .SARG ; get argument
2294 033124 263 17 0 00 000000 RTN ; error/altmode/question - exit
2295 033125 254 00 0 00 033133 JRST DSPCB1 ; no argument given
2296 033126 260 17 0 00 033106* GO DECYN ; decode argument Y or N
2297 033127 263 17 0 00 000000 RTN ; error - unrecognized
2298 JRST [SETZM PCBFLG ; no - clear the flag
2299 033130 254 00 0 00 122435 RTN]
2300 033131 476 00 0 00 033675 SETOM PCBFLG ; yes - set it
2301 033132 263 17 0 00 000000 RTN ; exit
2302
2303 033133 037 00 0 00 030242 DSPCB1: PCRL
2304 033134 037 00 0 00 122437 DSPCB2: TMSG <Setup PCB CCW on START cmd >
2305 033135 332 00 0 00 033675 SKIPE PCBFLG ; set?
2306 033136 037 00 0 00 122400 TMSGD <YES>
2307 033137 336 00 0 00 033675 SKIPN PCBFLG ; set?
2308 033140 037 00 0 00 122402 TMSGD <NO>
2309 033141 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 54
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0217
2310
2311 ;#********************************************************************
2312 ;* DSETFN - Set default microcode file name
2313 ;#********************************************************************
2314
2315 033142 200 01 0 00 122457 DSETFN: MOVE 1,[FMSGCD (SET FNAME file ext <CR> or SET FNAME <CR>)]
2316 033143 260 17 0 00 033123* GO .SARG ; get argument (file name)
2317 033144 263 17 0 00 000000 RTN ; error/altmode/question - exit
2318 033145 254 00 0 00 033162 JRST DSFNM1 ; no argument - print it out
2319 033146 200 00 0 00 033051* MOVE ARGUM ; get argument
2320 033147 202 00 0 00 134247' MOVEM TMP1# ; save it
2321 033150 210 01 0 00 122457 MOVN 1,[FMSGCD (SET FNAME file ext <CR> or SET FNAME <CR>)]
2322 033151 260 17 0 00 033143* GO .SARG ; get argument (extension)
2323 033152 263 17 0 00 000000 RTN ; error/altmode/question - exit
2324 033153 254 00 0 00 033156 JRST DSFNM0 ; no extension given - exit
2325 033154 200 00 0 00 033146* MOVE ARGUM ; get 2nd argument
2326 033155 202 00 0 00 044325 MOVEM FNAME+1 ; save it
2327 033156 200 00 0 00 134247' DSFNM0: MOVE TMP1 ; get first argument
2328 033157 202 00 0 00 044324 MOVEM FNAME ; save it
2329 033160 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
2330 033161 263 17 0 00 000000 RTN ; return
2331
2332 033162 037 00 0 00 030242 DSFNM1: PCRL
2333 033163 037 00 0 00 122460 DSFNM2: TMSG <Microcode file name ...... >
2334 033164 200 00 0 00 044324 MOVE FNAME ; get name
2335 033165 037 00 0 00 000002 PNTSIX ; print it
2336 033166 037 00 0 00 122466 TMSG <.>
2337 033167 200 00 0 00 044325 MOVE FNAME+1 ; get extension
2338 033170 037 00 0 00 000002 PNTSIX ; print it
2339 033171 037 00 0 00 030242 PCRL
2340 033172 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 55
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0218
2341
2342 ;#********************************************************************
2343 ;* DSETPA - Set data pattern to insert in buffer
2344 ;#********************************************************************
2345
2346 033173 200 01 0 00 122504 DSETPA: MOVE 1,[FMSGCD (SET PAT number (1-126 octal)(126=opr sel) or SET PAT <CR>)]
2347 033174 260 17 0 00 033046* GO .OARG ; get argument
2348 033175 263 17 0 00 000000 RTN ; error/altmode/question - exit
2349 033176 254 00 0 00 033220 JRST DSPAT1 ; no argument given
2350 033177 200 00 0 00 033154* MOVE ARGUM ; get argument
2351 033200 301 00 0 00 000001 CAIL 1 ; in range?
2352 033201 303 00 0 00 000126 CAILE 126
2353 JRST [FMSGCD <? Out of range 1-126 octal>
2354 GO FIOFF
2355 033202 254 00 0 00 122514 RTN]
2356 033203 202 00 0 00 033673 MOVEM DSPAT ; save it
2357 033204 302 00 0 00 000126 CAIE 126 ; operator selected pattern?
2358 033205 254 00 0 00 033214 JRST DSPATX ; no - exit
2359 033206 200 01 0 00 122525 MOVE 1,[FMSGCD <SET PAT 126,data (CR)>]
2360 033207 260 17 0 00 033174* GO .OARG ; get argument
2361 033210 263 17 0 00 000000 RTN ; error/altmode/question - exit
2362 JRST [FMSGCD <? Missing argument>
2363 GO FIOFF
2364 033211 254 00 0 00 117722 RTN]
2365 033212 200 00 0 00 033177* MOVE ARGUM ; get argument
2366 033213 202 00 0 00 033674 MOVEM DSTPAT ; save it
2367 033214 260 17 0 00 000000* DSPATX: GO LASARG ; check for last argument
2368 033215 263 17 0 00 000000 RTN ; exit
2369 033216 037 01 0 00 122517 FMSGCD <SET PAT 126,data (CR)>
2370 033217 263 17 0 00 000000 RTN ; exit
2371
2372 033220 037 00 0 00 030242 DSPAT1: PCRL
2373 033221 037 00 0 00 122526 DSPAT2: TMSG <Data pattern (#) ......... >
2374 033222 200 01 0 00 033673 MOVE 1,DSPAT ; get pattern
2375 033223 256 00 0 01 000000* XCT PATPNT(1) ; ...
2376 033224 302 01 0 00 000126 CAIE 1,126 ; operator selected pattern?
2377 033225 254 00 0 00 033231 JRST DSPAT3 ; no - continue
2378 033226 037 00 0 00 122534 TMSG < - > ; yes - print it out
2379 033227 200 00 0 00 033674 MOVE DSTPAT
2380 033230 037 13 0 00 000000 PNTHW
2381 033231 037 00 0 00 030242 DSPAT3: PCRL
2382 033232 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 56
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0219
2383
2384 ;#********************************************************************
2385 ;* DSETPL - List data patterns
2386 ;#********************************************************************
2387
2388 033233 200 01 0 00 122546 DSETPL: MOVE 1,[FMSGCD <SET PATLIS num1,num2 or SET PATLIS (CR)>]
2389 033234 260 17 0 00 033207* GO .OARG ; get argument
2390 033235 263 17 0 00 000000 RTN ; error/altmode/question - exit
2391 JRST [MOVE PAT,DSPAT ; no argument - just print
2392 MOVEM PAT,PAT1# ; current selection
2393 MOVEM PAT,PAT2#
2394 033236 254 00 0 00 122547 JRST DSETPP]
2395 033237 200 00 0 00 033212* MOVE ARGUM ; get argument
2396 033240 202 00 0 00 134211' MOVEM PAT1# ; save it
2397
2398 033241 200 01 0 00 122546 MOVE 1,[FMSGCD <SET PATLIS num1,num2 or SET PATLIS (CR)>]
2399 033242 260 17 0 00 033234* GO .OARG ; get argument
2400 033243 263 17 0 00 000000 RTN ; error/altmode/question - exit
2401 JRST [MOVE PAT,PAT1 ; no 2nd argument - just print
2402 MOVEM PAT,PAT2 ; one translation
2403 033244 254 00 0 00 122553 JRST DSETPP]
2404 033245 200 00 0 00 033237* MOVE ARGUM ; get argument
2405 033246 202 00 0 00 134212' MOVEM PAT2 ; save it
2406 033247 200 01 0 00 134212' MOVE 1,PAT2 ; get argument
2407 033250 274 01 0 00 134211' SUB 1,PAT1 ; see if range ok
2408 JUMPL 1,[FMSGCD <? Range nonsensical>
2409 GO FIOFF
2410 033251 321 01 0 00 122563 RTN]
2411
2412 033252 200 14 0 00 134211' DSETPP: MOVE PAT,PAT1 ; get pattern
2413 033253 301 14 0 00 000001 CAIL PAT,1 ; in range?
2414 033254 303 14 0 00 000126 CAILE PAT,126
2415 JRST [FMSGCD <? Out of range 1-126 octal>
2416 GO FIOFF
2417 033255 254 00 0 00 122514 RTN]
2418 033256 037 00 0 00 030242 PCRL
2419 033257 256 00 0 14 033223* XCT PATPNT(PAT) ; print it
2420 033260 350 00 0 00 000014 AOS PAT ; increment pattern number
2421 033261 037 07 0 00 000003 TTALTM ; altmode typed?
2422 033262 334 00 0 00 000000 SKIPA ; no - continue
2423 033263 254 00 0 00 033266 JRST DSETPX ; yes - return
2424 033264 317 14 0 00 134212' CAMG PAT,PAT2 ; done yet?
2425 033265 254 00 0 00 033253 JRST DSETPP+1 ; no - loop till done
2426 033266 037 00 0 00 030243 DSETPX: PCRL2 ; final CRLF
2427 033267 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 57
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0220
2428
2429 ;#********************************************************************
2430 ;* DSETRE - Set/clr forced response
2431 ;#********************************************************************
2432
2433 033270 476 00 0 00 033676 DSETRE: SETOM RSPFLG ; set the flag
2434 033271 210 01 0 00 122577 MOVN 1,[FMSGCD (SET RESPON NO or YES or SET RESPON <CR>)]
2435 033272 260 17 0 00 033151* GO .SARG ; get argument
2436 033273 263 17 0 00 000000 RTN ; error/altmode/question - exit
2437 033274 254 00 0 00 033302 JRST DSRES1 ; no argument given
2438 033275 260 17 0 00 033126* GO DECYN ; decode argument Y or N
2439 033276 263 17 0 00 000000 RTN ; error - unrecognized
2440 JRST [SETOM RSPFLG ; no - clear the flag
2441 TMSGCD <[No response requested not allowed]>
2442 033277 254 00 0 00 122610 RTN]
2443 033300 476 00 0 00 033676 SETOM RSPFLG ; yes - set it
2444 033301 263 17 0 00 000000 RTN ; exit
2445
2446 033302 037 00 0 00 030242 DSRES1: PCRL
2447 033303 037 00 0 00 122613 DSRES2: TMSG <Request Packet Response .. >
2448 033304 332 00 0 00 033676 SKIPE RSPFLG ; set?
2449 033305 037 00 0 00 122400 TMSGD <YES>
2450 033306 336 00 0 00 033676 SKIPN RSPFLG ; set?
2451 033307 037 00 0 00 122402 TMSGD <NO>
2452 033310 263 17 0 00 000000 RTN ; return
2453
2454
2455 ;#********************************************************************
2456 ;* DSETFO - Set format (COMPAT or HIDEN)
2457 ;#********************************************************************
2458
2459 033311 210 01 0 00 122633 DSETFO: MOVN 1,[FMSGCD (SET FORMAT COMPAT or HIDEN or SET FORMAT <CR>)]
2460 033312 260 17 0 00 033272* GO .SARG ; get argument
2461 033313 263 17 0 00 000000 RTN ; error/altmode/question - exit
2462 033314 254 00 0 00 033323 JRST DSFOR1 ; no argument given
2463 033315 200 01 0 00 033245* MOVE 1,ARGUM ; get command into AC1
2464 033316 201 02 0 00 033330 MOVEI 2,DSFORL ; get address of cmd list
2465 033317 260 17 0 00 032745* GO .COMM ; handle command decoding
2466 JRST [FMSGCD <? Unrecognized argument>
2467 033320 254 00 0 00 122642 RTN]
2468 033321 202 01 0 00 033677 MOVEM 1,FORSEL ; save value
2469 033322 263 17 0 00 000000 RTN ; return
2470
2471 033323 037 00 0 00 030242 DSFOR1: PCRL
2472 033324 037 00 0 00 122644 DSFOR2: TMSG <Datagram Format .......... >
2473 033325 200 01 0 00 033677 MOVE 1,FORSEL ; get format value
2474 XCT [TMSGD <COMPAT> ; print it
2475 033326 256 00 0 01 122656 TMSGD <HIDEN>](1)
2476 033327 263 17 0 00 000000 RTN ; return
2477
2478 033330 43 57 55 60 41 64 DSFORL: SIXBIT /COMPAT/
2479 033331 50 51 44 45 56 00 SIXBIT /HIDEN/
2480 033332 000 00 0 00 000000 Z
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 58
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0221
2481
2482 ;#********************************************************************
2483 ;* DSETBS - Set BSD stype datagram
2484 ;#********************************************************************
2485
2486 033333 210 01 0 00 122670 DSETBS: MOVN 1,[FMSGCD (SET BSD NO or YES or SET BSD <CR>)]
2487 033334 260 17 0 00 033312* GO .SARG ; get argument
2488 033335 263 17 0 00 000000 RTN ; error/altmode/question - exit
2489 033336 254 00 0 00 033344 JRST DSBSD1 ; no argument given
2490 033337 260 17 0 00 033275* GO DECYN ; decode argument Y or N
2491 033340 263 17 0 00 000000 RTN ; error - unrecognized
2492 JRST [SETZM BSDFLG ; no - clear the flag
2493 033341 254 00 0 00 122671 RTN]
2494 033342 476 00 0 00 033700 SETOM BSDFLG ; yes - set it
2495 033343 263 17 0 00 000000 RTN ; exit
2496
2497 033344 037 00 0 00 030242 DSBSD1: PCRL
2498 033345 037 00 0 00 122673 DSBSD2: TMSG <BSD Style Datagram ....... >
2499 033346 332 00 0 00 033700 SKIPE BSDFLG ; set?
2500 033347 037 00 0 00 122400 TMSGD <YES>
2501 033350 336 00 0 00 033700 SKIPN BSDFLG ; set?
2502 033351 037 00 0 00 122402 TMSGD <NO>
2503 033352 263 17 0 00 000000 RTN ; return
2504
2505
2506 ;#********************************************************************
2507 ;* DSETPD - Set pad flag
2508 ;#********************************************************************
2509
2510 033353 210 01 0 00 122711 DSETPD: MOVN 1,[FMSGCD (SET PAD NO or YES or SET PAD <CR>)]
2511 033354 260 17 0 00 033334* GO .SARG ; get argument
2512 033355 263 17 0 00 000000 RTN ; error/altmode/question - exit
2513 033356 254 00 0 00 033364 JRST DSPAD1 ; no argument given
2514 033357 260 17 0 00 033337* GO DECYN ; decode argument Y or N
2515 033360 263 17 0 00 000000 RTN ; error - unrecognized
2516 JRST [SETZM PADFLG ; no - clear the flag
2517 033361 254 00 0 00 122712 RTN]
2518 033362 476 00 0 00 033701 SETOM PADFLG ; yes - set it
2519 033363 263 17 0 00 000000 RTN ; exit
2520
2521 033364 037 00 0 00 030242 DSPAD1: PCRL
2522 033365 037 00 0 00 122714 DSPAD2: TMSG <Pad all datagrams ........ >
2523 033366 332 00 0 00 033701 SKIPE PADFLG ; set?
2524 033367 037 00 0 00 122400 TMSGD <YES>
2525 033370 336 00 0 00 033701 SKIPN PADFLG ; set?
2526 033371 037 00 0 00 122402 TMSGD <NO>
2527 033372 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 59
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0222
2528
2529 ;#********************************************************************
2530 ;* DSETLN - Set length of text portion of packet
2531 ;#********************************************************************
2532
2533 033373 210 01 0 00 122735 DSETLN: MOVN 1,[FMSGCD (SET LEN length (1-1504. bytes) or SET LEN <CR>)]
2534 033374 260 17 0 00 031667* GO .DARG ; get argument
2535 033375 263 17 0 00 000000 RTN ; error/altmode/question - exit
2536 033376 254 00 0 00 033405 JRST DSLEN1 ; no argument given
2537 033377 200 00 0 00 033315* MOVE ARGUM ; get argument
2538 033400 303 00 0 00 000000 CAILE 0 ; argument in range 1-1504.?
2539 033401 303 00 0 00 002740 CAILE ^D1504
2540 JRST [FMSGCD <? Out of range 1-1504. bytes>
2541 GO FIOFF
2542 033402 254 00 0 00 122745 RTN]
2543 033403 202 00 0 00 033672 MOVEM DSBYTE ; save it
2544 033404 263 17 0 00 000000 RTN ; exit
2545
2546 033405 037 00 0 00 030242 DSLEN1: PCRL
2547 033406 037 00 0 00 122750 DSLEN2: TMSG <Text length (bytes) ...... >
2548 033407 200 00 0 00 033672 MOVE DSBYTE
2549 033410 037 15 0 00 000000 PNTDEC
2550 033411 037 00 0 00 117263 TMSGD <.>
2551 033412 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 60
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0223
2552
2553 ;#********************************************************************
2554 ;* DSETDA - Set destination address
2555 ;#********************************************************************
2556
2557 033413 120 00 0 00 033702 DSETDA: DMOVE DADDR ; get address
2558 033414 202 00 0 00 134230' MOVEM SAVAD1# ; save 1st word
2559 033415 202 01 0 00 134231' MOVEM 1,SAVAD2# ; save 2nd word
2560
2561 MOVE 1,[FMSGCD <SET DADDR B0,B1,B2,B3,B4,B5 or SET DADDR or SET DADDR SELF (CR)>
2562 033416 200 01 0 00 122774 ]
2563 033417 260 17 0 00 033354* GO .SARG ; get argument
2564 033420 263 17 0 00 000000 RTN ; error/altmode/question - exit
2565 033421 254 00 0 00 033467 JRST DSDAD1 ; no argument given
2566 033422 200 01 0 00 033377* MOVE 1,ARGUM ; get command into AC1
2567 033423 201 02 0 00 033511 MOVEI 2,DSDADL ; get address of cmd list
2568 033424 260 17 0 00 033317* GO .COMM ; handle command decoding
2569 JRST [MOVE 1,ARGUM ; error - may be an octal
2570 GO CONVSX ; number - check and handle
2571 SKIPA ; as appropriate
2572 JRST DSDAD0
2573 FMSGCD <? Unrecognized argument>
2574 033425 254 00 0 00 122775 RTN]
2575 033426 260 17 0 00 065672 GO RDADDR ; read station address
2576 033427 120 00 0 00 033704 DMOVE SADDR ; get it
2577 033430 124 00 0 00 033702 DMOVEM DADDR ; save it
2578 033431 037 00 0 00 030242 PCRL
2579 033432 254 00 0 00 033472 JRST DSDAD2 ; print it out now
2580
2581 033433 200 00 0 00 000001 DSDAD0: MOVE 1 ; get argument
2582 033434 137 00 0 00 123003 DPB [POINT 8,SAVAD1,31] ; save it
2583
2584 033435 260 17 0 00 033242* GO .OARG ; get argument
2585 033436 263 17 0 00 000000 RTN ; error/altmode/question - exit
2586 033437 254 00 0 00 033467 JRST DSDAD1 ; no argument given
2587 033440 200 00 0 00 033422* MOVE ARGUM ; get argument
2588 033441 137 00 0 00 123004 DPB [POINT 8,SAVAD1,23] ; save it
2589
2590 033442 260 17 0 00 033435* GO .OARG ; get argument
2591 033443 263 17 0 00 000000 RTN ; error/altmode/question - exit
2592 033444 254 00 0 00 033467 JRST DSDAD1 ; no argument given
2593 033445 200 00 0 00 033440* MOVE ARGUM ; get argument
2594 033446 137 00 0 00 123005 DPB [POINT 8,SAVAD1,15] ; save it
2595
2596 033447 260 17 0 00 033442* GO .OARG ; get argument
2597 033450 263 17 0 00 000000 RTN ; error/altmode/question - exit
2598 033451 254 00 0 00 033467 JRST DSDAD1 ; no argument given
2599 033452 200 00 0 00 033445* MOVE ARGUM ; get argument
2600 033453 137 00 0 00 123006 DPB [POINT 8,SAVAD1,7] ; save it
2601
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 61
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0224
2602 033454 260 17 0 00 033447* GO .OARG ; get argument
2603 033455 263 17 0 00 000000 RTN ; error/altmode/question - exit
2604 033456 254 00 0 00 033467 JRST DSDAD1 ; no argument given
2605 033457 200 00 0 00 033452* MOVE ARGUM ; get argument
2606 033460 137 00 0 00 123007 DPB [POINT 8,SAVAD2,31] ; save it
2607
2608 033461 210 01 0 00 123022 MOVN 1,[FMSGCD <SET DADDR B0,B1,B2,B3,B4,B5 or SET DADDR (CR)>]
2609 033462 260 17 0 00 033454* GO .OARG ; get argument
2610 033463 263 17 0 00 000000 RTN ; error/altmode/question - exit
2611 033464 254 00 0 00 033467 JRST DSDAD1 ; no argument given
2612 033465 200 00 0 00 033457* MOVE ARGUM ; get argument
2613 033466 137 00 0 00 123023 DPB [POINT 8,SAVAD2,23] ; save it
2614
2615 033467 120 00 0 00 134230' DSDAD1: DMOVE SAVAD1 ; get address
2616 033470 124 00 0 00 033702 DMOVEM DADDR ; save it
2617 033471 037 00 0 00 030242 PCRL
2618
2619 033472 037 00 0 00 123024 DSDAD2: TMSG <Destination address ...... >
2620 033473 135 00 0 00 123032 LDB [POINT 8,DADDR,31]
2621 033474 037 03 0 00 000000 PNT3
2622 033475 135 00 0 00 123033 LDB [POINT 8,DADDR,23]
2623 033476 037 03 0 00 000000 PNT3
2624 033477 135 00 0 00 123034 LDB [POINT 8,DADDR,15]
2625 033500 037 03 0 00 000000 PNT3
2626 033501 135 00 0 00 123035 LDB [POINT 8,DADDR,7]
2627 033502 037 03 0 00 000000 PNT3
2628 033503 135 00 0 00 123036 LDB [POINT 8,DADDR+1,31]
2629 033504 037 03 0 00 000000 PNT3
2630 033505 135 00 0 00 123037 LDB [POINT 8,DADDR+1,23]
2631 033506 037 03 0 00 000000 PNT3
2632 033507 037 00 0 00 030242 PCRL
2633 033510 263 17 0 00 000000 RTN
2634
2635 ; Command list
2636
2637 033511 63 45 54 46 00 00 DSDADL: SIXBIT /SELF/
2638 033512 000 00 0 00 000000 Z
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 62
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0225
2639
2640 ;#********************************************************************
2641 ;* DSETSA - Set self address
2642 ;#********************************************************************
2643
2644 033513 200 01 0 00 123044 DSETSA: MOVE 1,[FMSGCD <SET SADDR (CR)>]
2645 033514 260 17 0 00 032232* GO CHKARG ; ensure last argument
2646 033515 263 17 0 00 000000 RTN ; error - exit
2647 033516 260 17 0 00 065672 GO RDADDR ; read physical address ROM
2648 033517 037 00 0 00 030242 PCRL
2649
2650 033520 037 00 0 00 123045 DSSAD2: TMSG <Our station address ...... >
2651 033521 135 00 0 00 123053 LDB [POINT 8,SADDR,31]
2652 033522 037 03 0 00 000000 PNT3
2653 033523 135 00 0 00 123054 LDB [POINT 8,SADDR,23]
2654 033524 037 03 0 00 000000 PNT3
2655 033525 135 00 0 00 123055 LDB [POINT 8,SADDR,15]
2656 033526 037 03 0 00 000000 PNT3
2657 033527 135 00 0 00 123056 LDB [POINT 8,SADDR,7]
2658 033530 037 03 0 00 000000 PNT3
2659 033531 135 00 0 00 123057 LDB [POINT 8,SADDR+1,31]
2660 033532 037 03 0 00 000000 PNT3
2661 033533 135 00 0 00 123060 LDB [POINT 8,SADDR+1,23]
2662 033534 037 03 0 00 000000 PNT3
2663 033535 037 00 0 00 030242 PCRL
2664 033536 263 17 0 00 000000 RTN
2665
2666
2667 ;#********************************************************************
2668 ;* DSETPV - Set protocol type value
2669 ;#********************************************************************
2670
2671 033537 210 01 0 00 123071 DSETPV: MOVN 1,[FMSGCD (SET PTTVAL n or SET PTTVAL <CR>)]
2672 033540 260 17 0 00 033462* GO .OARG ; get argument
2673 033541 263 17 0 00 000000 RTN ; error/altmode/question - exit
2674 033542 254 00 0 00 033546 JRST DSPTT1 ; no argument given
2675 033543 200 00 0 00 033465* MOVE ARGUM ; get argument
2676 033544 202 00 0 00 033712 MOVEM PTTVAL ; save it
2677 033545 263 17 0 00 000000 RTN ; exit
2678
2679 033546 037 00 0 00 030242 DSPTT1: PCRL
2680 033547 037 00 0 00 123072 DSPTT2: TMSG <PTT value ................ >
2681 033550 200 00 0 00 033712 MOVE PTTVAL
2682 033551 037 16 0 00 000003 PNTOCS
2683 033552 037 00 0 00 030242 PCRL
2684 033553 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 63
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0226
2685
2686 ;#********************************************************************
2687 ;* DSETPT - Set length of text portion to print
2688 ;#********************************************************************
2689
2690 033554 210 01 0 00 123112 DSETPT: MOVN 1,[FMSGCD (SET PRINT nwords (1-1000.) or SET PRINT <CR>)]
2691 033555 260 17 0 00 033374* GO .DARG ; get argument
2692 033556 263 17 0 00 000000 RTN ; error/altmode/question - exit
2693 033557 254 00 0 00 033566 JRST DSPNT1 ; no argument given
2694 033560 200 00 0 00 033543* MOVE ARGUM ; get argument
2695 033561 303 00 0 00 000000 CAILE 0 ; argument in range 1-1000?
2696 033562 303 00 0 00 001750 CAILE ^D1000
2697 JRST [FMSGCD <? Out of range 1-1000. words>
2698 GO FIOFF
2699 033563 254 00 0 00 123122 RTN]
2700 033564 202 00 0 00 033706 MOVEM DSPRIN ; save it
2701 033565 263 17 0 00 000000 RTN ; exit
2702
2703 033566 037 00 0 00 030242 DSPNT1: PCRL
2704 033567 037 00 0 00 123125 DSPNT2: TMSG <Text to print (words) .... >
2705 033570 200 00 0 00 033706 MOVE DSPRIN
2706 033571 037 15 0 00 000000 PNTDEC
2707 033572 037 00 0 00 117263 TMSGD <.>
2708 033573 263 17 0 00 000000 RTN ; exit
2709
2710
2711 ;#********************************************************************
2712 ;* DSETIN - Set interval (milliseconds)
2713 ;#********************************************************************
2714
2715 033574 210 01 0 00 123145 DSETIN: MOVN 1,[FMSGCD (SET INTERV milliseconds or SET INTERV <CR>)]
2716 033575 260 17 0 00 033555* GO .DARG ; get argument
2717 033576 263 17 0 00 000000 RTN ; error/altmode/question - exit
2718 033577 254 00 0 00 033603 JRST DSINT1 ; no argument given
2719 033600 200 00 0 00 033560* MOVE ARGUM ; get argument
2720 033601 202 00 0 00 033710 MOVEM DSINT ; save it
2721 033602 263 17 0 00 000000 RTN ; exit
2722
2723 033603 037 00 0 00 030242 DSINT1: PCRL
2724 033604 037 00 0 00 123146 DSINT2: TMSG <Interval (milliseconds) .. >
2725 033605 200 00 0 00 033710 MOVE DSINT
2726 033606 037 15 0 00 000000 PNTDEC
2727 033607 037 00 0 00 117263 TMSGD <.>
2728 033610 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 64
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0227
2729
2730 ;#********************************************************************
2731 ;* DSETSU - Set summary interval (seconds)
2732 ;#********************************************************************
2733
2734 033611 210 01 0 00 123165 DSETSU: MOVN 1,[FMSGCD (SET SUMMAR seconds or SET SUMMAR <CR>)]
2735 033612 260 17 0 00 033575* GO .DARG ; get argument
2736 033613 263 17 0 00 000000 RTN ; error/altmode/question - exit
2737 033614 254 00 0 00 033620 JRST DSSUM1 ; no argument given
2738 033615 200 00 0 00 033600* MOVE ARGUM ; get argument
2739 033616 202 00 0 00 033707 MOVEM DSSUM ; save it
2740 033617 263 17 0 00 000000 RTN ; exit
2741
2742 033620 037 00 0 00 030242 DSSUM1: PCRL
2743 033621 037 00 0 00 123166 DSSUM2: TMSG <Summary interval (seconds) >
2744 033622 200 00 0 00 033707 MOVE DSSUM
2745 033623 037 15 0 00 000000 PNTDEC
2746 033624 037 00 0 00 117263 TMSGD <.>
2747 033625 263 17 0 00 000000 RTN ; exit
2748
2749
2750 ;#********************************************************************
2751 ;* DSETWH - Print all selected options
2752 ;#********************************************************************
2753
2754 033626 260 17 0 00 033214* DSETWH: GO LASARG ; check for last argument
2755 033627 263 17 0 00 000000 RTN ; error - exit
2756 JRST [FMSGCD (SET WHAT <CR>) ; ? typed - print msg and
2757 033630 254 00 0 00 123200 RTN] ; return
2758 033631 037 00 0 00 123202 TMSGCD <Options:>
2759 033632 260 17 0 00 033037 GO DSADD1 ; print address
2760 033633 260 17 0 00 033055 GO DSCSR2 ; print CSR data
2761 033634 260 17 0 00 033074 GO DSPAR2 ; print parity flag
2762 033635 260 17 0 00 033114 GO DSEBU2 ; print EBUF flag
2763 033636 260 17 0 00 033134 GO DSPCB2 ; print PCB flag
2764 033637 260 17 0 00 033163 GO DSFNM2 ; print file name selected
2765 033640 260 17 0 00 033221 GO DSPAT2 ; print data pattern
2766 033641 260 17 0 00 033303 GO DSRES2 ; print response flag
2767 033642 260 17 0 00 033324 GO DSFOR2 ; print format
2768 033643 260 17 0 00 033345 GO DSBSD2 ; print BSD flag
2769 033644 260 17 0 00 033406 GO DSLEN2 ; print length
2770 033645 260 17 0 00 033472 GO DSDAD2 ; print destination address
2771 033646 260 17 0 00 033520 GO DSSAD2 ; print our station address
2772 033647 260 17 0 00 033547 GO DSPTT2 ; print PTT value
2773 033650 260 17 0 00 033365 GO DSPAD2 ; print pad flag
2774 033651 260 17 0 00 033567 GO DSPNT2 ; print length to print
2775 033652 260 17 0 00 033604 GO DSINT2 ; print interval
2776 033653 260 17 0 00 033621 GO DSSUM2 ; print summary interval
2777 033654 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 65
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0228
2778
2779 ;#********************************************************************
2780 ;* DSETHE - Set help message
2781 ;#********************************************************************
2782
2783 033655 200 01 0 00 123211 DSETHE: MOVE 1,[FMSGCD (SET HELP <CR>)]
2784 033656 260 17 0 00 033514* GO CHKARG ; check for argument
2785 033657 263 17 0 00 000000 RTN ; error - exit
2786 033660 037 01 0 00 000026 PFORCE ; handle Control-O
2787 033661 037 00 1 00 033663 PNTMSG @DSETHL ; print text
2788 033662 263 17 0 00 000000 RTN ; ask for a test
2789
2790 033663 DSETHL: [ASCII ^
2791 SET Command: (* Arg - YES or NO)
2792
2793 SET ADDR adr - set start address
2794 SET CSR data - set start CSR data
2795 SET PARITY arg* - set/clr auto par generation
2796 SET EBUF arg* - set/clr preserve EBUF flag
2797 SET PCB arg* - set/clr PCB CCW list for START
2798 SET FNAME name ext - set default ucode file name
2799 033663 000000 123212 SET PAT n - set data pattern ^]
2800 [ASCII ^
2801 SET PATLIS arg - list data patterns
2802 SET RESPON arg* - set/clr forced response
2803 SET FORMAT arg - set format (COMPAT or HIDEN)
2804 SET BSD arg* - set/clr BSD style datagram
2805 SET LENGTH len - set text length
2806 SET DADDR n1,n2 - set destination address
2807 SET SADDR n1,n2 - set self address
2808 SET PTTVAL arg - set PTT value
2809 033664 000000 123317 SET PAD arg* - set/clr pad datagram ^]
2810 [ASCIZ ^
2811 SET PRINT adr - set text length to print
2812 SET INTERV sec - interval (seconds)
2813 SET SUMMAR sec - summary interval (seconds)
2814 SET WHAT - print options
2815 SET HELP - set help message
2816 033665 000000 123430 ^]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 66
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0229
2817
2818 ;#********************************************************************
2819 ;* Program Flags
2820 ;#********************************************************************
2821
2822 033666 000000 000000 DSADDR: 0 ; start address initially zero
2823 033667 000000 000000 DSDATA: 0 ; start data initially zero
2824
2825 033670 777777 777777 PARFLG: -1 ; 'automatic parity generation' flag
2826 033671 777777 777777 PRSFLG: -1 ; 'preserve EBUF' flag
2827
2828 033672 000000 000144 DSBYTE: ^D100 ; text length
2829
2830 033673 000000 000001 DSPAT: 1 ; data pattern
2831 033674 000000 000000 DSTPAT: 0 ; operator select pattern
2832
2833 033675 000000 000000 PCBFLG: 0 ; don't auto generate CCW list
2834
2835 033676 777777 777777 RSPFLG: -1 ; generate response flag
2836 033677 000000 000000 FORSEL: 0 ; datagram format
2837 033700 000000 000000 BSDFLG: 0 ; BSD style datagram flag
2838 033701 000000 000000 PADFLG: 0 ; pad datagrams flag
2839
2840 033702 000000 000000 DADDR: 0 ; destination address
2841 033703 000000 000000 0
2842
2843 033704 000000 000000 SADDR: 0 ; self address
2844 033705 000000 000000 0
2845
2846 033706 000000 000003 DSPRIN: ^D3 ; default length to print
2847
2848 033707 000000 000036 DSSUM: ^D30 ; default to 30 seconds
2849 033710 000000 000000 DSINT: 0 ; default to 0 milliseconds
2850
2851 033711 000000 000000 SANFLG: 0 ; sanity checking
2852
2853 033712 000000 000005 PTTVAL: 5 ; PTT value
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 67
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0230
2854
2855 ;#*********************************************************************
2856 ;* DECSR - Examine CSR register
2857 ;#*********************************************************************
2858
2859 033713 200 01 0 00 123503 DECSR: MOVE 1,[FMSGCD (ECSR <CR>)]
2860 033714 260 17 0 00 033656* GO CHKARG ; check for argument
2861 033715 263 17 0 00 000000 RTN ; error - exit
2862 033716 260 17 0 00 030712* GO RDCSR ; read the CSR register
2863 033717 037 00 0 00 123504 TMSGC <[Rdcsr failed]> ; error return
2864 033720 260 17 0 00 042605 GO CSRPNT ; print CSR data
2865 033721 037 00 0 00 030242 PCRL ; end of line
2866 033722 263 17 0 00 000000 RTN ; return
2867
2868
2869 ;#*********************************************************************
2870 ;* DDCSR - Deposit CSR register
2871 ;#*********************************************************************
2872
2873 033723 210 01 0 00 123515 DDCSR: MOVN 1,[FMSGCD (DCSR xxxxxx <CR>)]
2874 033724 260 17 0 00 033540* GO .OARG ; get argument
2875 033725 263 17 0 00 000000 RTN ; error/altmode/question - exit
2876 JRST [FMSGCD <? Missing argument>
2877 GO FIOFF
2878 033726 254 00 0 00 117722 RTN]
2879 033727 200 01 0 00 033615* MOVE 1,ARGUM ; get argument
2880 033730 260 17 0 00 000000* GO LDCSR ; write it
2881 033731 263 17 0 00 000000 RTN ; return
2882
2883
2884 ;#*********************************************************************
2885 ;* DZCSR - Zero CSR register
2886 ;#*********************************************************************
2887
2888 033732 200 01 0 00 123521 DZCSR: MOVE 1,[FMSGCD (ZCSR <CR>)]
2889 033733 260 17 0 00 033714* GO CHKARG ; check for argument
2890 033734 263 17 0 00 000000 RTN ; error - exit
2891 033735 400 01 0 00 000000 SETZ 1, ; clear data
2892 033736 260 17 0 00 033730* GO LDCSR ; write it
2893 033737 263 17 0 00 000000 RTN ; return
2894
2895
2896 ;#********************************************************************
2897 ;* DRESET - Issue an EBUS Reset
2898 ;#********************************************************************
2899
2900 033740 200 01 0 00 123525 DRESET: MOVE 1,[FMSGCD (RESET <CR>)]
2901 033741 260 17 0 00 033733* GO CHKARG ; check for argument
2902 033742 263 17 0 00 000000 RTN ; error - exit
2903 033743 260 17 0 00 000000* GO ERESET
2904 033744 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 68
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0231
2905
2906 ;#********************************************************************
2907 ;* DCLEAR - Issue a 'Port Clear'
2908 ;#********************************************************************
2909
2910 033745 200 01 0 00 123531 DCLEAR: MOVE 1,[FMSGCD (CLEAR <CR>)]
2911 033746 260 17 0 00 033741* GO CHKARG ; check for argument
2912 033747 263 17 0 00 000000 RTN ; error - exit
2913 033750 260 17 0 00 000000* GO IPACLR ; do a 'port clear'
2914 033751 263 17 0 00 000000 RTN ; return
2915
2916
2917 ;#********************************************************************
2918 ;* DSINIT - Set up start addr/data/history prior to single step command
2919 ;#********************************************************************
2920
2921 033752 200 01 0 00 123536 DSINIT: MOVE 1,[FMSGCD (SSINIT <CR>)]
2922 033753 260 17 0 00 033746* GO CHKARG ; check for argument
2923 033754 263 17 0 00 000000 RTN ; error - exit
2924 033755 200 00 0 00 033666 MOVE DSADDR ; get start address
2925 033756 202 00 0 00 000000* MOVEM SNEXT ; save it for IPASST
2926 033757 200 00 0 00 033667 MOVE DSDATA ; get start CSR data
2927 033760 202 00 0 00 000000* MOVEM SDATA ; save it for IPASST
2928 033761 260 17 0 00 033037 GO DSADD1 ; print start address
2929 033762 260 17 0 00 033055 GO DSCSR2 ; print start data
2930 033763 260 17 0 00 034130 GO DSSCLR ; clear sstep history
2931 033764 263 17 0 00 000000 RTN
2932
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 69
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0232
2933
2934 ;#********************************************************************
2935 ;* DSTART - Start the port
2936 ;
2937 ; Arguments set up:
2938 ;
2939 ; DSADDR - Current start address which has been specified by either a
2940 ; 'SETADD' command, or as an argument to the 'START' command.
2941 ; DSDATA - Current start CSR data specified by a 'SETCSR' command.
2942 ; PCBFLG - Set up 3-Word CCW list automatically flag
2943 ;
2944 ; Arguments set up for IPASST: SNEXT - Contents of DSADDR is used.
2945 ; SLAST - Contents of DSADDR is used.
2946 ; SDATA - Contents of DSDATA is used.
2947 ;#********************************************************************
2948
2949 033765 210 01 0 00 123546 DSTART: MOVN 1,[FMSGCD (START addr <CR> or START <CR>)]
2950 033766 260 17 0 00 033724* GO .OARG ; get start address
2951 033767 263 17 0 00 000000 RTN ; error/altmode/question - exit
2952 033770 334 01 0 00 033666 SKIPA 1,DSADDR ; no argument given
2953
2954 ; Check for PCB handling generation
2955
2956 033771 332 00 0 00 033675 SKIPE PCBFLG ; PCB flag set?
2957 033772 260 17 0 00 000000* GO CHINIT ; yes - initialize software
2958
2959 ; Start it up
2960
2961 033773 260 17 0 00 000000* DSTAR0: GO ISTOP ; stop the port
2962 033774 200 01 0 00 033727* MOVE 1,ARGUM ; get argument
2963 033775 202 01 0 00 033756* MOVEM 1,SNEXT ; set it up
2964 033776 202 00 0 00 000000* MOVEM SLAST ; set it up
2965 033777 200 00 0 00 033667 MOVE DSDATA ; get start data
2966 034000 202 00 0 00 033760* MOVEM SDATA ; set it up
2967 034001 260 17 0 00 000000* GO IPASRT ; start it up
2968 JRST [FMSGCD <? Error accessing CSR register>
2969 GO FIOFF
2970 034002 254 00 0 00 123556 RTN]
2971 JRST [FMSGCD <? Port not stopped>
2972 GO FIOFF
2973 034003 254 00 0 00 123566 RTN]
2974 034004 334 00 0 00 000000 SKIPA ; error - Error bits set in CSR
2975 034005 263 17 0 00 000000 RTN ; exit
2976 034006 037 01 0 00 123571 FMSGCD <? START failed - Error bits set in CSR>
2977 034007 260 17 0 00 033716* GO RDCSR ; read CSR register
2978 034010 255 00 0 00 000000 JFCL ; ignore error
2979 034011 260 17 0 00 042605 GO CSRPNT ; print CSR register
2980 034012 037 00 0 00 030242 PCRL ; end of line
2981 034013 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 70
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0233
2982
2983 ;#********************************************************************
2984 ;* DSTOP - Stop the port
2985 ;
2986 ; Arguments set by IPASTP:
2987 ;
2988 ; SNEXT - Set to stopping address.
2989 ; SDATA - Set to contents of CSR register.
2990 ;#********************************************************************
2991
2992 034014 200 01 0 00 123605 DSTOP: MOVE 1,[FMSGCD (STOP <CR>)]
2993 034015 260 17 0 00 033753* GO CHKARG ; check for argument
2994 034016 263 17 0 00 000000 RTN ; error - exit
2995 034017 260 17 0 00 000000* GO IPASTP ; stop it and get final address
2996 JRST [FMSGCD <? Error accessing CSR register>
2997 GO FIOFF
2998 034020 254 00 0 00 123556 RTN]
2999 JRST [FMSGCD <? Port not running>
3000 GO FIOFF
3001 034021 254 00 0 00 123613 RTN]
3002 034022 254 00 0 00 034027 JRST DSTOP1 ; error - Error bits set in CSR
3003 034023 037 00 0 00 123616 TMSGC <Port stopped. Last Adr = >
3004 034024 200 00 0 00 033775* MOVE SNEXT ; print it out
3005 034025 037 04 0 00 000000 PNT4
3006 034026 334 00 0 00 000000 SKIPA
3007 034027 037 01 0 00 123624 DSTOP1: FMSGCD <? Stop failed - Error bits set in CSR>
3008 034030 200 01 0 00 034000* MOVE 1,SDATA ; get CSR data
3009 034031 260 17 0 00 042605 GO CSRPNT ; print CSR register
3010 034032 037 00 0 00 030242 PCRL ; end of line
3011 034033 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 71
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0234
3012
3013 ;#********************************************************************
3014 ;* DSSTEP - Single step the port
3015 ;* DTRACE - Single step the port and trace progress
3016 ;
3017 ; Arguments set up for IPASST:
3018 ;
3019 ; SNEXT - This is the address last set up by another single step
3020 ; command or by a SETSTR (set up start data) command.
3021 ; After each single step the LAR is read. The contents
3022 ; of the LAR are put in SNEXT.
3023 ;
3024 ; SLAST - This is the address last executed. SNEXT is put in this
3025 ; location before each single step
3026 ;
3027 ; SDATA - This is the data last set up by another single step
3028 ; command or by a SET CSR (set up start data) command.
3029 ;
3030 ; Both of these routines store single step data in a ring buffer which
3031 ; can be examined with a SPRINT command. This is useful in debugging
3032 ; a microcode routine and instead of single stepping and tracing, you
3033 ; single step 500 times or until an error occurs, then examine last x
3034 ; locations to see what happened.
3035 ;#********************************************************************
3036
3037 034034 210 01 0 00 123646 DTRACE: MOVN 1,[FMSGCD (STRACE RepeatCount <CR> or STRACE <CR>)]
3038 034035 476 00 0 00 134153' SETOM DTRFLG ; set trace flag
3039 034036 254 00 0 00 034041 JRST DTRAC0 ; continue
3040
3041 034037 402 00 0 00 134153' DSSTEP: SETZM DTRFLG# ; clear trace flag
3042 034040 210 01 0 00 123660 MOVN 1,[FMSGCD (SSTEP RepeatCount <CR> or SSTEP <CR>)]
3043
3044 034041 402 00 0 00 033774* DTRAC0: SETZM ARGUM ; set default argument
3045 034042 350 00 0 00 034041* AOS ARGUM ; to 1 single step
3046 034043 260 17 0 00 033612* GO .DARG ; get argument
3047 034044 263 17 0 00 000000 RTN ; error/altmode/question - exit
3048 034045 255 00 0 00 000000 JFCL ; no argument given
3049 034046 260 17 0 00 033773* GO ISTOP ; stop the port
3050 034047 200 02 0 00 034042* MOVE 2,ARGUM ; get argument
3051 034050 400 04 0 00 000000 SETZ 4, ; clear count of single steps
3052 034051 332 00 0 00 134153' SKIPE DTRFLG ; trace flag set?
3053 034052 037 00 0 00 123661 TMSGCD < RAR LAR CSR (final) SS#>
3054
3055 ; Single step
3056
3057 034053 350 00 0 00 000004 DSST0: AOS 4 ; increment count
3058 034054 200 01 0 00 033671 MOVE 1,PRSFLG ; get preserve EBUF flag
3059 034055 200 00 0 00 034030* MOVE SDATA ; get initial CSR data
3060 034056 202 00 0 00 134241' MOVEM SLDATA# ; save initial CSR data
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 72
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0235
3061 034057 260 17 0 00 000000* GO IPASST ; single step once
3062 JRST [FMSGCD <? Error accessing CSR register>
3063 GO FIOFF
3064 034060 254 00 0 00 123556 RTN]
3065 JRST [FMSGCD <? Port not stopped>
3066 GO FIOFF
3067 034061 254 00 0 00 123566 RTN]
3068 JRST [GO SAVHST
3069 TMSGC <[Error bits set in CSR]>
3070 SKIPE DTRFLG
3071 JRST DSSTX
3072 TMSGC <[>
3073 MOVE 4
3074 PNTOCS
3075 TMSGD < ssteps done]>
3076 034062 254 00 0 00 123703 JRST DSSTX]
3077 034063 260 17 0 00 035357 GO SAVHST ; save data for sstep history
3078
3079 ; If tracing is being done
3080
3081 034064 200 01 0 00 034137 MOVE 1,SSLOC ; get history location
3082 034065 332 00 0 00 134153' SKIPE DTRFLG ; tracing being done?
3083 034066 260 17 0 00 035340 GO PNTHST ; yes - print it
3084
3085 ; Altmode and exit checking
3086
3087 034067 037 07 0 00 000003 DSST1: TTALTM ; altmode key struck?
3088 034070 334 00 0 00 000000 SKIPA ; no - proceed
3089 JRST [PCRL ; yes - print some final
3090 SKIPE DTRFLG ; data and exit
3091 RTN
3092 TMSG <[>
3093 MOVE 4
3094 PNTOCS
3095 TMSGD < ssteps done]>
3096 034071 254 00 0 00 123715 JRST DSSTX]
3097 034072 367 02 0 00 034053 SOJG 2,DSST0 ; loop till done
3098
3099 ; Exit
3100
3101 034073 037 00 0 00 123725 DSSTX: TMSGC <LAR Last/> ; print LAR data
3102 034074 200 00 0 00 033776* MOVE SLAST ; get last address
3103 034075 037 04 0 00 000000 PNT4 ; print it
3104 034076 037 00 0 00 123730 TMSG < Next/>
3105 034077 200 00 0 00 034024* MOVE SNEXT ; get next address
3106 034100 037 04 0 00 000000 PNT4 ; print it
3107 034101 037 00 0 00 123732 TMSG < CSR/> ; print CSR data
3108 034102 200 00 0 00 034055* MOVE SDATA ; get it
3109 034103 037 13 0 00 000000 PNTHW ; print it
3110 034104 037 00 0 00 030242 PCRL ; end of line
3111 034105 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 73
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0236
3112
3113 ;#********************************************************************
3114 ;* DSSPNT - Print single step history
3115 ;#********************************************************************
3116
3117 034106 201 00 0 00 000024 DSSPNT: MOVEI ^D20 ; set default number of ssteps
3118 034107 202 00 0 00 034047* MOVEM ARGUM ; to print to 20
3119 034110 210 01 0 00 123744 MOVN 1,[FMSGCD (SPRINT EntryCount or SPRINT <CR>)]
3120 034111 260 17 0 00 034043* GO .DARG ; get argument
3121 034112 263 17 0 00 000000 RTN ; error/altmode/question - exit
3122 034113 255 00 0 00 000000 JFCL ; no argument given
3123 034114 200 03 0 00 034107* MOVE 3,ARGUM ; get argument
3124 034115 200 01 0 00 034137 MOVE 1,SSLOC ; get current location
3125 034116 037 00 0 00 123661 TMSGCD < RAR LAR CSR (final) SS#>
3126 034117 260 17 0 00 035340 DSSPN0: GO PNTHST ; print an item
3127 034120 037 07 0 00 000003 TTALTM ; altmode typed?
3128 034121 334 00 0 00 000000 SKIPA ; no - continue
3129 034122 263 17 0 00 000000 RTN ; yes - exit
3130 034123 375 00 0 00 000001 SOSGE 1 ; decrement pointer - at start of list?
3131 034124 201 01 0 00 000177 MOVEI 1,177 ; yes - point to end now
3132 034125 333 00 0 01 034140 SKIPLE SSNUM(1) ; valid entry?
3133 034126 367 03 0 00 034117 SOJG 3,DSSPN0 ; yes - loop till done
3134 034127 263 17 0 00 000000 RTN ; no - return
3135
3136
3137 ;#********************************************************************
3138 ;* DSSCLR - Clear single step history data
3139 ;#********************************************************************
3140
3141 034130 200 01 0 00 123751 DSSCLR: MOVE 1,[FMSGCD (SCLEAR <CR>)]
3142 034131 260 17 0 00 034015* GO CHKARG ; check for argument
3143 034132 263 17 0 00 000000 RTN ; error - exit
3144 034133 402 00 0 00 034137 SETZM SSLOC ; clear first word
3145 034134 200 00 0 00 123752 MOVE [SSLOC,,SSLOC+1] ; build BLT pointer
3146 034135 251 00 0 00 035337 BLT SSCSRN+177 ; clear it
3147 034136 263 17 0 00 000000 RTN ; return
3148
3149 ; Ring buffer and miscellaneous data
3150
3151 034137 000000 000000 SSLOC: 0 ; pointer to single step entry
3152 034140 SSNUM: BLOCK 200 ; latest single step number
3153 034340 SSADRL: BLOCK 200 ; initial address
3154 034540 SSADRN: BLOCK 200 ; final address
3155 034740 SSCSRL: BLOCK 200 ; initial CSR
3156 035140 SSCSRN: BLOCK 200 ; final CSR
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 74
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0237
3157
3158 ;#********************************************************************
3159 ;* PNTHST - Print a single step history entry
3160 ;
3161 ; Argument: AC1 - location to print (offset into tables)
3162 ;#********************************************************************
3163
3164 035340 261 17 0 00 000000 PNTHST: PUT 0 ; save AC0
3165 035341 200 00 0 01 034340 MOVE SSADRL(1) ; print LAR (last) contents
3166 035342 037 04 0 00 000000 PNT4
3167 035343 037 00 0 00 117042 TMSG < >
3168 035344 200 00 0 01 034540 MOVE SSADRN(1) ; print LAR (next) contents
3169 035345 037 04 0 00 000000 PNT4
3170 035346 037 00 0 00 117042 TMSG < >
3171 035347 200 00 0 01 035140 MOVE SSCSRN(1) ; get CSR (final) data
3172 035350 037 13 0 00 000000 PNTHW ; print it
3173 035351 037 00 0 00 117042 TMSG < >
3174 035352 200 00 0 01 034140 MOVE SSNUM(1) ; get sstep number
3175 035353 037 16 0 00 000003 PNTOCS ; print it
3176 035354 037 00 0 00 030242 PCRL
3177 035355 262 17 0 00 000000 GET 0 ; restore AC0
3178 035356 263 17 0 00 000000 RTN ; return
3179
3180
3181 ;#********************************************************************
3182 ;* SAVHST - Save single step history data
3183 ;#********************************************************************
3184
3185 035357 261 17 0 00 000000 SAVHST: RPUT (0,1,2) ; save AC's
3186
3187 035362 200 02 0 00 034137 MOVE 2,SSLOC ; get last offset
3188 035363 200 02 0 02 034140 MOVE 2,SSNUM(2) ; get last number
3189 035364 350 01 0 00 034137 AOS 1,SSLOC ; get/increment offset
3190 035365 301 01 0 00 000200 CAIL 1,200 ; overflow ring buffer yet?
3191 035366 403 01 0 00 034137 SETZB 1,SSLOC ; yes - reinitialize pointer
3192 035367 350 00 0 00 000002 AOS 2 ; increment ss number
3193 035370 202 02 0 01 034140 MOVEM 2,SSNUM(1) ; save it
3194 035371 200 00 0 00 034074* MOVE SLAST ; get initial address
3195 035372 202 00 0 01 034340 MOVEM SSADRL(1) ; save it
3196 035373 200 00 0 00 034077* MOVE SNEXT ; get final address
3197 035374 202 00 0 01 034540 MOVEM SSADRN(1) ; save it
3198 035375 200 00 0 00 134241' MOVE SLDATA ; get initial CSR data
3199 035376 202 00 0 01 034740 MOVEM SSCSRL(1) ; save it
3200 035377 200 00 0 00 034102* MOVE SDATA ; get final CSR data
3201 035400 202 00 0 01 035140 MOVEM SSCSRN(1) ; save it
3202 035401 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
3203
3204 035404 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 75
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0238
3205
3206 ;#********************************************************************
3207 ;* DCONT - Continue the port
3208 ;
3209 ; Arguments set up for IPASRT:
3210 ;
3211 ; SNEXT - Points to next address, from IPASTP or IPASST
3212 ; SDATA - Defaults to current contents of SDATA last set up by IPASTP.
3213 ;#********************************************************************
3214
3215 035405 200 01 0 00 123756 DCONT: MOVE 1,[FMSGCD (CONT <CR>)]
3216 035406 260 17 0 00 034131* GO CHKARG ; check for argument
3217 035407 263 17 0 00 000000 RTN ; error - exit
3218 035410 260 17 0 00 034001* GO IPASRT ; start it up
3219 JRST [FMSGCD <? Error accessing CSR register>
3220 GO FIOFF
3221 035411 254 00 0 00 123556 RTN]
3222 JRST [FMSGCD <? Port not stopped>
3223 GO FIOFF
3224 035412 254 00 0 00 123566 RTN]
3225 035413 334 00 0 00 000000 SKIPA ; error - Error bits set in CSR
3226 035414 263 17 0 00 000000 RTN ; exit
3227 035415 037 01 0 00 123757 FMSGCD <? CONT failed - Error bits set in CSR>
3228 035416 200 01 0 00 035377* MOVE 1,SDATA ; get CSR data
3229 035417 260 17 0 00 042605 GO CSRPNT ; print CSR register
3230 035420 037 01 0 00 030242 PCRLF ; end of line
3231 035421 263 17 0 00 000000 RTN ; continue
3232
3233 ;#********************************************************************
3234 ;* DEEBUF - Examine EBUF register
3235 ;#********************************************************************
3236
3237 035422 200 01 0 00 123773 DEEBUF: MOVE 1,[FMSGCD (EEBUF <CR>)]
3238 035423 260 17 0 00 035406* GO CHKARG ; check for argument
3239 035424 263 17 0 00 000000 RTN ; error - exit
3240 035425 260 17 0 00 034046* DEBEBU: GO ISTOP ; stop the port
3241 035426 260 17 0 00 000000* GO SETEBU ; ensure 'Test EBUF' bit is set
3242 JRST [FMSGCD <? Error accessing CSR register>
3243 GO FIOFF
3244 035427 254 00 0 00 123556 RTN]
3245
3246 ; Now read the data
3247
3248 035430 260 17 0 00 000000* GO RDEBUF ; read EBUF
3249 035431 037 00 0 00 123774 TMSGC <EBUF/ > ; print out the data
3250 035432 200 00 0 00 000001 MOVE 1
3251 035433 037 13 0 00 000000 PNTHW
3252 035434 037 00 0 00 030242 PCRL
3253 035435 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 76
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0239
3254
3255 ;#********************************************************************
3256 ;* DDEBUF - Deposit EBUF register
3257 ;* DZEBUF - Zero EBUF register
3258 ;#********************************************************************
3259
3260 035436 200 01 0 00 124001 DZEBUF: MOVE 1,[FMSGCD (ZEBUF <CR>)]
3261 035437 260 17 0 00 035423* GO CHKARG ; check for argument
3262 035440 263 17 0 00 000000 RTN ; error - exit
3263 035441 402 00 0 00 034114* SETZM ARGUM ; clear data
3264 035442 254 00 0 00 035447 JRST DDEBU1 ; continue
3265
3266 035443 210 01 0 00 124010 DDEBUF: MOVN 1,[FMSGCD (DEBUF xxxxxxxxxxxx <CR>)]
3267 035444 260 17 0 00 033766* GO .OARG ; get argument
3268 035445 263 17 0 00 000000 RTN ; error/altmode/question - exit
3269 JRST [FMSGCD <? Missing argument>
3270 GO FIOFF
3271 035446 254 00 0 00 117722 RTN]
3272 035447 260 17 0 00 035425* DDEBU1: GO ISTOP ; stop the port
3273 035450 260 17 0 00 035426* GO SETEBU ; ensure 'Test EBUF' bit is set
3274 JRST [FMSGCD <? Error accessing CSR register>
3275 GO FIOFF
3276 035451 254 00 0 00 123556 RTN]
3277 035452 200 01 0 00 035441* MOVE 1,ARGUM ; get argument
3278 035453 260 17 0 00 000000* GO LDEBUF ; write it
3279 035454 263 17 0 00 000000 RTN ; continue
3280
3281
3282 ;#********************************************************************
3283 ;* DELAR - Examine LAR register
3284 ;#********************************************************************
3285
3286 035455 200 01 0 00 124014 DELAR: MOVE 1,[FMSGCD (ELAR <CR>)]
3287 035456 260 17 0 00 035437* GO CHKARG ; check for argument
3288 035457 263 17 0 00 000000 RTN ; error - exit
3289 035460 260 17 0 00 035447* DEBLAR: GO ISTOP ; stop the port
3290 035461 201 01 0 00 040000 MOVEI 1,SELLAR ; get 'DIAG Sel LAR' bit
3291 035462 260 17 0 00 033736* GO LDCSR ; write to CSR register
3292 035463 260 17 0 00 000000* GO RDLAR ; read LAR
3293 035464 037 00 0 00 124015 TMSGC <LAR: > ; print out the data
3294 035465 200 00 0 00 000001 MOVE 1
3295 035466 037 16 0 00 000003 PNTOCS
3296 035467 037 00 0 00 124017 TMSG < (Adr: >
3297 035470 242 01 0 00 777777 LSH 1,-1 ; don't print out RAR bit
3298 035471 200 00 0 00 000001 MOVE 1
3299 035472 037 16 0 00 000003 PNTOCS
3300 035473 037 00 0 00 122545 TMSGD <)>
3301 035474 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 77
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0240
3302
3303 ;#********************************************************************
3304 ;* DDRAR - Deposit RAR register
3305 ;#********************************************************************
3306
3307 035475 210 01 0 00 124025 DDRAR: MOVN 1,[FMSGCD (DRAR addr <CR>)]
3308 035476 260 17 0 00 035444* GO .OARG ; get test number
3309 035477 263 17 0 00 000000 RTN ; error/altmode/question - exit
3310 JRST [FMSGCD <? Missing argument>
3311 GO FIOFF
3312 035500 254 00 0 00 117722 RTN]
3313 035501 260 17 0 00 035460* GO ISTOP ; stop the port
3314 035502 400 01 0 00 000000 SETZ 1, ; ensure we can write the RAR
3315 035503 260 17 0 00 035462* GO LDCSR ; by clearing CSR register
3316 035504 200 01 0 00 035452* MOVE 1,ARGUM ; get argument
3317 035505 260 17 0 00 000000* GO LDRAR ; write it
3318 035506 263 17 0 00 000000 RTN ; continue
3319
3320
3321 ;#********************************************************************
3322 ;* DZRAR - Zero RAR register
3323 ;#********************************************************************
3324
3325 035507 200 01 0 00 124031 DZRAR: MOVE 1,[FMSGCD (ZRAR <CR>)]
3326 035510 260 17 0 00 035456* GO CHKARG ; check for argument
3327 035511 263 17 0 00 000000 RTN ; error - exit
3328 035512 260 17 0 00 035501* GO ISTOP ; stop the port
3329 035513 400 01 0 00 000000 SETZ 1, ; clear data
3330 035514 260 17 0 00 035503* GO LDCSR ; clear CSR first
3331 035515 260 17 0 00 035505* GO LDRAR ; write it
3332 035516 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 78
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0241
3333
3334 ;#*********************************************************************
3335 ;* DECRAM - Examine CRAM locations specified by "PARG1" and "PARG2".
3336 ;#*********************************************************************
3337
3338 035517 201 00 0 00 000000 DECRAM: MOVEI 0 ; set the 'EDZL' flag
3339 035520 202 00 0 00 134152' MOVEM DFLAG# ; to 0 (Examine)
3340 035521 254 00 0 00 035541 JRST DCOMGO ; process arguments
3341
3342 ;#*********************************************************************
3343 ;* DDCRAM - Change CRAM locations.
3344 ;#*********************************************************************
3345
3346 035522 201 00 0 00 000001 DDCRAM: MOVEI 1 ; set the 'EDZL' flag
3347 035523 202 00 0 00 134152' MOVEM DFLAG ; to 1 (Deposit)
3348 035524 254 00 0 00 035541 JRST DCOMGO ; process arguments
3349
3350 ;#*********************************************************************
3351 ;* DBCRAM - Change CRAM locations by field
3352 ;#*********************************************************************
3353
3354 035525 201 00 0 00 000002 DBCRAM: MOVEI 2 ; set the 'EDZL' flag
3355 035526 202 00 0 00 134152' MOVEM DFLAG ; to 1 (Deposit)
3356 035527 254 00 0 00 035541 JRST DCOMGO ; process arguments
3357
3358 ;#*********************************************************************
3359 ;* DACRAM - Alter CRAM locations.
3360 ;#*********************************************************************
3361
3362 035530 201 00 0 00 000003 DACRAM: MOVEI 3 ; set the 'EDZL' flag
3363 035531 202 00 0 00 134152' MOVEM DFLAG ; to 1 (Deposit)
3364 035532 254 00 0 00 035541 JRST DCOMGO ; process arguments
3365
3366 ;#*********************************************************************
3367 ;* DZCRAM -- Zero CRAM addresses specified.
3368 ;#*********************************************************************
3369
3370 035533 201 00 0 00 000004 DZCRAM: MOVEI 4 ; set the 'EDZL' flag
3371 035534 202 00 0 00 134152' MOVEM DFLAG ; to 2 (Zero)
3372 035535 254 00 0 00 035541 JRST DCOMGO ; process arguments
3373
3374 ;#*********************************************************************
3375 ;* DLCRAM -- List CRAM addresses specified.
3376 ;#*********************************************************************
3377
3378 035536 201 00 0 00 000005 DLCRAM: MOVEI 5 ; set the 'EDZL' flag
3379 035537 202 00 0 00 134152' MOVEM DFLAG ; to 3 (List)
3380 035540 254 00 0 00 035541 JRST DCOMGO ; process arguments
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 79
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0242
3381
3382 ; Start to process the arguments typed - both should be CRAM
3383 ; addresses in octal.
3384
3385 035541 200 00 0 00 035607 DCOMGO: MOVE RTO ; set up default range of CRAM locs
3386 035542 202 00 0 00 035603 MOVEM CRAMTO ; to be whatever typed before or
3387 035543 200 00 0 00 035610 MOVE RFROM ; if nothing typed, then 0-0
3388 035544 202 00 0 00 035602 MOVEM CRAMFR
3389
3390 ; Get first address
3391
3392 035545 200 01 0 00 124037 MOVE 1,[FMSGCD <xCRAM addr,addr (CR)>]
3393 035546 260 17 0 00 035476* GO .OARG ; get first address
3394 035547 263 17 0 00 000000 RTN ; error/altmode/question - exit
3395 035550 254 00 0 00 035562 JRST DCOM0 ; no arguments given - continue
3396 035551 200 00 0 00 035504* MOVE ARGUM ; get argument
3397 035552 202 00 0 00 035602 MOVEM CRAMFR ; save in 'from' location
3398 035553 202 00 0 00 035603 MOVEM CRAMTO ; save in 'to' location
3399
3400 ; Get 2nd address
3401
3402 035554 210 01 0 00 124037 MOVN 1,[FMSGCD <xCRAM addr,addr (CR)>]
3403 035555 260 17 0 00 035546* GO .OARG ; get first address
3404 035556 263 17 0 00 000000 RTN ; error/altmode/question - exit
3405 035557 254 00 0 00 035562 JRST DCOM0 ; no arguments given - continue
3406 035560 200 00 0 00 035551* MOVE ARGUM ; get argument
3407 035561 202 00 0 00 035603 MOVEM CRAMTO ; save in 'to' location
3408
3409 ; Now range check the arguments
3410
3411 035562 331 01 0 00 035602 DCOM0: SKIPL 1,CRAMFR ; 1st argument in range?
3412 035563 303 01 0 00 007777 CAILE 1,7777
3413 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
3414 SETOM ALTF
3415 GO FIOFF
3416 035564 254 00 0 00 124040 RTN]
3417 035565 331 01 0 00 035603 SKIPL 1,CRAMTO ; 2nd argument in range?
3418 035566 303 01 0 00 007777 CAILE 1,7777
3419 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
3420 GO FIOFF
3421 035567 254 00 0 00 122327 RTN]
3422 035570 274 01 0 00 035602 SUB 1,CRAMFR ; see if range ok
3423 JUMPL 1,[FMSGCD <? Range nonsensical>
3424 GO FIOFF
3425 035571 321 01 0 00 122563 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 80
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0243
3426
3427 ;#*********************************************************************
3428 ; Process the command - examine, deposit, or zero
3429 ;#*********************************************************************
3430
3431 ; Save default arguments
3432
3433 035572 200 00 0 00 035602 MOVE CRAMFR ; set up the new default range
3434 035573 202 00 0 00 035610 MOVEM RFROM ; selected, for later EXAM,
3435 035574 200 00 0 00 035603 MOVE CRAMTO ; DEPOS, or ZEROs
3436 035575 202 00 0 00 035607 MOVEM RTO
3437
3438 ; Then ensure the port is stopped
3439
3440 035576 260 17 0 00 035512* GO ISTOP ; stop the port
3441
3442 ; Now do it
3443
3444 035577 476 00 0 00 134150' DCOM1: SETOM DC1ST# ; init 'first location' flag
3445 035600 200 01 0 00 134152' MOVE 1,DFLAG ; get type of command
3446 JRST @[DCOMEX ; dispatch to proper routine
3447 DCOMDE
3448 DCOMDB
3449 DCOMAL
3450 DCOMZE
3451 035601 254 00 1 01 124044 DCOMLI](1)
3452
3453 ; Default CRAM locations, CRAM data, and Misc
3454
3455 035602 000000 000000 CRAMFR: 0 ; range is from CRAMFR to
3456 035603 000000 000000 CRAMTO: 0 ; CRAMTO
3457 035604 000000 000000 CADDR: 0 ; current address
3458
3459 035605 000000 000000 CWORDL: 0 ; left 28 bits
3460 035606 000000 000000 CWORDR: 0 ; right 28 bits
3461
3462 035607 000000 000000 RTO: 0 ; start address (default)
3463 035610 000000 000000 RFROM: 0 ; end address (default)
3464
3465 035611 000000 000000 ANEXT: 0 ; next address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 81
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0244
3466
3467 ;#*********************************************************************
3468 ; Deposit into CRAM locations.
3469 ;#*********************************************************************
3470
3471 DCOMDE: MOVEI [SETZM ALTF ; set up altmode transfer address
3472 GO FIOFF ; to exit this command
3473 035612 201 00 0 00 117054 RTN]
3474 035613 202 00 0 00 030063 MOVEM ALTMGO
3475 035614 335 00 0 00 134150' SKIPGE DC1ST ; first location?
3476 035615 037 01 0 00 124052 FMSGC <Type xxxx,xxxx,xxxx,xxxx,xxxx>
3477 035616 402 00 0 00 134150' SETZM DC1ST ; clear 'first location' flag
3478 035617 037 01 0 00 030242 PCRLF
3479 035620 476 00 0 00 035605 SETOM CWORDL ; initialize left 30 bits
3480 035621 476 00 0 00 035606 SETOM CWORDR ; initialize right 30 bits
3481 035622 200 00 0 00 035602 MOVE CRAMFR ; get the address to modify
3482 035623 202 00 0 00 035604 MOVEM CADDR ; save address for writing
3483 035624 037 04 0 00 000001 PNT4F ; print it
3484 035625 037 01 0 00 124061 FMSG <:: >
3485 035626 403 04 0 00 000005 SETZB 4,5 ; clear data input locations
3486 035627 476 00 0 00 032305* SETOM ARGFLG ; ensure that an argument is expected
3487 035630 200 01 0 00 124072 MOVE 1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
3488 035631 260 17 0 00 035555* GO .OARG ; get first address
3489 035632 263 17 0 00 000000 RTN ; error/altmode/question - exit
3490 JRST [FMSGCD <? Missing arguments>
3491 GO FIOFF
3492 035633 254 00 0 00 124100 RTN]
3493 035634 200 00 0 00 035560* MOVE ARGUM ; get argument
3494 035635 137 00 0 00 124103 DPB [POINT 12,4,11] ; save it
3495 035636 200 01 0 00 124072 MOVE 1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
3496 035637 260 17 0 00 035631* GO .OARG ; get first address
3497 035640 263 17 0 00 000000 RTN ; error/altmode/question - exit
3498 JRST [FMSGCD <? Missing arguments>
3499 GO FIOFF
3500 035641 254 00 0 00 124100 RTN]
3501 035642 200 00 0 00 035634* MOVE ARGUM ; get argument
3502 035643 137 00 0 00 124104 DPB [POINT 12,4,23] ; save it
3503 035644 200 01 0 00 124072 MOVE 1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
3504 035645 260 17 0 00 035637* GO .OARG ; get first address
3505 035646 263 17 0 00 000000 RTN ; error/altmode/question - exit
3506 JRST [FMSGCD <? Missing arguments>
3507 GO FIOFF
3508 035647 254 00 0 00 124100 RTN]
3509 035650 200 00 0 00 035642* MOVE ARGUM ; get argument
3510 035651 137 00 0 00 124105 DPB [POINT 12,4,35] ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 82
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0245
3511 035652 200 01 0 00 124072 MOVE 1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
3512 035653 260 17 0 00 035645* GO .OARG ; get first address
3513 035654 263 17 0 00 000000 RTN ; error/altmode/question - exit
3514 JRST [FMSGCD <? Missing arguments>
3515 GO FIOFF
3516 035655 254 00 0 00 124100 RTN]
3517 035656 200 00 0 00 035650* MOVE ARGUM ; get argument
3518 035657 137 00 0 00 124106 DPB [POINT 12,5,11] ; save it
3519 035660 210 01 0 00 124072 MOVN 1,[FMSGCD <xxxx,xxxx,xxxx,xxxx,xxxx (CR)>]
3520 035661 260 17 0 00 035653* GO .OARG ; get first address
3521 035662 263 17 0 00 000000 RTN ; error/altmode/question - exit
3522 JRST [FMSGCD <? Missing argument>
3523 GO FIOFF
3524 035663 254 00 0 00 117722 RTN]
3525 035664 200 00 0 00 035656* MOVE ARGUM ; get argument
3526 035665 137 00 0 00 124107 DPB [POINT 12,5,23] ; save it
3527 035666 135 00 0 00 124110 LDB [POINT 30,4,29] ; get left 30 bits
3528 035667 202 00 0 00 035605 MOVEM CWORDL ; save them
3529 035670 246 04 0 00 777772 LSHC 4,-^D6 ; position right 30 bits properly
3530 035671 135 00 0 00 124111 LDB [POINT 30,5,29] ; get right 30 bits
3531 035672 202 00 0 00 035606 MOVEM CWORDR ; save them
3532 035673 260 17 0 00 036231 GO DWCRAM ; go write CRAM location
3533 035674 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
3534 035675 350 01 0 00 035602 AOS 1,CRAMFR ; update the specified address
3535 035676 202 01 0 00 035611 MOVEM 1,ANEXT ; save next address
3536 035677 317 01 0 00 035603 CAMG 1,CRAMTO ; reach end yet?
3537 035700 254 00 0 00 035612 JRST DCOMDE ; no - loop till done
3538 035701 263 17 0 00 000000 RTN ; yes - exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 83
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0246
3539
3540 ;#*********************************************************************
3541 ; Deposit into CRAM locations (by bit field)
3542 ;#*********************************************************************
3543
3544 035702 402 00 0 00 035605 DCOMDB: SETZM CWORDL ; initialize left 28 bits
3545 035703 402 00 0 00 035606 SETZM CWORDR ; initialize right 28 bits
3546 035704 200 00 0 00 035602 MOVE CRAMFR ; get the address to modify
3547 035705 202 00 0 00 035604 MOVEM CADDR ; save address for writing
3548 035706 254 00 0 00 035712 JRST DCOMAG
3549
3550 035707 200 00 0 00 035602 DCOMAL: MOVE CRAMFR ; get the address to modify
3551 035710 202 00 0 00 035604 MOVEM CADDR ; save address for writing
3552 035711 260 17 0 00 036263 GO DRCRAM ; read CRAM (init both words)
3553
3554 ; Set up initial data
3555
3556 035712 335 00 0 00 134150' DCOMAG: SKIPGE DC1ST ; first location?
3557 PNTMSF [ASCIZ /
3558 035713 037 01 0 00 124112 Type value,value... or ^,CR,^Z,field name/]
3559 035714 402 00 0 00 134150' SETZM DC1ST ; clear 'first location' flag
3560 035715 037 01 0 00 030242 PCRLF
3561 MOVEI [SETZM ALTF ; set up altmode transfer address
3562 GO FIOFF ; to exit this command
3563 PCRLF
3564 035716 201 00 0 00 124123 RTN]
3565 035717 202 00 0 00 030063 MOVEM ALTMGO
3566 035720 200 00 0 00 035602 MOVE CRAMFR ; get the address to modify
3567 035721 037 04 0 00 000001 PNT4F ; print it
3568 035722 037 01 0 00 124127 FMSGD <::>
3569 035723 260 17 0 00 032263* GO CLRBUF ; clear input buffer
3570 035724 402 00 0 00 030231 SETZM $TTCHR ; clear last character typed
3571
3572 ; Select an entry from the bit table
3573
3574 035725 201 06 0 00 000001 MOVEI 6,1 ; init bit pointer
3575 035726 275 06 0 00 000002 DCOMA0: SUBI 6,2 ; decrement entry pointer
3576 035727 315 06 0 00 124130 CAMGE 6,[-1] ; backed up too far?
3577 035730 474 06 0 00 000000 SETO 6, ; force to start at beginning
3578 035731 350 00 0 00 000006 DCOMA1: AOS 6 ; point to next entry
3579 035732 303 06 0 00 000021 CAILE 6,^D17 ; done with microword?
3580 035733 254 00 0 00 035775 JRST DCOMAX ; yes - exit (write location)
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 84
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0247
3581
3582 ; Have an entry - now get input/dispatch data
3583
3584 035734 200 00 0 00 030231 MOVE $TTCHR ; get last character typed
3585 035735 302 00 0 00 000054 CAIE "," ; was it a comma
3586 035736 306 00 0 00 000040 CAIN " " ; or a blank?
3587 035737 254 00 0 00 035751 JRST DCOMA3 ; yes - continue
3588 035740 332 00 0 00 134161' DCOMAA: SKIPE FINPUT ; file input?
3589 JRST [GO FINCMD ; yes - input sixbit cmd
3590 JRST .+1 ; error or EOF
3591 035741 254 00 0 00 124131 JRST DCOM3A] ; continue
3592 035742 200 00 0 00 134152' MOVE DFLAG ; get dispatch flag
3593 035743 306 00 0 00 000002 CAIN 2 ; alter?
3594 035744 254 00 0 00 035750 JRST DCOMA2 ; no - continue
3595 035745 260 17 1 06 036031 GO @DCOLDB(6) ; yes - get data byte
3596 035746 037 17 0 00 000003 PNTOCF
3597 035747 037 01 0 00 000040 PSPF
3598
3599 035750 256 00 0 06 036007 DCOMA2: XCT DCOMSG(6) ; no - print field name
3600 035751 037 10 0 00 000003 DCOMA3: TTSIXB ; get input
3601 ALTCHK [GET XXW# ; adjust stack properly
3602 SKIPN $TWCNT ; did a timeout occur?
3603 JRST DCOMA3 ; yes - keep looking for input
3604 MOVE $TTCHR ; get character typed
3605 CAIN "^" ; backup character?
3606 JRST DCOMA0 ; yes - backup
3607 CAIN 32 ; control-Z?
3608 PCRLF ; yes - a final blank line
3609 CAIN 32 ; control-Z?
3610 JRST DCOMAX ; yes - exit - done
3611 CAIN "?" ; question mark?
3612 JRST [XCT MWDQUE(6); yes - handle
3613 PCRLF
3614 JRST DCOMAA]
3615 FMSGCD <? Argument error>
3616 GO CLRBUF
3617 PCRLF
3618 GO FIOFF
3619 035752 007 00 0 00 124144 JRST DCOMA2] ; no - error - reask question
3620 DCOM3A: JUMPE [MOVE $TTCHR ; anything typed? if a space, keep
3621 CAIN 40 ; looking for an argument, if not
3622 JRST DCOMA3 ; exit
3623 035753 322 00 0 00 124165 JRST DCOMA5]
3624 035754 202 00 0 00 134234' MOVEM SAVFLD# ; save argument
3625 035755 200 01 0 00 134234' MOVE 1,SAVFLD ; get into AC1
3626 035756 260 17 0 00 031067* GO CONVSX ; convert to octal
3627 035757 334 00 0 00 000000 SKIPA
3628 035760 254 00 0 00 035770 JRST DCOMA4 ; ok - insert into data
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 85
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0248
3629
3630 ; Unrecognizable - check if a field was specified
3631
3632 035761 200 01 0 00 134234' MOVE 1,SAVFLD ; get command into AC1
3633 035762 201 02 0 00 036075 MOVEI 2,FLDLIS ; get address of field list
3634 035763 260 17 0 00 033424* GO .COMM ; handle command decoding
3635 JRST [FMSGCD <? Argument error>
3636 GO CLRBUF
3637 PCRLF
3638 GO FIOFF
3639 035764 254 00 0 00 124160 JRST DCOMA2] ; no - error - reask question
3640 035765 370 00 0 00 000001 SOS 1 ; normalize to -1..12
3641 035766 200 06 0 00 000001 MOVE 6,1 ; put into AC6
3642 035767 254 00 0 00 035731 JRST DCOMA1 ; go handle the field
3643
3644 ; Insert field entry
3645
3646 035770 200 00 0 00 000001 DCOMA4: MOVE 1 ; get number
3647 035771 260 17 1 06 036053 GO @DCODPB(6) ; yes - insert it
3648 035772 200 00 0 00 030231 DCOMA5: MOVE $TTCHR ; get last character typed
3649 035773 312 00 0 00 000015 CAME 15 ; CRLF?
3650 035774 254 00 0 00 035731 JRST DCOMA1 ; no - get next entry
3651
3652 ; Finally, write the location
3653
3654 035775 260 17 0 00 036231 DCOMAX: GO DWCRAM ; go write CRAM location
3655 035776 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
3656 035777 350 01 0 00 035602 AOS 1,CRAMFR ; update the specified address
3657 036000 202 01 0 00 035611 MOVEM 1,ANEXT ; save next address
3658 036001 313 01 0 00 035603 CAMLE 1,CRAMTO ; reach end yet?
3659 036002 263 17 0 00 000000 RTN ; yes - exit
3660 036003 200 00 0 00 134152' MOVE DFLAG ; get dispatch flag
3661 036004 302 00 0 00 000003 CAIE 3 ; alter?
3662 036005 254 00 0 00 035702 JRST DCOMDB ; no - deposit by bit field
3663 036006 254 00 0 00 035707 JRST DCOMAL ; yes - alter by bit field
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 86
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0249
3664
3665 ; Input message table
3666
3667 036007 037 01 0 00 124171 DCOMSG: FMSG <J - >
3668 036010 037 01 0 00 124172 FMSG <PAR - >
3669 036011 037 01 0 00 124174 FMSG <OENA - >
3670 036012 037 01 0 00 124176 FMSG <MGC - >
3671 036013 037 01 0 00 124200 FMSG <SORC - >
3672 036014 037 01 0 00 124202 FMSG <FUNC - >
3673 036015 037 01 0 00 124204 FMSG <DEST - >
3674 036016 037 01 0 00 124206 FMSG <CENA - >
3675 036017 037 01 0 00 124210 FMSG <RAM - >
3676 036020 037 01 0 00 124212 FMSG <A - >
3677 036021 037 01 0 00 124213 FMSG <B - >
3678 036022 037 01 0 00 124214 FMSG <SK - >
3679 036023 037 01 0 00 124216 FMSG <BUS - >
3680 036024 037 01 0 00 124220 FMSG <CRY - >
3681 036025 037 01 0 00 124222 FMSG <CTL - >
3682 036026 037 01 0 00 124224 FMSG <TIME - >
3683 036027 037 01 0 00 124226 FMSG <SPARE - >
3684 036030 037 01 0 00 124230 FMSG <MARK - >
3685
3686 ; Microword load byte pointer table
3687
3688 DCOLDB: [LDB [POINT 12,CWORDL,17] ; J - Bits 6-17
3689 036031 000000 124233 RTN]
3690 [LDB [POINT 1,CWORDL,18] ; PAR - Bit 18
3691 036032 000000 124236 RTN]
3692 [LDB [POINT 1,CWORDL,19] ; OENA - Bit 19
3693 036033 000000 124241 RTN]
3694 [LDB [POINT 10,CWORDL,29] ; MGC - Bits 20-29
3695 036034 000000 124244 RTN]
3696 [LDB [POINT 3,CWORDL,32] ; SORC - Bits 30-32
3697 036035 000000 124247 RTN]
3698 [LDB [POINT 3,CWORDL,35] ; FUNC - Bits 33-35
3699 036036 000000 124252 RTN]
3700 [LDB [POINT 3,CWORDR,8] ; DEST - Bits 6-8
3701 036037 000000 124255 RTN]
3702 [LDB [POINT 1,CWORDR,9] ; CENA - Bit 9
3703 036040 000000 124260 RTN]
3704 [LDB [POINT 1,CWORDR,10] ; RAM - Bit 10
3705 036041 000000 124263 RTN]
3706 [LDB [POINT 4,CWORDR,14] ; A - Bits 11-14
3707 036042 000000 124266 RTN]
3708 [LDB [POINT 4,CWORDR,18] ; B - Bits 15-18
3709 036043 000000 124271 RTN]
3710 [LDB [POINT 5,CWORDR,23] ; SK - Bits 19-23
3711 036044 000000 124274 RTN]
3712 [LDB [POINT 3,CWORDR,26] ; BUS - Bits 24-26
3713 036045 000000 124277 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 87
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0250
3714 [LDB [POINT 1,CWORDR,27] ; CRY - Bits 27
3715 036046 000000 124302 RTN]
3716 [LDB [POINT 4,CWORDR,31] ; OP - Bits 28-31
3717 036047 000000 124305 RTN]
3718 [LDB [POINT 1,CWORDR,32] ; TIME - Bit 32
3719 036050 000000 124310 RTN]
3720 [LDB [POINT 2,CWORDR,34] ; SPARE - Bits 33-34
3721 036051 000000 124313 RTN]
3722 [LDB [POINT 1,CWORDR,35] ; MARK - Bit 35
3723 036052 000000 124316 RTN]
3724
3725 ; Microword deposit byte pointer table
3726
3727 DCODPB: [DPB [POINT 12,CWORDL,17] ; J - Bits 6-17
3728 036053 000000 124320 RTN]
3729 [DPB [POINT 1,CWORDL,18] ; PAR - Bit 18
3730 036054 000000 124322 RTN]
3731 [DPB [POINT 1,CWORDL,19] ; OENA - Bit 19
3732 036055 000000 124324 RTN]
3733 [DPB [POINT 10,CWORDL,29] ; MGC - Bits 20-29
3734 036056 000000 124326 RTN]
3735 [DPB [POINT 3,CWORDL,32] ; SORC - Bits 30-32
3736 036057 000000 124330 RTN]
3737 [DPB [POINT 3,CWORDL,35] ; FUNC - Bits 33-35
3738 036060 000000 124332 RTN]
3739 [DPB [POINT 3,CWORDR,8] ; DEST - Bits 6-8
3740 036061 000000 124334 RTN]
3741 [DPB [POINT 1,CWORDR,9] ; CENA - Bit 9
3742 036062 000000 124336 RTN]
3743 [DPB [POINT 1,CWORDR,10] ; RAM - Bit 10
3744 036063 000000 124340 RTN]
3745 [DPB [POINT 4,CWORDR,14] ; A - Bits 11-14
3746 036064 000000 124342 RTN]
3747 [DPB [POINT 4,CWORDR,18] ; B - Bits 15-18
3748 036065 000000 124344 RTN]
3749 [DPB [POINT 5,CWORDR,23] ; SK - Bits 19-23
3750 036066 000000 124346 RTN]
3751 [DPB [POINT 3,CWORDR,26] ; BUS - Bits 24-26
3752 036067 000000 124350 RTN]
3753 [DPB [POINT 1,CWORDR,27] ; CRY - Bits 27
3754 036070 000000 124352 RTN]
3755 [DPB [POINT 4,CWORDR,31] ; OP - Bits 28-31
3756 036071 000000 124354 RTN]
3757 [DPB [POINT 1,CWORDR,32] ; TIME - Bit 32
3758 036072 000000 124356 RTN]
3759 [DPB [POINT 2,CWORDR,34] ; SPARE - Bits 33-34
3760 036073 000000 124360 RTN]
3761 [DPB [POINT 1,CWORDR,35] ; MARK - Bit 35
3762 036074 000000 124362 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 88
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0251
3763
3764 ; Field command table
3765
3766 036075 52 00 00 00 00 00 FLDLIS: SIXBIT /J/
3767 036076 60 41 62 00 00 00 SIXBIT /PAR/
3768 036077 57 45 56 41 00 00 SIXBIT /OENA/
3769 036100 55 47 43 00 00 00 SIXBIT /MGC/
3770 036101 63 57 62 43 00 00 SIXBIT /SORC/
3771 036102 46 65 56 43 00 00 SIXBIT /FUNC/
3772 036103 44 45 63 64 00 00 SIXBIT /DEST/
3773 036104 43 45 56 41 00 00 SIXBIT /CENA/
3774 036105 62 41 55 00 00 00 SIXBIT /RAM/
3775 036106 41 00 00 00 00 00 SIXBIT /A/
3776 036107 42 00 00 00 00 00 SIXBIT /B/
3777 036110 63 53 00 00 00 00 SIXBIT /SK/
3778 036111 42 65 63 00 00 00 SIXBIT /BUS/
3779 036112 43 62 71 00 00 00 SIXBIT /CRY/
3780 036113 43 64 54 00 00 00 SIXBIT /CTL/
3781 036114 64 51 55 45 00 00 SIXBIT /TIME/
3782 036115 63 60 41 62 45 00 SIXBIT /SPARE/
3783 036116 55 41 62 53 00 00 SIXBIT /MARK/
3784 036117 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 89
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0252
3785
3786 ; Help text
3787
3788 036120 037 01 0 00 124364 MWDQUE: FMSGCD <Jump field>
3789 036121 037 01 0 00 124367 FMSGCD <Parity bit - Pgm calculates it unless SETPAR is off>
3790 036122 037 01 0 00 124403 FMSGCD <Ouput enable>
3791 036123 037 01 0 00 124407 FMSGCD <Magic # field>
3792 FMSGD <
3793 Source field:
3794 0-AQ 2-0Q 4-0A 6-DQ
3795 036124 037 01 0 00 124413 1-AB 3-0B 5-DA 7-D0>
3796 FMSGD <
3797 ALU Function:
3798 0-Plus 2-Rmin 4-And 6-Xor
3799 036125 037 01 0 00 124431 1-Smin 3-Or 5-Nand 7-Xnor>
3800 FMSGD <
3801 Destination field:
3802 0-QF 2-BA 4-/2BQF 6-*2BQF
3803 036126 037 01 0 00 124452 1-F 3-BF 5-/2BF 7-*2BF>
3804 036127 037 01 0 00 124473 FMSGCD <CC Enable>
3805 036130 037 01 0 00 124476 FMSGCD <RAM Mode>
3806 036131 037 01 0 00 124501 FMSGCD <Port A 0-17>
3807 036132 037 01 0 00 124505 FMSGCD <Port B 0-17>
3808 FMSGD <
3809 Skip field - Select:
3810 00/20-CCCbusAvail 10/30-CCEbusRqst
3811 01/21-CCGrntCsr 11/31-CCOverflow
3812 02/22-CCFeq0 12/32-CCMbSign
3813 03/23-CCCsrChng 13/33-CCMVParChk
3814 04/24-CCEbParerr 14/34-CCCbusParErr
3815 05/25-CCRcvAttn 15/35-CCPliParErr
3816 06/26-CCEndOfFrame 16/36-CCChanErr
3817 07/27-CCXmtrAttn 17/37-CCCbLstWd
3818
3819 20/30-LoadSadReg 23/33-LdLocalMem
3820 21/31-SelMbusFld 24/34-SelCnstFld
3821 036133 037 01 0 00 124511 22/32-RdLocalMem>
3822 FMSGD <
3823 Bus Ctl field - Select:
3824 0-Nul 2-Mbus 4-Cbus
3825 036134 037 01 0 00 124636 1-Pli 3-Fmtr 5-Ebus>
3826 036135 037 01 0 00 124656 FMSGCD <Carry input>
3827 FMSGD <
3828 2910 Control field:
3829 00-JZ 04-PUSH 10-RFCT 14-LDCT
3830 01-CJS 05-JSRP 11-RPCT 15-LOOP
3831 02-JMAP 06-CJV 12-CRTN 16-CONT
3832 036136 037 01 0 00 124662 03-CJP 07-JRP 13-CJPP 17-TWB>
3833 036137 037 01 0 00 124725 FMSGCD <Time field>
3834 036140 037 01 0 00 124730 FMSGCD <Spare bits>
3835 036141 037 01 0 00 124733 FMSGCD <Mark bit>
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 90
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0253
3836
3837 ;#*********************************************************************
3838 ; Zero CRAM addresses specified by "PARG1" and "PARG2"
3839 ;#*********************************************************************
3840
3841 036142 402 00 0 00 035605 DCOMZE: SETZM CWORDL ; clear CRAM words left and
3842 036143 402 00 0 00 035606 SETZM CWORDR ; right
3843 036144 200 00 0 00 035602 MOVE CRAMFR ; get the address to modify
3844 036145 202 00 0 00 035604 MOVEM CADDR ; save address for writing
3845 036146 260 17 0 00 036231 GO DWCRAM ; go write CRAM location
3846 036147 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
3847 036150 037 07 0 00 000003 TTALTM ; altmode key struck?
3848 036151 334 00 0 00 000000 SKIPA ; no - proceed
3849 036152 263 17 0 00 000000 RTN ; yes - exit
3850 036153 350 01 0 00 035602 AOS 1,CRAMFR ; update the specified address
3851 036154 202 01 0 00 035611 MOVEM 1,ANEXT ; save next address
3852 036155 317 01 0 00 035603 CAMG 1,CRAMTO ; reach end yet?
3853 036156 254 00 0 00 036142 JRST DCOMZE ; no - loop till done
3854 036157 263 17 0 00 000000 RTN ; yes - exit
3855
3856
3857 ;#*********************************************************************
3858 ; Examine CRAM locations
3859 ;#*********************************************************************
3860
3861 036160 200 00 0 00 035602 DCOMEX: MOVE CRAMFR ; get the address to modify
3862 036161 202 00 0 00 035604 MOVEM CADDR ; save address
3863 036162 037 00 0 00 030242 PCRL
3864 036163 037 04 0 00 000000 PNT4 ; print it
3865 036164 037 00 0 00 124736 TMSG </ >
3866 036165 260 17 0 00 036263 GO DRCRAM ; read CRAM location
3867 036166 255 00 0 00 000000 JFCL ; error return
3868 036167 200 02 0 00 035605 MOVE 2,CWORDL ; get left half
3869 036170 200 03 0 00 035606 MOVE 3,CWORDR ; get right half
3870 036171 260 17 0 00 042527 GO PNTWD ; print it
3871 036172 037 07 0 00 000003 TTALTM ; altmode key struck?
3872 036173 334 00 0 00 000000 SKIPA ; no - proceed
3873 JRST [SETOM ALTF ; yes - set altmode typed flag
3874 SETZM MULFLG ; and clear 'examine next' flag
3875 036174 254 00 0 00 124737 JRST DCOMEZ] ; and exit
3876 036175 350 01 0 00 035602 AOS 1,CRAMFR ; update the specified address
3877 036176 202 01 0 00 035611 MOVEM 1,ANEXT ; save next address
3878 036177 317 01 0 00 035603 CAMG 1,CRAMTO ; reach end yet?
3879 036200 254 00 0 00 036160 JRST DCOMEX ; no - loop till done
3880 036201 336 00 0 00 134174' DCOMEZ: SKIPN MULFLG ; in 'examine next'?
3881 036202 037 00 0 00 030242 PCRL ; no - print a blank line
3882 036203 263 17 0 00 000000 RTN ; yes - exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 91
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0254
3883
3884 ;#*********************************************************************
3885 ; List CRAM locations
3886 ;#*********************************************************************
3887
3888 ; Print this CRAM entry
3889
3890 036204 332 00 0 00 134175' DCOMLI: SKIPE MULINI ; in 'examine next'?
3891 036205 037 00 0 00 124742 TMSGC <ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL TM SP MK>
3892 036206 200 00 0 00 035602 DCOML0: MOVE CRAMFR ; get the address to list
3893 036207 202 00 0 00 035604 MOVEM CADDR ; save address
3894 036210 260 17 0 00 036263 GO DRCRAM ; read CRAM location
3895 036211 255 00 0 00 000000 JFCL ; error return
3896 036212 037 00 0 00 030242 PCRL ; start a new line
3897 036213 001 04 0 00 035604 PNTOCC 4,CADDR ; print cram address
3898 036214 037 00 0 00 124736 TMSG </ >
3899 036215 200 02 0 00 035605 MOVE 2,CWORDL ; get left word
3900 036216 200 03 0 00 035606 MOVE 3,CWORDR ; get right word
3901 036217 260 17 0 00 042433 GO PNTCRM ; go print it
3902 036220 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
3903 036221 254 00 0 00 036226 JRST DCOMLX ; yes - return
3904 036222 350 01 0 00 035602 AOS 1,CRAMFR ; no - update the specified address
3905 036223 202 01 0 00 035611 MOVEM 1,ANEXT ; save next address
3906 036224 317 01 0 00 035603 CAMG 1,CRAMTO ; reach end yet?
3907 036225 254 00 0 00 036206 JRST DCOML0 ; no - loop till done
3908 036226 336 00 0 00 134174' DCOMLX: SKIPN MULFLG ; in 'examine next'?
3909 036227 037 00 0 00 030242 PCRL ; no - print a blank line
3910 036230 263 17 0 00 000000 RTN ; yes - exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 92
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0255
3911
3912 ;#********************************************************************
3913 ; DWCRAM - Load CRAM word at 'CADDR' with data in 'CWORDL' and 'CWORDR'
3914 ;#********************************************************************
3915
3916 036231 261 17 0 00 000000 DWCRAM: RPUT (0,1,2,3) ; save AC's
3917
3918 036235 200 01 0 00 035604 MOVE 1,CADDR ; get actual CRAM load address
3919 036236 242 01 0 00 000001 LSH 1,1 ; convert to address for RAR
3920 036237 660 01 0 00 000001 TRO 1,1 ; set bit 12 (for left 30 bits)
3921 036240 260 17 0 00 035515* GO LDRAR ; load RAR with it
3922 036241 200 02 0 00 035605 MOVE 2,CWORDL ; get left 30 bits
3923 036242 200 03 0 00 035606 MOVE 3,CWORDR ; get right 30 bits
3924 036243 400 01 0 00 000000 SETZ 1, ; ignore 'bad parity' bit
3925 036244 332 00 0 00 033670 SKIPE PARFLG ; calculate parity?
3926 036245 260 17 0 00 042551 GO CALPAR ; yes - do so
3927 036246 200 01 0 00 000002 MOVE 1,2 ; get left 30 bits
3928 036247 260 17 0 00 000000* GO LDCRAM ; load it
3929
3930 036250 200 01 0 00 035604 MOVE 1,CADDR ; get actual CRAM load address
3931 036251 242 01 0 00 000001 LSH 1,1 ; convert to address for RAR
3932 036252 620 01 0 00 000001 TRZ 1,1 ; clear bit 12 (for right 30 bits)
3933 036253 260 17 0 00 036240* GO LDRAR ; load address
3934 036254 200 01 0 00 000003 MOVE 1,3 ; get right 30 bits
3935 036255 260 17 0 00 036247* GO LDCRAM ; load it
3936 036256 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
3937
3938 036262 263 17 0 00 000000 RTN
3939
3940 ;#********************************************************************
3941 ; DRCRAM - Read CRAM word at 'CADDR' into 'CWORDL' and 'CWORDR'
3942 ;#********************************************************************
3943
3944 036263 261 17 0 00 000000 DRCRAM: RPUT (0,1) ; save AC's
3945
3946 036265 200 01 0 00 035604 MOVE 1,CADDR ; get actual CRAM address
3947 036266 242 01 0 00 000001 LSH 1,1 ; convert to address for RAR
3948 036267 660 01 0 00 000001 TRO 1,1 ; set bit 12 (for left 30 bits)
3949 036270 260 17 0 00 036253* GO LDRAR ; load RAR with it
3950 036271 260 17 0 00 000000* GO RDCRAM ; load it
3951 036272 202 01 0 00 035605 MOVEM 1,CWORDL ; save it
3952
3953 036273 200 01 0 00 035604 MOVE 1,CADDR ; get actual CRAM load address
3954 036274 242 01 0 00 000001 LSH 1,1 ; convert to address for RAR
3955 036275 620 01 0 00 000001 TRZ 1,1 ; clear bit 12 (for right 30 bits)
3956 036276 260 17 0 00 036270* GO LDRAR ; load address
3957 036277 260 17 0 00 036271* GO RDCRAM ; load it
3958 036300 202 01 0 00 035606 MOVEM 1,CWORDR ; save it
3959 036301 262 17 0 00 000001 RGET (1,0) ; restore AC's
3960
3961 036303 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 93
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0256
3962
3963 ;#********************************************************************
3964 ;* DEALU - Examine 2901 registers
3965 ;
3966 ; Arguments: Reg1,Reg2
3967 ;#********************************************************************
3968
3969 036304 200 00 0 00 036606 DEALU: MOVE ALUFR ; set up default of register range
3970 036305 202 00 0 00 134217' MOVEM RALUB# ; to be whatever was typed before
3971 036306 200 00 0 00 036607 MOVE ALUTO ; or if nothing typed, then 0-20
3972 036307 202 00 0 00 134220' MOVEM RALUE#
3973
3974 ; Get arguments
3975
3976 036310 200 01 0 00 124770 MOVE 1,[FMSGCD <E2901 reg1,reg2 (CR) (20=QReg)>]
3977 036311 260 17 0 00 035661* GO .OARG ; get first argument
3978 036312 263 17 0 00 000000 RTN ; error/altmode/question - exit
3979 036313 254 00 0 00 036325 JRST DEALU0 ; no arguments given - continue
3980 036314 200 00 0 00 035664* MOVE ARGUM ; get argument
3981 036315 202 00 0 00 134217' MOVEM RALUB ; save in 'from' location
3982 036316 202 00 0 00 134220' MOVEM RALUE ; save in 'to' location
3983
3984 036317 210 01 0 00 124776 MOVN 1,[FMSGCD <E2901 reg1,reg2 (CR)>]
3985 036320 260 17 0 00 036311* GO .OARG ; get 2nd argument
3986 036321 263 17 0 00 000000 RTN ; error/altmode/question - exit
3987 036322 254 00 0 00 036325 JRST DEALU0 ; no arguments given - continue
3988 036323 200 00 0 00 036314* MOVE ARGUM ; get argument
3989 036324 202 00 0 00 134220' MOVEM RALUE ; save in 'to' location
3990
3991 ; Now range check the arguments
3992
3993 036325 331 01 0 00 134217' DEALU0: SKIPL 1,RALUB ; 1st argument in range?
3994 036326 303 01 0 00 000020 CAILE 1,20
3995 JRST [FMSGCD <? Range of 2901 registers is 0-20 (20=QReg)>
3996 SETOM ALTF
3997 GO FIOFF
3998 036327 254 00 0 00 125011 RTN]
3999 036330 331 01 0 00 134220' SKIPL 1,RALUE ; 2nd argument in range?
4000 036331 303 01 0 00 000020 CAILE 1,20
4001 JRST [FMSGCD <? Range of 2901 registers is 0-20 (20=QReg)>
4002 GO FIOFF
4003 036332 254 00 0 00 125015 RTN]
4004 036333 274 01 0 00 134217' SUB 1,RALUB ; see if range ok
4005 JUMPL 1,[FMSGCD <? Range nonsensical>
4006 GO FIOFF
4007 036334 321 01 0 00 122563 RTN]
4008 036335 200 00 0 00 134217' MOVE RALUB ; get 'from' argument
4009 036336 202 00 0 00 036606 MOVEM ALUFR ; save it
4010 036337 200 00 0 00 134220' MOVE RALUE ; get 'to' argument
4011 036340 202 00 0 00 036607 MOVEM ALUTO ; save it
4012 036341 201 00 0 00 000006 MOVEI 6 ; get E2901 flag
4013 036342 202 00 0 00 134152' MOVEM DFLAG ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 94
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0257
4014
4015 ; Save CRAM location
4016
4017 036343 200 01 0 00 125020 DEBALU: MOVE 1,[-1,,7750] ; set up AOBJN word
4018 036344 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
4019
4020 ; Now do each register
4021
4022 036345 037 00 0 00 125021 DEALU1: TMSGC <R> ; start a new line
4023 036346 200 02 0 00 134217' MOVE 2,RALUB ; get register number
4024 036347 200 00 0 00 000002 MOVE 2 ; get register number
4025 036350 137 02 0 00 125022 DPB 2,[POINT 4,DEALUM+1,14] ; save it in microword
4026 036351 306 02 0 00 000020 CAIN 2,20 ; Q-Register?
4027 036352 037 00 0 00 125023 TMSG <Q> ; yes - print Q
4028 036353 302 02 0 00 000020 CAIE 2,20 ; Q-Register?
4029 036354 037 16 0 00 000003 PNTOCS ; no - print register number
4030 036355 037 00 0 00 124736 TMSG </ >
4031 036356 201 00 0 00 000004 MOVEI 4 ; get source field of 4 (0A)
4032 036357 306 02 0 00 000020 CAIN 2,20 ; Q-Register?
4033 036360 201 00 0 00 000002 MOVEI 2 ; yes - use source of 2 (0Q)
4034 036361 137 00 0 00 125024 DPB [POINT 3,DEALUM+1,2] ; set up source field
4035 036362 201 01 0 00 036565 MOVEI 1,DEALUM ; set up microcode address
4036 036363 260 17 0 00 064353 GO MLOADN ; load/verify it
4037 036364 255 00 0 00 000000 JFCL ; ignore error
4038 036365 201 01 0 00 007750 MOVEI 1,7750 ; get start address
4039 036366 242 01 0 00 000001 LSH 1,1 ; position correctly
4040 036367 260 17 0 00 036276* GO LDRAR ; load the RAR
4041 036370 201 01 0 00 220010 MOVEI 1,SINCYC!MPRUN!TSTEBF ; single step once
4042 036371 260 17 0 00 035514* GO LDCSR
4043 036372 260 17 0 00 035430* GO RDEBUF ; read EBUF contents
4044 036373 200 00 0 00 000001 MOVE 1 ; get register data
4045 036374 037 13 0 00 000000 PNTHW ; print it
4046 036375 350 00 0 00 000002 AOS 2 ; point to next register
4047 036376 202 02 0 00 035611 MOVEM 2,ANEXT ; save next register
4048 036377 037 07 0 00 000003 TTALTM ; altmode key struck?
4049 036400 334 00 0 00 000000 SKIPA ; no - proceed
4050 JRST [SETOM ALTF ; yes - set altmode typed flag
4051 SETZM MULFLG ; and clear 'examine next' flag
4052 036401 254 00 0 00 125025 JRST DEALUX] ; and exit
4053 036402 350 01 0 00 134217' AOS 1,RALUB ; point to next register
4054 036403 317 01 0 00 134220' CAMG 1,RALUE ; done yet?
4055 036404 254 00 0 00 036345 JRST DEALU1 ; no - loop till done
4056
4057 ; Restore CRAM location and exit
4058
4059 036405 336 00 0 00 134174' DEALUX: SKIPN MULFLG ; in 'examine next'?
4060 036406 037 00 0 00 030242 PCRL ; no - print blank line
4061 036407 200 01 0 00 125020 MOVE 1,[-1,,7750] ; set up AOBJN word
4062 036410 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4063 036411 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 95
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0258
4064
4065 ;#********************************************************************
4066 ;* DDALU - Deposit register
4067 ;
4068 ; Format: DALU reg,data
4069 ;#********************************************************************
4070
4071 036412 200 01 0 00 125035 DDALU: MOVE 1,[FMSGCD <DALU reg,data (CR)>]
4072 036413 260 17 0 00 034111* GO .DARG ; get register number
4073 036414 263 17 0 00 000000 RTN ; error/altmode/question - exit
4074 JRST [FMSGCD <? Missing argument>
4075 GO FIOFF
4076 036415 254 00 0 00 117722 RTN]
4077 036416 331 01 0 00 036323* DDALU0: SKIPL 1,ARGUM ; argument in range?
4078 036417 303 01 0 00 000020 CAILE 1,20
4079 JRST [FMSGCD <? Range of 2901 registers is 0-20 (20=QReg)>
4080 GO FIOFF
4081 036420 254 00 0 00 125015 RTN]
4082 036421 202 01 0 00 134217' MOVEM 1,RALUB ; get 'from' argument
4083 036422 202 01 0 00 036606 MOVEM 1,ALUFR ; save it
4084 036423 202 01 0 00 134220' MOVEM 1,RALUE ; get 'to' argument
4085 036424 202 01 0 00 036607 MOVEM 1,ALUTO ; save it
4086 036425 200 01 0 00 125035 MOVE 1,[FMSGCD <DALU reg,data (CR)>]
4087 036426 260 17 0 00 036320* GO .OARG ; get data
4088 036427 263 17 0 00 000000 RTN ; error/altmode/question - exit
4089 JRST [FMSGCD <? Missing argument>
4090 GO FIOFF
4091 036430 254 00 0 00 117722 RTN]
4092 036431 200 00 0 00 036416* MOVE ARGUM ; get argument
4093 036432 202 00 0 00 134165' MOVEM LARG2 ; save it
4094 036433 201 00 0 00 000007 MOVEI 7 ; get D2901 flag
4095 036434 202 00 0 00 134152' MOVEM DFLAG ; save it
4096
4097 ; Save CRAM locations
4098
4099 036435 200 01 0 00 125036 MOVE 1,[-5,,7750] ; set up AOBJN word
4100 036436 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
4101
4102 ; Load microcode
4103
4104 036437 200 02 0 00 134217' MOVE 2,RALUB ; get location to write
4105 036440 137 02 0 00 125037 DPB 2,[POINT 4,DDALUM+7,18] ; set up 2901 register
4106 036441 201 00 0 00 000002 MOVEI 2 ; get destination field of 2 (BA)
4107 036442 306 02 0 00 000020 CAIN 2,20 ; Q-Register?
4108 036443 201 00 0 00 000000 MOVEI 0 ; yes - use destination of 0 (QF)
4109 036444 137 00 0 00 125040 DPB [POINT 3,DDALUM+7,8] ; set up source field
4110 036445 201 01 0 00 036570 MOVEI 1,DDALUM ; set up microcode address
4111 036446 260 17 0 00 064353 GO MLOADN ; load/verify it
4112 036447 255 00 0 00 000000 JFCL ; ignore error
4113 036450 350 00 0 00 000002 AOS 2 ; point to next register
4114 036451 202 02 0 00 035611 MOVEM 2,ANEXT ; save next register
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 96
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0259
4115
4116 ; Now do the deposit
4117
4118 036452 201 01 0 00 007750 MOVEI 1,7750 ; get start address
4119 036453 242 01 0 00 000001 LSH 1,1 ; position correctly
4120 036454 260 17 0 00 036367* GO LDRAR ; load the RAR
4121 036455 201 01 0 00 000010 MOVEI 1,MPRUN ; set initial data
4122 036456 260 17 0 00 036371* GO LDCSR ; start the port
4123 036457 200 01 0 00 134165' MOVE 1,LARG2 ; get data to write
4124 036460 260 17 0 00 000000* GO .DATAO ; give to port
4125 036461 400 01 0 00 000000 SETZ 1, ; stop the port
4126 036462 260 17 0 00 036456* GO LDCSR
4127
4128 ; Check if additional arguments
4129
4130 036463 336 00 0 00 035627* SKIPN ARGFLG ; any more arguments
4131 036464 254 00 0 00 036470 JRST DDALUX ; no - exit
4132 036465 200 00 0 00 035611 MOVE ANEXT ; get register number
4133 036466 202 00 0 00 036431* MOVEM ARGUM ; save it
4134 036467 254 00 0 00 036416 JRST DDALU0 ; loop till done
4135
4136 ; Restore CRAM locations and exit
4137
4138 036470 200 01 0 00 125036 DDALUX: MOVE 1,[-5,,7750] ; set up AOBJN word
4139 036471 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4140 036472 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 97
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0260
4141
4142 ;#********************************************************************
4143 ;* DZALU - Zero 2901 registers
4144 ;
4145 ; Format: ZALU reg1,reg2
4146 ;#********************************************************************
4147
4148 036473 200 00 0 00 036606 DZALU: MOVE ALUFR ; set up default of register range
4149 036474 202 00 0 00 134217' MOVEM RALUB ; to be whatever was typed before
4150 036475 200 00 0 00 036607 MOVE ALUTO ; or if nothing typed, then 0-0
4151 036476 202 00 0 00 134220' MOVEM RALUE
4152
4153 ; Get arguments
4154
4155 036477 200 01 0 00 125046 MOVE 1,[FMSGCD <ZALU reg1,reg2 (CR)>]
4156 036500 260 17 0 00 036413* GO .DARG ; get first argument
4157 036501 263 17 0 00 000000 RTN ; error/altmode/question - exit
4158 036502 254 00 0 00 036514 JRST DZALU0 ; no arguments given - continue
4159 036503 200 00 0 00 036466* MOVE ARGUM ; get argument
4160 036504 202 00 0 00 134217' MOVEM RALUB ; save in 'from' location
4161 036505 202 00 0 00 134220' MOVEM RALUE ; save in 'to' location
4162
4163 036506 210 01 0 00 125046 MOVN 1,[FMSGCD <ZALU reg1,reg2 (CR)>]
4164 036507 260 17 0 00 036500* GO .DARG ; get 2nd argument
4165 036510 263 17 0 00 000000 RTN ; error/altmode/question - exit
4166 036511 254 00 0 00 036514 JRST DZALU0 ; no arguments given - continue
4167 036512 200 00 0 00 036503* MOVE ARGUM ; get argument
4168 036513 202 00 0 00 134220' MOVEM RALUE ; save in 'to' location
4169
4170 ; Now range check the arguments
4171
4172 036514 331 01 0 00 134217' DZALU0: SKIPL 1,RALUB ; 1st argument in range?
4173 036515 303 01 0 00 000020 CAILE 1,20
4174 JRST [FMSGCD <? Range of 2901 registers is 0-20 (20=QReg)>
4175 GO FIOFF
4176 036516 254 00 0 00 125015 RTN]
4177 036517 331 01 0 00 134220' SKIPL 1,RALUE ; 2nd argument in range?
4178 036520 303 01 0 00 000020 CAILE 1,20
4179 JRST [FMSGCD <? Range of 2901 registers is 0-20 (20=QReg)>
4180 GO FIOFF
4181 036521 254 00 0 00 125015 RTN]
4182 036522 274 01 0 00 134217' SUB 1,RALUB ; see if range ok
4183 JUMPL 1,[FMSGCD <? Range nonsensical>
4184 GO FIOFF
4185 036523 321 01 0 00 122563 RTN]
4186 036524 200 00 0 00 134217' MOVE RALUB ; get 'from' argument
4187 036525 202 00 0 00 036606 MOVEM ALUFR ; save it
4188 036526 200 00 0 00 134220' MOVE RALUE ; get 'to' argument
4189 036527 202 00 0 00 036607 MOVEM ALUTO ; save it
4190 036530 201 00 0 00 000010 MOVEI 8 ; get Z2901 flag
4191 036531 202 00 0 00 134152' MOVEM DFLAG ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 98
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0261
4192
4193 ; Save CRAM location
4194
4195 036532 200 01 0 00 125020 MOVE 1,[-1,,7750] ; set up AOBJN word
4196 036533 260 17 0 00 042730 GO SAVCRM ; save the CRAM location
4197
4198 ; Now do each location
4199
4200 036534 200 02 0 00 134217' DZALU1: MOVE 2,RALUB ; get location to write
4201 036535 137 02 0 00 125047 DPB 2,[POINT 4,DZALUM+1,18] ; set up register number
4202 036536 201 00 0 00 000002 MOVEI 2 ; get destination field of 2 (BA)
4203 036537 306 02 0 00 000020 CAIN 2,20 ; Q-Register?
4204 036540 201 00 0 00 000000 MOVEI 0 ; yes - use destination of 0 (QF)
4205 036541 137 00 0 00 125050 DPB [POINT 3,DZALUM+1,8] ; set up destination field
4206 036542 201 01 0 00 036603 MOVEI 1,DZALUM ; set up microcode address
4207 036543 260 17 0 00 064353 GO MLOADN ; load/verify it
4208 036544 255 00 0 00 000000 JFCL ; ignore error
4209 036545 350 00 0 00 000002 AOS 2 ; point to next register
4210 036546 202 02 0 00 035611 MOVEM 2,ANEXT ; save next register
4211 036547 201 01 0 00 007750 MOVEI 1,7750 ; get start address
4212 036550 242 01 0 00 000001 LSH 1,1 ; position correctly
4213 036551 260 17 0 00 036454* GO LDRAR ; load the RAR
4214 036552 201 01 0 00 020010 MOVEI 1,MPRUN!SINCYC ; start it up
4215 036553 260 17 0 00 036462* GO LDCSR
4216 036554 037 07 0 00 000003 TTALTM ; altmode key struck?
4217 036555 334 00 0 00 000000 SKIPA ; no - proceed
4218 036556 254 00 0 00 036562 JRST DZALUX ; yes - exit
4219 036557 350 01 0 00 134217' AOS 1,RALUB ; point to next location
4220 036560 317 01 0 00 134220' CAMG 1,RALUE ; done yet?
4221 036561 254 00 0 00 036534 JRST DZALU1 ; no - loop till done
4222
4223 ; Restore CRAM location and exit
4224
4225 036562 200 01 0 00 125020 DZALUX: MOVE 1,[-1,,7750] ; set up AOBJN word
4226 036563 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4227 036564 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 99
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0262
4228
4229 ; Microcode to examine 2901's
4230
4231 036565 775077 502004 DEALUM: MWORD <ADDR=7750,JMAP,J=7750,S0A,OR,D=1,OENA,SELE,MGC=4>
4232 036566 431000 005040
4233 036567 777777 777777 -1
4234
4235 ; Microcode to deposit 2901's
4236
4237 036570 775077 510000 DDALUM: MWORD <ADDR=7750,JMAP,J=7751,D=1> ; 7750
4238 036571 001000 000040
4239 036572 775177 530000 MWORD <CJP,J=7753,D=1,CENA,CCER> ; 7751
4240 036573 001400 100060
4241 036574 775277 510000 MWORD <JMAP,J=7751,D=1> ; 7752
4242 036575 001000 000040
4243 036576 775300 000010 MWORD <CONT,SD0,OR,D=2,SELE,MGC=10> ; 7753
4244 036577 732000 005340
4245 036600 775477 540000 MWORD <JMAP,J=7754,D=1> ; 7754
4246 036601 001000 000040
4247 036602 777777 777777 -1
4248
4249 ; Microcode to zero 2901's
4250
4251 036603 775077 500000 DZALUM: MWORD <ADDR=7750,JMAP,J=7750,S0A,AND,D=2>
4252 036604 442000 000040
4253 036605 777777 777777 -1
4254
4255 ; Arguments
4256
4257 036606 000000 000000 ALUFR: 0 ; default range of
4258 036607 000000 000020 ALUTO: 20 ; registers
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 100
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0263
4259
4260 ;#********************************************************************
4261 ;* DELOCS - Examine local storage
4262 ;
4263 ; Format: ELOCS adr1,adr2
4264 ;#********************************************************************
4265
4266 036610 200 00 0 00 037101 DELOCS: MOVE LOCFR ; set up default of local storage range
4267 036611 202 00 0 00 134223' MOVEM RLOCB# ; to be whatever was typed before
4268 036612 200 00 0 00 037102 MOVE LOCTO ; or if nothing typed, then 0-0
4269 036613 202 00 0 00 134224' MOVEM RLOCE#
4270
4271 ; Get arguments
4272
4273 036614 200 01 0 00 125057 MOVE 1,[FMSGCD <ELOCS addr1,addr2 (CR)>]
4274 036615 260 17 0 00 036507* GO .DARG ; get first address
4275 036616 263 17 0 00 000000 RTN ; error/altmode/question - exit
4276 036617 254 00 0 00 036631 JRST DELOC0 ; no arguments given - continue
4277 036620 200 00 0 00 036512* MOVE ARGUM ; get argument
4278 036621 202 00 0 00 134223' MOVEM RLOCB ; save in 'from' location
4279 036622 202 00 0 00 134224' MOVEM RLOCE ; save in 'to' location
4280
4281 036623 210 01 0 00 125057 MOVN 1,[FMSGCD <ELOCS addr1,addr2 (CR)>]
4282 036624 260 17 0 00 036615* GO .DARG ; get 2nd address
4283 036625 263 17 0 00 000000 RTN ; error/altmode/question - exit
4284 036626 254 00 0 00 036631 JRST DELOC0 ; no arguments given - continue
4285 036627 200 00 0 00 036620* MOVE ARGUM ; get argument
4286 036630 202 00 0 00 134224' MOVEM RLOCE ; save in 'to' location
4287
4288 ; Now range check the arguments
4289
4290 036631 331 01 0 00 134223' DELOC0: SKIPL 1,RLOCB ; 1st argument in range?
4291 036632 303 01 0 00 001777 CAILE 1,1777
4292 JRST [FMSGCD <? Range of local storage locations is 0-1777>
4293 SETOM ALTF
4294 GO FIOFF
4295 036633 254 00 0 00 125072 RTN]
4296 036634 331 01 0 00 134224' SKIPL 1,RLOCE ; 2nd argument in range?
4297 036635 303 01 0 00 001777 CAILE 1,1777
4298 JRST [FMSGCD <? Range of local storage locations is 0-1777>
4299 GO FIOFF
4300 036636 254 00 0 00 125076 RTN]
4301 036637 274 01 0 00 134223' SUB 1,RLOCB ; see if range ok
4302 JUMPL 1,[FMSGCD <? Range nonsensical>
4303 GO FIOFF
4304 036640 321 01 0 00 122563 RTN]
4305 036641 200 00 0 00 134223' MOVE RLOCB ; get 'from' argument
4306 036642 202 00 0 00 037101 MOVEM LOCFR ; save it
4307 036643 200 00 0 00 134224' MOVE RLOCE ; get 'to' argument
4308 036644 202 00 0 00 037102 MOVEM LOCTO ; save it
4309 036645 201 00 0 00 000011 MOVEI 9 ; get ELOCS flag
4310 036646 202 00 0 00 134152' MOVEM DFLAG ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 101
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0264
4311
4312 ; Save CRAM locations
4313
4314 036647 200 01 0 00 125101 DEBELO: MOVE 1,[-2,,7750] ; set up AOBJN word
4315 036650 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
4316 036651 200 07 0 00 134223' MOVE 7,RLOCB ; get initial address
4317
4318 ; Now do each location
4319
4320 036652 200 06 0 00 134223' DELOC1: MOVE 6,RLOCB ; get current address
4321 036653 274 06 0 00 000007 SUB 6,7 ; calculate word # (0..n)
4322 036654 602 06 0 00 000003 TRNE 6,3 ; multiple of 4?
4323 036655 037 00 0 00 117042 TMSG < > ; no - print a few spaces
4324 036656 606 06 0 00 000003 TRNN 6,3 ; multiple of 4?
4325 GO [TMSGC <LS> ; yes - start a new line
4326 MOVE RLOCB
4327 PNTOCS
4328 TMSG </ >
4329 036657 260 17 0 00 125103 RTN]
4330 036660 200 00 0 00 134223' MOVE RLOCB ; get local storage address
4331 036661 137 00 0 00 125110 DPB [POINT 10,DELOCM,35] ; save it in microword
4332 036662 201 01 0 00 037056 MOVEI 1,DELOCM ; set up microcode address
4333 036663 260 17 0 00 064353 GO MLOADN ; load/verify it
4334 036664 255 00 0 00 000000 JFCL ; ignore error
4335 036665 201 01 0 00 007750 MOVEI 1,7750 ; get start address
4336 036666 242 01 0 00 000001 LSH 1,1 ; position correctly
4337 036667 260 17 0 00 036551* GO LDRAR ; load the RAR
4338 036670 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
4339 036671 260 17 0 00 036553* GO LDCSR ; write to CSR register
4340 036672 201 01 0 00 200000 MOVEI 1,TSTEBF ; set up to read EBUF data
4341 036673 260 17 0 00 036671* GO LDCSR ; write to CSR register
4342 036674 260 17 0 00 036372* GO RDEBUF ; read EBUF contents
4343 036675 200 00 0 00 000001 MOVE 1 ; get register data
4344 036676 037 13 0 00 000000 PNTHW ; print it
4345 036677 037 07 0 00 000003 TTALTM ; altmode key struck?
4346 036700 334 00 0 00 000000 SKIPA ; no - proceed
4347 JRST [SETOM ALTF ; yes - set altmode typed flag
4348 SETZM MULFLG ; and clear 'examine next' flag
4349 036701 254 00 0 00 125111 JRST DELOCX] ; and exit
4350 036702 350 01 0 00 134223' AOS 1,RLOCB ; point to next location
4351 036703 202 01 0 00 035611 MOVEM 1,ANEXT ; save next location
4352 036704 317 01 0 00 134224' CAMG 1,RLOCE ; done yet?
4353 036705 254 00 0 00 036652 JRST DELOC1 ; no - loop till done
4354
4355 ; Restore CRAM locations and exit
4356
4357 036706 336 00 0 00 134174' DELOCX: SKIPN MULFLG ; in 'examine next'?
4358 036707 037 00 0 00 030242 PCRL ; no - print blank line
4359 036710 200 01 0 00 125101 MOVE 1,[-2,,7750] ; set up AOBJN word
4360 036711 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4361 036712 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 102
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0265
4362
4363 ;#********************************************************************
4364 ;* DDLOCS - Deposit local storage
4365 ;
4366 ; Format: DLOCS adr,data
4367 ;#********************************************************************
4368
4369 036713 200 01 0 00 125121 DDLOCS: MOVE 1,[FMSGCD <DLOCS addr,data (CR)>]
4370 036714 260 17 0 00 036624* GO .DARG ; get address
4371 036715 263 17 0 00 000000 RTN ; error/altmode/question - exit
4372 JRST [FMSGCD <? Missing argument>
4373 GO FIOFF
4374 036716 254 00 0 00 117722 RTN]
4375 036717 200 00 0 00 036627* DDLOC0: MOVE ARGUM ; get argument
4376 036720 301 00 0 00 000000 CAIL 0 ; in range 0-1777?
4377 036721 303 00 0 00 001777 CAILE 1777
4378 JRST [FMSGCD <? Range of Local Storage addresses is 0-1777>
4379 GO FIOFF
4380 036722 254 00 0 00 125134 RTN]
4381 036723 202 00 0 00 037101 MOVEM LOCFR ; save 'from' argument
4382 036724 202 00 0 00 037102 MOVEM LOCTO ; save 'to' argument
4383 036725 200 01 0 00 125121 MOVE 1,[FMSGCD <DLOCS addr,data (CR)>]
4384 036726 260 17 0 00 036426* GO .OARG ; get data
4385 036727 263 17 0 00 000000 RTN ; error/altmode/question - exit
4386 JRST [FMSGCD <? Missing argument>
4387 GO FIOFF
4388 036730 254 00 0 00 117722 RTN]
4389 036731 200 00 0 00 036717* MOVE ARGUM ; get argument
4390 036732 202 00 0 00 134165' MOVEM LARG2# ; save it
4391 036733 201 00 0 00 000012 MOVEI ^D10 ; get DLOCS flag
4392 036734 202 00 0 00 134152' MOVEM DFLAG ; save it
4393
4394 ; Save CRAM locations
4395
4396 036735 200 01 0 00 125036 MOVE 1,[-5,,7750] ; set up AOBJN word
4397 036736 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
4398
4399 ; Load microcode
4400
4401 036737 200 00 0 00 037101 MOVE LOCFR ; get location to write
4402 036740 137 00 0 00 125137 DPB [POINT 10,DDLOCM+8,35] ; set up local storage address
4403 036741 202 00 0 00 035611 MOVEM ANEXT ; save address
4404 036742 350 00 0 00 035611 AOS ANEXT ; set to next address
4405 036743 201 01 0 00 037063 MOVEI 1,DDLOCM ; set up microcode address
4406 036744 260 17 0 00 064353 GO MLOADN ; load/verify it
4407 036745 255 00 0 00 000000 JFCL ; ignore error
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 103
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0266
4408
4409 ; Now do the deposit
4410
4411 036746 201 01 0 00 007750 MOVEI 1,7750 ; get start address
4412 036747 242 01 0 00 000001 LSH 1,1 ; position correctly
4413 036750 260 17 0 00 036667* GO LDRAR ; load the register
4414 036751 201 01 0 00 000010 MOVEI 1,MPRUN ; no - set initial data
4415 036752 260 17 0 00 036673* GO LDCSR
4416 036753 200 01 0 00 134165' MOVE 1,LARG2 ; get data to write
4417 036754 260 17 0 00 036460* GO .DATAO ; give to port
4418 036755 400 01 0 00 000000 SETZ 1, ; stop the port
4419 036756 260 17 0 00 036752* GO LDCSR
4420
4421 ; Check if additional arguments
4422
4423 036757 336 00 0 00 036463* SKIPN ARGFLG ; any more arguments
4424 036760 254 00 0 00 036764 JRST DDLOCX ; no - exit
4425 036761 200 00 0 00 035611 MOVE ANEXT ; get register number
4426 036762 202 00 0 00 036731* MOVEM ARGUM ; save it
4427 036763 254 00 0 00 036717 JRST DDLOC0 ; loop till done
4428
4429 ; Restore CRAM locations and exit
4430
4431 036764 200 01 0 00 125036 DDLOCX: MOVE 1,[-5,,7750] ; set up AOBJN word
4432 036765 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4433 036766 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 104
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0267
4434
4435 ;#********************************************************************
4436 ;* DZLOCS - Zero local storage
4437 ;
4438 ; Format: ZLOCS adr1,adr2
4439 ;#********************************************************************
4440
4441 036767 200 00 0 00 037101 DZLOCS: MOVE LOCFR ; set up default of local storage range
4442 036770 202 00 0 00 134223' MOVEM RLOCB ; to be whatever was typed before
4443 036771 200 00 0 00 037102 MOVE LOCTO ; or if nothing typed, then 0-0
4444 036772 202 00 0 00 134224' MOVEM RLOCE
4445
4446 ; Get arguments
4447
4448 036773 200 01 0 00 125146 MOVE 1,[FMSGCD <ZLOCS addr1,addr2 (CR)>]
4449 036774 260 17 0 00 036714* GO .DARG ; get first address
4450 036775 263 17 0 00 000000 RTN ; error/altmode/question - exit
4451 036776 254 00 0 00 037010 JRST DZLOC0 ; no arguments given - continue
4452 036777 200 00 0 00 036762* MOVE ARGUM ; get argument
4453 037000 202 00 0 00 134223' MOVEM RLOCB ; save in 'from' location
4454 037001 202 00 0 00 134224' MOVEM RLOCE ; save in 'to' location
4455
4456 037002 210 01 0 00 125146 MOVN 1,[FMSGCD <ZLOCS addr1,addr2 (CR)>]
4457 037003 260 17 0 00 036774* GO .DARG ; get 2nd address
4458 037004 263 17 0 00 000000 RTN ; error/altmode/question - exit
4459 037005 254 00 0 00 037010 JRST DZLOC0 ; no arguments given - continue
4460 037006 200 00 0 00 036777* MOVE ARGUM ; get argument
4461 037007 202 00 0 00 134224' MOVEM RLOCE ; save in 'to' location
4462
4463 ; Now range check the arguments
4464
4465 037010 331 01 0 00 134223' DZLOC0: SKIPL 1,RLOCB ; 1st argument in range?
4466 037011 303 01 0 00 001777 CAILE 1,1777
4467 JRST [FMSGCD <? Range of local storage locations is 0-1777>
4468 GO FIOFF
4469 037012 254 00 0 00 125076 RTN]
4470 037013 331 01 0 00 134224' SKIPL 1,RLOCE ; 2nd argument in range?
4471 037014 303 01 0 00 001777 CAILE 1,1777
4472 JRST [FMSGCD <? Range of local storage locations is 0-1777>
4473 GO FIOFF
4474 037015 254 00 0 00 125076 RTN]
4475 037016 274 01 0 00 134223' SUB 1,RLOCB ; see if range ok
4476 JUMPL 1,[FMSGCD <? Range nonsensical>
4477 GO FIOFF
4478 037017 321 01 0 00 122563 RTN]
4479 037020 200 00 0 00 134223' MOVE RLOCB ; get 'from' argument
4480 037021 202 00 0 00 037101 MOVEM LOCFR ; save it
4481 037022 200 00 0 00 134224' MOVE RLOCE ; get 'to' argument
4482 037023 202 00 0 00 037102 MOVEM LOCTO ; save it
4483 037024 201 00 0 00 000013 MOVEI ^D11 ; get ZLOCS flag
4484 037025 202 00 0 00 134152' MOVEM DFLAG ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 105
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0268
4485
4486 ; Save CRAM location
4487
4488 037026 200 01 0 00 125020 MOVE 1,[-1,,7750] ; set up AOBJN word
4489 037027 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
4490
4491 ; Now do each location
4492
4493 037030 200 00 0 00 134223' DZLOC1: MOVE RLOCB ; get local storage address
4494 037031 137 00 0 00 125147 DPB [POINT 10,DZLOCM,35] ; set up local storage address
4495 037032 201 01 0 00 037076 MOVEI 1,DZLOCM ; set up microcode address
4496 037033 260 17 0 00 064353 GO MLOADN ; load/verify it
4497 037034 255 00 0 00 000000 JFCL ; ignore error
4498 037035 201 01 0 00 007750 MOVEI 1,7750 ; get start address
4499 037036 242 01 0 00 000001 LSH 1,1 ; position correctly
4500 037037 260 17 0 00 036750* GO LDRAR ; load the RAR
4501 037040 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
4502 037041 260 17 0 00 036756* GO LDCSR
4503 037042 400 01 0 00 000000 SETZ 1, ; stop the port
4504 037043 260 17 0 00 037041* GO LDCSR
4505 037044 037 07 0 00 000003 TTALTM ; altmode key struck?
4506 037045 334 00 0 00 000000 SKIPA ; no - proceed
4507 037046 254 00 0 00 037053 JRST DZLOCX ; yes - exit
4508 037047 350 01 0 00 134223' AOS 1,RLOCB ; point to next register
4509 037050 202 01 0 00 035611 MOVEM 1,ANEXT ; save next location
4510 037051 317 01 0 00 134224' CAMG 1,RLOCE ; done yet?
4511 037052 254 00 0 00 037030 JRST DZLOC1 ; no - loop till done
4512
4513 ; Restore CRAM location and exit
4514
4515 037053 200 01 0 00 125020 DZLOCX: MOVE 1,[-1,,7750] ; set up AOBJN word
4516 037054 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4517 037055 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 106
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0269
4518
4519 ; Microcode to examine local storage
4520
4521 037056 775077 510000 DELOCM: MWORD <ADDR=7750,JMAP,J=7751,SD0,OR,D=2,RDLM>
4522 037057 732000 220040
4523 037060 775177 512004 MWORD <JMAP,J=7751,S0A,OR,D=1,OENA,SELE,MGC=4>
4524 037061 431000 005040
4525 037062 777777 777777 -1
4526
4527 ; Microcode to deposit local storage
4528
4529 037063 775077 510000 DDLOCM: MWORD <ADDR=7750,JMAP,J=7751,D=1> ; 7750
4530 037064 001000 000040
4531 037065 775177 530000 MWORD <CJP,J=7753,D=1,CENA,CCER> ; 7751
4532 037066 001400 100060
4533 037067 775277 510000 MWORD <JMAP,J=7751,D=1> ; 7752
4534 037070 001000 000040
4535 037071 775300 000010 MWORD <CONT,SD0,OR,D=2,SELE,MGC=10> ; 7753
4536 037072 732000 005340
4537 037073 775477 542000 MWORD <JMAP,J=7754,S0A,OR,D=1,OENA,LDLM,MGC=0>; 7754
4538 037074 431000 230040
4539 037075 777777 777777 -1
4540
4541 ; Microcode to zero local storage
4542
4543 037076 775077 502000 DZLOCM: MWORD <ADDR=7750,JMAP,J=7750,S0A,AND,D=1,LDLM,OENA>
4544 037077 441000 230040
4545 037100 777777 777777 -1
4546
4547 ; Arguments
4548
4549 037101 000000 000000 LOCFR: 0 ; default range of
4550 037102 000000 000000 LOCTO: 0 ; locations
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 107
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0270
4551
4552 ;#********************************************************************
4553 ;* DMARK - Set mark bit in CRAM locations
4554 ;#********************************************************************
4555
4556 ; First check for any argument
4557
4558 037103 336 00 0 00 036757* DMARK: SKIPN ARGFLG ; argument given?
4559 JRST [FMSGCD <? Missing argument>
4560 GO FIOFF
4561 037104 254 00 0 00 117722 RTN]
4562
4563 ; Obtain argument
4564
4565 037105 200 01 0 00 125156 DMARK0: MOVE 1,[FMSGCD <MARK addr,addr,... (CR)>]
4566 037106 260 17 0 00 036726* GO .OARG ; get argument
4567 037107 263 17 0 00 000000 RTN ; error/altmode/question - exit
4568 037110 263 17 0 00 000000 RTN ; done - no more arguments
4569 037111 331 01 0 00 037006* SKIPL 1,ARGUM ; argument out of range?
4570 037112 303 01 0 00 007777 CAILE 1,7777 ; (0-7777)
4571 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
4572 GO FIOFF
4573 037113 254 00 0 00 122327 RTN]
4574
4575 ; Then ensure the port is stopped
4576
4577 037114 260 17 0 00 035576* GO ISTOP ; stop the port
4578
4579 ; Now obtain CRAM data and set MARK bit
4580
4581 037115 202 01 0 00 035604 MOVEM 1,CADDR ; set up address to load
4582 037116 476 00 0 00 035605 SETOM CWORDL ; initialize left half
4583 037117 476 00 0 00 035606 SETOM CWORDR ; initialize right half
4584 037120 260 17 0 00 036263 GO DRCRAM ; read the data
4585 037121 200 02 0 00 035605 MOVE 2,CWORDL ; get left half
4586 037122 200 03 0 00 035606 MOVE 3,CWORDR ; get right half
4587 037123 660 03 0 00 000001 TRO 3,1 ; set mark bit
4588 037124 202 03 0 00 035606 MOVEM 3,CWORDR ; save data
4589 037125 261 17 0 00 033670 PUT PARFLG ; save state of parity flag
4590 037126 402 00 0 00 033670 SETZM PARFLG ; clear parity flag
4591 037127 260 17 0 00 036231 GO DWCRAM ; load CRAM data
4592 037130 262 17 0 00 033670 GET PARFLG ; restore state of parity flag
4593 037131 254 00 0 00 037105 JRST DMARK0 ; get next address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 108
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0271
4594
4595 ;#********************************************************************
4596 ;* DRMARK - Remove mark bit in CRAM locations
4597 ;#********************************************************************
4598
4599 ; First check for any argument
4600
4601 037132 336 00 0 00 037103* DRMARK: SKIPN ARGFLG ; argument given?
4602 JRST [FMSGCD <? Missing argument>
4603 GO FIOFF
4604 037133 254 00 0 00 117722 RTN]
4605
4606 ; Obtain argument
4607
4608 037134 200 01 0 00 125165 DRMAR0: MOVE 1,[FMSGCD <RMARK addr,addr,... (CR)>]
4609 037135 260 17 0 00 037106* GO .OARG ; get argument
4610 037136 263 17 0 00 000000 RTN ; error/altmode/question - exit
4611 037137 263 17 0 00 000000 RTN ; done - no more arguments
4612 037140 331 01 0 00 037111* SKIPL 1,ARGUM ; argument out of range?
4613 037141 303 01 0 00 007777 CAILE 1,7777 ; (0-7777)
4614 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
4615 GO FIOFF
4616 037142 254 00 0 00 122327 RTN]
4617
4618 ; Then ensure the port is stopped
4619
4620 037143 260 17 0 00 037114* GO ISTOP ; stop the port
4621
4622 ; Now obtain CRAM data and set MARK bit
4623
4624 037144 202 01 0 00 035604 MOVEM 1,CADDR ; set up address to load
4625 037145 476 00 0 00 035605 SETOM CWORDL ; initialize left half
4626 037146 476 00 0 00 035606 SETOM CWORDR ; initialize right half
4627 037147 260 17 0 00 036263 GO DRCRAM ; read the data
4628 037150 200 02 0 00 035605 MOVE 2,CWORDL ; get left half
4629 037151 200 03 0 00 035606 MOVE 3,CWORDR ; get right half
4630 037152 620 03 0 00 000001 TRZ 3,1 ; clear mark bit
4631 037153 202 03 0 00 035606 MOVEM 3,CWORDR ; save data
4632 037154 261 17 0 00 033670 PUT PARFLG ; save state of parity flag
4633 037155 402 00 0 00 033670 SETZM PARFLG ; clear parity flag
4634 037156 260 17 0 00 036231 GO DWCRAM ; load CRAM data
4635 037157 262 17 0 00 033670 GET PARFLG ; restore state of parity flag
4636 037160 254 00 0 00 037134 JRST DRMAR0 ; get next address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 109
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0272
4637
4638 ;#********************************************************************
4639 ;* DCMARK - Clear all mark bits
4640 ;
4641 ; If arguments are given, they are assumed to the the locations between
4642 ; which all mark bits are to be removed.
4643 ;#********************************************************************
4644
4645 ; Start to process the arguments typed - both should be CRAM
4646 ; addresses in octal.
4647
4648 037161 400 05 0 00 000000 DCMARK: SETZ 5, ; init range of addresses
4649 037162 201 06 0 00 007777 MOVEI 6,7777 ; to 0-7777
4650
4651 ; Get first address
4652
4653 037163 200 01 0 00 125174 MOVE 1,[FMSGCD <CMARK addr1,addr2 (CR)>]
4654 037164 260 17 0 00 037135* GO .OARG ; get first address
4655 037165 263 17 0 00 000000 RTN ; error/altmode/question - exit
4656 037166 254 00 0 00 037200 JRST DCMAR0 ; no arguments given - continue
4657 037167 200 00 0 00 037140* MOVE ARGUM ; get argument
4658 037170 202 00 0 00 000005 MOVEM 5 ; save in 'from' location
4659 037171 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
4660
4661 ; Get 2nd address
4662
4663 037172 210 01 0 00 125174 MOVN 1,[FMSGCD <CMARK addr1,addr2 (CR)>]
4664 037173 260 17 0 00 037164* GO .OARG ; get first address
4665 037174 263 17 0 00 000000 RTN ; error/altmode/question - exit
4666 037175 254 00 0 00 037200 JRST DCMAR0 ; no arguments given - continue
4667 037176 200 00 0 00 037167* MOVE ARGUM ; get argument
4668 037177 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
4669
4670 ; Now range check the arguments
4671
4672 037200 331 00 0 00 000005 DCMAR0: SKIPL 5 ; 1st argument in range?
4673 037201 303 05 0 00 007777 CAILE 5,7777
4674 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
4675 GO FIOFF
4676 037202 254 00 0 00 122327 RTN]
4677 037203 331 01 0 00 000006 SKIPL 1,6 ; 2nd argument in range?
4678 037204 303 06 0 00 007777 CAILE 6,7777
4679 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
4680 GO FIOFF
4681 037205 254 00 0 00 122327 RTN]
4682 037206 274 01 0 00 000005 SUB 1,5 ; see if range ok
4683 JUMPL 1,[FMSGCD <? Range nonsensical>
4684 GO FIOFF
4685 037207 321 01 0 00 122563 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 110
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0273
4686
4687 ; Then ensure the port is stopped
4688
4689 037210 260 17 0 00 037143* GO ISTOP ; stop the port
4690
4691 ; Now obtain CRAM data and load back into CRAM without MARK bit set
4692
4693 037211 202 05 0 00 035604 DCMAR1: MOVEM 5,CADDR ; set up address to load
4694 037212 476 00 0 00 035605 SETOM CWORDL ; initialize left half
4695 037213 476 00 0 00 035606 SETOM CWORDR ; initialize right half
4696 037214 260 17 0 00 036263 GO DRCRAM ; read the data
4697 037215 200 02 0 00 035605 MOVE 2,CWORDL ; get left half
4698 037216 200 03 0 00 035606 MOVE 3,CWORDR ; get right half
4699 037217 626 03 0 00 000001 TRZN 3,1 ; clear mark bit - set?
4700 037220 254 00 0 00 037226 JRST DCMAR2 ; no - continue
4701 037221 202 03 0 00 035606 MOVEM 3,CWORDR ; save data
4702 037222 261 17 0 00 033670 PUT PARFLG ; save state of parity flag
4703 037223 402 00 0 00 033670 SETZM PARFLG ; clear parity flag
4704 037224 260 17 0 00 036231 GO DWCRAM ; load CRAM data
4705 037225 262 17 0 00 033670 GET PARFLG ; restore state of parity flag
4706 037226 350 00 0 00 000005 DCMAR2: AOS 5 ; increment 'from' address
4707 037227 317 05 0 00 000006 CAMG 5,6 ; exceed 'to' address?
4708 037230 254 00 0 00 037211 JRST DCMAR1 ; no - get next address
4709 037231 263 17 0 00 000000 RTN ; yes - exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 111
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0274
4710
4711 ;#********************************************************************
4712 ;* DLMARK - List locations with mark bit set
4713 ;
4714 ; If arguments are given, they are assumed to the the locations between
4715 ; which all mark bits are to be listed.
4716 ;#********************************************************************
4717
4718 ; Start to process the arguments typed - both should be CRAM
4719 ; addresses in octal.
4720
4721 037232 400 05 0 00 000000 DLMARK: SETZ 5, ; init range of addresses
4722 037233 201 06 0 00 007777 MOVEI 6,7777 ; to 0-7777
4723
4724 ; Get first address
4725
4726 037234 200 01 0 00 125203 MOVE 1,[FMSGCD <LMARK addr1,addr2 (CR)>]
4727 037235 260 17 0 00 037173* GO .OARG ; get first address
4728 037236 263 17 0 00 000000 RTN ; error/altmode/question - exit
4729 037237 254 00 0 00 037251 JRST DLMAR0 ; no arguments given - continue
4730 037240 200 00 0 00 037176* MOVE ARGUM ; get argument
4731 037241 202 00 0 00 000005 MOVEM 5 ; save in 'from' location
4732 037242 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
4733
4734 ; Get 2nd address
4735
4736 037243 210 01 0 00 125203 MOVN 1,[FMSGCD <LMARK addr1,addr2 (CR)>]
4737 037244 260 17 0 00 037235* GO .OARG ; get first address
4738 037245 263 17 0 00 000000 RTN ; error/altmode/question - exit
4739 037246 254 00 0 00 037251 JRST DLMAR0 ; no arguments given - continue
4740 037247 200 00 0 00 037240* MOVE ARGUM ; get argument
4741 037250 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
4742
4743 ; Now range check the arguments
4744
4745 037251 331 00 0 00 000005 DLMAR0: SKIPL 5 ; 1st argument in range?
4746 037252 303 05 0 00 007777 CAILE 5,7777
4747 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
4748 GO FIOFF
4749 037253 254 00 0 00 122327 RTN]
4750 037254 331 01 0 00 000006 SKIPL 1,6 ; 2nd argument in range?
4751 037255 303 06 0 00 007777 CAILE 6,7777
4752 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
4753 GO FIOFF
4754 037256 254 00 0 00 122327 RTN]
4755 037257 274 01 0 00 000005 SUB 1,5 ; see if range ok
4756 JUMPL 1,[FMSGCD <? Range nonsensical>
4757 GO FIOFF
4758 037260 321 01 0 00 122563 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 112
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0275
4759
4760 ; Then ensure the port is stopped
4761
4762 037261 260 17 0 00 037210* GO ISTOP ; stop the port
4763 037262 200 07 0 00 125204 MOVE 7,[-2] ; initialize mark bit count
4764 037263 037 00 0 00 125205 TMSGC <Mark bit set at: >
4765
4766 ; Now obtain CRAM data and check mark bit
4767
4768 037264 202 05 0 00 035604 DLMAR1: MOVEM 5,CADDR ; set up address to load
4769 037265 476 00 0 00 035605 SETOM CWORDL ; initialize left half
4770 037266 476 00 0 00 035606 SETOM CWORDR ; initialize right half
4771 037267 260 17 0 00 036263 GO DRCRAM ; read the data
4772 037270 200 03 0 00 035606 MOVE 3,CWORDR ; get right word
4773 037271 606 03 0 00 000001 TRNN 3,1 ; mark bit set?
4774 037272 254 00 0 00 037300 JRST DLMAR2 ; no - continue
4775
4776 ; Print location
4777
4778 037273 350 00 0 00 000007 AOS 7 ; next 5 characters
4779 037274 303 07 0 00 000007 CAILE 7,7 ; done with line?
4780 GO [SETO 7, ; yes - init counter
4781 TMSGC < >
4782 037275 260 17 0 00 125217 RTN]
4783 037276 001 04 0 00 000005 PNTOCC 4,5 ; print address
4784 037277 037 00 0 00 000040 PSP ; print a space
4785
4786 ; Increment to next location
4787
4788 037300 037 07 0 00 000003 DLMAR2: TTALTM ; altmode key struck?
4789 037301 334 00 0 00 000000 SKIPA ; no - proceed
4790 037302 254 00 0 00 037306 JRST DLMARX ; yes - exit
4791 037303 350 00 0 00 000005 AOS 5 ; increment 'from' address
4792 037304 317 05 0 00 000006 CAMG 5,6 ; exceed 'to' address?
4793 037305 254 00 0 00 037264 JRST DLMAR1 ; no - get next address
4794 037306 037 00 0 00 030242 DLMARX: PCRL ; yes - print blank line
4795 037307 263 17 0 00 000000 RTN ; and exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 113
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0276
4796
4797 ;#********************************************************************
4798 ;* DDPLI - Deposit data to PLI
4799 ;
4800 ; Format: DPLI cntrl,data,repcount
4801 ;#********************************************************************
4802
4803 ; Get first argument - control bits
4804
4805 037310 200 01 0 00 037517 DDPLI: MOVE 1,DPLIH ; get help text
4806 037311 260 17 0 00 037244* GO .OARG ; get address
4807 037312 263 17 0 00 000000 RTN ; error/altmode/question - exit
4808 JRST [FMSGCD <? Missing argument>
4809 GO FIOFF
4810 037313 254 00 0 00 117722 RTN]
4811 037314 331 01 0 00 037247* SKIPL 1,ARGUM ; get argument
4812 037315 303 01 0 00 000017 CAILE 1,17 ; in range 0-17?
4813 JRST [FMSGCD <? Range of PLI control bits is 0-17>
4814 GO FIOFF
4815 037316 254 00 0 00 125232 RTN]
4816 037317 202 01 0 00 037514 MOVEM 1,PLICTL ; save control bits
4817
4818 ; Get second argument - data
4819
4820 037320 200 01 0 00 037517 DDPLI0: MOVE 1,DPLIH ; get help text
4821 037321 260 17 0 00 037311* GO .OARG ; get data
4822 037322 263 17 0 00 000000 RTN ; error/altmode/question - exit
4823 JRST [FMSGCD <? Missing argument>
4824 GO FIOFF
4825 037323 254 00 0 00 117722 RTN]
4826 037324 200 00 0 00 037314* MOVE ARGUM ; get argument
4827 037325 202 00 0 00 037515 MOVEM PLIDAT ; save it
4828
4829 ; Get third argument - repeat count
4830
4831 037326 210 01 0 00 037517 MOVN 1,DPLIH ; get help text
4832 037327 260 17 0 00 037321* GO .OARG ; get data
4833 037330 263 17 0 00 000000 RTN ; error/altmode/question - exit
4834 037331 402 00 0 00 037324* SETZM ARGUM ; no argument - set to 0
4835 037332 200 00 0 00 037331* MOVE ARGUM ; get argument
4836 037333 202 00 0 00 037516 MOVEM PLIREP ; save it
4837 037334 201 00 0 00 000014 MOVEI ^D12 ; get DPLI flag
4838 037335 202 00 0 00 134152' MOVEM DFLAG ; save it
4839
4840 ; Save CRAM locations
4841
4842 037336 200 01 0 00 125235 MOVE 1,[-4,,7750] ; set up AOBJN word
4843 037337 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 114
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0277
4844
4845 ; Insert data into appropriate microwords
4846
4847 037340 200 00 0 00 037514 MOVE PLICTL ; get control bits
4848 037341 202 00 0 00 035611 MOVEM ANEXT ; save location
4849 037342 137 00 0 00 125236 DPB [POINT 6,DDPLM2,31] ; save control bits
4850 037343 200 00 0 00 037515 MOVE PLIDAT ; get PLI data bits
4851 037344 137 00 0 00 125237 DPB [POINT 10,DDPLIM,35] ; save it in microword
4852
4853 ; Load microcode
4854
4855 037345 201 01 0 00 037367 MOVEI 1,DDPLIM ; set up microcode address
4856 037346 260 17 0 00 064353 GO MLOADN ; load/verify it
4857 037347 255 00 0 00 000000 JFCL ; ignore error
4858
4859 ; Do the deposit
4860
4861 037350 201 01 0 00 007750 DDPLI1: MOVEI 1,7750 ; get start address
4862 037351 242 01 0 00 000001 LSH 1,1 ; position correctly
4863 037352 260 17 0 00 037037* GO LDRAR ; load the RAR
4864 037353 201 01 0 00 000010 MOVEI 1,MPRUN ; set up initial data
4865 037354 260 17 0 00 037043* GO LDCSR ; start the port
4866 037355 400 01 0 00 000000 SETZ 1, ; clear AC1
4867 037356 260 17 0 00 037354* GO LDCSR ; stop the port
4868
4869 ; Check altmode and decrement repeat count
4870
4871 037357 037 07 0 00 000003 TTALTM ; altmode key struck?
4872 037360 334 00 0 00 000000 SKIPA ; no - proceed
4873 037361 254 00 0 00 037364 JRST DDPLIX ; yes - exit
4874 037362 373 00 0 00 037516 SOSLE PLIREP ; decrement repeat count - expired?
4875 037363 254 00 0 00 037350 JRST DDPLI1 ; no - loop till done
4876
4877 ; Restore CRAM locations and exit
4878
4879 037364 200 01 0 00 125235 DDPLIX: MOVE 1,[-^D4,,7750] ; set up AOBJN word
4880 037365 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4881 037366 263 17 0 00 000000 RTN ; return
4882
4883 ; Microword to use to load PLI data
4884
4885 037367 775077 510000 DDPLIM: MWORD <ADDR=7750,JMAP,J=7751,SD0,OR,D=2,MGC=0,SKCN> ; 7750
4886 037370 732000 240040
4887 037371 775100 002040 MWORD <CONT,S0A,OR,D=1,OENA,MGC=40,SELM> ; 7751
4888 037372 431000 002340
4889 037373 775200 000014 DDPLM2: MWORD <CONT,D=1,SELP,MGC=14> ; 7752
4890 037374 001000 001340
4891 037375 775377 530000 MWORD <JMAP,J=7753,D=1> ; 7753
4892 037376 001000 000040
4893 037377 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 115
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0278
4894
4895 ;#********************************************************************
4896 ;* DEPLI - Examine PLI registers
4897 ;
4898 ; Format: EPLI cntrl,repcount
4899 ;#********************************************************************
4900
4901 037400 201 00 0 00 000015 DEPLI: MOVEI ^D13 ; get EPLI flag
4902 037401 202 00 0 00 134152' MOVEM DFLAG ; save it
4903 037402 402 00 0 00 037516 SETZM PLIREP ; initialize repeat count
4904 037403 200 00 0 00 037514 MOVE PLICTL ; get control bits
4905 037404 202 00 0 00 037332* MOVEM ARGUM ; save in argument location
4906
4907 ; Get control bits
4908
4909 037405 200 01 0 00 037520 MOVE 1,EPLIH ; get help text
4910 037406 260 17 0 00 037327* GO .OARG ; get link control bits
4911 037407 263 17 0 00 000000 RTN ; error/altmode/question - exit
4912 037410 255 00 0 00 000000 JFCL ; no arguments given - continue
4913 037411 331 01 0 00 037404* SKIPL 1,ARGUM ; get argument
4914 037412 303 01 0 00 000017 CAILE 1,17 ; in range 0-17?
4915 JRST [FMSGCD <? Range of PLI control bits is 0-17>
4916 GO FIOFF
4917 037413 254 00 0 00 125232 RTN]
4918 037414 202 01 0 00 037514 MOVEM 1,PLICTL ; save control bits
4919
4920 ; Get 2nd argument - repeat count
4921
4922 037415 210 01 0 00 037520 MOVN 1,EPLIH ; get help text
4923 037416 260 17 0 00 037406* GO .OARG ; get data
4924 037417 263 17 0 00 000000 RTN ; error/altmode/question - exit
4925 037420 402 00 0 00 037411* SETZM ARGUM ; no argument - set to 0
4926 037421 200 00 0 00 037420* MOVE ARGUM ; get argument
4927 037422 202 00 0 00 037516 MOVEM PLIREP ; save it
4928 037423 200 00 0 00 037514 MOVE PLICTL ; get control bits
4929 037424 202 00 0 00 035611 MOVEM ANEXT ; save location
4930
4931 ; Save CRAM locations
4932
4933 037425 200 01 0 00 125240 DEPLI0: MOVE 1,[-7,,7750] ; set up AOBJN word
4934 037426 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
4935
4936 ; Set up location and load microcode
4937
4938 037427 200 00 0 00 037514 MOVE PLICTL ; get control bits
4939 037430 137 00 0 00 125241 DPB [POINT 6,DEPLIM+2,31] ; save it in microword
4940 037431 201 01 0 00 037475 MOVEI 1,DEPLIM ; set up microcode address
4941 037432 260 17 0 00 064353 GO MLOADN ; load/verify it
4942 037433 255 00 0 00 000000 JFCL ; ignore error
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 116
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0279
4943
4944 ; Print header
4945
4946 037434 200 01 0 00 037514 MOVE 1,PLICTL ; get control bits
4947 XCT [TMSGC <0-RdReg:> ; print it
4948 TMSGC <1-EnaLnk:>
4949 TMSGC <2-WFBLst:>
4950 TMSGC <3-WXmtBf:>
4951 TMSGC <4-RRecBf:>
4952 TMSGC <5-WtAdrs:>
4953 TMSGC <6-XmtAct:>
4954 TMSGC <7-RdRSta:>
4955 TMSGC <10-ClrRBf:>
4956 TMSGC <11-DsaLnk:>
4957 TMSGC <12-WRBfAd:>
4958 TMSGC <13-RdXSta:>
4959 TMSGC <14-RcXmBf:>
4960 TMSGC <15-RUBLst:>
4961 TMSGC <16-RRcAtn:>
4962 037435 256 00 0 01 125322 TMSGC <17-WtReg:>](1)
4963 037436 476 00 0 00 134214' SETOM PLINUM# ; clear print count
4964
4965 ; Do the examine and print results
4966
4967 037437 201 01 0 00 007750 DEPLI1: MOVEI 1,7750 ; get start address
4968 037440 242 01 0 00 000001 LSH 1,1 ; position correctly
4969 037441 260 17 0 00 037352* GO LDRAR ; load the RAR
4970 037442 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
4971 037443 260 17 0 00 037356* GO LDCSR ; write to CSR register
4972 037444 201 01 0 00 200000 MOVEI 1,TSTEBF ; set up to read EBUF data
4973 037445 260 17 0 00 037443* GO LDCSR ; write to CSR register
4974 037446 260 17 0 00 036674* GO RDEBUF ; read EBUF contents
4975 037447 260 17 0 00 000000* GO SETLAR ; ensure the LAR can be read
4976 037450 255 00 0 00 000000 JFCL ; error - ignore
4977 037451 350 00 0 00 134214' AOS PLINUM ; increment print count
4978 037452 037 00 0 00 125342 TMSGC < > ; start a new line
4979 037453 200 00 0 00 134214' MOVE PLINUM ; get print count
4980 037454 037 16 0 00 000003 PNTOCS ; print it
4981 037455 037 00 0 00 124736 TMSG </ >
4982 037456 135 00 0 00 125343 LDB [POINT 8,1,35] ; get PLI data
4983 037457 037 03 0 00 000000 PNT3 ; print it
4984 037460 260 17 0 00 035463* GO RDLAR ; read LAR
4985 037461 242 01 0 00 777777 LSH 1,-1 ; right shift 1 bit
4986 037462 306 01 0 00 007756 CAIN 1,7756 ; parity error occurred?
4987 037463 037 00 0 00 125344 TMSG <(PE on read)> ; yes - print such
4988 037464 037 07 0 00 000003 TTALTM ; altmode key struck?
4989 037465 334 00 0 00 000000 SKIPA ; no - proceed
4990 037466 254 00 0 00 037471 JRST DEPLIX ; yes - exit
4991 037467 373 00 0 00 037516 SOSLE PLIREP ; decrement count - expired?
4992 037470 254 00 0 00 037437 JRST DEPLI1 ; no - loop til done
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 117
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0280
4993
4994 ; Restore CRAM locations and exit
4995
4996 037471 037 00 0 00 030242 DEPLIX: PCRL ; print a final CRLF
4997 037472 200 01 0 00 125240 MOVE 1,[-7,,7750] ; set up AOBJN word
4998 037473 260 17 0 00 042752 GO RESCRM ; restore CRAM data
4999 037474 263 17 0 00 000000 RTN ; return
5000
5001 ; Microwords to use to get PLI data
5002
5003 037475 775077 510020 DEPLIM: MWORD <ADDR=7750,JMAP,J=7751,D=1,SELM,MGC=20> ; 7750
5004 037476 001000 002040
5005 037477 775100 000012 MWORD <CONT,D=1,SELP,MGC=12> ; 7751
5006 037500 001000 001340
5007 037501 775200 000300 MWORD <CONT,SD0,OR,D=2,SELM,MGC=300> ; 7752
5008 037502 732000 002340
5009 037503 775300 002004 MWORD <CONT,S0A,OR,D=1,OENA,SELE,MGC=4> ; 7753
5010 037504 431000 005340
5011 037505 775477 560000 MWORD <CJP,J=7756,D=1,CENA,CCPP> ; 7754
5012 037506 001400 150060
5013 037507 775577 550000 MWORD <JMAP,J=7755,D=1> ; 7755
5014 037510 001000 000040
5015 037511 775677 560000 MWORD <JMAP,J=7756,D=1> ; 7756
5016 037512 001000 000040
5017 037513 777777 777777 -1
5018
5019 ; Arguments
5020
5021 037514 000000 000000 PLICTL: 0 ; default control bits
5022 037515 000000 000000 PLIDAT: 0 ; PLI data to write
5023 037516 000000 000000 PLIREP: 0 ; repeat count
5024
5025 ; Help text
5026
5027 DPLIH: FMSGCD <DPLI cntrl,data,repcount (CR) where cntrl is:
5028 0-RdReg 4-RRecBf 10-ClrRBf 14-RcXmBf
5029 1-EnaLnk 5-WtAdrs 11-DsaLnk 15-RUBLst
5030 2-WFBLst 6-XmtAct 12-WRBfAd 16-RRcAtn
5031 037517 037 01 0 00 125347 3-WXmtBf 7-RdRSta 13-RdXSta 17-WtReg>
5032
5033 EPLIH: FMSGCD <EPLI cntrl,repcount (CR) where cntrl is:
5034 0-RdReg 4-RRecBf 10-ClrRBf 14-RcXmBf
5035 1-EnaLnk 5-WtAdrs 11-DsaLnk 15-RUBLst
5036 2-WFBLst 6-XmtAct 12-WRBfAd 16-RRcAtn
5037 037520 037 01 0 00 125423 3-WXmtBf 7-RdRSta 13-RdXSta 17-WtReg>
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 118
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0281
5038
5039 ;#********************************************************************
5040 ;* DETBUF - Read transmit buffer
5041 ;#********************************************************************
5042
5043 037521 200 01 0 00 125502 DETBUF: MOVE 1,[FMSGCD (ETBUFF <CR>)]
5044 037522 260 17 0 00 035510* GO CHKARG ; check for argument
5045 037523 263 17 0 00 000000 RTN ; error - exit
5046
5047 ; Read/print buffer
5048
5049 037524 260 17 0 00 037656 GO RDBUFT ; read/print it
5050 037525 263 17 0 00 000000 RTN ; exit
5051
5052
5053 ;#********************************************************************
5054 ;* DERBUF - Read receive buffer
5055 ;#********************************************************************
5056
5057 037526 200 01 0 00 125507 DERBUF: MOVE 1,[FMSGCD (ERBUFF <CR>)]
5058 037527 260 17 0 00 037522* GO CHKARG ; check for argument
5059 037530 263 17 0 00 000000 RTN ; error - exit
5060
5061 ; Read/print buffer
5062
5063 037531 260 17 0 00 037713 GO RDBUFR ; read/print it
5064 037532 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 119
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0282
5065
5066 ;#********************************************************************
5067 ;* DDUMP - Dump port state
5068 ;#********************************************************************
5069
5070 037533 261 17 0 00 000000 DDUMP: RPUT (0,1,2,3,4) ; save AC's
5071
5072 037540 476 00 0 00 134250' SETOM TSLOAD ; invalidate microcode loaded
5073
5074 ; Print CSR, EBUF, LAR, 2901 registers, stack
5075
5076 037541 037 00 0 00 125510 TMSGC <+++++++++++++++ KLNI DUMP +++++++++++++++>
5077 037542 260 17 0 00 034007* GO RDCSR ; read CSR
5078 037543 255 00 0 00 000000 JFCL ; error - ignore
5079 037544 260 17 0 00 042605 GO CSRPNT ; print data
5080 037545 260 17 0 00 035425 GO DEBEBU ; print EBUF
5081 037546 260 17 0 00 035460 GO DEBLAR ; print LAR data
5082 037547 037 00 0 00 125521 TMSG <+++++++++++++++ 2901 Registers +++++++++++++++>
5083 037550 402 00 0 00 134217' SETZM RALUB ; set up 'from' location
5084 037551 201 00 0 00 000020 MOVEI 20
5085 037552 202 00 0 00 134220' MOVEM RALUE ; set up 'to' location
5086 037553 260 17 0 00 036343 GO DEBALU ; print 2901 registers
5087 037554 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5088 037555 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5089 037556 037 00 0 00 125533 TMSG <+++++++++++++++ 2910 Stack +++++++++++++++>
5090 037557 260 17 0 00 040420 GO DEBSTK ; print stack contents
5091
5092 ; Print PCB
5093
5094 037560 037 00 0 00 125544 TMSG <+++++++++++++++ PCB +++++++++++++++>
5095 037561 260 17 0 00 070747 GO PPCB ; print PCB
5096 037562 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5097 037563 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5098
5099 ; Print queues
5100
5101 037564 037 00 0 00 125554 TMSGC <+++++++++++++++ Queues +++++++++++++++>
5102 037565 201 13 0 00 000000 MOVEI Q,0 ; set up queue number
5103 037566 260 17 0 00 067305 DDUMP0: GO PQUEUE ; print this queue
5104 037567 037 00 0 00 030242 PCRL ; final CRLF
5105 037570 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5106 037571 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5107 037572 350 00 0 00 000013 AOS Q ; point to next queue
5108 037573 307 13 0 00 000005 CAIG Q,5 ; done yet?
5109 037574 254 00 0 00 037566 JRST DDUMP0 ; no - loop till done
5110
5111 ; Print local storage
5112
5113 037575 037 00 0 00 125565 TMSG <+++++++++++++++ Local Storage +++++++++++++++>
5114 037576 402 00 0 00 134223' SETZM RLOCB ; set range of locations
5115 037577 201 00 0 00 001777 MOVEI 1777 ; to 0-1777
5116 037600 202 00 0 00 134224' MOVEM RLOCE
5117 037601 260 17 0 00 036647 GO DEBELO ; print local storage
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 120
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0283
5118 037602 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5119 037603 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5120
5121 ; Print transmit and receive buffers
5122
5123 037604 037 00 0 00 125577 TMSG <+++++++++++++++ NIA Transmit Buffer +++++++++++++++>
5124 037605 260 17 0 00 037656 GO RDBUFT
5125 037606 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5126 037607 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5127
5128 037610 037 00 0 00 125612 TMSG <+++++++++++++++ NIA Receive Buffers +++++++++++++++>
5129 037611 260 17 0 00 037713 GO RDBUFR
5130 037612 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5131 037613 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5132
5133 ; Print logout data (before STORE)
5134
5135 037614 037 00 0 00 125625 TMSGC <+++++++++++++++ EPT Data +++++++++++++++>
5136 037615 037 00 0 00 125636 TMSGC <Logout data before STOP and STORE:>
5137 037616 260 17 0 00 037755 GO PLOG ; get/print EPT
5138 037617 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
5139 037620 254 00 0 00 037643 JRST DDUMPX ; yes - exit
5140
5141 ; Print logout data (after STORE)
5142
5143 037621 037 00 0 00 125625 TMSGC <+++++++++++++++ EPT Data +++++++++++++++>
5144 037622 037 00 0 00 125646 TMSGC <After loading special ucode to do a STOP and STORE:>
5145 037623 200 01 0 00 125101 MOVE 1,[-2,,7750] ; set up AOBJN word
5146 037624 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
5147 037625 201 01 0 00 037651 MOVEI 1,DDUMPM ; set up microcode address
5148 037626 260 17 0 00 064353 GO MLOADN ; load/verify it
5149 037627 255 00 0 00 000000 JFCL ; ignore error
5150 037630 201 01 0 00 007750 MOVEI 1,7750 ; get start address
5151 037631 242 01 0 00 000001 LSH 1,1 ; position correctly
5152 037632 260 17 0 00 037441* GO LDRAR ; load the RAR
5153 037633 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
5154 037634 260 17 0 00 037445* GO LDCSR ; write to CSR register
5155 037635 400 01 0 00 000000 SETZ 1, ; stop the port
5156 037636 260 17 0 00 037634* GO LDCSR
5157 037637 200 01 0 00 125101 MOVE 1,[-2,,7750] ; set up AOBJN word
5158 037640 260 17 0 00 042752 GO RESCRM ; restore CRAM data
5159 037641 260 17 0 00 037755 GO PLOG ; get/print EPT
5160 037642 037 00 0 00 125661 TMSGCD <+++++++++++++++ End of KLIPA DUMP +++++++++++++++>
5161 037643 262 17 0 00 000004 DDUMPX: RGET (4,3,2,1,0) ; restore AC's
5162
5163 037650 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 121
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0284
5164
5165 ; Microcode to do a STORE
5166
5167 037651 775077 510140 DDUMPM: MWORD <ADDR=7750,JMAP,J=7751,SELC,MGC=140> ; 7750
5168 037652 000000 004040
5169 037653 775177 510000 MWORD <JMAP,J=7751> ; 7751
5170 037654 000000 000040
5171 037655 777777 777777 -1
5172
5173
5174 ;#********************************************************************
5175 ;* RDBUFT - Read transmit buffer (80 bytes only)
5176 ;#********************************************************************
5177
5178 037656 261 17 0 00 000000 RDBUFT: RPUT (0,1,2,3) ; save AC's
5179
5180 037662 260 17 0 00 037261* GO ISTOP ; stop the port
5181 037663 037 00 0 00 125674 TMSGC <Transmit Buffer: >
5182 037664 201 01 0 00 000006 MOVEI 1,6 ; get code for 'XMT Action'
5183 037665 201 02 0 00 000001 MOVEI 2,1 ; get data 'Reset TxBuf Adrs'
5184 037666 260 17 0 00 040126 GO WRTPLI ; write over PLI
5185 037667 201 01 0 00 000005 MOVEI 1,5 ; get code for 'Wt Adrs'
5186 037670 201 02 0 00 000020 MOVEI 2,20 ; get data 'Xmt Buffer Rd'
5187 037671 260 17 0 00 040126 GO WRTPLI ; write over PLI
5188 037672 201 03 0 00 000120 MOVEI 3,^D80 ; print only 80 bytes
5189 037673 315 03 0 00 033706 CAMGE 3,DSPRIN ; more than words to print?
5190 037674 200 03 0 00 033706 MOVE 3,DSPRIN ; no - get words to print
5191 037675 260 17 0 00 040054 RDBUF1: GO RDBF ; read buffer data
5192 037676 200 00 0 00 000001 MOVE 1 ; get into AC0
5193 037677 037 03 0 00 000000 PNT3 ; print it out
5194 037700 200 00 0 00 000003 MOVE 3 ; get into AC0
5195 037701 275 00 0 00 000006 SUBI 6
5196 037702 231 00 0 00 000017 IDIVI ^D15
5197 JUMPE 1,[TMSGC < >
5198 037703 322 01 0 00 125701 JRST .+1]
5199 037704 367 03 0 00 037675 SOJG 3,RDBUF1 ; loop till done
5200 037705 037 00 0 00 030242 PCRL ; final CRLF
5201 037706 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
5202
5203 037712 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 122
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0285
5204
5205 ;#********************************************************************
5206 ;* RDBUFR - Read transmit buffers
5207 ;#********************************************************************
5208
5209 037713 261 17 0 00 000000 RDBUFR: RPUT (0,1,2,3,4) ; save AC's
5210
5211 TMSGC <('SET PRINT n' to print n bytes)
5212 Receive Byte
5213 Buffer# 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
5214 037720 037 00 0 00 125703 ------- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --->
5215 037721 474 04 0 00 000000 SETO 4, ; initialize buffer count
5216 037722 350 00 0 00 000004 RDBUF2: AOS 4 ; point to next buffer
5217 037723 301 04 0 00 000040 CAIL 4,^D32 ; done yet?
5218 037724 254 00 0 00 037746 JRST RDBUFX ; yes - exit
5219
5220 ; Print a buffer
5221
5222 037725 260 17 0 00 033750* GO IPACLR ; do a 'port clear'
5223 037726 037 00 0 00 125753 TMSGC < #>
5224 037727 001 02 0 00 000004 PNTOCC 2,4 ; print buffer number
5225 037730 037 00 0 00 125755 TMSG <: >
5226 037731 201 01 0 00 000012 MOVEI 1,12 ; get code for 'Write RecBuf Adrs'
5227 037732 200 02 0 00 000004 MOVE 2,4 ; get buffer address
5228 037733 242 02 0 00 000001 LSH 2,1 ; left shift properly
5229 037734 260 17 0 00 040126 GO WRTPLI ; write over PLI
5230 037735 201 03 0 00 000020 MOVEI 3,^D16 ; print only 16 bytes
5231 037736 315 03 0 00 033706 CAMGE 3,DSPRIN ; more than words to print?
5232 037737 200 03 0 00 033706 MOVE 3,DSPRIN ; no - get words to print
5233 037740 260 17 0 00 040101 RDBUF3: GO RRDBF ; read receive buffer
5234 037741 200 00 0 00 000001 MOVE 1 ; get into AC0
5235 037742 037 03 0 00 000000 PNT3 ; print it out
5236 037743 367 03 0 00 037740 SOJG 3,RDBUF3 ; loop till done
5237 037744 037 07 0 00 000003 TTALTM ; check for altmode typed
5238 037745 254 00 0 00 037722 JRST RDBUF2 ; loop on buffer number
5239
5240 ; Exit
5241
5242 037746 037 00 0 00 030242 RDBUFX: PCRL
5243 037747 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
5244
5245 037754 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 123
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0286
5246
5247 ;#********************************************************************
5248 ;* PLOG - Obtain EPT logout data
5249 ;#********************************************************************
5250
5251 037755 200 01 0 00 125756 PLOG: MOVE 1,[-^D14,,0] ; set up AOBJN word
5252 037756 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
5253 037757 201 01 0 00 040017 MOVEI 1,PLOGM ; get microcode address
5254 037760 260 17 0 00 064353 GO MLOADN ; load the microcode
5255 037761 255 00 0 00 000000 JFCL
5256
5257 ; Start it up and give the port the address to read
5258
5259 037762 400 01 0 00 000000 SETZ 1, ; get start address
5260 037763 260 17 0 00 037632* GO LDRAR ; load the register
5261 037764 201 01 0 00 000010 MOVEI 1,MPRUN ; set initial data
5262 037765 260 17 0 00 037636* GO LDCSR
5263 037766 135 01 0 00 120111 LDB 1,[POINT 3,MBCN,9] ; get channel number
5264 037767 200 01 0 01 000000* MOVE 1,ICWA0(1) ; get ICWA for channel
5265 037770 200 03 0 00 000001 MOVE 3,1 ; get into AC3 also
5266 037771 336 00 0 00 134255' SKIPN UDEBUG ; user mode?
5267 037772 7 010 24 0 00 000002 CONI PAG,2 ; no - get page number of EPT
5268 037773 242 02 0 00 000011 LSH 2,9 ; position correctly
5269 037774 621 02 0 00 777777 TLZ 2,777777 ; clear left half
5270 037775 270 01 0 00 000002 ADD 1,2 ; add in EPT offset
5271 037776 434 01 0 00 125757 IOR 1,[440000,,0] ; include IOP function
5272 037777 260 17 0 00 036754* GO .DATAO ; do the first DATAO
5273 040000 201 02 0 00 000004 MOVEI 2,4 ; number of locations to read
5274 040001 037 00 0 00 125760 PLOG0: TMSGC <EPT+>
5275 040002 200 00 0 00 000003 MOVE 3 ; get offset
5276 040003 037 02 0 00 000000 PNT2 ; print it
5277 040004 260 17 0 00 000000* GO .DATAI ; get the data
5278 040005 200 00 0 00 000001 MOVE 1 ; get into AC0
5279 040006 037 13 0 00 000000 PNTHW ; print it
5280 040007 005 00 0 00 000001 DELAY 1 ; wait 1 millisecond
5281 040010 350 00 0 00 000003 AOS 3 ; point to next offset
5282 040011 367 02 0 00 040001 SOJG 2,PLOG0 ; done yet - no - loop till done
5283 040012 400 01 0 00 000000 SETZ 1,
5284 040013 260 17 0 00 037765* GO LDCSR ; stop the port
5285
5286 ; Done
5287
5288 040014 200 01 0 00 125756 MOVE 1,[-^D14,,0] ; set up AOBJN word
5289 040015 260 17 0 00 042752 GO RESCRM ; restore CRAM data
5290 040016 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 124
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0287
5291
5292 ; Microcode
5293
5294 040017 000000 010000 PLOGM: MWORD <ADDR=0,JMAP,J=1> ; 0
5295 040020 000000 000040
5296 040021 000100 030000 MWORD <CJP,J=3,CENA,CCER> ; 1
5297 040022 000400 100060
5298 040023 000200 010000 MWORD <JMAP,J=1> ; 2
5299 040024 000000 000040
5300 040025 000301 000010 MWORD <LDCT,J=100,SD0,B=16,OR,D=2,SELE,MGC=10>; 3
5301 040026 732007 005300
5302
5303 040027 000400 042004 MWORD <RPCT,J=4,S0A,A=16,OR,D=1,OENA,SELE,MGC=4>
5304 040030 431160 005220
5305 040031 000501 000001 MWORD <LDCT,J=100,SELE,MGC=1> ; 5 (Ex/Dep int)
5306 040032 000000 005300
5307 040033 000600 100000 MWORD <CJP,J=10,D=1,CENA,CCER> ; 6
5308 040034 001400 100060
5309 040035 000700 060000 MWORD <JMAP,J=6,D=1> ; 7
5310 040036 001000 000040
5311 040037 001000 000010 MWORD <CONT,SD0,B=17,OR,D=2,SELE,MGC=10> ; 10
5312 040040 732007 405340
5313 040041 001100 112004 MWORD <RPCT,J=11,S0A,OR,A=17,D=2,OENA,SELE,MGC=4>
5314 040042 432170 005220
5315 040043 001200 140000 MWORD <CJP,J=14,D=1,CENA,CCER> ; 12
5316 040044 001400 100060
5317 040045 001300 120000 MWORD <JMAP,J=12,D=1> ; 13
5318 040046 001000 000040
5319 040047 001401 000020 MWORD <LDCT,J=100,SELE,MGC=20> ; 14
5320 040050 000000 005300
5321 040051 001500 040000 MWORD <JMAP,J=4,S0B,PLUS,D=2,B=16,CRY> ; 15
5322 040052 302007 000440
5323 040053 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 125
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0288
5324
5325 ;#********************************************************************
5326 ; RDBF - Read a buffer location (AC1 contains data)
5327 ;#********************************************************************
5328
5329 040054 200 01 0 00 125240 RDBF: MOVE 1,[-7,,7750] ; set up AOBJN word
5330 040055 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
5331 040056 201 01 0 00 000000 MOVEI 1,0 ; get link control bits (RDREG)
5332 040057 137 01 0 00 125241 DPB 1,[POINT 6,DEPLIM+2,31] ; save it in microword
5333 040060 201 01 0 00 037475 MOVEI 1,DEPLIM ; set up microcode address
5334 040061 260 17 0 00 064353 GO MLOADN ; load/verify it
5335 040062 255 00 0 00 000000 JFCL ; ignore error
5336 040063 201 01 0 00 007750 MOVEI 1,7750 ; get start address
5337 040064 242 01 0 00 000001 LSH 1,1 ; position correctly
5338 040065 260 17 0 00 037763* GO LDRAR ; load the RAR
5339 040066 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
5340 040067 260 17 0 00 040013* GO LDCSR ; write to CSR register
5341 040070 201 01 0 00 200000 MOVEI 1,TSTEBF ; set up to read EBUF data
5342 040071 260 17 0 00 040067* GO LDCSR ; write to CSR register
5343 040072 260 17 0 00 037446* GO RDEBUF ; read EBUF contents
5344 040073 405 01 0 00 000377 ANDI 1,377 ; get rid of misc bits
5345 040074 261 17 0 00 000001 PUT 1 ; save data
5346 040075 200 01 0 00 125240 MOVE 1,[-7,,7750] ; set up AOBJN word
5347 040076 260 17 0 00 042752 GO RESCRM ; save the CRAM locations
5348 040077 262 17 0 00 000001 GET 1 ; restore data
5349 040100 263 17 0 00 000000 RTN ; return
5350
5351 ;#********************************************************************
5352 ; RRDBF - Read a receive buffer location (AC1 contains data)
5353 ;#********************************************************************
5354
5355 040101 200 01 0 00 125240 RRDBF: MOVE 1,[-7,,7750] ; set up AOBJN word
5356 040102 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
5357 040103 201 01 0 00 000004 MOVEI 1,4 ; get link control bits (RDBUFF)
5358 040104 137 01 0 00 125241 DPB 1,[POINT 6,DEPLIM+2,31] ; save it in microword
5359 040105 201 01 0 00 037475 MOVEI 1,DEPLIM ; set up microcode address
5360 040106 260 17 0 00 064353 GO MLOADN ; load/verify it
5361 040107 255 00 0 00 000000 JFCL ; ignore error
5362 040110 201 01 0 00 007750 MOVEI 1,7750 ; get start address
5363 040111 242 01 0 00 000001 LSH 1,1 ; position correctly
5364 040112 260 17 0 00 040065* GO LDRAR ; load the RAR
5365 040113 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
5366 040114 260 17 0 00 040071* GO LDCSR ; write to CSR register
5367 040115 201 01 0 00 200000 MOVEI 1,TSTEBF ; set up to read EBUF data
5368 040116 260 17 0 00 040114* GO LDCSR ; write to CSR register
5369 040117 260 17 0 00 040072* GO RDEBUF ; read EBUF contents
5370 040120 405 01 0 00 000377 ANDI 1,377 ; get rid of misc bits
5371 040121 261 17 0 00 000001 PUT 1 ; save data
5372 040122 200 01 0 00 125240 MOVE 1,[-7,,7750] ; set up AOBJN word
5373 040123 260 17 0 00 042752 GO RESCRM ; save the CRAM locations
5374 040124 262 17 0 00 000001 GET 1 ; restore data
5375 040125 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 126
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0289
5376
5377 ;#********************************************************************
5378 ; WRTPLI - Deposit PLI (AC1,2 contain Control/Data bits)
5379 ;#********************************************************************
5380
5381 040126 261 17 0 00 000000 WRTPLI: RPUT (0,1,2) ; save AC's
5382
5383 040131 200 01 0 00 125235 MOVE 1,[-4,,7750] ; set up AOBJN word
5384 040132 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
5385 040133 200 00 0 17 777777 MOVE -1(P) ; get link control bits
5386 040134 137 00 0 00 125236 DPB [POINT 6,DDPLM2,31] ; save link control bits
5387 040135 200 00 0 17 000000 MOVE (P) ; get PLI data bits
5388 040136 137 00 0 00 125237 DPB [POINT 10,DDPLIM,35] ; save it in microword
5389 040137 201 01 0 00 037367 MOVEI 1,DDPLIM ; set up microcode address
5390 040140 260 17 0 00 064353 GO MLOADN ; load/verify it
5391 040141 255 00 0 00 000000 JFCL ; ignore error
5392 040142 201 01 0 00 007750 MOVEI 1,7750 ; get start address
5393 040143 242 01 0 00 000001 LSH 1,1 ; position correctly
5394 040144 260 17 0 00 040112* GO LDRAR ; load the RAR
5395 040145 201 01 0 00 000010 MOVEI 1,MPRUN ; set up initial data
5396 040146 260 17 0 00 040116* GO LDCSR ; start the port
5397 040147 400 01 0 00 000000 SETZ 1, ; clear AC1
5398 040150 260 17 0 00 040146* GO LDCSR ; stop the port
5399 040151 200 01 0 00 125235 MOVE 1,[-4,,7750] ; set up AOBJN word
5400 040152 260 17 0 00 042752 GO RESCRM ; restore the CRAM locations
5401 040153 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
5402
5403 040156 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 127
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0290
5404
5405 ;#********************************************************************
5406 ;* DENEXT - Examine next
5407 ;#********************************************************************
5408
5409 040157 402 00 0 00 037421* DENEXT: SETZM ARGUM ; default to repeat count
5410 040160 350 00 0 00 040157* AOS ARGUM ; of 1
5411 040161 200 01 0 00 125772 MOVE 1,[FMSGCD (ENEXT repcount <CR> or ENEXT <CR>)]
5412 040162 260 17 0 00 037003* GO .DARG ; get repeat count
5413 040163 263 17 0 00 000000 RTN ; error/altmode/question - exit
5414 040164 255 00 0 00 000000 JFCL ; no argument given
5415 040165 200 00 0 00 040160* MOVE ARGUM ; get argument
5416
5417 ; Do the examine
5418
5419 040166 476 00 0 00 134174' DENE0: SETOM MULFLG ; set 'multiple examine' flag
5420 040167 200 00 0 00 040165* MOVE ARGUM ; get argument
5421 040170 307 00 0 00 000001 CAIG 1 ; only one more repetition?
5422 040171 402 00 0 00 134174' SETZM MULFLG ; yes - clear 'multiple examine' flag
5423 040172 200 01 0 00 134152' MOVE 1,DFLAG ; get last operation done
5424 040173 554 00 0 01 040204 HLRZ DETAB(1) ; get new value of DFLAG
5425 040174 202 00 0 00 134152' MOVEM DFLAG ; save it
5426 040175 550 02 0 01 040204 HRRZ 2,DETAB(1) ; get dispatch address
5427 040176 260 17 0 02 000000 GO (2) ; dispatch
5428 040177 336 00 0 00 134143' SKIPN ALTF ; altmode typed?
5429 040200 377 00 0 00 040167* SOSG ARGUM ; repeat count exhausted?
5430 040201 263 17 0 00 000000 RTN ; yes - exit
5431 040202 402 00 0 00 134175' SETZM MULINI ; clear 'initial examine' flag
5432 040203 254 00 0 00 040166 JRST DENE0 ; no - loop till done
5433
5434 ; Dispatch table
5435
5436 040204 000000 040222 DETAB: 0,,DENEX0 ; ECRAM
5437 040205 000000 040222 0,,DENEX0 ; DCRAM
5438 040206 000000 040222 0,,DENEX0 ; BCRAM
5439 040207 000000 040222 0,,DENEX0 ; ACRAM
5440 040210 000000 040222 0,,DENEX0 ; ZCRAM
5441 040211 000005 040222 5,,DENEX0 ; LCRAM
5442 040212 000006 040226 6,,DENEX1 ; E2901
5443 040213 000006 040226 6,,DENEX1 ; D2901
5444 040214 000006 040226 6,,DENEX1 ; Z2901
5445 040215 000011 040232 9,,DENEX2 ; ELOCS
5446 040216 000011 040232 9,,DENEX2 ; DLOCS
5447 040217 000011 040232 9,,DENEX2 ; ZLOCS
5448 040220 000015 040236 ^D13,,DENEX3 ; DPLI
5449 040221 000015 040236 ^D13,,DENEX3 ; EPLI
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 128
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0291
5450
5451 ; To handle CRAM examine ...
5452
5453 040222 200 00 0 00 035611 DENEX0: MOVE ANEXT ; get address
5454 040223 202 00 0 00 035603 MOVEM CRAMTO ; set up 'to' and 'from'
5455 040224 202 00 0 00 035602 MOVEM CRAMFR ; addresses
5456 040225 254 00 0 00 035562 PJRST DCOM0 ; go handle
5457
5458 ; To handle 2901 registers
5459
5460 040226 200 00 0 00 035611 DENEX1: MOVE ANEXT ; get register number
5461 040227 202 00 0 00 134217' MOVEM RALUB ; save in 'from' location
5462 040230 202 00 0 00 134220' MOVEM RALUE ; save in 'to' location
5463 040231 254 00 0 00 036325 PJRST DEALU0 ; go handle
5464
5465 ; To handle local storage
5466
5467 040232 200 00 0 00 035611 DENEX2: MOVE ANEXT ; get address
5468 040233 202 00 0 00 134223' MOVEM RLOCB ; save in 'from' location
5469 040234 202 00 0 00 134224' MOVEM RLOCE ; save in 'to' location
5470 040235 254 00 0 00 036631 PJRST DELOC0 ; go handle
5471
5472 ; To handle PLI registers
5473
5474 040236 200 00 0 00 035611 DENEX3: MOVE ANEXT ; get register number
5475 040237 202 00 0 00 037516 MOVEM PLIREP ; save in argument location
5476 040240 254 00 0 00 037425 PJRST DEPLI0 ; go handle
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 129
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0292
5477
5478 ;#********************************************************************
5479 ;* DDNEXT - Deposit next
5480 ;#********************************************************************
5481
5482 040241 200 01 0 00 134152' DDNEXT: MOVE 1,DFLAG ; get last operation done
5483 040242 554 00 0 01 040246 HLRZ DDTAB(1) ; get new value of DFLAG
5484 040243 202 00 0 00 134152' MOVEM DFLAG ; save it
5485 040244 550 02 0 01 040246 HRRZ 2,DDTAB(1) ; get dispatch address
5486 040245 254 00 0 02 000000 JRST (2) ; dispatch
5487
5488 ; Dispatch table
5489
5490 040246 000001 040267 DDTAB: 1,,DDNEX0 ; ECRAM
5491 040247 000001 040267 1,,DDNEX0 ; DCRAM
5492 040250 000002 040267 2,,DDNEX0 ; BCRAM
5493 040251 000003 040267 3,,DDNEX0 ; ACRAM
5494 040252 000003 040267 3,,DDNEX0 ; ZCRAM
5495 040253 000003 040267 3,,DDNEX0 ; LCRAM
5496 040254 000007 040276 7,,DDNEX1 ; E2901
5497 040255 000007 040276 7,,DDNEX1 ; D2901
5498 040256 000007 040276 7,,DDNEX1 ; Z2901
5499 040257 000012 040303 ^D10,,DDNEX2 ; ELOCS
5500 040260 000012 040303 ^D10,,DDNEX2 ; DLOCS
5501 040261 000012 040303 ^D10,,DDNEX2 ; ZLOCS
5502 040262 000014 040310 ^D12,,DDNEX3 ; DPLI
5503 040263 000014 040310 ^D12,,DDNEX3 ; EPLI
5504 040264 000016 040313 ^D14,,DDNEX4 ; DEPPTT
5505 040265 000017 040316 ^D15,,DDNEX5 ; DEPMUL
5506 040266 000020 040321 ^D16,,DDNEX6 ; DEPPAK
5507
5508 ; To handle CRAM deposit ...
5509
5510 040267 200 01 0 00 125776 DDNEX0: MOVE 1,[FMSGCD (DNEXT <CR>)]
5511 040270 260 17 0 00 037527* GO CHKARG ; check for argument
5512 040271 263 17 0 00 000000 RTN ; error - exit
5513 040272 200 00 0 00 035611 MOVE ANEXT ; get address
5514 040273 202 00 0 00 035603 MOVEM CRAMTO ; set up 'to' and 'from'
5515 040274 202 00 0 00 035602 MOVEM CRAMFR ; addresses
5516 040275 254 00 0 00 035562 PJRST DCOM0 ; go handle
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 130
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0293
5517
5518 ; To handle 2901 registers
5519
5520 040276 200 00 0 00 035611 DDNEX1: MOVE ANEXT ; get register number
5521 040277 202 00 0 00 134217' MOVEM RALUB ; save in 'from' location
5522 040300 202 00 0 00 134220' MOVEM RALUE ; save in 'to' location
5523 040301 202 00 0 00 040200* MOVEM ARGUM ; save it
5524 040302 254 00 0 00 036416 PJRST DDALU0 ; go handle
5525
5526 ; To handle local storage
5527
5528 040303 200 00 0 00 035611 DDNEX2: MOVE ANEXT ; get address
5529 040304 202 00 0 00 134223' MOVEM RLOCB ; save in 'from' location
5530 040305 202 00 0 00 134224' MOVEM RLOCE ; save in 'to' location
5531 040306 202 00 0 00 040301* MOVEM ARGUM ; save it
5532 040307 254 00 0 00 036717 PJRST DDLOC0 ; go handle
5533
5534 ; To handle PLI registers
5535
5536 040310 200 00 0 00 035611 DDNEX3: MOVE ANEXT ; get register number
5537 040311 202 00 0 00 040306* MOVEM ARGUM ; save in argument location
5538 040312 254 00 0 00 037320 PJRST DDPLI0 ; go handle
5539
5540 ; To handle DEPPTT
5541
5542 040313 200 00 0 00 035611 DDNEX4: MOVE ANEXT ; get location
5543 040314 202 00 0 00 040311* MOVEM ARGUM ; save in argument location
5544 040315 254 00 0 00 040330 PJRST DDPPT0 ; go handle
5545
5546 ; To handle DEPMUL
5547
5548 040316 200 00 0 00 035611 DDNEX5: MOVE ANEXT ; get location
5549 040317 202 00 0 00 040314* MOVEM ARGUM ; save in argument location
5550 040320 254 00 0 00 040353 PJRST DDPMU0 ; go handle
5551
5552 ; To handle DEPPAK
5553
5554 040321 200 00 0 00 035611 DDNEX6: MOVE ANEXT ; get location
5555 040322 202 00 0 00 040317* MOVEM ARGUM ; save in argument location
5556 040323 254 00 0 00 040376 PJRST DDPPA0 ; go handle
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 131
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0294
5557
5558 ;#********************************************************************
5559 ;* DDPPTT - Deposit into PTT table
5560 ;
5561 ; Format: DEPPTT adr,data
5562 ;#********************************************************************
5563
5564 040324 200 01 0 00 126005 DDPPTT: MOVE 1,[FMSGCD <DEPPTT offset,data (CR)>]
5565 040325 260 17 0 00 040162* GO .DARG ; get address
5566 040326 263 17 0 00 000000 RTN ; error/altmode/question - exit
5567 JRST [FMSGCD <? Missing argument>
5568 GO FIOFF
5569 040327 254 00 0 00 117722 RTN]
5570 040330 200 02 0 00 040322* DDPPT0: MOVE 2,ARGUM ; get argument
5571 040331 301 02 0 00 000000 CAIL 2,0 ; in range 0-47?
5572 040332 303 02 0 00 000047 CAILE 2,47
5573 JRST [FMSGCD <? Range of PTT locations is 0-47>
5574 GO FIOFF
5575 040333 254 00 0 00 126016 RTN]
5576 040334 210 01 0 00 126005 MOVN 1,[FMSGCD <DEPPTT offset,data (CR)>]
5577 040335 260 17 0 00 037416* GO .OARG ; get data
5578 040336 263 17 0 00 000000 RTN ; error/altmode/question - exit
5579 JRST [FMSGCD <? Missing argument>
5580 GO FIOFF
5581 040337 254 00 0 00 117722 RTN]
5582
5583 ; Do the deposit
5584
5585 040340 200 00 0 00 040330* MOVE ARGUM ; get argument
5586 040341 202 00 0 02 105000 MOVEM PTABLE(2) ; save the data
5587 040342 202 02 0 00 035611 MOVEM 2,ANEXT ; save location
5588 040343 350 00 0 00 035611 AOS ANEXT ; point to next location
5589 040344 201 00 0 00 000016 MOVEI ^D14 ; get DEPMUL flag
5590 040345 202 00 0 00 134152' MOVEM DFLAG ; save it
5591 040346 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 132
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0295
5592
5593 ;#********************************************************************
5594 ;* DDPMUL - Deposit into Multicast table
5595 ;
5596 ; Format: DEPMUL adr,data
5597 ;#********************************************************************
5598
5599 040347 200 01 0 00 126027 DDPMUL: MOVE 1,[FMSGCD <DEPMUL offset,data (CR)>]
5600 040350 260 17 0 00 040325* GO .DARG ; get address
5601 040351 263 17 0 00 000000 RTN ; error/altmode/question - exit
5602 JRST [FMSGCD <? Missing argument>
5603 GO FIOFF
5604 040352 254 00 0 00 117722 RTN]
5605 040353 200 02 0 00 040340* DDPMU0: MOVE 2,ARGUM ; get argument
5606 040354 301 02 0 00 000000 CAIL 2,0 ; in range 0-17?
5607 040355 303 02 0 00 000017 CAILE 2,17
5608 JRST [FMSGCD <? Range of Multi-cast locations is 0-17>
5609 GO FIOFF
5610 040356 254 00 0 00 126041 RTN]
5611 040357 210 01 0 00 126027 MOVN 1,[FMSGCD <DEPMUL offset,data (CR)>]
5612 040360 260 17 0 00 040335* GO .OARG ; get data
5613 040361 263 17 0 00 000000 RTN ; error/altmode/question - exit
5614 JRST [FMSGCD <? Missing argument>
5615 GO FIOFF
5616 040362 254 00 0 00 117722 RTN]
5617
5618 ; Do the deposit
5619
5620 040363 200 00 0 00 040353* MOVE ARGUM ; get argument
5621 040364 202 00 0 02 115320 MOVEM MTABLE(2) ; save the data
5622 040365 202 02 0 00 035611 MOVEM 2,ANEXT ; save location
5623 040366 350 00 0 00 035611 AOS ANEXT ; point to next location
5624 040367 201 00 0 00 000017 MOVEI ^D15 ; get DEPMUL flag
5625 040370 202 00 0 00 134152' MOVEM DFLAG ; save it
5626 040371 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 133
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0296
5627
5628 ;#********************************************************************
5629 ;* DDPPAK - Deposit into packet
5630 ;
5631 ; Format: DEPPAK adr,data
5632 ;#********************************************************************
5633
5634 040372 200 01 0 00 126052 DDPPAK: MOVE 1,[FMSGCD <DEPPAK offset,data (CR)>]
5635 040373 260 17 0 00 040350* GO .DARG ; get address
5636 040374 263 17 0 00 000000 RTN ; error/altmode/question - exit
5637 JRST [FMSGCD <? Missing argument>
5638 GO FIOFF
5639 040375 254 00 0 00 117722 RTN]
5640 040376 200 02 0 00 040363* DDPPA0: MOVE 2,ARGUM ; get argument
5641 040377 301 02 0 00 000000 CAIL 2,0 ; in range 0-99.?
5642 040400 303 02 0 00 000143 CAILE 2,^D99
5643 JRST [FMSGCD <? Range of PACKET locations is 0-99.>
5644 GO FIOFF
5645 040401 254 00 0 00 126064 RTN]
5646 040402 210 01 0 00 126052 MOVN 1,[FMSGCD <DEPPAK offset,data (CR)>]
5647 040403 260 17 0 00 040360* GO .OARG ; get data
5648 040404 263 17 0 00 000000 RTN ; error/altmode/question - exit
5649 JRST [FMSGCD <? Missing argument>
5650 GO FIOFF
5651 040405 254 00 0 00 117722 RTN]
5652
5653 ; Do the deposit
5654
5655 040406 200 00 0 00 040376* MOVE ARGUM ; get argument
5656 040407 202 00 0 02 072114 MOVEM PACKET(2) ; save the data
5657 040410 202 02 0 00 035611 MOVEM 2,ANEXT ; save location
5658 040411 350 00 0 00 035611 AOS ANEXT ; point to next location
5659 040412 201 00 0 00 000020 MOVEI ^D16 ; get DEPPAK flag
5660 040413 202 00 0 00 134152' MOVEM DFLAG ; save it
5661 040414 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 134
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0297
5662
5663 ;#********************************************************************
5664 ;* DESTAK - examine 2910 stack
5665 ;#********************************************************************
5666
5667 040415 200 01 0 00 126073 DESTAK: MOVE 1,[FMSGCD (ESTACK <CR>)]
5668 040416 260 17 0 00 040270* GO CHKARG ; check for argument
5669 040417 263 17 0 00 000000 RTN ; error - exit
5670 040420 200 01 0 00 125020 DEBSTK: MOVE 1,[-1,,7750] ; set up AOBJN word
5671 040421 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
5672 040422 201 01 0 00 040452 MOVEI 1,DESTKM ; set up microcode address
5673 040423 260 17 0 00 064353 GO MLOADN ; load/verify it
5674 040424 255 00 0 00 000000 JFCL ; ignore error
5675
5676 ; Do the task
5677
5678 040425 260 17 0 00 037662* GO ISTOP ; stop the port
5679 040426 037 00 0 00 126074 TMSGC <2910 Stack:>
5680 040427 037 00 0 00 126077 TMSGC < Location Contents (addr)>
5681 040430 474 04 0 00 000000 SETO 4, ; initialize location pointer
5682 040431 350 00 0 00 000004 DESTA0: AOS 4 ; point to next location
5683 040432 303 04 0 00 000004 CAILE 4,4 ; done yet?
5684 040433 254 00 0 00 040446 JRST DESTAX ; yes - exit
5685 040434 402 00 0 00 035416* SETZM SDATA ; get initial CSR data
5686 040435 201 00 0 00 007750 MOVEI 7750 ; set up next address
5687 040436 202 00 0 00 035373* MOVEM SNEXT ; for IPASST
5688 040437 260 17 0 00 034057* GO IPASST ; single step once
5689 JRST [FMSGCD <? Error accessing CSR register>
5690 GO FIOFF
5691 040440 254 00 0 00 126105 JRST DESTAY]
5692 JRST [FMSGCD <? Port not stopped>
5693 GO FIOFF
5694 040441 254 00 0 00 126110 JRST DESTAY]
5695 040442 255 00 0 00 000000 JFCL ; error bits set in CSR
5696 XCT [TMSGC < Top >
5697 TMSGC < -1 >
5698 TMSGC < -2 >
5699 TMSGC < -3 >
5700 040443 256 00 0 04 126132 TMSGC < -4 >](4)
5701 040444 001 12 0 00 040436* PNTOCC 12,SNEXT ; print address
5702 040445 254 00 0 00 040431 JRST DESTA0 ; loop till done
5703
5704 ; Restore CRAM location/exit
5705
5706 040446 037 00 0 00 030242 DESTAX: PCRL
5707 040447 200 01 0 00 125020 DESTAY: MOVE 1,[-1,,7750] ; set up AOBJN word
5708 040450 260 17 0 00 042752 GO RESCRM ; restore CRAM data
5709 040451 263 17 0 00 000000 RTN ; return
5710
5711 ; Microcode
5712
5713 040452 775000 000000 DESTKM: MWORD <ADDR=7750,CRTN,D=1> ; 7750
5714 040453 001000 000240
5715 040454 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 135
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0298
5716
5717 ;#********************************************************************
5718 ;* DBREAK - Set breakpoint
5719 ;
5720 ; A breakpoint is set by reading the particular CRAM location and
5721 ; rewriting it with bad parity. Nothing can be done at the break-
5722 ; point except read the CSR register.
5723 ;#********************************************************************
5724
5725 ; First check for any argument
5726
5727 040455 336 00 0 00 037132* DBREAK: SKIPN ARGFLG ; argument given?
5728 JRST [FMSGCD <? Missing argument>
5729 GO FIOFF
5730 040456 254 00 0 00 117722 RTN]
5731
5732 ; Obtain argument
5733
5734 040457 200 01 0 00 126145 DBREA0: MOVE 1,[FMSGCD <BREAK addr,addr,... (CR)>]
5735 040460 260 17 0 00 040403* GO .OARG ; get argument
5736 040461 263 17 0 00 000000 RTN ; error/altmode/question - exit
5737 040462 263 17 0 00 000000 RTN ; done - no more arguments
5738 040463 331 01 0 00 040406* SKIPL 1,ARGUM ; argument out of range?
5739 040464 303 01 0 00 007777 CAILE 1,7777 ; (0-7777)
5740 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
5741 GO FIOFF
5742 040465 254 00 0 00 122327 RTN]
5743
5744 ; Then ensure the port is stopped
5745
5746 040466 260 17 0 00 040425* GO ISTOP ; stop the port
5747
5748 ; Now obtain CRAM data and give it bad parity
5749
5750 040467 202 01 0 00 035604 MOVEM 1,CADDR ; set up address to load
5751 040470 476 00 0 00 035605 SETOM CWORDL ; initialize left half
5752 040471 476 00 0 00 035606 SETOM CWORDR ; initialize right half
5753 040472 260 17 0 00 036263 GO DRCRAM ; read the data
5754 040473 261 17 0 00 000001 PUT 1 ; save AC1
5755 040474 474 01 0 00 000000 SETO 1, ; set 'force bad parity' flag
5756 040475 200 02 0 00 035605 MOVE 2,CWORDL ; get left half
5757 040476 200 03 0 00 035606 MOVE 3,CWORDR ; get right half
5758 040477 260 17 0 00 042551 GO CALPAR ; insert parity
5759 040500 202 02 0 00 035605 MOVEM 2,CWORDL ; save left half
5760 040501 202 03 0 00 035606 MOVEM 3,CWORDR ; save right half
5761 040502 262 17 0 00 000001 GET 1 ; restore AC1
5762 040503 261 17 0 00 033670 PUT PARFLG ; save 'calculate parity' flag
5763 040504 402 00 0 00 033670 SETZM PARFLG ; clear 'calculate parity' flag
5764 040505 260 17 0 00 036231 GO DWCRAM ; load CRAM data (now with bad parity)
5765 040506 262 17 0 00 033670 GET PARFLG ; restore 'calculate parity' flag
5766 040507 254 00 0 00 040457 JRST DBREA0 ; get next address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 136
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0299
5767
5768 ;#********************************************************************
5769 ;* DRBRK - Remove breakpoint
5770 ;#********************************************************************
5771
5772 ; First check for any argument
5773
5774 040510 336 00 0 00 040455* DRBRK: SKIPN ARGFLG ; argument given?
5775 JRST [FMSGCD <? Missing argument>
5776 GO FIOFF
5777 040511 254 00 0 00 117722 RTN]
5778
5779 ; Obtain argument
5780
5781 040512 200 01 0 00 126154 DRBR0: MOVE 1,[FMSGCD <RBREAK addr,addr,... (CR)>]
5782 040513 260 17 0 00 040460* GO .OARG ; get argument
5783 040514 263 17 0 00 000000 RTN ; error/altmode/question - exit
5784 040515 263 17 0 00 000000 RTN ; done - no more arguments
5785 040516 331 01 0 00 040463* SKIPL 1,ARGUM ; argument out of range?
5786 040517 303 01 0 00 007777 CAILE 1,7777 ; (0-7777)
5787 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
5788 GO FIOFF
5789 040520 254 00 0 00 122327 RTN]
5790
5791 ; Then ensure the port is stopped
5792
5793 040521 260 17 0 00 040466* GO ISTOP ; stop the port
5794
5795 ; Now obtain CRAM data and load back into CRAM with good parity
5796
5797 040522 202 01 0 00 035604 MOVEM 1,CADDR ; set up address to load
5798 040523 476 00 0 00 035605 SETOM CWORDL ; initialize left half
5799 040524 476 00 0 00 035606 SETOM CWORDR ; initialize right half
5800 040525 260 17 0 00 036263 GO DRCRAM ; read the data
5801 040526 261 17 0 00 033670 PUT PARFLG ; save 'calculate parity' flag
5802 040527 476 00 0 00 033670 SETOM PARFLG ; set 'calculate parity' flag
5803 040530 260 17 0 00 036231 GO DWCRAM ; load CRAM data (now with good parity)
5804 040531 262 17 0 00 033670 GET PARFLG ; restore 'calculate parity' flag
5805 040532 254 00 0 00 040512 JRST DRBR0 ; get next address
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 137
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0300
5806
5807 ;#********************************************************************
5808 ;* DCBRK - Clear all breakpoints
5809 ;
5810 ; If arguments are given, they are assumed to the the locations between
5811 ; which all breakpoints are to be removed.
5812 ;#********************************************************************
5813
5814 ; Start to process the arguments typed - both should be CRAM
5815 ; addresses in octal.
5816
5817 040533 400 05 0 00 000000 DCBRK: SETZ 5, ; init range of addresses
5818 040534 201 06 0 00 007777 MOVEI 6,7777 ; to 0-7777
5819
5820 ; Get first address
5821
5822 040535 200 01 0 00 126163 MOVE 1,[FMSGCD <CBREAK addr1,addr2 (CR)>]
5823 040536 260 17 0 00 040513* GO .OARG ; get first address
5824 040537 263 17 0 00 000000 RTN ; error/altmode/question - exit
5825 040540 254 00 0 00 040552 JRST DCBR0 ; no arguments given - continue
5826 040541 200 00 0 00 040516* MOVE ARGUM ; get argument
5827 040542 202 00 0 00 000005 MOVEM 5 ; save in 'from' location
5828 040543 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
5829
5830 ; Get 2nd address
5831
5832 040544 210 01 0 00 126163 MOVN 1,[FMSGCD <CBREAK addr1,addr2 (CR)>]
5833 040545 260 17 0 00 040536* GO .OARG ; get first address
5834 040546 263 17 0 00 000000 RTN ; error/altmode/question - exit
5835 040547 254 00 0 00 040552 JRST DCBR0 ; no arguments given - continue
5836 040550 200 00 0 00 040541* MOVE ARGUM ; get argument
5837 040551 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
5838
5839 ; Now range check the arguments
5840
5841 040552 331 00 0 00 000005 DCBR0: SKIPL 5 ; 1st argument in range?
5842 040553 303 05 0 00 007777 CAILE 5,7777
5843 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
5844 GO FIOFF
5845 040554 254 00 0 00 122327 RTN]
5846 040555 331 01 0 00 000006 SKIPL 1,6 ; 2nd argument in range?
5847 040556 303 06 0 00 007777 CAILE 6,7777
5848 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
5849 GO FIOFF
5850 040557 254 00 0 00 122327 RTN]
5851 040560 274 01 0 00 000005 SUB 1,5 ; see if range ok
5852 JUMPL 1,[FMSGCD <? Range nonsensical>
5853 GO FIOFF
5854 040561 321 01 0 00 122563 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 138
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0301
5855
5856 ; Then ensure the port is stopped
5857
5858 040562 260 17 0 00 040521* GO ISTOP ; stop the port
5859
5860 ; Now obtain CRAM data and load back into CRAM with good parity
5861
5862 040563 202 05 0 00 035604 DCBR1: MOVEM 5,CADDR ; set up address to load
5863 040564 476 00 0 00 035605 SETOM CWORDL ; initialize left half
5864 040565 476 00 0 00 035606 SETOM CWORDR ; initialize right half
5865 040566 260 17 0 00 036263 GO DRCRAM ; read the data
5866 040567 261 17 0 00 033670 PUT PARFLG ; save 'calculate parity' flag
5867 040570 476 00 0 00 033670 SETOM PARFLG ; set 'calculate parity' flag
5868 040571 260 17 0 00 036231 GO DWCRAM ; load CRAM data (now with good parity)
5869 040572 262 17 0 00 033670 GET PARFLG ; restore 'calculate parity' flag
5870 040573 350 00 0 00 000005 AOS 5 ; increment 'from' address
5871 040574 317 05 0 00 000006 CAMG 5,6 ; exceed 'to' address?
5872 040575 254 00 0 00 040563 JRST DCBR1 ; no - get next address
5873 040576 263 17 0 00 000000 RTN ; yes - exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 139
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0302
5874
5875 ;#********************************************************************
5876 ;* DLBRK - List breakpoints
5877 ;
5878 ; If arguments are given, they are assumed to be the locations between
5879 ; which all breakpoints are to be listed.
5880 ;#********************************************************************
5881
5882 ; Start to process the arguments typed - both should be CRAM
5883 ; addresses in octal.
5884
5885 040577 400 05 0 00 000000 DLBRK: SETZ 5, ; init range of addresses
5886 040600 201 06 0 00 007777 MOVEI 6,7777 ; to 0-7777
5887
5888 ; Get first address
5889
5890 040601 200 01 0 00 126172 MOVE 1,[FMSGCD <LBREAK addr1,addr2 (CR)>]
5891 040602 260 17 0 00 040545* GO .OARG ; get first address
5892 040603 263 17 0 00 000000 RTN ; error/altmode/question - exit
5893 040604 254 00 0 00 040616 JRST DLBR0 ; no arguments given - continue
5894 040605 200 00 0 00 040550* MOVE ARGUM ; get argument
5895 040606 202 00 0 00 000005 MOVEM 5 ; save in 'from' location
5896 040607 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
5897
5898 ; Get 2nd address
5899
5900 040610 210 01 0 00 126172 MOVN 1,[FMSGCD <LBREAK addr1,addr2 (CR)>]
5901 040611 260 17 0 00 040602* GO .OARG ; get first address
5902 040612 263 17 0 00 000000 RTN ; error/altmode/question - exit
5903 040613 254 00 0 00 040616 JRST DLBR0 ; no arguments given - continue
5904 040614 200 00 0 00 040605* MOVE ARGUM ; get argument
5905 040615 202 00 0 00 000006 MOVEM 6 ; save in 'to' location
5906
5907 ; Now range check the arguments
5908
5909 040616 331 00 0 00 000005 DLBR0: SKIPL 5 ; 1st argument in range?
5910 040617 303 05 0 00 007777 CAILE 5,7777
5911 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
5912 GO FIOFF
5913 040620 254 00 0 00 122327 RTN]
5914 040621 331 01 0 00 000006 SKIPL 1,6 ; 2nd argument in range?
5915 040622 303 06 0 00 007777 CAILE 6,7777
5916 JRST [FMSGCD <? Range of CRAM locations is 0000-7777>
5917 GO FIOFF
5918 040623 254 00 0 00 122327 RTN]
5919 040624 274 01 0 00 000005 SUB 1,5 ; see if range ok
5920 JUMPL 1,[FMSGCD <? Range nonsensical>
5921 GO FIOFF
5922 040625 321 01 0 00 122563 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 140
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0303
5923
5924 ; Then ensure the port is stopped
5925
5926 040626 260 17 0 00 040562* GO ISTOP ; stop the port
5927 040627 200 07 0 00 125204 MOVE 7,[-2] ; initialize breakpoint count
5928 040630 037 00 0 00 126173 TMSGC <Breakpoints: >
5929
5930 ; Now obtain CRAM data and load back into CRAM with good parity
5931
5932 040631 202 05 0 00 035604 DLBR1: MOVEM 5,CADDR ; set up address to load
5933 040632 476 00 0 00 035605 SETOM CWORDL ; initialize left half
5934 040633 476 00 0 00 035606 SETOM CWORDR ; initialize right half
5935 040634 260 17 0 00 036263 GO DRCRAM ; read the data
5936 040635 400 01 0 00 000000 SETZ 1, ; clear 'bad' parity flag
5937 040636 200 02 0 00 035605 MOVE 2,CWORDL ; get left word
5938 040637 200 03 0 00 035606 MOVE 3,CWORDR ; get right word
5939 040640 260 17 0 00 042551 GO CALPAR ; calculate parity
5940 040641 316 02 0 00 035605 CAMN 2,CWORDL ; same as before?
5941 040642 254 00 0 00 040650 JRST DLBR2 ; yes - good parity
5942
5943 ; Print location
5944
5945 040643 350 00 0 00 000007 AOS 7 ; next 5 characters
5946 040644 303 07 0 00 000007 CAILE 7,7 ; done with line?
5947 GO [SETO 7, ; yes - init counter
5948 TMSGC < >
5949 040645 260 17 0 00 126203 RTN]
5950 040646 001 04 0 00 000005 PNTOCC 4,5 ; print address
5951 040647 037 00 0 00 000040 PSP ; print a space
5952
5953 ; Increment to next location
5954
5955 040650 037 07 0 00 000003 DLBR2: TTALTM ; altmode key struck?
5956 040651 334 00 0 00 000000 SKIPA ; no - proceed
5957 040652 254 00 0 00 040656 JRST DLBRX ; yes - exit
5958 040653 350 00 0 00 000005 AOS 5 ; increment 'from' address
5959 040654 317 05 0 00 000006 CAMG 5,6 ; exceed 'to' address?
5960 040655 254 00 0 00 040631 JRST DLBR1 ; no - get next address
5961 040656 037 00 0 00 030242 DLBRX: PCRL ; yes - print blank line
5962 040657 263 17 0 00 000000 RTN ; and exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 141
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0304
5963
5964 ;#********************************************************************
5965 ;* DLOAD - Load microcode into CRAM from a test.
5966 ;#********************************************************************
5967
5968 040660 210 01 0 00 126212 DLOAD: MOVN 1,[FMSGCD (LOAD n <CR>)]
5969 040661 260 17 0 00 040611* GO .OARG ; get argument
5970 040662 263 17 0 00 000000 RTN ; error/altmode/question - exit
5971 JRST [FMSGCD <? Missing argument>
5972 GO FIOFF
5973 040663 254 00 0 00 117722 RTN]
5974 040664 333 01 0 00 040614* SKIPLE 1,ARGUM ; get argument - out of range
5975 040665 303 01 0 00 000027 CAILE 1,MAXTST ; 1-MAXTST?
5976 JRST [FMSGC <? Test number out of range 1 - >
5977 MOVEI MAXTST
5978 PNTOCF
5979 PCRLF
5980 GO FIOFF
5981 040666 254 00 0 00 126222 RTN]
5982 040667 337 01 0 01 032070 SKIPG 1,TSTMIC(1) ; get test microcode address
5983 JRST [FMSGCD <? Test specified does not have microcode>
5984 GO FIOFF
5985 040670 254 00 0 00 126241 RTN]
5986 040671 260 17 0 00 040626* GO ISTOP ; stop the port
5987 040672 260 17 0 00 064355 GO MLOADY ; load it
5988 040673 255 00 0 00 000000 JFCL ; failed
5989 040674 037 00 0 00 126244 TMSGC <[Number of CRAM locations loaded/verified = >
5990 040675 200 00 0 00 134173' MOVE MLNUM ; get number of words loaded/verified
5991 040676 037 15 0 00 000000 PNTDEC
5992 040677 037 00 0 00 126256 TMSGD <.]>
5993 040700 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 142
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0305
5994
5995 ;#********************************************************************
5996 ;* DLIST - List microcode from test
5997 ;#********************************************************************
5998
5999 040701 210 01 0 00 126263 DLIST: MOVN 1,[FMSGCD (LIST n <CR>)]
6000 040702 260 17 0 00 040661* GO .OARG ; get argument
6001 040703 263 17 0 00 000000 RTN ; error/altmode/question - exit
6002 JRST [FMSGCD <? Missing argument>
6003 GO FIOFF
6004 040704 254 00 0 00 117722 RTN]
6005 040705 333 01 0 00 040664* SKIPLE 1,ARGUM ; get argument - out of range
6006 040706 303 01 0 00 000027 CAILE 1,MAXTST ; 1-MAXTST?
6007 JRST [FMSGC <? Test number out of range 1 - >
6008 MOVEI MAXTST
6009 PNTOCF
6010 PCRLF
6011 GO FIOFF
6012 040707 254 00 0 00 126222 RTN]
6013 040710 337 01 0 01 032070 SKIPG 1,TSTMIC(1) ; get test microcode address
6014 JRST [FMSGCD <? Test specified does not have microcode>
6015 GO FIOFF
6016 040711 254 00 0 00 126241 RTN]
6017 040712 260 17 0 00 064625 GO MLIST ; list it
6018 040713 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 143
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0306
6019
6020 ;#********************************************************************
6021 ;* DFLOAD - Load microcode from file into CRAM
6022 ;#********************************************************************
6023
6024 040714 200 01 0 00 126267 DFLOAD: MOVE 1,[FMSGCD (FLOAD <CR>)]
6025 040715 260 17 0 00 040416* GO CHKARG ; check for argument
6026 040716 263 17 0 00 000000 RTN ; error - exit
6027 040717 476 00 0 00 044331 SETOM FFLAG ; set operator output flag
6028 040720 260 17 0 00 044010 GO FLOADB ; load file into ucode buffer
6029 040721 263 17 0 00 000000 RTN ; error - exit
6030
6031 ; Ensure the port is stopped
6032
6033 040722 260 17 0 00 040671* GO ISTOP ; stop the port
6034 040723 400 01 0 00 000000 SETZ 1, ; clear AC1
6035 040724 260 17 0 00 040150* GO LDCSR ; clear CSR
6036
6037 ; Check to see if it is already loaded
6038
6039 040725 200 00 0 00 044326 MOVE UNAME ; get microcode name desired
6040 040726 316 00 0 00 044330 CAMN CNAME ; same as what is loaded?
6041 GO [TMSGC <[> ; yes - print message
6042 MOVE UNAME
6043 PNTSIX
6044 PNTCI "."
6045 MOVE UNAME+1
6046 PNTSIX
6047 TMSGD < already loaded]>
6048 040727 260 17 0 00 126274 RTN]
6049
6050 ; Load microcode
6051
6052 040730 476 00 0 00 044330 SETOM CNAME ; ensure the microcode gets loaded
6053 040731 260 17 0 00 044074 GO FLOADC ; load buffer into CRAM
6054 040732 263 17 0 00 000000 RTN ; error - return
6055 040733 255 00 0 00 000000 JFCL ; already loaded - return
6056
6057 ; Verify microcode
6058
6059 040734 260 17 0 00 044152 GO FVERFC ; verify CRAM against buffer
6060 040735 260 17 0 00 044231 GO FUERR ; print any errors
6061 040736 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 144
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0307
6062
6063 ;#********************************************************************
6064 ;* DFVERF - Verify microcode from file versus CRAM
6065 ;#********************************************************************
6066
6067 040737 200 01 0 00 126310 DFVERF: MOVE 1,[FMSGCD (FVERFY <CR>)]
6068 040740 260 17 0 00 040715* GO CHKARG ; check for argument
6069 040741 263 17 0 00 000000 RTN ; error - exit
6070 040742 476 00 0 00 044331 SETOM FFLAG ; set operator output flag
6071 040743 260 17 0 00 044010 GO FLOADB ; load file into ucode buffer
6072 040744 263 17 0 00 000000 RTN ; error - exit
6073
6074 ; Ensure the port is stopped
6075
6076 040745 260 17 0 00 040722* GO ISTOP ; stop the port
6077 040746 400 01 0 00 000000 SETZ 1, ; clear AC1
6078 040747 260 17 0 00 040724* GO LDCSR ; clear CSR
6079
6080 ; Now do the verify
6081
6082 040750 260 17 0 00 044152 DFVER0: GO FVERFC ; verify CRAM against buffer
6083 040751 260 17 0 00 044231 GO FUERR ; print any errors
6084 040752 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 145
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0308
6085
6086 ;#********************************************************************
6087 ;* DFLIST - List microcode in file
6088 ;#********************************************************************
6089
6090 040753 200 01 0 00 126314 DFLIST: MOVE 1,[FMSGCD (FLIST <CR>)]
6091 040754 260 17 0 00 040740* GO CHKARG ; check for argument
6092 040755 263 17 0 00 000000 RTN ; error - exit
6093 040756 476 00 0 00 044331 SETOM FFLAG ; set operator output flag
6094 040757 260 17 0 00 044010 GO FLOADB ; load file into ucode buffer
6095 040760 263 17 0 00 000000 RTN ; error - exit
6096 040761 037 00 0 00 124742 TMSGC <ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL TM SP MK>
6097 040762 200 03 0 00 044332 MOVE 3,ULEN ; get length of ucode
6098 040763 201 04 0 00 044331 MOVEI 4,UCODE-2 ; get address of ucode buffer
6099 040764 361 03 0 00 041006 DFLIS0: SOJL 3,DFLISX ; done yet? yes - exit
6100 040765 271 04 0 00 000002 ADDI 4,2 ; point to next microword entry
6101 040766 120 01 0 04 000000 DMOVE 1,(4) ; get microword entry
6102 040767 135 00 0 00 126315 LDB [POINT 12,1,11] ; get CRAM address
6103 040770 202 00 0 00 035604 MOVEM CADDR ; save it
6104 040771 246 01 0 00 000006 LSHC 1,6 ; position correctly for 30 bits
6105 040772 135 03 0 00 126316 LDB 3,[POINT 30,2,29] ; get right 30 bits
6106 040773 135 02 0 00 126317 LDB 2,[POINT 30,1,35] ; get left 30 bits
6107 040774 622 03 0 00 000002 TRZE 3,2 ; bit 59 set?
6108 040775 660 03 0 00 000001 TRO 3,1 ; yes - set rightmost bit
6109 040776 037 00 0 00 030242 PCRL ; start a new line
6110 040777 001 04 0 00 035604 PNTOCC 4,CADDR ; print CRAM load address
6111 041000 037 00 0 00 124736 TMSG </ >
6112 041001 260 17 0 00 042433 GO PNTCRM ; print it
6113 041002 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
6114 041003 254 00 0 00 041006 JRST DFLISX ; yes - exit
6115 041004 037 07 0 00 000003 TTALTM ; altmode key struck?
6116 041005 254 00 0 00 040764 JRST DFLIS0 ; no - loop till done
6117
6118 041006 037 00 0 00 030242 DFLISX: PCRL ; final CRLF
6119 041007 263 17 0 00 000000 RTN ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 146
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0309
6120
6121 ;#********************************************************************
6122 ;* DFEXAM - Examine microcode in file
6123 ;#********************************************************************
6124
6125 041010 200 01 0 00 126323 DFEXAM: MOVE 1,[FMSGCD (FEXAM <CR>)]
6126 041011 260 17 0 00 040754* GO CHKARG ; check for argument
6127 041012 263 17 0 00 000000 RTN ; error - exit
6128 041013 476 00 0 00 044331 SETOM FFLAG ; set operator output flag
6129 041014 260 17 0 00 044010 GO FLOADB ; load file into ucode buffer
6130 041015 263 17 0 00 000000 RTN ; error - exit
6131 041016 200 03 0 00 044332 MOVE 3,ULEN ; get length of ucode
6132 041017 201 04 0 00 044331 MOVEI 4,UCODE-2 ; get address of ucode buffer
6133 041020 361 03 0 00 041043 DFEXA0: SOJL 3,DFEXAX ; done yet? yes - exit
6134 041021 271 04 0 00 000002 ADDI 4,2 ; point to next microword entry
6135 041022 120 01 0 04 000000 DMOVE 1,(4) ; get microword entry
6136 041023 135 00 0 00 126315 LDB [POINT 12,1,11] ; get CRAM address
6137 041024 202 00 0 00 035604 MOVEM CADDR ; save it
6138 041025 246 01 0 00 000006 LSHC 1,6 ; position correctly for 30 bits
6139 041026 135 03 0 00 126316 LDB 3,[POINT 30,2,29] ; get right 30 bits
6140 041027 135 02 0 00 126317 LDB 2,[POINT 30,1,35] ; get left 30 bits
6141 041030 622 03 0 00 000002 TRZE 3,2 ; bit 59 set?
6142 041031 660 03 0 00 000001 TRO 3,1 ; yes - set rightmost bit
6143 041032 037 00 0 00 030242 PCRL ; start a new line
6144 041033 200 00 0 00 035604 MOVE CADDR ; get CRAM load address
6145 041034 037 04 0 00 000000 PNT4 ; print it
6146 041035 037 00 0 00 124736 TMSG </ >
6147 041036 260 17 0 00 042527 GO PNTWD ; print it
6148 041037 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
6149 041040 254 00 0 00 041043 JRST DFEXAX ; yes - exit
6150 041041 037 07 0 00 000003 TTALTM ; altmode key struck?
6151 041042 254 00 0 00 041020 JRST DFEXA0 ; no - loop till done
6152
6153 041043 037 00 0 00 030242 DFEXAX: PCRL ; final CRLF
6154 041044 263 17 0 00 000000 RTN ; exit
6155
6156
6157 ;#********************************************************************
6158 ;* DTRANS - Translate CSR bits to English
6159 ;#********************************************************************
6160
6161 041045 210 01 0 00 126331 DTRANS: MOVN 1,[FMSGCD (TRANSL data <CR>)]
6162 041046 260 17 0 00 040702* GO .OARG ; get argument
6163 041047 263 17 0 00 000000 RTN ; error/altmode/question - exit
6164 JRST [FMSGCD <? Missing argument>
6165 GO FIOFF
6166 041050 254 00 0 00 117722 RTN]
6167 041051 200 01 0 00 040705* MOVE 1,ARGUM ; get argument
6168 041052 260 17 0 00 042605 GO CSRPNT ; print CSR data in English
6169 041053 037 00 0 00 030242 PCRL ; end of line
6170 041054 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 147
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0310
6171
6172 ;#********************************************************************
6173 ;* DCCODE - Print condition codes
6174 ;#********************************************************************
6175
6176 041055 200 01 0 00 126335 DCCODE: MOVE 1,[FMSGCD (CCODE <CR>)]
6177 041056 260 17 0 00 041011* GO CHKARG ; check for argument
6178 041057 263 17 0 00 000000 RTN ; error - exit
6179
6180 ; Save CRAM locations
6181
6182 041060 200 01 0 00 125235 MOVE 1,[-4,,7750] ; set up AOBJN word
6183 041061 260 17 0 00 042730 GO SAVCRM ; save the CRAM locations
6184
6185 ; Loop on condition code
6186
6187 041062 474 07 0 00 000000 SETO 7, ; initialize pointer
6188 041063 350 00 0 00 000007 DCCOD1: AOS 7 ; point to next condition code
6189 041064 303 07 0 00 000017 CAILE 7,17 ; done yet?
6190 041065 254 00 0 00 041107 JRST DCCOD2 ; yes - go print results
6191 041066 137 07 0 00 126336 DPB 7,[POINT 4,CCMIC+3,23] ; no - set up microcode
6192 041067 201 01 0 00 041173 MOVEI 1,CCMIC ; set up microcode address
6193 041070 260 17 0 00 064353 GO MLOADN ; load/verify it
6194 041071 255 00 0 00 000000 JFCL ; ignore error
6195 041072 201 01 0 00 007750 MOVEI 1,7750 ; get start address
6196 041073 242 01 0 00 000001 LSH 1,1 ; position correctly
6197 041074 260 17 0 00 040144* GO LDRAR ; load the RAR
6198 041075 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
6199 041076 260 17 0 00 040747* GO LDCSR ; write to CSR register
6200 041077 201 01 0 00 040000 MOVEI 1,SELLAR ; set up to read LAR
6201 041100 260 17 0 00 041076* GO LDCSR ; stop the port
6202 041101 260 17 0 00 037460* GO RDLAR ; read stopping address
6203 041102 242 01 0 00 777777 LSH 1,-1 ; position correctly
6204 041103 402 00 0 07 041153 SETZM CCTAB3(7) ; initialize result
6205 041104 306 01 0 00 007753 CAIN 1,7753 ; was the cc set?
6206 041105 476 00 0 07 041153 SETOM CCTAB3(7) ; yes - indicate such
6207 041106 254 00 0 00 041063 JRST DCCOD1 ; loop till done
6208
6209 ; Print the results
6210
6211 041107 037 00 0 00 126337 DCCOD2: TMSGC <CC On: >
6212 041110 474 07 0 00 000000 SETO 7, ; initialize pointer
6213 041111 350 00 0 00 000007 DCCOD3: AOS 7 ; point to next entry
6214 041112 303 07 0 00 000017 CAILE 7,17 ; done yet?
6215 041113 254 00 0 00 041117 JRST DCCOD4 ; yes - continue
6216 041114 332 00 0 07 041153 SKIPE CCTAB3(7) ; no - cc on?
6217 041115 256 00 0 07 041133 XCT CCTAB1(7) ; yes - print text
6218 041116 254 00 0 00 041111 JRST DCCOD3
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 148
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0311
6219
6220 041117 037 00 0 00 126342 DCCOD4: TMSGC <CC Off: >
6221 041120 474 07 0 00 000000 SETO 7, ; initialize pointer
6222 041121 350 00 0 00 000007 DCCOD5: AOS 7 ; point to next entry
6223 041122 303 07 0 00 000017 CAILE 7,17 ; done yet?
6224 041123 254 00 0 00 041127 JRST DCCOD6 ; yes - continue
6225 041124 336 00 0 07 041153 SKIPN CCTAB3(7) ; no - cc on?
6226 041125 256 00 0 07 041133 XCT CCTAB1(7) ; yes - print text
6227 041126 254 00 0 00 041121 JRST DCCOD5
6228 041127 037 00 0 00 030242 DCCOD6: PCRL
6229
6230 ; Restore CRAM locations and exit
6231
6232 041130 200 01 0 00 125235 MOVE 1,[-4,,7750] ; set up AOBJN word
6233 041131 260 17 0 00 042752 GO RESCRM ; restore CRAM data
6234 041132 263 17 0 00 000000 RTN ; return
6235
6236 ; Tables
6237
6238 041133 037 00 0 00 126345 CCTAB1: TMSG < CBAV> ; 0 - CCCBUSAVAIL
6239 041134 037 00 0 00 126347 TMSG < GCSR> ; 1 - CCGRNTCSR
6240 041135 037 00 0 00 126351 TMSG < FEQ0> ; 2 - CCFEQ0
6241 041136 037 00 0 00 126353 TMSG < CSRC> ; 3 - CCCSRCHNG
6242 041137 037 00 0 00 126355 TMSG < EBPE> ; 4 - CCEBPARERR
6243 041140 037 00 0 00 126357 TMSG < RATN> ; 5 - CCRCVATTN
6244 041141 037 00 0 00 126361 TMSG < EOFF> ; 6 - CCENDOFFRAME
6245 041142 037 00 0 00 126363 TMSG < XATN> ; 7 - CCXMTRATTN
6246 041143 037 00 0 00 126365 TMSG < ERQS> ; 10 - CCEBUSRQST
6247 041144 037 00 0 00 126367 TMSG < IACT> ; 11 - CCINTRACTIVE
6248 041145 037 00 0 00 126371 TMSG < MSGN> ; 12 - CCMBSIGN
6249 041146 037 00 0 00 126373 TMSG < MVRP> ; 13 - CCMVRPARCHK
6250 041147 037 00 0 00 126375 TMSG < CBPE> ; 14 - CCCBUSPARERR
6251 041150 037 00 0 00 126377 TMSG < PLPE> ; 15 - CCPLIPARERR
6252 041151 037 00 0 00 126401 TMSG < CHER> ; 16 - CCCHANERR
6253 041152 037 00 0 00 126403 TMSG < CBLW> ; 17 - CCCBLSTWD
6254
6255 041153 CCTAB3: BLOCK ^D16 ; results
6256
6257 ; Microcode
6258
6259 041173 775077 510000 CCMIC: MWORD <ADDR=7750,JMAP,J=7751,D=1> ; 7750
6260 041174 001000 000040
6261 041175 775177 530000 MWORD <CJP,J=7753,D=1,CENA> ; 7751
6262 041176 001400 000060
6263 041177 775277 520000 MWORD <JMAP,J=7752,D=1> ; 7752
6264 041200 001000 000040
6265 041201 775377 530000 MWORD <JMAP,J=7753,D=1> ; 7753
6266 041202 001000 000040
6267 041203 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 149
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0312
6268
6269 ;#********************************************************************
6270 ;* DFILLN - Fill CRAM with special data (J=PC+1,OPCode)
6271 ;#********************************************************************
6272
6273 041204 210 01 0 00 126415 DFILLN: MOVN 1,[FMSGCD <FILLNX number (2910 Op code 0-17)>]
6274 041205 260 17 0 00 041046* GO .OARG ; get argument
6275 041206 263 17 0 00 000000 RTN ; error/altmode/question - exit
6276 JRST [FMSGCD <? Missing argument>
6277 GO FIOFF
6278 041207 254 00 0 00 117722 RTN]
6279 041210 260 17 0 00 040745* GO ISTOP ; stop the port
6280 041211 200 01 0 00 041051* MOVE 1,ARGUM ; get argument
6281 041212 400 02 0 00 000000 SETZ 2, ; initialize address
6282 041213 402 00 0 00 035605 SETZM CWORDL ; initialize left half
6283 041214 402 00 0 00 035606 SETZM CWORDR ; initialize right half
6284 041215 202 02 0 00 035604 DFILN0: MOVEM 2,CADDR ; set up address
6285 041216 350 00 0 00 000002 AOS 2 ; point to next address
6286 041217 303 02 0 00 007777 CAILE 2,7777 ; at end yet?
6287 041220 400 02 0 00 000000 SETZ 2, ; yes - set back to zero
6288 041221 137 02 0 00 124232 DPB 2,[POINT 12,CWORDL,17] ; insert J field
6289 041222 137 01 0 00 124304 DPB 1,[POINT 4,CWORDR,31] ; insert CTL field
6290 041223 260 17 0 00 036231 GO DWCRAM ; load it
6291 041224 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
6292 041225 326 02 0 00 041215 JUMPN 2,DFILN0 ; loop till done
6293 041226 037 00 0 00 126416 TMSGCD <[Number of CRAM locations loaded = 4096.]>
6294 041227 263 17 0 00 000000 RTN ; return
6295
6296
6297 ;#********************************************************************
6298 ;* DFILLP - Fill CRAM with special data (J=PC,OPCode)
6299 ;#********************************************************************
6300
6301 041230 210 01 0 00 126440 DFILLP: MOVN 1,[FMSGCD <FILLPC number (2910 Op code 0-17)>]
6302 041231 260 17 0 00 041205* GO .OARG ; get argument
6303 041232 263 17 0 00 000000 RTN ; error/altmode/question - exit
6304 JRST [FMSGCD <? Missing argument>
6305 GO FIOFF
6306 041233 254 00 0 00 117722 RTN]
6307 041234 260 17 0 00 041210* GO ISTOP ; stop the port
6308 041235 200 01 0 00 041211* MOVE 1,ARGUM ; get argument
6309 041236 476 00 0 00 035604 SETOM CADDR ; initialize address
6310 041237 402 00 0 00 035605 SETZM CWORDL ; initialize left half
6311 041240 402 00 0 00 035606 SETZM CWORDR ; initialize right half
6312 041241 350 02 0 00 035604 DFILP0: AOS 2,CADDR ; set up address
6313 041242 137 02 0 00 124232 DPB 2,[POINT 12,CWORDL,17] ; insert J field
6314 041243 137 01 0 00 124304 DPB 1,[POINT 4,CWORDR,31] ; insert CTL field
6315 041244 260 17 0 00 036231 GO DWCRAM ; load it
6316 041245 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
6317 041246 307 02 0 00 007777 CAIG 2,7777 ; done yet?
6318 041247 254 00 0 00 041241 JRST DFILP0 ; no - loop till done
6319 041250 037 00 0 00 126416 TMSGCD <[Number of CRAM locations loaded = 4096.]>
6320 041251 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 150
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0313
6321
6322 ;#********************************************************************
6323 ;* DCWPNT - Print CCW list
6324 ;#********************************************************************
6325
6326 041252 200 01 0 00 126445 DCWPNT: MOVE 1,[FMSGCD (CCWPNT <CR>)]
6327 041253 260 17 0 00 041056* GO CHKARG ; check for argument
6328 041254 263 17 0 00 000000 RTN ; error - exit
6329 041255 260 17 0 00 000000* GO CCWPNT ; print CCW list
6330 041256 037 00 0 00 030242 PCRL
6331 041257 263 17 0 00 000000 RTN ; return
6332
6333
6334 ;#********************************************************************
6335 ;* DLGPNT - Print logout data
6336 ;#********************************************************************
6337
6338 041260 200 01 0 00 126452 DLGPNT: MOVE 1,[FMSGCD (LOGPNT <CR>)]
6339 041261 260 17 0 00 041253* GO CHKARG ; check for argument
6340 041262 263 17 0 00 000000 RTN ; error - exit
6341 041263 260 17 0 00 000000* GO GETLOG ; get logout data to a buffer area
6342 041264 260 17 0 00 000000* GO LOGPNT ; print channel logout data
6343 041265 263 17 0 00 000000 RTN ; return
6344
6345
6346 ;#********************************************************************
6347 ;* DSWIT - Switch complement commands
6348 ;#********************************************************************
6349
6350 041266 200 01 0 00 117772 DSWIT: MOVE 1,[FMSGCD (Switch Name <CR>)]
6351 041267 260 17 0 00 041261* GO CHKARG ; check for argument
6352 041270 263 17 0 00 000000 RTN ; error - exit
6353 041271 261 17 0 00 000001 PUT 1 ; save AC1
6354 041272 200 01 0 00 031521* MOVE 1,.CGOT ; get dispatch number
6355 041273 275 01 0 00 000125 SUBI 1,SWSTP ; normalize to 0..
6356 041274 260 17 0 00 031523* GO SWCOM ; complement switch
6357 041275 262 17 0 00 000001 GET 1 ; restore AC1
6358 041276 263 17 0 00 000000 RTN ; continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 151
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0314
6359
6360 ;#********************************************************************
6361 ;* IPRINT - Print interrupt history
6362 ;#********************************************************************
6363
6364 041277 200 01 0 00 126457 DIPRIN: MOVE 1,[FMSGCD (IPRINT <CR>)]
6365 041300 260 17 0 00 041267* GO CHKARG ; check for argument
6366 041301 263 17 0 00 000000 RTN ; error - exit
6367 041302 261 17 0 00 000000 IPRINT: RPUT (0,1,2) ; save AC's
6368
6369 041305 335 01 0 00 000000* IPRIN0: SKIPGE 1,INTNUM ; any interrupt yet?
6370 041306 254 00 0 00 041312 JRST IPRINX
6371 041307 260 17 0 00 041316 GO IPRINI ; yes - print the data
6372 041310 037 07 0 00 000003 TTALTM ; check for altmode typed
6373 041311 254 00 0 00 041305 JRST IPRIN0 ; no - keep looping
6374 041312 262 17 0 00 000002 IPRINX: RGET (2,1,0) ; yes - restore AC's
6375
6376 041315 263 17 0 00 000000 RTN ; exit
6377
6378 ; Print interrupt data
6379
6380 041316 370 01 0 00 041305* IPRINI: SOS 1,INTNUM ; point to previous interrupt
6381 041317 303 01 0 00 000023 CAILE 1,^D19 ; overflow interrupt?
6382 041320 201 01 0 00 000023 MOVEI 1,^D19 ; yes - limit to 20 interrupts
6383 041321 202 01 0 00 041316* MOVEM 1,INTNUM ; save number left
6384 041322 037 00 0 00 126460 TMSGC <=====>
6385 041323 550 02 0 01 000000* HRRZ 2,INTTYP(1) ; get type
6386 XCT [TMSGC <Vectored (PC = >
6387 TMSGC <NV Chn 1 (PC = >
6388 TMSGC <NV Chn 2 (PC = >
6389 TMSGC <NV Chn 3 (PC = >
6390 TMSGC <NV Chn 4 (PC = >
6391 TMSGC <NV Chn 5 (PC = >
6392 TMSGC <NV Chn 6 (PC = >
6393 041324 256 00 0 02 126522 TMSGC <NV Chn 7 (PC = >](2)
6394 041325 550 00 0 01 000000* HRRZ INTPC(1) ; get interrupt PC
6395 041326 037 16 0 00 000003 PNTOCS ; print it
6396 041327 037 00 0 00 126532 TMSG <) at >
6397 041330 200 00 0 01 000000* MOVE INTTIM(1) ; get milliseconds
6398 041331 037 15 0 00 000000 PNTDEC
6399 041332 037 00 0 00 126534 TMSG <.ms + >
6400 041333 200 00 0 01 000000* MOVE INTUSE(1) ; get microseconds
6401 041334 037 15 0 00 000000 PNTDEC
6402 041335 037 00 0 00 126536 TMSG <.us>
6403 041336 037 00 0 00 126537 TMSGC <CONI PI = >
6404 041337 200 00 0 01 000000* MOVE INTCON(1) ; get CONI PI data
6405 041340 037 13 0 00 000000 PNTHW ; print it
6406 041341 037 00 0 00 126542 TMSG < CONI APR = >
6407 041342 200 00 0 01 000000* MOVE INTAPR(1) ; get APR data
6408 041343 037 13 0 00 000000 PNTHW ; print it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 152
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0315
6409 041344 037 00 0 00 126545 TMSG < CSR = >
6410 041345 200 00 0 01 000000* MOVE INTCSR(1) ; get CSR data
6411 041346 037 13 0 00 000000 PNTHW ; print it
6412 041347 037 00 0 00 030242 PCRL
6413 041350 335 00 0 01 041323* SKIPGE INTTYP(1)
6414 041351 037 00 0 00 126547 TMSGCD < ##### (Interrupts flushed) #####>
6415 041352 263 17 0 00 000000 RTN
6416
6417
6418 ;#********************************************************************
6419 ;* IINIT - Initialize interrupt system
6420 ;#********************************************************************
6421
6422 041353 200 01 0 00 126562 DIINIT: MOVE 1,[FMSGCD (IINIT <CR>)]
6423 041354 260 17 0 00 041300* GO CHKARG ; check for argument
6424 041355 263 17 0 00 000000 RTN ; error - exit
6425 041356 260 17 0 00 031034* GO INITPI ; init PI system
6426 041357 260 17 0 00 031345* GO SETVEC ; set up vector addresses
6427 041360 263 17 0 00 000000 RTN ; return
6428
6429
6430 ;#********************************************************************
6431 ;* DPINIT - Initialize PCB and queues
6432 ;#********************************************************************
6433
6434 041361 200 01 0 00 126566 DPINIT: MOVE 1,[FMSGCD (PINIT <CR>)]
6435 041362 260 17 0 00 041354* GO CHKARG ; check for argument
6436 041363 263 17 0 00 000000 RTN ; error - exit
6437 041364 260 17 0 00 064711 GO TPCB ; initialize the PCB
6438 041365 263 17 0 00 000000 RTN ; return
6439
6440
6441 ;#********************************************************************
6442 ;* DSIDLE - Start port and wait for IDLE loop
6443 ;#********************************************************************
6444
6445 041366 200 01 0 00 126572 DSIDLE: MOVE 1,[FMSGCD (SIDLE <CR>)]
6446 041367 260 17 0 00 041362* GO CHKARG ; check for argument
6447 041370 263 17 0 00 000000 RTN ; error - exit
6448 041371 260 17 0 00 065646 GO TIDLE ; start up port and wait for IDLE
6449 041372 037 01 0 00 126573 FMSGCD <? Never got to idle loop>
6450 041373 260 17 0 00 042264 GO SETENA ; set enable ...
6451 GO [SKIPN UDEBUG
6452 FMSGCD <? Couldn't enable port>
6453 041374 260 17 0 00 126607 RTN]
6454 041375 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 153
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0316
6455
6456 ;#********************************************************************
6457 ;* DBPACK - Build packet
6458 ;#********************************************************************
6459
6460 041376 210 01 0 00 126612 DBPACK: MOVN 1,[GO DBPACP] ; get help text
6461 041377 260 17 0 00 040373* GO .DARG ; get argument
6462 041400 263 17 0 00 000000 RTN ; error/altmode/question - exit
6463 JRST [FMSGCD <? Missing argument - Opcode>
6464 GO FIOFF
6465 041401 254 00 0 00 126622 RTN]
6466 041402 200 11 0 00 041235* MOVE OP,ARGUM ; get opcode
6467 041403 260 17 0 00 070207 GO DECOPC ; decode the op code
6468 041404 334 00 0 00 000000 SKIPA ; error - print error
6469 041405 332 00 0 00 000002 SKIPE 2 ; correct type?
6470 JRST [FMSGCD <? Opcode illegal> ; no - print error
6471 GO FIOFF
6472 041406 254 00 0 00 126632 RTN]
6473
6474 ; Set up arguments
6475
6476 041407 200 00 0 00 033676 MOVE RSPFLG ; get response flag
6477 041410 202 00 0 00 065713 MOVEM TRSFLG ; save it
6478 041411 200 00 0 00 033700 MOVE BSDFLG ; get BSD flag
6479 041412 202 00 0 00 065712 MOVEM TBSDFL ; save it
6480 041413 200 00 0 00 033677 MOVE FORSEL ; get format select flag
6481 041414 202 00 0 00 065711 MOVEM TFMFLG ; save it
6482 041415 200 00 0 00 033701 MOVE PADFLG ; get pad flag
6483 041416 202 00 0 00 065714 MOVEM TPDFLG ; save it
6484 041417 120 00 0 00 033702 DMOVE DADDR ; get destination address
6485 041420 124 00 0 00 065715 DMOVEM TDEST ; save it
6486 041421 200 00 0 00 033672 MOVE DSBYTE ; get byte count
6487 041422 202 00 0 00 065720 MOVEM TBYTE ; save it
6488 041423 402 00 0 00 065721 SETZM TWORD ; clear word count
6489 041424 200 00 0 00 033673 MOVE DSPAT ; get data pattern
6490 041425 202 00 0 00 065722 MOVEM TPAT ; save it
6491 041426 200 00 0 00 033712 MOVE PTTVAL ; get PTT value
6492 041427 202 00 0 00 065717 MOVEM TPTTVL ; save it
6493 041430 260 17 0 00 065733 GO BPACK ; build the packet
6494 041431 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 154
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0317
6495
6496 ; Print help text
6497
6498 041432 037 01 0 00 126635 DBPACP: FMSGCD <BPACK opcode (CR), where opcode:>
6499 041433 474 11 0 00 000000 SETO OP, ; initialize op code
6500 041434 474 03 0 00 000000 SETO 3, ; print count
6501 041435 350 00 0 00 000011 DBPAC0: AOS OP ; point to next one
6502 041436 303 11 0 00 000377 CAILE OP,377 ; done yet?
6503 JRST [PCRLF
6504 041437 254 00 0 00 124125 RTN]
6505 041440 260 17 0 00 070207 GO DECOPC ; decode op code
6506 041441 254 00 0 00 041435 JRST DBPAC0 ; error - keep looping
6507 041442 332 00 0 00 000002 SKIPE 2 ; incorrect type?
6508 041443 254 00 0 00 041435 JRST DBPAC0 ; yes - keep looping
6509 041444 350 00 0 00 000003 AOS 3 ; increment print count
6510 041445 301 03 0 00 000006 CAIL 3,6 ; more than 6 on this line?
6511 GO [SETZ 3, ; yes - reinit everything
6512 PCRLF
6513 041446 260 17 0 00 126645 RTN]
6514 041447 037 00 0 00 117042 TMSG < >
6515 041450 001 03 0 00 000011 PNTOCC 3,OP ; print op code
6516 XCT [FMSG <-SNDDG > ; print in English
6517 FMSG <-LDMCAT >
6518 FMSG <-LDPTT >
6519 FMSG <-RCCNT >
6520 FMSG <-WRPLI >
6521 FMSG <-RDPLI >
6522 FMSG <-RDNSA >
6523 FMSG <-WRNSA >
6524 041451 256 00 0 01 126672 FMSG <-DGRCV >](1)
6525 041452 254 00 0 00 041435 JRST DBPAC0 ; loop till done
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 155
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0318
6526
6527 ;#********************************************************************
6528 ;* DIQUEU - Insert a packet on a command queue
6529 ;#********************************************************************
6530
6531 041453 200 01 0 00 126707 DIQUEU: MOVE 1,[FMSGCD (IQUEUE <CR>)]
6532 041454 260 17 0 00 041367* GO CHKARG ; check for argument
6533 041455 263 17 0 00 000000 RTN ; error/altmode/question - exit
6534
6535 ; Check if a packet exists
6536
6537 041456 336 00 0 00 072117 SKIPN PACKET+3 ; packet has been built?
6538 JRST [FMSGCD <? Packet not built yet>
6539 GO FIOFF
6540 041457 254 00 0 00 126716 RTN]
6541
6542 ; Insert onto the specified command queue
6543
6544 041460 260 17 0 00 066703 GO INSQUE ; insert into queue
6545 JRST [FMSGCD <? PTT value illegal>
6546 GO FIOFF
6547 041461 254 00 0 00 126726 RTN]
6548 JRST [FMSGCD <? No free queue entries available or interlock failed>
6549 GO FIOFF
6550 041462 254 00 0 00 126745 RTN]
6551 041463 263 17 0 00 000000 RTN ; return
6552
6553
6554 ;#********************************************************************
6555 ;* DPPCB - Print PCB
6556 ;#********************************************************************
6557
6558 041464 200 01 0 00 126753 DPPCB: MOVE 1,[FMSGCD (PPCB <CR>)]
6559 041465 260 17 0 00 041454* GO CHKARG ; check for argument
6560 041466 263 17 0 00 000000 RTN ; error - exit
6561 041467 260 17 0 00 070747 GO PPCB ; print PCB data
6562 041470 037 00 0 00 030242 PCRL
6563 041471 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 156
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0319
6564
6565 ;#********************************************************************
6566 ;* DPQUEU - Print specified queue
6567 ;#********************************************************************
6568
6569 DPQUEU: MOVE 1,[FMSGCD <PQUEUE n1,n2 (CR) where n is:
6570 0-CmdQ 2-UnkQ 4-Ptt
6571 041472 200 01 0 00 126775 1-RspQ 3-PttFq 5-Mcast>]
6572 041473 260 17 0 00 041377* GO .DARG ; get argument
6573 041474 263 17 0 00 000000 RTN ; error/altmode/question - exit
6574 JRST [FMSGCD <? Missing argument>
6575 GO FIOFF
6576 041475 254 00 0 00 117722 RTN]
6577 041476 331 01 0 00 041402* SKIPL 1,ARGUM ; get argument, in range
6578 041477 303 01 0 00 000005 CAILE 1,5 ; 0-5?
6579 JRST [FMSGCD <? Queue number out of range 0-5>
6580 GO FIOFF
6581 041500 254 00 0 00 127006 RTN]
6582 041501 202 01 0 00 134215' MOVEM 1,QARG1# ; save queue number
6583 041502 202 01 0 00 134216' MOVEM 1,QARG2# ; save queue number
6584
6585 MOVN 1,[FMSGCD <PQUEUE n1,n2 (CR) where n is:
6586 0-CmdQ 2-UnkQ 4-Ptt
6587 041503 210 01 0 00 126775 1-RspQ 3-PttFq 5-Mcast>]
6588 041504 260 17 0 00 041473* GO .DARG ; get argument
6589 041505 263 17 0 00 000000 RTN ; error/altmode/question - exit
6590 041506 254 00 0 00 041515 JRST DPQUE0
6591 041507 331 01 0 00 041476* SKIPL 1,ARGUM ; get argument, in range
6592 041510 303 01 0 00 000005 CAILE 1,5 ; 0-5?
6593 JRST [FMSGCD <? Queue number out of range 0-5>
6594 GO FIOFF
6595 041511 254 00 0 00 127006 RTN]
6596 041512 202 01 0 00 134216' MOVEM 1,QARG2# ; save queue number
6597 041513 315 01 0 00 134215' CAMGE 1,QARG1 ; see if range ok?
6598 JRST [FMSGCD <? Range nonsensical>
6599 GO FIOFF
6600 041514 254 00 0 00 122563 RTN]
6601
6602 041515 200 13 0 00 134215' DPQUE0: MOVE Q,QARG1 ; get queue number
6603 041516 260 17 0 00 067305 GO PQUEUE ; print this queue
6604 041517 037 00 0 00 030242 PCRL ; final CRLF
6605 041520 332 00 0 00 134143' SKIPE ALTF ; altmode typed?
6606 041521 263 17 0 00 000000 RTN ; yes - exit
6607 041522 037 07 0 00 000003 TTALTM ; altmode key struck?
6608 041523 334 00 0 00 000000 SKIPA ; no - loop till done
6609 041524 263 17 0 00 000000 RTN ; yes - exit
6610 041525 350 13 0 00 134215' AOS Q,QARG1 ; point to next queue
6611 041526 317 13 0 00 134216' CAMG Q,QARG2 ; done yet?
6612 041527 254 00 0 00 041515 JRST DPQUE0 ; no - loop till done
6613 041530 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 157
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0320
6614
6615 ;#********************************************************************
6616 ;* DWATCH - Watch port and print events and loop back packets
6617 ;#********************************************************************
6618
6619 041531 402 00 0 00 041507* DWATCH: SETZM ARGUM ; default to echo
6620 041532 350 00 0 00 041531* AOS ARGUM ; ...
6621 041533 210 01 0 00 127024 MOVN 1,[FMSGCD <WATCH (echo) or WATCH 0 (no echo) or 1 (echo) (CR)>]
6622 041534 260 17 0 00 041231* GO .OARG ; get argument
6623 041535 263 17 0 00 000000 RTN ; error/altmode/question - exit
6624 041536 255 00 0 00 000000 JFCL ; no argument typed - continue
6625 041537 261 17 0 00 000002 RPUT (2,3) ; save AC's
6626
6627 041541 200 00 0 00 127025 MOVE [PACKET,,SAVPKT] ; get BLT pointer
6628 041542 251 00 0 00 074437 BLT SAVPKT+^D399 ; save PACKET data
6629 041543 260 17 0 00 065646 GO TIDLE ; ensure in idle loop
6630 JRST [SKIPE UDEBUG
6631 JRST .+1
6632 FMSGCD <? Couldn't start port>
6633 RGET (3,2)
6634 041544 254 00 0 00 127034 RTN]
6635 041545 260 17 0 00 042264 GO SETENA ; ensure the port is enabled
6636 JRST [SKIPE UDEBUG
6637 JRST .+1
6638 FMSGCD <? Couldn't enable port>
6639 RGET (3,2)
6640 041546 254 00 0 00 127042 RTN]
6641
6642 ; Initialize everything
6643
6644 041547 402 00 0 00 134201' SETZM NCHAR# ; clear last character typed
6645 041550 402 00 0 00 134207' SETZM NPACKS# ; clear number of packets sent
6646 041551 402 00 0 00 134206' SETZM NPACKR# ; clear number of packets received
6647 041552 402 00 0 00 134204' SETZM NPACKO# ; clear number of other packets rcvd
6648 041553 402 00 0 00 134203' SETZM NPACKL# ; clear number of packets looped
6649 041554 402 00 0 00 134205' SETZM NPACKQ# ; clear number of rsp requested rcvd
6650 041555 402 00 0 00 134170' SETZM LOOFLG# ; clear loopback flag
6651 041556 476 00 0 00 134163' SETOM IGNFLG# ; set ignore other packets flag
6652 041557 402 00 0 00 134242' SETZM SNDFLG# ; clear send packet flag
6653 041560 402 00 0 00 134243' SETZM SNDTIM# ; init time to send next packet
6654 041561 400 03 0 00 000000 SETZ 3, ; set up to read time
6655 041562 260 17 0 00 032034* GO RUNTME ; get runtime so far
6656 041563 200 00 0 00 031637* MOVE CURTIM ; get current time
6657 041564 270 00 0 00 033707 ADD DSSUM ; point to next interval
6658 041565 202 00 0 00 134246' MOVEM STIME# ; save statistics time
6659 041566 402 00 0 00 134225' SETZM RQAFLG# ; clear response queue available flag
6660
6661 ; Help message
6662
6663 041567 037 00 0 00 127050 DWATCQ: TMSGC <[Type: S-SndPk O-SndPks L-Loopback 0-EchoOff 1-EchoOn>
6664 041570 037 00 0 00 127065 TMSGC < 2-PntCSR 3-PntPCB 4-PntStats 5-IgnorePk $-Exit>
6665 041571 037 00 0 00 127101 TMSGCD < ?-ThisText]>
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 158
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0321
6666
6667 ; Start of idle loop
6668
6669 041572 334 00 0 00 000000 DWATC0: SKIPA ; JFCL this to do sanity checking
6670 041573 260 17 0 00 042150 GO SANCHK ; do a sanity check of the free queues
6671 041574 037 07 0 00 000003 TTALTM ; altmode typed?
6672 041575 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
6673 041576 254 00 0 00 042142 JRST DWATCX ; yes - exit
6674 041577 332 00 0 00 134143' SKIPE ALTF ; altmode flagged?
6675 041600 254 00 0 00 042142 JRST DWATCX ; yes - exit
6676 041601 336 00 0 00 134201' SKIPN NCHAR ; prior character saved?
6677 041602 202 00 0 00 134201' MOVEM NCHAR ; no - save this one
6678
6679 ; Verify the port is still running
6680
6681 041603 260 17 0 00 037542* GO RDCSR ; read CSR
6682 041604 400 01 0 00 000000 SETZ 1, ; error
6683 041605 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
6684 041606 602 01 0 00 000010 TRNE 1,MPRUN ; no - still running?
6685 041607 334 00 0 00 000000 SKIPA ; yes - continue
6686 JRST [TMSGCD <[Port is no longer running]>
6687 041610 254 00 0 00 127115 JRST DWATCY]
6688
6689 ; Check on summary interval time
6690
6691 041611 400 03 0 00 000000 SETZ 3, ; set up to read time
6692 041612 260 17 0 00 041562* GO RUNTME ; get runtime so far
6693 041613 200 00 0 00 041563* MOVE CURTIM ; get current time
6694 041614 315 00 0 00 134246' CAMGE STIME ; time to print statistics?
6695 041615 254 00 0 00 041667 JRST DWATC1 ; no - continue
6696 041616 037 00 0 00 127117 TMSGC <*** Statistics >
6697 041617 332 00 0 00 134156' SKIPE EDEBUG ; expanded data switch set?
6698 GO [TMSG <Port-> ; yes - print what port
6699 LDB [POINT 3,MBCN,9]; this is
6700 PNT2
6701 PSP
6702 041620 260 17 0 00 120112 RTN]
6703 041621 200 03 0 00 117045 MOVE 3,[JFCL] ; set up to print time
6704 041622 260 17 0 00 041612* GO RUNTME ; print elapsed time
6705 041623 037 00 0 00 127123 TMSG < ***>
6706
6707 041624 336 00 0 00 134207' SKIPN NPACKS ; anything yet?
6708 041625 254 00 0 00 041632 JRST .+5 ; no - continue
6709 041626 037 00 0 00 127124 TMSGC < Packets sent: >
6710 041627 200 00 0 00 134207' MOVE NPACKS ; get packets sent
6711 041630 037 15 0 00 000000 PNTDEC ; print it
6712 041631 037 00 0 00 122466 TMSG <.>
6713
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 159
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0322
6714 041632 336 00 0 00 134206' SKIPN NPACKR ; anything yet?
6715 041633 254 00 0 00 041640 JRST .+5 ; no - continue
6716 041634 037 00 0 00 127130 TMSGC < Packets rcvd: >
6717 041635 200 00 0 00 134206' MOVE NPACKR ; get packets received
6718 041636 037 15 0 00 000000 PNTDEC ; print it
6719 041637 037 00 0 00 127134 TMSG <. (from self)>
6720
6721 041640 336 00 0 00 134205' SKIPN NPACKQ ; anything yet?
6722 041641 254 00 0 00 041646 JRST .+5 ; no - continue
6723 041642 037 00 0 00 127137 TMSGC < RspRqsted rcvd: >
6724 041643 200 00 0 00 134205' MOVE NPACKQ ; get response requested received
6725 041644 037 15 0 00 000000 PNTDEC ; print it
6726 041645 037 00 0 00 122466 TMSG <.>
6727
6728 041646 336 00 0 00 134203' SKIPN NPACKL ; anything yet?
6729 041647 254 00 0 00 041654 JRST .+5 ; no - continue
6730 041650 037 00 0 00 127143 TMSGC < Packets looped: >
6731 041651 200 00 0 00 134203' MOVE NPACKL ; get packets sent
6732 041652 037 15 0 00 000000 PNTDEC ; print it
6733 041653 037 00 0 00 122466 TMSG <.>
6734
6735 041654 336 00 0 00 134204' SKIPN NPACKO ; anything yet?
6736 041655 254 00 0 00 041662 JRST .+5 ; no - continue
6737 041656 037 00 0 00 127130 TMSGC < Packets rcvd: >
6738 041657 200 00 0 00 134204' MOVE NPACKO ; get packets received
6739 041660 037 15 0 00 000000 PNTDEC ; print it
6740 041661 037 00 0 00 127147 TMSG <. (from other nodes)>
6741
6742 041662 037 00 0 00 030242 PCRL
6743 041663 200 00 0 00 041613* MOVE CURTIM ; get current time
6744 041664 270 00 0 00 033707 ADD DSSUM ; add interval time
6745 041665 202 00 0 00 134246' MOVEM STIME ; set up next statistics time
6746 041666 254 00 0 00 041750 JRST DWATC2 ; check for character typed
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 160
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0323
6747
6748 ; Check on response queue entries
6749
6750 041667 260 17 0 00 067151 DWATC1: GO CHKRQV ; check response queue available
6751 041670 260 17 0 00 067100 GO CHKRSP ; check for RspQ entry
6752 JRST [SETZM RQAFLG ; no entry found - continue
6753 MOVE 1,PCB+5 ; get response queue FLINK
6754 GO CONVIR ; convert to virtual
6755 CAIE 1,PCB+5 ; queue really empty?
6756 SETOM RQAFLG ; no - set rsp queue avail flag
6757 041671 254 00 0 00 127154 JRST DWATC2]
6758 041672 135 11 0 00 127162 LDB OP,[POINT 8,RSPONS+3,23]; get op code
6759 041673 302 11 0 00 000001 CAIE OP,DGSNT ; datagram sent (response)
6760 041674 306 11 0 00 000005 CAIN OP,DGRCV ; or received?
6761 041675 334 00 0 00 000000 SKIPA ; yes - continue
6762 041676 254 00 0 00 041703 JRST .+5 ; no - continue
6763 041677 120 00 0 00 033704 DMOVE SADDR ; get correct address
6764 041700 316 00 0 00 073007 CAMN RSPONS+7 ; first word correct?
6765 041701 312 01 0 00 073010 CAME 1,RSPONS+10 ; yes - 2nd word correct?
6766 JRST [CAIE OP,DGRCV ; no - from another node or a
6767 JRST [AOS NPACKQ ; response requested of a frame
6768 SKIPN IGNFLG ; sent to another node
6769 JRST .+2
6770 JRST DWATC2]
6771 AOS NPACKO
6772 SKIPN ARGUM
6773 JRST DWATLP
6774 SKIPN IGNFLG
6775 GO PNTRSP
6776 041702 254 00 0 00 127167 JRST DWATLP]
6777 041703 302 11 0 00 000005 CAIE OP,DGRCV ; response requested?
6778 041704 350 00 0 00 134205' AOS NPACKQ ; yes - increment rsp rqsted count
6779 041705 306 11 0 00 000005 CAIN OP,DGRCV ; response requested?
6780 041706 350 00 0 00 134206' AOS NPACKR ; no - increment receive count
6781 041707 332 00 0 00 041532* SKIPE ARGUM ; echo on?
6782 041710 260 17 0 00 042227 GO PNTRSP ; yes - print it
6783 041711 254 00 0 00 041750 JRST DWATC2 ; continue
6784
6785 ; Got a response - check if we should loop it back
6786
6787 041712 336 00 0 00 134170' DWATLP: SKIPN LOOFLG ; loopback flag set?
6788 041713 254 00 0 00 041750 JRST DWATC2 ; no - continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 161
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0324
6789
6790 ; Loopback - convert to an outgoing datagram to put onto cmd queue
6791
6792 041714 402 00 0 00 072114 SETZM PACKET ; initialize packet data
6793 041715 200 00 0 00 127177 MOVE [PACKET,,PACKET+1] ; get BLT pointer
6794 041716 251 00 0 00 072733 BLT PACKET+^D399 ; zero it
6795 041717 201 00 0 00 000001 MOVEI 1 ; set flags to response=yes
6796 041720 137 00 0 00 127200 DPB [POINT 8,PACKET+3,15] ; save flags
6797 041721 201 11 0 00 000001 MOVEI OP,SNDDG ; get op code for SNDDG
6798 041722 137 11 0 00 127201 DPB OP,[POINT 8,PACKET+3,23]; save it
6799 041723 200 00 0 00 073011 MOVE RSPONS+11 ; get PTT value
6800 041724 202 00 0 00 072121 MOVEM PACKET+5 ; save it
6801 041725 200 00 0 00 073004 MOVE RSPONS+4 ; get text length
6802 041726 275 00 0 00 000004 SUBI 4 ; subtract off the CRC
6803 041727 202 00 0 00 072120 MOVEM PACKET+4 ; save it
6804 041730 201 00 0 00 105071 MOVEI PTTFQ+1 ; get address of FLINK of free queue
6805 041731 202 00 0 00 072122 MOVEM PACKET+6 ; save it
6806 041732 120 00 0 00 073007 DMOVE RSPONS+7 ; get source address
6807 041733 124 00 0 00 072123 DMOVEM PACKET+7 ; set up destination address
6808 041734 200 00 0 00 127202 MOVE [RSPONS+13,,PACKET+11] ; build BLT pointer
6809 041735 251 00 0 00 072732 BLT PACKET+^D398 ; copy the data
6810
6811 ; Loopback - insert on queue
6812
6813 041736 260 17 0 00 066703 GO INSQUE ; insert into queue
6814 JRST [TMSGCD <? PTT value illegal>
6815 041737 254 00 0 00 127203 JRST DWATC2]
6816 JRST [TMSGCD <? No free queue entries available or interlock failed>
6817 041740 254 00 0 00 127205 JRST DWATC2]
6818 041741 350 00 0 00 134203' AOS NPACKL ; increment packet looped count
6819 041742 337 00 0 00 066650 SKIPG NUMENT ; was the queue empty?
6820 GO [GO RDCSR ; yes - set 'CMDQAV'
6821 TMSGCD <? Read CSR failed>
6822 TRO 1,400
6823 GO LDCSR
6824 041743 260 17 0 00 127214 RTN]
6825 041744 336 00 0 00 134163' SKIPN IGNFLG ; ignore looped packets?
6826 041745 336 00 0 00 041707* SKIPN ARGUM ; or echo off?
6827 041746 334 00 0 00 000000 SKIPA ; yes - continue
6828 GO [TMSGC <***** > ; no - print data
6829 GO PTIME
6830 TMSG <** Packet (>
6831 GO OPCPNT
6832 TMSGD <) Inserted on CmdQ **>
6833 041747 260 17 0 00 127233 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 162
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0325
6834
6835 ; Finally, check to see if a special character was typed - S,O,L,0,1,2,3,4,5,?
6836
6837 041750 332 00 0 00 041745* DWATC2: SKIPE ARGUM ; echo on?
6838 041751 260 17 0 00 032264* GO .INPNT ; yes - print any interrupt fielded
6839 041752 200 00 0 00 134201' MOVE NCHAR ; get last character typed
6840 041753 402 00 0 00 134201' SETZM NCHAR ; clear last character typed
6841 041754 302 00 0 00 000123 CAIE 123 ; was it an 'S'?
6842 041755 306 00 0 00 000163 CAIN 163 ; or 's'?
6843 041756 254 00 0 00 042050 JRST DWATC7 ; yes - insert another packet
6844 041757 302 00 0 00 000117 CAIE 117 ; was it an 'O'?
6845 041760 306 00 0 00 000157 CAIN 157 ; or 'o'?
6846 041761 254 00 0 00 042120 JRST DWATC8 ; yes - complement send flag
6847 041762 302 00 0 00 000114 CAIE 114 ; was it an 'L'?
6848 041763 306 00 0 00 000154 CAIN 154 ; or 'l'?
6849 041764 254 00 0 00 042126 JRST DWATC9 ; yes - insert another packet
6850 041765 306 00 0 00 000060 CAIN 60 ; was it a '0'?
6851 041766 402 00 0 00 041750* SETZM ARGUM ; yes - set echo off
6852 041767 306 00 0 00 000061 CAIN 61 ; was it a '1'?
6853 041770 476 00 0 00 041766* SETOM ARGUM ; yes - set echo on
6854 041771 306 00 0 00 000060 CAIN 60 ; was it a '0'?
6855 041772 037 00 0 00 127241 TMSGCD <[Echo off]>
6856 041773 306 00 0 00 000061 CAIN 61 ; was it a '1'?
6857 041774 037 00 0 00 127244 TMSGCD <[Echo on]>
6858 041775 306 00 0 00 000062 CAIN 62 ; was it a '2'?
6859 041776 254 00 0 00 042017 JRST DWATC3 ; yes - print CSR
6860 041777 306 00 0 00 000063 CAIN 63 ; was it a '3'?
6861 042000 254 00 0 00 042027 JRST DWATC4 ; yes - print PCB data
6862 042001 306 00 0 00 000064 CAIN 64 ; was it a '4'?
6863 042002 254 00 0 00 042043 JRST DWATC6 ; yes - print statistics
6864 042003 306 00 0 00 000065 CAIN 65 ; was it a '5'?
6865 042004 254 00 0 00 042134 JRST DWATCA ; yes - complement ignore packets flag
6866 042005 306 00 0 00 000077 CAIN 77 ; was it a '?'?
6867 042006 254 00 0 00 041567 JRST DWATCQ ; yes - print some help
6868
6869 ; Check to see if we should send a packet
6870
6871 042007 336 00 0 00 134242' SKIPN SNDFLG ; sending packets?
6872 042010 254 00 0 00 041572 JRST DWATC0 ; no - continue
6873 042011 200 00 0 00 000000* MOVE DEBTIM ; get current time (milliseconds)
6874 042012 315 00 0 00 134243' CAMGE SNDTIM ; time to send another packet?
6875 042013 254 00 0 00 041572 JRST DWATC0 ; no - continue
6876 042014 270 00 0 00 033710 ADD DSINT ; set up next send time
6877 042015 202 00 0 00 134243' MOVEM SNDTIM ; save it
6878 042016 254 00 0 00 042050 JRST DWATC7 ; go send the packet
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 163
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0326
6879
6880 ; An '2' was typed, print CSR register
6881
6882 042017 260 17 0 00 041603* DWATC3: GO RDCSR ; read CSR register
6883 042020 037 00 0 00 127207 TMSGCD <? Read CSR failed> ; error - failed
6884 042021 037 00 0 00 127221 TMSGC <***** >
6885 042022 260 17 0 00 000000* GO PTIME ; print time
6886 042023 037 00 0 00 127247 TMSG < ***** CSR>
6887 042024 260 17 0 00 042605 GO CSRPNT ; print CSR data in English
6888 042025 037 00 0 00 030242 PCRL ; end of line
6889 042026 254 00 0 00 041572 JRST DWATC0 ; keep looping
6890
6891 ; An '3' was typed, print PCB data
6892
6893 042027 260 17 0 00 042032 DWATC4: GO DWATC5 ; go print it
6894 042030 037 00 0 00 030242 PCRL ; end of line
6895 042031 254 00 0 00 041572 JRST DWATC0 ; keep looping
6896
6897 042032 261 17 0 00 000000 DWATC5: RPUT (0,1,2,3,4) ; save AC's
6898
6899 042037 037 00 0 00 127221 TMSGC <***** >
6900 042040 260 17 0 00 042022* GO PTIME ; print time
6901 042041 037 00 0 00 127252 TMSG < ***** PCB>
6902 042042 254 00 0 00 071023 PJRST PPCBD ; print the PCB data
6903
6904 ; An '4' was typed, print statistics
6905
6906 042043 400 03 0 00 000000 DWATC6: SETZ 3, ; set up to read time
6907 042044 260 17 0 00 041622* GO RUNTME ; get runtime so far
6908 042045 200 00 0 00 041663* MOVE CURTIM ; get current time
6909 042046 202 00 0 00 134246' MOVEM STIME ; set time to print statistics
6910 042047 254 00 0 00 041572 JRST DWATC0 ; continue
6911
6912 ; An 'S' was typed, insert a packet
6913
6914 042050 332 00 0 00 041770* DWATC7: SKIPE ARGUM ; echo on?
6915 042051 037 00 0 00 030242 PCRL ; yes
6916 042052 200 00 0 00 127255 MOVE [SAVPKT,,PACKET] ; get BLT pointer
6917 042053 251 00 0 00 072733 BLT PACKET+^D399 ; copy saved packet data
6918 042054 336 00 0 00 072117 SKIPN PACKET+3 ; any packet data here?
6919 JRST [TMSGCD <? No prior packet - nothing put on queue>
6920 042055 254 00 0 00 127267 JRST DWATC0]
6921 042056 260 17 0 00 067164 GO PTCHKP ; check for a matching PTT value?
6922 042057 201 13 0 00 000003 MOVEI Q,3 ; no - set to PTT free queue anyway
6923 042060 260 17 0 00 066516 GO CHKINT ; check interlock word
6924 JRST [TMSGCD <? Interlock failed>
6925 042061 254 00 0 00 127276 JRST DWATC0]
6926 XCT [SETOM PCB+10 ; reset interlock
6927 042062 256 00 0 13 127276 SETOM PTTFQ]-2(Q) ; ...
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 164
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0327
6928 042063 200 00 0 00 066650 MOVE NUMENT ; number of entries on free queue
6929 042064 305 00 0 00 000010 CAIGE 8 ; less than or equal to 8?
6930 042065 254 00 0 00 041572 JRST DWATC0 ; yes - don't insert an entry
6931 042066 260 17 0 00 066703 GO INSQUE ; insert into queue
6932 JRST [TMSGCD <? PTT value illegal>
6933 042067 254 00 0 00 127302 JRST DWATC0]
6934 JRST [TMSGCD <? No free queue entries available or interlock failed>
6935 042070 254 00 0 00 127304 JRST DWATC0]
6936 042071 336 00 0 00 066650 SKIPN NUMENT ; any entries on the cmd queue already?
6937 GO [GO RDCSR ; no - set command queue available
6938 JFCL ; bit in CSR register
6939 TRO 1,CMDQAV
6940 GO LDCSR
6941 042072 260 17 0 00 127306 RTN]
6942 042073 350 00 0 00 134207' AOS NPACKS ; increment sent count
6943 042074 332 00 0 00 042050* SKIPE ARGUM ; echo on?
6944 GO [TMSGC <***** > ; yes - print message
6945 GO PTIME
6946 TMSG <** Packet (>
6947 LDB OP,[POINT 8,PACKET+3,23]
6948 GO OPCPNT
6949 TMSGD <) Inserted on CmdQ **>
6950 042075 260 17 0 00 127313 RTN]
6951
6952 ; Debug mode - put command queue entry on the response queue
6953
6954 042076 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
6955 042077 254 00 0 00 041572 JRST DWATC0 ; no - continue
6956 042100 201 13 0 00 000000 MOVEI Q,0 ; point to cmd queue
6957 042101 260 17 0 00 066516 GO CHKINT ; check interlock word
6958 JRST [TMSGCD <? Interlock failed for cmd queue>
6959 042102 254 00 0 00 127332 JRST DWATC0]
6960 042103 336 00 0 00 066650 SKIPN NUMENT ; queue empty?
6961 JRST [SETOM PCB ; yes - reset the interlock
6962 042104 254 00 0 00 127334 JRST DWATC0]
6963 042105 260 17 0 00 066766 GO GETQUE ; remove command from command queue
6964 042106 255 00 0 00 000000 JFCL ; failed - ignore
6965 042107 202 01 0 00 134202' MOVEM 1,NEWENT ; save entry address
6966 042110 476 00 0 00 072000 SETOM PCB ; reset interlock
6967 042111 201 13 0 00 000001 MOVEI Q,1 ; point to response queue
6968 042112 260 17 0 00 066516 GO CHKINT ; check interlock word
6969 JRST [TMSGCD <? Interlock failed for rsp queue>
6970 042113 254 00 0 00 127346 JRST DWATC0]
6971 042114 200 01 0 00 134202' MOVE 1,NEWENT ; get entry address
6972 042115 260 17 0 00 067022 GO PUTQUE ; insert command on command queue
6973 042116 476 00 0 00 072004 SETOM PCB+4 ; reset interlock
6974 042117 254 00 0 00 041572 JRST DWATC0 ; keep looping
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 165
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0328
6975
6976 ; An 'O' was typed, complement send packet flag
6977
6978 042120 402 00 0 00 134243' DWATC8: SETZM SNDTIM ; clear send time
6979 042121 462 00 0 00 134242' SETCMM SNDFLG ; complement send flag
6980 042122 332 00 0 00 134242' SKIPE SNDFLG ; set?
6981 JRST [TMSGC <*** Will send packets at a >
6982 MOVE DSINT ; get interval time
6983 PNTDEC ; print it out
6984 TMSGD <. millisecond interval ***>
6985 042123 254 00 0 00 127364 JRST DWATC0]
6986 042124 037 00 0 00 127371 TMSGCD <*** Will not send packets ***>
6987 042125 254 00 0 00 041572 JRST DWATC0 ; keep looping
6988
6989 ; An 'L' was typed, complement loopback flag
6990
6991 042126 462 00 0 00 134170' DWATC9: SETCMM LOOFLG ; complement loopback flag
6992 042127 332 00 0 00 134170' SKIPE LOOFLG ; set?
6993 042130 037 00 0 00 127400 TMSGCD <*** Will loop received datagrams ***>
6994 042131 336 00 0 00 134170' SKIPN LOOFLG ; set?
6995 042132 037 00 0 00 127411 TMSGCD <*** Will not loop received datagrams ***>
6996 042133 254 00 0 00 041572 JRST DWATC0 ; keep looping
6997
6998 ; An '5' was typed, complement ignore other packets flag
6999
7000 042134 462 00 0 00 134163' DWATCA: SETCMM IGNFLG ; complement loopback flag
7001 042135 332 00 0 00 134163' SKIPE IGNFLG ; set?
7002 042136 037 00 0 00 127422 TMSGCD <*** Will ignore datagrams from other nodes ***>
7003 042137 336 00 0 00 134163' SKIPN IGNFLG ; set?
7004 042140 037 00 0 00 127435 TMSGCD <*** Will not ignore datagrams from other nodes ***>
7005 042141 254 00 0 00 041572 JRST DWATC0 ; keep looping
7006
7007 ; Exit
7008
7009 042142 037 00 0 00 030242 DWATCX: PCRL
7010 042143 260 17 0 00 042324 GO SETDSA ; disable the port
7011 042144 260 17 0 00 041234* GO ISTOP ; stop the port
7012 042145 262 17 0 00 000003 DWATCY: RGET (3,2) ; restore AC's
7013
7014 042147 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 166
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0329
7015
7016 ;#********************************************************************
7017 ;* SANCHK - Sanity check of the free queue
7018 ;#********************************************************************
7019
7020 042150 261 17 0 00 000000 SANCHK: RPUT (0,1,2,3,Q) ; save AC's
7021
7022 042155 201 13 0 00 000003 MOVEI Q,3 ; point to free queue
7023 042156 260 17 0 00 066516 GO CHKINT ; check interlock word
7024 JRST [TMSGCD <? Interlock failed for free queue (SANCHK)>
7025 042157 254 00 0 00 127462 JRST SANCHX]
7026 042160 336 03 0 00 066650 SKIPN 3,NUMENT ; any entries?
7027 042161 254 00 0 00 042173 JRST SANCHX ; no - exit
7028 042162 200 01 0 03 066562 SANCH0: MOVE 1,LENTRY-1(3) ; get entry address
7029 042163 200 01 0 01 000012 MOVE 1,12(1) ; get data pointer
7030 042164 260 17 0 00 042207 GO CONVRR ; convert to virtual
7031 042165 254 00 0 00 042202 JRST SANCHE ; error - exit
7032 042166 200 02 0 03 066562 MOVE 2,LENTRY-1(3) ; get entry address
7033 042167 201 02 0 02 000013 MOVEI 2,13(2) ; get data pointer
7034 042170 312 01 0 00 000002 CAME 1,2 ; correct?
7035 042171 254 00 0 00 042202 JRST SANCHE ; error - exit
7036 042172 367 03 0 00 042162 SOJG 3,SANCH0 ; yes - loop till done
7037 042173 476 00 0 00 105070 SANCHX: SETOM PTTFQ ; reset interlock
7038 042174 262 17 0 00 000013 RGET (Q,3,2,1,0) ; restore AC's
7039
7040 042201 263 17 0 00 000000 RTN
7041 042202 037 00 0 00 127464 SANCHE: TMSGCD <? Free queue entry data pointer incorrect>
7042 042203 260 17 0 00 042144* GO ISTOP ; stop the port
7043 042204 200 17 0 00 134233' MOVE P,SAVEP ; restore stack pointer
7044 042205 261 17 0 00 127476 PUT [DISP0] ; set up stack
7045 042206 254 00 0 00 030007 JRST SRTDDT ; go to DDT
7046
7047 ;#********************************************************************
7048 ;* CONVRR - Convert physical address to virtual
7049 ;
7050 ; Return: +1 - Invalid +2 - Valid
7051 ;#********************************************************************
7052
7053 042207 350 00 0 17 000000 CONVRR: AOS (P) ; set up return +2
7054 042210 261 17 0 00 000000 RPUT (0,2) ; save AC's
7055
7056 042212 621 01 0 00 777700 TLZ 1,777700 ; clear all but address bits
7057 042213 474 02 0 00 000000 SETO 2, ; initialize address pointer
7058 042214 350 00 0 00 000002 CONVR0: AOS 2 ; point to next address
7059 042215 335 00 0 02 065470 SKIPGE ADRPHY(2) ; end of list?
7060 042216 254 00 0 00 042222 JRST CONVRE ; yes - error - go handle
7061 042217 312 01 0 02 065470 CAME 1,ADRPHY(2) ; address match?
7062 042220 254 00 0 00 042214 JRST CONVR0 ; no - loop till done
7063 042221 334 00 0 00 000000 SKIPA ; ok - continue
7064 042222 370 00 0 17 777776 CONVRE: SOS -2(P) ; set up return +1
7065 042223 200 01 0 02 065312 CONVRX: MOVE 1,ADRVIR(2) ; yes - get virtual address
7066 042224 262 17 0 00 000002 RGET (2,0) ; restore AC's
7067
7068 042226 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 167
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0330
7069
7070 ;#********************************************************************
7071 ;* PNTRSP - Print a response queue entry
7072 ;
7073 ; Given: RSPONS - Packet from the Response Queue
7074 ;#********************************************************************
7075
7076 ; First, check to see if we can print it or if it is being ignored
7077
7078 042227 261 17 0 00 000000 PNTRSP: RPUT (0,1,2,Q) ; save AC's
7079
7080
7081 ; Print out the packet
7082
7083 042233 037 00 0 00 127221 PNTRS0: TMSGC <***** >
7084 042234 260 17 0 00 042040* GO PTIME ; print time
7085 042235 037 00 0 00 127477 TMSG < ***** RspQ Entry Received (>
7086 042236 135 11 0 00 127162 LDB OP,[POINT 8,RSPONS+3,23]; get op code
7087 042237 260 17 0 00 070134 GO OPCPNT ; print op code
7088 042240 037 00 0 00 127505 TMSG <)>
7089 042241 201 12 0 00 073000 MOVEI PK,RSPONS ; get address of packet
7090 042242 201 13 0 00 000001 MOVEI Q,1 ; indicate response queue
7091 042243 261 17 0 00 127506 RPUT ([PNTRS1],0,1) ; save return address and AC's
7092
7093 042246 402 00 0 00 134146' SETZM CMDPAK ; clear command packet flag
7094 042247 476 00 0 00 134226' SETOM RSPPAK ; set response packet flag
7095 042250 254 00 0 00 067452 JRST PPAKCC ; go print it out
7096 042251 037 00 0 00 030242 PNTRS1: PCRL
7097
7098 ; Exit
7099
7100 042252 350 00 0 17 777775 PNTRS2: AOS -3(P) ; set up proper return
7101 042253 262 17 0 00 000013 PNTRSX: RGET (Q,2,1,0) ; restore AC's
7102
7103 042257 263 17 0 00 000000 RTN ; return
7104
7105
7106 ;#********************************************************************
7107 ;* DCONF - Determine and print NI configuration
7108 ;#********************************************************************
7109
7110 042260 200 01 0 00 117370 DCONF: MOVE 1,[FMSGCD (CONFIG <CR>)]
7111 042261 260 17 0 00 041465* GO CHKARG ; check for argument
7112 042262 260 17 0 00 043073 GO CONPNT ; print results
7113 042263 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 168
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0331
7114
7115 ;#********************************************************************
7116 ;* SETENA - Ensure the port is in the enabled state
7117 ;
7118 ; Return: +1 - Failed
7119 ; +2 - Succeeded
7120 ;#********************************************************************
7121
7122 042264 261 17 0 00 000000 SETENA: RPUT (0,1,2) ; save AC's
7123
7124
7125 ; First set DISABLE bit and wait for DISABLE COMPLETE
7126
7127 042267 201 01 0 00 000050 MOVEI 1,PDSABL!MPRUN ; get DISABLE bit
7128 042270 336 00 0 00 030037 SKIPN USER ; user mode?
7129 042271 660 01 0 00 000004 TRO 1,4 ; no - set PIA bits
7130 042272 260 17 0 00 041100* GO LDCSR ; write to CSR
7131 042273 201 02 0 00 000144 MOVEI 2,^D100 ; check up to 100 times
7132 042274 260 17 0 00 042017* SETEN0: GO RDCSR ; read CSR
7133 042275 254 00 0 00 042320 JRST SETENE ; error - exit
7134 042276 603 01 0 00 000040 TLNE 1,(DCOMP) ; DISABLE COMPLETE set?
7135 042277 254 00 0 00 042303 JRST SETEN1 ; yes - continue
7136 042300 005 00 0 00 000005 DELAY 5 ; wait 5 milliseconds
7137 042301 367 02 0 00 042274 SOJG 2,SETEN0 ; no - loop till done
7138 042302 254 00 0 00 042320 JRST SETENE ; no - error - exit
7139
7140 ; Now set ENABLE bit and wait for ENABLE COMPLETE
7141
7142 042303 201 01 0 00 000030 SETEN1: MOVEI 1,PENABL!MPRUN ; get ENABLE bit
7143 042304 336 00 0 00 030037 SKIPN USER ; user mode?
7144 042305 660 01 0 00 000004 TRO 1,4 ; no - set PIA bits
7145 042306 260 17 0 00 042272* GO LDCSR ; write to CSR
7146 042307 201 02 0 00 000144 MOVEI 2,^D100 ; check up to 100 times
7147 042310 260 17 0 00 042274* SETEN2: GO RDCSR ; read CSR
7148 042311 254 00 0 00 042320 JRST SETENE ; error - exit
7149 042312 603 01 0 00 000020 TLNE 1,(ECOMP) ; ENABLE COMPLETE set?
7150 042313 254 00 0 00 042317 JRST SETEN3 ; yes - continue
7151 042314 005 00 0 00 000005 DELAY 5 ; wait 5 milliseconds
7152 042315 367 02 0 00 042310 SOJG 2,SETEN2 ; no - loop till done
7153 042316 334 00 0 00 000000 SKIPA ; failed - exit
7154
7155 ; Exit
7156
7157 042317 350 00 0 17 777775 SETEN3: AOS -3(P) ; set up proper return
7158 042320 262 17 0 00 000002 SETENE: RGET (2,1,0) ; restore AC's
7159
7160 042323 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 169
DFNIA1 MAC 18-Feb-84 20:30 Port Debugger SEQ 0332
7161
7162 ;#********************************************************************
7163 ;* SETDSA - Disable the port
7164 ;#********************************************************************
7165
7166 042324 261 17 0 00 000001 SETDSA: RPUT (1,2) ; save AC's
7167
7168 042326 260 17 0 00 042310* GO RDCSR ; read CSR
7169 042327 400 01 0 00 000000 SETZ 1, ; error
7170 042330 606 01 0 00 000010 TRNN 1,MPRUN ; port actually running?
7171 042331 254 00 0 00 042345 JRST SETDSX ; no - exit
7172 042332 201 01 0 00 000050 MOVEI 1,PDSABL!MPRUN ; get DISABLE bit
7173 042333 336 00 0 00 030037 SKIPN USER ; user mode?
7174 042334 660 01 0 00 000004 TRO 1,4 ; no - set PIA bits
7175 042335 260 17 0 00 042306* GO LDCSR ; write to CSR
7176 042336 201 02 0 00 000144 MOVEI 2,^D100 ; check up to 100 times
7177 042337 260 17 0 00 042326* SETDS0: GO RDCSR ; read CSR
7178 042340 254 00 0 00 042345 JRST SETDSX ; error - exit
7179 042341 603 01 0 00 000040 TLNE 1,(DCOMP) ; DISABLE COMPLETE set?
7180 042342 254 00 0 00 042345 JRST SETDSX ; yes - exit
7181 042343 005 00 0 00 000005 DELAY 5 ; wait 5 milliseconds
7182 042344 367 02 0 00 042337 SOJG 2,SETDS0 ; no - loop till done
7183 042345 262 17 0 00 000002 SETDSX: RGET (2,1) ; restore AC's
7184
7185 042347 263 17 0 00 000000 RTN ; return
7186
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 170
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0333
7187 SUBTTL Program Utility Routines
7188
7189 ;#*********************************************************************
7190 ;* TRACE - Program Trace Routine
7191 ;
7192 ; This routine traces test execution if the TRACE switch is set. This
7193 ; routine sets up TSTSUB, ERFLG, ERRPC for error reporting during the
7194 ; test, and ERRNUM for interrupt handling.
7195 ;#********************************************************************
7196
7197 042350 261 17 0 00 000000 TRACE: RPUT (0,1) ; save AC's
7198
7199 042352 202 00 0 00 115606 MOVEM TSTOFF ; save relocatable offset
7200 042353 200 01 0 00 115576 MOVE 1,TSTNUM ; get test number
7201 042354 200 01 0 01 032037 MOVE 1,TSTTAB(1) ; get test flags
7202 042355 260 17 0 00 032246* GO SWITT ; get switches
7203 042356 606 00 0 00 400000 TRNN TRACET ; want to trace?
7204 042357 254 00 0 00 042366 JRST TREX ; no
7205 042360 037 00 0 00 127507 TMSG <* Test >
7206 042361 200 00 0 00 115576 MOVE TSTNUM ; get test number
7207 042362 037 16 0 00 000003 PNTOCS ; print it
7208 042363 603 01 0 00 000100 TLNE 1,(TDENA) ; disabled?
7209 042364 037 00 0 00 127511 TMSG < (Disabled)> ; yes - print such
7210 042365 037 00 0 00 030242 PCRL
7211 042366 402 00 0 00 000015 TREX: SETZM ERFLG ; clear the error detected flag
7212 042367 402 00 0 00 030052 SETZM ERRPC ; clear the error PC
7213 042370 402 00 0 00 115577 SETZM TSTSUB ; clear subtest number
7214 042371 402 00 0 00 000000* SETZM SCOOFF ; clear error offset
7215 042372 476 00 0 00 041321* SETOM INTNUM ; initialize interrupt number
7216 042373 402 00 0 00 040444* SETZM SNEXT ; initialize next address
7217 042374 402 00 0 00 040434* SETZM SDATA ; initialize CSR data
7218 042375 603 01 0 00 000100 TLNE 1,(TDENA) ; test disabled?
7219 042376 254 00 0 00 042402 JRST TREXX ; yes - exit test
7220 042377 262 17 0 00 000001 RGET (1,0) ; no - restore AC's
7221
7222 042401 263 17 0 00 000000 RTN ; exit normally
7223
7224 042402 262 17 0 00 000001 TREXX: RGET (1,0,XXX) ; restore AC's
7225
7226 042405 263 17 0 00 000000 RTN ; exit test
7227
7228
7229 ;#********************************************************************
7230 ;* TSTEND - Do end of test processing
7231 ;#********************************************************************
7232
7233 042406 200 01 0 00 115576 TSTEND: MOVE 1,TSTNUM ; get test number
7234 042407 202 15 0 01 032151 MOVEM ERFLG,TSTRES(1) ; save results
7235 042410 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 171
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0334
7236
7237 ;#********************************************************************
7238 ;* TSTPNT - Print test name/number
7239 ;#********************************************************************
7240
7241 042411 261 17 0 00 000000 TSTPNT: RPUT (0,1) ; save AC's
7242
7243 042413 037 00 0 00 117745 TMSG <TST>
7244 042414 200 00 0 00 115576 MOVE TSTNUM ; get test number
7245 042415 037 16 0 00 000003 PNTOCS ; print it
7246 042416 200 00 0 00 115577 MOVE TSTSUB ; get subtest number
7247 042417 322 00 0 00 042422 JUMPE TSTPN0 ; zero? yes - continue
7248 042420 037 00 0 00 117115 TMSG <-> ; no - print it
7249 042421 037 16 0 00 000003 PNTOCS
7250 042422 260 17 0 00 042355* TSTPN0: GO SWITT ; get switches
7251 042423 603 00 0 00 000200 TLNE TXTINH ; text inhibit set?
7252 042424 254 00 0 00 042430 JRST TSTPNX ; yes - exit
7253 042425 037 00 0 00 122534 TMSG < - >
7254 042426 200 01 0 00 115576 MOVE 1,TSTNUM ; get test number
7255 042427 256 00 0 01 032120 XCT TSTNAM(1) ; print test description
7256 042430 262 17 0 00 000001 TSTPNX: RGET (1,0) ; restore AC's
7257
7258 042432 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 172
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0335
7259
7260 ;#********************************************************************
7261 ;* PNTCRM - Print CRAM word
7262 ;
7263 ; Arguments: AC2 - Left 30 bits
7264 ; AC3 - Right 30 bits
7265 ;#********************************************************************
7266
7267 042433 261 17 0 00 000000 PNTCRM: RPUT (0,1) ; save AC's
7268
7269 042435 135 00 0 00 127514 LDB [POINT 12,2,17] ; get MWJMPFLD
7270 042436 001 04 0 00 000000 PNTOCC 4,0 ; print it
7271 042437 037 00 0 00 127515 TMSG < >
7272 042440 135 00 0 00 127516 LDB [POINT 1,2,18] ; get MWPAR
7273 042441 037 01 0 00 000000 PNT1 ; print it
7274 042442 037 00 0 00 127515 TMSG < >
7275 042443 135 00 0 00 127517 LDB [POINT 1,2,19] ; get MWOUTPUTENA
7276 042444 037 01 0 00 000000 PNT1 ; print it
7277 042445 135 00 0 00 127520 LDB [POINT 10,2,29] ; get MWMGCFLD
7278 042446 001 04 0 00 000000 PNTOCC 4,0 ; print it
7279 042447 037 00 0 00 127515 TMSG < >
7280 042450 135 00 0 00 127521 LDB [POINT 3,2,32] ; get MWSORCEFLD
7281 042451 037 01 0 00 000000 PNT1 ; print it
7282 042452 037 00 0 00 127515 TMSG < >
7283 042453 135 00 0 00 127522 LDB [POINT 3,2,35] ; get MWFUNCTFLD
7284 042454 037 01 0 00 000000 PNT1 ; print it
7285 042455 037 00 0 00 127515 TMSG < >
7286 042456 135 00 0 00 127523 LDB [POINT 3,3,8] ; get MWDESTFLD
7287 042457 037 01 0 00 000000 PNT1 ; print it
7288 042460 037 00 0 00 127515 TMSG < >
7289 042461 135 00 0 00 127524 LDB [POINT 1,3,9] ; get MWCCENA
7290 042462 037 01 0 00 000000 PNT1 ; print it
7291 042463 037 00 0 00 000040 PSP
7292 042464 135 00 0 00 127525 LDB [POINT 1,3,10] ; get MWRAMODE
7293 042465 037 01 0 00 000000 PNT1 ; print it
7294 042466 037 00 0 00 000040 PSP
7295 042467 135 00 0 00 127526 LDB [POINT 4,3,14] ; get MWPORTAFLD
7296 042470 001 02 0 00 000000 PNTOCC 2,0 ; print it
7297 042471 037 00 0 00 000040 PSP
7298 042472 135 00 0 00 127527 LDB [POINT 4,3,18] ; get MWPORTBFLD
7299 042473 001 02 0 00 000000 PNTOCC 2,0 ; print it
7300 042474 037 00 0 00 000040 PSP
7301 042475 135 00 0 00 127530 LDB [POINT 5,3,23] ; get MWSKIPFLD
7302 042476 001 02 0 00 000000 PNTOCC 2,0 ; print it
7303 042477 037 00 0 00 127515 TMSG < >
7304 042500 135 00 0 00 127531 LDB [POINT 3,3,26] ; get MWBUSCTLFLD
7305 042501 037 01 0 00 000000 PNT1 ; print it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 173
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0336
7306 042502 037 00 0 00 127515 TMSG < >
7307 042503 135 00 0 00 127532 LDB [POINT 1,3,27] ; get MWCARRY
7308 042504 037 01 0 00 000000 PNT1 ; print it
7309 042505 037 00 0 00 000040 PSP
7310 042506 135 01 0 00 127533 LDB 1,[POINT 4,3,31] ; get MWCTRLFLD
7311 XCT [TMSG <JZ > ; print in English
7312 TMSG <CJS >
7313 TMSG <JMAP>
7314 TMSG <CJP >
7315 TMSG <PUSH>
7316 TMSG <JSRP>
7317 TMSG <CJV >
7318 TMSG <JRP >
7319 TMSG <RFCT>
7320 TMSG <RPCT>
7321 TMSG <CRTN>
7322 TMSG <CJPP>
7323 TMSG <LDCT>
7324 TMSG <LOOP>
7325 TMSG <CONT>
7326 042507 256 00 0 01 127554 TMSG <TWB >](1)
7327 042510 037 00 0 00 127515 TMSG < >
7328 042511 135 00 0 00 127574 LDB [POINT 1,3,32] ; get MWTIMEFLD
7329 042512 037 01 0 00 000000 PNT1 ; print it
7330 042513 037 00 0 00 000040 PSP
7331 042514 135 00 0 00 127575 LDB [POINT 2,3,34] ; get MWSPARE00-01
7332 042515 037 01 0 00 000000 PNT1 ; print it
7333 042516 037 00 0 00 000040 PSP
7334 042517 135 00 0 00 127576 LDB [POINT 1,3,35] ; get MWMARKBIT
7335 042520 037 01 0 00 000000 PNT1 ; print it
7336 042521 037 07 0 00 000003 TTALTM ; altmode typed?
7337 042522 334 00 0 00 000000 SKIPA ; no - continue
7338 GO [SETOM ALTF ; yes - set 'altmode typed' flag
7339 SETZM MULFLG ; and clear 'examine next' flag
7340 042523 260 17 0 00 127577 RTN]
7341 042524 262 17 0 00 000001 RGET (1,0) ; restore AC's
7342
7343 042526 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 174
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0337
7344
7345 ;#********************************************************************
7346 ;* PNTWD - Print a CRAM word (xxxx xxxx xxxx xxxx xxxx)
7347 ;
7348 ; Argument: AC2 - Left half
7349 ; AC3 - Right half
7350 ;#********************************************************************
7351
7352 042527 261 17 0 00 000000 PNTWD: RPUT (0,1) ; save AC's
7353
7354 042531 135 00 0 00 127514 LDB [POINT 12,2,17] ; get 1st 4 digits
7355 042532 037 04 0 00 000000 PNT4 ; print them
7356 042533 135 00 0 00 127602 LDB [POINT 12,2,29] ; get 2nd 4 digits
7357 042534 037 04 0 00 000000 PNT4 ; print them
7358 042535 135 01 0 00 127603 LDB 1,[POINT 6,2,35] ; get next 6 bits
7359 042536 135 00 0 00 127604 LDB [POINT 6,3,11] ; get next 6 bits
7360 042537 242 01 0 00 000006 LSH 1,6 ; position correctly
7361 042540 434 00 0 00 000001 IOR 1 ; build 12 bits (3rd 4 digits)
7362 042541 037 04 0 00 000000 PNT4 ; print them
7363 042542 135 00 0 00 127605 LDB [POINT 12,3,23] ; get 1st 4 digits
7364 042543 037 04 0 00 000000 PNT4 ; print them
7365 042544 135 00 0 00 127606 LDB [POINT 12,3,35] ; get last 4 digits
7366 042545 037 04 0 00 000000 PNT4 ; print them
7367 042546 262 17 0 00 000001 RGET (1,0) ; restore AC's
7368
7369 042550 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 175
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0338
7370
7371 ;#********************************************************************
7372 ;* CALPAR - Calculate parity for a CRAM location
7373 ;
7374 ; Arguments: AC1 - Contains 2nd word of microword as put together
7375 ; by the microword macro MWORD. This is only used
7376 ; to look at bit 35 which is a flag specifying bad
7377 ; parity.
7378 ; AC2 - Bits 0-29 (Right justified)
7379 ; AC3 - Bits 30-59 (Right justified)
7380 ;
7381 ; Function: Calculate good parity and insert into Bit 12 of the
7382 ; microword which is Bit 18 in AC2. Then if 'force bad
7383 ; parity' flag is set, complement this bit.
7384 ;
7385 ; Return: +1 always. AC's are unmodified, except bit 18 of AC2.
7386 ;#********************************************************************
7387
7388 042551 261 17 0 00 000004 CALPAR: RPUT (4,5,6,7) ; save AC's
7389
7390 042555 402 00 0 00 134145' SETZM CALMAR# ; clear MARK bit location
7391 042556 602 03 0 00 000001 TRNE 3,1 ; MARK bit set?
7392 042557 476 00 0 00 134145' SETOM CALMAR ; yes - note the fact
7393 042560 620 03 0 00 000001 TRZ 3,1 ; ensure MARK bit is zero
7394 042561 400 04 0 00 000000 SETZ 4, ; clear count of number of 1's
7395 042562 200 05 0 00 000002 MOVE 5,2 ; get left half
7396 042563 210 06 0 00 000005 MOVN 6,5 ; calculate number of 1's
7397 042564 632 05 0 00 000006 TDZE 5,6 ; ...
7398 042565 344 04 0 00 042563 AOJA 4,.-2 ; ...
7399 042566 200 05 0 00 000003 MOVE 5,3 ; get right half
7400 042567 210 06 0 00 000005 MOVN 6,5 ; calculate number of 1's
7401 042570 632 05 0 00 000006 TDZE 5,6 ; ...
7402 042571 344 04 0 00 042567 AOJA 4,.-2 ; ...
7403
7404 ; Now, the parity is even if bit 35 of AC4 is zero, and odd if bit 35 set
7405
7406 042572 606 04 0 00 000001 TRNN 4,1 ; bit 35 set?
7407 042573 431 02 0 00 400000 XORI 2,400000 ; no - complement bit 18
7408
7409 ; Also, handle force parity flag
7410
7411 042574 602 01 0 00 000001 TRNE 1,1 ; 'force bad parity' flag set?
7412 042575 431 02 0 00 400000 XORI 2,400000 ; yes - complement bit 18
7413
7414 ; Done - exit
7415
7416 042576 332 00 0 00 134145' SKIPE CALMAR ; MARK bit set initially?
7417 042577 660 03 0 00 000001 TRO 3,1 ; yes - set it now
7418 042600 262 17 0 00 000007 RGET (7,6,5,4) ; restore AC's
7419
7420 042604 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 176
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0339
7421
7422 ;#********************************************************************
7423 ;* CSRPNT - Print CSR register as 'CSR: xxxxxx,,xxxxxx' followed by
7424 ;* English translation.
7425 ;#********************************************************************
7426
7427 042605 261 17 0 00 000000 CSRPNT: RPUT (0,1,2,3) ; save AC's
7428
7429 042611 037 00 0 00 127607 TMSGC <CSR: > ; print out the data
7430 042612 200 00 0 00 000001 MOVE 1
7431 042613 037 13 0 00 000000 PNTHW
7432 042614 260 17 0 00 042422* GO SWITT ; get switches
7433 042615 603 00 0 00 000200 TLNE TXTINH ; TXTINH set?
7434 042616 254 00 0 00 042622 JRST CSRPNX ; yes - exit
7435 042617 201 02 0 00 000023 MOVEI 2,^D19 ; character count so far
7436 042620 201 03 0 00 000023 MOVEI 3,^D19 ; continuation line column number
7437 042621 260 17 0 00 042627 GO CSRENG ; go print in English
7438 042622 262 17 0 00 000003 CSRPNX: RGET (3,2,1,0) ; restore AC's
7439
7440 042626 263 17 0 00 000000 RTN ; return
7441
7442
7443 ;#********************************************************************
7444 ;* CSRENG - Print CSR data in English
7445 ;
7446 ; AC1 - Contains data to print
7447 ; AC2 - Contains character count on line so far
7448 ; AC3 - Contains column to start continuation lines
7449 ;#********************************************************************
7450
7451 042627 261 17 0 00 000000 CSRENG: RPUT (0,1,4,5,6) ; save AC's
7452
7453 042634 202 01 0 00 134147' MOVEM 1,CSRENS# ; save CSR data
7454 042635 200 04 0 00 000001 MOVE 4,1 ; get data into AC1
7455 042636 400 05 0 00 000000 SETZ 5, ; clear bit index
7456 042637 404 04 0 00 127611 AND 4,[777770,,777770] ; clear port ID and PI bits
7457 042640 434 04 0 00 127612 IOR 4,[000004,,000004] ; set bits so both are printed
7458 042641 322 04 0 00 042660 CSREN0: JUMPE 4,CSRENX ; zero? yes - exit
7459 042642 607 04 0 00 400000 TLNN 4,400000 ; no - bit set?
7460 042643 254 00 0 00 042656 JRST CSREN2 ; no - continue
7461 042644 271 02 0 00 000007 ADDI 2,7 ; increment character count
7462 042645 305 02 0 00 000110 CAIGE 2,^D72 ; over 72 characters?
7463 042646 254 00 0 00 042655 JRST CSREN1 ; no - go print
7464 042647 037 00 0 00 030242 PCRL ; yes - print CRLF, then
7465 042650 200 01 0 00 000003 MOVE 1,3 ; print spaces to start
7466 042651 037 00 0 00 117042 TMSG < > ; in proper column, and
7467 042652 367 01 0 00 042651 SOJG 1,.-1 ; adjust character count
7468 042653 200 02 0 00 000003 MOVE 2,3 ; properly
7469 042654 271 02 0 00 000007 ADDI 2,7 ; increment character count
7470 042655 256 00 0 05 042666 CSREN1: XCT CSRENB(5) ; yes - print it
7471 042656 242 04 0 00 000001 CSREN2: LSH 4,1 ; left shift one bit
7472 042657 345 05 0 00 042641 AOJGE 5,CSREN0 ; increment and keep looping
7473 042660 262 17 0 00 000006 CSRENX: RGET (6,5,4,1,0) ; restore AC's
7474
7475 042665 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 177
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0340
7476
7477 ;#********************************************************************
7478 ;* CSRENB - CSR bits
7479 ;#********************************************************************
7480
7481 042666 037 00 0 00 127613 CSRENB: TMSG <PortP > ; 00
7482 042667 037 00 0 00 127615 TMSG <CsrRqs > ; 01
7483 042670 037 00 0 00 127617 TMSG <CsrChn > ; 02
7484 042671 037 00 0 00 127621 TMSG <Dinit > ; 03
7485 042672 037 00 0 00 127623 TMSG <PI00Rq > ; 04
7486 042673 037 00 0 00 127625 TMSG <RqInt > ; 05
7487 042674 037 00 0 00 127627 TMSG <CramPE > ; 06
7488 042675 037 00 0 00 127631 TMSG <MBErr > ; 07
7489 042676 037 00 0 00 127633 TMSG <Unused > ; 08
7490 042677 037 00 0 00 127633 TMSG <Unused > ; 09
7491 042700 037 00 0 00 127633 TMSG <Unused > ; 10
7492 042701 037 00 0 00 127635 TMSG <Idle > ; 11
7493 042702 037 00 0 00 127637 TMSG <Dcomp > ; 12
7494 042703 037 00 0 00 127641 TMSG <Ecomp > ; 13
7495 042704 037 00 0 00 127633 TMSG <Unused > ; 14
7496 GO [TMSG <ID=> ; 15
7497 LDB [POINT 3,CSRENS,17]
7498 PNT1
7499 042705 260 17 0 00 127645 RTN]
7500 042706 255 00 0 00 000000 JFCL ; 16
7501 042707 255 00 0 00 000000 JFCL ; 17
7502 042710 037 00 0 00 127651 TMSG <PClr > ; 18
7503 042711 037 00 0 00 127653 TMSG <TEbuf > ; 19
7504 042712 037 00 0 00 127655 TMSG <GenEPE > ; 20
7505 042713 037 00 0 00 127657 TMSG <SelLAR > ; 21
7506 042714 037 00 0 00 127661 TMSG <SinCyc > ; 22
7507 042715 037 00 0 00 127663 TMSG <Spare1 > ; 23
7508 042716 037 00 0 00 127665 TMSG <EbusPE > ; 24
7509 042717 037 00 0 00 127667 TMSG <FQErr > ; 25
7510 042720 037 00 0 00 127671 TMSG <MVErr > ; 26
7511 042721 037 00 0 00 127673 TMSG <CmdQAV > ; 27
7512 042722 037 00 0 00 127675 TMSG <ResQAV > ; 28
7513 042723 037 00 0 00 127677 TMSG <Spare2 > ; 29
7514 042724 037 00 0 00 127701 TMSG <Disabl > ; 30
7515 042725 037 00 0 00 127703 TMSG <Enable > ; 31
7516 042726 037 00 0 00 127705 TMSG <MPRun > ; 32
7517 GO [LDB [POINT 3,CSRENS,35]
7518 SKIPN
7519 RTN
7520 TMSG <Pia=> ; 33-35
7521 PNT1
7522 042727 260 17 0 00 127711 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 178
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0341
7523
7524 ;#********************************************************************
7525 ;* SAVCRM - Save specified CRAM locations in a buffer
7526 ;#********************************************************************
7527
7528 042730 261 17 0 00 000000 SAVCRM: RPUT (0,1,2,3) ; save AC's
7529
7530 042734 260 17 0 00 042203* GO ISTOP ; stop the port
7531 042735 201 02 0 00 042777 MOVEI 2,SAVCRL ; get address of storage area
7532 042736 200 03 0 00 000001 MOVE 3,1 ; get AOBJN word
7533 042737 552 03 0 00 035604 SAVCR0: HRRZM 3,CADDR ; set up CRAM address
7534 042740 260 17 0 00 036263 GO DRCRAM ; read CRAM location
7535 042741 120 00 0 00 035605 DMOVE CWORDL ; get location
7536 042742 124 00 0 02 000000 DMOVEM (2) ; save it
7537 042743 271 02 0 00 000002 ADDI 2,2 ; point to next location
7538 042744 253 03 0 00 042737 AOBJN 3,SAVCR0 ; loop till done
7539 042745 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
7540
7541 042751 263 17 0 00 000000 RTN ; return
7542
7543
7544 ;#********************************************************************
7545 ;* RESCRM - Restore CRAM locations
7546 ;#********************************************************************
7547
7548 042752 261 17 0 00 000000 RESCRM: RPUT (0,1,2,3) ; save AC's
7549
7550 042756 260 17 0 00 042734* GO ISTOP ; stop the port
7551 042757 261 17 0 00 033670 PUT PARFLG ; save parity flag
7552 042760 402 00 0 00 033670 SETZM PARFLG ; don't calculate parity
7553 042761 201 02 0 00 042777 MOVEI 2,SAVCRL ; get address of storage area
7554 042762 200 03 0 00 000001 MOVE 3,1 ; get AOBJN word
7555 042763 552 03 0 00 035604 RESCR0: HRRZM 3,CADDR ; set up CRAM address
7556 042764 120 00 0 02 000000 DMOVE (2) ; save it
7557 042765 124 00 0 00 035605 DMOVEM CWORDL ; get location
7558 042766 260 17 0 00 036231 GO DWCRAM ; read CRAM location
7559 042767 271 02 0 00 000002 ADDI 2,2 ; point to next location
7560 042770 253 03 0 00 042763 AOBJN 3,RESCR0 ; loop till done
7561 042771 262 17 0 00 033670 GET PARFLG ; restore parity flag
7562 042772 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
7563
7564 042776 263 17 0 00 000000 RTN ; return
7565
7566 ; CRAM storage area
7567
7568 042777 SAVCRL: BLOCK ^D60
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 179
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0342
7569
7570 ;#********************************************************************
7571 ;* CONPNT - Print configuration data
7572 ;#********************************************************************
7573
7574 043073 261 17 0 00 000000 CONPNT: RPUT (0,1,2,3) ; save AC's
7575
7576 043077 260 17 0 00 065672 GO RDADDR ; read our address
7577 TMSGD <
7578 ***** NI Configuration *****
7579 Physical Address
7580 Bt1 Bt2 Bt3 Bt4 Bt5 Bt6
7581 043100 037 00 0 00 127717 ----------------------->
7582
7583 ; Print this node address first
7584
7585 043101 120 01 0 00 033704 DMOVE 1,SADDR ; get address
7586 043102 260 17 0 00 070261 GO PADDR ; print it
7587 043103 037 00 0 00 127744 TMSGD < (Self)>
7588
7589 ; Now print accumulated data
7590
7591 043104 201 03 0 00 043147 MOVEI 3,CONTBL-2 ; initialize address of table
7592 043105 271 03 0 00 000002 CONPN0: ADDI 3,2 ; point to next address
7593 043106 120 00 0 03 000000 DMOVE (3) ; get address
7594 043107 620 00 0 00 000017 TRZ 17 ; get rid of MBZ bits
7595 043110 404 01 0 00 127747 AND 1,[3,,777740] ; get rid of MBZ bits
7596 043111 434 00 0 00 000001 IOR 1 ; include second word
7597 043112 322 00 0 00 043117 JUMPE CONPNX ; zero? yes - exit
7598
7599 ; Print entry
7600
7601 043113 120 01 0 03 000000 DMOVE 1,(3) ; get address
7602 043114 260 17 0 00 070261 GO PADDR ; print it
7603 043115 037 00 0 00 030242 PCRL
7604 043116 254 00 0 00 043105 JRST CONPN0 ; loop till done
7605
7606 ; Exit
7607
7608 043117 262 17 0 00 000003 CONPNX: RGET (3,2,1,0) ; restore AC's
7609
7610 043123 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 180
DFNIA1 MAC 18-Feb-84 20:30 Program Utility Routines SEQ 0343
7611
7612 ;#********************************************************************
7613 ;* SAVCON - Accumulate configuration data
7614 ;#********************************************************************
7615
7616 ; Check if self
7617
7618 043124 120 00 0 00 073007 SAVCON: DMOVE RSPONS+7 ; get source address
7619 043125 620 00 0 00 000017 TRZ 17 ; get rid of MBZ bits
7620 043126 404 01 0 00 127747 AND 1,[3,,777740] ; get rid of MBZ bits
7621 043127 316 00 0 00 033704 CAMN SADDR ; sent by self?
7622 043130 312 01 0 00 033705 CAME 1,SADDR+1
7623 043131 334 00 0 00 000000 SKIPA ; no - continue
7624 043132 263 17 0 00 000000 RTN ; yes - exit
7625
7626 ; Look for free spot or match
7627
7628 043133 400 03 0 00 000000 SETZ 3, ; clear table pointer
7629 043134 316 00 0 03 043151 SAVCO1: CAMN CONTBL(3) ; check for match of bytes 1-4
7630 043135 312 01 0 03 043152 CAME 1,CONTBL+1(3) ; and of bytes 5-6
7631 043136 334 00 0 00 000000 SKIPA ; no - continue
7632 043137 263 17 0 00 000000 RTN ; yes - go build entry
7633 043140 200 02 0 03 043151 MOVE 2,CONTBL(3) ; get first word
7634 043141 270 02 0 03 043152 ADD 2,CONTBL+1(3) ; add in 2nd word
7635 043142 322 02 0 00 043147 JUMPE 2,SAVCO2 ; free spot? yes - go build entry
7636 043143 271 03 0 00 000002 ADDI 3,2 ; increment table pointer
7637 043144 307 03 0 00 000306 CAIG 3,^D198 ; table full?
7638 043145 254 00 0 00 043134 JRST SAVCO1 ; no - keep looking for a match
7639 043146 263 17 0 00 000000 RTN ; yes - exit
7640
7641 ; Save in table
7642
7643 043147 124 00 0 03 043151 SAVCO2: DMOVEM CONTBL(3) ; save it
7644 043150 263 17 0 00 000000 RTN ; exit
7645
7646 ; Configuration table (source address)
7647
7648 043151 CONTBL: BLOCK ^D100*2 ; up to 100 nodes
7649
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 181
DFNIA1 MAC 18-Feb-84 20:30 Statistics Routines SEQ 0344
7650 SUBTTL Statistics Routines
7651
7652 ;#********************************************************************
7653 ;* SUPDAT - Update statistics for datagrams sent
7654 ;
7655 ; Given: PACKET - Contains the packet data sent
7656 ;#********************************************************************
7657
7658 043461 261 17 0 00 000000 SUPDAT: RPUT (0,1,2,3,OP) ; save AC's
7659
7660 043466 135 11 0 00 127201 LDB OP,[POINT 8,PACKET+3,23]; get op code
7661 043467 201 02 0 00 000002 MOVEI 2,2 ; initialize to 'other packet'
7662 043470 306 11 0 00 000001 CAIN OP,DGSNT ; datagram?
7663 GO [SETZ 2, ; yes - set to 'other datagram'
7664 DMOVE PACKET+7 ; and to 'self-directed dgm'
7665 CAMN SADDR ; if destination address is
7666 CAME 1,SADDR+1 ; self
7667 AOS 2
7668 043471 260 17 0 00 127750 RTN]
7669
7670 ; Increment packets sent
7671
7672 043472 221 02 0 00 000003 SUPDA0: IMULI 2,3 ; calculate address of statistics
7673 043473 271 02 0 00 043665 ADDI 2,STASNT ; ...
7674 043474 350 00 0 02 000000 AOS .SPSNT(2) ; increment number of packets sent
7675 043475 200 03 0 00 000002 MOVE 3,2 ; get into AC3
7676 043476 400 00 0 00 000000 SETZ ; clear byte count
7677 043477 260 17 0 00 070207 GO DECOPC ; decode op code
7678 043500 334 00 0 00 000000 SKIPA ; error - exit
7679 XCT [GO [LDB [POINT 20,PACKET+4,35] ; 0-SNDDG
7680 ADDI ^D14
7681 RTN]
7682 JFCL ; 1-LDMCAT
7683 JFCL ; 2-LDPTT
7684 JFCL ; 3-RCCNT
7685 JFCL ; 4-WRPLI
7686 JFCL ; 5-RDPLI
7687 JFCL ; 6-RDNSA
7688 JFCL ; 7-WRNSA
7689 GO [LDB [POINT 20,PACKET+4,35] ; 10-DGRCV
7690 ADDI ^D14
7691 043501 256 00 0 01 127762 RTN]](1)
7692 043502 272 00 0 03 000001 ADDM .SBSNT(3) ; add in byte count
7693 043503 262 17 0 00 000011 RGET (OP,3,2,1,0) ; restore AC's
7694
7695 043510 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 182
DFNIA1 MAC 18-Feb-84 20:30 Statistics Routines SEQ 0345
7696
7697 ;#********************************************************************
7698 ;* RUPDAT - Update statistics for datagrams received
7699 ;
7700 ; Given: RSPONS - Contains the packet data received
7701 ;#********************************************************************
7702
7703 043511 261 17 0 00 000000 RUPDAT: RPUT (0,1,2,3,OP) ; save AC's
7704
7705
7706 ; First determine what category
7707
7708 043516 135 11 0 00 127162 LDB OP,[POINT 8,RSPONS+3,23]; get op code
7709 043517 201 02 0 00 000002 MOVEI 2,2 ; initialize to 'other packet'
7710 043520 302 11 0 00 000005 CAIE OP,DGRCV ; datagram received or a
7711 043521 306 11 0 00 000001 CAIN OP,DGSNT ; response?
7712 GO [SETZ 2, ; yes - set to 'other datagram'
7713 DMOVE RSPONS+7 ; and to 'self-directed dgm'
7714 CAMN SADDR ; if destination address is
7715 CAME 1,SADDR+1 ; self
7716 AOS 2
7717 043522 260 17 0 00 127773 RTN]
7718
7719 ; Then determine which type it is - response requested, or packet received
7720
7721 043523 306 11 0 00 000005 CAIN OP,DGRCV ; packet received?
7722 043524 254 00 0 00 043542 JRST RUPDA2 ; yes - go handle
7723 043525 200 03 0 00 073003 MOVE 3,RSPONS+3 ; get status word
7724 043526 603 03 0 00 000004 TLNE 3,4 ; error bit set?
7725 043527 254 00 0 00 043535 JRST RUPDA1 ; yes - go handle
7726
7727 ; By dint of 'Rsp Requested'
7728
7729 043530 200 03 0 00 000002 MOVE 3,2 ; get offset
7730 043531 221 03 0 00 000003 IMULI 3,3 ; calculate address of statistics
7731 043532 271 03 0 00 043676 ADDI 3,STARCV ; ...
7732 043533 350 00 0 03 000000 AOS .RPRCV(3) ; increment receive packet count
7733 043534 254 00 0 00 043563 JRST RUPDAX ; go increment byte count
7734
7735 ; By dint of 'Error in transmission'
7736
7737 043535 200 03 0 00 000002 RUPDA1: MOVE 3,2 ; get offset
7738 043536 221 03 0 00 000003 IMULI 3,3 ; calculate address of statistics
7739 043537 271 03 0 00 043665 ADDI 3,STASNT ; ...
7740 043540 350 00 0 03 000002 AOS .STERR(3) ; increment transmit error count
7741 043541 254 00 0 00 043563 JRST RUPDAX ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 183
DFNIA1 MAC 18-Feb-84 20:30 Statistics Routines SEQ 0346
7742
7743 ; This is a packet received from another port or from self (if destination
7744 ; port specified self).
7745
7746 043542 200 03 0 00 000002 RUPDA2: MOVE 3,2 ; get offset
7747 043543 221 03 0 00 000003 IMULI 3,3 ; calculate address of statistics
7748 043544 271 03 0 00 043676 ADDI 3,STARCV ; ...
7749 043545 350 00 0 03 000000 AOS .RPRCV(3) ; increment packet received count
7750 043546 200 02 0 00 073003 MOVE 2,RSPONS+3 ; get status word
7751 043547 135 02 0 00 130001 LDB 2,[POINT 6,2,7] ; get status byte
7752 043550 606 02 0 00 000001 TRNN 2,1 ; error word?
7753 043551 254 00 0 00 043555 JRST RUPDA3 ; no - continue
7754 043552 350 00 0 03 000002 AOS .RRERR(3) ; yes - increment receive error count
7755 043553 306 02 0 00 000020 CAIN 2,20 ; CRC error?
7756 043554 350 00 0 03 000003 AOS .RRCRC(3) ; yes - increment CRC error count
7757
7758 ; Calculate bytes received
7759
7760 043555 135 11 0 00 127162 RUPDA3: LDB OP,[POINT 8,RSPONS+3,23]; get op code
7761 043556 260 17 0 00 070207 GO DECOPC ; decode opcode
7762 043557 334 00 0 00 000000 SKIPA
7763 XCT [GO [LDB [POINT 20,RSPONS+4,35] ; 0-SNDDG
7764 ADDI ^D14
7765 RTN]
7766 JFCL ; 1-LDMCAT
7767 JFCL ; 2-LDPTT
7768 JFCL ; 3-RCCNT
7769 JFCL ; 4-WRPLI
7770 JFCL ; 5-RDPLI
7771 JFCL ; 6-RDNSA
7772 JFCL ; 7-WRNSA
7773 GO [LDB [POINT 20,RSPONS+4,35] ; 10-DGRCV
7774 ADDI ^D14
7775 043560 256 00 0 01 130006 RTN]](1)
7776 043561 272 00 0 03 000001 ADDM .RBRCV(3) ; add in byte count
7777 043562 260 17 0 00 043124 GO SAVCON ; handle configuration data
7778
7779 ; Done - exit
7780
7781 043563 262 17 0 00 000011 RUPDAX: RGET (OP,3,2,1,0) ; restore AC's
7782
7783 043570 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 184
DFNIA1 MAC 18-Feb-84 20:30 Statistics Routines SEQ 0347
7784
7785 ;#********************************************************************
7786 ;* SREPOR - Report statistics
7787 ;#********************************************************************
7788
7789 043571 261 17 0 00 000000 SREPOR: RPUT (0,1,2,3,4,5) ; save AC's
7790
7791
7792 ; Packets Sent statistics
7793
7794 043577 037 00 0 00 130017 TMSGC <*** STATISTICS - Packets Sent (>
7795 043600 260 17 0 00 042234* GO PTIME
7796 TMSG <) ***
7797 (All numbers decimal)
7798 Packets Bytes Transmit
7799 Type Sent Sent Errors
7800 043601 037 00 0 00 130026 ---- ---- ---- ------>
7801 043602 474 05 0 00 000000 SETO 5, ; initialize pointer to line number
7802 043603 350 00 0 00 000005 SREPO0: AOS 5 ; point to next line
7803 043604 301 05 0 00 000003 CAIL 5,3 ; done yet?
7804 043605 254 00 0 00 043621 JRST SREPO1 ; yes - exit
7805 043606 200 04 0 00 000005 MOVE 4,5 ; calculate beginning address
7806 043607 221 04 0 00 000003 IMULI 4,3 ; of statistics
7807 043610 271 04 0 00 043665 ADDI 4,STASNT ; ...
7808
7809 ; Print it
7810
7811 XCT [TMSGC <Self-Directed DGMs>
7812 TMSGC <Other DGMs >
7813 043611 256 00 0 05 130113 TMSGC <Other Packets >](5)
7814 043612 200 00 0 04 000000 MOVE .SPSNT(4) ; get packets sent
7815 043613 003 12 0 00 000000 PNTDCC ^D10,0 ; print it
7816 043614 200 00 0 04 000001 MOVE .SBSNT(4) ; get bytes sent
7817 043615 003 15 0 00 000000 PNTDCC ^D13,0 ; print it
7818 043616 200 00 0 04 000002 MOVE .STERR(4) ; get transmit errors
7819 043617 003 12 0 00 000000 PNTDCC ^D10,0 ; print it
7820 043620 254 00 0 00 043603 JRST SREPO0 ; loop till done
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 185
DFNIA1 MAC 18-Feb-84 20:30 Statistics Routines SEQ 0348
7821
7822 ; Packets Received statistics
7823
7824 043621 037 00 0 00 030242 SREPO1: PCRL
7825 043622 037 00 0 00 130116 TMSGC <*** STATISTICS - Packets Received (>
7826 043623 260 17 0 00 043600* GO PTIME
7827 TMSG <) ***
7828 (All numbers decimal) Unexpected Expected
7829 Packets Bytes Rcvd CRC CRC
7830 Type Rcvd Rcvd Errors Errors Errors
7831 043624 037 00 0 00 130126 ---- ---- ---- ------ ------ ------>
7832 043625 474 05 0 00 000000 SETO 5, ; initialize pointer to line number
7833 043626 350 00 0 00 000005 SREPO2: AOS 5 ; point to next line
7834 043627 301 05 0 00 000003 CAIL 5,3 ; done yet?
7835 043630 254 00 0 00 043651 JRST SREPOX ; yes - exit
7836 043631 200 04 0 00 000005 MOVE 4,5 ; calculate beginning address
7837 043632 221 04 0 00 000005 IMULI 4,5 ; of statistics
7838 043633 271 04 0 00 043676 ADDI 4,STARCV ; ...
7839
7840 ; Print it
7841
7842 XCT [TMSGC <Self-Directed DGMs>
7843 TMSGC <Other DGMs >
7844 043634 256 00 0 05 130113 TMSGC <Other Packets >](5)
7845 043635 200 00 0 04 000000 MOVE .RPRCV(4) ; get packets received
7846 043636 003 12 0 00 000000 PNTDCC ^D10,0 ; print it
7847 043637 200 00 0 04 000001 MOVE .RBRCV(4) ; get bytes received
7848 043640 003 15 0 00 000000 PNTDCC ^D13,0 ; print it
7849 043641 200 00 0 04 000002 MOVE .RRERR(4) ; get receive errors
7850 043642 003 12 0 00 000000 PNTDCC ^D10,0 ; print it
7851 043643 200 00 0 04 000003 MOVE .RRCRC(4) ; get CRC errors total
7852 043644 274 00 0 04 000004 SUB .RREXP(4) ; calculate unexpected errors
7853 043645 003 12 0 00 000000 PNTDCC ^D10,0 ; print it
7854 043646 200 00 0 04 000004 MOVE .RREXP(4) ; get CRC expected errors
7855 043647 003 12 0 00 000000 PNTDCC ^D10,0 ; print it
7856 043650 254 00 0 00 043626 JRST SREPO2 ; loop till done
7857
7858 ; Exit
7859
7860 043651 037 00 0 00 030242 SREPOX: PCRL
7861 043652 262 17 0 00 000005 RGET (5,4,3,2,1,0) ; restore AC's
7862
7863 043660 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 186
DFNIA1 MAC 18-Feb-84 20:30 Statistics Routines SEQ 0349
7864
7865 ;#********************************************************************
7866 ;* SZERO - Clear statistics
7867 ;#********************************************************************
7868
7869 043661 402 00 0 00 043665 SZERO: SETZM STATB ; clear first word
7870 043662 200 00 0 00 130222 MOVE [STATB,,STATB+1] ; build a BLT pointer
7871 043663 251 00 0 00 043714 BLT STATE ; clear them all
7872 043664 263 17 0 00 000000 RTN ; return
7873
7874
7875 ;#********************************************************************
7876 ;* Statistics data areas
7877 ;#********************************************************************
7878
7879 ; Offset definitions for packets sent
7880
7881 000000 .SPSNT==0 ; # packets sent
7882 000001 .SBSNT==1 ; # bytes sent
7883 000002 .STERR==2 ; # transmit errors
7884
7885 ; Offset definitions for packets received
7886
7887 000000 .RPRCV==0 ; # packets received
7888 000001 .RBRCV==1 ; # bytes received
7889 000002 .RRERR==2 ; # receive errors
7890 000003 .RRCRC==3 ; # CRC errors
7891 000004 .RREXP==4 ; # expected CRC errors
7892
7893 ; Statistics
7894
7895 043665 STATB:
7896 043665 STASNT: BLOCK 3 ; self-directed datagrams
7897 043670 BLOCK 3 ; other datagrams
7898 043673 BLOCK 3 ; other packets
7899
7900 043676 STARCV: BLOCK 5 ; self-directed datagrams
7901 043703 BLOCK 5 ; other datagrams
7902 043710 BLOCK 5 ; other packets
7903
7904 043714 STATE==.-1
7905
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 187
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0350
7906 SUBTTL Microcode Handling Routines
7907
7908 ;#********************************************************************
7909 ; These routines load/verify operational microcode and test microcode.
7910 ;
7911 ; Operational microcode:
7912 ;
7913 ; TFLOAD - Load operational microcode for a test
7914 ; FLOADB - Load operational microcode into buffer
7915 ; FLOADC - Load microcode buffer contents into the port
7916 ; FVERFC - Verify port microcode against buffer contents
7917 ; FUERR - Print verify error data
7918 ;
7919 ; Test microcode:
7920 ;
7921 ; MLOADN - Load microcode and verify it (do not print errors)
7922 ; MLOADY - Load microcode and verify it (print errors)
7923 ; MVPNT - Print verify error data
7924 ; MLIST - List microcode of a test
7925 ; TLOAD - Load microcode/verify it for a test
7926 ;#********************************************************************
7927
7928 ;#********************************************************************
7929 ;* TFLOAD - Load operational microcode for a test
7930 ;
7931 ; Returns: +1 Error occurred (Error message or routine in AC0)
7932 ; +2 Succeeded
7933 ;#********************************************************************
7934
7935 043715 402 00 0 00 044331 TFLOAD: SETZM FFLAG ; clear operator output flag
7936 043716 260 17 0 00 044010 GO FLOADB ; load file into ucode buffer
7937 JRST [MOVE [TFLER1,,TFLER2]; error - exit
7938 043717 254 00 0 00 130224 RTN]
7939 043720 200 00 0 00 134250' MOVE TSLOAD ; get microcode loaded flag
7940 043721 306 00 0 00 000777 CAIN 777 ; operational microcode?
7941 043722 254 00 0 00 043741 JRST TFLOAX ; yes - return - already loaded
7942 043723 261 17 0 00 000001 PUT 1 ; save AC1
7943 043724 260 17 0 00 042756* GO ISTOP ; stop the port
7944 043725 400 01 0 00 000000 SETZ 1, ; clear AC1
7945 043726 260 17 0 00 042335* GO LDCSR ; clear CSR
7946 043727 262 17 0 00 000001 GET 1 ; restore AC1
7947 043730 332 00 0 00 134166' SKIPE LDEBUG ; ucode load debug switch set?
7948 043731 254 00 0 00 043741 JRST TFLOAX ; yes - don't load ucode
7949 043732 201 00 0 00 000777 MOVEI 777 ; set microcode loaded flag to
7950 043733 202 00 0 00 134250' MOVEM TSLOAD ; indicate operational ucode
7951 043734 260 17 0 00 044074 GO FLOADC ; load buffer into CRAM
7952 043735 254 00 0 00 043743 JRST TFLOAE ; error - exit
7953 043736 254 00 0 00 043741 JRST TFLOAX ; already loaded - exit
7954 043737 260 17 0 00 044152 GO FVERFC ; verify CRAM against buffer
7955 043740 254 00 0 00 043743 JRST TFLOAE ; error - report
7956 043741 350 00 0 17 000000 TFLOAX: AOS (P) ; no - set up proper return
7957 043742 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 188
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0351
7958
7959 ; Error loading operational microcode
7960
7961 043743 200 00 0 00 130226 TFLOAE: MOVE [TFLER3,,TFLER4]
7962 043744 474 15 0 00 000000 SETO ERFLG, ; set error flag
7963 043745 332 00 0 00 134172' SKIPE MDEBUG ; error message debug switch set?
7964 043746 350 00 0 17 000000 AOS (P) ; yes - skip this error
7965 043747 263 17 0 00 000000 RTN ; exit
7966
7967 ; Error message routines
7968
7969 043750 037 01 0 00 130227 TFLER1: FMSG <Can't access ">
7970 043751 200 00 0 00 044324 MOVE FNAME
7971 043752 037 01 0 00 000002 PNTSXF
7972 043753 037 01 0 00 000056 PNTCIF "."
7973 043754 200 00 0 00 044325 MOVE FNAME+1
7974 043755 037 01 0 00 000002 PNTSXF
7975 043756 037 01 0 00 130232 FMSG <" on selected load device>
7976 043757 263 17 0 00 000000 RTN
7977
7978 043760 037 00 0 00 130227 TFLER2: TMSG <Can't access ">
7979 043761 200 00 0 00 044324 MOVE FNAME
7980 043762 037 00 0 00 000002 PNTSIX
7981 043763 037 00 0 00 000056 PNTCI "."
7982 043764 200 00 0 00 044325 MOVE FNAME+1
7983 043765 037 00 0 00 000002 PNTSIX
7984 043766 037 00 0 00 130232 TMSG <" on selected load device>
7985 043767 263 17 0 00 000000 RTN
7986
7987 043770 037 01 0 00 130240 TFLER3: FMSG <Verify error loading ">
7988 043771 200 00 0 00 044324 MOVE FNAME
7989 043772 037 01 0 00 000002 PNTSXF
7990 043773 037 01 0 00 000056 PNTCIF "."
7991 043774 200 00 0 00 044325 MOVE FNAME+1
7992 043775 037 01 0 00 000002 PNTSXF
7993 043776 037 01 0 00 130245 FMSG <" into CRAM>
7994 043777 263 17 0 00 000000 RTN
7995
7996 044000 037 00 0 00 130240 TFLER4: TMSG <Verify error loading ">
7997 044001 200 00 0 00 044324 MOVE FNAME
7998 044002 037 00 0 00 000002 PNTSIX
7999 044003 037 00 0 00 000056 PNTCI "."
8000 044004 200 00 0 00 044325 MOVE FNAME+1
8001 044005 037 00 0 00 000002 PNTSIX
8002 044006 037 00 0 00 130245 TMSG <" into CRAM>
8003 044007 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 189
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0352
8004
8005 ;#********************************************************************
8006 ;* FLOADB - Load operational microcode into buffer
8007 ;
8008 ; Data areas: UCODE - 4096 word buffer of opr ucode
8009 ; ULEN - number of uword used
8010 ; UNAME - name of ucode loaded
8011 ;
8012 ; FNAME - name of ucode desired
8013 ; FFLAG - output flag 0 - no operator output
8014 ; -1 - operator output is printed
8015 ;
8016 ; Return: +1 - Error occurred
8017 ; +2 - Load succeeded
8018 ; ULEN,UCODE,UNAME updated
8019 ;#********************************************************************
8020
8021 044010 261 17 0 00 000000 FLOADB: RPUT (0,1,2,3,4) ; save AC's
8022
8023 044015 200 00 0 00 044326 MOVE UNAME ; get microcode loaded name
8024 044016 312 00 0 00 044324 CAME FNAME ; same as desired?
8025 044017 254 00 0 00 044024 JRST FLODB0 ; no - must reload ucode
8026 044020 200 00 0 00 044327 MOVE UNAME+1 ; get microcode loaded extension
8027 044021 316 00 0 00 044325 CAMN FNAME+1 ; same as desired?
8028 044022 254 00 0 00 044065 JRST FLODBX ; yes - already loaded
8029 044023 402 00 0 00 044330 SETZM CNAME ; no - clear 'CRAM loaded' name
8030
8031 ; Must load microcode into buffer
8032
8033 044024 201 00 0 00 044324 FLODB0: MOVEI FNAME ; point to file name buffer
8034 044025 037 05 0 00 000004 FSELECT ; init the file
8035 JRST [SKIPN FFLAG ; error - print error message
8036 JRST FLODBE ; if operator output is
8037 FMSGC <? Can't access ">; desired, then exit
8038 MOVE FNAME
8039 PNTSXF
8040 PNTCIF "."
8041 MOVE FNAME+1
8042 PNTSXF
8043 FMSGD <" on selected load device.>
8044 044026 254 00 0 00 130250 JRST FLODBE]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 190
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0353
8045 044027 332 00 0 00 044331 SKIPE FFLAG ; print operator output?
8046 GO [TMSGC <[Reading file: > ; yes - print this
8047 MOVE FNAME
8048 PNTSIX
8049 PNTCI "."
8050 MOVE FNAME+1
8051 PNTSIX
8052 TMSGD <]>
8053 044030 260 17 0 00 130266 RTN]
8054 044031 402 00 0 00 044326 SETZM UNAME ; invalidate current contents
8055 044032 402 00 0 00 134256' SETZM UVERSN# ; invalidate current version number
8056 044033 201 04 0 00 044333 MOVEI 4,UCODE ; get buffer address
8057 044034 260 17 0 00 000000* FLODB1: GO FGETW ; get microcode entry
8058 044035 254 00 0 00 044052 JRST FLODB2 ; error/EOF occurred
8059 044036 403 01 0 00 000002 SETZB 1,2 ; clear AC's
8060 044037 200 00 0 00 035604 MOVE CADDR ; get address
8061 044040 137 00 0 00 126315 DPB [POINT 12,1,11] ; save in word 1
8062 044041 135 00 0 00 130276 LDB [POINT 24,CWORDL,29] ; get left 24 bits (0-23)
8063 044042 137 00 0 00 130277 DPB [POINT 24,1,35] ; save in word 1
8064 044043 135 00 0 00 130300 LDB [POINT 6,CWORDL,35] ; get left 24 bits (24-27)
8065 044044 137 00 0 00 130301 DPB [POINT 6,2,5] ; save in word 2
8066 044045 135 00 0 00 130302 LDB [POINT 30,CWORDR,35] ; get right 28 bits (0-27)
8067 044046 137 00 0 00 130303 DPB [POINT 30,2,35] ; save in word 2
8068 044047 124 01 0 04 000000 DMOVEM 1,(4) ; save data
8069 044050 271 04 0 00 000002 ADDI 4,2 ; point to next location
8070 044051 254 00 0 00 044034 JRST FLODB1 ; no - loop til done
8071
8072 ; Done loading ucode into buffer
8073
8074 044052 120 00 0 00 044324 FLODB2: DMOVE FNAME ; get name of microcode loaded
8075 044053 124 00 0 00 044326 DMOVEM UNAME ; save in actual name loaded
8076 044054 275 04 0 00 044333 SUBI 4,UCODE ; calculate length of ucode
8077 044055 242 04 0 00 777777 LSH 4,-1 ; divide by 2
8078 044056 202 04 0 00 044332 MOVEM 4,ULEN ; save it
8079 044057 332 00 0 00 044331 SKIPE FFLAG ; operator output desired?
8080 GO [TMSGC <[> ; yes - print message
8081 MOVE 4
8082 PNTDEC
8083 TMSGD <. microwords loaded]>
8084 044060 260 17 0 00 130311 RTN]
8085 044061 200 00 0 00 134250' MOVE TSLOAD ; get microcode loaded flag
8086 044062 306 00 0 00 000777 CAIN 777 ; operational microcode?
8087 044063 476 00 0 00 134250' SETOM TSLOAD ; yes - reset loaded flag
8088 044064 260 17 0 00 044300 GO ZCOUNT ; zero counters
8089
8090 ; Exit
8091
8092 044065 350 00 0 17 777773 FLODBX: AOS -5(P) ; set up good return
8093 044066 262 17 0 00 000004 FLODBE: RGET (4,3,2,1,0) ; restore AC's
8094
8095 044073 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 191
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0354
8096
8097 ;#********************************************************************
8098 ;* FLOADC - Load microcode buffer contents into the port
8099 ;
8100 ; Return: +1 - Error
8101 ; +2 - Already loaded
8102 ; +3 - Ok
8103 ;#********************************************************************
8104
8105 044074 261 17 0 00 000000 FLOADC: RPUT (0,1,2,3,4) ; save AC's
8106
8107 044101 336 00 0 00 044326 SKIPN UNAME ; any microcode loaded?
8108 JRST [SKIPE FFLAG ; no - return
8109 TMSGCD <? No microcode loaded yet>
8110 SOS -5(P)
8111 SOS -5(P)
8112 044102 254 00 0 00 130324 JRST FLODCX]
8113 044103 200 00 0 00 044326 MOVE UNAME ; get microcode name desired
8114 044104 316 00 0 00 044330 CAMN CNAME ; same as what is loaded?
8115 JRST [SKIPN FFLAG ; no - return
8116 JRST FLODCX
8117 TMSGC <[>
8118 MOVE UNAME ; message
8119 PNTSIX
8120 PNTCI "."
8121 MOVE UNAME+1
8122 PNTSIX
8123 TMSGD < already loaded]>
8124 SOS -5(P)
8125 044105 254 00 0 00 130331 JRST FLODCX]
8126 044106 332 00 0 00 044331 SKIPE FFLAG ; operator output desired?
8127 GO [TMSGC <[Loading > ; yes - print loading ucode
8128 MOVE UNAME ; message
8129 PNTSIX
8130 PNTCI "."
8131 MOVE UNAME+1
8132 PNTSIX
8133 TMSGD < into CRAM]>
8134 044107 260 17 0 00 130352 RTN]
8135
8136 ; Go load the microcode
8137
8138 044110 200 03 0 00 044332 MOVE 3,ULEN ; get length of ucode
8139 044111 201 04 0 00 044333 MOVEI 4,UCODE ; get address of ucode buffer
8140 044112 261 17 0 00 033670 PUT PARFLG ; save auto parity flag
8141 044113 402 00 0 00 033670 SETZM PARFLG ; clear auto parity flag
8142 044114 120 01 0 04 000000 FLODC0: DMOVE 1,(4) ; get microword entry
8143 044115 135 00 0 00 126315 LDB [POINT 12,1,11] ; get CRAM address
8144 044116 202 00 0 00 035604 MOVEM CADDR ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 192
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0355
8145 044117 246 01 0 00 000006 LSHC 1,6 ; position correctly for 30 bits
8146 044120 135 00 0 00 126317 LDB [POINT 30,1,35] ; get left 30 bits
8147 044121 202 00 0 00 035605 MOVEM CWORDL ; save it
8148 044122 135 00 0 00 126316 LDB [POINT 30,2,29] ; get right 30 bits
8149 044123 622 00 0 00 000002 TRZE 2 ; bit 59 set?
8150 044124 660 00 0 00 000001 TRO 1 ; yes - set rightmost bit
8151 044125 202 00 0 00 035606 MOVEM CWORDR ; save it
8152 044126 260 17 0 00 036231 GO DWCRAM ; write CRAM word
8153 044127 271 04 0 00 000002 ADDI 4,2 ; point to next entry
8154 044130 367 03 0 00 044114 SOJG 3,FLODC0 ; loop till done
8155 044131 262 17 0 00 033670 GET PARFLG ; restore auto parity flag
8156 044132 200 00 0 00 044326 MOVE UNAME ; get name of ucode loaded
8157 044133 202 00 0 00 044330 MOVEM CNAME ; save name of ucode loaded
8158
8159 ; Also load a NOP into location 56
8160
8161 044134 201 01 0 00 044147 MOVEI 1,FLONOP ; set up microcode address
8162 044135 260 17 0 00 064353 GO MLOADN ; load/verify it
8163 044136 255 00 0 00 000000 JFCL ; ignore error
8164
8165 ; Exit
8166
8167 044137 262 17 0 00 000004 FLODCX: RGET (4,3,2,1,0) ; restore AC's
8168
8169 044144 350 00 0 17 000000 AOS (P) ; set up proper return
8170 044145 350 00 0 17 000000 AOS (P) ; set up proper return
8171 044146 263 17 0 00 000000 RTN ; return
8172
8173 ; NOP for location 56
8174
8175 044147 005600 000000 FLONOP: MWORD <ADDR=56,CONT>
8176 044150 000000 000340
8177 044151 777777 777777 -1
8178
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 193
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0356
8179
8180 ;#********************************************************************
8181 ;* FVERFC - Verify port microcode against buffer contents
8182 ;
8183 ; Data areas: UCODE - 4096 word buffer of opr ucode
8184 ; ULEN - number of uword used
8185 ; UNAME - name of ucode loaded
8186 ; UVERR - verify error count
8187 ; ECODE - up to 3 verify errors
8188 ;
8189 ; FFLAG - output flag 0 - no operator output
8190 ; -1 - operator output is printed
8191 ;
8192 ; Return: +1 - Verify error
8193 ; +2 - Verify succeeded
8194 ; UVERR,ECODE updated
8195 ;#********************************************************************
8196
8197 044152 261 17 0 00 000000 FVERFC: RPUT (0,1,2,3,4) ; save AC's
8198
8199 044157 336 00 0 00 044326 SKIPN UNAME ; any microcode loaded?
8200 JRST [SKIPE FFLAG ; no - return
8201 TMSGCD <? No microcode loaded into buffer yet>
8202 044160 254 00 0 00 130373 JRST FVERFE]
8203 044161 200 03 0 00 044332 MOVE 3,ULEN ; get length of ucode
8204 044162 201 04 0 00 044333 MOVEI 4,UCODE ; get address of ucode buffer
8205 044163 402 00 0 00 064333 SETZM UVERR ; clear verify error count
8206 044164 120 01 0 04 000000 FVERF0: DMOVE 1,(4) ; get microword entry
8207 044165 135 00 0 00 126315 LDB [POINT 12,1,11] ; get CRAM address
8208 044166 306 00 0 00 000056 CAIN 56 ; special location 56?
8209 044167 254 00 0 00 044207 JRST FVERF1 ; yes - don't check this one
8210 044170 202 00 0 00 035604 MOVEM CADDR ; save it
8211 044171 246 01 0 00 000006 LSHC 1,6 ; position correctly for 30 bits
8212 044172 135 00 0 00 126317 LDB [POINT 30,1,35] ; get left 30 bits
8213 044173 202 00 0 00 134154' MOVEM DWORDL# ; save it
8214 044174 135 00 0 00 126316 LDB [POINT 30,2,29] ; get right 30 bits
8215 044175 622 00 0 00 000002 TRZE 2 ; bit 59 set?
8216 044176 660 00 0 00 000001 TRO 1 ; yes - set rightmost bit
8217 044177 202 00 0 00 134155' MOVEM DWORDR# ; save it
8218 044200 260 17 0 00 036263 GO DRCRAM ; read CRAM word
8219 044201 200 00 0 00 035605 MOVE CWORDL ; get left word
8220 044202 312 00 0 00 134154' CAME DWORDL ; correct?
8221 JRST [AOS 2,UVERR ; no - handle error
8222 CAILE 2,3 ; too many errors so far?
8223 JRST FVERF1 ; yes - don't save this one
8224 IMULI 2,5 ; no - multiply by 5
8225 MOVEI 2,ECODE-5(2) ; get address to save bad data
8226 MOVE CADDR ; get CRAM address
8227 MOVEM (2) ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 194
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0357
8228 8229 DMOVE DWORDL ; get correct
8230 DMOVEM 1(2) ; save it
8231 DMOVE CWORDL ; get correct
8232 DMOVEM 3(2) ; save it
8233 044203 254 00 0 00 130376 JRST FVERF1]
8234 044204 200 00 0 00 035606 MOVE CWORDR ; get right word
8235 044205 312 00 0 00 134155' CAME DWORDR ; correct?
8236 JRST [AOS 2,UVERR ; no - handle error
8237 CAILE 2,3 ; too many errors so far?
8238 JRST FVERF1 ; yes - don't save this one
8239 IMULI 2,5 ; no - multiply by 5
8240 MOVEI 2,ECODE-5(2) ; get address to save bad data
8241 MOVE CADDR ; get CRAM address
8242 MOVEM (2) ; save it
8243 DMOVE DWORDL ; get correct
8244 DMOVEM 1(2) ; save it
8245 DMOVE CWORDL ; get correct
8246 DMOVEM 3(2) ; save it
8247 044206 254 00 0 00 130376 JRST FVERF1]
8248 044207 271 04 0 00 000002 FVERF1: ADDI 4,2 ; point to next entry
8249 044210 367 03 0 00 044164 SOJG 3,FVERF0 ; loop till done
8250 044211 201 00 0 00 000137 MOVEI 137 ; read location 137 which contains
8251 044212 202 00 0 00 035604 MOVEM CADDR ; microcode version in MGC field
8252 044213 260 17 0 00 036263 GO DRCRAM ; bits 14-23
8253 044214 135 00 0 00 124243 LDB [POINT 10,CWORDL,29] ; get version number
8254 044215 202 00 0 00 134256' MOVEM UVERSN ; save it
8255 044216 332 00 0 00 064333 SKIPE UVERR ; any verify errors?
8256 044217 254 00 0 00 044223 JRST FVERFE ; yes - take error exit
8257 044220 332 00 0 00 044331 SKIPE FFLAG ; operator output desired?
8258 GO [TMSGC <[> ; yes - print message
8259 MOVE ULEN
8260 PNTDEC
8261 TMSGD <. CRAM locations loaded/verified]>
8262 TMSGC <[Ucode version >
8263 MOVE UVERSN ; get version number
8264 PNTOCS ; print it
8265 TMSGD <]>
8266 044221 260 17 0 00 130426 RTN]
8267 044222 350 00 0 17 777773 AOS -5(P) ; set up good return
8268 044223 262 17 0 00 000004 FVERFE: RGET (4,3,2,1,0) ; restore AC's
8269
8270 044230 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 195
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0358
8271
8272 ;#********************************************************************
8273 ;* FUERR - Print verify error data
8274 ;
8275 ; Data printed: UVERR - number of verify errors
8276 ; ECODE - correct/actual data for each error (up to 3)
8277 ;#********************************************************************
8278
8279 044231 336 00 0 00 064333 FUERR: SKIPN UVERR ; any verify errors?
8280 044232 263 17 0 00 000000 RTN ; no - return
8281 044233 261 17 0 00 000000 RPUT (0,1,2,3,4) ; save some AC's
8282
8283 044240 037 00 0 00 030242 PCRL ; start a new line
8284 044241 200 00 0 00 044332 MOVE ULEN
8285 044242 037 15 0 00 000000 PNTDEC
8286 044243 037 00 0 00 130437 TMSG <. CRAM locations loaded - >
8287 044244 200 00 0 00 064333 MOVE UVERR ; get number of errors
8288 044245 037 15 0 00 000000 PNTDEC ; print it
8289 044246 037 00 0 00 130445 TMSG <. verify errors:>
8290 044247 037 00 0 00 130451 TMSGC < Addr Correct Actual>
8291 044250 201 01 0 00 064334 MOVEI 1,ECODE ; get address of correct/actual data
8292 044251 200 04 0 00 064333 MOVE 4,UVERR ; get number of verify errors
8293 044252 303 04 0 00 000003 CAILE 4,3 ; more than 3 errors?
8294 044253 201 04 0 00 000003 MOVEI 4,3 ; yes - limit to 3
8295 044254 200 00 0 01 000000 FUERR0: MOVE (1) ; get CRAM address
8296 044255 037 00 0 00 125342 TMSGC < >
8297 044256 037 04 0 00 000000 PNT4 ; print it
8298 044257 037 00 0 00 127515 TMSG < >
8299 044260 120 02 0 01 000001 DMOVE 2,1(1) ; get left/right halves of correct
8300 044261 260 17 0 00 042527 GO PNTWD ; print it
8301 044262 037 00 0 00 127515 TMSG < >
8302 044263 120 02 0 01 000003 DMOVE 2,3(1) ; get left/right halves of actual
8303 044264 260 17 0 00 042527 GO PNTWD ; print it
8304 044265 271 01 0 00 000005 ADDI 1,5 ; point to next entry
8305 044266 367 04 0 00 044254 SOJG 4,FUERR0 ; loop till done
8306 044267 303 04 0 00 000003 CAILE 4,3 ; more than printed?
8307 044270 037 00 0 00 130463 TMSGC < ...> ; yes - indicate more
8308 044271 037 00 0 00 030242 PCRL
8309 044272 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
8310
8311 044277 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 196
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0359
8312
8313 ;#********************************************************************
8314 ;* ZCOUNT - Zero counters data (local storage locations 1400-1777)
8315 ;#********************************************************************
8316
8317 044300 261 17 0 00 000001 ZCOUNT: RPUT (1,4) ; save AC's
8318
8319 044302 201 04 0 00 001400 MOVEI 4,1400 ; get initial address
8320 044303 137 04 0 00 125147 ZCOUN0: DPB 4,[POINT 10,DZLOCM,35] ; set up local storage address
8321 044304 201 01 0 00 037076 MOVEI 1,DZLOCM ; set up microcode address
8322 044305 260 17 0 00 064353 GO MLOADN ; load/verify it
8323 044306 255 00 0 00 000000 JFCL ; ignore error
8324 044307 201 01 0 00 007750 MOVEI 1,7750 ; get start address
8325 044310 242 01 0 00 000001 LSH 1,1 ; position correctly
8326 044311 260 17 0 00 041074* GO LDRAR ; load the RAR
8327 044312 201 01 0 00 000010 MOVEI 1,MPRUN ; start it up
8328 044313 260 17 0 00 043726* GO LDCSR
8329 044314 400 01 0 00 000000 SETZ 1, ; stop the port
8330 044315 260 17 0 00 044313* GO LDCSR
8331 044316 350 00 0 00 000004 AOS 4 ; point to next address
8332 044317 305 04 0 00 002000 CAIGE 4,2000 ; done yet?
8333 044320 254 00 0 00 044303 JRST ZCOUN0 ; no - loop till done
8334 044321 262 17 0 00 000004 RGET (4,1) ; restore AC's
8335
8336 044323 263 17 0 00 000000 RTN ; return
8337
8338
8339 ;#********************************************************************
8340 ; Ucode data areas
8341 ;#********************************************************************
8342
8343 ; Microcode file name
8344
8345 044324 56 51 22 20 00 00 FNAME: SIXBIT /NI20/ ; operational microcode
8346 044325 65 54 44 00 00 00 SIXBIT /ULD/ ; file name
8347
8348 044326 000000 000000 UNAME: 0 ; name of actual microcode
8349 044327 000000 000000 0 ; loaded into buffer
8350 044330 000000 000000 CNAME: 0 ; name of actual ucode loaded into CRAM
8351
8352 044331 000000 000000 FFLAG: 0 ; operator output flag (0-N,-1-Y)
8353
8354 ; Microcode
8355
8356 044332 000000 000000 ULEN: 0 ; length of microcode
8357
8358 044333 UCODE: BLOCK ^D8192 ; microcode data area
8359
8360 ; Verify error data
8361
8362 064333 000000 000000 UVERR: 0 ; number of ucode verify errors
8363 064334 ECODE: BLOCK 3*5 ; verify error ucode data area
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 197
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0360
8364
8365 ;#********************************************************************
8366 ;* MLOADN - Load microcode and verify it (do not print errors)
8367 ;* MLOADY - Load microcode and verify it (print errors)
8368 ;
8369 ; Arguments: AC1 - Contains address where microcode starts
8370 ;
8371 ; Returns: MLNUM - Number of words loaded/verified
8372 ; +1 - Error occurred loading/verifying microcode
8373 ; +2 - Ok
8374 ;
8375 ; Microcode format: The microcode is given in 2 word segments
8376 ; (specifying address and 60 CRAM bits). The ucode is in a
8377 ; table beginning at the address given in AC1. The end of
8378 ; this table is indicated by a word containing -1.
8379 ;
8380 ; Microwords from another microcode list may be inserted by
8381 ; placing a two word entry within the table: -2 followed
8382 ; by the address of the new list.
8383 ;
8384 ; Word 1: Bits 00-11 - Microword load address (0000-7777)
8385 ; 12-35 - Bits 0-23 of microword to load
8386 ; Word 2: Bits 00-34 - Bits 24-57,59 of microword to load
8387 ; 35 ---- Force Bad Parity flag
8388 ;#********************************************************************
8389
8390 064353 402 00 0 00 134200' MLOADN: SETZM MVREP# ; clear print flag
8391 064354 334 00 0 00 000000 SKIPA ; continue
8392 064355 476 00 0 00 134200' MLOADY: SETOM MVREP ; set print flag
8393 064356 402 00 0 00 134176' SETZM MVFLAG# ; clear verify flag
8394 064357 260 17 0 00 064366 GO MVCOM ; load microcode
8395 064360 255 00 0 00 000000 JFCL ; error - ignore
8396 064361 476 00 0 00 134176' SETOM MVFLAG ; set verify flag
8397 064362 260 17 0 00 064366 GO MVCOM ; verify microcode
8398 064363 263 17 0 00 000000 RTN ; error - return
8399 064364 350 00 0 17 000000 AOS (P) ; set up proper return
8400 064365 263 17 0 00 000000 RTN ; return
8401
8402 064366 476 00 0 00 134177' MVCOM: SETOM MVNUM# ; init number of verify errors
8403 064367 402 00 0 00 134173' SETZM MLNUM# ; init number of words loaded
8404 064370 323 01 0 00 117037 JUMPLE 1,[RTN] ; exit if no microcode table specified
8405 064371 261 17 0 00 000000 RPUT (0,1,2,3,4) ; save some AC's
8406
8407 064376 200 04 0 00 000001 MOVE 4,1 ; get address of table in AC4
8408 064377 200 01 0 00 130465 MOVE 1,[MWBADR,,MWBADR+1] ; build a BLT pointer
8409 064400 476 00 0 00 064517 SETOM MWBADR ; initialize first word
8410 064401 251 01 0 00 064535 BLT 1,MWBRAC+2 ; initialize the rest
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 198
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0361
8411
8412 ; First stop the port and ensure 'DIAG TEST EBUF' is not set
8413
8414 064402 260 17 0 00 043724* GO ISTOP ; stop the port
8415 064403 260 17 0 00 000000* GO CLREBU ; ensure cleared
8416 064404 255 00 0 00 000000 JFCL ; ignore error
8417
8418 ; Load microwords
8419
8420 064405 200 02 0 04 000000 MLOAD0: MOVE 2,(4) ; get first word
8421 064406 316 02 0 00 124130 CAMN 2,[-1] ; end of list?
8422 064407 254 00 0 00 064505 JRST MLOADX ; yes - exit
8423 064410 402 00 0 00 044330 SETZM CNAME ; clear 'CRAM loaded' ucode flag
8424 064411 200 03 0 04 000001 MOVE 3,1(4) ; get second word
8425 064412 312 02 0 00 125204 CAME 2,[-2] ; subtable entry?
8426 064413 254 00 0 00 064427 JRST MLOAD1 ; no - go load word
8427
8428 ; Subtable entry
8429
8430 064414 271 04 0 00 000002 ADDI 4,2 ; point to next table entry
8431 064415 261 17 0 00 130466 PUT [MLOADR] ; set up return address
8432 064416 261 17 0 00 000000 RPUT (0,1,2,3,4) ; save AC's
8433
8434 064423 200 04 0 00 000003 MOVE 4,3 ; get table address
8435 064424 254 00 0 00 064405 JRST MLOAD0 ; reentrant call to load
8436 064425 255 00 0 00 000000 MLOADR: JFCL ; error - ignore
8437 064426 254 00 0 00 064405 JRST MLOAD0 ; continue
8438
8439 ; Load bits 0-27
8440
8441 064427 135 01 0 00 130467 MLOAD1: LDB 1,[POINT 12,2,11] ; get actual CRAM load address
8442 064430 202 01 0 00 035604 MOVEM 1,CADDR ; save address
8443 064431 242 01 0 00 000001 LSH 1,1 ; convert to address for RAR
8444 064432 660 01 0 00 000001 TRO 1,1 ; set bit 12 (for left 28 bits)
8445 064433 202 01 0 00 134240' MOVEM 1,SAVRAR# ; save address loaded
8446 064434 260 17 0 00 044311* GO LDRAR ; load RAR with it
8447
8448 064435 200 01 0 00 000003 MOVE 1,3 ; get word 2 (has 'bad parity' flag)
8449 064436 621 02 0 00 777700 TLZ 2,777700 ; now AC2 has CRAM bits 0-23
8450 064437 246 02 0 00 000006 LSHC 2,6 ; now get bits 0-30 in AC2 (left half)
8451 064440 242 03 0 00 777772 LSH 3,-6 ; right justify AC3 (right half)
8452 064441 622 03 0 00 000002 TRZE 3,2 ; bit 59 set?
8453 064442 660 03 0 00 000001 TRO 3,1 ; yes - set rightmost bit
8454 064443 260 17 0 00 042551 GO CALPAR ; calculate parity
8455 064444 200 01 0 00 000002 MOVE 1,2 ; get left 30 bits
8456 064445 336 00 0 00 134176' SKIPN MVFLAG ; load?
8457 064446 260 17 0 00 036255* GO LDCRAM ; yes - load it
8458 064447 332 00 0 00 134176' SKIPE MVFLAG ; verify?
8459 GO [GO RDCRAM ; yes - read CRAM
8460 MOVEM 1,CWORDL ; save it
8461 064450 260 17 0 00 130470 RTN]
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 199
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0362
8462
8463 ; Load bits 30-59
8464
8465 064451 200 01 0 00 134240' MOVE 1,SAVRAR ; get RAR address (for left 30 bits)
8466 064452 620 01 0 00 000001 TRZ 1,1 ; clear bit 12 (for right 30 bits)
8467 064453 260 17 0 00 064434* GO LDRAR ; load address
8468 064454 200 01 0 00 000003 MOVE 1,3 ; get right 30 bits
8469 064455 336 00 0 00 134176' SKIPN MVFLAG ; load?
8470 064456 260 17 0 00 064446* GO LDCRAM ; yes - load it
8471 064457 336 00 0 00 134176' SKIPN MVFLAG ; load?
8472 064460 254 00 0 00 064502 JRST MLOAD2 ; yes - next location
8473 064461 260 17 0 00 036277* GO RDCRAM ; yes - read CRAM
8474 064462 202 01 0 00 035606 MOVEM 1,CWORDR ; save it
8475 064463 316 02 0 00 035605 CAMN 2,CWORDL ; valid data?
8476 064464 312 03 0 00 035606 CAME 3,CWORDR
8477 064465 334 00 0 00 000000 SKIPA ; no - continue
8478 064466 254 00 0 00 064502 JRST MLOAD2 ; yes - next location
8479 064467 350 01 0 00 134177' AOS 1,MVNUM ; get error count
8480 064470 303 01 0 00 000002 CAILE 1,2 ; more than 3 errors?
8481 064471 254 00 0 00 064502 JRST MLOAD2 ; yes - next location
8482 064472 200 00 0 00 035604 MOVE CADDR ; get address
8483 064473 202 00 0 01 064517 MOVEM MWBADR(1) ; save it
8484 064474 202 02 0 01 064522 MOVEM 2,MWBLCO(1) ; save left 30 bits (correct)
8485 064475 202 03 0 01 064530 MOVEM 3,MWBRCO(1) ; save right 30 bits (correct)
8486 064476 200 02 0 00 035605 MOVE 2,CWORDL ; get left 30 bits
8487 064477 202 02 0 01 064525 MOVEM 2,MWBLAC(1) ; save it (actual)
8488 064500 200 02 0 00 035606 MOVE 2,CWORDR ; get right 30 bits
8489 064501 202 03 0 01 064533 MOVEM 3,MWBRAC(1) ; save it (actual)
8490
8491 ; Point to next microword
8492
8493 064502 350 00 0 00 134173' MLOAD2: AOS MLNUM ; increment word count
8494 064503 271 04 0 00 000002 ADDI 4,2 ; increment by 2
8495 064504 254 00 0 00 064405 JRST MLOAD0 ; loop till done
8496
8497 ; Done - return count of words loaded
8498
8499 064505 337 00 0 00 134177' MLOADX: SKIPG MVNUM ; any verify errors?
8500 064506 350 00 0 17 777773 AOS -5(P) ; no - set up RTN+2
8501 064507 332 00 0 00 134200' SKIPE MVREP ; report errors?
8502 064510 260 17 0 00 064536 GO MVPNT ; yes - print errors
8503 064511 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
8504
8505 064516 263 17 0 00 000000 RTN ; return
8506
8507 064517 MWBADR: BLOCK 3 ; CRAM addresses
8508 064522 MWBLCO: BLOCK 3 ; left correct
8509 064525 MWBLAC: BLOCK 3 ; left actual
8510 064530 MWBRCO: BLOCK 3 ; right correct
8511 064533 MWBRAC: BLOCK 3 ; right actual
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 200
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0363
8512
8513 ;#********************************************************************
8514 ;* MVPNT - Print verify error data
8515 ;#********************************************************************
8516
8517 064536 335 00 0 00 134177' MVPNT: SKIPGE MVNUM ; any errors to report?
8518 064537 263 17 0 00 000000 RTN ; no - return
8519 064540 261 17 0 00 000000 RPUT (0,1,2,3,4,5,6) ; save some AC's
8520
8521 064547 350 01 0 00 134177' AOS 1,MVNUM ; get correct error count 1..n
8522 064550 200 00 0 00 000001 MOVE 1
8523 064551 037 00 0 00 130473 TMSGC <? >
8524 064552 037 15 0 00 000000 PNTDEC ; print it
8525 064553 037 00 0 00 130474 TMSG <. CRAM verify errors:>
8526 064554 037 00 0 00 130501 TMSGC <Addr --- Correct --- --- Actual --- -- Discrepancy -->
8527 064555 400 04 0 00 000000 SETZ 4, ; pointer to error data
8528 064556 200 00 0 04 064517 MVPNT1: MOVE MWBADR(4) ; get address
8529 064557 037 00 0 00 030242 PCRL
8530 064560 037 04 0 00 000000 PNT4 ; print it
8531 064561 037 00 0 00 117042 TMSG < >
8532 064562 200 02 0 04 064522 MOVE 2,MWBLCO(4) ; get left half
8533 064563 200 03 0 04 064530 MOVE 3,MWBRCO(4) ; get right half
8534 064564 260 17 0 00 064615 GO MVPNTW ; print it
8535 064565 037 00 0 00 117042 TMSG < >
8536 064566 200 02 0 04 064525 MOVE 2,MWBLAC(4) ; get left half
8537 064567 200 03 0 04 064533 MOVE 3,MWBRAC(4) ; get right half
8538 064570 260 17 0 00 064615 GO MVPNTW ; print it
8539 064571 037 00 0 00 117042 TMSG < >
8540 064572 200 02 0 04 064522 MOVE 2,MWBLCO(4) ; get left half
8541 064573 430 02 0 04 064525 XOR 2,MWBLAC(4) ; xor actual data
8542 064574 200 03 0 04 064530 MOVE 3,MWBRCO(4) ; get right half
8543 064575 430 03 0 04 064533 XOR 3,MWBRAC(4) ; xor actual data
8544 064576 260 17 0 00 064615 GO MVPNTW ; print it
8545 064577 377 00 0 00 000001 SOSG 1 ; decrement error count - done?
8546 064600 254 00 0 00 064605 JRST MVPNTX ; yes - exit
8547 064601 350 00 0 00 000004 AOS 4 ; point to next word
8548 064602 305 04 0 00 000003 CAIGE 4,3 ; 3 printed already?
8549 064603 254 00 0 00 064556 JRST MVPNT1 ; no - loop till done
8550 064604 037 00 0 00 130463 TMSGC < ...>
8551 064605 262 17 0 00 000006 MVPNTX: RGET (6,5,4,3,2,1,0) ; yes - restore AC's
8552
8553 064614 263 17 0 00 000000 RTN ; return
8554
8555 064615 242 03 0 00 000006 MVPNTW: LSH 3,^D6 ; left justify the data
8556 064616 246 02 0 00 000006 LSHC 2,^D6 ; left justify both words
8557 064617 200 05 0 00 130517 MOVE 5,[POINT 3,2] ; initial byte pointer
8558 064620 201 06 0 00 000024 MOVEI 6,^D20 ; number of bytes to print
8559 064621 134 00 0 00 000005 ILDB 5 ; get byte
8560 064622 037 16 0 00 000003 PNTOCS ; print it
8561 064623 365 06 0 00 064621 SOJGE 6,.-2 ; loop till done
8562 064624 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 201
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0364
8563
8564 ;#********************************************************************
8565 ;* MLIST - List microcode of a test
8566 ;#********************************************************************
8567
8568 064625 261 17 0 00 000000 MLIST: RPUT (0,1,2,3,4) ; save some AC's
8569
8570 064632 037 00 0 00 124742 TMSGC <ADDR/ JUMP PAR OUT MGC SOR FUN DES CC RAM PA PB SK BUS CRY CTL TM SP MK>
8571 064633 200 04 0 00 000001 MOVE 4,1 ; get address of table in AC4
8572 064634 200 02 0 04 000000 MLIST0: MOVE 2,(4) ; get first word
8573 064635 316 02 0 00 124130 CAMN 2,[-1] ; end of list?
8574 064636 254 00 0 00 064657 JRST MLISTX ; yes - exit
8575 064637 200 03 0 04 000001 MOVE 3,1(4) ; get second word
8576
8577 ; Print this CRAM entry
8578
8579 064640 037 00 0 00 030242 PCRL ; start a new line
8580 064641 135 00 0 00 130467 LDB [POINT 12,2,11] ; get cram load address
8581 064642 001 04 0 00 000000 PNTOCC 4,0 ; print it
8582 064643 037 00 0 00 124736 TMSG </ >
8583 064644 200 01 0 00 000003 MOVE 1,3 ; get word 2 (it has 'bad parity' flag)
8584 064645 135 02 0 00 130520 LDB 2,[POINT 24,2,35] ; get CRAM bits 0-23
8585 064646 246 02 0 00 000006 LSHC 2,6 ; now get bits 0-30 in AC2 (left half)
8586 064647 242 03 0 00 777772 LSH 3,-6 ; right justify AC3 (right half)
8587 064650 622 03 0 00 000002 TRZE 3,2 ; bit 59 set?
8588 064651 660 03 0 00 000001 TRO 3,1 ; yes - set rightmost bit
8589 064652 260 17 0 00 042551 GO CALPAR ; calculate parity
8590 064653 260 17 0 00 042433 GO PNTCRM ; print it
8591
8592 ; Point to next microword / Exit if Altmode typed / Exit when done
8593
8594 064654 271 04 0 00 000002 ADDI 4,2 ; increment by 2
8595 064655 336 00 0 00 134143' SKIPN ALTF ; altmode typed?
8596 064656 254 00 0 00 064634 JRST MLIST0 ; no - loop till done
8597 064657 037 00 0 00 030242 MLISTX: PCRL
8598 064660 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
8599
8600 064665 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 202
DFNIA1 MAC 18-Feb-84 20:30 Microcode Handling Routines SEQ 0365
8601
8602 ;#********************************************************************
8603 ;* TLOAD - Load microcode/verify it for a test
8604 ;
8605 ; Arguments: AC1 - Contains address where microcode starts
8606 ;
8607 ; Function: Issue a port clear to the port to ensure it is stopped.
8608 ; Then call MLOADN to load the microcode, then call MVERFY
8609 ; to verify it. Abort on any error.
8610 ;
8611 ; Returns: +1 - Error occurred loading/verifying microcode
8612 ; +2 - Ok
8613 ;#********************************************************************
8614
8615 064666 332 00 0 00 134166' TLOAD: SKIPE LDEBUG ; ucode load debug switch set?
8616 064667 254 00 0 00 064676 JRST TLOADX ; yes - don't load ucode
8617 064670 316 01 0 00 134250' CAMN 1,TSLOAD ; already loaded?
8618 064671 254 00 0 00 064676 JRST TLOADX ; yes - don't load ucode
8619
8620 064672 260 17 0 00 037725* GO IPACLR ; do a 'port clear'
8621 064673 260 17 0 00 064353 GO MLOADN ; load it
8622 064674 254 00 0 00 064700 JRST TLOADE ; failed
8623 064675 202 01 0 00 134250' MOVEM 1,TSLOAD ; save microcode address
8624 064676 350 00 0 17 000000 TLOADX: AOS (P) ; set up RTN +2
8625 064677 263 17 0 00 000000 RTN ; exit
8626
8627 064700 474 15 0 00 000000 TLOADE: SETO ERFLG, ; set error flag
8628 064701 027 00 0 00 064707 SCOPER TLERR ; print error message
8629 064702 255 00 0 00 000000 JFCL ; don't allow test looping
8630 064703 255 00 0 00 000000 JFCL ; ignore altmode
8631 064704 332 00 0 00 134172' SKIPE MDEBUG ; error message debug switch set?
8632 064705 350 00 0 17 000000 AOS (P) ; yes - skip this error
8633 064706 263 17 0 00 000000 RTN ; exit
8634
8635 064707 160000 130521 TLERR: MSG!TXALL![ASCIZ /Error loading test microcode - test aborted./]
8636 064710 270000 064536 LAST!CALL!TXALL!MVPNT ; print verify errors
8637
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 203
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0366
8638 SUBTTL NI Initialization Routines
8639
8640 ;#********************************************************************
8641 ;* TPCB - Set up initial PCB
8642 ;#********************************************************************
8643
8644 064711 261 17 0 00 000000 TPCB: RPUT (0,1,2,3,4) ; save AC's
8645
8646 064716 260 17 0 00 064402* GO ISTOP ; stop the port
8647
8648 ; Handle the first 25 locations
8649
8650 064717 200 00 0 00 130532 TPCB0: MOVE [IPCB,,PCB] ; build a BLT pointer
8651 064720 251 00 0 00 072030 BLT PCB+^D24 ; transfer the data
8652 064721 332 00 0 00 030037 SKIPE USER ; user mode?
8653 064722 402 00 0 00 072025 SETZM PCB+^D21 ; yes - clear PI word
8654
8655 ; Set up unknown protocol type free queue
8656
8657 064723 402 00 0 00 075000 SETZM UNKBEG ; clear first word
8658 064724 200 00 0 00 130533 MOVE [UNKBEG,,UNKBEG+1] ; build a BLT pointer
8659 064725 251 00 0 00 104617 BLT UNKEND ; clear the buffer
8660 064726 120 00 0 00 130534 DMOVE [EXP QUNKF1,PCB+11] ; get correct addresses
8661 064727 124 00 0 00 075000 DMOVEM QUNKF0 ; save them
8662 064730 120 00 0 00 130536 DMOVE [EXP QUNKF2,QUNKF0] ; get correct addresses
8663 064731 124 00 0 00 076000 DMOVEM QUNKF1 ; save them
8664 064732 120 00 0 00 130540 DMOVE [EXP QUNKF3,QUNKF1] ; get correct addresses
8665 064733 124 00 0 00 077000 DMOVEM QUNKF2 ; save them
8666 064734 120 00 0 00 130542 DMOVE [EXP QUNKF4,QUNKF2] ; get correct addresses
8667 064735 124 00 0 00 100000 DMOVEM QUNKF3 ; save them
8668 064736 120 00 0 00 130544 DMOVE [EXP QUNKF5,QUNKF3] ; get correct addresses
8669 064737 124 00 0 00 101000 DMOVEM QUNKF4 ; save them
8670 064740 120 00 0 00 130546 DMOVE [EXP QUNKF6,QUNKF4] ; get correct addresses
8671 064741 124 00 0 00 102000 DMOVEM QUNKF5 ; save them
8672 064742 120 00 0 00 130550 DMOVE [EXP QUNKF7,QUNKF5] ; get correct addresses
8673 064743 124 00 0 00 103000 DMOVEM QUNKF6 ; save them
8674 064744 120 00 0 00 130552 DMOVE [EXP PCB+11,QUNKF6] ; get correct addresses
8675 064745 124 00 0 00 104000 DMOVEM QUNKF7 ; save them
8676
8677 ; Set up the PTT queue
8678
8679 064746 402 00 0 00 105070 SETZM PTTBEG ; clear first word
8680 064747 200 00 0 00 130554 MOVE [PTTBEG,,PTTBEG+1] ; build a BLT pointer
8681 064750 251 00 0 00 115307 BLT PTTEND ; clear the buffer
8682 064751 476 00 0 00 105070 SETOM PTTFQ ; initialize interlock word
8683 064752 400 01 0 00 000000 SETZ 1, ; initial offset into PTT table
8684 064753 400 02 0 00 000000 SETZ 2, ; initial offset into initial table
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 204
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0367
8685
8686 064754 200 03 0 02 071110 TPCB1: MOVE 3,IPTAB(2) ; get PTT value
8687 064755 242 03 0 00 000004 LSH 3,4 ; position properly
8688 064756 661 03 0 00 400000 TLO 3,400000 ; set enable bit
8689 064757 202 03 0 01 105000 MOVEM 3,PTABLE(1) ; save PTT word
8690 064760 201 03 0 00 105071 MOVEI 3,PTTFQ+1 ; get queue header address
8691 064761 202 03 0 01 105001 MOVEM 3,PTABLE+1(1) ; save it
8692 064762 271 01 0 00 000003 ADDI 1,3 ; point to next location
8693 064763 350 00 0 00 000002 AOS 2 ; set up next PTT value
8694 064764 307 02 0 00 000017 CAIG 2,17 ; done yet?
8695 064765 254 00 0 00 064754 JRST TPCB1 ; no - loop till done
8696
8697 064766 120 00 0 00 130555 DMOVE [EXP PTTF0,PTTF17] ; get correct addresses
8698 064767 124 00 0 00 105071 DMOVEM PTTFQ+1 ; save them
8699 064770 201 00 0 00 000275 MOVEI ^D200-13 ; get entry length
8700 064771 202 00 0 00 105073 MOVEM PTTFQ+3 ; save it
8701
8702 064772 120 00 0 00 130557 DMOVE [EXP PTTF1,PTTFQ+1] ; get correct addresses
8703 064773 124 00 0 00 105074 DMOVEM PTTF0 ; save them
8704 064774 120 00 0 00 130561 DMOVE [EXP PTTF2,PTTF0] ; get correct addresses
8705 064775 124 00 0 00 106000 DMOVEM PTTF1 ; save them
8706 064776 120 00 0 00 130563 DMOVE [EXP PTTF3,PTTF1] ; get correct addresses
8707 064777 124 00 0 00 106310 DMOVEM PTTF2 ; save them
8708 065000 120 00 0 00 130565 DMOVE [EXP PTTF4,PTTF2] ; get correct addresses
8709 065001 124 00 0 00 107000 DMOVEM PTTF3 ; save them
8710 065002 120 00 0 00 130567 DMOVE [EXP PTTF5,PTTF3] ; get correct addresses
8711 065003 124 00 0 00 107310 DMOVEM PTTF4 ; save them
8712 065004 120 00 0 00 130571 DMOVE [EXP PTTF6,PTTF4] ; get correct addresses
8713 065005 124 00 0 00 110000 DMOVEM PTTF5 ; save them
8714 065006 120 00 0 00 130573 DMOVE [EXP PTTF7,PTTF5] ; get correct addresses
8715 065007 124 00 0 00 110310 DMOVEM PTTF6 ; save them
8716 065010 120 00 0 00 130575 DMOVE [EXP PTTF10,PTTF6] ; get correct addresses
8717 065011 124 00 0 00 111000 DMOVEM PTTF7 ; save them
8718 065012 120 00 0 00 130577 DMOVE [EXP PTTF11,PTTF7] ; get correct addresses
8719 065013 124 00 0 00 111310 DMOVEM PTTF10 ; save them
8720 065014 120 00 0 00 130601 DMOVE [EXP PTTF12,PTTF10] ; get correct addresses
8721 065015 124 00 0 00 112000 DMOVEM PTTF11 ; save them
8722 065016 120 00 0 00 130603 DMOVE [EXP PTTF13,PTTF11] ; get correct addresses
8723 065017 124 00 0 00 112310 DMOVEM PTTF12 ; save them
8724 065020 120 00 0 00 130605 DMOVE [EXP PTTF14,PTTF12] ; get correct addresses
8725 065021 124 00 0 00 113000 DMOVEM PTTF13 ; save them
8726 065022 120 00 0 00 130607 DMOVE [EXP PTTF15,PTTF13] ; get correct addresses
8727 065023 124 00 0 00 113310 DMOVEM PTTF14 ; save them
8728 065024 120 00 0 00 130611 DMOVE [EXP PTTF16,PTTF14] ; get correct addresses
8729 065025 124 00 0 00 114000 DMOVEM PTTF15 ; save them
8730 065026 120 00 0 00 130613 DMOVE [EXP PTTF17,PTTF15] ; get correct addresses
8731 065027 124 00 0 00 114310 DMOVEM PTTF16 ; save them
8732 065030 120 00 0 00 130615 DMOVE [EXP PTTFQ+1,PTTF16] ; get correct addresses
8733 065031 124 00 0 00 115000 DMOVEM PTTF17 ; save them
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 205
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0368
8734
8735 ; Insert data pointer address in each free queue entry
8736
8737 065032 201 00 0 00 075013 MOVEI QUNKF0+13 ; get data pointer address
8738 065033 202 00 0 00 075012 MOVEM QUNKF0+12 ; save it
8739 065034 201 00 0 00 076013 MOVEI QUNKF1+13 ; get data pointer address
8740 065035 202 00 0 00 076012 MOVEM QUNKF1+12 ; save it
8741 065036 201 00 0 00 077013 MOVEI QUNKF2+13 ; get data pointer address
8742 065037 202 00 0 00 077012 MOVEM QUNKF2+12 ; save it
8743 065040 201 00 0 00 100013 MOVEI QUNKF3+13 ; get data pointer address
8744 065041 202 00 0 00 100012 MOVEM QUNKF3+12 ; save it
8745 065042 201 00 0 00 101013 MOVEI QUNKF4+13 ; get data pointer address
8746 065043 202 00 0 00 101012 MOVEM QUNKF4+12 ; save it
8747 065044 201 00 0 00 102013 MOVEI QUNKF5+13 ; get data pointer address
8748 065045 202 00 0 00 102012 MOVEM QUNKF5+12 ; save it
8749 065046 201 00 0 00 103013 MOVEI QUNKF6+13 ; get data pointer address
8750 065047 202 00 0 00 103012 MOVEM QUNKF6+12 ; save it
8751 065050 201 00 0 00 104013 MOVEI QUNKF7+13 ; get data pointer address
8752 065051 202 00 0 00 104012 MOVEM QUNKF7+12 ; save it
8753
8754 065052 201 00 0 00 105107 MOVEI PTTF0+13 ; get data pointer address
8755 065053 202 00 0 00 105106 MOVEM PTTF0+12 ; save it
8756 065054 201 00 0 00 106013 MOVEI PTTF1+13 ; get data pointer address
8757 065055 202 00 0 00 106012 MOVEM PTTF1+12 ; save it
8758 065056 201 00 0 00 106323 MOVEI PTTF2+13 ; get data pointer address
8759 065057 202 00 0 00 106322 MOVEM PTTF2+12 ; save it
8760 065060 201 00 0 00 107013 MOVEI PTTF3+13 ; get data pointer address
8761 065061 202 00 0 00 107012 MOVEM PTTF3+12 ; save it
8762 065062 201 00 0 00 107323 MOVEI PTTF4+13 ; get data pointer address
8763 065063 202 00 0 00 107322 MOVEM PTTF4+12 ; save it
8764 065064 201 00 0 00 110013 MOVEI PTTF5+13 ; get data pointer address
8765 065065 202 00 0 00 110012 MOVEM PTTF5+12 ; save it
8766 065066 201 00 0 00 110323 MOVEI PTTF6+13 ; get data pointer address
8767 065067 202 00 0 00 110322 MOVEM PTTF6+12 ; save it
8768 065070 201 00 0 00 111013 MOVEI PTTF7+13 ; get data pointer address
8769 065071 202 00 0 00 111012 MOVEM PTTF7+12 ; save it
8770 065072 201 00 0 00 111323 MOVEI PTTF10+13 ; get data pointer address
8771 065073 202 00 0 00 111322 MOVEM PTTF10+12 ; save it
8772 065074 201 00 0 00 112013 MOVEI PTTF11+13 ; get data pointer address
8773 065075 202 00 0 00 112012 MOVEM PTTF11+12 ; save it
8774 065076 201 00 0 00 112323 MOVEI PTTF12+13 ; get data pointer address
8775 065077 202 00 0 00 112322 MOVEM PTTF12+12 ; save it
8776 065100 201 00 0 00 113013 MOVEI PTTF13+13 ; get data pointer address
8777 065101 202 00 0 00 113012 MOVEM PTTF13+12 ; save it
8778 065102 201 00 0 00 113323 MOVEI PTTF14+13 ; get data pointer address
8779 065103 202 00 0 00 113322 MOVEM PTTF14+12 ; save it
8780 065104 201 00 0 00 114013 MOVEI PTTF15+13 ; get data pointer address
8781 065105 202 00 0 00 114012 MOVEM PTTF15+12 ; save it
8782 065106 201 00 0 00 114323 MOVEI PTTF16+13 ; get data pointer address
8783 065107 202 00 0 00 114322 MOVEM PTTF16+12 ; save it
8784 065110 201 00 0 00 115013 MOVEI PTTF17+13 ; get data pointer address
8785 065111 202 00 0 00 115012 MOVEM PTTF17+12 ; save it
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 206
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0369
8786
8787 ; Next convert all of the virtual addresses to physical
8788
8789 065112 474 03 0 00 000000 TPCB2: SETO 3, ; initialize pointer to list
8790 065113 350 00 0 00 000003 TPCB3: AOS 3 ; point to next address
8791 065114 335 01 0 03 065312 SKIPGE 1,ADRVIR(3) ; done yet?
8792 065115 254 00 0 00 065123 JRST TPCB4 ; yes - continue
8793 065116 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
8794 065117 257 01 0 01 000000 MAP 1,(1) ; no - map to physical
8795 065120 621 01 0 00 777000 TLZ 1,777000 ; get rid of extraneous bits
8796 065121 202 01 0 03 065470 MOVEM 1,ADRPHY(3) ; save physical address
8797 065122 254 00 0 00 065113 JRST TPCB3 ; loop till done
8798
8799 ; Finally, ensure that each address in all of the queues is indeed
8800 ; a physical address
8801
8802 065123 474 03 0 00 000000 TPCB4: SETO 3, ; initialize address pointer
8803 065124 350 00 0 00 000003 TPCB5: AOS 3 ; point to next address
8804 065125 335 02 0 03 065145 SKIPGE 2,ADRQUE(3) ; get location of address - zero?
8805 065126 254 00 0 00 065135 JRST TPCB6 ; yes - exit
8806 065127 200 01 0 02 000000 MOVE 1,(2) ; get address in that location
8807 065130 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
8808 065131 257 01 0 01 000000 MAP 1,(1) ; no - map to physical
8809 065132 621 01 0 00 777000 TLZ 1,777000 ; get rid of extraneous bits
8810 065133 202 01 0 02 000000 MOVEM 1,(2) ; save physical address
8811 065134 254 00 0 00 065124 JRST TPCB5 ; loop till done
8812
8813 ; Set up multicast table
8814
8815 065135 200 00 0 00 130617 TPCB6: MOVE [IMTAB,,MTABLE] ; get BLT pointer
8816 065136 251 00 0 00 115357 BLT MTABLE+37 ; copy the data
8817
8818 ; Done - exit
8819
8820 065137 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
8821
8822 065144 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0370
8823
8824 ; Table of locations, the contents of which contain virtual
8825 ; addresses, which must be translated to physical
8826
8827 065145 000000 072001 ADRQUE: EXP PCB+1,PCB+2,PCB+5,PCB+6,PCB+11,PCB+12,PCB+15,PCB+16,PCB+24
8828 065146 000000 072002
8829 065147 000000 072005
8830 065150 000000 072006
8831 065151 000000 072011
8832 065152 000000 072012
8833 065153 000000 072015
8834 065154 000000 072016
8835 065155 000000 072024
8836 065156 000000 072030 EXP PCB+30
8837 065157 000000 075000 EXP QUNKF0,QUNKF0+1,QUNKF1,QUNKF1+1,QUNKF2,QUNKF2+1,QUNKF3,QUNKF3+1
8838 065160 000000 075001
8839 065161 000000 076000
8840 065162 000000 076001
8841 065163 000000 077000
8842 065164 000000 077001
8843 065165 000000 100000
8844 065166 000000 100001
8845 065167 000000 101000 EXP QUNKF4,QUNKF4+1,QUNKF5,QUNKF5+1,QUNKF6,QUNKF6+1,QUNKF7,QUNKF7+1
8846 065170 000000 101001
8847 065171 000000 102000
8848 065172 000000 102001
8849 065173 000000 103000
8850 065174 000000 103001
8851 065175 000000 104000
8852 065176 000000 104001
8853 065177 000000 105001 EXP PTABLE+1,PTABLE+4,PTABLE+7,PTABLE+12,PTABLE+15,PTABLE+20
8854 065200 000000 105004
8855 065201 000000 105007
8856 065202 000000 105012
8857 065203 000000 105015
8858 065204 000000 105020
8859 065205 000000 105023 EXP PTABLE+23,PTABLE+26,PTABLE+31,PTABLE+34,PTABLE+37,PTABLE+42
8860 065206 000000 105026
8861 065207 000000 105031
8862 065210 000000 105034
8863 065211 000000 105037
8864 065212 000000 105042
8865 065213 000000 105045 EXP PTABLE+45,PTABLE+50,PTABLE+53,PTABLE+56
8866 065214 000000 105050
8867 065215 000000 105053
8868 065216 000000 105056
8869 065217 000000 105071 EXP PTTFQ+1,PTTFQ+2
8870 065220 000000 105072
8871 065221 000000 105074 EXP PTTF0,PTTF0+1,PTTF1,PTTF1+1,PTTF2,PTTF2+1,PTTF3,PTTF3+1
8872 065222 000000 105075
8873 065223 000000 106000
8874 065224 000000 106001
8875 065225 000000 106310
8876 065226 000000 106311
8877 065227 000000 107000
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207-1
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0371
8878 065230 000000 107001
8879 065231 000000 107310 EXP PTTF4,PTTF4+1,PTTF5,PTTF5+1,PTTF6,PTTF6+1,PTTF7,PTTF7+1
8880 065232 000000 107311
8881 065233 000000 110000
8882 065234 000000 110001
8883 065235 000000 110310
8884 065236 000000 110311
8885 065237 000000 111000
8886 065240 000000 111001
8887 065241 000000 111310 EXP PTTF10,PTTF10+1,PTTF11,PTTF11+1,PTTF12,PTTF12+1,PTTF13,PTTF13+1
8888 065242 000000 111311
8889 065243 000000 112000
8890 065244 000000 112001
8891 065245 000000 112310
8892 065246 000000 112311
8893 065247 000000 113000
8894 065250 000000 113001
8895 065251 000000 113310 EXP PTTF14,PTTF14+1,PTTF15,PTTF15+1,PTTF16,PTTF16+1,PTTF17,PTTF17+1
8896 065252 000000 113311
8897 065253 000000 114000
8898 065254 000000 114001
8899 065255 000000 114310
8900 065256 000000 114311
8901 065257 000000 115000
8902 065260 000000 115001
8903 065261 000000 075012 EXP QUNKF0+12,QUNKF1+12,QUNKF2+12,QUNKF3+12,QUNKF4+12,QUNKF5+12
8904 065262 000000 076012
8905 065263 000000 077012
8906 065264 000000 100012
8907 065265 000000 101012
8908 065266 000000 102012
8909 065267 000000 103012 EXP QUNKF6+12,QUNKF7+12
8910 065270 000000 104012
8911 065271 000000 105106 EXP PTTF0+12,PTTF1+12,PTTF2+12,PTTF3+12,PTTF4+12,PTTF5+12
8912 065272 000000 106012
8913 065273 000000 106322
8914 065274 000000 107012
8915 065275 000000 107322
8916 065276 000000 110012
8917 065277 000000 110322 EXP PTTF6+12,PTTF7+12,PTTF10+12,PTTF11+12,PTTF12+12
8918 065300 000000 111012
8919 065301 000000 111322
8920 065302 000000 112012
8921 065303 000000 112322
8922 065304 000000 113012 EXP PTTF13+12,PTTF14+12,PTTF15+12,PTTF16+12,PTTF17+12
8923 065305 000000 113322
8924 065306 000000 114012
8925 065307 000000 114322
8926 065310 000000 115012
8927 065311 777777 777777 -1
8928
8929 ; Table of virtual addresses
8930
8931 065312 000000 072001 ADRVIR: EXP PCB+1,PCB+5,PCB+11,PTABLE,MTABLE,PCB,PACKET+14,PACKET+20
8932 065313 000000 072005
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207-2
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0372
8933 065314 000000 072011
8934 065315 000000 105000
8935 065316 000000 115320
8936 065317 000000 072000
8937 065320 000000 072130
8938 065321 000000 072134
8939 065322 000000 075000 EXP QUNKF0,QUNKF1,QUNKF2,QUNKF3,QUNKF4,QUNKF5,QUNKF6,QUNKF7
8940 065323 000000 076000
8941 065324 000000 077000
8942 065325 000000 100000
8943 065326 000000 101000
8944 065327 000000 102000
8945 065330 000000 103000
8946 065331 000000 104000
8947 065332 000000 105074 EXP PTTF0,PTTF1,PTTF2,PTTF3,PTTF4,PTTF5,PTTF6,PTTF7,PTTFQ,PTTFQ+1
8948 065333 000000 106000
8949 065334 000000 106310
8950 065335 000000 107000
8951 065336 000000 107310
8952 065337 000000 110000
8953 065340 000000 110310
8954 065341 000000 111000
8955 065342 000000 105070
8956 065343 000000 105071
8957 065344 000000 111310 EXP PTTF10,PTTF11,PTTF12,PTTF13,PTTF14,PTTF15,PTTF16,PTTF17,0
8958 065345 000000 112000
8959 065346 000000 112310
8960 065347 000000 113000
8961 065350 000000 113310
8962 065351 000000 114000
8963 065352 000000 114310
8964 065353 000000 115000
8965 065354 000000 000000
8966
8967 065355 000000 075013 EXP QUNKF0+13,QUNKF1+13,QUNKF2+13,QUNKF3+13,QUNKF4+13,QUNKF5+13
8968 065356 000000 076013
8969 065357 000000 077013
8970 065360 000000 100013
8971 065361 000000 101013
8972 065362 000000 102013
8973 065363 000000 103013 EXP QUNKF6+13,QUNKF7+13,PTTF0+13,PTTF1+13,PTTF2+13,PTTF3+13
8974 065364 000000 104013
8975 065365 000000 105107
8976 065366 000000 106013
8977 065367 000000 106323
8978 065370 000000 107013
8979 065371 000000 107323 EXP PTTF4+13,PTTF5+13,PTTF6+13,PTTF7+13,PTTF10+13,PTTF11+13
8980 065372 000000 110013
8981 065373 000000 110323
8982 065374 000000 111013
8983 065375 000000 111323
8984 065376 000000 112013
8985 065377 000000 112323 EXP PTTF12+13,PTTF13+13,PTTF14+13,PTTF15+13,PTTF16+13,PTTF17+13
8986 065400 000000 113013
8987 065401 000000 113323
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207-3
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0373
8988 065402 000000 114013
8989 065403 000000 114323
8990 065404 000000 115013
8991
8992 065405 000000 075014 EXP QUNKF0+14,QUNKF1+14,QUNKF2+14,QUNKF3+14,QUNKF4+14,QUNKF5+14
8993 065406 000000 076014
8994 065407 000000 077014
8995 065410 000000 100014
8996 065411 000000 101014
8997 065412 000000 102014
8998 065413 000000 103014 EXP QUNKF6+14,QUNKF7+14,PTTF0+14,PTTF1+14,PTTF2+14,PTTF3+14
8999 065414 000000 104014
9000 065415 000000 105110
9001 065416 000000 106014
9002 065417 000000 106324
9003 065420 000000 107014
9004 065421 000000 107324 EXP PTTF4+14,PTTF5+14,PTTF6+14,PTTF7+14,PTTF10+14,PTTF11+14
9005 065422 000000 110014
9006 065423 000000 110324
9007 065424 000000 111014
9008 065425 000000 111324
9009 065426 000000 112014
9010 065427 000000 112324 EXP PTTF12+14,PTTF13+14,PTTF14+14,PTTF15+14,PTTF16+14,PTTF17+14
9011 065430 000000 113014
9012 065431 000000 113324
9013 065432 000000 114014
9014 065433 000000 114324
9015 065434 000000 115014
9016
9017 065435 000000 075020 EXP QUNKF0+20,QUNKF1+20,QUNKF2+20,QUNKF3+20,QUNKF4+20,QUNKF5+20
9018 065436 000000 076020
9019 065437 000000 077020
9020 065440 000000 100020
9021 065441 000000 101020
9022 065442 000000 102020
9023 065443 000000 103020 EXP QUNKF6+20,QUNKF7+20,PTTF0+20,PTTF1+20,PTTF2+20,PTTF3+20
9024 065444 000000 104020
9025 065445 000000 105114
9026 065446 000000 106020
9027 065447 000000 106330
9028 065450 000000 107020
9029 065451 000000 107330 EXP PTTF4+20,PTTF5+20,PTTF6+20,PTTF7+20,PTTF10+20,PTTF11+20
9030 065452 000000 110020
9031 065453 000000 110330
9032 065454 000000 111020
9033 065455 000000 111330
9034 065456 000000 112020
9035 065457 000000 112330 EXP PTTF12+20,PTTF13+20,PTTF14+20,PTTF15+20,PTTF16+20,PTTF17+20
9036 065460 000000 113020
9037 065461 000000 113330
9038 065462 000000 114020
9039 065463 000000 114330
9040 065464 000000 115020
9041 065465 000000 072030 EXP PCB+30,PCB+31
9042 065466 000000 072031
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207-4
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0374
9043 065467 777777 777777 -1
9044
9045 ; Table of physical addresses
9046
9047 065470 000000 072001 ADRPHY: EXP PCB+1,PCB+5,PCB+11,PTABLE,MTABLE,PCB,PACKET+14,PACKET+20
9048 065471 000000 072005
9049 065472 000000 072011
9050 065473 000000 105000
9051 065474 000000 115320
9052 065475 000000 072000
9053 065476 000000 072130
9054 065477 000000 072134
9055 065500 000000 075000 EXP QUNKF0,QUNKF1,QUNKF2,QUNKF3,QUNKF4,QUNKF5,QUNKF6,QUNKF7
9056 065501 000000 076000
9057 065502 000000 077000
9058 065503 000000 100000
9059 065504 000000 101000
9060 065505 000000 102000
9061 065506 000000 103000
9062 065507 000000 104000
9063 065510 000000 105074 EXP PTTF0,PTTF1,PTTF2,PTTF3,PTTF4,PTTF5,PTTF6,PTTF7,PTTFQ,PTTFQ+1
9064 065511 000000 106000
9065 065512 000000 106310
9066 065513 000000 107000
9067 065514 000000 107310
9068 065515 000000 110000
9069 065516 000000 110310
9070 065517 000000 111000
9071 065520 000000 105070
9072 065521 000000 105071
9073 065522 000000 111310 EXP PTTF10,PTTF11,PTTF12,PTTF13,PTTF14,PTTF15,PTTF16,PTTF17,0
9074 065523 000000 112000
9075 065524 000000 112310
9076 065525 000000 113000
9077 065526 000000 113310
9078 065527 000000 114000
9079 065530 000000 114310
9080 065531 000000 115000
9081 065532 000000 000000
9082
9083 065533 000000 075013 EXP QUNKF0+13,QUNKF1+13,QUNKF2+13,QUNKF3+13,QUNKF4+13,QUNKF5+13
9084 065534 000000 076013
9085 065535 000000 077013
9086 065536 000000 100013
9087 065537 000000 101013
9088 065540 000000 102013
9089 065541 000000 103013 EXP QUNKF6+13,QUNKF7+13,PTTF0+13,PTTF1+13,PTTF2+13,PTTF3+13
9090 065542 000000 104013
9091 065543 000000 105107
9092 065544 000000 106013
9093 065545 000000 106323
9094 065546 000000 107013
9095 065547 000000 107323 EXP PTTF4+13,PTTF5+13,PTTF6+13,PTTF7+13,PTTF10+13,PTTF11+13
9096 065550 000000 110013
9097 065551 000000 110323
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207-5
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0375
9098 065552 000000 111013
9099 065553 000000 111323
9100 065554 000000 112013
9101 065555 000000 112323 EXP PTTF12+13,PTTF13+13,PTTF14+13,PTTF15+13,PTTF16+13,PTTF17+13
9102 065556 000000 113013
9103 065557 000000 113323
9104 065560 000000 114013
9105 065561 000000 114323
9106 065562 000000 115013
9107
9108 065563 000000 075014 EXP QUNKF0+14,QUNKF1+14,QUNKF2+14,QUNKF3+14,QUNKF4+14,QUNKF5+14
9109 065564 000000 076014
9110 065565 000000 077014
9111 065566 000000 100014
9112 065567 000000 101014
9113 065570 000000 102014
9114 065571 000000 103014 EXP QUNKF6+14,QUNKF7+14,PTTF0+14,PTTF1+14,PTTF2+14,PTTF3+14
9115 065572 000000 104014
9116 065573 000000 105110
9117 065574 000000 106014
9118 065575 000000 106324
9119 065576 000000 107014
9120 065577 000000 107324 EXP PTTF4+14,PTTF5+14,PTTF6+14,PTTF7+14,PTTF10+14,PTTF11+14
9121 065600 000000 110014
9122 065601 000000 110324
9123 065602 000000 111014
9124 065603 000000 111324
9125 065604 000000 112014
9126 065605 000000 112324 EXP PTTF12+14,PTTF13+14,PTTF14+14,PTTF15+14,PTTF16+14,PTTF17+14
9127 065606 000000 113014
9128 065607 000000 113324
9129 065610 000000 114014
9130 065611 000000 114324
9131 065612 000000 115014
9132
9133 065613 000000 075020 EXP QUNKF0+20,QUNKF1+20,QUNKF2+20,QUNKF3+20,QUNKF4+20,QUNKF5+20
9134 065614 000000 076020
9135 065615 000000 077020
9136 065616 000000 100020
9137 065617 000000 101020
9138 065620 000000 102020
9139 065621 000000 103020 EXP QUNKF6+20,QUNKF7+20,PTTF0+20,PTTF1+20,PTTF2+20,PTTF3+20
9140 065622 000000 104020
9141 065623 000000 105114
9142 065624 000000 106020
9143 065625 000000 106330
9144 065626 000000 107020
9145 065627 000000 107330 EXP PTTF4+20,PTTF5+20,PTTF6+20,PTTF7+20,PTTF10+20,PTTF11+20
9146 065630 000000 110020
9147 065631 000000 110330
9148 065632 000000 111020
9149 065633 000000 111330
9150 065634 000000 112020
9151 065635 000000 112330 EXP PTTF12+20,PTTF13+20,PTTF14+20,PTTF15+20,PTTF16+20,PTTF17+20
9152 065636 000000 113020
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 207-6
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0376
9153 065637 000000 113330
9154 065640 000000 114020
9155 065641 000000 114330
9156 065642 000000 115020
9157 065643 000000 072030 EXP PCB+30,PCB+31
9158 065644 000000 072031
9159 065645 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 208
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0377
9160
9161 ;#********************************************************************
9162 ;* TIDLE - Start the port and wait for IDLE bit to set in CSR
9163 ;
9164 ; Return: +1 - Error - never reached idle loop
9165 ; +2 - Succeeded
9166 ;#********************************************************************
9167
9168 065646 261 17 0 00 000000 TIDLE: RPUT (0,1,2) ; save AC's
9169
9170 065651 260 17 0 00 064672* GO IPACLR ; clear port
9171
9172 ; Set up initial CCW list
9173
9174 065652 260 17 0 00 033772* GO CHINIT ; initialize software
9175
9176 ; Start it up
9177
9178 065653 400 01 0 00 000000 SETZ 1, ; clear data
9179 065654 260 17 0 00 064453* GO LDRAR ; clear RAR contents
9180 065655 201 01 0 00 000010 MOVEI 1,MPRUN ; get 'MPRun' bit
9181 065656 336 00 0 00 030037 SKIPN USER ; user mode?
9182 065657 660 01 0 00 000004 TRO 1,4 ; no - set PIA bits
9183 065660 260 17 0 00 044315* GO LDCSR ; start up the port
9184 065661 005 00 0 00 000144 DELAY ^D100 ; wait of 100 milliseconds
9185 065662 260 17 0 00 042337* GO RDCSR ; read CSR register
9186 065663 254 00 0 00 065666 JRST TIDLEE ; error - exit
9187 065664 602 01 0 00 000010 TRNE 1,MPRUN ; still running?
9188 065665 350 00 0 17 777775 AOS -3(P) ; yes - set up proper return
9189 065666 262 17 0 00 000002 TIDLEE: RGET (2,1,0) ; restore AC's
9190
9191 065671 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 209
DFNIA1 MAC 18-Feb-84 20:30 NI Initialization Routines SEQ 0378
9192
9193 ;#********************************************************************
9194 ;* RDADDR - Read NI physical address register (ROM)
9195 ;#********************************************************************
9196
9197 065672 261 17 0 00 000000 RDADDR: RPUT (0,1,2) ; save AC's
9198
9199 065675 201 02 0 00 000007 MOVEI 2,7 ; initialize address
9200
9201 065676 201 01 0 00 000005 RDADD0: MOVEI 1,5 ; set up to write address
9202 065677 350 00 0 00 000002 AOS 2 ; point to next address
9203 065700 260 17 0 00 040126 GO WRTPLI ; set up to read physical addr register
9204 065701 260 17 0 00 040054 GO RDBF ; read byte
9205 XCT [DPB 1,[POINT 8,SADDR,31]
9206 DPB 1,[POINT 8,SADDR,23]
9207 DPB 1,[POINT 8,SADDR,15]
9208 DPB 1,[POINT 8,SADDR,7]
9209 DPB 1,[POINT 8,SADDR+1,31]
9210 065702 256 00 0 02 130610 DPB 1,[POINT 8,SADDR+1,23]]-10(2)
9211 065703 305 02 0 00 000015 CAIGE 2,15 ; done yet?
9212 065704 254 00 0 00 065676 JRST RDADD0 ; no - loop till done
9213
9214 065705 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
9215
9216 065710 263 17 0 00 000000 RTN ; return
9217
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 210
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0379
9218 SUBTTL Packet Handling Routines
9219
9220 ;#********************************************************************
9221 ; Routines for building packets, etc:
9222 ;
9223 ; BPACK - Build a packet
9224 ; ITEXT - get text length + text
9225 ; ICRC - get text len + text + CRC
9226 ; IREGW - Set up to write a register
9227 ; IREGR - Set up to read a register
9228 ;
9229 ; RWAIT - Wait for a response (by CSR bit 'RspQAvail' bit being set.
9230 ; INSQUE - Insert a packet into a queue
9231 ; CHKRSP - Check if a response queue entry
9232 ; CHKINT - Check/set up interlock for queue
9233 ; CONVIR - Convert physical address to virtual
9234 ; GETQUE - Remove a queue entry from the beginning of a queue
9235 ; PUTQUE - Insert a queue entry on the end of a queue
9236 ; SHUTRQ - Turn off RESQAV bit in CSR register
9237 ;
9238 ; Arguments: OP - Contains the op code
9239 ; TFMFLG - Format flag (0-COMPAT,1-HIDEN)
9240 ; TBSDFL - BSD style datagram flag (0-no,1-yes)
9241 ; TRSFLG - Response packet is requested flag (0-no,1-yes)
9242 ; TPDFLG - Pad flag (0-no,1-yes)
9243 ; TDEST - Destination address
9244 ; TBYTE - Length of text portion (in bytes)
9245 ; TPAT - Data pattern
9246 ; TREGN - Register number (to read or write)
9247 ; TREGD - Register data (read or written)
9248 ;#********************************************************************
9249
9250 065711 000000 000000 TFMFLG: 0 ; format flag (0-COMPAT,1-HIDEN)
9251 065712 000000 000000 TBSDFL: 0 ; BSD style flag (0-no,1-yes)
9252 065713 000000 000000 TRSFLG: 0 ; response packet requested flag (0-no,1-yes)
9253 065714 000000 000000 TPDFLG: 0 ; pad flag
9254
9255 065715 000000 000000 TDEST: 0 ; destination address
9256 065716 000000 000000 0
9257
9258 065717 000000 000000 TPTTVL: 0 ; PTT value
9259
9260 065720 000000 000000 TBYTE: 0 ; length of text portion (in bytes)
9261 065721 000000 000000 TWORD: 0 ; calculated text length (in words)
9262 065722 000000 000000 TPAT: 0 ; data pattern
9263 065723 000000 000000 TREGN: 0 ; register number (to read or write)
9264 065724 000000 000000 TREGD: 0 ; register data (read or written)
9265
9266 065725 000000 000000 TAMC: 0 ; AMC bit
9267 065726 000000 000000 TH4000: 0 ; H4000 mode
9268 065727 000000 000000 TPRMSC: 0 ; PRMSC bit
9269 065730 000000 000000 TRETRY: 0 ; retry count
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 211
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0380
9270
9271 ;#********************************************************************
9272 ;* BPACK - Build a packet
9273 ;#********************************************************************
9274
9275 065731 476 00 0 00 134164' BPACKN: SETOM INHCRC# ; set 'inhibit CRC calc' flag
9276 065732 334 00 0 00 000000 SKIPA ; continue
9277 065733 402 00 0 00 134164' BPACK: SETZM INHCRC ; clear 'inhibit CRC calc' flag
9278 065734 261 17 0 00 000000 RPUT (0,1,2,3,4) ; save AC's
9279
9280
9281 ; Initialize packet to 0's
9282
9283 065741 402 00 0 00 072114 SETZM PACKET ; clear first word
9284 065742 200 00 0 00 127177 MOVE [PACKET,,PACKET+1] ; build BLT pointer
9285 065743 251 00 0 00 072733 BLT PACKET+^D399 ; clear the packet buffer
9286
9287 ; Insert flags
9288
9289 065744 400 02 0 00 000000 SETZ 2, ; initialize flags
9290 065745 332 00 0 00 065713 SKIPE TRSFLG ; always generate response?
9291 065746 660 02 0 00 000001 TRO 2,1 ; yes - set response flag
9292 065747 302 11 0 00 000001 CAIE OP,DGSNT ; datagram?
9293 065750 254 00 0 00 065763 JRST BPACK0 ; no - continue
9294 065751 336 00 0 00 134164' SKIPN INHCRC ; inhibit CRC?
9295 065752 660 02 0 00 000100 TRO 2,100 ; no - set 'CRC included' flag
9296 065753 332 00 0 00 065712 SKIPE TBSDFL ; BSD style datagram?
9297 065754 336 00 0 00 065711 SKIPN TFMFLG ; yes - HIDEN format?
9298 065755 334 00 0 00 000000 SKIPA ; no - continue
9299 065756 660 02 0 00 000200 TRO 2,200 ; yes - set HIDEN flag
9300 065757 332 00 0 00 065712 SKIPE TBSDFL ; BSD style datagram?
9301 065760 660 02 0 00 000010 TRO 2,10 ; yes - set the flag
9302 065761 332 00 0 00 065714 SKIPE TPDFLG ; pad flag set?
9303 065762 660 02 0 00 000040 TRO 2,40 ; yes - set PAD bit
9304 065763 137 02 0 00 127200 BPACK0: DPB 2,[POINT 8,PACKET+3,15] ; store in packet
9305
9306 ; Insert OP code
9307
9308 065764 260 17 0 00 070207 GO DECOPC ; decode op code
9309 JRST [TMSGC <? Illegal op code specified - >
9310 MOVE OP
9311 PNTOCS
9312 065765 254 00 0 00 130635 JRST BPACKX]
9313 065766 137 11 0 00 127201 DPB OP,[POINT 8,PACKET+3,23]; insert op code
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 212
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0381
9314
9315 ; Build rest of packet
9316
9317 XCT [GO BPAK1 ; 1-SNDDG
9318 JFCL ; 2-LDMCAT
9319 JFCL ; 3-LDPTT
9320 GO BPAK4 ; 4-RCCNT
9321 GO BPAK6 ; 6-WRPLI
9322 GO BPAK7 ; 7-RDPLI
9323 JFCL ; 10-RDNSA
9324 GO BPAK11 ; 11-WRNSA
9325 065767 256 00 0 01 130641 JFCL](1)
9326
9327 ; Exit
9328
9329 065770 262 17 0 00 000004 BPACKX: RGET (4,3,2,1,0) ; restore AC's
9330
9331 065775 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 213
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0382
9332
9333 ;#********************************************************************
9334 ;* BPAK1 - Build packet for DGSNT command
9335 ;#********************************************************************
9336
9337 065776 402 00 0 00 000000* BPAK1: SETZM CRCSAV ; clear saved CRC data
9338 065777 476 00 0 00 000000* SETOM CRCOFF ; init CRC table offset
9339 066000 200 00 0 00 065717 MOVE TPTTVL ; get PTT value
9340 066001 137 00 0 00 130652 DPB [POINT 16,PACKET+5,31] ; insert in packet
9341 066002 201 00 0 00 105071 MOVEI PTTFQ+1 ; get header address
9342 066003 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
9343 066004 257 00 0 00 105071 MAP PTTFQ+1 ; no - map to physical
9344 066005 621 00 0 00 777000 TLZ 777000 ; get rid of extraneous bits
9345 066006 202 00 0 00 072122 MOVEM PACKET+6 ; insert in packet
9346 066007 120 00 0 00 065715 DMOVE TDEST ; get destination address
9347 066010 124 00 0 00 072123 DMOVEM PACKET+7 ; save it
9348 066011 332 00 0 00 065712 SKIPE TBSDFL ; BSD style datagram?
9349 066012 254 00 0 00 066024 JRST BPAK1A ; yes - go handle
9350
9351 ; Non BSD style format
9352
9353 066013 201 01 0 00 072125 MOVEI 1,PACKET+11 ; address of text
9354 066014 260 17 0 00 066211 GO ITEXT ; insert text
9355 066015 200 00 0 00 065720 MOVE TBYTE ; get byte count
9356 066016 336 00 0 00 134164' SKIPN INHCRC ; inhibit CRC?
9357 066017 271 00 0 00 000004 ADDI 4 ; no - add 4 more bytes for CRC
9358 066020 202 00 0 00 072120 MOVEM PACKET+4 ; save it
9359 066021 201 01 0 00 072125 MOVEI 1,PACKET+11 ; address of text
9360 066022 260 17 0 00 066250 GO ICRC ; calculate CRC
9361 066023 263 17 0 00 000000 RTN ; return
9362
9363 ; BSD style format
9364
9365 066024 201 00 0 00 072130 BPAK1A: MOVEI PACKET+14 ; get base address
9366 066025 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
9367 066026 257 00 0 00 072130 MAP PACKET+14 ; no - map to physical
9368 066027 621 00 0 00 777000 TLZ 777000 ; get rid of extraneous bits
9369 066030 202 00 0 00 072125 MOVEM PACKET+11 ; save it
9370 066031 201 00 0 00 072134 MOVEI PACKET+20 ; get segment base address
9371 066032 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
9372 066033 257 00 0 00 072134 MAP PACKET+20 ; no - map to physical
9373 066034 621 00 0 00 777000 TLZ 777000 ; get rid of extraneous bits
9374 066035 202 00 0 00 072130 MOVEM PACKET+14 ; save it
9375 066036 332 01 0 00 065711 SKIPE 1,TFMFLG ; get format flag
9376 066037 201 01 0 00 000001 MOVEI 1,1 ; get HIDEN bits
9377 066040 137 01 0 00 130653 DPB 1,[POINT 1,PACKET+14,6] ; save packing mode bit
9378 066041 201 01 0 00 072134 MOVEI 1,PACKET+20 ; address of text
9379 066042 260 17 0 00 066211 GO ITEXT ; insert text
9380 066043 200 00 0 00 065720 MOVE TBYTE ; get byte count
9381 066044 336 00 0 00 134164' SKIPN INHCRC ; inhibit CRC?
9382 066045 271 00 0 00 000004 ADDI 4 ; no - add 4 more bytes for CRC
9383 066046 202 00 0 00 072132 MOVEM PACKET+16 ; save it
9384 066047 202 00 0 00 072120 MOVEM PACKET+4 ; save it
9385 066050 201 01 0 00 072134 MOVEI 1,PACKET+20 ; address of text
9386 066051 260 17 0 00 066250 GO ICRC ; calculate CRC
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 213-1
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0383
9387 066052 263 17 0 00 000000 RTN ; return
9388
9389
9390 ;#********************************************************************
9391 ;* BPAK4 - Build packet for RCCNT command
9392 ;#********************************************************************
9393
9394 066053 332 00 0 00 115611 BPAK4: SKIPE PMODE ; normal test?
9395 066054 263 17 0 00 000000 RTN ; yes - exit
9396 066055 476 00 0 00 040510* SETOM ARGFLG ; initialize to accept arguments
9397 066056 260 17 0 00 035723* GO CLRBUF ; clear input buffer
9398 066057 400 01 0 00 000000 SETZ 1, ; clear AC1
9399 066060 200 00 0 00 130660 MOVE [FMSGC <Clear counters?>]
9400 066061 260 17 0 00 000000* GO TTYYES ; ask question
9401 066062 334 00 0 00 000000 SKIPA ; no - continue
9402 066063 200 01 0 00 130661 MOVE 1,[1B14] ; yes - get a 1 for clear counters
9403 066064 436 01 0 00 072117 IORM 1,PACKET+3 ; save data
9404 066065 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 214
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0384
9405
9406 ;#********************************************************************
9407 ;* BPAK6 - Build packet for WRPLI command
9408 ;#********************************************************************
9409
9410 066066 332 00 0 00 115611 BPAK6: SKIPE PMODE ; normal test?
9411 066067 254 00 0 00 066107 JRST BPAK6B ; yes - continue
9412 066070 476 00 0 00 066055* BPAK6A: SETOM ARGFLG ; initialize to accept arguments
9413 066071 260 17 0 00 066056* GO CLRBUF ; clear input buffer
9414 066072 037 01 0 00 130662 FMSGC <Register number,data? >
9415 MOVE 1,[FMSGCD <Register n,data, where n:
9416 1-RcXmBf 5-RRcAtn 11-WXmtBf
9417 2-WFBLst 6-EnaLnk 12-WtReg
9418 3-WRBfAd 7-DsaLnk 13-ClrRBf
9419 066073 200 01 0 00 130725 4-XmtAct 10-WtAdrs>]
9420 066074 260 17 0 00 041534* GO .OARG ; get argument
9421 JRST [GO FIOFF ; error - shut off file input
9422 066075 254 00 0 00 130726 JRST BPAK6A] ; and exit
9423 JRST [GO FIOFF ; missing argument - shut off file
9424 066076 254 00 0 00 117055 RTN] ; input and exit
9425 066077 200 00 0 00 042074* MOVE ARGUM ; get argument
9426 066100 202 00 0 00 065723 MOVEM TREGN ; save it
9427 MOVN 1,[FMSGCD <Register n,data, where n:
9428 1-RcXmBf 5-RRcAtn 11-WXmtBf
9429 2-WFBLst 6-EnaLnk 12-WtReg
9430 3-WRBfAd 7-DsaLnk 13-ClrRBf
9431 066101 210 01 0 00 130725 4-XmtAct 10-WtAdrs>]
9432 066102 260 17 0 00 066074* GO .OARG ; get argument
9433 JRST [GO FIOFF ; error - shut off file input
9434 066103 254 00 0 00 130726 JRST BPAK6A] ; and exit
9435 JRST [GO FIOFF ; missing argument - shut off file
9436 066104 254 00 0 00 117055 RTN] ; input and exit
9437 066105 200 00 0 00 066077* MOVE ARGUM ; get argument
9438 066106 202 00 0 00 065724 MOVEM TREGD ; save it
9439 066107 402 00 0 00 072120 BPAK6B: SETZM PACKET+4 ; clear word
9440 066110 200 00 0 00 065723 MOVE TREGN ; get register number
9441 066111 137 00 0 00 130730 DPB [POINT 4,PACKET+4,23] ; store in packet
9442 066112 200 00 0 00 065724 MOVE TREGD ; get register data
9443 066113 137 00 0 00 130731 DPB [POINT 8,PACKET+4,35] ; store in packet
9444 066114 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 215
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0385
9445
9446 ;#********************************************************************
9447 ;* BPAK7 - Build packet for RDPLI command
9448 ;#********************************************************************
9449
9450 066115 332 00 0 00 115611 BPAK7: SKIPE PMODE ; normal test?
9451 066116 254 00 0 00 066130 JRST BPAK7B ; yes - continue
9452 066117 476 00 0 00 066070* BPAK7A: SETOM ARGFLG ; initialize to accept arguments
9453 066120 260 17 0 00 066071* GO CLRBUF ; clear input buffer
9454 066121 037 01 0 00 130732 FMSGC <Register number? >
9455 MOVN 1,[FMSGCD <Register number n, where n:
9456 1-RdReg 4-RdXSta
9457 2-RRecBf 5-RdRSta
9458 066122 210 01 0 00 130757 3-RUBLst>]
9459 066123 260 17 0 00 066102* GO .OARG ; get argument
9460 JRST [GO FIOFF ; error - shut off file input
9461 066124 254 00 0 00 130760 JRST BPAK7A] ; and exit
9462 JRST [GO FIOFF ; missing argument - shut off file
9463 066125 254 00 0 00 117055 RTN] ; input and exit
9464 066126 200 00 0 00 066105* MOVE ARGUM ; get argument
9465 066127 202 00 0 00 065723 MOVEM TREGN ; save it
9466 066130 200 00 0 00 065723 BPAK7B: MOVE TREGN ; get register number
9467 066131 402 00 0 00 072120 SETZM PACKET+4 ; clear word
9468 066132 137 00 0 00 130730 DPB [POINT 4,PACKET+4,23] ; store in packet
9469 066133 263 17 0 00 000000 RTN ; return
9470
9471
9472 ;#********************************************************************
9473 ;* BPAK11 - Build packet for WRNSA command
9474 ;#********************************************************************
9475
9476 066134 332 00 0 00 115611 BPAK11: SKIPE PMODE ; normal test?
9477 066135 254 00 0 00 066173 JRST BPK11B ; yes - continue
9478 066136 476 00 0 00 066117* BPK11A: SETOM ARGFLG ; initialize to accept arguments
9479 066137 402 00 0 00 065725 SETZM TAMC
9480 066140 402 00 0 00 065726 SETZM TH4000
9481 066141 402 00 0 00 065727 SETZM TPRMSC
9482 066142 402 00 0 00 065730 SETZM TRETRY
9483 066143 260 17 0 00 066120* GO CLRBUF ; clear input buffer
9484 066144 037 01 0 00 130762 FMSGC <AMC,H4000 Mode,PRMSC Mode,#retries? >
9485
9486 066145 200 01 0 00 131005 MOVE 1,[FMSGCD <AMC,H4000 Mode,PRMSC Mode,#retries (0-Off,1-On)>]
9487 066146 260 17 0 00 066123* GO .OARG ; get argument
9488 JRST [GO FIOFF ; error - shut off file input
9489 066147 254 00 0 00 131006 JRST BPK11A] ; and exit
9490 066150 254 00 0 00 066173 JRST BPK11B ; no more arguments - continue
9491 066151 200 00 0 00 066126* MOVE ARGUM ; get argument
9492 066152 202 00 0 00 065725 MOVEM TAMC ; save it
9493
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 216
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0386
9494 066153 260 17 0 00 066146* GO .OARG ; get argument
9495 JRST [GO FIOFF ; error - shut off file input
9496 066154 254 00 0 00 131006 JRST BPK11A] ; and exit
9497 066155 254 00 0 00 066173 JRST BPK11B ; no more arguments - continue
9498 066156 200 00 0 00 066151* MOVE ARGUM ; get argument
9499 066157 202 00 0 00 065726 MOVEM TH4000 ; save it
9500
9501 066160 260 17 0 00 066153* GO .OARG ; get argument
9502 JRST [GO FIOFF ; error - shut off file input
9503 066161 254 00 0 00 131006 JRST BPK11A] ; and exit
9504 066162 254 00 0 00 066173 JRST BPK11B ; no more arguments - continue
9505 066163 200 00 0 00 066156* MOVE ARGUM ; get argument
9506 066164 202 00 0 00 065727 MOVEM TPRMSC ; save it
9507
9508 066165 210 01 0 00 131005 MOVN 1,[FMSGCD <AMC,H4000 Mode,PRMSC Mode,#retries (0-Off,1-On)>]
9509 066166 260 17 0 00 066160* GO .OARG ; get argument
9510 JRST [GO FIOFF ; error - shut off file input
9511 066167 254 00 0 00 131006 JRST BPK11A] ; and exit
9512 066170 254 00 0 00 066173 JRST BPK11B ; no more arguments - continue
9513 066171 200 00 0 00 066163* MOVE ARGUM ; get argument
9514 066172 202 00 0 00 065730 MOVEM TRETRY ; save it
9515
9516 ; Build the packet now
9517
9518 066173 120 00 0 00 033704 BPK11B: DMOVE SADDR ; get our station address
9519 066174 124 00 0 00 072120 DMOVEM PACKET+4 ; save it
9520 066175 402 00 0 00 072122 SETZM PACKET+6 ; clear special bits
9521 066176 200 00 0 00 065725 MOVE TAMC ; get AMC bit
9522 066177 137 00 0 00 131010 DPB [POINT 1,PACKET+6,33] ; save it
9523 066200 200 00 0 00 065726 MOVE TH4000 ; get TH4000 bit
9524 066201 137 00 0 00 131011 DPB [POINT 1,PACKET+6,34] ; save it
9525 066202 200 00 0 00 065727 MOVE TPRMSC ; get PRMSC bit
9526 066203 137 00 0 00 131012 DPB [POINT 1,PACKET+6,35] ; save it
9527 066204 201 00 0 00 000001 MOVEI 1 ; get ACRC bit (force it always)
9528 066205 137 00 0 00 131013 DPB [POINT 1,PACKET+6,32] ; save it
9529 066206 200 00 0 00 065730 MOVE TRETRY ; get retry count allowed
9530 066207 202 00 0 00 072123 MOVEM PACKET+7 ; save it
9531 066210 263 17 0 00 000000 RTN
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 217
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0387
9532
9533 ;#********************************************************************
9534 ;* ITEXT - get text length + text
9535 ;
9536 ; Given: AC1 - Text starting address
9537 ; TBYTE - Byte count
9538 ; TFMFLG - 0-Compat / 1-HIDEN
9539 ;#********************************************************************
9540
9541 ; First ensure byte count and word counts are in range ...
9542
9543 066211 261 17 0 00 000000 ITEXT: RPUT (0,1,2,3) ; save AC's
9544
9545 066215 336 00 0 00 065720 SKIPN TBYTE ; byte count given?
9546 JRST [MOVE TWORD ; no - get word count
9547 066216 254 00 0 00 131014 JRST ITEXT0] ; and continue
9548 066217 200 00 0 00 065720 MOVE TBYTE ; get length in bytes
9549 066220 332 00 0 00 065711 SKIPE TFMFLG ; HIDEN format?
9550 JRST [LSH 1 ; yes - multiply by 2 and
9551 IDIVI 9 ; divide by 9 to calculate
9552 SKIPE 1 ; word count - and ensure
9553 AOS ; that it is an even number
9554 TRZ 1 ; of words
9555 066221 254 00 0 00 131016 JRST ITEXT0]
9556 066222 231 00 0 00 000004 IDIVI 4 ; COMPAT - calculate word count
9557 066223 332 00 0 00 000001 SKIPE 1 ; remainder?
9558 066224 350 00 0 00 000000 AOS ; yes - increment word count
9559 066225 202 00 0 00 065721 ITEXT0: MOVEM TWORD ; save word count
9560 066226 332 00 0 00 065711 SKIPE TFMFLG ; HIDEN format?
9561 GO [LSH -1 ; yes - divide by 2 and
9562 IMULI 9 ; multiply by 9 to calculate
9563 066227 260 17 0 00 131024 RTN] ; byte count
9564 066230 336 00 0 00 065711 SKIPN TFMFLG ; HIDEN format?
9565 066231 242 00 0 00 000002 LSH 2 ; no - calculate bytes
9566 066232 202 00 0 00 065720 MOVEM TBYTE ; save byte count
9567
9568 ; Now insert data pattern
9569
9570 066233 200 14 0 00 065722 MOVE PAT,TPAT ; get data pattern
9571 066234 200 02 0 00 065721 MOVE 2,TWORD ; word count
9572 066235 303 02 0 00 000574 CAILE 2,^D380 ; word count in proper range?
9573 066236 201 00 0 00 000574 MOVEI ^D380 ; no - limit to maximum length
9574 066237 200 03 0 17 777776 MOVE 3,-2(P) ; buffer address
9575 066240 260 17 0 00 000000* GO BUFGEN ; generate buffer contents
9576
9577 ; Exit after testing for additional routine
9578
9579 066241 332 00 0 00 134254' SKIPE TXADDL ; routine specified for addl data?
9580 066242 260 17 1 00 134254' GO @TXADDL ; yes - call it
9581 066243 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
9582
9583 066247 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 218
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0388
9584
9585 ;#********************************************************************
9586 ;* ICRC - Calculate CRC
9587 ;
9588 ; Given: AC1 - Address of text data
9589 ;#********************************************************************
9590
9591 066250 332 00 0 00 134164' ICRC: SKIPE INHCRC ; inhibit CRC calculation?
9592 066251 263 17 0 00 000000 RTN ; yes - return
9593 066252 261 17 0 00 000001 RPUT (1,2,3,4,5,6,7,10) ; no - save AC's
9594
9595 066262 332 04 0 00 065776* SKIPE 4,CRCSAV ; get precalculated CRC - valid?
9596 JRST [ADD 1,TWORD ; yes - save it and exit
9597 MOVEM 4,(1)
9598 066263 254 00 0 00 131027 JRST ICRCY]
9599
9600 ; Calculate CRC of destination
9601
9602 066264 474 04 0 00 000000 SETO 4, ; initial CRC value
9603 066265 135 02 0 00 131032 LDB 2,[POINT 8,PACKET+7,31] ; get byte 0
9604 066266 260 17 0 00 066443 GO CRCCAL ; calculate
9605 066267 135 02 0 00 131033 LDB 2,[POINT 8,PACKET+7,23] ; get byte 1
9606 066270 260 17 0 00 066443 GO CRCCAL ; calculate
9607 066271 135 02 0 00 131034 LDB 2,[POINT 8,PACKET+7,15] ; get byte 2
9608 066272 260 17 0 00 066443 GO CRCCAL ; calculate
9609 066273 135 02 0 00 131035 LDB 2,[POINT 8,PACKET+7,7] ; get byte 3
9610 066274 260 17 0 00 066443 GO CRCCAL ; calculate
9611 066275 135 02 0 00 131036 LDB 2,[POINT 8,PACKET+10,31]; get byte 4
9612 066276 260 17 0 00 066443 GO CRCCAL ; calculate
9613 066277 135 02 0 00 131037 LDB 2,[POINT 8,PACKET+10,23]; get byte 5
9614 066300 260 17 0 00 066443 GO CRCCAL ; calculate
9615
9616 ; Calculate CRC of source
9617
9618 066301 135 02 0 00 123053 LDB 2,[POINT 8,SADDR,31] ; get byte 0
9619 066302 260 17 0 00 066443 GO CRCCAL ; calculate
9620 066303 135 02 0 00 123054 LDB 2,[POINT 8,SADDR,23] ; get byte 1
9621 066304 260 17 0 00 066443 GO CRCCAL ; calculate
9622 066305 135 02 0 00 123055 LDB 2,[POINT 8,SADDR,15] ; get byte 2
9623 066306 260 17 0 00 066443 GO CRCCAL ; calculate
9624 066307 135 02 0 00 123056 LDB 2,[POINT 8,SADDR,7] ; get byte 3
9625 066310 260 17 0 00 066443 GO CRCCAL ; calculate
9626 066311 135 02 0 00 123057 LDB 2,[POINT 8,SADDR+1,31] ; get byte 4
9627 066312 260 17 0 00 066443 GO CRCCAL ; calculate
9628 066313 135 02 0 00 123060 LDB 2,[POINT 8,SADDR+1,23] ; get byte 5
9629 066314 260 17 0 00 066443 GO CRCCAL ; calculate
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 219
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0389
9630
9631 ; Calculate CRC of protocol type bytes
9632
9633 066315 135 02 0 00 131040 LDB 2,[POINT 8,PACKET+5,31] ; get type byte 1
9634 066316 260 17 0 00 066443 GO CRCCAL ; calculate
9635 066317 135 02 0 00 131041 LDB 2,[POINT 8,PACKET+5,23] ; get type byte 2
9636 066320 260 17 0 00 066443 GO CRCCAL ; calculate
9637
9638 ; Include 2 length bytes if pad flag is set
9639
9640 066321 336 00 0 00 065714 SKIPN TPDFLG ; pad flag set?
9641 066322 254 00 0 00 066333 JRST ICRC0 ; no - continue
9642 066323 201 00 0 00 000004 MOVEI 4 ; ensure the length includes
9643 066324 272 00 0 00 065720 ADDM TBYTE ; 4 bytes for CRC
9644 066325 135 02 0 00 131042 LDB 2,[POINT 8,TBYTE,35] ; get low order length
9645 066326 260 17 0 00 066443 GO CRCCAL ; calculate
9646 066327 135 02 0 00 131043 LDB 2,[POINT 8,TBYTE,27] ; get high order length
9647 066330 260 17 0 00 066443 GO CRCCAL ; calculate
9648 066331 201 00 0 00 000004 MOVEI 4 ; restore the length
9649 066332 276 00 0 00 065720 SUBM TBYTE ; ...
9650
9651 ; Calculate CRC of data, depending on packet format
9652
9653 066333 200 06 0 17 777771 ICRC0: MOVE 6,-7(P) ; get address of 1st word
9654 066334 200 07 0 00 065721 MOVE 7,TWORD ; get word count
9655 066335 332 00 0 00 065711 SKIPE TFMFLG ; HIDEN format?
9656 066336 254 00 0 00 066354 JRST ICRC2 ; yes - go handle it
9657
9658 ; Loop through all the bytes (COMPAT mode)
9659
9660 066337 322 07 0 00 066410 ICRC1: JUMPE 7,ICRC3 ; exit if already done
9661 066340 200 10 0 06 000000 MOVE 10,(6) ; get data word
9662 066341 135 02 0 00 131044 LDB 2,[POINT 8,10,7] ; get byte 1
9663 066342 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9664 066343 135 02 0 00 131045 LDB 2,[POINT 8,10,15] ; get byte 2
9665 066344 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9666 066345 135 02 0 00 131046 LDB 2,[POINT 8,10,23] ; get byte 3
9667 066346 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9668 066347 135 02 0 00 131047 LDB 2,[POINT 8,10,31] ; get byte 4
9669 066350 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9670 066351 350 00 0 00 000006 AOS 6 ; point to next word
9671 066352 367 07 0 00 066337 SOJG 7,ICRC1 ; loop till done
9672 066353 254 00 0 00 066410 JRST ICRC3 ; continue
9673
9674 ; Loop through all the bytes (HIDEN mode)
9675
9676 066354 322 07 0 00 066410 ICRC2: JUMPE 7,ICRC3 ; exit if already done
9677 066355 200 10 0 06 000000 MOVE 10,(6) ; get 1st data word
9678 066356 135 02 0 00 131044 LDB 2,[POINT 8,10,7] ; get byte 1
9679 066357 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9680 066360 135 02 0 00 131045 LDB 2,[POINT 8,10,15] ; get byte 2
9681 066361 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 220
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0390
9682 066362 135 02 0 00 131046 LDB 2,[POINT 8,10,23] ; get byte 3
9683 066363 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9684 066364 135 02 0 00 131047 LDB 2,[POINT 8,10,31] ; get byte 4
9685 066365 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9686 066366 135 02 0 00 131050 LDB 2,[POINT 4,10,35] ; get byte 5 (1st half)
9687 066367 242 02 0 00 000004 LSH 2,4 ; position properly
9688 066370 350 00 0 00 000006 AOS 6 ; point to next word
9689 066371 200 10 0 06 000000 MOVE 10,(6) ; get 2nd data word
9690 066372 370 00 0 00 000007 SOS 7 ; decrement word count
9691 066373 135 00 0 00 131051 LDB [POINT 4,10,3] ; get byte 5 (2nd half)
9692 066374 434 02 0 00 000000 IOR 2,0 ; include with 1st half
9693 066375 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9694 066376 135 02 0 00 131052 LDB 2,[POINT 8,10,11] ; get byte 6
9695 066377 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9696 066400 135 02 0 00 131053 LDB 2,[POINT 8,10,19] ; get byte 7
9697 066401 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9698 066402 135 02 0 00 131054 LDB 2,[POINT 8,10,27] ; get byte 8
9699 066403 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9700 066404 135 02 0 00 131055 LDB 2,[POINT 8,10,35] ; get byte 9
9701 066405 260 17 0 00 066443 GO CRCCAL ; calculate for this byte
9702 066406 350 00 0 00 000006 AOS 6 ; point to next word
9703 066407 367 07 0 00 066354 SOJG 7,ICRC2 ; loop till done
9704
9705 ; Include 44 extra bytes if pad flag is set and length < 46 bytes
9706 ; (including CRC)
9707
9708 066410 336 00 0 00 065714 ICRC3: SKIPN TPDFLG ; pad flag set?
9709 066411 254 00 0 00 066424 JRST ICRCX ; no - continue
9710 066412 200 00 0 00 065720 MOVE TBYTE ; get byte count
9711 066413 301 00 0 00 000052 CAIL ^D42 ; less than 42 bytes?
9712 066414 254 00 0 00 066424 JRST ICRCX ; no - continue
9713 066415 261 17 0 00 000006 PUT 6 ; save AC6
9714 066416 201 06 0 00 000054 MOVEI 6,^D44 ; get additional bytes
9715 066417 400 02 0 00 000000 ICRC4: SETZ 2, ; get 0 byte
9716 066420 260 17 0 00 066443 GO CRCCAL ; calculate
9717 066421 367 06 0 00 066417 SOJG 6,ICRC4 ; loop till done
9718 066422 262 17 0 00 000006 GET 6 ; restore AC6
9719 066423 271 06 0 00 000013 ADDI 6,^D11 ; allow for an additional 11 words
9720
9721 ; Done - just do final XOR and save in text
9722
9723 066424 430 04 0 00 124130 ICRCX: XOR 4,[-1] ; final XOR
9724 066425 260 17 0 00 066457 GO CRCFIX ; swap bits properly
9725 066426 242 04 0 00 000004 LSH 4,4 ; position in bits 0-31
9726 066427 202 04 0 06 000000 MOVEM 4,(6) ; save in buffer
9727 066430 331 01 0 00 065777* SKIPL 1,CRCOFF ; get offset value
9728 066431 202 04 0 01 000000* MOVEM 4,CRCTAB(1) ; save CRC value
9729 066432 262 17 0 00 000010 ICRCY: RGET (10,7,6,5,4,3,2,1) ; restore AC's
9730
9731 066442 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 221
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0391
9732
9733 ;#********************************************************************
9734 ;* CRCCAL - Calculate CRC (cumulative) for 8 bits
9735 ;
9736 ; Given: AC2 - data byte Uses: AC1,AC3,AC5 without saving or
9737 ; AC4 - result restoring.
9738 ;
9739 ; Returns: AC4 - updated result
9740 ;#********************************************************************
9741
9742 066443 201 01 0 00 000010 CRCCAL: MOVEI 1,8 ; do this 8 times
9743 066444 400 03 0 00 000000 SETZ 3, ; clear AC3
9744 066445 246 02 0 00 777777 CRCCA0: LSHC 2,-1 ; get a bit (into AC3)
9745 066446 135 05 0 00 131056 LDB 5,[POINT 1,3,0] ; get data bit
9746 066447 602 04 0 00 000001 TRNE 4,1 ; leftmost bit set?
9747 066450 431 05 0 00 000001 XORI 5,1 ; yes - XOR with data bit
9748 066451 242 04 0 00 777777 LSH 4,-1 ; right shift 1 bit
9749 066452 332 00 0 00 000005 SKIPE 5 ; data bit result non-zero?
9750 066453 430 04 0 00 131057 XOR 4,[15556,,101440] ; yes - XOR 1's with CRC
9751 066454 137 05 0 00 131060 DPB 5,[POINT 1,4,4] ; also insert result bit
9752 066455 367 01 0 00 066445 SOJG 1,CRCCA0 ; loop till done
9753 066456 263 17 0 00 000000 RTN ; return
9754
9755
9756 ;#********************************************************************
9757 ;* CRCFIX - Adjust properly
9758 ;#********************************************************************
9759
9760 066457 261 17 0 00 000002 CRCFIX: RPUT (2,3) ; save AC's
9761
9762 066461 400 03 0 00 000000 SETZ 3, ; clear result
9763 066462 135 02 0 00 131061 LDB 2,[POINT 8,4,11] ; get byte 1
9764 066463 137 02 0 00 131062 DPB 2,[POINT 8,3,35] ; save it
9765 066464 135 02 0 00 131063 LDB 2,[POINT 8,4,19] ; get byte 2
9766 066465 137 02 0 00 131064 DPB 2,[POINT 8,3,27] ; save it
9767 066466 135 02 0 00 131065 LDB 2,[POINT 8,4,27] ; get byte 3
9768 066467 137 02 0 00 131066 DPB 2,[POINT 8,3,19] ; save it
9769 066470 135 02 0 00 131067 LDB 2,[POINT 8,4,35] ; get byte 4
9770 066471 137 02 0 00 131070 DPB 2,[POINT 8,3,11] ; save it
9771 066472 200 04 0 00 000003 MOVE 4,3 ; get into AC4
9772 066473 262 17 0 00 000003 RGET (3,2) ; restore AC's
9773
9774 066475 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 222
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0392
9775
9776 ;#********************************************************************
9777 ;* RWAIT - Wait for a response (by CSR bit 'RspQAvail' bit being set.
9778 ;
9779 ; Return: +1 - Timeout after 1/2 second
9780 ; +2 - Ok
9781 ;#********************************************************************
9782
9783 066476 350 00 0 17 000000 RWAIT: AOS (P) ; setup ret+2
9784 066477 261 17 0 00 000000 RPUT (0,1,2) ; save AC's
9785
9786 066502 201 02 0 00 000012 MOVEI 2,^D10 ; check up to 10 times
9787 066503 260 17 0 00 065662* RWAIT0: GO RDCSR ; read CSR
9788 066504 255 00 0 00 000000 JFCL ; ignore error
9789 066505 602 01 0 00 000200 TRNE 1,RESQAV ; response queue available bit set?
9790 066506 254 00 0 00 066512 JRST RWAITX ; yes - exit
9791 066507 005 00 0 00 000001 DELAY 1 ; wait 1 millisecond
9792 066510 367 02 0 00 066503 SOJG 2,RWAIT0 ; no - loop till done
9793 066511 370 00 0 17 777775 SOS -3(P) ; failed, setup ret+1
9794 066512 262 17 0 00 000002 RWAITX: RGET (2,1,0) ; restore AC's
9795
9796 066515 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 223
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0393
9797
9798 ;#********************************************************************
9799 ;* CHKINT - Check/set up interlock for queue
9800 ;
9801 ; This routine tries to gain control of the specified queue. If it
9802 ; cannot, it returns with an error condition. If it can, it builds
9803 ; a list of entries in the queue, with the virtual address of the
9804 ; beginning of each queue entry. Other routines access the queue
9805 ; via the addresses given in the entry list.
9806 ;
9807 ; Only one queue can be dealt with at a time, since there is only
9808 ; one list of queue entries.
9809 ;
9810 ; Given: Q - Contains cmd queue number
9811 ;
9812 ; Return: +1 - Error, couldn't get access to queue in 1 second
9813 ; +2 - Ok
9814 ;#********************************************************************
9815
9816 066516 261 17 0 00 000000 CHKINT: RPUT (0,1,2,3) ; save AC's
9817
9818 066522 201 01 0 00 000001 MOVEI 1,1 ; set up a wait of 1 ms
9819 066523 332 00 0 00 030037 SKIPE USER ; user mode?
9820 066524 104 00 0 00 000167 DISMS ; yes - wait
9821 066525 402 00 0 00 066650 SETZM NUMENT ; clear entry count
9822 MOVE 1,[PCB+0 ; CmdQ
9823 PCB+4 ; RspQ
9824 PCB+10 ; UnkFQ
9825 066526 200 01 0 13 131071 PTTFQ](Q) ; PttFQ
9826 066527 201 02 0 00 000764 MOVEI 2,^D500 ; do this up to 500 times
9827 066530 356 00 0 01 000000 CHKIN0: AOSN (1) ; available yet?
9828 066531 254 00 0 00 066535 JRST CHKIN1 ; yes - continue
9829 066532 005 00 0 00 000001 DELAY 1 ; wait 1 millisecond
9830 066533 367 02 0 00 066530 SOJG 2,CHKIN0 ; loop till done
9831 066534 254 00 0 00 066556 JRST CHKINX ; exit
9832 066535 350 00 0 17 777774 CHKIN1: AOS -4(P) ; set up good return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 224
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0394
9833
9834 ; Now search through the queue and build a queue entry list
9835
9836 066536 350 00 0 00 000001 AOS 1 ; point to FLINK
9837 066537 201 00 0 01 000000 MOVEI (1) ; get address of FLINK of queue
9838 066540 202 00 0 00 066651 MOVEM TOPADR ; save it
9839 066541 201 02 0 00 066563 MOVEI 2,LENTRY ; next address in list
9840 066542 400 03 0 00 000000 SETZ 3, ; init last entry address
9841 066543 402 00 0 02 000000 CHKIN2: SETZM (2) ; set up end of list
9842 066544 200 01 0 01 000000 MOVE 1,(1) ; get FLINK address
9843 066545 260 17 0 00 066652 GO CONVIR ; convert to virtual
9844 066546 316 01 0 00 066651 CAMN 1,TOPADR ; points to start of list?
9845 066547 254 00 0 00 066555 JRST CHKIN3 ; yes - done
9846 066550 202 01 0 02 000000 MOVEM 1,(2) ; save address
9847 066551 202 01 0 00 000003 MOVEM 1,3 ; save for last entry address
9848 066552 350 00 0 00 000002 AOS 2 ; point to next list entry
9849 066553 350 00 0 00 066650 AOS NUMENT ; increment entry count
9850 066554 254 00 0 00 066543 JRST CHKIN2 ; loop till done
9851 066555 202 03 0 00 066647 CHKIN3: MOVEM 3,LASENT ; save it
9852
9853 ; Done - exit
9854
9855 066556 262 17 0 00 000003 CHKINX: RGET (3,2,1,0) ; restore AC's
9856
9857 066562 263 17 0 00 000000 RTN ; return
9858
9859 ; List of queue entries (ended with a zero)
9860
9861 066563 000000 000000 LENTRY: 0 ; address of PCB FLINK entry
9862 066564 BLOCK ^D50 ; up to 50 queue entries
9863 066646 000000 000000 0 ; end of list
9864 066647 000000 000000 LASENT: 0 ; last entry in list
9865 066650 000000 000000 NUMENT: 0 ; entry count
9866 066651 000000 000000 TOPADR: 0 ; address of FLINK in queue header
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 225
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0395
9867
9868 ;#********************************************************************
9869 ;* CONVIR - Convert physical address to virtual
9870 ;
9871 ; This routine searches through PHYTAB to find the physical address
9872 ; matching the one given here. Then the virtual address is gotten
9873 ; from the corresponding entry in VIRTAB.
9874 ;
9875 ; Given: AC1 - Contains a physical address
9876 ;
9877 ; Return: AC1 - Contains the virtual address
9878 ;#********************************************************************
9879
9880 066652 261 17 0 00 000000 CONVIR: RPUT (0,2) ; save AC's
9881
9882 066654 621 01 0 00 777700 TLZ 1,777700 ; clear all but address bits
9883 066655 474 02 0 00 000000 SETO 2, ; initialize address pointer
9884 066656 350 00 0 00 000002 CONVI0: AOS 2 ; point to next address
9885 066657 335 00 0 02 065470 SKIPGE ADRPHY(2) ; end of list?
9886 066660 254 00 0 00 066667 JRST CONVIE ; yes - error - go handle
9887 066661 312 01 0 02 065470 CAME 1,ADRPHY(2) ; address match?
9888 066662 254 00 0 00 066656 JRST CONVI0 ; no - loop till done
9889 066663 200 01 0 02 065312 CONVIX: MOVE 1,ADRVIR(2) ; yes - get virtual address
9890 066664 262 17 0 00 000002 RGET (2,0) ; restore AC's
9891
9892 066666 263 17 0 00 000000 RTN ; return
9893
9894 ; Unrecognized address
9895
9896 066667 037 00 0 00 131075 CONVIE: TMSGC <? PCB or queue entries are no longer valid>
9897 066670 037 00 0 00 131106 TMSGC <? Address >
9898 066671 200 00 0 00 000001 MOVE 1
9899 066672 037 10 0 00 000000 PNTADR
9900 066673 037 00 0 00 131111 TMSG < not recognized as a physical address of a queue entry>
9901 066674 037 00 0 00 131124 TMSGC <? CONVIR called from address - >
9902 066675 200 00 0 17 777776 MOVE -2(P)
9903 066676 037 10 0 00 000000 PNTADR
9904 066677 260 17 0 00 000000* GO FFF
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 226
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0396
9905
9906 ;#********************************************************************
9907 ;* INSQUE - Insert a packet into a queue
9908 ;
9909 ; PACKET - 256 word queue entry which can be copied directly into
9910 ; the command queue entry
9911 ;
9912 ; Return: +1 - Error, PTT value illegal (This return will never be taken)
9913 ; +2 - Error, out of room (or interlock failed)
9914 ; +2 - Ok
9915 ;#********************************************************************
9916
9917 066700 000000 000000 IQFUL: 0 ; debug - number of times freeq empty
9918 066701 000000 000000 IQFMIN: 0 ; debug - minimum entries on free queue
9919 066702 000000 000000 IQCMAX: 0 ; debug - maximum entries on cmd queue
9920
9921 066703 261 17 0 00 000000 INSQUE: RPUT (0,1,2,3) ; save AC's
9922
9923 066707 260 17 0 00 067164 GO PTCHKP ; check for a matching PTT value?
9924 066710 201 13 0 00 000002 MOVEI Q,2 ; no - set to Unk PT free queue
9925
9926 ; Get control of free queue
9927
9928 066711 260 17 0 00 066516 GO CHKINT ; check interlock word
9929 066712 254 00 0 00 066760 JRST INSQE2 ; failed - exit
9930 066713 336 00 0 00 066647 SKIPN LASENT ; queue empty?
9931 JRST [XCT [SETOM PCB+10 ; yes - error - out of room
9932 SETOM PTTFQ]-2(Q); reset interlock and exit
9933 AOS IQFUL
9934 066714 254 00 0 00 131133 JRST INSQE2]
9935 066715 200 00 0 00 066650 MOVE NUMENT ; debug - get number of entries
9936 066716 315 00 0 00 066701 CAMGE IQFMIN ; debug - more than minimum?
9937 066717 202 00 0 00 066701 MOVEM IQFMIN ; debug - yes - save it
9938
9939 ; Remove a free queue entry from the queue
9940
9941 066720 260 17 0 00 066766 GO GETQUE ; get an entry
9942 066721 255 00 0 00 000000 JFCL ; error - ignore
9943 066722 202 01 0 00 134202' MOVEM 1,NEWENT# ; save address of new entry
9944 066723 200 02 0 00 066651 MOVE 2,TOPADR ; get PCB address
9945 066724 370 00 0 00 000002 SOS 2 ; point to interlock address
9946 066725 476 00 0 02 000000 SETOM (2) ; reset interlock
9947 066726 200 02 0 00 000001 MOVE 2,1 ; get address of entry into AC2
9948 066727 271 01 0 00 000002 ADDI 1,2 ; build BLT pointer to move the
9949 066730 505 01 0 00 072116 HRLI 1,PACKET+2 ; packet into the queue entry
9950 066731 306 13 0 00 000003 CAIN Q,3 ; PT free queue?
9951 066732 251 01 0 02 000307 BLT 1,^D199(2) ; yes - do the BLT
9952 066733 306 13 0 00 000002 CAIN Q,2 ; Unk PT free queue?
9953 066734 251 01 0 02 000617 BLT 1,^D399(2) ; yes - do the BLT
9954
9955 ; Get flags/opcode and handle BSD modifications (BSD base address ...)
9956
9957 066735 135 01 0 00 127201 LDB 1,[POINT 8,PACKET+3,23] ; get op code
9958 066736 135 02 0 00 127200 LDB 2,[POINT 8,PACKET+3,15] ; get flags
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 227
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0397
9959 066737 306 01 0 00 000001 CAIN 1,SNDDG ; datagram?
9960 066740 606 02 0 00 000010 TRNN 2,10 ; yes - pad flag set?
9961 066741 334 00 0 00 000000 SKIPA ; no - continue
9962 GO [MOVE 2,NEWENT ; yes - get BSD base address
9963 ADDI 2,14 ; ...
9964 MOVE 1,2 ; get into AC1
9965 SKIPN UDEBUG ; debug mode?
9966 MAP 1,(2) ; no - convert to physical
9967 TLZ 1,777000 ; get rid of extraneous bits
9968 MOVEM 1,-3(2) ; save it
9969 ADDI 2,4 ; get segment base address
9970 MOVE 1,2 ; get into AC1
9971 SKIPN UDEBUG ; debug mode?
9972 MAP 1,(2) ; no - convert to physical
9973 TLZ 1,777000 ; get rid of extraneous bits
9974 HLLZ PACKET+14 ; get non-address bits
9975 TLZ 77 ; ...
9976 IOR 1, ; include segment base address
9977 MOVEM 1,-4(2) ; save it
9978 066742 260 17 0 00 131136 RTN] ; exit
9979
9980 ; Get control of Command Queue
9981
9982 066743 400 13 0 00 000000 SETZ Q, ; get cmd queue number
9983 066744 260 17 0 00 066516 GO CHKINT ; check interlock word
9984 066745 254 00 0 00 066760 JRST INSQE2 ; failed - exit
9985 066746 200 00 0 00 066650 MOVE NUMENT ; debug - get number of entries
9986 066747 313 00 0 00 066702 CAMLE IQCMAX ; debug - less than maximum?
9987 066750 202 00 0 00 066702 MOVEM IQCMAX ; debug - yes - save it
9988
9989 ; Insert this at the end of the command queue
9990
9991 066751 200 01 0 00 134202' MOVE 1,NEWENT ; get address of new entry
9992 066752 260 17 0 00 067022 GO PUTQUE ; insert in queue
9993
9994 ; Reset interlock and update statistics
9995
9996 066753 200 02 0 00 066651 MOVE 2,TOPADR ; get PCB address
9997 066754 370 00 0 00 000002 SOS 2 ; point to interlock address
9998 066755 476 00 0 02 000000 SETOM (2) ; reset interlock
9999 066756 260 17 0 00 043461 GO SUPDAT ; update statistics (sent)
10000
10001 ; Done - exit
10002
10003 066757 350 00 0 17 777774 AOS -4(P) ; set up proper return
10004 066760 350 00 0 17 777774 INSQE2: AOS -4(P) ; set up proper return +3
10005 066761 262 17 0 00 000003 INSQE1: RGET (3,2,1,0) ; restore AC's
10006
10007 066765 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 228
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0398
10008
10009 ;#********************************************************************
10010 ;* GETQUE - Remove a queue entry from the beginning of a queue
10011 ;
10012 ; This routine removes the entry and adjusts the PCB and next
10013 ; entry links so that the queue is correct.
10014 ;
10015 ; Given: LENTRY - Contains a list of queue entries (virtual addresses)
10016 ; TOPADR - Address of FLINK of queue header
10017 ; NUMENT - Number of entries in the queue
10018 ; LASENT - Last entry in the queue
10019 ;
10020 ; Return: AC1 - Address of entry obtained (virtual)
10021 ; +1 - No entry found
10022 ; +2 - An entry was found
10023 ;#********************************************************************
10024
10025 066766 336 00 0 00 066650 GETQUE: SKIPN NUMENT ; empty list?
10026 066767 263 17 0 00 000000 RTN ; yes - return
10027 066770 350 00 0 17 000000 AOS (P) ; no - set up proper return
10028 066771 261 17 0 00 000000 RPUT (0,2) ; save AC's
10029
10030 066773 200 02 0 00 066650 MOVE 2,NUMENT ; get number of entries
10031 066774 303 02 0 00 000001 CAILE 2,1 ; more than one?
10032 066775 254 00 0 00 067006 JRST GETQU0 ; yes - go handle
10033
10034 ; Only one entry in the list
10035
10036 MOVE 1,[PCB+1 ; get address of FLINK in PCB
10037 PCB+5
10038 PCB+11
10039 066776 200 01 0 13 131157 PTTFQ+1](Q)
10040 066777 200 02 0 00 000001 MOVE 2,1 ; get into AC2 also
10041 067000 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
10042 067001 257 02 0 02 000000 MAP 2,(2) ; no - map to physical
10043 067002 621 02 0 00 777000 TLZ 2,777000 ; get rid of extraneous bits
10044 067003 202 02 0 01 000000 MOVEM 2,(1) ; set up new FLINK address
10045 067004 202 02 0 01 000001 MOVEM 2,1(1) ; set up new BLINK address
10046 067005 254 00 0 00 067016 JRST GETQUX ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 229
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0399
10047
10048 ; Multiple entries in the list
10049
10050 067006 200 01 0 00 066563 GETQU0: MOVE 1,LENTRY ; get address of 1st entry
10051 067007 200 01 0 01 000001 MOVE 1,1(1) ; get BLINK of 1st entry
10052 067010 200 02 0 00 066564 MOVE 2,LENTRY+1 ; get address of 2nd entry
10053 067011 202 01 0 02 000001 MOVEM 1,1(2) ; set up BLINK of 2nd entry
10054 067012 200 01 0 00 066563 MOVE 1,LENTRY ; get address of 1st entry
10055 067013 200 01 0 01 000000 MOVE 1,(1) ; get FLINK of 1st entry
10056 MOVE 2,[PCB+1 ; get address of FLINK in PCB
10057 PCB+5
10058 PCB+11
10059 067014 200 02 0 13 131157 PTTFQ+1](Q)
10060 067015 202 01 0 02 000000 MOVEM 1,(2) ; set up new FLINK in PCB
10061
10062 ; Exit
10063
10064 067016 200 01 0 00 066563 GETQUX: MOVE 1,LENTRY ; get address of entry
10065 067017 262 17 0 00 000002 RGET (2,0) ; restore AC's
10066
10067 067021 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 230
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0400
10068
10069 ;#********************************************************************
10070 ;* PUTQUE - Insert an entry onto the specified queue
10071 ;
10072 ; Given: AC1 - contains address of entry
10073 ; Q - Contains the queue to put entry back on:
10074 ; 0 - Cmd queue
10075 ; 1 - Rsp queue
10076 ; 2 - UnkF queue
10077 ; 3 - PttF queue
10078 ;#********************************************************************
10079
10080 067022 261 17 0 00 000000 PUTQUE: RPUT (0,1,2,3) ; save AC's
10081
10082
10083 ; Check for data pointer if a free queue entry
10084
10085 067026 307 13 0 00 000001 CAIG Q,1 ; CMD or RSP queue?
10086 067027 254 00 0 00 067037 JRST PUTQU0 ; yes - continue
10087 067030 200 01 0 00 134202' MOVE 1,NEWENT ; get address of new entry
10088 067031 271 01 0 00 000013 ADDI 1,13 ; get address of start of text
10089 067032 200 02 0 00 000001 MOVE 2,1 ; get into AC2
10090 067033 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
10091 067034 257 02 0 01 000000 MAP 2,(1) ; map to physical
10092 067035 621 02 0 00 777000 TLZ 2,777000 ; get rid of extraneous bits
10093 067036 202 02 0 01 777777 MOVEM 2,-1(1) ; save it
10094 067037 200 03 0 00 134202' PUTQU0: MOVE 3,NEWENT ; get address of new entry
10095 067040 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
10096 067041 257 03 0 03 000000 MAP 3,(3) ; map to physical
10097 067042 621 03 0 00 777000 TLZ 3,777000 ; get rid of extraneous bits
10098
10099 ; Insert at the end of the specified queue
10100
10101 067043 332 00 0 00 066650 SKIPE NUMENT ; queue currently empty?
10102 067044 254 00 0 00 067055 JRST PUTQU1 ; no - continue
10103
10104 ; Empty queue - insert entry
10105
10106 MOVE 1,[PCB+1 ; get address of FLINK in PCB
10107 PCB+5
10108 PCB+11
10109 067045 200 01 0 13 131157 PTTFQ+1](Q)
10110 067046 200 02 0 01 000000 MOVE 2,(1) ; get FLINK
10111 067047 202 03 0 01 000000 MOVEM 3,(1) ; set up new FLINK in PCB
10112 067050 202 03 0 01 000001 MOVEM 3,1(1) ; set up new BLINK in PCB
10113 067051 200 03 0 00 134202' MOVE 3,NEWENT ; get address of new entry
10114 067052 202 02 0 03 000000 MOVEM 2,(3) ; set up FLINK of new entry
10115 067053 202 02 0 03 000001 MOVEM 2,1(3) ; set up BLINK of new entry
10116 067054 254 00 0 00 067073 JRST PUTQUX ; done - continue
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 231
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0401
10117
10118 ; Queue is not empty - insert entry
10119
10120 067055 200 02 0 00 066647 PUTQU1: MOVE 2,LASENT ; get address of last entry
10121 067056 200 01 0 02 000000 MOVE 1,(2) ; get FLINK of last entry
10122 067057 202 03 0 02 000000 MOVEM 3,(2) ; set up new FLINK of last entry
10123 067060 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
10124 067061 257 02 0 02 000000 MAP 2,(2) ; no - map to physical
10125 067062 621 02 0 00 777000 TLZ 2,777000 ; get rid of extraneous bits
10126 067063 200 03 0 00 134202' MOVE 3,NEWENT ; get address of new entry
10127 067064 202 01 0 03 000000 MOVEM 1,(3) ; set up FLINK of new entry
10128 067065 202 02 0 03 000001 MOVEM 2,1(3) ; set up BLINK of new entry
10129 067066 336 00 0 00 134255' SKIPN UDEBUG ; debug mode?
10130 067067 257 03 0 03 000000 MAP 3,(3) ; no - map to physical
10131 067070 621 03 0 00 777000 TLZ 3,777000 ; get rid of extraneous bits
10132 MOVE 1,[PCB+0 ; CmdQ
10133 PCB+4 ; RspQ
10134 PCB+10 ; UnkFQ
10135 067071 200 01 0 13 131071 PTTFQ](Q) ; PttFQ
10136 067072 202 03 0 01 000002 MOVEM 3,2(1) ; set up new BLINK in PCB
10137
10138 ; Done - exit
10139
10140 067073 262 17 0 00 000003 PUTQUX: RGET (3,2,1,0) ; restore AC's
10141
10142 067077 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 232
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0402
10143
10144 ;#********************************************************************
10145 ;* CHKRSP - Check if a response queue entry
10146 ;
10147 ; Return: +1 - No entry
10148 ; +2 - Found an entry(ies)
10149 ;#********************************************************************
10150
10151 067100 352 00 0 00 072004 CHKRSP: AOSE PCB+4 ; check interlock for rsp queue
10152 067101 263 17 0 00 000000 RTN ; return - queue is in use already
10153 067102 261 17 0 00 000000 RPUT (0,1,2,Q) ; save AC's
10154
10155 067106 476 00 0 00 072004 SETOM PCB+4 ; reset interlock
10156 067107 201 13 0 00 000001 MOVEI Q,1 ; set up for response queue
10157 067110 260 17 0 00 066516 GO CHKINT ; check interlock word
10158 067111 254 00 0 00 067144 JRST CHKRSX ; failed - exit
10159
10160 ; Remove response queue packet from the response queue and reset
10161 ; interlock. Also, copy it to 'RSPONS'.
10162
10163 067112 260 17 0 00 066766 GO GETQUE ; get a queue entry
10164 JRST [GO SHUTRQ ; empty - reset the response queue
10165 SETOM PCB+4 ; available bit, then reset the
10166 067113 254 00 0 00 131163 JRST CHKRSX] ; interlock word and exit
10167 067114 202 01 0 00 134202' MOVEM 1,NEWENT ; got an entry - save address
10168 067115 476 00 0 00 134225' SETOM RQAFLG ; set rsp queue available flag
10169 067116 350 00 0 17 777774 AOS -4(P) ; set up proper return
10170 067117 260 17 0 00 067274 GO SHUTRQ ; reset 'RSPQAV' bit
10171 067120 476 00 0 00 072004 SETOM PCB+4 ; reset interlock word
10172 067121 504 00 0 00 134202' HRL NEWENT ; build a BLT pointer
10173 067122 541 00 0 00 073000 HRRI RSPONS
10174 067123 251 00 0 00 073307 BLT RSPONS+^D199 ; copy into 'RSPONS'
10175 067124 135 02 0 00 127162 LDB 2,[POINT 8,RSPONS+3,23] ; get opcode
10176 067125 306 02 0 00 000004 CAIN 2,CNTRC ; CNTRC packet?
10177 GO [MOVE 2,[PCB+^D25,,RSPONS+4] ; yes - copy the counters data
10178 BLT 2,RSPONS+^D53 ; to the response buffer area
10179 067126 260 17 0 00 131167 RTN]
10180 067127 402 00 0 01 000000 SETZM (1) ; clear first word
10181 067130 504 00 0 00 000001 HRL 1 ; build a BLT pointer
10182 067131 540 00 0 00 000001 HRR 1 ; ...
10183 067132 350 00 0 00 000000 AOS ; ...
10184 067133 251 00 0 01 000307 BLT ^D199(1) ; clear remainder of packet
10185
10186 ; Determine which queue (PTT or UNK free queues) to put entry back on, and
10187 ; put packet back in the free queue
10188
10189 067134 260 17 0 00 067223 GO CHKQUE ; check if PTT or UNK queue
10190 067135 202 13 0 00 134227' MOVEM Q,RSPQUE# ; save queue number
10191 067136 260 17 0 00 066516 GO CHKINT ; check interlock word
10192 067137 334 00 0 00 000000 SKIPA ; failed - continue
10193 067140 260 17 0 00 067022 GO PUTQUE ; insert back on queue
10194 MOVE 1,[PCB+0 ; get address of interlock word
10195 PCB+4
10196 PCB+10
10197 067141 200 01 0 13 131071 PTTFQ](Q)
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 232-1
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0403
10198 067142 476 00 0 01 000000 SETOM (1) ; reset interlock
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 233
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0404
10199
10200 ; Update statistics
10201
10202 067143 260 17 0 00 043511 GO RUPDAT ; update statistics (received)
10203
10204 ; Exit
10205
10206 067144 262 17 0 00 000013 CHKRSX: RGET (Q,2,1,0) ; restore AC's
10207
10208 067150 263 17 0 00 000000 RTN ; return
10209
10210
10211 ;#********************************************************************
10212 ;* CHKRQV - Check for response queue available
10213 ;#********************************************************************
10214
10215 067151 332 00 0 00 134225' CHKRQV: SKIPE RQAFLG ; rsp queue available flag set?
10216 067152 263 17 0 00 000000 RTN ; yes - return and process next entry
10217 067153 261 17 0 00 000001 PUT 1 ; save AC1
10218 067154 260 17 0 00 066503* GO RDCSR ; read CSR
10219 067155 400 01 0 00 000000 SETZ 1, ; error - ignore
10220 067156 602 01 0 00 000200 TRNE 1,RESQAV ; rsp queue available bit set?
10221 067157 476 00 0 00 134225' SETOM RQAFLG ; yes - set flag
10222 067160 606 01 0 00 000200 TRNN 1,RESQAV ; rsp queue available bit set?
10223 067161 350 00 0 17 777777 AOS -1(P) ; no - take skip return
10224 067162 262 17 0 00 000001 GET 1 ; restore AC1
10225 067163 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 234
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0405
10226
10227 ;#********************************************************************
10228 ;* PTCHKP - Check type of packet and for matching PTT value
10229 ;
10230 ; Given: PACKET - Contains packet to check
10231 ;
10232 ; Returns: +1 - PTT value error
10233 ; +2 - Ok, Q has proper queue number
10234 ;#********************************************************************
10235
10236 067164 261 17 0 00 000000 PTCHKP: RPUT (0,1,2,3) ; save AC's
10237
10238 067170 200 00 0 00 072117 MOVE PACKET+3 ; get op code word
10239 067171 202 00 0 00 134236' MOVEM SAVOPW# ; save it
10240 067172 200 00 0 00 072121 MOVE PACKET+5 ; get PTT value word
10241 067173 202 00 0 00 134237' MOVEM SAVPTT# ; save it
10242 067174 201 13 0 00 000002 MOVEI Q,2 ; point to UnkFQ
10243 067175 135 00 0 00 131172 LDB [POINT 8,SAVOPW,23] ; get opcode
10244 067176 332 00 0 00 134255' SKIPE UDEBUG ; debug mode?
10245 067177 254 00 0 00 067202 JRST .+3 ; yes - continue
10246 067200 302 00 0 00 000001 CAIE SNDDG ; SNDDG?
10247 067201 254 00 0 00 067215 JRST PTCHKX ; no - exit
10248
10249 ; Check for matching PTT value
10250
10251 067202 135 00 0 00 131173 LDB [POINT 16,SAVPTT,31] ; get pt value
10252 067203 201 01 0 00 105000 MOVEI 1,PTABLE ; initial address in pt table
10253 067204 200 02 0 01 000000 PTCHK0: MOVE 2,(1) ; get value word
10254 067205 135 03 0 00 131174 LDB 3,[POINT 16,2,31] ; get pt value
10255 067206 316 00 0 00 000003 CAMN 3 ; same as desired?
10256 067207 254 00 0 00 067214 JRST PTCHK1 ; yes - exit
10257 067210 271 01 0 00 000003 ADDI 1,3 ; point to next entry
10258 067211 305 01 0 00 105055 CAIGE 1,PTABLE+55 ; done yet?
10259 067212 254 00 0 00 067204 JRST PTCHK0 ; no - loop till done
10260 067213 254 00 0 00 067216 JRST PTCHKY ; yes - continue
10261
10262 ; Exit
10263
10264 067214 201 13 0 00 000003 PTCHK1: MOVEI Q,3 ; found PTT value - set queue number
10265 067215 350 00 0 17 777774 PTCHKX: AOS -4(P) ; set up proper return
10266 067216 262 17 0 00 000003 PTCHKY: RGET (3,2,1,0) ; restore AC's
10267
10268 067222 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 235
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0406
10269
10270 ;#********************************************************************
10271 ;* CHKQUE - Determine which queue to insert entry back on
10272 ;
10273 ; Given: NEWENT - Contains address of packet
10274 ; Returns: Q - Contains queue to put entry back on
10275 ;#********************************************************************
10276
10277 067223 261 17 0 00 000000 CHKQUE: RPUT (0,1) ; save AC's
10278
10279 067225 201 01 0 00 067242 MOVEI 1,CHKTAB-1 ; get entry table address
10280 067226 350 00 0 00 000001 CHKQU0: AOS 1 ; increment table pointer
10281 067227 200 00 0 01 000000 MOVE (1) ; get address
10282 067230 321 00 0 00 067234 JUMPL CHKQUX ; end of list? yes - exit
10283 067231 621 00 0 00 777777 TLZ 777777 ; clear left half
10284 067232 312 00 0 00 134202' CAME NEWENT ; match expected?
10285 067233 254 00 0 00 067226 JRST CHKQU0 ; no - keep looping
10286 067234 554 13 0 01 000000 CHKQUX: HLRZ Q,(1) ; yes - get queue number
10287 067235 301 13 0 00 000002 CAIL Q,2 ; valid queue number?
10288 067236 303 13 0 00 000003 CAILE Q,3
10289 GO [FMSGC <? Unrecognized packet address - >
10290 MOVE NEWENT
10291 PNTHWF
10292 MOVEI Q,2
10293 067237 260 17 0 00 131204 RTN]
10294 067240 262 17 0 00 000001 RGET (1,0) ; restore AC's
10295
10296 067242 263 17 0 00 000000 RTN ; return
10297
10298 067243 000003 105074 CHKTAB: EXP 3B17!PTTF0,3B17!PTTF1,3B17!PTTF2,3B17!PTTF3,3B17!PTTF4
10299 067244 000003 106000
10300 067245 000003 106310
10301 067246 000003 107000
10302 067247 000003 107310
10303 067250 000003 110000 EXP 3B17!PTTF5,3B17!PTTF6,3B17!PTTF7,3B17!PTTF10,3B17!PTTF11
10304 067251 000003 110310
10305 067252 000003 111000
10306 067253 000003 111310
10307 067254 000003 112000
10308 067255 000003 112310 EXP 3B17!PTTF12,3B17!PTTF13,3B17!PTTF14,3B17!PTTF15,3B17!PTTF16
10309 067256 000003 113000
10310 067257 000003 113310
10311 067260 000003 114000
10312 067261 000003 114310
10313 067262 000003 115000 EXP 3B17!PTTF17
10314 067263 000002 075000 EXP 2B17!QUNKF0,2B17!QUNKF1,2B17!QUNKF2,2B17!QUNKF3,2B17!QUNKF4
10315 067264 000002 076000
10316 067265 000002 077000
10317 067266 000002 100000
10318 067267 000002 101000
10319 067270 000002 102000 EXP 2B17!QUNKF5,2B17!QUNKF6,2B17!QUNKF7
10320 067271 000002 103000
10321 067272 000002 104000
10322 067273 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 236
DFNIA1 MAC 18-Feb-84 20:30 Packet Handling Routines SEQ 0407
10323
10324 ;#********************************************************************
10325 ;* SHUTRQ - Turn off response queue available
10326 ;#********************************************************************
10327
10328 067274 261 17 0 00 000001 SHUTRQ: PUT 1 ; save AC1
10329 067275 260 17 0 00 067154* GO RDCSR ; read CSR
10330 067276 254 00 0 00 067303 JRST SHUTRX ; error - exit
10331 067277 621 01 0 00 777777 TLZ 1,777777 ; clear left half
10332 067300 620 01 0 00 000400 TRZ 1,CMDQAV ; clear this bit
10333 067301 660 01 0 00 000200 TRO 1,RESQAV ; set the bit
10334 067302 260 17 0 00 065660* GO LDCSR ; write the CSR register
10335 067303 262 17 0 00 000001 SHUTRX: GET 1 ; restore AC1
10336 067304 263 17 0 00 000000 RTN ; return
10337
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 237
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0408
10338 SUBTTL Queue Print Routines
10339
10340 ;#********************************************************************
10341 ;* PQUEUE - Print a set of queue entries
10342 ;
10343 ; Q - Queue to print - 0 - Cmd Queue
10344 ; 1 - Rsp Queue
10345 ; 2 - Unk Free Queue
10346 ; 3 - Ptt Free Queue
10347 ; 4 - Pt table
10348 ; 5 - Multi-Cast Table
10349 ; PK - Address of packet
10350 ;#********************************************************************
10351
10352 067305 261 17 0 00 000000 PQUEUE: RPUT (0,1,2,3,4) ; save AC's
10353
10354 XCT [JFCL ; dispatch on queue type
10355 JFCL
10356 JFCL
10357 JFCL
10358 JRST PQUEUP
10359 067312 256 00 0 13 131211 JRST PQUEUM](Q)
10360 MOVE PK,[PCB+0 ; get address of beginning of queue
10361 PCB+4
10362 PCB+10
10363 067313 200 12 0 13 131071 PTTFQ](Q)
10364 067314 200 04 0 00 000012 MOVE 4,PK ; get into AC4 also
10365 067315 260 17 0 00 066516 GO CHKINT ; obtain queue ownership
10366 GO [GO ISTOP ; failed - stop the port,
10367 SETOM (PK) ; clear the interlock word,
10368 GO CHKINT ; obtain the queue again,
10369 JFCL ; and continue
10370 067316 260 17 0 00 131217 RTN]
10371 XCT [TMSGC <CmdQ > ; print name of queue
10372 TMSGC <RspQ >
10373 TMSGC <UnkFQ>
10374 067317 256 00 0 13 131234 TMSGC <PttFQ>](Q)
10375 067320 037 00 0 00 130125 TMSG < (>
10376 067321 200 01 0 00 000012 MOVE 1,PK ; get address
10377 067322 260 17 0 00 070544 GO LINKV ; print offset
10378 067323 037 00 0 00 131240 TMSG <): Flink = >
10379 067324 350 00 0 00 000012 AOS PK ; point to FLINK
10380 067325 200 01 0 12 000000 MOVE 1,(PK) ; get FLINK
10381 067326 260 17 0 00 070537 GO LINKP ; print it
10382 067327 037 00 0 00 131243 TMSG < Blink = >
10383 067330 200 01 0 12 000001 MOVE 1,1(PK) ; get BLINK
10384 067331 260 17 0 00 070537 GO LINKP ; print it
10385 067332 336 00 0 00 066650 SKIPN NUMENT ; queue empty?
10386 067333 037 00 0 00 131246 TMSGC < Queue is empty> ; yes - print message
10387 067334 201 03 0 00 066562 MOVEI 3,LENTRY-1 ; init entry pointer
10388 067335 336 00 0 00 066650 SKIPN NUMENT ; queue empty?
10389 067336 254 00 0 00 067345 JRST PQUEUX ; yes - exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 238
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0409
10390
10391 ; Print the queue entry
10392
10393 067337 350 00 0 00 000003 PQUEU0: AOS 3 ; point to next entry
10394 067340 336 00 0 03 000000 SKIPN (3) ; non-zero queue entry?
10395 067341 254 00 0 00 067345 JRST PQUEUX ; no - done with queue - exit
10396 067342 200 12 0 03 000000 MOVE PK,(3) ; get address of queue entry
10397 XCT [GO PPAKC ; print CmdQ entry
10398 GO PPAKR ; print RspQ entry
10399 GO PPAKF ; print UnkFQ entry
10400 067343 256 00 0 13 131252 GO PPAKF](Q) ; print PttFQ entry
10401 067344 254 00 0 00 067337 JRST PQUEU0 ; loop till done
10402 067345 476 00 0 04 000000 PQUEUX: SETOM (4) ; reset interlock
10403 067346 262 17 0 00 000004 PQUEUY: RGET (4,3,2,1,0) ; restore AC's
10404
10405 067353 263 17 0 00 000000 RTN ; return
10406
10407 ; Print Pt table
10408
10409 067354 037 00 0 00 131256 PQUEUP: TMSGC <** Protocol Type Table **>
10410 067355 037 00 0 00 131264 TMSGC < N Ena Type Address>
10411 067356 037 00 0 00 131272 TMSGC < - --- ---- ------->
10412 067357 400 03 0 00 000000 SETZ 3, ; initialize entry count
10413 067360 201 04 0 00 105000 MOVEI 4,PTABLE ; initialize pointer to table
10414 067361 037 00 0 00 030242 PQUEP0: PCRL
10415 067362 001 03 0 00 000003 PNTOCC 3,3 ; print address number
10416 067363 331 00 0 04 000000 SKIPL (4) ; enable bit set?
10417 067364 037 00 0 00 131300 TMSG < N > ; no - print such
10418 067365 335 00 0 04 000000 SKIPGE (4) ; enable bit set?
10419 067366 037 00 0 00 131302 TMSG < Y > ; yes - print such
10420 067367 200 02 0 04 000000 MOVE 2,(4) ; get first word
10421 067370 135 00 0 00 131174 LDB [POINT 16,2,31] ; get type value
10422 067371 001 07 0 00 000000 PNTOCC 7,0 ; print it
10423 067372 037 00 0 00 131304 TMSG < >
10424 067373 200 01 0 04 000001 MOVE 1,1(4) ; get header address
10425 067374 260 17 0 00 070537 GO LINKP ; print it
10426 067375 271 04 0 00 000003 ADDI 4,3 ; point to next entry
10427 067376 305 04 0 00 105060 CAIGE 4,PTABLE+60 ; done yet?
10428 067377 254 00 0 00 067361 JRST PQUEP0 ; no - loop till done
10429 067400 254 00 0 00 067346 JRST PQUEUY ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 239
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0410
10430
10431 ; Print Multi-cast table
10432
10433 067401 037 00 0 00 131305 PQUEUM: TMSGC <** Multi-Cast Table **>
10434 067402 037 00 0 00 131312 TMSGC < N Ena Bt0 BT1 BT2 BT3 BT4 BT5>
10435 067403 037 00 0 00 131321 TMSGC < - --- --- --- --- --- --- --->
10436 067404 400 03 0 00 000000 SETZ 3, ; initialize entry count
10437 067405 201 04 0 00 115320 MOVEI 4,MTABLE ; initialize pointer to table
10438 067406 037 00 0 00 030242 PQUEM0: PCRL
10439 067407 001 03 0 00 000003 PNTOCC 3,3 ; print address number
10440 067410 331 00 0 04 000001 SKIPL 1(4) ; enable bit set?
10441 067411 037 00 0 00 131330 TMSG < N > ; no - print such
10442 067412 335 00 0 04 000001 SKIPGE 1(4) ; enable bit set?
10443 067413 037 00 0 00 131332 TMSG < Y > ; yes - print such
10444 067414 200 02 0 04 000000 MOVE 2,(4) ; get first word
10445 067415 135 00 0 00 131334 LDB [POINT 8,2,31] ; get byte 0
10446 067416 037 03 0 00 000000 PNT3 ; print it
10447 067417 135 00 0 00 131335 LDB [POINT 8,2,23] ; get byte 1
10448 067420 037 03 0 00 000000 PNT3 ; print it
10449 067421 135 00 0 00 131336 LDB [POINT 8,2,15] ; get byte 2
10450 067422 037 03 0 00 000000 PNT3 ; print it
10451 067423 135 00 0 00 131337 LDB [POINT 8,2,7] ; get byte 3
10452 067424 037 03 0 00 000000 PNT3 ; print it
10453 067425 200 02 0 04 000001 MOVE 2,1(4) ; get second word
10454 067426 135 00 0 00 131334 LDB [POINT 8,2,31] ; get byte 4
10455 067427 037 03 0 00 000000 PNT3 ; print it
10456 067430 135 00 0 00 131335 LDB [POINT 8,2,23] ; get byte 5
10457 067431 037 03 0 00 000000 PNT3 ; print it
10458 067432 271 04 0 00 000002 ADDI 4,2 ; point to next entry
10459 067433 305 04 0 00 115360 CAIGE 4,MTABLE+40 ; done yet?
10460 067434 254 00 0 00 067406 JRST PQUEM0 ; no - loop till done
10461 067435 254 00 0 00 067346 JRST PQUEUY ; exit
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 240
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0411
10462
10463 ;#********************************************************************
10464 ;* PPAKC - Print a command queue entry
10465 ;#********************************************************************
10466
10467 067436 261 17 0 00 000000 PPAKC: RPUT (0,1) ; save AC's
10468
10469 067440 476 00 0 00 134146' SETOM CMDPAK# ; set command packet flag
10470 067441 402 00 0 00 134226' SETZM RSPPAK# ; clear response packet flag
10471 067442 037 00 0 00 131340 TMSGC < -------------------->
10472 067443 037 00 0 00 125342 TMSGC < >
10473 067444 200 01 0 00 000012 MOVE 1,PK ; get address
10474 067445 260 17 0 00 070537 GO LINKP
10475 067446 037 00 0 00 131345 TMSG </ (CmdQ Entry) - >
10476
10477 ; Print op code
10478
10479 067447 200 01 0 12 000003 PPAKC0: MOVE 1,3(PK) ; get status word
10480 067450 135 11 0 00 131351 LDB OP,[POINT 8,1,23] ; get op code
10481 067451 260 17 0 00 070134 GO OPCPNT ; print op code
10482
10483 ; Now print remainder of queue entry with regard to packet type
10484
10485 067452 261 17 0 00 000002 PPAKCC: PUT 2 ; save AC2
10486 067453 260 17 0 00 070207 GO DECOPC ; decode op code
10487 067454 201 01 0 00 000011 MOVEI 1,11 ; error - set offset to 11
10488 067455 261 17 0 00 000003 RPUT (3,4) ; save AC's
10489
10490 XCT [GO PACK1 ; 1-SNDDG
10491 GO PACK2 ; 2-LDMCAT
10492 GO PACK3 ; 3-LDPTT
10493 GO PACK4 ; 4-RCCNT
10494 GO PACK6 ; 6-WRPLI
10495 GO PACK7 ; 7-RDPLI
10496 GO PACK10 ; 10-RDNSA
10497 GO PACK11 ; 11-WRNSA
10498 GO PACK5 ; 5-DGRCV
10499 067457 256 00 0 01 131352 GO PACKG](1) ; 12-Misc
10500 067460 262 17 0 00 000004 RGET (4,3,2) ; restore AC's
10501
10502 067463 262 17 0 00 000001 PPAKCX: RGET (1,0) ; restore AC's
10503
10504 067465 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 241
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0412
10505
10506 ;#********************************************************************
10507 ;* PPAKR - Print a response queue entry
10508 ;#********************************************************************
10509
10510 067466 261 17 0 00 000000 PPAKR: RPUT (0,1) ; save AC's
10511
10512 067470 402 00 0 00 134146' SETZM CMDPAK ; clear command packet flag
10513 067471 476 00 0 00 134226' SETOM RSPPAK ; set response packet flag
10514 067472 037 00 0 00 131340 TMSGC < -------------------->
10515 067473 037 00 0 00 125342 TMSGC < >
10516 067474 200 01 0 00 000012 MOVE 1,PK ; get address
10517 067475 260 17 0 00 070537 GO LINKP
10518 067476 037 00 0 00 131364 TMSG </ (RspQ Entry) - >
10519 067477 254 00 0 00 067447 JRST PPAKC0
10520
10521
10522 ;#********************************************************************
10523 ;* PPAKF - Print a free queue entry
10524 ;
10525 ; PK - Address of packet
10526 ; Q - Cmd queue number
10527 ;#********************************************************************
10528
10529 067500 261 17 0 00 000000 PPAKF: RPUT (0,1) ; save AC's
10530
10531 067502 037 00 0 00 125342 TMSGC < >
10532 067503 200 01 0 00 000012 MOVE 1,PK ; get address
10533 067504 260 17 0 00 070537 GO LINKP
10534 067505 037 00 0 00 131370 TMSG </ Flink = >
10535 067506 200 01 0 12 000000 MOVE 1,(PK) ; get FLINK
10536 067507 260 17 0 00 070537 GO LINKP ; print it
10537 067510 037 00 0 00 131243 TMSG < Blink = >
10538 067511 200 01 0 12 000001 MOVE 1,1(PK) ; get BLINK
10539 067512 260 17 0 00 070537 GO LINKP ; print it
10540 067513 262 17 0 00 000001 RGET (1,0) ; restore AC's
10541
10542 067515 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 242
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0413
10543
10544 ;#********************************************************************
10545 ;* PACK1 - Print a packet - SNDDG command / DGSNT response
10546 ;
10547 ; BSD style packet format:
10548 ;
10549 ; PACKET+11/ BSD Base Address (PACKET+14)
10550 ;
10551 ; PACKET+14/ Packing Mode/Segment Base Address (PACKET+20)
10552 ; PACKET+15/ Next BSD Address (0)
10553 ; PACKET+16/ Segment Length (n)
10554 ; PACKET+17/ 0
10555 ;
10556 ; PACKET+20/ Data+0
10557 ; PACKET+21/ Data+1
10558 ; ... ...
10559 ;#********************************************************************
10560
10561 067516 260 17 0 00 070237 PACK1: GO PHEAD ; print header data
10562 067517 037 00 0 00 131373 TMSGC < Text Length: >
10563 067520 200 00 0 12 000004 MOVE 4(PK) ; get length word
10564 067521 037 15 0 00 000000 PNTDEC ; print it
10565 067522 037 00 0 00 131377 TMSG <. (bytes)>
10566 067523 200 00 0 12 000003 MOVE 3(PK) ; get status word
10567 067524 603 00 0 00 000040 TLNE 40 ; BSD style?
10568 067525 254 00 0 00 067545 JRST PACK1A ; yes - go handle
10569
10570 ; Non-BSD style
10571
10572 067526 037 00 0 00 131401 TMSGC < PTT Value: >
10573 067527 200 00 0 12 000005 MOVE 5(PK) ; get PTT word
10574 067530 135 00 0 00 131405 LDB [POINT 16,0,31] ; get PTT value
10575 067531 037 16 0 00 000003 PNTOCS ; print it
10576 067532 037 00 0 00 131406 TMSGC < FREEQ Header Addr: >
10577 067533 200 01 0 12 000006 MOVE 1,6(PK) ; get FREEQ address
10578 067534 260 17 0 00 070537 GO LINKP ; print it out
10579 067535 037 00 0 00 131413 TMSGC < Destination Addr: >
10580 067536 120 01 0 12 000007 DMOVE 1,7(PK) ; get destination address
10581 067537 260 17 0 00 070261 GO PADDR ; print address
10582 067540 201 01 0 12 000011 MOVEI 1,11(PK) ; get text address
10583 067541 200 02 0 12 000004 MOVE 2,4(PK) ; get length word
10584 067542 400 04 0 00 000000 SETZ 4, ; set packing mode to COMPAT
10585 067543 260 17 0 00 070431 GO PTEXT ; print text data
10586 067544 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 243
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0414
10587
10588 ; BSD style
10589
10590 067545 037 00 0 00 131401 PACK1A: TMSGC < PTT Value: >
10591 067546 200 00 0 12 000005 MOVE 5(PK) ; get PTT word
10592 067547 135 00 0 00 131405 LDB [POINT 16,0,31] ; get PTT value
10593 067550 037 16 0 00 000003 PNTOCS ; print it
10594 067551 037 00 0 00 131406 TMSGC < FREEQ Header Addr: >
10595 067552 200 01 0 12 000006 MOVE 1,6(PK) ; get FREEQ address
10596 067553 260 17 0 00 070537 GO LINKP ; print it out
10597 067554 037 00 0 00 131413 TMSGC < Destination Addr: >
10598 067555 120 01 0 12 000007 DMOVE 1,7(PK) ; get destination address
10599 067556 260 17 0 00 070261 GO PADDR ; print address
10600 067557 037 00 0 00 131420 TMSGC < BSD Base Addr: >
10601 067560 200 01 0 12 000011 MOVE 1,11(PK) ; get BSD base address
10602 067561 260 17 0 00 070537 GO LINKP ; print it out
10603 067562 201 03 0 12 000014 MOVEI 3,14(PK) ; get BSD segment address
10604 067563 201 01 0 00 000001 MOVEI 1,1 ; get segment number
10605 067564 260 17 0 00 070475 GO PBSD ; print data
10606 067565 263 17 0 00 000000 RTN ; return
10607
10608
10609 ;#********************************************************************
10610 ;* PACK2 - Print a packet - LDMCAT command / MCATLD response
10611 ;#********************************************************************
10612
10613 067566 260 17 0 00 070237 PACK2: GO PHEAD ; print header data
10614 067567 263 17 0 00 000000 RTN ; return
10615
10616
10617 ;#********************************************************************
10618 ;* PACK3 - Print a packet - LDPTT command / PTTLD response
10619 ;#********************************************************************
10620
10621 067570 260 17 0 00 070237 PACK3: GO PHEAD ; print header data
10622 067571 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 244
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0415
10623
10624 ;#********************************************************************
10625 ;* PACK4 - Print a packet - RCCNT command / CNTRC response
10626 ;#********************************************************************
10627
10628 067572 260 17 0 00 070237 PACK4: GO PHEAD ; print header data
10629 067573 336 00 0 00 134226' SKIPN RSPPAK ; response packet?
10630 067574 263 17 0 00 000000 RTN ; no - return
10631
10632 067575 201 04 0 12 000003 CNTPNT: MOVEI 4,3(PK) ; get address of start of counters
10633 067576 400 05 0 00 000000 SETZ 5, ; initialize counters
10634 067577 335 00 0 05 067677 PACK4B: SKIPGE PACK4T(5) ; done printing?
10635 067600 263 17 0 00 000000 RTN ; yes - exit
10636 067601 606 05 0 00 000001 TRNN 5,1 ; multiple of 2?
10637 067602 037 00 0 00 125342 TMSGC < > ; yes - next line
10638 067603 350 00 0 00 000004 AOS 4 ; point to next data item
10639 067604 550 02 0 05 067677 HRRZ 2,PACK4T(5)
10640 067605 307 02 0 00 000003 CAIG 2,3 ; special text?
10641 XCT [JRST [SOS 4 ; yes - handle it
10642 JRST PACK4C]
10643 JRST PACK4D
10644 JRST PACK4E
10645 067606 256 00 0 02 131426 JRST PACK4G](2)
10646 067607 256 00 0 05 067677 XCT PACK4T(5) ; no - print text
10647 067610 200 00 0 04 000000 MOVE (4) ; get counter data
10648 067611 010 15 0 00 000000 PNTDCL 15, ; print it
10649 067612 350 00 0 00 000005 PACK4C: AOS 5
10650 067613 254 00 0 00 067577 JRST PACK4B ; loop till done
10651
10652 ; Rcv/Xmt failure bit masks
10653
10654 067614 037 00 0 00 131432 PACK4D: TMSGC < Xmt Fail BitMask = >
10655 067615 201 02 0 00 067660 MOVEI 2,PACK4X ; get xmt failure bit mask table addr
10656 067616 254 00 0 00 067621 JRST .+3 ; continue
10657 067617 037 00 0 00 131437 PACK4E: TMSGC < Rcv Fail BitMask = >
10658 067620 201 02 0 00 067671 MOVEI 2,PACK4Y ; get rcv failure bit mask table addr
10659 067621 200 00 0 04 000000 MOVE (4) ; get counter data
10660 067622 037 13 0 00 000000 PNTHW ; print it
10661 067623 402 00 0 00 134210' SETZM NUMPNT# ; clear number printed?
10662 067624 336 00 0 02 000000 PACK4F: SKIPN (2) ; done yet?
10663 067625 254 00 0 00 067612 JRST PACK4C ; yes - exit
10664 067626 550 00 0 02 000000 HRRZ (2) ; get bit mask
10665 067627 554 01 0 02 000000 HLRZ 1,(2) ; get text address
10666 067630 350 00 0 00 000002 AOS 2 ; point to next entry
10667 067631 616 00 0 04 000000 TDNN (4) ; bit set?
10668 067632 254 00 0 00 067624 JRST PACK4F ; no - continue
10669 067633 350 03 0 00 134210' AOS 3,NUMPNT ; increment print count
10670 067634 306 03 0 00 000003 CAIN 3,3 ; end of 1st line?
10671 067635 037 00 0 00 131444 TMSGC < >
10672 067636 306 03 0 00 000006 CAIN 3,6 ; end of 2nd line?
10673 067637 037 00 0 00 131444 TMSGC < >
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 245
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0416
10674 067640 306 03 0 00 000011 CAIN 3,9 ; end of 3rd line?
10675 067641 037 00 0 00 131444 TMSGC < >
10676 067642 256 00 0 01 000000 XCT (1) ; yes - print text
10677 067643 254 00 0 00 067624 JRST PACK4F ; loop till done
10678
10679 067644 336 00 0 05 067700 PACK4G: SKIPN PACK4T+1(5) ; done with this section?
10680 JRST [SOS 4 ; yes - continue with other
10681 067645 254 00 0 00 131424 JRST PACK4C]
10682 067646 256 00 0 05 067700 XCT PACK4T+1(5) ; print text
10683 067647 554 00 0 04 000000 HLRZ (4) ; get counter data
10684 067650 010 15 0 00 000000 PNTDCL 15, ; print it
10685 067651 256 00 0 05 067700 XCT PACK4T+1(5) ; print text
10686 067652 550 00 0 04 000000 HRRZ (4) ; get counter data
10687 067653 010 15 0 00 000000 PNTDCL 15, ; print it
10688 067654 037 00 0 00 125342 TMSGC < > ; next line
10689 067655 271 05 0 00 000002 ADDI 5,2 ; point to next text sequence
10690 067656 350 00 0 00 000004 AOS 4 ; point to next data item
10691 067657 254 00 0 00 067644 JRST PACK4G ; loop till done
10692
10693 ; Xmt failure bit mask table
10694
10695 067660 131451 004000 PACK4X: [TMSG <(Lost carrier)>],,1B24
10696 067661 131455 002000 [TMSG <(XmtBuf PE)>],,1B25
10697 067662 131464 001000 [TMSG <(Remote failure to defer)>],,1B26
10698 067663 131471 000400 [TMSG <(Frame too long)>],,1B27
10699 067664 131475 000200 [TMSG <(Open circuit)>],,1B28
10700 067665 131502 000100 [TMSG <(Short circuit)>],,1B29
10701 067666 131510 000040 [TMSG <(Carrier check failed)>],,1B30
10702 067667 131516 000020 [TMSG <(Excessive collisions)>],,1B31
10703 067670 000000 000000 0
10704
10705 ; Rcv failure bit mask table
10706
10707 067671 131522 000400 PACK4Y: [TMSG <(Free list PE)>],,1B27
10708 067672 131526 000200 [TMSG <(Data overrun)>],,1B28
10709 067673 131471 000100 [TMSG <(Frame too long)>],,1B29
10710 067674 131533 000040 [TMSG <(Framing error)>],,1B30
10711 067675 131540 000020 [TMSG <(Block check error)>],,1B31
10712 067676 000000 000000 0
10713
10714 ; Counters table
10715
10716 067677 037 00 0 00 131541 PACK4T: TMSG <Bytes Rcvd = > ; 4
10717 067700 037 00 0 00 131545 TMSG <Bytes Xmtd = > ; 5
10718 067701 037 00 0 00 131551 TMSG <Frames Rcvd = > ; 6
10719 067702 037 00 0 00 131555 TMSG <Frames Xmtd = > ; 7
10720 067703 037 00 0 00 131561 TMSG <MC Bytes Rcvd = > ; 10
10721 067704 037 00 0 00 131565 TMSG <MC Frames Rcvd = > ; 11
10722 067705 037 00 0 00 131571 TMSG <Frames Deferred = > ; 12
10723 067706 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 246
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0417
10724 067707 037 00 0 00 131575 TMSG <Sngle Collisions = > ; 13
10725 067710 037 00 0 00 131601 TMSG <Multi Collisions = > ; 14
10726 067711 037 00 0 00 131605 TMSG <Xmit Failures = > ; 15
10727 067712 000000 000001 1 ; 16 XFBM
10728 067713 037 00 0 00 131611 TMSG <Coll.Det.Failed = > ; 17
10729 067714 000000 000000 0
10730 067715 037 00 0 00 131615 TMSG <Rcv Failures = > ; 20
10731 067716 000000 000002 2 ; 21 RFBM
10732 067717 037 00 0 00 131621 TMSG <Discarded unknwn = > ; 22
10733 067720 037 00 0 00 131625 TMSG <Discarded PT 1 = > ; 23
10734 067721 037 00 0 00 131631 TMSG <Discarded PT 2 = > ; 24
10735 067722 037 00 0 00 131635 TMSG <Discarded PT 3 = > ; 25
10736 067723 037 00 0 00 131641 TMSG <Discarded PT 4 = > ; 26
10737 067724 037 00 0 00 131645 TMSG <Discarded PT 5 = > ; 27
10738 067725 037 00 0 00 131651 TMSG <Discarded PT 6 = > ; 30
10739 067726 037 00 0 00 131655 TMSG <Discarded PT 7 = > ; 31
10740 067727 037 00 0 00 131661 TMSG <Discarded PT 8 = > ; 32
10741 067730 037 00 0 00 131665 TMSG <Discarded PT 9 = > ; 33
10742 067731 037 00 0 00 131671 TMSG <Discarded PT 10 = > ; 34
10743 067732 037 00 0 00 131675 TMSG <Discarded PT 11 = > ; 35
10744 067733 037 00 0 00 131701 TMSG <Discarded PT 12 = > ; 36
10745 067734 037 00 0 00 131705 TMSG <Discarded PT 13 = > ; 37
10746 067735 037 00 0 00 131711 TMSG <Discarded PT 14 = > ; 40
10747 067736 037 00 0 00 131715 TMSG <Discarded PT 15 = > ; 41
10748 067737 037 00 0 00 131721 TMSG <Discarded PT 16 = > ; 42
10749 067740 037 00 0 00 131725 TMSG <Unrec Frame Dest = > ; 43
10750 067741 037 00 0 00 131731 TMSG <Data Overrun = > ; 44
10751 067742 037 00 0 00 131735 TMSG <Sys Buff Unavail = > ; 45
10752 067743 037 00 0 00 131741 TMSG <Usr Buff Unavail = > ; 46
10753 067744 000000 000000 0
10754 067745 000000 000003 3
10755 067746 037 00 0 00 131745 TMSG <PLI Reg Read PE = > ; 47
10756 067747 037 00 0 00 131751 TMSG <PLI PE = > ; 47
10757 067750 037 00 0 00 131755 TMSG <Mover PE = > ; 50
10758 067751 037 00 0 00 131761 TMSG <CBUS PE = > ; 50
10759 067752 037 00 0 00 131765 TMSG <EBUS PE = > ; 51
10760 067753 037 00 0 00 131771 TMSG <EBUS QUE PE = > ; 51
10761 067754 037 00 0 00 131775 TMSG <Channel Error = > ; 52
10762 067755 037 00 0 00 132001 TMSG <Spur Chan Error = > ; 52
10763 067756 037 00 0 00 132005 TMSG <Spur Xmt Atn Err = > ; 53
10764 067757 037 00 0 00 132011 TMSG <CBUS Req Tmo Err = > ; 53
10765 067760 037 00 0 00 132015 TMSG <EBUS Req Tmo Err = > ; 54
10766 067761 037 00 0 00 132021 TMSG <CSR Grnt Tmo Err = > ; 54
10767 067762 037 00 0 00 132025 TMSG <Used Buffer PE = > ; 55
10768 067763 037 00 0 00 132031 TMSG <Xmt Buffer PE = > ; 55
10769 067764 000000 000000 0
10770 067765 037 00 0 00 132035 TMSG <Rsvd for ucode = > ; 56
10771 067766 037 00 0 00 132035 TMSG <Rsvd for ucode = > ; 57
10772 067767 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 247
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0418
10773
10774 ;#********************************************************************
10775 ;* PACK5 - Print a packet - DGRCV response
10776 ;#********************************************************************
10777
10778 067770 260 17 0 00 070237 PACK5: GO PHEAD ; print header data
10779 067771 037 00 0 00 131373 TMSGC < Text Length: >
10780 067772 200 00 0 12 000004 MOVE 4(PK) ; get length word
10781 067773 037 15 0 00 000000 PNTDEC ; print it
10782 067774 037 00 0 00 131377 TMSG <. (bytes)>
10783 067775 037 00 0 00 131413 TMSGC < Destination Addr: >
10784 067776 120 01 0 12 000005 DMOVE 1,5(PK) ; get destination address
10785 067777 260 17 0 00 070261 GO PADDR ; print address
10786 070000 037 00 0 00 132041 TMSGC < Source Addr: >
10787 070001 120 01 0 12 000007 DMOVE 1,7(PK) ; get source address
10788 070002 260 17 0 00 070261 GO PADDR ; print address
10789 070003 037 00 0 00 131401 TMSGC < PTT Value: >
10790 070004 200 00 0 12 000011 MOVE 11(PK) ; get PTT word
10791 070005 135 00 0 00 131405 LDB [POINT 16,0,31] ; get PTT value
10792 070006 037 16 0 00 000003 PNTOCS ; print it
10793 070007 037 00 0 00 132045 TMSGC < Data Pointer: >
10794 070010 200 01 0 12 000012 MOVE 1,12(PK) ; get text pointer
10795 070011 260 17 0 00 070537 GO LINKP ; print it
10796 070012 201 01 0 12 000013 MOVEI 1,13(PK) ; get text address
10797 070013 200 02 0 12 000004 MOVE 2,4(PK) ; get length word
10798 070014 400 04 0 00 000000 SETZ 4, ; set packing mode to COMPAT
10799 070015 260 17 0 00 070431 GO PTEXT ; print text data
10800 070016 263 17 0 00 000000 RTN ; return
10801
10802
10803 ;#********************************************************************
10804 ;* PACK6 - Print a packet - WRPLI command / PLIWR response
10805 ;#********************************************************************
10806
10807 070017 260 17 0 00 070237 PACK6: GO PHEAD ; print header data
10808 070020 037 00 0 00 132051 TMSGC < Control Bits = >
10809 070021 200 01 0 12 000004 MOVE 1,4(PK) ; get word
10810 070022 135 00 0 00 132055 LDB [POINT 4,1,23] ; get bits
10811 070023 037 16 0 00 000003 PNTOCS
10812 070024 037 00 0 00 132056 TMSGC < PLI Data = >
10813 070025 135 00 0 00 125343 LDB [POINT 8,1,35] ; get bits
10814 070026 037 16 0 00 000003 PNTOCS ; print
10815 070027 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 248
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0419
10816
10817 ;#********************************************************************
10818 ;* PACK7 - Print a packet - RDPLI command / PLIRD response
10819 ;#********************************************************************
10820
10821 070030 260 17 0 00 070237 PACK7: GO PHEAD ; print header data
10822 070031 037 00 0 00 132051 TMSGC < Control Bits = >
10823 070032 200 01 0 12 000004 MOVE 1,4(PK) ; get word
10824 070033 135 00 0 00 132055 LDB [POINT 4,1,23] ; get bits
10825 070034 037 16 0 00 000003 PNTOCS ; print
10826 070035 037 00 0 00 132056 TMSGC < PLI Data = >
10827 070036 135 00 0 00 125343 LDB [POINT 8,1,35] ; get bits
10828 070037 037 16 0 00 000003 PNTOCS ; print
10829 070040 263 17 0 00 000000 RTN ; return
10830
10831
10832 ;#********************************************************************
10833 ;* PACK10 - Print a packet - RDNSA command / NSARD response
10834 ;#********************************************************************
10835
10836 070041 260 17 0 00 070237 PACK10: GO PHEAD ; print header data
10837 070042 332 00 0 00 134146' SKIPE CMDPAK ; command packet?
10838 070043 263 17 0 00 000000 RTN ; yes - exit
10839
10840 ; Response packet NSARD
10841
10842 070044 037 00 0 00 132061 TMSGC < NI Address: >
10843 070045 120 01 0 12 000004 DMOVE 1,4(PK) ; get destination address
10844 070046 260 17 0 00 070261 GO PADDR ; print address
10845 070047 120 01 0 12 000006 DMOVE 1,6(PK) ; get special word
10846 070050 037 00 0 00 132065 TMSGC < AMC = >
10847 070051 135 00 0 00 132067 LDB [POINT 1,1,33] ; get AMC bit
10848 070052 037 16 0 00 000003 PNTOCS ; print it
10849 070053 037 00 0 00 132070 TMSG <, H4000 Mode = >
10850 070054 135 00 0 00 132074 LDB [POINT 1,1,34] ; get H4000 MODE bit
10851 070055 037 16 0 00 000003 PNTOCS ; print it
10852 070056 037 00 0 00 132075 TMSG <, PRMSC Mode = >
10853 070057 135 00 0 00 132101 LDB [POINT 1,1,35] ; get PRMSC MODE bit
10854 070060 037 16 0 00 000003 PNTOCS ; print it
10855 070061 037 00 0 00 132102 TMSGC < UCode Version = >
10856 070062 135 00 0 00 131335 LDB [POINT 8,2,23] ; get UCode Version
10857 070063 037 16 0 00 000003 PNTOCS ; print it
10858 070064 037 00 0 00 132106 TMSG <, # MCAT = >
10859 070065 135 00 0 00 132111 LDB [POINT 6,2,29] ; get # MCAT
10860 070066 037 16 0 00 000003 PNTOCS ; print it
10861 070067 037 00 0 00 132112 TMSG <, # PTT = >
10862 070070 135 00 0 00 127603 LDB [POINT 6,2,35] ; get # PTT
10863 070071 037 16 0 00 000003 PNTOCS ; print it
10864 070072 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 249
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0420
10865
10866 ;#********************************************************************
10867 ;* PACK11 - Print a packet - WRNSA command / NSAWR response
10868 ;#********************************************************************
10869
10870 070073 260 17 0 00 070237 PACK11: GO PHEAD ; print header data
10871 070074 037 00 0 00 132061 TMSGC < NI Address: >
10872 070075 120 01 0 12 000004 DMOVE 1,4(PK) ; get destination address
10873 070076 260 17 0 00 070261 GO PADDR ; print address
10874 070077 120 01 0 12 000006 DMOVE 1,6(PK) ; get special word
10875 070100 037 00 0 00 132065 TMSGC < AMC = >
10876 070101 135 00 0 00 132067 LDB [POINT 1,1,33] ; get AMC bit
10877 070102 037 16 0 00 000003 PNTOCS ; print it
10878 070103 037 00 0 00 132070 TMSG <, H4000 Mode = >
10879 070104 135 00 0 00 132074 LDB [POINT 1,1,34] ; get H4000 MODE bit
10880 070105 037 16 0 00 000003 PNTOCS ; print it
10881 070106 037 00 0 00 132075 TMSG <, PRMSC Mode = >
10882 070107 135 00 0 00 132101 LDB [POINT 1,1,35] ; get PRMSC MODE bit
10883 070110 037 16 0 00 000003 PNTOCS ; print it
10884 070111 037 00 0 00 132115 TMSGC < # Retries Allowed = >
10885 070112 135 00 0 00 132122 LDB [POINT 12,2,35] ; get # Retries Allowed
10886 070113 037 16 0 00 000003 PNTOCS ; print it
10887 070114 263 17 0 00 000000 RTN ; return
10888
10889
10890 ;#********************************************************************
10891 ;* PACKG - Print a general type packet (unrecognized)
10892 ;#********************************************************************
10893
10894 070115 260 17 0 00 070237 PACKG: GO PHEAD ; print header data
10895 070116 037 00 0 00 132123 TMSGC < Packet Data:> ; print heading
10896 070117 201 01 0 12 000005 MOVEI 1,5(PK) ; get address to start
10897 070120 201 02 0 00 000005 MOVEI 2,5 ; initialize word number
10898 070121 200 03 0 00 033706 MOVE 3,DSPRIN ; get words to print
10899 070122 037 00 0 00 132127 PMISC0: TMSGC < +> ; print word count
10900 070123 200 00 0 00 000002 MOVE 2 ; get word number
10901 070124 037 16 0 00 000003 PNTOCS ; print it
10902 070125 037 00 0 00 124736 TMSG </ >
10903 070126 200 00 0 01 000000 MOVE (1) ; get packet data
10904 070127 037 13 0 00 000000 PNTHW ; print it
10905 070130 350 00 0 00 000001 AOS 1 ; point to next word
10906 070131 350 00 0 00 000002 AOS 2 ; increment word count
10907 070132 367 03 0 00 070122 SOJG 3,PMISC0 ; done yet? no - loop till done
10908 070133 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 250
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0421
10909
10910 ;#********************************************************************
10911 ;* OPCPNT - Print opcode of command packet
10912 ;
10913 ; OP - Contains opcode
10914 ;#********************************************************************
10915
10916 070134 261 17 0 00 000000 OPCPNT: RPUT (0,1) ; save AC's
10917
10918 070136 200 00 0 00 000011 MOVE OP ; get op code
10919 070137 037 16 0 00 000003 PNTOCS ; print it
10920 070140 037 00 0 00 117115 TMSG <->
10921 070141 201 01 0 00 070163 MOVEI 1,CMDOPC-1 ; get cmd packet table
10922 070142 336 00 0 00 134146' SKIPN CMDPAK ; command packet?
10923 070143 201 01 0 00 070174 MOVEI 1,RSPOPC-1 ; no - get rsp packet table
10924 070144 350 00 0 00 000001 OPCPN0: AOS 1 ; point to next entry
10925 070145 554 00 0 01 000000 HLRZ (1) ; get entry
10926 070146 322 00 0 00 070155 JUMPE OPCPNE ; done? yes - error
10927 070147 312 00 0 00 000011 CAME OP ; correct?
10928 070150 254 00 0 00 070144 JRST OPCPN0 ; no - look at next entry
10929 070151 550 01 0 01 000000 HRRZ 1,(1) ; get address of message
10930 070152 200 01 0 01 000000 MOVE 1,(1) ; get message
10931 070153 256 00 0 00 000001 XCT 1 ; print it
10932 070154 254 00 0 00 070161 JRST OPCPNX ; exit
10933 070155 037 00 0 00 132130 OPCPNE: TMSG <??>
10934 070156 200 00 0 00 000011 MOVE OP
10935 070157 037 16 0 00 000003 PNTOCS
10936 070160 037 00 0 00 132130 TMSG <??>
10937 070161 262 17 0 00 000001 OPCPNX: RGET (1,0) ; restore AC's
10938
10939 070163 263 17 0 00 000000 RTN ; return
10940
10941 ; Table of cmd/rsp opcodes
10942
10943 070164 000001 132133 CMDOPC: SNDDG,,[TMSG <SNDDG>]
10944 070165 000002 132136 LDMCAT,,[TMSG <LDMCAT>]
10945 070166 000003 132141 LDPTT,,[TMSG <LDPTT>]
10946 070167 000004 132144 RCCNT,,[TMSG <RCCNT>]
10947 070170 000006 132147 WRPLI,,[TMSG <WRTPLI>]
10948 070171 000007 132152 RDPLI,,[TMSG <RDPLI>]
10949 070172 000010 132155 RDNSA,,[TMSG <RDNSA>]
10950 070173 000011 132160 WRNSA,,[TMSG <WRTNSA>]
10951 070174 000000 000000 0
10952
10953 070175 000001 132163 RSPOPC: DGSNT,,[TMSG <DGSNT>]
10954 070176 000002 132166 MCATLD,,[TMSG <MCATLD>]
10955 070177 000003 132171 PTTLD,,[TMSG <PTTLD>]
10956 070200 000004 132174 CNTRC,,[TMSG <CNTRC>]
10957 070201 000005 132177 DGRCV,,[TMSG <DGRCV>]
10958 070202 000006 132202 PLIWR,,[TMSG <PLIWRT>]
10959 070203 000007 132205 PLIRD,,[TMSG <PLIRD>]
10960 070204 000010 132210 NSARD,,[TMSG <NSARD>]
10961 070205 000011 132213 NSAWR,,[TMSG <NSAWRT>]
10962 070206 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 251
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0422
10963
10964 ;#********************************************************************
10965 ;* DECOPC - Decode op code
10966 ;
10967 ; Given: OP - Contains op code to decode
10968 ;
10969 ; Returns: AC1 - Contains offset address of opcode (0..n)
10970 ; AC2 - Contains 0 - Sent
10971 ; 1 - Received (as a response ...)
10972 ; 2 - Received (from another port)
10973 ; +1 - No match
10974 ; +2 - Match
10975 ;#********************************************************************
10976
10977 070207 261 17 0 00 000000 DECOPC: PUT 0 ; save AC0
10978 070210 201 01 0 00 070224 MOVEI 1,DECTAB-1 ; initialize table address
10979 070211 350 00 0 00 000001 DECOP0: AOS 1 ; point to next entry
10980 070212 336 00 0 01 000000 SKIPN (1) ; end of list?
10981 070213 254 00 0 00 070223 JRST DECOPX ; yes - exit +1 (error)
10982 070214 550 00 0 01 000000 HRRZ (1) ; get op code
10983 070215 312 00 0 00 000011 CAME OP ; match?
10984 070216 254 00 0 00 070211 JRST DECOP0 ; no - loop till done
10985 070217 200 02 0 01 000000 MOVE 2,(1) ; get data
10986 070220 135 01 0 00 132214 LDB 1,[POINT 15,2,17] ; get offset
10987 070221 135 02 0 00 132215 LDB 2,[POINT 3,2,2] ; get type
10988 070222 350 00 0 17 777777 AOS -1(P) ; set up return +2
10989 070223 262 17 0 00 000000 DECOPX: GET 0 ; restore AC0
10990 070224 263 17 0 00 000000 RTN ; exit
10991
10992 ; Table of op codes
10993
10994 070225 000000 000001 DECTAB: 0B2!0B17!SNDDG ; 0
10995 070226 000001 000002 0B2!1B17!LDMCAT ; 1
10996 070227 000002 000003 0B2!2B17!LDPTT ; 2
10997 070230 000003 000004 0B2!3B17!RCCNT ; 3
10998 070231 000004 000006 0B2!4B17!WRPLI ; 4
10999 070232 000005 000007 0B2!5B17!RDPLI ; 5
11000 070233 000006 000010 0B2!6B17!RDNSA ; 6
11001 070234 000007 000011 0B2!7B17!WRNSA ; 7
11002 070235 200010 000005 2B2!10B17!DGRCV ; 10
11003 070236 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 252
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0423
11004
11005 ;#********************************************************************
11006 ;* PHEAD - Print header info of a packet
11007 ;#********************************************************************
11008
11009 070237 261 17 0 00 000000 PHEAD: RPUT (0,1) ; save AC's
11010
11011
11012 ; Print Flink/Blink
11013
11014 070241 037 00 0 00 132216 TMSGC < Flink = >
11015 070242 200 01 0 12 000000 MOVE 1,(PK) ; get FLINK
11016 070243 260 17 0 00 070537 GO LINKP ; print it
11017 070244 037 00 0 00 132221 TMSG < / Blink = >
11018 070245 200 01 0 12 000001 MOVE 1,1(PK) ; get BLINK
11019 070246 260 17 0 00 070537 GO LINKP ; print it
11020 070247 037 00 0 00 132224 TMSGC < Status Word: >
11021 070250 200 00 0 12 000003 MOVE 3(PK) ; get status word
11022 070251 037 13 0 00 000000 PNTHW ; print it
11023 070252 037 00 0 00 132230 TMSGC < OpCode = >
11024 070253 260 17 0 00 070134 GO OPCPNT ; print OP CODE
11025 070254 260 17 0 00 070360 GO PFLAGS
11026 070255 260 17 0 00 070276 GO PSTATS
11027 070256 262 17 0 00 000001 RGET (1,0) ; restore AC's
11028
11029 070260 263 17 0 00 000000 RTN ; return
11030
11031
11032 ;#********************************************************************
11033 ;* PADDR - Print 6 byte source/destination address
11034 ;
11035 ; AC1,AC2 - Contain the address to print
11036 ;#********************************************************************
11037
11038 070261 135 00 0 00 132233 PADDR: LDB [POINT 8,1,31] ; get byte 0
11039 070262 037 03 0 00 000000 PNT3 ; print it
11040 070263 135 00 0 00 131351 LDB [POINT 8,1,23] ; get byte 1
11041 070264 037 03 0 00 000000 PNT3 ; print it
11042 070265 135 00 0 00 132234 LDB [POINT 8,1,15] ; get byte 2
11043 070266 037 03 0 00 000000 PNT3 ; print it
11044 070267 135 00 0 00 132235 LDB [POINT 8,1,7] ; get byte 3
11045 070270 037 03 0 00 000000 PNT3 ; print it
11046 070271 135 00 0 00 131334 LDB [POINT 8,2,31] ; get byte 4
11047 070272 037 03 0 00 000000 PNT3 ; print it
11048 070273 135 00 0 00 131335 LDB [POINT 8,2,23] ; get byte 5
11049 070274 037 03 0 00 000000 PNT3 ; print it
11050 070275 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 253
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0424
11051
11052 ;#********************************************************************
11053 ;* PSTATS - Print status field
11054 ;#********************************************************************
11055
11056 070276 261 17 0 00 000000 PSTATS: RPUT (0,1,2,3) ; save AC's
11057
11058 070302 037 00 0 00 132236 TMSGC < Status >
11059 070303 200 01 0 12 000003 MOVE 1,3(PK) ; get word
11060 070304 135 01 0 00 132235 LDB 1,[POINT 8,1,7] ; get status byte
11061 070305 200 00 0 00 000001 MOVE 1 ; get octal
11062 070306 037 03 0 00 000000 PNT3 ; print it
11063 070307 037 00 0 00 126465 TMSG <= >
11064 070310 606 01 0 00 000001 TRNN 1,1 ; any error?
11065 JRST [TMSG <No Error> ; no - print no error
11066 070311 254 00 0 00 132243 JRST PSTATX] ; and exit
11067
11068 ; Error byte
11069
11070 070312 135 02 0 00 132245 PSTAT0: LDB 2,[POINT 5,1,34] ; get error bits
11071 070313 201 01 0 00 070334 MOVEI 1,STATAB-1 ; initialize table address
11072 070314 350 00 0 00 000001 PSTAT1: AOS 1 ; point to next entry
11073 070315 337 00 0 01 000000 SKIPG (1) ; end of list?
11074 070316 254 00 0 00 070325 JRST PSTAT2 ; yes - print unrecognized
11075 070317 554 00 0 01 000000 HLRZ (1) ; get error code
11076 070320 312 00 0 00 000002 CAME 2 ; match?
11077 070321 254 00 0 00 070314 JRST PSTAT1 ; no - keep looking
11078 070322 550 01 0 01 000000 HRRZ 1,(1) ; get address of text to print
11079 070323 256 00 0 01 000000 XCT (1) ; print it
11080 070324 254 00 0 00 070330 JRST PSTATX ; exit
11081
11082 ; Not recognized
11083
11084 070325 037 00 0 00 132246 PSTAT2: TMSG < ? Invalid error code - >
11085 070326 200 00 0 00 000002 MOVE 2
11086 070327 037 16 0 00 000003 PNTOCS
11087
11088 ; Exit
11089
11090 070330 262 17 0 00 000003 PSTATX: RGET (3,2,1,0) ; done - restore AC's
11091
11092 070334 263 17 0 00 000000 RTN ; and return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 254
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0425
11093
11094 ; Status error table
11095
11096 070335 000000 132260 STATAB: 0,,[TMSG <Excessive collisions>]
11097 070336 000001 132266 1,,[TMSG <Carrier check failed>]
11098 070337 000002 132275 2,,[TMSG <Collision detect check failed>]
11099 070340 000003 132301 3,,[TMSG <Short circuit>]
11100 070341 000004 132305 4,,[TMSG <Open circuit>]
11101 070342 000005 132311 5,,[TMSG <Frame too long>]
11102 070343 000006 132323 6,,[TMSG <Remove failure to deter (late collision)>]
11103 070344 000007 132332 7,,[TMSG <Block check error (CRC error)>]
11104 070345 000010 132336 10,,[TMSG <Framing error>]
11105 070346 000011 132342 11,,[TMSG <Data overrun>]
11106 070347 000012 132351 12,,[TMSG <Unrecognized protocol type>]
11107 070350 000013 132356 13,,[TMSG <Frame too short>]
11108
11109 070351 000031 132364 31,,[TMSG <Queue length violation>]
11110 070352 000032 132372 32,,[TMSG <Illegal PLI function>]
11111 070353 000033 132400 33,,[TMSG <Unrecognized command>]
11112 070354 000034 132406 34,,[TMSG <Buffer length violation>]
11113 070355 000035 132413 35,,[TMSG <Free buffer list PE>]
11114 070356 000036 132420 36,,[TMSG <Transmit buffer PE>]
11115 070357 777777 777777 -1
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 255
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0426
11116
11117 ;#********************************************************************
11118 ;* PFLAGS - Print flags field (AC1 contains status byte (right justified))
11119 ;#********************************************************************
11120
11121 070360 261 17 0 00 000000 PFLAGS: RPUT (0,1,2,3) ; save AC's
11122
11123 070364 200 01 0 12 000003 MOVE 1,3(PK) ; get word
11124 070365 135 01 0 00 132234 LDB 1,[POINT 8,1,15] ; get flags byte
11125 070366 037 00 0 00 132421 TMSGC < Flags >
11126 070367 200 00 0 00 000001 MOVE 1 ; get octal
11127 070370 037 03 0 00 000000 PNT3
11128 070371 037 00 0 00 126465 TMSG <= >
11129 070372 200 01 0 12 000003 MOVE 1,3(PK) ; get word
11130 070373 135 00 0 00 131351 LDB [POINT 8,1,23] ; get op code
11131 070374 135 01 0 00 132234 LDB 1,[POINT 8,1,15] ; get flags byte
11132 070375 302 00 0 00 000001 CAIE DGSNT ; datagram sent or
11133 070376 306 00 0 00 000005 CAIN DGRCV ; received?
11134 070377 334 00 0 00 000000 SKIPA ; yes - continue
11135 070400 254 00 0 00 070416 JRST PFLAG0 ; no - just print response bit
11136
11137 ; Datagram
11138
11139 070401 135 02 0 00 132424 LDB 2,[POINT 1,1,28] ; get bits
11140 XCT [TMSG <COMPAT mode> ; print
11141 070402 256 00 0 02 132433 TMSG <HIDEN mode>](2)
11142 070403 037 00 0 00 132435 TMSG <, ICRC=> ; print 'include CRC' flag
11143 070404 135 00 0 00 132437 LDB [POINT 1,1,29]
11144 070405 037 16 0 00 000003 PNTOCS
11145 070406 037 00 0 00 132440 TMSG <, PAD=> ; print 'PAD' flag
11146 070407 135 00 0 00 132442 LDB [POINT 1,1,30]
11147 070410 037 16 0 00 000003 PNTOCS
11148 070411 037 00 0 00 132443 TMSG <, BSD=> ; print 'BSD' flag
11149 070412 135 00 0 00 132445 LDB [POINT 1,1,32]
11150 070413 037 16 0 00 000003 PNTOCS
11151 070414 037 00 0 00 132446 TMSG <, >
11152 070415 254 00 0 00 070421 JRST PFLAG1
11153
11154 ; Non-datagram
11155
11156 070416 037 00 0 00 132447 PFLAG0: TMSG <ClrCntr=>
11157 070417 135 02 0 00 132074 LDB 2,[POINT 1,1,34] ; get bits
11158 XCT [TMSG <No, > ; print
11159 070420 256 00 0 02 132455 TMSG <Yes, >](2)
11160
11161 ; Common to either datagram or non-datagram
11162
11163 070421 037 00 0 00 132457 PFLAG1: TMSG <Rsp requested=>
11164 070422 135 02 0 00 132101 LDB 2,[POINT 1,1,35] ; get bits
11165 XCT [TMSG <No> ; print
11166 070423 256 00 0 02 132464 TMSG <Yes>](2)
11167 070424 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
11168
11169 070430 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 256
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0427
11170
11171 ;#********************************************************************
11172 ;* PTEXT - Print text data in a datagram
11173 ;
11174 ; AC1 - Contains text address
11175 ; AC2 - Contains text length (in bytes)
11176 ; AC4 - Contains packing mode 0-COMPAT / 1-HIDEN
11177 ;#********************************************************************
11178
11179 070431 200 03 0 00 132466 PTEXT: MOVE 3,[POINT 8,0] ; get initial byte pointer
11180 070432 434 03 0 00 000001 IOR 3,1 ; include in byte pointer
11181 070433 200 00 0 00 033706 MOVE DSPRIN ; get max length to print
11182 070434 242 00 0 00 000002 LSH 2 ; calculate max bytes
11183 070435 315 00 0 00 000002 CAMGE 2 ; exceed maximum?
11184 070436 200 02 0 00 000000 MOVE 2,0 ; yes - limit to maximum
11185 070437 326 04 0 00 070452 JUMPN 4,PTEXT1 ; HIDEN mode? yes - go handle
11186
11187 ; COMPAT mode
11188
11189 070440 037 00 0 00 132467 PTEXT0: TMSGC < Text: +0/ >
11190 070441 400 01 0 00 000000 SETZ 1, ; clear byte count
11191 070442 134 00 0 00 000003 ILDB 3 ; get byte to print
11192 070443 037 03 0 00 000000 PNT3 ; print it
11193 070444 350 00 0 00 000001 AOS 1 ; increment byte count
11194 070445 367 02 0 00 070447 SOJG 2,.+2 ; done yet? no - continue
11195 070446 263 17 0 00 000000 RTN ; yes - return
11196 070447 606 01 0 00 000007 TRNN 1,7 ; end of line?
11197 GO [TMSGC < +> ; yes - start a new line
11198 MOVE 1
11199 LSH -2
11200 PNTOCS
11201 TMSG </ >
11202 070450 260 17 0 00 132475 RTN]
11203 070451 254 00 0 00 070442 JRST PTEXT0+2 ; loop till done
11204
11205 ; HIDEN mode
11206
11207 070452 037 00 0 00 132467 PTEXT1: TMSGC < Text: +0/ >
11208 070453 402 00 0 00 134257' SETZM WORCNT# ; clear word count
11209 070454 201 00 0 00 000011 PTEXT2: MOVEI 9 ; get bytes per line
11210 070455 202 00 0 00 134167' MOVEM LINCNT# ; set up byte count
11211 070456 120 03 0 01 000000 DMOVE 3,(1) ; get 2 words to print
11212 070457 135 00 0 00 132503 PTEXT3: LDB [POINT 8,3,7] ; get byte to print
11213 070460 037 03 0 00 000000 PNT3 ; print it
11214 070461 246 03 0 00 000010 LSHC 3,8 ; left shift 8 bits
11215 070462 363 02 0 00 117037 SOJLE 2,[RTN] ; byte count exhausted? yes - exit
11216 070463 373 00 0 00 134167' SOSLE LINCNT ; line byte count exhausted?
11217 070464 254 00 0 00 070457 JRST PTEXT3 ; no - loop till done
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 257
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0428
11218 070465 037 00 0 00 132472 TMSGC < +> ; print new line
11219 070466 350 00 0 00 134257' AOS WORCNT ; increment word count
11220 070467 350 00 0 00 134257' AOS WORCNT ; increment word count
11221 070470 200 00 0 00 134257' MOVE WORCNT ; get word count
11222 070471 037 16 0 00 000003 PNTOCS ; print it
11223 070472 037 00 0 00 124736 TMSG </ >
11224 070473 271 01 0 00 000002 ADDI 1,2 ; increment word address
11225 070474 254 00 0 00 070454 JRST PTEXT2 ; keep looping
11226
11227
11228 ;#********************************************************************
11229 ;* PBSD - Print BSD segment
11230 ;
11231 ; AC1 - Contains segment number
11232 ; AC3 - Contains address of start of segment
11233 ;#********************************************************************
11234
11235 070475 261 17 0 00 000000 PBSD: RPUT (0,1,2,3,4) ; save AC's
11236
11237 070502 037 00 0 00 132504 TMSGC < Segment #>
11238 070503 200 00 0 00 000001 MOVE 1
11239 070504 037 16 0 00 000003 PNTOCS
11240 070505 037 00 0 00 131412 TMSG <: >
11241 070506 200 02 0 03 000000 MOVE 2,(3) ; get first word
11242 070507 135 04 0 00 132507 LDB 4,[POINT 1,2,6] ; get packing mode
11243 XCT [TMSG <COMPAT> ; print it
11244 070510 256 00 0 04 132514 TMSG <HIDEN>](4)
11245 070511 037 00 0 00 132516 TMSG <, BaseAdr = >
11246 070512 135 01 0 00 130520 LDB 1,[POINT 24,2,35] ; get address
11247 070513 260 17 0 00 070537 GO LINKP ; print it
11248 070514 037 00 0 00 132521 TMSG <, NextAdr = >
11249 070515 200 01 0 03 000001 MOVE 1,1(3) ; get 2nd word
11250 070516 260 17 0 00 070544 GO LINKV ; print it
11251 070517 037 00 0 00 132524 TMSG <, Length = >
11252 070520 200 00 0 03 000002 MOVE 2(3) ; get length
11253 070521 037 15 0 00 000000 PNTDEC ; print it
11254 070522 037 00 0 00 131377 TMSG <. (bytes)>
11255 070523 135 01 0 00 130520 LDB 1,[POINT 24,2,35] ; get address
11256 070524 260 17 0 00 066652 GO CONVIR ; convert to virtual
11257 070525 306 13 0 00 000001 CAIN Q,1 ; response queue?
11258 070526 201 01 0 00 073020 MOVEI 1,RSPONS+20 ; yes - use different address
11259 070527 200 02 0 03 000002 MOVE 2,2(3) ; get length
11260 070530 260 17 0 00 070431 GO PTEXT ; print text data
11261 070531 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
11262
11263 070536 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 258
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0429
11264
11265 ;#********************************************************************
11266 ;* LINKP - Print FLINK/BLINK data in symbolic format
11267 ;
11268 ; Given: AC1 - Contains the LINK data (physical address)
11269 ;#********************************************************************
11270
11271 070537 261 17 0 00 000000 LINKP: RPUT (0,1,2) ; save AC's
11272
11273 070542 260 17 0 00 066652 GO CONVIR ; convert to virtual address
11274 070543 254 00 0 00 070547 PJRST LINKG ; continue
11275
11276
11277 ;#********************************************************************
11278 ;* LINKV - Print FLINK/BLINK data in symbolic format
11279 ;
11280 ; Given: AC1 - Contains the LINK data (virtual address)
11281 ;#********************************************************************
11282
11283 070544 261 17 0 00 000000 LINKV: RPUT (0,1,2) ; save AC's
11284
11285 070547 200 00 0 00 000001 LINKG: MOVE 1 ; get into AC0
11286 070550 201 02 0 00 070567 MOVEI 2,LINTAB ; get table address
11287 070551 554 01 0 02 000000 LINKV0: HLRZ 1,(2) ; get virtual address
11288 070552 322 01 0 00 070557 JUMPE 1,LINKV1 ; not found? yes - go print octal
11289 070553 316 00 0 00 000001 CAMN 1 ; correct one?
11290 070554 254 00 0 00 070561 JRST LINKV2 ; yes - continue
11291 070555 350 00 0 00 000002 AOS 2 ; point to next address
11292 070556 254 00 0 00 070551 JRST LINKV0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 259
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0430
11293
11294 070557 037 16 0 00 000003 LINKV1: PNTOCS ; print it
11295 070560 254 00 0 00 070563 JRST LINKVX ; exit
11296
11297 070561 550 02 0 02 000000 LINKV2: HRRZ 2,(2) ; get address
11298 070562 256 00 0 02 000000 XCT (2) ; print text
11299
11300 070563 262 17 0 00 000002 LINKVX: RGET (2,1,0) ; restore AC's
11301
11302 070566 263 17 0 00 000000 RTN ; return
11303
11304 ; Virtual address translation table
11305
11306 070567 072000 132531 LINTAB: PCB,,[TMSG <PCB >]
11307 070570 072001 132534 PCB+1,,[TMSG <PCB+1 >]
11308 070571 072004 132537 PCB+4,,[TMSG <PCB+4 >]
11309 070572 072005 132542 PCB+5,,[TMSG <PCB+5 >]
11310 070573 072010 132545 PCB+10,,[TMSG <PCB+10>]
11311 070574 072011 132550 PCB+11,,[TMSG <PCB+11>]
11312 070575 072031 132553 PCB+31,,[TMSG <PCB+31>]
11313 070576 105000 132556 PTABLE,,[TMSG <PTABLE>]
11314 070577 115320 132561 MTABLE,,[TMSG <MTABLE>]
11315 070600 105070 132564 PTTFQ,,[TMSG <PTTFQ >]
11316 070601 105071 132567 PTTFQ+1,,[TMSG <PTTFQ+1>]
11317 070602 105074 132572 PTTF0,,[TMSG <PTTF0 >]
11318 070603 106000 132575 PTTF1,,[TMSG <PTTF1 >]
11319 070604 106310 132600 PTTF2,,[TMSG <PTTF2 >]
11320 070605 107000 132603 PTTF3,,[TMSG <PTTF3 >]
11321 070606 107310 132606 PTTF4,,[TMSG <PTTF4 >]
11322 070607 110000 132611 PTTF5,,[TMSG <PTTF5 >]
11323 070610 110310 132614 PTTF6,,[TMSG <PTTF6 >]
11324 070611 111000 132617 PTTF7,,[TMSG <PTTF7 >]
11325 070612 111310 132622 PTTF10,,[TMSG <PTTF10>]
11326 070613 112000 132625 PTTF11,,[TMSG <PTTF11>]
11327 070614 112310 132630 PTTF12,,[TMSG <PTTF12>]
11328 070615 113000 132633 PTTF13,,[TMSG <PTTF13>]
11329 070616 113310 132636 PTTF14,,[TMSG <PTTF14>]
11330 070617 114000 132641 PTTF15,,[TMSG <PTTF15>]
11331 070620 114310 132644 PTTF16,,[TMSG <PTTF16>]
11332 070621 115000 132647 PTTF17,,[TMSG <PTTF17>]
11333 070622 075000 132652 QUNKF0,,[TMSG <QUNKF0>]
11334 070623 076000 132655 QUNKF1,,[TMSG <QUNKF1>]
11335 070624 077000 132660 QUNKF2,,[TMSG <QUNKF2>]
11336 070625 100000 132663 QUNKF3,,[TMSG <QUNKF3>]
11337 070626 101000 132666 QUNKF4,,[TMSG <QUNKF4>]
11338 070627 102000 132671 QUNKF5,,[TMSG <QUNKF5>]
11339 070630 103000 132674 QUNKF6,,[TMSG <QUNKF6>]
11340 070631 104000 132677 QUNKF7,,[TMSG <QUNKF7>]
11341 070632 072114 132702 PACKET,,[TMSG <PACKET>]
11342 070633 072127 132705 PACKET+13,,[TMSG <PACKET+13>]
11343 070634 072130 132710 PACKET+14,,[TMSG <PACKET+14>]
11344 070635 072134 132713 PACKET+20,,[TMSG <PACKET+20>]
11345
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 260
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0431
11346 070636 105107 132716 PTTF0+13,,[TMSG <PTTF0+13 >]
11347 070637 106013 132721 PTTF1+13,,[TMSG <PTTF1+13 >]
11348 070640 106323 132724 PTTF2+13,,[TMSG <PTTF2+13 >]
11349 070641 107013 132727 PTTF3+13,,[TMSG <PTTF3+13 >]
11350 070642 107323 132732 PTTF4+13,,[TMSG <PTTF4+13 >]
11351 070643 110013 132735 PTTF5+13,,[TMSG <PTTF5+13 >]
11352 070644 110323 132740 PTTF6+13,,[TMSG <PTTF6+13 >]
11353 070645 111013 132743 PTTF7+13,,[TMSG <PTTF7+13 >]
11354 070646 111323 132746 PTTF10+13,,[TMSG <PTTF10+13>]
11355 070647 112013 132751 PTTF11+13,,[TMSG <PTTF11+13>]
11356 070650 112323 132754 PTTF12+13,,[TMSG <PTTF12+13>]
11357 070651 113013 132757 PTTF13+13,,[TMSG <PTTF13+13>]
11358 070652 113323 132762 PTTF14+13,,[TMSG <PTTF14+13>]
11359 070653 114013 132765 PTTF15+13,,[TMSG <PTTF15+13>]
11360 070654 114323 132770 PTTF16+13,,[TMSG <PTTF16+13>]
11361 070655 115013 132773 PTTF17+13,,[TMSG <PTTF17+13>]
11362 070656 075013 132776 QUNKF0+13,,[TMSG <QUNKF0+13>]
11363 070657 076013 133001 QUNKF1+13,,[TMSG <QUNKF1+13>]
11364 070660 077013 133004 QUNKF2+13,,[TMSG <QUNKF2+13>]
11365 070661 100013 133007 QUNKF3+13,,[TMSG <QUNKF3+13>]
11366 070662 101013 133012 QUNKF4+13,,[TMSG <QUNKF4+13>]
11367 070663 102013 133015 QUNKF5+13,,[TMSG <QUNKF5+13>]
11368 070664 103013 133020 QUNKF6+13,,[TMSG <QUNKF6+13>]
11369 070665 104013 133023 QUNKF7+13,,[TMSG <QUNKF7+13>]
11370
11371 070666 105110 133026 PTTF0+14,,[TMSG <PTTF0+14 >]
11372 070667 106014 133031 PTTF1+14,,[TMSG <PTTF1+14 >]
11373 070670 106324 133034 PTTF2+14,,[TMSG <PTTF2+14 >]
11374 070671 107014 133037 PTTF3+14,,[TMSG <PTTF3+14 >]
11375 070672 107324 133042 PTTF4+14,,[TMSG <PTTF4+14 >]
11376 070673 110014 133045 PTTF5+14,,[TMSG <PTTF5+14 >]
11377 070674 110324 133050 PTTF6+14,,[TMSG <PTTF6+14 >]
11378 070675 111014 133053 PTTF7+14,,[TMSG <PTTF7+14 >]
11379 070676 111324 133056 PTTF10+14,,[TMSG <PTTF10+14>]
11380 070677 112014 133061 PTTF11+14,,[TMSG <PTTF11+14>]
11381 070700 112324 133064 PTTF12+14,,[TMSG <PTTF12+14>]
11382 070701 113014 133067 PTTF13+14,,[TMSG <PTTF13+14>]
11383 070702 113324 133072 PTTF14+14,,[TMSG <PTTF14+14>]
11384 070703 114014 133075 PTTF15+14,,[TMSG <PTTF15+14>]
11385 070704 114324 133100 PTTF16+14,,[TMSG <PTTF16+14>]
11386 070705 115014 133103 PTTF17+14,,[TMSG <PTTF17+14>]
11387 070706 075014 133106 QUNKF0+14,,[TMSG <QUNKF0+14>]
11388 070707 076014 133111 QUNKF1+14,,[TMSG <QUNKF1+14>]
11389 070710 077014 133114 QUNKF2+14,,[TMSG <QUNKF2+14>]
11390 070711 100014 133117 QUNKF3+14,,[TMSG <QUNKF3+14>]
11391 070712 101014 133122 QUNKF4+14,,[TMSG <QUNKF4+14>]
11392 070713 102014 133125 QUNKF5+14,,[TMSG <QUNKF5+14>]
11393 070714 103014 133130 QUNKF6+14,,[TMSG <QUNKF6+14>]
11394 070715 104014 133133 QUNKF7+14,,[TMSG <QUNKF7+14>]
11395
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 261
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0432
11396 070716 105114 133136 PTTF0+20,,[TMSG <PTTF0+20 >]
11397 070717 106020 133141 PTTF1+20,,[TMSG <PTTF1+20 >]
11398 070720 106330 133144 PTTF2+20,,[TMSG <PTTF2+20 >]
11399 070721 107020 133147 PTTF3+20,,[TMSG <PTTF3+20 >]
11400 070722 107330 133152 PTTF4+20,,[TMSG <PTTF4+20 >]
11401 070723 110020 133155 PTTF5+20,,[TMSG <PTTF5+20 >]
11402 070724 110330 133160 PTTF6+20,,[TMSG <PTTF6+20 >]
11403 070725 111020 133163 PTTF7+20,,[TMSG <PTTF7+20 >]
11404 070726 111330 133166 PTTF10+20,,[TMSG <PTTF10+20>]
11405 070727 112020 133171 PTTF11+20,,[TMSG <PTTF11+20>]
11406 070730 112330 133174 PTTF12+20,,[TMSG <PTTF12+20>]
11407 070731 113020 133177 PTTF13+20,,[TMSG <PTTF13+20>]
11408 070732 113330 133202 PTTF14+20,,[TMSG <PTTF14+20>]
11409 070733 114020 133205 PTTF15+20,,[TMSG <PTTF15+20>]
11410 070734 114330 133210 PTTF16+20,,[TMSG <PTTF16+20>]
11411 070735 115020 133213 PTTF17+20,,[TMSG <PTTF17+20>]
11412 070736 075020 133216 QUNKF0+20,,[TMSG <QUNKF0+20>]
11413 070737 076020 133221 QUNKF1+20,,[TMSG <QUNKF1+20>]
11414 070740 077020 133224 QUNKF2+20,,[TMSG <QUNKF2+20>]
11415 070741 100020 133227 QUNKF3+20,,[TMSG <QUNKF3+20>]
11416 070742 101020 133232 QUNKF4+20,,[TMSG <QUNKF4+20>]
11417 070743 102020 133235 QUNKF5+20,,[TMSG <QUNKF5+20>]
11418 070744 103020 133240 QUNKF6+20,,[TMSG <QUNKF6+20>]
11419 070745 104020 133243 QUNKF7+20,,[TMSG <QUNKF7+20>]
11420 070746 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 262
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0433
11421
11422 ;#********************************************************************
11423 ;* PPCB - Print current data in the PCB
11424 ;
11425 ; Addresses are printed are symbolic.
11426 ;#********************************************************************
11427
11428 070747 261 17 0 00 000000 PPCB: RPUT (0,1,2,3,4) ; save AC's
11429
11430 070754 037 00 0 00 133244 TMSGC <PCB:>
11431 070755 037 00 0 00 133246 TMSGC < PCB Base Addr:>
11432 070756 200 01 0 00 072024 MOVE 1,PCB+^D20 ; get address
11433 070757 260 17 0 00 066652 GO CONVIR ; convert to virtual
11434 070760 001 07 0 00 000001 PNTOCC 7,1 ; print it
11435 070761 037 00 0 00 133252 TMSGC < PI Level: >
11436 070762 001 12 0 00 072025 PNTOCC 12,PCB+^D21 ; print PI level
11437 070763 037 00 0 00 133255 TMSGC < Int Vector:>
11438 070764 001 12 0 00 072026 PNTOCC 12,PCB+^D22 ; print int vector assignment
11439 070765 037 00 0 00 133260 TMSGC < CCW: >
11440 070766 200 00 0 00 072027 MOVE PCB+^D23 ; get CCW
11441 070767 037 13 0 00 000000 PNTHW ; print it
11442 070770 037 00 0 00 133263 TMSGC < Counters Address: >
11443 070771 200 01 0 00 072030 MOVE 1,PCB+^D24 ; get counters address
11444 070772 260 17 0 00 066652 GO CONVIR ; convert to virtual
11445 070773 001 11 0 00 000001 PNTOCC 11,1 ; print it
11446 070774 037 00 0 00 133270 TMSGC < --------------->
11447 070775 037 00 0 00 133274 TMSGC < PTT Address:>
11448 070776 200 01 0 00 072015 MOVE 1,PCB+^D13 ; get address
11449 070777 260 17 0 00 066652 GO CONVIR ; convert to virtual
11450 071000 001 11 0 00 000001 PNTOCC 11,1 ; print it
11451 071001 037 00 0 00 133300 TMSGC < MCT Address:>
11452 071002 200 01 0 00 072016 MOVE 1,PCB+^D14 ; get address
11453 071003 260 17 0 00 066652 GO CONVIR ; convert to virtual
11454 071004 001 11 0 00 000001 PNTOCC 11,1 ; print it
11455 071005 037 00 0 00 133270 TMSGC < --------------->
11456 071006 037 00 0 00 133304 TMSGC < Logout 0: >
11457 071007 200 00 0 00 072020 MOVE PCB+^D16
11458 071010 037 13 0 00 000000 PNTHW
11459 071011 037 00 0 00 133307 TMSGC < Logout 1: >
11460 071012 200 00 0 00 072021 MOVE PCB+^D17
11461 071013 037 13 0 00 000000 PNTHW
11462 071014 037 00 0 00 133312 TMSGC < Logout 2: >
11463 071015 200 00 0 00 072022 MOVE PCB+^D18
11464 071016 037 13 0 00 000000 PNTHW
11465 071017 037 00 0 00 133315 TMSGC < Logout 3: >
11466 071020 200 00 0 00 072023 MOVE PCB+^D19
11467 071021 037 13 0 00 000000 PNTHW
11468 071022 037 00 0 00 133270 TMSGC < --------------->
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 263
DFNIA1 MAC 18-Feb-84 20:30 Queue Print Routines SEQ 0434
11469
11470 ; Print queues
11471
11472 071023 037 00 0 00 133320 PPCBD: TMSGC < # Queue PCB Addr Interlock Flink Blink>
11473 071024 037 00 0 00 133332 TMSGC < - ----- -------- --------- ----- ----->
11474 071025 400 04 0 00 000000 SETZ 4, ; initialize pointer into PCB
11475 071026 400 03 0 00 000000 SETZ 3, ; initialize queue number
11476 071027 037 00 0 00 125342 PPCB0: TMSGC < > ; start a new line
11477 071030 200 00 0 00 000003 MOVE 3 ; get queue number
11478 071031 037 16 0 00 000003 PNTOCS ; print it
11479 071032 037 00 0 00 117042 TMSG < >
11480 XCT [TMSG <CmdQ > ; print type of queue
11481 TMSG <RspQ >
11482 071033 256 00 0 03 133352 TMSG <UnkFQ>](3)
11483 071034 037 00 0 00 133355 TMSG < PCB+>
11484 071035 001 02 0 00 000004 PNTOCC 2,4 ; print PCB offset
11485 071036 001 11 0 04 072000 PNTOCC 11,PCB(4) ; print interlock
11486 071037 037 00 0 00 125215 TMSG < >
11487 071040 200 01 0 04 072001 MOVE 1,PCB+1(4) ; get flink
11488 071041 260 17 0 00 070537 GO LINKP ; print it
11489 071042 037 00 0 00 127515 TMSG < >
11490 071043 200 01 0 04 072002 MOVE 1,PCB+2(4) ; get flink
11491 071044 260 17 0 00 070537 GO LINKP ; print it
11492 071045 271 04 0 00 000004 ADDI 4,4 ; point to next queue location
11493 071046 350 00 0 00 000003 AOS 3 ; point to next queue number
11494 071047 305 03 0 00 000003 CAIGE 3,3 ; done yet?
11495 071050 254 00 0 00 071027 JRST PPCB0 ; no - loop till done
11496 071051 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
11497
11498 071056 263 17 0 00 000000 RTN ; return
11499
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 264
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0435
11500 SUBTTL Port Control Block and Data Areas
11501
11502 ;#********************************************************************
11503 ;* IPCB - PCB initial data
11504 ;#********************************************************************
11505
11506 071057 777777 777777 IPCB: -1 ; PCB+0
11507 071060 000000 072001 PCB+1 ; .. 1
11508 071061 000000 072001 PCB+1 ; .. 2
11509 071062 000000 000000 0 ; .. 3
11510
11511 071063 777777 777777 -1 ; .. 4
11512 071064 000000 072005 PCB+5 ; .. 5
11513 071065 000000 072005 PCB+5 ; .. 6
11514 071066 000000 000000 0 ; .. 7
11515
11516 071067 777777 777777 -1 ; .. 10
11517 071070 000000 075000 QUNKF0 ; .. 11
11518 071071 000000 104000 QUNKF7 ; .. 12
11519 071072 000000 000605 ^D400-13 ; .. 13
11520 071073 000000 000000 0 ; .. 14
11521
11522 071074 000000 105000 PTABLE ; .. 15
11523 071075 000000 115320 MTABLE ; .. 16
11524 071076 000000 000000 0 ; .. 17
11525
11526 071077 000000 000000 0 ; .. 20
11527 071100 000000 000000 0 ; .. 21
11528 071101 000000 000000 0 ; .. 22
11529 071102 000000 000000 0 ; .. 23
11530
11531 071103 000000 072000 PCB ; .. 24
11532 071104 000000 000004 4 ; .. 25
11533 071105 000000 000000 0 ; .. 26
11534 071106 000000 000000 0 ; .. 27
11535 071107 000000 072031 PCB+31 ; .. 30
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 265
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0436
11536
11537 ;#********************************************************************
11538 ;* IPTAB - PTABLE initial data
11539 ;#********************************************************************
11540
11541 071110 000000 000000 IPTAB: EXP 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17
11542 071111 000000 000001
11543 071112 000000 000002
11544 071113 000000 000003
11545 071114 000000 000004
11546 071115 000000 000005
11547 071116 000000 000006
11548 071117 000000 000007
11549 071120 000000 000010
11550 071121 000000 000011
11551 071122 000000 000012
11552 071123 000000 000013
11553 071124 000000 000014
11554 071125 000000 000015
11555 071126 000000 000016
11556 071127 000000 000017
11557
11558
11559 ;#********************************************************************
11560 ;* IMTAB - MTABLE initial data
11561 ;#********************************************************************
11562
11563 071130 000000 000060 IMTAB: EXP 1B30!1B31,1B0 ; 0
11564 071131 400000 000000
11565 071132 000000 000120 EXP 2B30!1B31,1B0 ; 1
11566 071133 400000 000000
11567 071134 000000 000160 EXP 3B30!1B31,1B0 ; 2
11568 071135 400000 000000
11569 071136 000000 000220 EXP 4B30!1B31,1B0 ; 3
11570 071137 400000 000000
11571 071140 000000 000260 EXP 5B30!1B31,1B0 ; 4
11572 071141 400000 000000
11573 071142 000000 000320 EXP 6B30!1B31,1B0 ; 5
11574 071143 400000 000000
11575 071144 000000 000360 EXP 7B30!1B31,1B0 ; 6
11576 071145 400000 000000
11577 071146 000000 000420 EXP 10B30!1B31,1B0 ; 7
11578 071147 400000 000000
11579 071150 000000 000460 EXP 11B30!1B31,1B0 ; 10
11580 071151 400000 000000
11581 071152 000000 000520 EXP 12B30!1B31,1B0 ; 11
11582 071153 400000 000000
11583 071154 000000 000560 EXP 13B30!1B31,1B0 ; 12
11584 071155 400000 000000
11585 071156 000000 000620 EXP 14B30!1B31,1B0 ; 13
11586 071157 400000 000000
11587 071160 000000 000660 EXP 15B30!1B31,1B0 ; 14
11588 071161 400000 000000
11589 071162 000000 000720 EXP 16B30!1B31,1B0 ; 15
11590 071163 400000 000000
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 265-1
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0437
11591 071164 000000 000760 EXP 17B30!1B31,1B0 ; 16
11592 071165 400000 000000
11593 071166 000000 001020 EXP 20B30!1B31,1B0 ; 17
11594 071167 400000 000000
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 266
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0438
11595
11596 ;#********************************************************************
11597 ;* PCB - Port Control Block
11598 ;#********************************************************************
11599
11600 072000 LOC <.+1000>&777000 ; align to a page boundary
11601
11602 072000 777777 777777 PCB: -1 ; INTLK for Cmd Queue
11603 072001 000000 072001 PCB+1 ; FLINK
11604 072002 000000 072001 PCB+1 ; BLINK
11605 072003 000000 000000 0 ; reserved
11606
11607 072004 777777 777777 -1 ; INTLK for Rsp Queue
11608 072005 000000 072005 PCB+5 ; FLINK
11609 072006 000000 072005 PCB+5 ; BLINK
11610 072007 000000 000000 0 ; reserved
11611
11612 072010 777777 777777 -1 ; INTLK for Unknown Protocol Free Queue
11613 072011 000000 075000 QUNKF0 ; FLINK
11614 072012 000000 104000 QUNKF7 ; BLINK
11615 072013 000000 000620 ^D400 ; entry length
11616 072014 000000 000000 0 ; reserved
11617
11618 072015 000000 105000 PTABLE ; Protocol Type Table address
11619 072016 000000 115320 MTABLE ; Multi-cast Address Table address
11620 072017 000000 000000 0 ; reserved
11621
11622 072020 000000 000000 0 ; Error logout 0
11623 072021 000000 000000 0 ; Error logout 1
11624 072022 000000 000000 0 ; Error logout 2
11625 072023 000000 000000 0 ; Error logout 3
11626
11627 072024 000000 072000 PCB ; PCB base address
11628 072025 000000 000004 4 ; PIA interrupt level
11629 072026 000000 000000 0 ; interrupt vector
11630 072027 000000 000000 0 ; CCW command word
11631 072030 000000 072031 PCB+31 ; reserved to port
11632 072031 BLOCK ^D50 ; 50 words for counters
11633
11634 ; Data areas
11635
11636 072114 LOC <.+4>&777774 ; align to 4 word boundary
11637
11638 072114 PACKET: BLOCK ^D400 ; packet being built
11639
11640 073000 LOC <.+1000>&777000 ; align to a page boundary
11641
11642 073000 RSPONS: BLOCK ^D400 ; response packet
11643 073620 SAVPKT: BLOCK ^D400 ; saved packet data
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 267
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0439
11644
11645 ;#********************************************************************
11646 ;* Command/Unknown protocol queues
11647 ;#********************************************************************
11648
11649 075000 LOC <.+1000>&777000 ; align to a page boundary
11650
11651 ; Unknown protocol type free queue
11652
11653 075000 UNKBEG:
11654 075000 000000 076000 QUNKF0: QUNKF1 ; FLINK
11655 075001 000000 072011 PCB+11 ; BLINK
11656 075002 BLOCK ^D398 ; remainder of entry
11657
11658 076000 LOC <.+1000>&777000 ; align to a page boundary
11659
11660 076000 000000 077000 QUNKF1: QUNKF2 ; FLINK
11661 076001 000000 075000 QUNKF0 ; BLINK
11662 076002 BLOCK ^D398 ; remainder of entry
11663
11664 077000 LOC <.+1000>&777000 ; align to a page boundary
11665
11666 077000 000000 100000 QUNKF2: QUNKF3 ; FLINK
11667 077001 000000 076000 QUNKF1 ; BLINK
11668 077002 BLOCK ^D398 ; remainder of entry
11669
11670 100000 LOC <.+1000>&777000 ; align to a page boundary
11671
11672 100000 000000 101000 QUNKF3: QUNKF4 ; FLINK
11673 100001 000000 077000 QUNKF2 ; BLINK
11674 100002 BLOCK ^D398 ; remainder of entry
11675
11676 101000 LOC <.+1000>&777000 ; align to a page boundary
11677
11678 101000 000000 102000 QUNKF4: QUNKF5 ; FLINK
11679 101001 000000 100000 QUNKF3 ; BLINK
11680 101002 BLOCK ^D398 ; remainder of entry
11681
11682 102000 LOC <.+1000>&777000 ; align to a page boundary
11683
11684 102000 000000 103000 QUNKF5: QUNKF6 ; FLINK
11685 102001 000000 101000 QUNKF4 ; BLINK
11686 102002 BLOCK ^D398 ; remainder of entry
11687
11688 103000 LOC <.+1000>&777000 ; align to a page boundary
11689
11690 103000 000000 104000 QUNKF6: QUNKF7 ; FLINK
11691 103001 000000 102000 QUNKF5 ; BLINK
11692 103002 BLOCK ^D398 ; remainder of entry
11693
11694 104000 LOC <.+1000>&777000 ; align to a page boundary
11695
11696 104000 000000 072011 QUNKF7: PCB+11 ; FLINK
11697 104001 000000 103000 QUNKF6 ; BLINK
11698 104002 BLOCK ^D397 ; remainder of entry
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 267-1
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0440
11699 104617 000000 000000 UNKEND: 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 268
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0441
11700
11701 ;#********************************************************************
11702 ;* PTABLE - Protocol type free queues
11703 ;#********************************************************************
11704
11705 105000 LOC <.+1000>&777000 ; align to a page boundary
11706
11707 105000 400000 000000 PTABLE: 400000,,0 ; Enable/Protocol type value 0
11708 105001 000000 105071 PTTFQ+1 ; FreeQ 0 queue header address
11709 105002 000000 000000 0 ; reserved
11710
11711 105003 400000 000020 400000,,20 ; Enable/Protocol type value 1
11712 105004 000000 105071 PTTFQ+1 ; FreeQ 1 queue header address
11713 105005 000000 000000 0 ; reserved
11714
11715 105006 400000 000040 400000,,40 ; Enable/Protocol type value 2
11716 105007 000000 105071 PTTFQ+1 ; FreeQ 2 queue header address
11717 105010 000000 000000 0 ; reserved
11718
11719 105011 400000 000060 400000,,60 ; Enable/Protocol type value 3
11720 105012 000000 105071 PTTFQ+1 ; FreeQ 3 queue header address
11721 105013 000000 000000 0 ; reserved
11722
11723 105014 400000 000100 400000,,100 ; Enable/Protocol type value 4
11724 105015 000000 105071 PTTFQ+1 ; FreeQ 4 queue header address
11725 105016 000000 000000 0 ; reserved
11726
11727 105017 400000 000120 400000,,120 ; Enable/Protocol type value 5
11728 105020 000000 105071 PTTFQ+1 ; FreeQ 5 queue header address
11729 105021 000000 000000 0 ; reserved
11730
11731 105022 400000 000140 400000,,140 ; Enable/Protocol type value 6
11732 105023 000000 105071 PTTFQ+1 ; FreeQ 6 queue header address
11733 105024 000000 000000 0 ; reserved
11734
11735 105025 400000 000160 400000,,160 ; Enable/Protocol type value 7
11736 105026 000000 105071 PTTFQ+1 ; FreeQ 7 queue header address
11737 105027 000000 000000 0 ; reserved
11738
11739 105030 400000 000200 400000,,200 ; Enable/Protocol type value 10
11740 105031 000000 105071 PTTFQ+1 ; FreeQ 10 queue header address
11741 105032 000000 000000 0 ; reserved
11742
11743 105033 400000 000220 400000,,220 ; Enable/Protocol type value 11
11744 105034 000000 105071 PTTFQ+1 ; FreeQ 11 queue header address
11745 105035 000000 000000 0 ; reserved
11746
11747 105036 400000 000240 400000,,240 ; Enable/Protocol type value 12
11748 105037 000000 105071 PTTFQ+1 ; FreeQ 12 queue header address
11749 105040 000000 000000 0 ; reserved
11750
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 269
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0442
11751 105041 400000 000260 400000,,260 ; Enable/Protocol type value 13
11752 105042 000000 105071 PTTFQ+1 ; FreeQ 13 queue header address
11753 105043 000000 000000 0 ; reserved
11754
11755 105044 400000 000300 400000,,300 ; Enable/Protocol type value 14
11756 105045 000000 105071 PTTFQ+1 ; FreeQ 14 queue header address
11757 105046 000000 000000 0 ; reserved
11758
11759 105047 400000 000320 400000,,320 ; Enable/Protocol type value 15
11760 105050 000000 105071 PTTFQ+1 ; FreeQ 15 queue header address
11761 105051 000000 000000 0 ; reserved
11762
11763 105052 400000 000340 400000,,340 ; Enable/Protocol type value 16
11764 105053 000000 105071 PTTFQ+1 ; FreeQ 16 queue header address
11765 105054 000000 000000 0 ; reserved
11766
11767 105055 400000 000360 400000,,360 ; Enable/Protocol type value 17
11768 105056 000000 105071 PTTFQ+1 ; FreeQ 17 queue header address
11769 105057 000000 000000 0 ; reserved
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 270
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0443
11770
11771 ; Protocol table queue
11772
11773 105070 LOC <.+10>&777770 ; align to 8 word boundary
11774
11775 105070 PTTBEG:
11776 105070 777777 777777 PTTFQ: -1 ; interlock word
11777 105071 000000 105074 PTTF0 ; FLINK
11778 105072 000000 115000 PTTF17 ; BLINK
11779 105073 000000 000310 ^D200 ; entry length
11780
11781 105074 000000 106000 PTTF0: PTTF1 ; FLINK
11782 105075 000000 105071 PTTFQ+1 ; BLINK
11783 105076 BLOCK ^D198 ; remainder of entry
11784
11785 106000 LOC <.+1000>&777000 ; align to a page boundary
11786
11787 106000 000000 106310 PTTF1: PTTF2 ; FLINK
11788 106001 000000 105074 PTTF0 ; BLINK
11789 106002 BLOCK ^D198 ; remainder of entry
11790
11791 106310 000000 107000 PTTF2: PTTF3 ; FLINK
11792 106311 000000 106000 PTTF1 ; BLINK
11793 106312 BLOCK ^D198 ; remainder of entry
11794
11795 107000 LOC <.+1000>&777000 ; align to a page boundary
11796
11797 107000 000000 107310 PTTF3: PTTF4 ; FLINK
11798 107001 000000 106310 PTTF2 ; BLINK
11799 107002 BLOCK ^D198 ; remainder of entry
11800
11801 107310 000000 110000 PTTF4: PTTF5 ; FLINK
11802 107311 000000 107000 PTTF3 ; BLINK
11803 107312 BLOCK ^D198 ; remainder of entry
11804
11805 110000 LOC <.+1000>&777000 ; align to a page boundary
11806
11807 110000 000000 110310 PTTF5: PTTF6 ; FLINK
11808 110001 000000 107310 PTTF4 ; BLINK
11809 110002 BLOCK ^D198 ; remainder of entry
11810
11811 110310 000000 111000 PTTF6: PTTF7 ; FLINK
11812 110311 000000 110000 PTTF5 ; BLINK
11813 110312 BLOCK ^D198 ; remainder of entry
11814
11815 111000 LOC <.+1000>&777000 ; align to a page boundary
11816
11817 111000 000000 111310 PTTF7: PTTF10 ; FLINK
11818 111001 000000 110310 PTTF6 ; BLINK
11819 111002 BLOCK ^D198 ; remainder of entry
11820
11821 111310 000000 112000 PTTF10: PTTF11 ; FLINK
11822 111311 000000 111000 PTTF7 ; BLINK
11823 111312 BLOCK ^D198 ; remainder of entry
11824
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 270-1
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0444
11825 112000 LOC <.+1000>&777000 ; align to a page boundary
11826
11827 112000 000000 112310 PTTF11: PTTF12 ; FLINK
11828 112001 000000 111310 PTTF10 ; BLINK
11829 112002 BLOCK ^D198 ; remainder of entry
11830
11831 112310 000000 113000 PTTF12: PTTF13 ; FLINK
11832 112311 000000 112000 PTTF11 ; BLINK
11833 112312 BLOCK ^D198 ; remainder of entry
11834
11835 113000 LOC <.+1000>&777000 ; align to a page boundary
11836
11837 113000 000000 113310 PTTF13: PTTF14 ; FLINK
11838 113001 000000 112310 PTTF12 ; BLINK
11839 113002 BLOCK ^D198 ; remainder of entry
11840
11841 113310 000000 114000 PTTF14: PTTF15 ; FLINK
11842 113311 000000 113000 PTTF13 ; BLINK
11843 113312 BLOCK ^D198 ; remainder of entry
11844
11845 114000 LOC <.+1000>&777000 ; align to a page boundary
11846
11847 114000 000000 114310 PTTF15: PTTF16 ; FLINK
11848 114001 000000 113310 PTTF14 ; BLINK
11849 114002 BLOCK ^D198 ; remainder of entry
11850
11851 114310 000000 115000 PTTF16: PTTF17 ; FLINK
11852 114311 000000 114000 PTTF15 ; BLINK
11853 114312 BLOCK ^D198 ; remainder of entry
11854
11855 115000 LOC <.+1000>&777000 ; align to a page boundary
11856
11857 115000 000000 105071 PTTF17: PTTFQ+1 ; FLINK
11858 115001 000000 114310 PTTF16 ; BLINK
11859 115002 BLOCK ^D197 ; remainder of entry
11860 115307 000000 000000 PTTEND: 0
11861
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 271
DFNIA1 MAC 18-Feb-84 20:30 Port Control Block and Data Areas SEQ 0445
11862
11863 ;#********************************************************************
11864 ;* MTABLE - Table of multi-cast addresses
11865 ;#********************************************************************
11866
11867 115320 LOC <.+10>&777770 ; align to 8 word boundary
11868
11869 115320 MTABLE:
11870 115320 000000 000060 MCAT0: EXP 1B30!1B31,1B0
11871 115321 400000 000000
11872 115322 000000 000120 MCAT1: EXP 2B30!1B31,1B0
11873 115323 400000 000000
11874 115324 000000 000160 MCAT2: EXP 3B30!1B31,1B0
11875 115325 400000 000000
11876 115326 000000 000220 MCAT3: EXP 4B30!1B31,1B0
11877 115327 400000 000000
11878 115330 000000 000260 MCAT4: EXP 5B30!1B31,1B0
11879 115331 400000 000000
11880 115332 000000 000320 MCAT5: EXP 6B30!1B31,1B0
11881 115333 400000 000000
11882 115334 000000 000360 MCAT6: EXP 7B30!1B31,1B0
11883 115335 400000 000000
11884 115336 000000 000420 MCAT7: EXP 10B30!1B31,1B0
11885 115337 400000 000000
11886 115340 000000 000460 MCAT10: EXP 11B30!1B31,1B0
11887 115341 400000 000000
11888 115342 000000 000520 MCAT11: EXP 12B30!1B31,1B0
11889 115343 400000 000000
11890 115344 000000 000560 MCAT12: EXP 13B30!1B31,1B0
11891 115345 400000 000000
11892 115346 000000 000620 MCAT13: EXP 14B30!1B31,1B0
11893 115347 400000 000000
11894 115350 000000 000660 MCAT14: EXP 15B30!1B31,1B0
11895 115351 400000 000000
11896 115352 000000 000720 MCAT15: EXP 16B30!1B31,1B0
11897 115353 400000 000000
11898 115354 000000 000760 MCAT16: EXP 17B30!1B31,1B0
11899 115355 400000 000000
11900 115356 000000 001020 MCAT17: EXP 20B30!1B31,1B0
11901 115357 400000 000000
11902
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 272
DFNIA1 MAC 18-Feb-84 20:30 SPEAR Reporting SEQ 0446
11903 SUBTTL SPEAR Reporting
11904
11905 ;#********************************************************************
11906 ;* SPREP1 - Print initial SPEAR report 'diagnostic started'
11907 ;#********************************************************************
11908
11909 115360 332 00 0 00 134255' SPREP1: SKIPE UDEBUG ; debug mode?
11910 115361 263 17 0 00 000000 RTN ; yes - return
11911 115362 332 00 0 00 030037 SKIPE USER ; exec mode?
11912 115363 332 00 0 00 134244' SKIPE SPEAR1 ; already done?
11913 115364 263 17 0 00 000000 RTN ; yes - return
11914
11915 ; Check switches first
11916
11917 115365 261 17 0 00 000000 RPUT (0,1) ; save AC's
11918
11919 115367 260 17 0 00 042614* GO SWITT ; get program switches
11920 115370 602 00 0 00 004000 TRNE DSPEAR ; SPEAR reporting disabled?
11921 115371 254 00 0 00 115402 JRST SPRE1X ; yes - exit
11922
11923 ; Get PPN and build entry / get time and insert it
11924
11925 115372 260 17 0 00 115564 SPCHK1: GO GETPPN ; get user's PPN
11926 115373 202 01 0 00 115417 MOVEM 1,SENT10+11+1 ; save in SPEAR entry block
11927 115374 104 00 0 00 000227 GTAD ; get time and day
11928 115375 202 01 0 00 115413 MOVEM 1,SENT10+5+1 ; save it
11929
11930 ; Make the entry
11931
11932 115376 201 01 0 00 115405 MOVEI 1,SENT10 ; get address of argument block
11933 115377 201 02 0 00 000013 MOVEI 2,^D10+1 ; get length
11934 115400 104 00 0 00 000527 S1: SYERR ; write to SYSERR file
11935
11936 ; Exit
11937
11938 115401 476 00 0 00 134244' SETOM SPEAR1 ; set 'SPEAR initial msg done' flag
11939 115402 262 17 0 00 000001 SPRE1X: RGET (1,0) ; restore AC's
11940
11941 115404 263 17 0 00 000000 RTN ; return
11942
11943 ; SPEAR entry block 10
11944
11945 115405 250000 000000 SENT10: 250000,,0 ; event type
11946 115406 000000 000000 0 ; zero
11947 115407 000000 000000 0 ; zero
11948 115410 000000 000000 0 ; zero
11949 115411 000000 000000 0 ; (for Release 6.0 or later)
11950 115412 000000 020002 20002 ; time of occurence block
11951 115413 000000 000000 0 ; time
11952 115414 000000 100004 0,,100004 ; 4 words, type 10 code
11953 115415 44 46 56 51 41 00 SIXBIT /DFNIA/ ; diagnostic name
11954 115416 000000 000002 MCNVER,,DECVER ; diagnostic version
11955 115417 000000 000000 0 ; user PPN
11956 115420 000000 000000 0
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 273
DFNIA1 MAC 18-Feb-84 20:30 SPEAR Reporting SEQ 0447
11957
11958 ;#********************************************************************
11959 ;* SPREP2 - Print error or successful completion SPEAR report
11960 ;#********************************************************************
11961
11962 115421 336 00 0 00 134255' SPREP2: SKIPN UDEBUG ; debug mode?
11963 115422 336 00 0 00 030037 SKIPN USER ; exec mode?
11964 115423 263 17 0 00 000000 RTN ; yes - return
11965
11966 ; First check if anything should be reported now
11967
11968 115424 261 17 0 00 000000 PUT 0 ; save AC0
11969 115425 200 00 0 00 134245' MOVE SPEAR2 ; get reporting flag
11970 115426 322 00 0 00 115432 JUMPE SPRE2A ; nothing yet? yes - continue
11971 115427 316 00 0 00 124130 CAMN [-1] ; already reported an error?
11972 JRST [GET ; yes - exit
11973 115430 254 00 0 00 133357 RTN]
11974 JUMPE ERFLG,[GET ; error this time? no - exit
11975 115431 322 15 0 00 133357 RTN]
11976
11977 ; Check switches
11978
11979 115432 261 17 0 00 000001 SPRE2A: RPUT (1,2,3,4) ; save AC's
11980
11981 115436 260 17 0 00 115367* GO SWITT ; get program switches
11982 115437 602 00 0 00 004000 TRNE DSPEAR ; SPEAR reporting disabled?
11983 115440 254 00 0 00 115514 JRST SPRE2X ; yes - exit
11984
11985 ; Initialize entry
11986
11987 115441 402 00 0 00 115536 SPCHK2: SETZM SENT11+^D11+1 ; clear test number
11988 115442 402 00 0 00 115540 SETZM SENT11+^D13+1 ; clear test description length
11989 115443 201 02 0 00 000003 MOVEI 2,3 ; set block length to 3 words
11990 115444 137 02 0 00 133361 DPB 2,[POINT 9,SEN11L,35] ; save length
11991 115445 322 15 0 00 115500 JUMPE ERFLG,SPRE2C ; error? no - continue
11992
11993 ; Insert test name
11994
11995 115446 200 01 0 00 133362 MOVE 1,[SIXBIT /TST0 /] ; get SIXBIT 'TST'
11996 115447 135 00 0 00 133363 LDB [POINT 3,TSTNUM,29] ; get digit 1
11997 115450 271 00 0 00 000020 ADDI 20 ; convert to SIXBIT
11998 115451 137 00 0 00 133364 DPB [POINT 6,1,23] ; save it
11999 115452 135 00 0 00 133365 LDB [POINT 3,TSTNUM,32] ; get digit 2
12000 115453 271 00 0 00 000020 ADDI 20 ; convert to SIXBIT
12001 115454 137 00 0 00 133366 DPB [POINT 6,1,29] ; save it
12002 115455 135 00 0 00 133367 LDB [POINT 3,TSTNUM,35] ; get digit 3
12003 115456 271 00 0 00 000020 ADDI 20 ; convert to SIXBIT
12004 115457 137 00 0 00 133370 DPB [POINT 6,1,35] ; save it
12005 115460 202 01 0 00 115536 MOVEM 1,SENT11+^D11+1 ; save test number
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 274
DFNIA1 MAC 18-Feb-84 20:30 SPEAR Reporting SEQ 0448
12006
12007 ; Insert test description
12008
12009 115461 200 01 0 00 115576 MOVE 1,TSTNUM ; get test number
12010 115462 550 01 0 01 032120 HRRZ 1,TSTNAM(1) ; get address of test description
12011 115463 474 02 0 00 000000 SETO 2, ; initialize character count
12012 115464 200 03 0 00 133371 MOVE 3,[POINT 7,0] ; get initial byte pointer
12013 115465 540 03 0 00 000001 HRR 3,1 ; insert address
12014 115466 200 04 0 00 133372 MOVE 4,[POINT 7,SENT11+^D13+1];get initial byte pointer
12015 115467 134 00 0 00 000003 SPRE2B: ILDB 3 ; get a byte
12016 115470 136 00 0 00 000004 IDPB 4 ; save it
12017 115471 350 00 0 00 000002 AOS 2 ; increment byte count
12018 115472 326 00 0 00 115467 JUMPN SPRE2B ; loop till done
12019
12020 ; Insert block length ...
12021
12022 115473 231 02 0 00 000005 IDIVI 2,5 ; calculate number of words
12023 115474 332 00 0 00 000003 SKIPE 3 ; remainder?
12024 115475 350 00 0 00 000002 AOS 2 ; yes - add in partial word
12025 115476 271 02 0 00 000003 ADDI 2,3 ; calculate subtotal
12026 115477 137 02 0 00 133361 DPB 2,[POINT 9,SEN11L,35] ; save length
12027
12028 ; Add time and day
12029
12030 115500 104 00 0 00 000227 SPRE2C: GTAD ; get time and day
12031 115501 202 01 0 00 115530 MOVEM 1,SENT11+5+1 ; save it
12032
12033 ; Get PPN and build entry / get time and insert it
12034
12035 115502 260 17 0 00 115564 GO GETPPN ; get user's PPN
12036 115503 202 01 0 00 115534 MOVEM 1,SEN11L-1 ; save in SPEAR entry block
12037
12038 ; Make the SPEAR entry
12039
12040 115504 201 01 0 00 115522 MOVEI 1,SENT11 ; get address of argument block
12041 115505 135 02 0 00 133361 LDB 2,[POINT 9,SEN11L,35] ; get length
12042 115506 271 02 0 00 000013 ADDI 2,^D10+1 ; calculate total block length
12043 115507 104 00 0 00 000527 S2: SYERR ; write to SYSERR file
12044
12045 ; Exit
12046
12047 115510 200 00 0 00 124130 MOVE [-1] ; get flag for 'Error message'
12048 115511 336 00 0 00 000015 SKIPN ERFLG ; error flag set?
12049 115512 200 00 0 00 125204 MOVE [-2] ; no - get flag for 'Final message'
12050 115513 202 00 0 00 134245' MOVEM SPEAR2 ; set 'SPEAR err/fin msg done' flag
12051 115514 262 17 0 00 000004 SPRE2X: RGET (4,3,2,1,0) ; restore AC's
12052
12053 115521 263 17 0 00 000000 RTN ; return
12054
12055 ; SPEAR entry block 11
12056
12057 115522 250000 000000 SENT11: 250000,,0 ; event type
12058 115523 000000 000000 0 ; zero
12059 115524 000000 000000 0 ; zero
12060 115525 000000 000000 0 ; zero
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 274-1
DFNIA1 MAC 18-Feb-84 20:30 SPEAR Reporting SEQ 0449
12061 115526 000000 000000 0 ; (for Release 6.0 or later)
12062 115527 000000 020002 20002 ; time of occurence block
12063 115530 000000 000000 0 ; time
12064
12065 115531 000000 100004 0,,100004 ; 4 words, type 10 code
12066 115532 44 46 56 51 41 00 SIXBIT /DFNIA/ ; diagnostic name
12067 115533 000000 000002 MCNVER,,DECVER ; diagnostic version
12068 115534 000000 000000 0 ; user PPN
12069
12070 115535 000000 110000 SEN11L: 0,,110000 ; type 11 code
12071 115536 000000 000000 0 ; failing test name
12072 115537 000000 000003 3 ; failing test description offset
12073 115540 BLOCK ^D20 ; ASCII test description
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 275
DFNIA1 MAC 18-Feb-84 20:30 SPEAR Reporting SEQ 0450
12074
12075 ;#********************************************************************
12076 ;* GETPPN - Find out PPN number
12077 ;#********************************************************************
12078
12079 115564 261 17 0 00 000002 GETPPN: RPUT (2,3) ; save AC's
12080
12081 115566 474 01 0 00 000000 SETO 1, ; indicate current job
12082 115567 200 02 0 00 133373 MOVE 2,[-1,,1] ; place 1 word into AC1
12083 115570 201 03 0 00 000003 MOVEI 3,3 ; point to connected directory number
12084 115571 104 00 0 00 000507 GETJI ; get job information
12085 115572 400 01 0 00 000000 SETZ 1, ; error - just clear AC1
12086 115573 262 17 0 00 000003 RGET (3,2) ; restore AC's
12087
12088 115575 263 17 0 00 000000 RTN ; return
12089
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 276
DFNIA1 MAC 18-Feb-84 20:30 Miscellaneous Test Variables SEQ 0451
12090 SUBTTL Miscellaneous Test Variables
12091
12092 ;#*********************************************************************
12093 ; Current Test Data
12094 ;#*********************************************************************
12095
12096 115576 000 00 0 00 000000 TSTNUM: Z ; current test number (1-n)
12097 115577 000 00 0 00 000000 TSTSUB: Z ; current subtest number
12098 115600 000 00 0 00 000000 TSTPC: Z ; current test PC
12099 115601 000 00 0 00 000000 TSTFLG: Z ; current test flags
12100 115602 000 00 0 00 000000 TSTMSK: Z ; mask to determine what test to run
12101 115603 000 00 0 00 000000 TSTREP: Z ; number of test repetitions done
12102 115604 000 00 0 00 000000 TSTREQ: Z ; number of test repetitions requested
12103 115605 000 00 0 00 000000 TSTMUL: Z ; multiple test flag
12104 115606 000 00 0 00 000000 TSTOFF: Z ; relocatable offset of test module
12105 115607 000 00 0 00 000000 TSTREL: Z ; reliability mode repeat count
12106 115610 000 00 0 00 000000 TSTCNT: Z ; reliability mode repeat count
12107
12108 115611 000 00 0 00 000000 PMODE: Z ; program mode
12109
12110 115612 056400 000000 NIPORT: 56400,,0 ; NI port controller number
12111
12112
12113 ;#********************************************************************
12114 ; BUFF - Buffer area
12115 ;#********************************************************************
12116
12117 115613 BUFF: BLOCK ^D512
12118
12119
12120 ;#********************************************************************
12121 ; PATCH - Patch Area
12122 ;#********************************************************************
12123
12124 116613 PATCH0:
12125 116613 PATCH: BLOCK 100 ; patch area
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 277
DFNIA1 MAC 18-Feb-84 20:30 Miscellaneous Test Variables SEQ 0452
12126
12127 ;#********************************************************************
12128 ;* Special code to test SPEAR entries
12129 ;#********************************************************************
12130
12131 116713 200 00 0 00 117045 STEST: MOVE [JFCL] ; get noop
12132 116714 202 00 0 00 115400 MOVEM S1 ; delete SYERR call #1
12133 116715 202 00 0 00 115507 MOVEM S2 ; delete SYERR call #2
12134 116716 260 17 0 00 116722 GO .+4 ; do it
12135 116717 201 01 0 00 115405 MOVEI 1,SENT10 ; get address to print
12136 116720 260 17 0 00 116755 GO STESTP ; print it
12137 116721 254 00 0 00 116725 JRST STEST0 ; continue
12138 116722 261 17 0 00 000000 RPUT (0,1) ; save AC's
12139
12140 116724 254 00 0 00 115372 JRST SPCHK1 ; check entry type 1
12141
12142 116725 260 17 0 00 116731 STEST0: GO .+4 ; do it
12143 116726 201 01 0 00 115522 MOVEI 1,SENT11 ; get address to print
12144 116727 260 17 0 00 116755 GO STESTP ; print it
12145 116730 254 00 0 00 116740 JRST STEST1 ; continue
12146 116731 261 17 0 00 000000 RPUT (0,1,2,3,4) ; save AC's
12147
12148 116736 400 15 0 00 000000 SETZ ERFLG, ; clear error flag
12149 116737 254 00 0 00 115441 JRST SPCHK2 ; check entry type 2 (no error)
12150
12151 116740 260 17 0 00 116744 STEST1: GO .+4 ; do it
12152 116741 201 01 0 00 115522 MOVEI 1,SENT11 ; get address to print
12153 116742 260 17 0 00 116755 GO STESTP ; print it
12154 116743 254 00 0 00 030007 JRST SRTDDT ; continue
12155 116744 261 17 0 00 000000 RPUT (0,1,2,3,4) ; save AC's
12156
12157 116751 474 15 0 00 000000 SETO ERFLG, ; set error flag
12158 116752 201 00 0 00 000012 MOVEI 12 ; get test number
12159 116753 202 00 0 00 115576 MOVEM TSTNUM ; save it
12160 116754 254 00 0 00 115441 JRST SPCHK2 ; check entry type 2 (error)
12161
12162 116755 037 00 0 00 133374 STESTP: TMSGCD <Buffer:>
12163 116756 505 01 0 00 777753 HRLI 1,-25 ; build AOBJN word
12164 116757 200 00 0 01 000000 MOVE (1) ; get data
12165 116760 037 13 0 00 000000 PNTHW ; print
12166 116761 037 00 0 00 030242 PCRL
12167 116762 253 01 0 00 116757 AOBJN 1,STESTP+2 ; loop till done
12168 116763 263 17 0 00 000000 RTN ; return
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 278
DFNIA1 MAC 18-Feb-84 20:30 Miscellaneous Test Variables SEQ 0453
12169
12170 ;#********************************************************************
12171 ;* Special code to produce an EXE version
12172 ;
12173 ; To produce a standard DFCIA.EXE, just type EXE$G in DDT, then ^Z,
12174 ; then CSAVE DFCIA.EXE. Non-DIAG version type EXEN$G.
12175 ;#********************************************************************
12176
12177 116764 200 00 0 00 122777 EXEN: MOVE [SKIPA]
12178 116765 202 00 0 00 000000* MOVEM REQ1
12179 116766 202 00 0 00 000000* MOVEM REQ2
12180 116767 202 00 0 00 000000* MOVEM REL
12181 116770 200 00 0 00 133377 MOVE [10,,140]
12182 116771 334 00 0 00 000000 SKIPA
12183 116772 200 00 0 00 130661 EXE: MOVE [10,,0]
12184 116773 202 00 0 00 030046 MOVEM CONSW
12185 116774 200 00 0 00 133400 MOVE [SETOM $$TOGG]
12186 116775 202 00 0 00 030642 MOVEM START+31
12187 116776 201 00 0 00 030000 MOVEI 30000
12188 116777 542 00 0 00 000120 HRRM .JBSA
12189 117000 402 00 0 00 030056 SETZM $ONETM
12190 117001 402 00 0 00 000000* SETZM HAVIPA
12191 117002 402 00 0 00 000000* SETZM LOCDON
12192 117003 402 00 0 00 000016 SETZM MBCN
12193 117004 402 00 0 00 044330 SETZM CNAME
12194 117005 254 00 0 00 030007 JRST SRTDDT
12195
12196 117006 201 01 0 00 000004 P7: MOVEI 1,4
12197 117007 254 00 0 00 117015 JRST PG
12198 117010 201 01 0 00 000003 P5: MOVEI 1,3
12199 117011 254 00 0 00 117015 JRST PG
12200 117012 201 01 0 00 000002 P3: MOVEI 1,2
12201 117013 334 00 0 00 000000 SKIPA
12202 117014 201 01 0 00 000001 P1: MOVEI 1,1
12203 PG: MOVE 1,[0
12204 54400,,0
12205 55400,,0
12206 56400,,0
12207 117015 200 01 0 01 133401 57400,,0](1)
12208 117016 202 01 0 00 115612 MOVEM 1,NIPORT
12209 117017 254 00 0 00 030007 JRST SRTDDT
12210
12211
12212 ;#********************************************************************
12213 ; End of Mainline Module
12214 ;#********************************************************************
12215
12216 117020 D1LIT: XLIST
12217
NO ERRORS DETECTED
PROGRAM BREAK IS 134262
ABSOLUTE BREAK IS 134142
CPU TIME USED 01:46.914
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page 278-1
DFNIA1 MAC 18-Feb-84 20:30 Miscellaneous Test Variables SEQ 0454
130P CORE USED
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page S-1
DFNIA1 MAC 18-Feb-84 20:30 SYMBOL TABLE SEQ 0455
AADDR 000000 ext CHKQUE 067223 CWORDR 035606 int DDALU 036412
ABORT 400000 spd CHKQUX 067234 D1LIT 117020 DDALU0 036416
ADRPHY 065470 CHKRQV 067151 ent DACRAM 035530 DDALUM 036570
ADRQUE 065145 CHKRSP 067100 ent DADDR 033702 DDALUX 036470
ADRVIR 065312 CHKRSX 067144 DBCRAM 035525 DDCRAM 035522
ALL 740000 000000 spd CHKTAB 067243 DBPAC0 041435 DDCSR 033723
ALTCHK 007000 000000 CLRBUF 124161 ext DBPACK 041376 DDEBU1 035447
ALTF 134143' int CLREBU 064403 ext DBPACP 041432 DDEBUF 035443
ALTMGO 030063 CMD0 032235 DBREA0 040457 DDEBUG 134151' int
ALUFR 036606 CMD1 032264 DBREAK 040455 DDLOC0 036717
ALUTO 036607 CMD1A 032276 DC1ST 134150' DDLOCM 037063
ANEXT 035611 CMD2 032300 DCBR0 040552 DDLOCS 036713
ARGFLG 066136 ext CMDOPC 070164 ent DCBR1 040563 DDLOCX 036764
ARGUM 127172 ext CMDPAK 134146' DCBRK 040533 DDNEX0 040267
BEGIN 030000 CMDQAV 000400 spd DCCOD1 041063 DDNEX1 040276
BONETM 134144' CMDQUE 032314 DCCOD2 041107 DDNEX2 040303
BPACK 065733 ent CMDQUU 032317 DCCOD3 041111 DDNEX3 040310
BPACK0 065763 CNAME 044330 DCCOD4 041117 DDNEX4 040313
BPACKN 065731 ent CNTPNT 067575 ent DCCOD5 041121 DDNEX5 040316
BPACKX 065770 CNTRC 000004 spd DCCOD6 041127 DDNEX6 040321
BPAK1 065776 CONPN0 043105 DCCODE 041055 DDNEXT 040241
BPAK11 066134 CONPNT 043073 ent DCLEAR 033745 DDPLI 037310
BPAK1A 066024 CONPNX 043117 DCMAR0 037200 DDPLI0 037320
BPAK4 066053 CONSW 030046 DCMAR1 037211 DDPLI1 037350
BPAK6 066066 CONTBL 043151 int DCMAR2 037226 DDPLIM 037367
BPAK6A 066070 CONVI0 066656 DCMARK 037161 DDPLIX 037364
BPAK6B 066107 CONVIE 066667 DCODPB 036053 DDPLM2 037373
BPAK7 066115 CONVIR 066652 ent DCOLDB 036031 DDPMU0 040353
BPAK7A 066117 CONVIX 066663 DCOM0 035562 DDPMUL 040347
BPAK7B 066130 CONVR0 042214 DCOM1 035577 DDPPA0 040376
BPK11A 066136 CONVRE 042222 DCOM3A 035753 DDPPAK 040372
BPK11B 066173 CONVRR 042207 DCOMA0 035726 DDPPT0 040330
BSDFLG 033700 CONVRX 042223 DCOMA1 035731 DDPPTT 040324
BUFCOM 000000 ext CONVSX 122776 ext DCOMA2 035750 DDRAR 035475
BUFF 115613 int CRAMFR 035602 DCOMA3 035751 DDTAB 040246
BUFGEN 066240 ext CRAMTO 035603 DCOMA4 035770 DDUMP 037533 int
CADDR 035604 int CRCCA0 066445 DCOMA5 035772 DDUMP0 037566
CALL 200000 000000 spd CRCCAL 066443 DCOMAA 035740 DDUMPM 037651
CALMAR 134145' CRCFIX 066457 DCOMAG 035712 DDUMPX 037643
CALPAR 042551 ent CRCOFF 066430 ext DCOMAL 035707 DEALU 036304
CBASE 030657 ext CRCSAV 066262 ext DCOMAX 035775 DEALU0 036325
CCMIC 041173 CRCTAB 066431 ext DCOMDB 035702 DEALU1 036345
CCTAB1 041133 CSHFLG 030506 DCOMDE 035612 DEALUM 036565
CCTAB3 041153 CSHMEM 030507 DCOMEX 036160 DEALUX 036405
CCWPNT 041255 ext CSREN0 042641 DCOMEZ 036201 DEBALU 036343
CHINIT 065652 ext CSREN1 042655 DCOMGO 035541 DEBEBU 035425
CHKARG 120731 ext CSREN2 042656 DCOML0 036206 DEBELO 036647
CHKCSR 000000 ext CSRENB 042666 DCOMLI 036204 DEBLAR 035460
CHKIN0 066530 CSRENG 042627 ent DCOMLX 036226 DEBSTK 040420
CHKIN1 066535 CSRENS 134147' DCOMP 000040 000000 spd DEBTIM 042011 ext
CHKIN2 066543 CSRENX 042660 DCOMSG 036007 DEBUG1 002000 spd
CHKIN3 066555 CSRPNT 042605 ent DCOMZE 036142 DEBUG2 001000 spd
CHKINT 066516 ent CSRPNX 042622 DCONF 042260 DEBUG3 000400 spd
CHKINX 066556 CURTIM 042045 ext DCONT 035405 DEBUG4 000200 spd
CHKQU0 067226 CWORDL 035605 int DCWPNT 041252 DEBUG6 000040 spd
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page S-2
DFNIA1 MAC 18-Feb-84 20:30 SYMBOL TABLE SEQ 0456
DECOP0 070211 DHELP1 032712 DSDAD1 033467 DSPCB2 033134
DECOPC 070207 DIINIT 041353 DSDAD2 033472 DSPEAR 004000 spd
DECOPX 070223 DIPRIN 041277 DSDADL 033511 DSPNT1 033566
DECRAM 035517 DIQUEU 041453 DSDATA 033667 DSPNT2 033567
DECSR 033713 DISGO 031205 DSEBU1 033113 DSPRIN 033706 int
DECTAB 070225 DISLIS 031131 DSEBU2 033114 DSPTT1 033546
DECVER 000002 spd DISMS 104000 000167 int DSET 032737 DSPTT2 033547
DECYN 033357 ext DISP0 030772 DSETAD 033024 DSRES1 033302
DEEBUF 035422 DISP0A 031052 DSETBS 033333 DSRES2 033303
DELAR 035455 DISP0B 031054 DSETCS 033045 DSSAD2 033520
DELAY 005000 000000 DISP1 031062 DSETDA 033413 DSSCLR 034130
DELOC0 036631 DISP2 031117 DSETEB 033102 DSSPN0 034117
DELOC1 036652 DISPAT 030766 DSETFN 033142 DSSPNT 034106
DELOCM 037056 DISPD 031106 DSETFO 033311 DSST0 034053
DELOCS 036610 DISPE 031114 DSETHE 033655 DSST1 034067
DELOCX 036706 DISPR 031100 DSETHL 033663 DSSTEP 034037
DENE0 040166 DISPX 031120 DSETIN 033574 DSSTX 034073
DENEX0 040222 DISQUE 031124 DSETLN 033373 DSSUM 033707
DENEX1 040226 DISQUU 031127 DSETPA 033173 DSSUM1 033620
DENEX2 040232 DLBR0 040616 DSETPC 033122 DSSUM2 033621
DENEX3 040236 DLBR1 040631 DSETPD 033353 DSTAR0 033773
DENEXT 040157 DLBR2 040650 DSETPL 033233 DSTART 033765
DEPLI 037400 DLBRK 040577 DSETPP 033252 DSTOP 034014
DEPLI0 037425 DLBRX 040656 DSETPR 033062 DSTOP1 034027
DEPLI1 037437 DLCRAM 035536 DSETPT 033554 DSTPAT 033674
DEPLIM 037475 DLGPNT 041260 DSETPV 033537 DSWIT 041266
DEPLIX 037471 DLIST 040701 DSETPX 033266 DTRAC0 034041
DERBUF 037526 DLMAR0 037251 DSETRE 033270 DTRACE 034034
DESTA0 040431 DLMAR1 037264 DSETSA 033513 DTRANS 041045
DESTAK 040415 DLMAR2 037300 DSETSU 033611 DTRFLG 134153'
DESTAX 040446 DLMARK 037232 DSETUP 030706 ext DWATC0 041572
DESTAY 040447 DLMARX 037306 DSETWH 033626 DWATC1 041667
DESTKM 040452 DLOAD 040660 DSFNM0 033156 DWATC2 041750
DETAB 040204 DMARK 037103 DSFNM1 033162 DWATC3 042017
DETBUF 037521 DMARK0 037105 DSFNM2 033163 DWATC4 042027
DEVREL 031353 ext DPINIT 041361 DSFOR1 033323 DWATC5 042032
DEVREQ 030717 ext DPLIH 037517 DSFOR2 033324 DWATC6 042043
DFEXA0 041020 DPPCB 041464 DSFORL 033330 DWATC7 042050
DFEXAM 041010 DPQUE0 041515 DSIDLE 041366 DWATC8 042120
DFEXAX 041043 DPQUEU 041472 DSINIT 033752 DWATC9 042126
DFILLN 041204 DRBR0 040512 DSINT 033710 DWATCA 042134
DFILLP 041230 DRBRK 040510 DSINT1 033603 DWATCH 041531
DFILN0 041215 DRCRAM 036263 ent DSINT2 033604 DWATCQ 041567
DFILP0 041241 DRESET 033740 DSLEN1 033405 DWATCX 042142
DFLAG 134152' DRMAR0 037134 DSLEN2 033406 DWATCY 042145
DFLIS0 040764 DRMARK 037132 DSPAD1 033364 DWATLP 041712
DFLIST 040753 DSADD1 033037 DSPAD2 033365 DWCRAM 036231 ent
DFLISX 041006 DSADD2 033040 DSPAR1 033073 DWORDL 134154'
DFLOAD 040714 DSADDR 033666 DSPAR2 033074 DWORDR 134155'
DFVER0 040750 DSBSD1 033344 DSPAT 033673 DZALU 036473
DFVERF 040737 DSBSD2 033345 DSPAT1 033220 DZALU0 036514
DGRCV 000005 spd DSBYTE 033672 DSPAT2 033221 DZALU1 036534
DGSNT 000001 spd DSCSR1 033054 DSPAT3 033231 DZALUM 036603
DHELP 032645 DSCSR2 033055 DSPATX 033214 DZALUX 036562
DHELP0 032657 DSDAD0 033433 DSPCB1 033133 DZCRAM 035533
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page S-3
DFNIA1 MAC 18-Feb-84 20:30 SYMBOL TABLE SEQ 0457
DZCSR 033732 GETJI 104000 000507 int LASARG 033626 ext MLNUM 134173' int
DZEBUF 035436 GETLOG 041263 ext LASENT 066647 MLOAD0 064405
DZLOC0 037010 GETPPN 115564 LAST 010000 000000 spd MLOAD1 064427
DZLOC1 037030 GETQU0 067006 LDCRAM 064456 ext MLOAD2 064502
DZLOCM 037076 GETQUE 066766 ent LDCSR 127311 ext MLOADN 064353 ent
DZLOCS 036767 GETQUX 067016 LDEBUF 035453 ext MLOADR 064425
DZLOCX 037053 GO 260740 000000 LDEBUG 134166' int MLOADX 064505
DZRAR 035507 GTAD 104000 000227 int LDMCAT 000002 spd MLOADY 064355 ent
EADDR 000000 ext HALT 254200 000000 LDPTT 000003 spd MONTYP 030516
ECODE 064334 HAVIPA 117001 ext LDRAR 065654 ext MPRUN 000010 spd
ECOMP 000020 000000 spd ICRC 066250 LENTRY 066563 MSG 100000 000000 spd
EDEBUG 134156' int ICRC0 066333 LINCNT 134167' MTABLE 115320 int
ENABLE 030710 ext ICRC1 066337 LINKG 070547 MULFLG 134174'
ENATST 134157' ICRC2 066354 LINKP 070537 MULINI 134175'
ENDFIX 030577 ICRC3 066410 LINKV 070544 MVCOM 064366
ENDUUO 037500 000004 ICRC4 066417 LINKV0 070551 MVFLAG 134176'
EOPUUO 037700 000004 ICRCX 066424 LINKV1 070557 MVNUM 134177'
EPLIH 037520 ICRCY 066432 LINKV2 070561 MVPNT 064536 ent
ERESET 033743 ext ICWA0 037767 ext LINKVX 070563 MVPNT1 064556
ERFLG 000015 IGNFLG 134163' LINTAB 070567 MVPNTW 064615
ERRPC 030052 IMTAB 071130 LOCDON 117002 ext MVPNTX 064605
EXE 116772 INHCRC 134164' LOCFR 037101 MVREP 134200'
EXEN 116764 INITPD 031344 ext LOCPHY 030707 ext MWBADR 064517
FFF 066677 ext INITPI 041356 ext LOCTO 037102 MWBLAC 064525
FFLAG 044331 INSQE1 066761 LOGPNT 041264 ext MWBLCO 064522
FGETW 044034 ext INSQE2 066760 LOOFLG 134170' MWBRAC 064533
FINCMD 124131 ext INSQUE 066703 ent LOOP 100000 000000 spd MWBRCO 064530
FINECH 134160' int INTAPR 041342 ext LOOPGM 040000 spd MWDQUE 036120
FINPUT 134161' int INTCON 041337 ext LOOPTS 020000 spd NCHAR 134201'
FIOFF 131006 ext INTCSR 041345 ext MAPNEW 030143 NEWENT 134202' int
FLDLIS 036075 INTEND 120675 ext MAXTST 000027 spd NIA 200000 000000 spd
FLOADB 044010 INTNUM 120676 ext MBCN 000016 NIPORT 115612
FLOADC 044074 INTPC 041325 ext MCAT0 115320 NPACKL 134203'
FLODB0 044024 INTTIM 041330 ext MCAT1 115322 NPACKO 134204'
FLODB1 044034 INTTYP 041350 ext MCAT10 115340 NPACKQ 134205'
FLODB2 044052 INTUSE 041333 ext MCAT11 115342 NPACKR 134206'
FLODBE 044066 IPACLR 065651 ext MCAT12 115344 NPACKS 134207'
FLODBX 044065 IPASRT 035410 ext MCAT13 115346 NSARD 000010 spd
FLODC0 044114 IPASST 040437 ext MCAT14 115350 NSAWR 000011 spd
FLODCX 044137 IPASTP 034017 ext MCAT15 115352 NUMENT 066650 int
FLONOP 044147 IPCB 071057 MCAT16 115354 NUMPNT 134210'
FMTTYP 134162' IPRIN0 041305 MCAT17 115356 int OP 000011
FNAME 044324 IPRINI 041316 MCAT2 115324 OPCPN0 070144
FOARG 000000 ext IPRINT 041302 ent MCAT3 115326 OPCPNE 070155
FORPNT 032032 ext IPRINX 041312 MCAT4 115330 OPCPNT 070134 ent
FORSEL 033677 IPTAB 071110 MCAT5 115332 OPCPNX 070161
FSELEC 037240 000004 IQCMAX 066702 MCAT6 115334 OPRSEL 000010 spd
FUERR 044231 IQFMIN 066701 MCAT7 115336 P 000017
FUERR0 044254 IQFUL 066700 MCATLD 000002 spd P1 117014
FUNCT 040000 000000 spd ISTOP 131217 ext MCNVER 000000 spd P3 117012
FVERF0 044164 ITERAT 000005 spd MCPUS 134171' P5 117010
FVERF1 044207 ITEXT 066211 MDEBUG 134172' int P7 117006
FVERFC 044152 ITEXT0 066225 MLIST 064625 PACK1 067516
FVERFE 044223 ITRCNT 030024 MLIST0 064634 PACK10 070041
GET 262740 000000 LARG2 134165' MLISTX 064657 PACK11 070073
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page S-4
DFNIA1 MAC 18-Feb-84 20:30 SYMBOL TABLE SEQ 0458
PACK1A 067545 PLOG 037755 PSPF 037040 000040 QUNKF7 104000
PACK2 067566 PLOG0 040001 PSTAT0 070312 RALUB 134217'
PACK3 067570 PLOGM 040017 PSTAT1 070314 RALUE 134220'
PACK4 067572 PMISC0 070122 PSTAT2 070325 RANCNT 134221'
PACK4B 067577 PMODE 115611 int PSTATS 070276 RANDBS 030022
PACK4C 067612 PNT1 037040 000000 PSTATX 070330 RANGEN 031606
PACK4D 067614 PNT2 037100 000000 PTABLE 105000 int RANNUM 134222'
PACK4E 067617 PNT3 037140 000000 PTCHK0 067204 RCCNT 000004 spd
PACK4F 067624 PNT4 037200 000000 PTCHK1 067214 RDADD0 065676
PACK4G 067644 PNT4F 037200 000001 PTCHKP 067164 RDADDR 065672 ent
PACK4T 067677 ent PNTADR 037400 000000 PTCHKX 067215 RDBF 040054
PACK4X 067660 PNTCI 037000 000000 PTCHKY 067216 RDBUF1 037675
PACK4Y 067671 PNTCIF 037040 000000 PTEXT 070431 RDBUF2 037722
PACK5 067770 PNTCRM 042433 PTEXT0 070440 RDBUF3 037740
PACK6 070017 PNTDCC 003000 000000 PTEXT1 070452 RDBUFR 037713
PACK7 070030 PNTDCF 037640 000001 PTEXT2 070454 RDBUFT 037656
PACKET 072114 int PNTDCL 010000 000000 PTEXT3 070457 RDBUFX 037746
PACKG 070115 PNTDEC 037640 000000 PTIME 127314 ext RDCRAM 130470 ext
PADDR 070261 PNTENB 030220 PTTBEG 105070 RDCSR 127306 ext
PADFLG 033701 PNTHST 035340 PTTEND 115307 RDEBUF 040117 ext
PAG 000010 spd PNTHW 037540 000000 PTTF0 105074 RDLAR 041101 ext
PARFLG 033670 int PNTHWF 037540 000001 PTTF1 106000 RDNSA 000010 spd
PASCNT 030047 PNTMSF 037040 000000 PTTF10 111310 RDPLI 000007 spd
PASPNT 030747 PNTMSG 037000 000000 PTTF11 112000 REL 116767 ext
PAT 000014 PNTOCC 001000 000000 PTTF12 112310 RELIAB 000400 spd
PAT1 134211' PNTOCF 037740 000003 PTTF13 113000 REQ1 116765 ext
PAT2 134212' PNTOCS 037700 000003 PTTF14 113310 REQ2 116766 ext
PATCH 116613 PNTRS0 042233 PTTF15 114000 RESCR0 042763
PATCH0 116613 PNTRS1 042251 PTTF16 114310 RESCRM 042752
PATPNT 033257 ext PNTRS2 042252 PTTF17 115000 RESQAV 000200 spd
PBSD 070475 PNTRSP 042227 ent PTTF2 106310 RFROM 035610
PCB 072000 int PNTRSX 042253 PTTF3 107000 RLOCB 134223'
PCBFLG 033675 PNTSIX 037000 000002 PTTF4 107310 RLOCE 134224'
PCMD 134213' PNTSXF 037040 000002 PTTF5 110000 RQAFLG 134225' int
PCRL 037000 030242 PNTWD 042527 PTTF6 110310 RRDBF 040101
PCRL2 037000 030243 PORT 400000 000000 spd PTTF7 111000 RSPFLG 033676
PCRLF 037040 030242 PPAKC 067436 ent PTTFQ 105070 int RSPONS 073000 int
PDSABL 000040 spd PPAKC0 067447 PTTLD 000003 spd RSPOPC 070175
PENABL 000020 spd PPAKCC 067452 PTTVAL 033712 RSPPAK 134226'
PFLAG0 070416 PPAKCX 067463 PUT 261740 000000 RSPQUE 134227' ent
PFLAG1 070421 PPAKF 067500 ent PUTQU0 067037 RSTART 200000 spd
PFLAGS 070360 PPAKR 067466 ent PUTQU1 067055 RTN 263740 000000
PFORCE 037040 000026 PPCB 070747 ent PUTQUE 067022 ent RTO 035607
PG 117015 PPCB0 071027 PUTQUX 067073 RUNTME 042044 ext
PGMINT 265000 030011 PPCBD 071023 ent PVPAGI 030511 RUPDA1 043535
PGMNAM 030600 int PQUEM0 067406 Q 000013 RUPDA2 043542
PHEAD 070237 PQUEP0 067361 QARG1 134215' RUPDA3 043555
PJRST 254000 000000 PQUEU0 067337 QARG2 134216' RUPDAT 043511 ent
PK 000012 PQUEUE 067305 ent QUNKF0 075000 RUPDAX 043563
PLICTL 037514 PQUEUM 067401 QUNKF1 076000 RWAIT 066476 ent
PLIDAT 037515 PQUEUP 067354 QUNKF2 077000 RWAIT0 066503
PLINUM 134214' PQUEUX 067345 QUNKF3 100000 RWAITX 066512
PLIRD 000007 spd PQUEUY 067346 QUNKF4 101000 S1 115400
PLIREP 037516 PRSFLG 033671 QUNKF5 102000 S2 115507
PLIWR 000006 spd PSP 037000 000040 QUNKF6 103000 SADDR 033704 int
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page S-5
DFNIA1 MAC 18-Feb-84 20:30 SYMBOL TABLE SEQ 0459
SANCH0 042162 SPCHK2 115441 TDEST 065715 int TST26 000000 ext
SANCHE 042202 SPEAR1 134244' TFLER1 043750 TST27 000000 ext
SANCHK 042150 SPEAR2 134245' int TFLER2 043760 TST3 000000 ext
SANCHX 042173 SPRE1X 115402 TFLER3 043770 TST4 000000 ext
SANFLG 033711 SPRE2A 115432 TFLER4 044000 TST5 000000 ext
SAVAD1 134230' SPRE2B 115467 TFLOAD 043715 ent TST6 000000 ext
SAVAD2 134231' SPRE2C 115500 TFLOAE 043743 TST7 000000 ext
SAVCMD 134232' SPRE2X 115514 TFLOAX 043741 TSTAL0 032012
SAVCO1 043134 SPREP1 115360 TFMFLG 065711 int TSTALT 032003
SAVCO2 043147 SPREP2 115421 int TH4000 065726 int TSTCNT 115610
SAVCON 043124 SREPO0 043603 TIDLE 065646 ent TSTCON 031366
SAVCR0 042737 SREPO1 043621 TIDLEE 065666 TSTD0 031675
SAVCRL 042777 SREPO2 043626 TLERR 064707 TSTD1 031703
SAVCRM 042730 SREPOR 043571 TLOAD 064666 ent TSTD2 031715
SAVEP 134233' SREPOX 043651 TLOADE 064700 TSTD3 031716
SAVFLD 134234' SRTDDT 030007 TLOADX 064676 TSTD4 031721
SAVHST 035357 SSADRL 034340 TMP1 134247' TSTD5 031730
SAVNUM 134235' SSADRN 034540 TOPADR 066651 TSTD6 031735
SAVOPW 134236' SSCSRL 034740 TPAT 065722 int TSTD7 031752
SAVPKT 073620 SSCSRN 035140 TPCB 064711 ent TSTD8 031761
SAVPTT 134237' SSLOC 034137 TPCB0 064717 TSTD9 031770
SAVRAR 134240' SSNUM 034140 TPCB1 064754 TSTDDT 031337
SB 030610 STARCV 043676 int TPCB2 065112 TSTDEB 032231
SCOOFF 042371 ext START 030611 ent TPCB3 065113 TSTDIA 031332
SCOPE1 000000 ext STARTA 030722 ent TPCB4 065123 TSTDIS 031655
SCOPER 027000 000000 STARTB 030746 TPCB5 065124 TSTDL0 031462
SCOSW 000000 ext STASNT 043665 int TPCB6 065135 TSTDS0 031436
SDATA 042374 ext STATAB 070335 TPDFLG 065714 int TSTDSA 031425
SELLAR 040000 spd STATB 043665 TPRMSC 065727 int TSTDSL 031455
SEN11L 115535 STATE 043714 spd TPTTVL 065717 int TSTEBF 200000 spd
SENT10 115405 STCLOK 030660 ext TRACE 042350 ent TSTEN0 031434
SENT11 115522 STEST 116713 TRACET 400000 spd TSTENA 031431
SETDS0 042337 STEST0 116725 TREGD 065724 int TSTEND 042406 ent
SETDSA 042324 ent STEST1 116740 TREGN 065723 int TSTEOP 032021
SETDSX 042345 STESTP 116755 TRETRY 065730 int TSTEXE 031260
SETEBU 035450 ext STIME 134246' TREX 042366 TSTFLG 115601 int
SETEN0 042274 STRT1 030651 TREXX 042402 TSTHL0 031405
SETEN1 042303 SUPDA0 043472 TRSFLG 065713 int TSTHLC 031413
SETEN2 042310 SUPDAT 043461 ent TSLOAD 134250' int TSTHLL 031420
SETEN3 042317 SWCHPT 000000 ext TST1 000000 ext TSTHLP 031373
SETENA 042264 ent SWCOM 041274 ext TST10 000000 ext TSTHLT 031350
SETENE 042320 SWITT 115436 ext TST11 000000 ext TSTL1 134251'
SETLAR 037447 ext SWPTAB 030525 TST12 000000 ext TSTL2 134252'
SETVEC 041357 ext SWRGT 030634 ext TST13 000000 ext TSTLI0 031310
SHUTRQ 067274 SWSTP 000125 spd TST14 000000 ext TSTLI1 031317
SHUTRX 067303 SWSTT 000027 spd TST15 000000 ext TSTLIS 031266
SINCYC 020000 spd SYERR 104000 000527 int TST16 000000 ext TSTLIX 031330
SLAST 035371 ext SZERO 043661 TST17 000000 ext TSTMAX 032067
SLDATA 134241' T2M 000000 ext TST2 000000 ext TSTMIC 032070
SNARKF 000000 ext T3M 000000 ext TST20 000000 ext TSTMSK 115602 int
SNDDG 000001 spd TAKFIL 031561 int TST21 000000 ext TSTMUL 115605
SNDFLG 134242' TAMC 065725 int TST22 000000 ext TSTNAM 032120 int
SNDTIM 134243' TBSDFL 065712 int TST23 000000 ext TSTNUM 115576 int
SNEXT 042373 ext TBYTE 065720 int TST24 000000 ext TSTOFF 115606 int
SPCHK1 115372 TDENA 000100 000000 spd TST25 000000 ext TSTPC 115600 int
DFNIA (Port Functional Diagnostic) MACRO %53A(1152) 19:59 24-Sep-84 Page S-6
DFNIA1 MAC 18-Feb-84 20:30 SYMBOL TABLE SEQ 0460
TSTPN0 042422 $GARG 000000 .MB 000017 spd .RS0A 400000 000000 spd
TSTPNT 042411 ent $ONETM 030056 .MCCER 000037 spd .RS0B 300000 000000 spd
TSTPNX 042430 $TTCHR 030231 .MCCPP 000037 spd .RSD0 700000 000000 spd
TSTPRI 031477 $TWCNT 030225 .MCENA 000001 spd .RSELC 004000 spd
TSTRA0 031641 %ADDR 000057 spd .MCJP 000017 spd .RSELE 005000 spd
TSTRAA 031647 %ML 005600 000000 spd .MCONT 000017 spd .RSELM 002000 spd
TSTRAN 031626 %MR 000340 spd .MCRTN 000017 spd .RSELP 001000 spd
TSTREL 115607 .CGOT 041272 ext .MCRY 000001 spd .RSKCN 240000 spd
TSTREP 115603 int .CLOSE 031354 ext .MD 000007 spd .RSWIT 030635 ext
TSTREQ 115604 .COMM 035763 ext .MJ 007777 spd .SARG 033417 ext
TSTRES 032151 .CONI 000000 ext .MJMAP 000017 spd .SBSNT 000001 spd
TSTSAV 134253' .CONO 000000 ext .MLDCT 000017 spd .SPSNT 000000 spd
TSTSP0 031604 .DARG 041504 ext .MLDLM 000037 spd .STCMD 032751
TSTSPC 031563 .DATAI 040004 ext .MMGC 001777 spd .STDIS 032777
TSTSSW 031516 .DATAO 037777 ext .MOENA 000001 spd .STERR 000002 spd
TSTSUB 115577 int .DBCMD 032322 .MOR 000007 spd .SWCHP 120733 ext
TSTSWI 031504 .DBDIS 032474 .MPLUS 000007 spd
TSTSWP 031511 .HLCMD 032665 .MRDLM 000037 spd
TSTTA0 031544 .INPNT 041751 ext .MRPCT 000017 spd
TSTTAB 032037 int .INWD1 031042 ext .MS0A 000007 spd
TSTTAK 031527 .ISWT 120726 ext .MS0B 000007 spd
TSTTAN 031525 .JBSA 000120 spd .MSD0 000007 spd
TSTZER 031361 .LA 000000 spd .MSELC 000007 spd
TTALTM 037340 000003 .LADDR 000100 000000 spd .MSELE 000007 spd
TTIDEC 037200 000003 .LAND 000000 spd .MSELM 000007 spd
TTNBRF 030510 .LB 000000 spd .MSELP 000007 spd
TTSIXB 037400 000003 .LCCER 000000 spd .MSKCN 000037 spd
TTYYES 066061 ext .LCCPP 000000 spd .OARG 066166 ext
TWORD 065721 int .LCENA 000000 spd .RA 000010 000000 spd
TXADDL 134254' int .LCJP 000000 spd .RAND 040000 000000 spd
TXALL 060000 000000 spd .LCONT 000000 spd .RB 400000 spd
TXTINH 000200 spd .LCRTN 000000 spd .RBRCV 000001 spd
UCODE 044333 .LCRY 000000 spd .RCCER 100000 spd
UDEBUG 134255' int .LD 000000 spd .RCCPP 150000 spd
ULEN 044332 .LJ 010000 spd .RCENA 000400 000000 spd
UNAME 044326 .LJMAP 000000 spd .RCJP 000060 spd
UNKBEG 075000 .LLDCT 000000 spd .RCONT 000340 spd
UNKEND 104617 .LLDLM 000000 spd .RCRTN 000240 spd
USER 030037 .LMGC 000001 spd .RCRY 000400 spd
USRION 030711 ext .LOENA 002000 spd .RD 001000 000000 spd
UVERR 064333 .LOR 000000 spd .RESET 030651 ext
UVERSN 134256' int .LPLUS 000000 spd .RJ 000000 spd
WORCNT 134257' .LRDLM 000000 spd .RJMAP 000040 spd
WRDERR 000000 ext .LRPCT 000000 spd .RLDCT 000300 spd
WRNSA 000011 spd .LS0A 000000 spd .RLDLM 230000 spd
WRPLI 000006 spd .LS0B 000000 spd .RMGC 000000 spd
WRTPLI 040126 .LSD0 000000 spd .ROENA 000000 spd
XXW 134260' .LSELC 000000 spd .ROR 030000 000000 spd
XXX 134261' .LSELE 000000 spd .RPLUS 000000 spd
ZCOUN0 044303 .LSELM 000000 spd .RPRCV 000000 spd
ZCOUNT 044300 .LSELP 000000 spd .RRCRC 000003 spd
$$TOGG 030521 .LSKCN 000000 spd .RRDLM 220000 spd
$ARG2 000001 .LSWIT 000000 ext .RRERR 000002 spd
$B 000064 .MA 000017 spd .RREXP 000004 sin
$CHR 000043 575664 .MAND 000007 spd .RRPCT 000220 spd
AADDR 75#
ABORT 236 1184 SEQ 0461
ADRPHY 7059 7061 8796 9047# 9885 9887
ADRQUE 8804 8827#
ADRVIR 7065 8791 8931# 9889
ALL 613
ALTF 38 229 309# 309 323 327 1159 1202 1547 1551 3414 3471 3561 3873
3902 3996 4050 4293 4347 5087 5096 5105 5118 5125 5130 5138 5428 6113
6148 6605 6674 7338 8595
ALTMGO 326 994 1041 1077 1160 1163 1550 3474 3565
ALUFR 3969 4009 4083 4148 4187 4257#
ALUTO 3971 4011 4085 4150 4189 4258#
ANEXT 3465# 3535 3657 3851 3877 3905 4047 4114 4132 4210 4351 4403 4404 4425
4509 4848 4929 5453 5460 5467 5474 5513 5520 5528 5536 5542 5548 5554
5587 5588 5622 5623 5657 5658
ARGFLG 87# 403 406 837 1003 1011 1083 1091 1105 1581 1584 3486 4130 4423
4558 4601 5727 5774 9396 9412 9452 9478
ARGUM 87# 647 654 763 765 848 950 956 1009 1089 1956 1958 2141 2204
2229 2319 2325 2350 2365 2395 2404 2463 2537 2566 2569 2587 2593 2599
2605 2612 2675 2694 2719 2738 2879 2962 3044 3045 3050 3118 3123 3263
3277 3316 3396 3406 3493 3501 3509 3517 3525 3980 3988 4077 4092 4133
4159 4167 4277 4285 4375 4389 4426 4452 4460 4569 4612 4657 4667 4730
4740 4811 4826 4834 4835 4905 4913 4925 4926 5409 5410 5415 5420 5429
5523 5531 5537 5543 5549 5555 5570 5585 5605 5620 5640 5655 5738 5785
5826 5836 5894 5904 5974 6005 6167 6280 6308 6466 6577 6591 6619 6620
6772 6781 6826 6837 6851 6853 6914 6943 9425 9437 9464 9491 9498 9505
9513
BEGIN 12217
BONETM 137# 137 139 376
BPACK 46 6493 9277#
BPACK0 9293 9304#
BPACKN 46 9275#
BPACKX 9312 9329#
BPAK1 9317 9337#
BPAK11 9324 9476#
BPAK1A 9349 9365#
BPAK4 9320 9394#
BPAK6 9321 9410#
BPAK6A 9412# 9422 9434
BPAK6B 9411 9439#
BPAK7 9322 9450#
BPAK7A 9452# 9461
BPAK7B 9451 9466#
BPK11A 9478# 9489 9496 9503 9511
BPK11B 9477 9490 9497 9504 9512 9518#
BSDFLG 2492 2494 2499 2501 2837# 6478
BUFCOM 88#
BUFF 49 12117#
BUFGEN 88# 9575
CADDR 26 3457# 3482 3547 3551 3844 3862 3893 3897 3918 3930 3946 3953 4581
4624 4693 4768 5750 5797 5862 5932 6103 6110 6137 6144 6284 6309 6312
7533 7555 8060 8144 8210 8226 8241 8251 8442 8482
CALL 8636
CALMAR 7390# 7390 7392 7416
CALPAR 25 3926 5758 5939 7388# 8454 8589 SEQ 0462
CBASE 78# 170
CCMIC 6191 6192 6259#
CCTAB1 6217 6226 6238#
CCTAB3 6204 6206 6216 6225 6255#
CCWPNT 78# 6329
CHINIT 78# 2957 9174
CHKARG 87# 697 708 722 737 748 873 900 910 916 927 1510 1789 1864
1876 1883 1911 1916 2645 2784 2860 2889 2901 2911 2922 2993 3142 3216
3238 3261 3287 3326 5044 5058 5511 5668 6025 6068 6091 6126 6177 6327
6339 6351 6365 6423 6435 6446 6532 6559 7111
CHKCSR 74#
CHKIN0 9827# 9830
CHKIN1 9828 9832#
CHKIN2 9841# 9850
CHKIN3 9845 9851#
CHKINT 46 6923 6957 6968 7023 9816# 9928 9983 10157 10191 10365 10368
CHKINX 9831 9855#
CHKQU0 10280# 10285
CHKQUE 10189 10277#
CHKQUX 10282 10286#
CHKRQV 46 6750 10215#
CHKRSP 46 6751 10151#
CHKRSX 10158 10166 10206#
CHKTAB 10279 10298#
CLRBUF 84# 334 1544 3569 3616 3636 9397 9413 9453 9483
CLREBU 74# 8415
CMD0 1516# 1549 1574 1593 1595 1601
CMD1 1545# 1561 1566 1579
CMD1A 1563# 1578
CMD2 1562 1576#
CMDOPC 47 10921 10943#
CMDPAK 7093 10469# 10469 10512 10837 10922
CMDQAV 6939 10332
CMDQUE 1569 1599#
CMDQUU 1600 1603#
CNAME 2329 3533 3655 3846 6040 6052 6291 6316 8029 8114 8157 8350# 8423 12193
CNTPNT 30 10632#
CNTRC 10176 10956
CONPN0 7592# 7604
CONPNT 47 750 7112 7574#
CONPNX 7597 7608#
CONSW 12184
CONTBL 48 158 159 160 7591 7629 7630 7633 7634 7643 7648#
CONVI0 9884# 9888
CONVIE 9886 9896#
CONVIR 47 6754 9843 9880# 11256 11273 11433 11444 11449 11453
CONVIX 9889#
CONVR0 7058# 7062
CONVRE 7060 7064#
CONVRR 7030 7053#
CONVRX 7065#
CONVSX 85# 421 2570 3626
CRAMFR 3388 3397 3411 3422 3433 3455# 3481 3534 3546 3550 3566 3656 3843 3850 SEQ 0463
3861 3876 3892 3904 5455 5515
CRAMTO 3386 3398 3407 3417 3435 3456# 3536 3658 3852 3878 3906 5454 5514
CRCCA0 9744# 9752
CRCCAL 9604 9606 9608 9610 9612 9614 9619 9621 9623 9625 9627 9629 9634 9636
9645 9647 9663 9665 9667 9669 9679 9681 9683 9685 9693 9695 9697 9699
9701 9716 9742#
CRCFIX 9724 9760#
CRCOFF 69# 9338 9727
CRCSAV 69# 9337 9595
CRCTAB 69# 9728
CSHFLG 126
CSHMEM 127
CSREN0 7458# 7472
CSREN1 7463 7470#
CSREN2 7460 7471#
CSRENB 7470 7481#
CSRENG 30 7437 7451#
CSRENS 7453# 7453 7497 7517
CSRENX 7458 7473#
CSRPNT 30 2864 2979 3009 3229 5079 6168 6887 7427#
CSRPNX 7434 7438#
CURTIM 84# 1049 6656 6693 6743 6908
CWORDL 26 3459# 3479 3528 3544 3688 3690 3692 3694 3696 3698 3727 3729 3731
3733 3735 3737 3841 3868 3899 3922 3951 4582 4585 4625 4628 4694 4697
4769 5751 5756 5759 5798 5863 5933 5937 5940 6282 6288 6310 6313 7535
7557 8062 8064 8147 8219 8231 8245 8253 8460 8475 8486
CWORDR 26 3460# 3480 3531 3545 3700 3702 3704 3706 3708 3710 3712 3714 3716
3718 3720 3722 3739 3741 3743 3745 3747 3749 3751 3753 3755 3757 3759
3761 3842 3869 3900 3923 3958 4583 4586 4588 4626 4629 4631 4695 4698
4701 4770 4772 5752 5757 5760 5799 5864 5934 5938 6283 6289 6311 6314
8066 8151 8234 8474 8476 8488
D1LIT 12216#
DACRAM 1827 3362#
DADDR 2557 2577 2616 2620 2622 2624 2626 2628 2630 2840# 6484
DBCRAM 1826 3354#
DBPAC0 6501# 6506 6508 6525
DBPACK 1895 6460#
DBPACP 6460 6498#
DBREA0 5734# 5766
DBREAK 1845 5727#
DC1ST 3444# 3444 3475 3477 3556 3559
DCBR0 5825 5835 5841#
DCBR1 5862# 5872
DCBRK 1847 5817#
DCCOD1 6188# 6207
DCCOD2 6190 6211#
DCCOD3 6213# 6218
DCCOD4 6215 6220#
DCCOD5 6222# 6227
DCCOD6 6224 6228#
DCCODE 1858 6176#
DCLEAR 1806 2910#
DCMAR0 4656 4666 4672# SEQ 0464
DCMAR1 4693# 4708
DCMAR2 4700 4706#
DCMARK 1842 4648#
DCODPB 3647 3727#
DCOLDB 3595 3688#
DCOM0 3395 3405 3411# 5456 5516
DCOM1 3444#
DCOM3A 3591 3620#
DCOMA0 3575# 3606
DCOMA1 3578# 3642 3650
DCOMA2 3594 3599# 3619 3639
DCOMA3 3587 3600# 3603 3622
DCOMA4 3628 3646#
DCOMA5 3623 3648#
DCOMAA 3588# 3614
DCOMAG 3548 3556#
DCOMAL 3449 3550# 3663
DCOMAX 3580 3610 3654#
DCOMDB 3448 3544# 3662
DCOMDE 3447 3471# 3537
DCOMEX 3446 3861# 3879
DCOMEZ 3875 3880#
DCOMGO 3340 3348 3356 3364 3372 3380 3385#
DCOML0 3892# 3907
DCOMLI 3451 3890#
DCOMLX 3903 3908#
DCOMP 7134 7179
DCOMSG 3599 3667#
DCOMZE 3450 3841# 3853
DCONF 7110#
DCONT 1810 3215#
DCWPNT 1888 6326#
DDALU 1833 4071#
DDALU0 4077# 4134 5524
DDALUM 4105 4109 4110 4237#
DDALUX 4131 4138#
DDCRAM 1825 3346#
DDCSR 1802 2873#
DDEBU1 3264 3272#
DDEBUF 1818 3266#
DDEBUG 17 112# 112 179 189 343 353 1527 1536
DDLOC0 4375# 4427 5532
DDLOCM 4402 4405 4529#
DDLOCS 1837 4369#
DDLOCX 4424 4431#
DDNEX0 5490 5491 5492 5493 5494 5495 5510#
DDNEX1 5496 5497 5498 5520#
DDNEX2 5499 5500 5501 5528#
DDNEX3 5502 5503 5536#
DDNEX4 5504 5542#
DDNEX5 5505 5548#
DDNEX6 5506 5554#
DDNEXT 1799 5482# SEQ 0465
DDPLI 1900 4805#
DDPLI0 4820# 5538
DDPLI1 4861# 4875
DDPLIM 4851 4855 4885# 5388 5389
DDPLIX 4873 4879#
DDPLM2 4849 4889# 5386
DDPMU0 5550 5605#
DDPMUL 1903 5599#
DDPPA0 5556 5640#
DDPPAK 1904 5634#
DDPPT0 5544 5570#
DDPPTT 1902 5564#
DDRAR 1822 3307#
DDTAB 5483 5485 5490#
DDUMP 17 1885 5070#
DDUMP0 5103# 5109
DDUMPM 5147 5167#
DDUMPX 5088 5097 5106 5119 5126 5131 5139 5161#
DEALU 1832 3969#
DEALU0 3979 3987 3993# 5463
DEALU1 4022# 4055
DEALUM 4025 4034 4035 4231#
DEALUX 4052 4059#
DEBALU 4017# 5086
DEBEBU 3240# 5080
DEBELO 4314# 5117
DEBLAR 3289# 5081
DEBSTK 5090 5670#
DEBTIM 85# 6873
DEBUG1 182 346 1529
DEBUG2 184 348 1531
DEBUG3 186 350 1533
DEBUG4 188 352 1535
DEBUG6 190 354
DECOP0 10979# 10984
DECOPC 6467 6505 7677 7761 9308 10486 10977#
DECOPX 10981 10989#
DECRAM 1828 3338#
DECSR 1801 2859#
DECTAB 10978 10994#
DECVER 9 11954 12067
DECYN 87# 2249 2272 2296 2438 2490 2514
DEEBUF 1817 3237#
DELAR 1821 3286#
DELOC0 4276 4284 4290# 5470
DELOC1 4320# 4353
DELOCM 4331 4332 4521#
DELOCS 1836 4266#
DELOCX 4349 4357#
DENE0 5419# 5432
DENEX0 5436 5437 5438 5439 5440 5441 5453#
DENEX1 5442 5443 5444 5460#
DENEX2 5445 5446 5447 5467# SEQ 0466
DENEX3 5448 5449 5474#
DENEXT 1798 5409#
DEPLI 1901 4901#
DEPLI0 4933# 5476
DEPLI1 4967# 4992
DEPLIM 4939 4940 5003# 5332 5333 5358 5359
DEPLIX 4990 4996#
DERBUF 1906 5057#
DESTA0 5682# 5702
DESTAK 1859 5667#
DESTAX 5684 5706#
DESTAY 5691 5694 5707#
DESTKM 5672 5713#
DETAB 5424 5426 5436#
DETBUF 1905 5043#
DEVREL 79# 699 724
DEVREQ 79# 208
DFEXA0 6133# 6151
DFEXAM 1855 6125#
DFEXAX 6133 6149 6153#
DFILLN 1860 6273#
DFILLP 1861 6301#
DFILN0 6284# 6292
DFILP0 6312# 6318
DFLAG 3339# 3339 3347 3355 3363 3371 3379 3445 3592 3660 4013 4095 4191 4310
4392 4484 4838 4902 5423 5425 5482 5484 5590 5625 5660
DFLIS0 6099# 6116
DFLIST 1854 6090#
DFLISX 6099 6114 6118#
DFLOAD 1852 6024#
DFVER0 6082#
DFVERF 1853 6067#
DGRCV 6760 6766 6777 6779 7710 7721 10957 11002 11133
DGSNT 6759 7662 7711 9292 10953 11132
DHELP 1787 1948#
DHELP0 1966# 1970
DHELP1 1966 1995#
DIINIT 1871 6422#
DIPRIN 1862 6364#
DIQUEU 1896 6531#
DISGO 457 550# 578
DISLIS 411 492#
DISP0 317# 321 386 391 401 438 447 453 464 471 7044
DISP0A 388# 400
DISP0B 387 398#
DISP1 410#
DISP2 370 414 457#
DISPAT 228 309#
DISPD 422 442#
DISPE 397 445 451#
DISPR 425 433#
DISPX 429 462#
DISQUE 396 469# SEQ 0467
DISQUU 470 473#
DLBR0 5893 5903 5909#
DLBR1 5932# 5960
DLBR2 5941 5955#
DLBRK 1848 5885#
DLBRX 5957 5961#
DLCRAM 1829 3378#
DLGPNT 1889 6338#
DLIST 1851 5999#
DLMAR0 4729 4739 4745#
DLMAR1 4768# 4793
DLMAR2 4774 4788#
DLMARK 1843 4721#
DLMARX 4790 4794#
DLOAD 1850 5968#
DMARK 1840 4558#
DMARK0 4565# 4593
DPINIT 1893 6434#
DPLIH 4805 4820 4831 5027#
DPPCB 1898 6558#
DPQUE0 6590 6602# 6612
DPQUEU 1897 6569#
DRBR0 5781# 5805
DRBRK 1846 5774#
DRCRAM 25 3552 3866 3894 3944# 4584 4627 4696 4771 5753 5800 5865 5935 7534
8218 8252
DRESET 1805 2900#
DRMAR0 4608# 4636
DRMARK 1841 4601#
DSADD1 2203 2214# 2759 2928
DSADD2 2215#
DSADDR 2205 2211 2216 2822# 2924 2952
DSBSD1 2489 2497#
DSBSD2 2498# 2768
DSBYTE 2543 2548 2828# 6486
DSCSR1 2228 2233#
DSCSR2 2234# 2760 2929
DSDAD0 2572 2581#
DSDAD1 2565 2586 2592 2598 2604 2611 2615#
DSDAD2 2579 2619# 2770
DSDADL 2567 2637#
DSDATA 2230 2235 2823# 2926 2965
DSEBU1 2271 2279#
DSEBU2 2280# 2762
DSET 1795 2131#
DSETAD 2173 2200#
DSETBS 2183 2486#
DSETCS 2174 2225#
DSETDA 2185 2557#
DSETEB 2176 2268#
DSETFN 2178 2315#
DSETFO 2182 2459#
DSETHE 2193 2783# SEQ 0468
DSETHL 2787 2790#
DSETIN 2190 2715#
DSETLN 2184 2533#
DSETPA 2179 2346#
DSETPC 2177 2292#
DSETPD 2188 2510#
DSETPL 2180 2388#
DSETPP 2394 2403 2412# 2425
DSETPR 2175 2245#
DSETPT 2189 2690#
DSETPV 2187 2671#
DSETPX 2423 2426#
DSETRE 2181 2433#
DSETSA 2186 2644#
DSETSU 2191 2734#
DSETUP 79# 199
DSETWH 2192 2754#
DSFNM0 2324 2327#
DSFNM1 2318 2332#
DSFNM2 2333# 2764
DSFOR1 2462 2471#
DSFOR2 2472# 2767
DSFORL 2464 2478#
DSIDLE 1894 6445#
DSINIT 1815 2921#
DSINT 2720 2725 2849# 6876 6982
DSINT1 2718 2723#
DSINT2 2724# 2775
DSLEN1 2536 2546#
DSLEN2 2547# 2769
DSPAD1 2513 2521#
DSPAD2 2522# 2773
DSPAR1 2248 2256#
DSPAR2 2257# 2761
DSPAT 2356 2374 2391 2830# 6489
DSPAT1 2349 2372#
DSPAT2 2373# 2765
DSPAT3 2377 2381#
DSPATX 2358 2367#
DSPCB1 2295 2303#
DSPCB2 2304# 2763
DSPEAR 11920 11982
DSPNT1 2693 2703#
DSPNT2 2704# 2774
DSPRIN 31 2700 2705 2846# 5189 5190 5231 5232 10898 11181
DSPTT1 2674 2679#
DSPTT2 2680# 2772
DSRES1 2437 2446#
DSRES2 2447# 2766
DSSAD2 2650# 2771
DSSCLR 1814 2930 3141#
DSSPN0 3126# 3133
DSSPNT 1813 3117# SEQ 0469
DSST0 3057# 3097
DSST1 3087#
DSSTEP 1811 3041#
DSSTX 3071 3076 3096 3101#
DSSUM 2739 2744 2848# 6657 6744
DSSUM1 2737 2742#
DSSUM2 2743# 2776
DSTAR0 2961#
DSTART 1808 2949#
DSTOP 1809 2992#
DSTOP1 3002 3007#
DSTPAT 2366 2379 2831#
DSWIT 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936
1937 1938 1939 1940 1941 1942 6350#
DTRAC0 3039 3044#
DTRACE 1812 3037#
DTRANS 1857 6161#
DTRFLG 3038 3041# 3041 3052 3070 3082 3090
DWATC0 6669# 6872 6875 6889 6895 6910 6920 6925 6930 6933 6935 6955 6959 6962
6970 6974 6985 6987 6996 7005
DWATC1 6695 6750#
DWATC2 6746 6757 6770 6783 6788 6815 6817 6837#
DWATC3 6859 6882#
DWATC4 6861 6893#
DWATC5 6893 6897#
DWATC6 6863 6906#
DWATC7 6843 6878 6914#
DWATC8 6846 6978#
DWATC9 6849 6991#
DWATCA 6865 7000#
DWATCH 1899 6619#
DWATCQ 6663# 6867
DWATCX 6673 6675 7009#
DWATCY 6687 7012#
DWATLP 6773 6776 6787#
DWCRAM 25 3532 3654 3845 3916# 4591 4634 4704 5764 5803 5868 6290 6315 7558
8152
DWORDL 8213# 8213 8220 8229 8243
DWORDR 8217# 8217 8235
DZALU 1834 4148#
DZALU0 4158 4166 4172#
DZALU1 4200# 4221
DZALUM 4201 4205 4206 4251#
DZALUX 4218 4225#
DZCRAM 1830 3370#
DZCSR 1803 2888#
DZEBUF 1819 3260#
DZLOC0 4451 4459 4465#
DZLOC1 4493# 4511
DZLOCM 4494 4495 4543# 8320 8321
DZLOCS 1838 4441#
DZLOCX 4507 4515#
DZRAR 1823 3325# SEQ 0470
EADDR 75#
ECODE 8225 8240 8291 8363#
ECOMP 7149
EDEBUG 18 113# 113 180 191 344 355 1213 6697
ENABLE 78# 201
ENATST 830# 830 834# 834 861 863
ENDFIX 10
EPLIH 4909 4922 5033#
ERESET 74# 2903
ERFLG 333 623 1517 7211 7234 7962 8627 11974 11991 12048 12148 12157
ERRPC 7212
EXE 12183#
EXEN 12177#
FFF 79# 9904
FFLAG 6027 6070 6093 6128 7935 8035 8045 8079 8108 8115 8126 8200 8257 8352#
FGETW 85# 8057
FINCMD 85# 385 1560 3589
FINECH 31 132# 132 378 379 943 945 1553 1554
FINPUT 31 131# 131 377 384 979 1107 1552 1559 3588
FIOFF 85# 324 437 452 665 674 769 839 854 961 1201 1548 1573 1592
1962 2139 2145 2209 2354 2363 2409 2416 2541 2698 2877 2969 2972 2997
3000 3063 3066 3220 3223 3243 3270 3275 3311 3415 3420 3424 3472 3491
3499 3507 3515 3523 3562 3618 3638 3997 4002 4006 4075 4080 4090 4175
4180 4184 4294 4299 4303 4373 4379 4387 4468 4473 4477 4560 4572 4603
4615 4675 4680 4684 4748 4753 4757 4809 4814 4824 4916 5568 5574 5580
5603 5609 5615 5638 5644 5650 5690 5693 5729 5741 5776 5788 5844 5849
5853 5912 5917 5921 5972 5980 5984 6003 6011 6015 6165 6277 6305 6464
6471 6539 6546 6549 6575 6580 6594 6599 9421 9423 9433 9435 9460 9462
9488 9495 9502 9510
FLDLIS 3633 3766#
FLOADB 6028 6071 6094 6129 7936 8021#
FLOADC 6053 7951 8105#
FLODB0 8025 8033#
FLODB1 8057# 8070
FLODB2 8058 8074#
FLODBE 8036 8044 8093#
FLODBX 8028 8092#
FLODC0 8142# 8154
FLODCX 8112 8116 8125 8167#
FLONOP 8161 8175#
FMTTYP 136# 136
FNAME 2326 2328 2334 2337 7970 7973 7979 7982 7988 7991 7997 8000 8024 8027
8033 8038 8041 8047 8050 8074 8345#
FOARG 85#
FORPNT 85# 153 258 1223
FORSEL 2468 2473 2836# 6480
FUERR 6060 6083 8279#
FUERR0 8295# 8305
FUNCT 617 1235 1236 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
FVERF0 8206# 8249
FVERF1 8209 8223 8233 8238 8247 8248#
FVERFC 6059 6082 7954 8197#
FVERFE 8202 8256 8268# SEQ 0471
GETLOG 78# 6341
GETPPN 11925 12035 12079#
GETQU0 10032 10050#
GETQUE 47 6963 9941 10025# 10163
GETQUX 10046 10064#
HAVIPA 79# 12190
ICRC 9360 9386 9591#
ICRC0 9641 9653#
ICRC1 9660# 9671
ICRC2 9656 9676# 9703
ICRC3 9660 9672 9676 9708#
ICRC4 9715# 9717
ICRCX 9709 9712 9723#
ICRCY 9598 9729#
ICWA0 78# 5264
IGNFLG 6651# 6651 6768 6774 6825 7000 7001 7003
IMTAB 8815 11563#
INHCRC 9275# 9275 9277 9294 9356 9381 9591
INITPD 76# 712
INITPI 76# 226 363 6425
INSQE1 10005#
INSQE2 9929 9934 9984 10004#
INSQUE 46 6544 6813 6931 9921#
INTAPR 77# 6407
INTCON 77# 6404
INTCSR 77# 6410
INTEND 77# 1868
INTNUM 77# 1866 1867 1869 6369 6380 6383 7215
INTPC 77# 6394
INTTIM 77# 6397
INTTYP 77# 6385 6413
INTUSE 77# 6400
IPACLR 74# 2913 5222 8620 9170
IPASRT 75# 2967 3218
IPASST 75# 3061 5688
IPASTP 75# 2995
IPCB 8650 11506#
IPRIN0 6369# 6373
IPRINI 6371 6380#
IPRINT 42 6367#
IPRINX 6370 6374#
IPTAB 8686 11541#
IQCMAX 1148 9919# 9986 9987
IQFMIN 1147 9918# 9936 9937
IQFUL 1145 9917# 9933
ISTOP 74# 2961 3049 3240 3272 3289 3313 3328 3440 4577 4620 4689 4762 5180
5678 5746 5793 5858 5926 5986 6033 6076 6279 6307 7011 7042 7530 7550
7943 8414 8646 10366
ITERAT 192
ITEXT 9354 9379 9543#
ITEXT0 9547 9555 9559#
ITRCNT 193
LARG2 4093 4123 4390# 4390 4416 SEQ 0472
LASARG 87# 2367 2754
LASENT 9851 9864# 9930 10120
LAST 8636
LDCRAM 73# 3928 3935 8457 8470
LDCSR 73# 2880 2892 3291 3315 3330 4042 4122 4126 4215 4339 4341 4415 4419
4502 4504 4865 4867 4971 4973 5154 5156 5262 5284 5340 5342 5366 5368
5396 5398 6035 6078 6199 6201 6823 6940 7130 7145 7175 7945 8328 8330
9183 10334
LDEBUF 73# 3278
LDEBUG 16 111# 111 178 187 342 351 1526 1534 7947 8615
LDMCAT 10944 10995
LDPTT 10945 10996
LDRAR 73# 3317 3331 3921 3933 3949 3956 4040 4120 4213 4337 4413 4500 4863
4969 5152 5260 5338 5364 5394 6197 8326 8446 8467 9179
LENTRY 7028 7032 9839 9861# 10050 10052 10054 10064 10387
LINCNT 11210# 11210 11216
LINKG 11274 11285#
LINKP 10381 10384 10425 10474 10517 10533 10536 10539 10578 10596 10602 10795 11016 11019
11247 11271# 11488 11491
LINKV 10377 11250 11283#
LINKV0 11287# 11292
LINKV1 11288 11294#
LINKV2 11290 11297#
LINKVX 11295 11300#
LINTAB 11286 11306#
LOCDON 80# 12191
LOCFR 4266 4306 4381 4401 4441 4480 4549#
LOCPHY 80# 200
LOCTO 4268 4308 4382 4443 4482 4550#
LOGPNT 78# 6342
LOOFLG 6650# 6650 6787 6991 6992 6994
LOOP 616 1241 1242 1243 1254
LOOPGM 242
LOOPTS 997
MAPNEW 114
MAXTST 419# 424 434 638 660 662 669 671 849 851 878 1054 1138 5975
5977 6006 6008
MBCN 198 335 1140 1215 1520 5263 6699 12192
MCAT0 11870#
MCAT1 11872#
MCAT10 11886#
MCAT11 11888#
MCAT12 11890#
MCAT13 11892#
MCAT14 11894#
MCAT15 11896#
MCAT16 11898#
MCAT17 48 11900#
MCAT2 11874#
MCAT3 11876#
MCAT4 11878#
MCAT5 11880#
MCAT6 11882# SEQ 0473
MCAT7 11884#
MCATLD 10954
MCNVER 9 11954 12067
MCPUS 122# 122
MDEBUG 15 110# 110 177 185 341 349 1525 1532 7963 8631
MLIST 6017 8568#
MLIST0 8572# 8596
MLISTX 8574 8597#
MLNUM 26 5990 8403# 8403 8493
MLOAD0 8420# 8435 8437 8495
MLOAD1 8426 8441#
MLOAD2 8472 8478 8481 8493#
MLOADN 25 4036 4111 4207 4333 4406 4496 4856 4941 5148 5254 5334 5360 5390
5673 6193 8162 8322 8390# 8621
MLOADR 8431 8436#
MLOADX 8422 8499#
MLOADY 25 5987 8392#
MONTYP 166
MPRUN 4041 4121 4214 4338 4414 4501 4864 4970 5153 5261 5339 5365 5395 6198
6684 7127 7142 7170 7172 8327 9180 9187
MSG 8635
MTABLE 48 5621 8815 8816 8931 9047 10437 10459 11314 11523 11619 11869#
MULFLG 357# 357 1538 3874 3880 3908 4051 4059 4348 4357 5419 5422 7339
MULINI 358# 358 1539 3890 5431
MVCOM 8394 8397 8402#
MVFLAG 8393# 8393 8396 8456 8458 8469 8471
MVNUM 8402# 8402 8479 8499 8517 8521
MVPNT 25 8502 8517# 8636
MVPNT1 8528# 8549
MVPNTW 8534 8538 8544 8555#
MVPNTX 8546 8551#
MVREP 8390# 8390 8392 8501
MWBADR 8408 8409 8483 8507# 8528
MWBLAC 8487 8509# 8536 8541
MWBLCO 8484 8508# 8532 8540
MWBRAC 8410 8489 8511# 8537 8543
MWBRCO 8485 8510# 8533 8542
MWDQUE 3612 3788#
NCHAR 6644# 6644 6676 6677 6839 6840
NEWENT 48 6965 6971 9943# 9943 9962 9991 10087 10094 10113 10126 10167 10172 10284
10290
NIA 615 1237 1238 1239 1240
NIPORT 198 335 1140 1520 12110# 12208
NPACKL 6648# 6648 6728 6731 6818
NPACKO 6647# 6647 6735 6738 6771
NPACKQ 6649# 6649 6721 6724 6767 6778
NPACKR 6646# 6646 6714 6717 6780
NPACKS 6645# 6645 6707 6710 6942
NSARD 10960
NSAWR 10961
NUMENT 48 6819 6928 6936 6960 7026 9821 9849 9865# 9935 9985 10025 10030 10101
10385 10388
NUMPNT 10661# 10661 10669 SEQ 0474
OP 6466 6499 6501 6502 6515 6758 6759 6760 6766 6777 6779 6797 6798 6947
7086 7660 7662 7693 7705 7708 7710 7711 7721 7760 7781 9292 9310 9313
10480 10918 10927 10934 10983
OPCPN0 10924# 10928
OPCPNE 10926 10933#
OPCPNT 47 6831 6948 7087 10481 10916# 11024
OPCPNX 10932 10937#
OPRSEL 232 312 319 322 369 463 1099 1204 1211
P 317 1026 1029 1030 1031 1512 5385 5387 7043 7053 7064 7100 7157 7956
7964 8092 8110 8111 8124 8169 8170 8267 8399 8500 8624 8632 9188 9574
9653 9783 9793 9832 9902 10003 10004 10027 10169 10223 10265 10988
P1 12202#
P3 12200#
P5 12198#
P7 12196#
PACK1 10490 10561#
PACK10 10496 10836#
PACK11 10497 10870#
PACK1A 10568 10590#
PACK2 10491 10613#
PACK3 10492 10621#
PACK4 10493 10628#
PACK4B 10634# 10650
PACK4C 10642 10649# 10663 10681
PACK4D 10643 10654#
PACK4E 10644 10657#
PACK4F 10662# 10668 10677
PACK4G 10645 10679# 10691
PACK4T 30 10634 10639 10646 10679 10682 10685 10716#
PACK4X 10655 10695#
PACK4Y 10658 10707#
PACK5 10498 10778#
PACK6 10494 10807#
PACK7 10495 10821#
PACKET 49 5656 6537 6627 6792 6793 6794 6796 6798 6800 6803 6805 6807 6808
6809 6916 6917 6918 6947 7660 7664 7679 7689 8931 9047 9283 9284 9285
9304 9313 9340 9345 9347 9353 9358 9359 9365 9367 9369 9370 9372 9374
9377 9378 9383 9384 9385 9403 9439 9441 9443 9467 9468 9519 9520 9522
9524 9526 9528 9530 9603 9605 9607 9609 9611 9613 9633 9635 9949 9957
9958 9974 10238 10240 11341 11342 11343 11344 11638#
PACKG 10499 10894#
PADDR 7586 7602 10581 10599 10785 10788 10844 10873 11038#
PADFLG 2516 2518 2523 2525 2838# 6482
PAG 5267
PARFLG 26 2251 2253 2258 2260 2825# 3925 4589 4590 4592 4632 4633 4635 4702
4703 4705 5762 5763 5765 5801 5802 5804 5866 5867 5869 7551 7552 7561
8140 8141 8155
PASCNT 172 248 254 371
PASPNT 233 248#
PAT 2391 2392 2393 2401 2402 2412 2413 2414 2419 2420 2424 9570
PAT1 2392# 2392 2396# 2396 2401 2407 2412
PAT2 2393# 2393 2402 2405 2406 2424
PATCH 12125# SEQ 0475
PATCH0 12124#
PATPNT 88# 2375 2419
PBSD 10605 11235#
PCB 55 6753 6755 6926 6961 6966 6973 8650 8651 8653 8660 8674 8827 8836
8931 9041 9047 9157 9822 9823 9824 9931 10036 10037 10038 10056 10057 10058
10106 10107 10108 10132 10133 10134 10151 10155 10165 10171 10177 10194 10195 10196
10360 10361 10362 11306 11307 11308 11309 11310 11311 11312 11432 11436 11438 11440
11443 11448 11452 11457 11460 11463 11466 11485 11487 11490 11507 11508 11512 11513
11531 11535 11602# 11603 11604 11608 11609 11627 11631 11655 11696
PCBFLG 2298 2300 2305 2307 2833# 2956
PCMD 1516# 1516 1580 1588
PDSABL 7127 7172
PENABL 7142
PFLAG0 11135 11156#
PFLAG1 11152 11163#
PFLAGS 11025 11121#
PG 12197 12199 12203#
PGMNAM 19 94#
PHEAD 10561 10613 10621 10628 10778 10807 10821 10836 10870 10894 11009#
PK 7089 10360 10364 10367 10376 10379 10380 10383 10396 10473 10479 10516 10532 10535
10538 10563 10566 10573 10577 10580 10582 10583 10591 10595 10598 10601 10603 10632
10780 10784 10787 10790 10794 10796 10797 10809 10823 10843 10845 10872 10874 10896
11015 11018 11021 11059 11123 11129
PLICTL 4816 4847 4904 4918 4928 4938 4946 5021#
PLIDAT 4827 4850 5022#
PLINUM 4963# 4963 4977 4979
PLIRD 10959
PLIREP 4836 4874 4903 4927 4991 5023# 5475
PLIWR 10958
PLOG 5137 5159 5251#
PLOG0 5274# 5282
PLOGM 5253 5294#
PMISC0 10899# 10907
PMODE 38 194 356 1121 1537 9394 9410 9450 9476 12108#
PNTCRM 3901 6112 7267# 8590
PNTENB 152 332 1519
PNTHST 3083 3126 3164#
PNTRS0 7083#
PNTRS1 7091 7096#
PNTRS2 7100#
PNTRSP 46 6775 6782 7078#
PNTRSX 7101#
PNTWD 3870 6147 7352# 8300 8303
PORT 614 1232 1233 1234
PPAKC 54 10397 10467#
PPAKC0 10479# 10519
PPAKCC 7095 10485#
PPAKCX 10502#
PPAKF 54 10399 10400 10529#
PPAKR 54 10398 10510#
PPCB 54 5095 6561 11428#
PPCB0 11476# 11495
PPCBD 54 6902 11472# SEQ 0476
PQUEM0 10438# 10460
PQUEP0 10414# 10428
PQUEU0 10393# 10401
PQUEUE 54 5103 6603 10352#
PQUEUM 10359 10433#
PQUEUP 10358 10409#
PQUEUX 10389 10395 10402#
PQUEUY 10403# 10429 10461
PRSFLG 2274 2276 2281 2283 2826# 3058
PSTAT0 11070#
PSTAT1 11072# 11077
PSTAT2 11074 11084#
PSTATS 11026 11056#
PSTATX 11066 11080 11090#
PTABLE 48 5586 8689 8691 8853 8859 8865 8931 9047 10252 10258 10413 10427 11313
11522 11618 11707#
PTCHK0 10253# 10259
PTCHK1 10256 10264#
PTCHKP 6921 9923 10236#
PTCHKX 10247 10265#
PTCHKY 10260 10266#
PTEXT 10585 10799 11179# 11260
PTEXT0 11189# 11203
PTEXT1 11185 11207#
PTEXT2 11209# 11225
PTEXT3 11212# 11217
PTIME 84# 6829 6885 6900 6945 7084 7795 7826
PTTBEG 8679 8680 11775#
PTTEND 8681 11860#
PTTF0 8697 8703 8704 8754 8755 8871 8911 8947 8973 8998 9023 9063 9089 9114
9139 10298 11317 11346 11371 11396 11777 11781# 11788
PTTF1 8702 8705 8706 8756 8757 8871 8911 8947 8973 8998 9023 9063 9089 9114
9139 10298 11318 11347 11372 11397 11781 11787# 11792
PTTF10 8716 8719 8720 8770 8771 8887 8917 8957 8979 9004 9029 9073 9095 9120
9145 10303 11325 11354 11379 11404 11817 11821# 11828
PTTF11 8718 8721 8722 8772 8773 8887 8917 8957 8979 9004 9029 9073 9095 9120
9145 10303 11326 11355 11380 11405 11821 11827# 11832
PTTF12 8720 8723 8724 8774 8775 8887 8917 8957 8985 9010 9035 9073 9101 9126
9151 10308 11327 11356 11381 11406 11827 11831# 11838
PTTF13 8722 8725 8726 8776 8777 8887 8922 8957 8985 9010 9035 9073 9101 9126
9151 10308 11328 11357 11382 11407 11831 11837# 11842
PTTF14 8724 8727 8728 8778 8779 8895 8922 8957 8985 9010 9035 9073 9101 9126
9151 10308 11329 11358 11383 11408 11837 11841# 11848
PTTF15 8726 8729 8730 8780 8781 8895 8922 8957 8985 9010 9035 9073 9101 9126
9151 10308 11330 11359 11384 11409 11841 11847# 11852
PTTF16 8728 8731 8732 8782 8783 8895 8922 8957 8985 9010 9035 9073 9101 9126
9151 10308 11331 11360 11385 11410 11847 11851# 11858
PTTF17 8697 8730 8733 8784 8785 8895 8922 8957 8985 9010 9035 9073 9101 9126
9151 10313 11332 11361 11386 11411 11778 11851 11857#
PTTF2 8704 8707 8708 8758 8759 8871 8911 8947 8973 8998 9023 9063 9089 9114
9139 10298 11319 11348 11373 11398 11787 11791# 11798
PTTF3 8706 8709 8710 8760 8761 8871 8911 8947 8973 8998 9023 9063 9089 9114
9139 10298 11320 11349 11374 11399 11791 11797# 11802 SEQ 0477
PTTF4 8708 8711 8712 8762 8763 8879 8911 8947 8979 9004 9029 9063 9095 9120
9145 10298 11321 11350 11375 11400 11797 11801# 11808
PTTF5 8710 8713 8714 8764 8765 8879 8911 8947 8979 9004 9029 9063 9095 9120
9145 10303 11322 11351 11376 11401 11801 11807# 11812
PTTF6 8712 8715 8716 8766 8767 8879 8917 8947 8979 9004 9029 9063 9095 9120
9145 10303 11323 11352 11377 11402 11807 11811# 11818
PTTF7 8714 8717 8718 8768 8769 8879 8917 8947 8979 9004 9029 9063 9095 9120
9145 10303 11324 11353 11378 11403 11811 11817# 11822
PTTFQ 55 6804 6927 7037 8682 8690 8698 8700 8702 8732 8869 8947 9063 9341
9343 9825 9932 10039 10059 10109 10135 10197 10363 11315 11316 11708 11712 11716
11720 11724 11728 11732 11736 11740 11744 11748 11752 11756 11760 11764 11768 11776#
11782 11857
PTTLD 10955
PTTVAL 2676 2681 2853# 6491
PUTQU0 10086 10094#
PUTQU1 10102 10120#
PUTQUE 47 6972 9992 10080# 10193
PUTQUX 10116 10140#
PVPAGI 115
Q 5102 5107 5108 6602 6610 6611 6922 6927 6956 6967 7022 7038 7080 7090
7101 9825 9924 9932 9950 9952 9982 10039 10059 10085 10109 10135 10155 10156
10190 10197 10206 10242 10264 10286 10287 10288 10292 10359 10363 10374 10400 11257
QARG1 6582# 6582 6597 6602 6610
QARG2 6583# 6583 6596# 6596 6611
QUNKF0 8661 8662 8737 8738 8837 8903 8939 8967 8992 9017 9055 9083 9108 9133
10314 11333 11362 11387 11412 11517 11613 11654# 11661
QUNKF1 8660 8663 8664 8739 8740 8837 8903 8939 8967 8992 9017 9055 9083 9108
9133 10314 11334 11363 11388 11413 11654 11660# 11667
QUNKF2 8662 8665 8666 8741 8742 8837 8903 8939 8967 8992 9017 9055 9083 9108
9133 10314 11335 11364 11389 11414 11660 11666# 11673
QUNKF3 8664 8667 8668 8743 8744 8837 8903 8939 8967 8992 9017 9055 9083 9108
9133 10314 11336 11365 11390 11415 11666 11672# 11679
QUNKF4 8666 8669 8670 8745 8746 8845 8903 8939 8967 8992 9017 9055 9083 9108
9133 10314 11337 11366 11391 11416 11672 11678# 11685
QUNKF5 8668 8671 8672 8747 8748 8845 8903 8939 8967 8992 9017 9055 9083 9108
9133 10319 11338 11367 11392 11417 11678 11684# 11691
QUNKF6 8670 8673 8674 8749 8750 8845 8909 8939 8973 8998 9023 9055 9089 9114
9139 10319 11339 11368 11393 11418 11684 11690# 11697
QUNKF7 8672 8675 8751 8752 8845 8909 8939 8973 8998 9023 9055 9089 9114 9139
10319 11340 11369 11394 11419 11518 11614 11690 11696#
RALUB 3970# 3970 3981 3993 4004 4008 4023 4053 4082 4104 4149 4160 4172 4182
4186 4200 4219 5083 5461 5521
RALUE 3972# 3972 3982 3989 3999 4010 4054 4084 4151 4161 4168 4177 4188 4220
5085 5462 5522
RANCNT 1046# 1046 1058 1064
RANDBS 1022
RANGEN 1019# 1055
RANNUM 1021# 1021 1024 1050
RCCNT 10946 10997
RDADD0 9201# 9212
RDADDR 47 222 2575 2647 7576 9197#
RDBF 5191 5329# 9204
RDBUF1 5191# 5199 SEQ 0478
RDBUF2 5216# 5238
RDBUF3 5233# 5236
RDBUFR 5063 5129 5209#
RDBUFT 5049 5124 5178#
RDBUFX 5218 5242#
RDCRAM 73# 3950 3957 8459 8473
RDCSR 73# 203 2862 2977 5077 6681 6820 6882 6937 7132 7147 7168 7177 9185
9787 10218 10329
RDEBUF 73# 3248 4043 4342 4974 5343 5369
RDLAR 73# 3292 4984 6202
RDNSA 10949 11000
RDPLI 10948 10999
REL 79# 12180
RELIAB 1129
REQ1 79# 12178
REQ2 79# 12179
RESCR0 7555# 7560
RESCRM 4062 4139 4226 4360 4432 4516 4880 4998 5158 5289 5347 5373 5400 5708
6233 7548#
RESQAV 9789 10220 10222 10333
RFROM 3387 3434 3463#
RLOCB 4267# 4267 4278 4290 4301 4305 4316 4320 4326 4330 4350 4442 4453 4465
4475 4479 4493 4508 5114 5468 5529
RLOCE 4269# 4269 4279 4286 4296 4307 4352 4444 4454 4461 4470 4481 4510 5116
5469 5530
RQAFLG 48 6659# 6659 6752 6756 10168 10215 10221
RRDBF 5233 5355#
RSPFLG 2433 2440 2443 2448 2450 2835# 6476
RSPONS 49 6758 6764 6765 6799 6801 6806 6808 7086 7089 7618 7708 7713 7723
7750 7760 7763 7773 10173 10174 10175 10177 10178 11258 11642#
RSPOPC 10923 10953#
RSPPAK 7094 10470# 10470 10513 10629
RSPQUE 46 10190# 10190
RSTART 1172
RTO 3385 3436 3462#
RUNTME 84# 260 1048 1225 6655 6692 6704 6907
RUPDA1 7725 7737#
RUPDA2 7722 7746#
RUPDA3 7753 7760#
RUPDAT 30 7703# 10202
RUPDAX 7733 7741 7781#
RWAIT 46 9783#
RWAIT0 9787# 9792
RWAITX 9790 9794#
S1 11934# 12132
S2 12043# 12133
SADDR 50 221 223 2576 2651 2653 2655 2657 2659 2661 2843# 6763 7585 7621
7622 7665 7666 7714 7715 9205 9206 9207 9208 9209 9210 9518 9618 9620
9622 9624 9626 9628
SANCH0 7028# 7036
SANCHE 7031 7035 7041#
SANCHK 6670 7020#
SANCHX 7025 7027 7037# SEQ 0479
SANFLG 2851#
SAVAD1 2558# 2558 2582 2588 2594 2600 2615
SAVAD2 2559# 2559 2606 2613
SAVCMD 1512# 1512
SAVCO1 7629# 7638
SAVCO2 7635 7643#
SAVCON 7618# 7777
SAVCR0 7533# 7538
SAVCRL 7531 7553 7568#
SAVCRM 4018 4100 4196 4315 4397 4489 4843 4934 5146 5252 5330 5356 5384 5671
6183 7528#
SAVEP 317# 317 7043
SAVFLD 3624# 3624 3625 3632
SAVHST 3068 3077 3185#
SAVNUM 1120# 1120 1125
SAVOPW 10239# 10239 10243
SAVPKT 6627 6628 6916 11643#
SAVPTT 10241# 10241 10251
SAVRAR 8445# 8445 8465
SB 104#
SCOOFF 88# 7214
SCOPE1 88#
SCOSW 86#
SDATA 75# 2927 2966 3008 3059 3108 3200 3228 5685 7217
SELLAR 3290 6200
SEN11L 11990 12026 12036 12041 12070#
SENT10 11926 11928 11932 11945# 12135
SENT11 11987 11988 12005 12014 12031 12040 12057# 12143 12152
SETDS0 7177# 7182
SETDSA 30 7010 7166#
SETDSX 7171 7178 7180 7183#
SETEBU 74# 3241 3273
SETEN0 7132# 7137
SETEN1 7135 7142#
SETEN2 7147# 7152
SETEN3 7150 7157#
SETENA 30 6450 6635 7122#
SETENE 7133 7138 7148 7158#
SETLAR 74# 4975
SETVEC 76# 227 364 713 6426
SHUTRQ 10164 10170 10328#
SHUTRX 10330 10335#
SINCYC 4041 4214
SLAST 75# 2964 3102 3194
SLDATA 3060# 3060 3198
SNARKF 79#
SNDDG 6797 9959 10246 10943 10994
SNDFLG 6652# 6652 6871 6979 6980
SNDTIM 6653# 6653 6874 6877 6978
SNEXT 75# 2925 2963 3004 3105 3196 5687 5701 7216
SPCHK1 11925# 12140
SPCHK2 11987# 12149 12160
SPEAR1 156# 156 11912 11938 SEQ 0480
SPEAR2 38 157# 157 11969 12050
SPRE1X 11921 11939#
SPRE2A 11970 11979#
SPRE2B 12015# 12018
SPRE2C 11991 12030#
SPRE2X 11983 12051#
SPREP1 217 11909#
SPREP2 38 624 11962#
SREPO0 7802# 7820
SREPO1 7804 7824#
SREPO2 7833# 7856
SREPOR 902 7789#
SREPOX 7835 7860#
SRTDDT 711 7045 12154 12194 12209
SSADRL 3153# 3165 3195
SSADRN 3154# 3168 3197
SSCSRL 3155# 3199
SSCSRN 3146 3156# 3171 3201
SSLOC 3081 3124 3144 3145 3151# 3187 3189 3191
SSNUM 3132 3152# 3174 3188 3193
STARCV 32 7731 7748 7838 7900#
START 21 105# 213 729 1173 12186
STARTA 21 221# 240 243
STARTB 230 238 244#
STASNT 32 7673 7739 7807 7896#
STATAB 11071 11096#
STATB 7869 7870 7895#
STATE 7871 7904#
STCLOK 84# 171
STEST 12131#
STEST0 12137 12142#
STEST1 12145 12151#
STESTP 12136 12144 12153 12162# 12167
STIME 6658# 6658 6694 6745 6909
STRT1 141 164#
SUPDA0 7672#
SUPDAT 30 7658# 9999
SWCHPT 86#
SWCOM 86# 931 6356
SWITT 86# 181 231 234 241 311 318 345 462 996 1098 1127 1171 1182
1203 1210 1528 7202 7250 7432 11919 11981
SWPTAB 147
SWRGT 86# 145
SWSTP 1921# 6355
SWSTT 578# 930
SZERO 155 739 7869#
T2M 65# 1261
T3M 65# 1262
TAKFIL 38 951 957 962 965 968 973 976 984#
TAMC 49 9266# 9479 9492 9521
TBSDFL 50 6479 9251# 9296 9300 9348
TBYTE 50 6487 9260# 9355 9380 9545 9548 9566 9643 9644 9646 9649 9710
TDENA 862 864 882 7208 7218 SEQ 0481
TDEST 50 224 6485 9255# 9346
TFLER1 7937 7969#
TFLER2 7937 7978#
TFLER3 7961 7987#
TFLER4 7961 7996#
TFLOAD 25 7935#
TFLOAE 7952 7955 7961#
TFLOAX 7941 7948 7953 7956#
TFMFLG 50 6481 9250# 9297 9375 9549 9560 9564 9655
TH4000 49 9267# 9480 9499 9523
TIDLE 47 6448 6629 9168#
TIDLEE 9186 9189#
TLERR 8628 8635#
TLOAD 25 8615#
TLOADE 8622 8627#
TLOADX 8616 8618 8624#
TMP1 832# 832 836# 836 844 2320# 2320 2327
TOPADR 9838 9844 9866# 9944 9996
TPAT 49 6490 9262# 9570
TPCB 47 6437 8644#
TPCB0 8650#
TPCB1 8686# 8695
TPCB2 8789#
TPCB3 8790# 8797
TPCB4 8792 8802#
TPCB5 8803# 8811
TPCB6 8805 8815#
TPDFLG 50 6483 9253# 9302 9640 9708
TPRMSC 49 9268# 9481 9506 9525
TPTTVL 50 6492 9258# 9339
TRACE 30 7197#
TRACET 7203
TREGD 49 9264# 9438 9442
TREGN 49 9263# 9426 9440 9465 9466
TRETRY 49 9269# 9482 9514 9529
TREX 7204 7211#
TREXX 7219 7224#
TRSFLG 50 6477 9252# 9290
TSLOAD 38 336# 336 5072 7939 7950 8085 8087 8617 8623
TST1 59# 1232
TST10 59# 1239
TST11 59# 1240
TST12 59# 1241
TST13 60# 1242
TST14 60# 1243
TST15 60# 1244
TST16 60# 1245
TST17 60# 1246
TST2 59# 1233
TST20 60# 1247
TST21 60# 1248
TST22 60# 1249
TST23 60# 1250 SEQ 0482
TST24 61# 1251
TST25 61# 1252
TST26 61# 1253
TST27 61# 1254
TST3 59# 1234
TST4 59# 1235
TST5 59# 1236
TST6 59# 1237
TST7 59# 1238
TSTAL0 1195 1200#
TSTALT 993 1076 1193#
TSTCNT 1136 1167 12106#
TSTCON 560 747# 1880
TSTD0 1084 1095#
TSTD1 1104# 1112
TSTD2 1106 1109 1115#
TSTD3 1012 1057 1100 1119#
TSTD4 1125# 1188
TSTD5 1135# 1175
TSTD6 1140# 1168
TSTD7 1159#
TSTD8 1169#
TSTD9 1139 1179#
TSTDDT 571 707# 1793
TSTDEB 569 1509#
TSTDIA 570 696# 1205
TSTDIS 619 1076#
TSTDL0 877# 883 892
TSTDS0 844# 866
TSTDSA 563 830#
TSTDSL 564 872#
TSTEBF 4041 4340 4972 5341 5367
TSTEN0 833 837#
TSTENA 562 834#
TSTEND 36 7233#
TSTEOP 1181 1210#
TSTEXE 551 552 553 554 555 613#
TSTFLG 37 1142 1154 12099#
TSTHL0 773# 777
TSTHLC 766 780#
TSTHLL 773 786#
TSTHLP 573 757#
TSTHLT 572 721#
TSTL1 636# 636 637 648 659 679 683
TSTL2 639# 639 649 655 667 684
TSTLI0 646 653 659#
TSTLI1 679# 687
TSTLIS 565 635#
TSTLIX 685 688#
TSTMAX 419 1255#
TSTMIC 1259# 5982 6013
TSTMSK 37 618 1152 12100#
TSTMUL 1002 1045 1081 1153 1174 1180 12103# SEQ 0483
TSTNAM 37 1286# 7255 12010
TSTNUM 37 427 680 856 875 877 889 1056 1082 1119 1126 1137 7200 7206
7233 7244 7254 11996 11999 12002 12009 12096# 12159
TSTOFF 37 7199 12104#
TSTPC 37 1143 1155 12098#
TSTPN0 7247 7250#
TSTPNT 36 682 7241#
TSTPNX 7252 7256#
TSTPRI 558 899# 1873
TSTRA0 1054# 1059
TSTRAA 1040 1063#
TSTRAN 556 1040#
TSTREL 1131 1135 12105#
TSTREP 37 995 1042 1078 1179 1194 1197 1220 12101#
TSTREQ 1001 1010 1044 1079 1080 1090 1104 1115 1187 12102#
TSTRES 1095 1096 1097 1312# 7234
TSTSAV 402# 402 410 442
TSTSP0 1004 1011#
TSTSPC 428 993#
TSTSSW 580 581 582 583 584 585 586 587 588 589 590 591 592 593
594 595 596 597 598 599 926#
TSTSUB 37 635 7213 7246 12097#
TSTSWI 575 909#
TSTSWP 576 915#
TSTTA0 949 955 961#
TSTTAB 38 419 860 865 881 1141 1231# 7201
TSTTAK 567 945# 1796
TSTTAN 568 943# 1797
TSTZER 559 736# 1874
TTNBRF 1113
TTYYES 84# 9400
TWORD 50 6488 9261# 9546 9559 9571 9596 9654
TXADDL 20 359# 359 1144 1540 9579 9580
TXALL 8635 8636
TXTINH 7251 7433
UCODE 6098 6132 8056 8076 8139 8204 8358#
UDEBUG 14 109# 109 176 183 206 340 347 1524 1530 5266 6451 6630 6636
6683 6954 8793 8807 9342 9366 9371 9965 9971 10041 10090 10095 10123 10129
10244 11909 11962
ULEN 6097 6131 8078 8138 8203 8259 8284 8356#
UNAME 6039 6042 6045 8023 8026 8054 8075 8107 8113 8118 8121 8128 8131 8156
8199 8348#
UNKBEG 8657 8658 11653#
UNKEND 8659 11699#
USER 235 1169 1183 7128 7143 7173 8652 9181 9819 11911 11963
USRION 76# 202
UVERR 8205 8221 8236 8255 8279 8287 8292 8362#
UVERSN 26 8055# 8055 8254 8263
WORCNT 11208# 11208 11219 11220 11221
WRDERR 88#
WRNSA 10950 11001
WRPLI 10947 10998
WRTPLI 5184 5187 5229 5381# 9203 SEQ 0484
XXW 389# 389 1564# 1564 3601# 3601
XXX 1067# 1067 1791# 1791 7226
ZCOUN0 8320# 8333
ZCOUNT 1878 8088 8317#
$$TOGG 154 12185
$ARG2 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
$B 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
$CHR 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
$GARG 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
$ONETM 104 121 138 140 12189
$TTCHR 392 398 404 1567 1576 1582 3570 3584 3604 3620 3648
$TWCNT 390 1565 3602
%ADDR 4231# 4231 4237# 4237 4239 4239# 4241 4241# 4243 4243# 4245 4245# 4251# 4251
4521# 4521 4523 4523# 4529# 4529 4531 4531# 4533 4533# 4535 4535# 4537 4537#
4543# 4543 4885# 4885 4887 4887# 4889 4889# 4891 4891# 5003# 5003 5005 5005#
5007 5007# 5009 5009# 5011 5011# 5013 5013# 5015 5015# 5167# 5167 5169 5169#
5294# 5294 5296 5296# 5298 5298# 5300 5300# 5303 5303# 5305 5305# 5307 5307#
5309 5309# 5311 5311# 5313 5313# 5315 5315# 5317 5317# 5319 5319# 5321 5321#
5713# 5713 6259# 6259 6261 6261# 6263 6263# 6265 6265# 8175# 8175
%ML 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
%MR 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005 SEQ 0485
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
.CGOT 87# 929 6354
.CLOSE 84# 725
.COMM 87# 412 444 767 1590 1960 2143 2465 2568 3634
.CONI 76#
.CONO 76#
.DARG 87# 644 651 1006 1086 2534 2691 2716 2735 3046 3120 4072 4156 4164
4274 4282 4370 4449 4457 5412 5565 5600 5635 6461 6572 6588
.DATAI 76# 5277
.DATAO 76# 4124 4417 5272
.DBCMD 443 1589 1630#
.DBDIS 446 1594 1786# 1921
.HLCMD 1959 1973#
.INPNT 78# 1545 6838
.INWD1 78# 375
.ISWT 86# 912 1913
.JBSA 12188
.LA 5303 5313
.LADDR 4231 4237 4251 4521 4529 4543 4885 5003 5167 5294 5713 6259 8175
.LAND 4251 4543
.LB 5300 5311 5321
.LCCER 4239 4531 5296 5307 5315
.LCCPP 5011
.LCENA 4239 4531 5011 5296 5307 5315 6261
.LCJP 4239 4531 5011 5296 5307 5315 6261
.LCONT 4243 4535 4887 4889 5005 5007 5009 5311 8175
.LCRTN 5713
.LCRY 5321
.LD 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5300 5303
5307 5309 5311 5313 5315 5317 5321 5713 6259 6261 6263 6265
.LJ 4231 4237 4239 4241 4245 4251 4521 4523 4529 4531 4533 4537 4543 4885
4891 5003 5011 5013 5015 5167 5169 5294 5296 5298 5300 5303 5305 5307
5309 5313 5315 5317 5319 5321 6259 6261 6263 6265
.LJMAP 4231 4237 4241 4245 4251 4521 4523 4529 4533 4537 4543 4885 4891 5003
5013 5015 5167 5169 5294 5298 5309 5317 5321 6259 6263 6265
.LLDCT 5300 5305 5319
.LLDLM 4537 4543
.LMGC 4231 4243 4523 4535 4537 4885 4887 4889 5003 5005 5007 5009 5167 5300
5303 5305 5311 5313 5319
.LOENA 4231 4523 4537 4543 4887 5009 5303 5313
.LOR 4231 4243 4521 4523 4535 4537 4885 4887 5007 5009 5300 5303 5311 5313
.LPLUS 5321
.LRDLM 4521
.LRPCT 5303 5313
.LS0A 4231 4251 4523 4537 4543 4887 5009 5303 5313
.LS0B 5321
.LSD0 4243 4521 4535 4885 5007 5300 5311
.LSELC 5167
.LSELE 4231 4243 4523 4535 5009 5300 5303 5305 5311 5313 5319 SEQ 0486
.LSELM 4887 5003 5007
.LSELP 4889 5005
.LSKCN 4885
.LSWIT 86#
.MA 5303 5313
.MAND 4251 4543
.MB 5300 5311 5321
.MCCER 4239 4531 5296 5307 5315
.MCCPP 5011
.MCENA 4239 4531 5011 5296 5307 5315 6261
.MCJP 4239 4531 5011 5296 5307 5315 6261
.MCONT 4243 4535 4887 4889 5005 5007 5009 5311 8175
.MCRTN 5713
.MCRY 5321
.MD 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5300 5303
5307 5309 5311 5313 5315 5317 5321 5713 6259 6261 6263 6265
.MJ 4231 4237 4239 4241 4245 4251 4521 4523 4529 4531 4533 4537 4543 4885
4891 5003 5011 5013 5015 5167 5169 5294 5296 5298 5300 5303 5305 5307
5309 5313 5315 5317 5319 5321 6259 6261 6263 6265
.MJMAP 4231 4237 4241 4245 4251 4521 4523 4529 4533 4537 4543 4885 4891 5003
5013 5015 5167 5169 5294 5298 5309 5317 5321 6259 6263 6265
.MLDCT 5300 5305 5319
.MLDLM 4537 4543
.MMGC 4231 4243 4523 4535 4537 4885 4887 4889 5003 5005 5007 5009 5167 5300
5303 5305 5311 5313 5319
.MOENA 4231 4523 4537 4543 4887 5009 5303 5313
.MOR 4231 4243 4521 4523 4535 4537 4885 4887 5007 5009 5300 5303 5311 5313
.MPLUS 5321
.MRDLM 4521
.MRPCT 5303 5313
.MS0A 4231 4251 4523 4537 4543 4887 5009 5303 5313
.MS0B 5321
.MSD0 4243 4521 4535 4885 5007 5300 5311
.MSELC 5167
.MSELE 4231 4243 4523 4535 5009 5300 5303 5305 5311 5313 5319
.MSELM 4887 5003 5007
.MSELP 4889 5005
.MSKCN 4885
.OARG 87# 845 2201 2226 2347 2360 2389 2399 2584 2590 2596 2602 2609 2672
2874 2950 3267 3308 3393 3403 3488 3496 3504 3512 3520 3977 3985 4087
4384 4566 4609 4654 4664 4727 4737 4806 4821 4832 4910 4923 5577 5612
5647 5735 5782 5823 5833 5891 5901 5969 6000 6162 6274 6302 6622 9420
9432 9459 9487 9494 9501 9509
.RA 5303 5313
.RAND 4251 4543
.RB 5300 5311 5321
.RBRCV 7776 7847 7888#
.RCCER 4239 4531 5296 5307 5315
.RCCPP 5011
.RCENA 4239 4531 5011 5296 5307 5315 6261
.RCJP 4239 4531 5011 5296 5307 5315 6261
.RCONT 4243 4535 4887 4889 5005 5007 5009 5311 8175 SEQ 0487
.RCRTN 5713
.RCRY 5321
.RD 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5300 5303
5307 5309 5311 5313 5315 5317 5321 5713 6259 6261 6263 6265
.RESET 85# 164
.RJ 4231 4237 4239 4241 4245 4251 4521 4523 4529 4531 4533 4537 4543 4885
4891 5003 5011 5013 5015 5167 5169 5294 5296 5298 5300 5303 5305 5307
5309 5313 5315 5317 5319 5321 6259 6261 6263 6265
.RJMAP 4231 4237 4241 4245 4251 4521 4523 4529 4533 4537 4543 4885 4891 5003
5013 5015 5167 5169 5294 5298 5309 5317 5321 6259 6263 6265
.RLDCT 5300 5305 5319
.RLDLM 4537 4543
.RMGC 4231 4243 4523 4535 4537 4885 4887 4889 5003 5005 5007 5009 5167 5300
5303 5305 5311 5313 5319
.ROENA 4231 4523 4537 4543 4887 5009 5303 5313
.ROR 4231 4243 4521 4523 4535 4537 4885 4887 5007 5009 5300 5303 5311 5313
.RPLUS 5321
.RPRCV 7732 7749 7845 7887#
.RRCRC 7756 7851 7890#
.RRDLM 4521
.RRERR 7754 7849 7889#
.RREXP 32 7852 7854 7891#
.RRPCT 5303 5313
.RS0A 4231 4251 4523 4537 4543 4887 5009 5303 5313
.RS0B 5321
.RSD0 4243 4521 4535 4885 5007 5300 5311
.RSELC 5167
.RSELE 4231 4243 4523 4535 5009 5300 5303 5305 5311 5313 5319
.RSELM 4887 5003 5007
.RSELP 4889 5005
.RSKCN 4885
.RSWIT 86# 146
.SARG 87# 760 947 953 1953 2136 2246 2269 2293 2316 2322 2435 2460 2487
2511 2563
.SBSNT 7692 7816 7882#
.SPSNT 7674 7814 7881#
.STCMD 2142 2150#
.STDIS 2147 2173#
.STERR 7740 7818 7883#
.SWCHP 86# 918 1918
ALTCHK 389 1112 1564 3601
CALC 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537 SEQ 0488
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5167 5169
5294 5296 5298 5300 5303 5305 5307 5309 5311 5313 5315 5317 5319 5321
5713 6259 6261 6263 6265 8175
CONCAT 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5167 5169
5294 5296 5298 5300 5303 5305 5307 5309 5311 5313 5315 5317 5319 5321
5713 6259 6261 6263 6265 8175
DELAY 5280 7136 7151 7181 9184 9791 9829
DISMS 9820
ENDUUO 239
EOPUUO 244
FIELD 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5167 5169
5294 5296 5298 5300 5303 5305 5307 5309 5311 5313 5315 5317 5319 5321
5713 6259 6261 6263 6265 8175
FMSG 382 1066 1196 1199 1557 3484 3667 3668 3669 3670 3671 3672 3673 3674
3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 6516 6517 6518 6519
6520 6521 6522 6523 6524 7969 7975 7987 7993
FMSGC 433 670 850 964 972 1063 1110 1193 3476 5976 6007 8037 9399 9414
9454 9484 10289
FMSGCD 209 313 451 643 650 661 696 707 710 721 736 747 768 831
835 838 872 899 909 915 926 946 952 1005 1085 1509 1572 1591
1788 1863 1875 1882 1910 1915 1961 2138 2144 2200 2208 2225 2245 2268
2292 2315 2321 2346 2353 2359 2362 2369 2388 2398 2408 2415 2434 2459
2466 2486 2510 2533 2540 2561 2573 2608 2644 2671 2690 2697 2715 2734
2756 2783 2859 2873 2876 2888 2900 2910 2921 2949 2968 2971 2976 2992
2996 2999 3007 3037 3042 3062 3065 3119 3141 3215 3219 3222 3227 3237
3242 3260 3266 3269 3274 3286 3307 3310 3325 3392 3402 3413 3419 3423
3487 3490 3495 3498 3503 3506 3511 3514 3519 3522 3615 3635 3788 3789
3790 3791 3804 3805 3806 3807 3826 3833 3834 3835 3976 3984 3995 4001
4005 4071 4074 4079 4086 4089 4155 4163 4174 4179 4183 4273 4281 4292
4298 4302 4369 4372 4378 4383 4386 4448 4456 4467 4472 4476 4559 4565
4571 4602 4608 4614 4653 4663 4674 4679 4683 4726 4736 4747 4752 4756
4808 4813 4823 4915 5027 5033 5043 5057 5411 5510 5564 5567 5573 5576
5579 5599 5602 5608 5611 5614 5634 5637 5643 5646 5649 5667 5689 5692
5728 5734 5740 5775 5781 5787 5822 5832 5843 5848 5852 5890 5900 5911
5916 5920 5968 5971 5983 5999 6002 6014 6024 6067 6090 6125 6161 6164
6176 6273 6276 6301 6304 6326 6338 6350 6364 6422 6434 6445 6449 6452
6463 6470 6498 6531 6538 6545 6548 6558 6569 6574 6579 6585 6593 6598
6621 6632 6638 7110 9415 9427 9455 9486 9508
FMSGD 757 970 978 1200 1948 2131 3568 3792 3796 3800 3808 3822 3827 8043
FSELEC 963 8034
GET 389 1032 1034 1067 1564 1791 3177 3202 3204 3601 3936 3938 3959 3961
4592 4635 4705 5161 5163 5201 5203 5243 5245 5348 5374 5401 5403 5761
5765 5804 5869 6357 6374 6376 6633 6639 7012 7014 7038 7040 7066 7068
7101 7103 7158 7160 7183 7185 7220 7222 7224 7226 7256 7258 7341 7343
7367 7369 7418 7420 7438 7440 7473 7475 7539 7541 7561 7562 7564 7608
7610 7693 7695 7781 7783 7861 7863 7946 8093 8095 8155 8167 8169 8268
8270 8309 8311 8334 8336 8503 8505 8551 8553 8598 8600 8820 8822 9189
9191 9214 9216 9329 9331 9581 9583 9718 9729 9731 9772 9774 9794 9796
9855 9857 9890 9892 10005 10007 10065 10067 10140 10142 10206 10208 10224 10266
10268 10294 10296 10335 10403 10405 10500 10502 10504 10540 10542 10937 10939 10989
11027 11029 11090 11092 11167 11169 11261 11263 11300 11302 11496 11498 11939 11941 SEQ 0489
11972 11974 12051 12053 12086 12088
GETJI 12084
GO 155 164 171 181 199 200 201 202 203 208 217 222 226 227
228 231 233 234 241 260 311 318 324 334 345 363 364 380
385 412 421 428 437 444 446 452 457 462 619 624 644 651
665 674 682 697 699 708 711 712 713 722 724 725 737 739
748 750 760 762 767 769 839 845 854 873 885 900 902 910
912 916 918 927 931 947 953 961 996 1006 1048 1055 1057 1086
1098 1127 1155 1171 1181 1182 1201 1203 1210 1214 1225 1510 1528 1544
1545 1548 1555 1560 1573 1590 1592 1594 1789 1864 1876 1878 1883 1885
1911 1913 1916 1918 1953 1955 1960 1962 2136 2139 2143 2145 2147 2201
2209 2226 2246 2249 2269 2272 2293 2296 2316 2322 2347 2354 2360 2363
2367 2389 2399 2409 2416 2435 2438 2460 2465 2487 2490 2511 2514 2534
2541 2563 2568 2570 2575 2584 2590 2596 2602 2609 2645 2647 2672 2691
2698 2716 2735 2754 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768
2769 2770 2771 2772 2773 2774 2775 2776 2784 2860 2862 2864 2874 2877
2880 2889 2892 2901 2903 2911 2913 2922 2928 2929 2930 2950 2957 2961
2967 2969 2972 2977 2979 2993 2995 2997 3000 3009 3046 3049 3061 3063
3066 3068 3077 3083 3120 3126 3142 3216 3218 3220 3223 3229 3238 3240
3241 3243 3248 3261 3267 3270 3272 3273 3275 3278 3287 3289 3291 3292
3308 3311 3313 3315 3317 3326 3328 3330 3331 3393 3403 3415 3420 3424
3440 3472 3488 3491 3496 3499 3504 3507 3512 3515 3520 3523 3532 3552
3562 3569 3589 3595 3616 3618 3626 3634 3636 3638 3647 3654 3845 3866
3870 3894 3901 3921 3926 3928 3933 3935 3949 3950 3956 3957 3977 3985
3997 4002 4006 4018 4036 4040 4042 4043 4062 4072 4075 4080 4087 4090
4100 4111 4120 4122 4124 4126 4139 4156 4164 4175 4180 4184 4196 4207
4213 4215 4226 4274 4282 4294 4299 4303 4315 4325 4333 4337 4339 4341
4342 4360 4370 4373 4379 4384 4387 4397 4406 4413 4415 4417 4419 4432
4449 4457 4468 4473 4477 4489 4496 4500 4502 4504 4516 4560 4566 4572
4577 4584 4591 4603 4609 4615 4620 4627 4634 4654 4664 4675 4680 4684
4689 4696 4704 4727 4737 4748 4753 4757 4762 4771 4780 4806 4809 4814
4821 4824 4832 4843 4856 4863 4865 4867 4880 4910 4916 4923 4934 4941
4969 4971 4973 4974 4975 4984 4998 5044 5049 5058 5063 5077 5079 5080
5081 5086 5090 5095 5103 5117 5124 5129 5137 5146 5148 5152 5154 5156
5158 5159 5180 5184 5187 5191 5222 5229 5233 5252 5254 5260 5262 5272
5277 5284 5289 5330 5334 5338 5340 5342 5343 5347 5356 5360 5364 5366
5368 5369 5373 5384 5390 5394 5396 5398 5400 5412 5427 5511 5565 5568
5574 5577 5580 5600 5603 5609 5612 5615 5635 5638 5644 5647 5650 5668
5671 5673 5678 5688 5690 5693 5708 5729 5735 5741 5746 5753 5758 5764
5776 5782 5788 5793 5800 5803 5823 5833 5844 5849 5853 5858 5865 5868
5891 5901 5912 5917 5921 5926 5935 5939 5947 5969 5972 5980 5984 5986
5987 6000 6003 6011 6015 6017 6025 6028 6033 6035 6041 6053 6059 6060
6068 6071 6076 6078 6082 6083 6091 6094 6112 6126 6129 6147 6162 6165
6168 6177 6183 6193 6197 6199 6201 6202 6233 6274 6277 6279 6290 6302
6305 6307 6315 6327 6329 6339 6341 6342 6351 6356 6365 6371 6423 6425
6426 6435 6437 6446 6448 6450 6451 6460 6461 6464 6467 6471 6493 6505
6511 6532 6539 6544 6546 6549 6559 6561 6572 6575 6580 6588 6594 6599
6603 6622 6629 6635 6655 6670 6681 6692 6698 6704 6750 6751 6754 6775
6782 6813 6820 6823 6828 6829 6831 6838 6882 6885 6887 6893 6900 6907
6921 6923 6931 6937 6940 6944 6945 6948 6957 6963 6968 6972 7010 7011
7023 7030 7042 7084 7087 7111 7112 7130 7132 7145 7147 7168 7175 7177
7202 7250 7338 7432 7437 7496 7517 7530 7534 7550 7558 7576 7586 7602
7663 7677 7679 7689 7712 7761 7763 7773 7777 7795 7826 7936 7943 7945 SEQ 0490
7951 7954 8046 8057 8080 8088 8127 8152 8162 8218 8252 8258 8300 8303
8322 8326 8328 8330 8394 8397 8414 8415 8446 8454 8457 8459 8467 8470
8473 8502 8534 8538 8544 8589 8590 8620 8621 8646 9170 9174 9179 9183
9185 9203 9204 9308 9317 9320 9321 9322 9324 9354 9360 9379 9386 9397
9400 9413 9420 9421 9423 9432 9433 9435 9453 9459 9460 9462 9483 9487
9488 9494 9495 9501 9502 9509 9510 9561 9575 9580 9604 9606 9608 9610
9612 9614 9619 9621 9623 9625 9627 9629 9634 9636 9645 9647 9663 9665
9667 9669 9679 9681 9683 9685 9693 9695 9697 9699 9701 9716 9724 9787
9843 9904 9923 9928 9941 9962 9983 9992 9999 10157 10163 10164 10170 10177
10189 10191 10193 10202 10218 10289 10329 10334 10365 10366 10368 10377 10381 10384
10397 10398 10399 10400 10425 10474 10481 10486 10490 10491 10492 10493 10494 10495
10496 10497 10498 10499 10517 10533 10536 10539 10561 10578 10581 10585 10596 10599
10602 10605 10613 10621 10628 10778 10785 10788 10795 10799 10807 10821 10836 10844
10870 10873 10894 11016 11019 11024 11025 11026 11197 11247 11250 11256 11260 11273
11433 11444 11449 11453 11488 11491 11919 11925 11981 12035 12134 12136 12142 12144
12151 12153
GTAD 11927 12030
HALT 212 728
MFLD 4231# 4231 4237# 4237 4239# 4239 4241# 4241 4243# 4243 4245# 4245 4251# 4251
4521# 4521 4523# 4523 4529# 4529 4531# 4531 4533# 4533 4535# 4535 4537# 4537
4543# 4543 4885# 4885 4887# 4887 4889# 4889 4891# 4891 5003# 5003 5005# 5005
5007# 5007 5009# 5009 5011# 5011 5013# 5013 5015# 5015 5167# 5167 5169# 5169
5294# 5294 5296# 5296 5298# 5298 5300# 5300 5303# 5303 5305# 5305 5307# 5307
5309# 5309 5311# 5311 5313# 5313 5315# 5315 5317# 5317 5319# 5319 5321# 5321
5713# 5713 6259# 6259 6261# 6261 6263# 6263 6265# 6265 8175# 8175
MWORD 4231 4237 4239 4241 4243 4245 4251 4521 4523 4529 4531 4533 4535 4537
4543 4885 4887 4889 4891 5003 5005 5007 5009 5011 5013 5015 5167 5169
5294 5296 5298 5300 5303 5305 5307 5309 5311 5313 5315 5317 5319 5321
5713 6259 6261 6263 6265 8175
PCRL 261 681 688 879 886 1226 1546 2214 2218 2233 2237 2256 2279 2303
2332 2339 2372 2381 2418 2446 2471 2497 2521 2546 2578 2617 2632 2648
2663 2679 2683 2703 2723 2742 2865 2980 3010 3089 3110 3176 3252 3863
3881 3896 3909 4060 4358 4794 4996 5104 5200 5242 5706 5961 6109 6118
6143 6153 6169 6228 6330 6412 6562 6604 6742 6888 6894 6915 7009 7096
7210 7464 7603 7824 7860 8283 8308 8529 8579 8597 10414 10438 12166
PCRL2 2426
PCRLF 320 381 436 664 673 853 1556 3230 3478 3560 3563 3608 3613 3617
3637 5979 6010 6503 6512
PFORCE 380 469 771 1555 1599 1964 2786
PGMINT 165
PJRST 5456 5463 5470 5476 5516 5524 5532 5538 5544 5550 5556 6902 11274
PNT1 7273 7276 7281 7284 7287 7290 7293 7305 7308 7329 7332 7335 7498 7521
PNT2 1216 5276 6700
PNT3 2621 2623 2625 2627 2629 2631 2652 2654 2656 2658 2660 2662 4983 5193
5235 10446 10448 10450 10452 10455 10457 11039 11041 11043 11045 11047 11049 11062
11127 11192 11213
PNT4 3005 3103 3106 3166 3169 3864 6145 7355 7357 7362 7364 7366 8297 8530
PNT4F 3483 3567
PNTADR 9899 9903
PNTCI 6044 7981 7999 8049 8120 8130
PNTCIF 967 975 7972 7990 8040
PNTDCC 7815 7817 7819 7846 7848 7850 7853 7855
PNTDCF 1065 1198 SEQ 0491
PNTDCL 10648 10684 10687
PNTDEC 256 1221 2549 2706 2726 2745 5991 6398 6401 6711 6718 6725 6732 6739
6983 8082 8260 8285 8288 8524 10564 10781 11253
PNTHW 2380 3109 3172 3251 4045 4344 5279 6405 6408 6411 7431 10660 10904 11022
11441 11458 11461 11464 11467 12165
PNTHWF 10291
PNTMSF 209 313 382 433 451 643 650 661 670 696 707 710 721 736
747 759 768 831 835 838 850 872 899 909 915 926 946 952
964 970 972 978 1005 1063 1066 1085 1110 1193 1196 1199 1200 1509
1557 1572 1591 1788 1863 1875 1882 1910 1915 1952 1961 2135 2138 2144
2200 2208 2225 2245 2268 2292 2315 2321 2346 2353 2359 2362 2369 2388
2398 2408 2415 2434 2459 2466 2486 2510 2533 2540 2561 2573 2608 2644
2671 2690 2697 2715 2734 2756 2783 2859 2873 2876 2888 2900 2910 2921
2949 2968 2971 2976 2992 2996 2999 3007 3037 3042 3062 3065 3119 3141
3215 3219 3222 3227 3237 3242 3260 3266 3269 3274 3286 3307 3310 3325
3392 3402 3413 3419 3423 3476 3484 3487 3490 3495 3498 3503 3506 3511
3514 3519 3522 3557 3568 3615 3635 3667 3668 3669 3670 3671 3672 3673
3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3788 3789 3790
3791 3795 3799 3803 3804 3805 3806 3807 3821 3825 3826 3832 3833 3834
3835 3976 3984 3995 4001 4005 4071 4074 4079 4086 4089 4155 4163 4174
4179 4183 4273 4281 4292 4298 4302 4369 4372 4378 4383 4386 4448 4456
4467 4472 4476 4559 4565 4571 4602 4608 4614 4653 4663 4674 4679 4683
4726 4736 4747 4752 4756 4808 4813 4823 4915 5031 5037 5043 5057 5411
5510 5564 5567 5573 5576 5579 5599 5602 5608 5611 5614 5634 5637 5643
5646 5649 5667 5689 5692 5728 5734 5740 5775 5781 5787 5822 5832 5843
5848 5852 5890 5900 5911 5916 5920 5968 5971 5976 5983 5999 6002 6007
6014 6024 6067 6090 6125 6161 6164 6176 6273 6276 6301 6304 6326 6338
6350 6364 6422 6434 6445 6449 6452 6463 6470 6498 6516 6517 6518 6519
6520 6521 6522 6523 6524 6531 6538 6545 6548 6558 6571 6574 6579 6587
6593 6598 6621 6632 6638 7110 7969 7975 7987 7993 8037 8043 9399 9414
9419 9431 9454 9458 9484 9486 9508 10289
PNTMSG 253 257 470 786 794 812 822 888 1214 1219 1222 1287 1288 1289
1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303
1304 1305 1306 1307 1308 1309 1600 1995 2010 2015 2019 2029 2034 2039
2044 2052 2057 2062 2068 2074 2082 2087 2090 2094 2107 2114 2124 2215
2234 2257 2259 2261 2280 2282 2284 2304 2306 2308 2333 2336 2373 2378
2441 2447 2449 2451 2472 2474 2475 2498 2500 2502 2522 2524 2526 2547
2550 2619 2650 2680 2704 2707 2724 2727 2743 2746 2758 2787 2863 3003
3053 3069 3072 3075 3092 3095 3101 3104 3107 3125 3167 3170 3173 3249
3293 3296 3300 3865 3891 3898 4022 4027 4030 4323 4325 4328 4764 4781
4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960
4961 4962 4978 4981 4987 5076 5082 5089 5094 5101 5113 5123 5128 5135
5136 5143 5144 5160 5181 5197 5214 5223 5225 5274 5679 5680 5696 5697
5698 5699 5700 5928 5948 5989 5992 6041 6047 6096 6111 6146 6211 6220
6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251
6252 6253 6293 6319 6384 6386 6387 6388 6389 6390 6391 6392 6393 6396
6399 6402 6403 6406 6409 6414 6514 6663 6664 6665 6686 6696 6698 6705
6709 6712 6716 6719 6723 6726 6730 6733 6737 6740 6814 6816 6821 6828
6830 6832 6855 6857 6883 6884 6886 6899 6901 6919 6924 6932 6934 6944
6946 6949 6958 6969 6981 6984 6986 6993 6995 7002 7004 7024 7041 7083
7085 7088 7205 7209 7243 7248 7253 7271 7274 7279 7282 7285 7288 7303
7306 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323
7324 7325 7326 7327 7429 7466 7481 7482 7483 7484 7485 7486 7487 7488 SEQ 0492
7489 7490 7491 7492 7493 7494 7495 7496 7502 7503 7504 7505 7506 7507
7508 7509 7510 7511 7512 7513 7514 7515 7516 7520 7581 7587 7794 7800
7811 7812 7813 7825 7831 7842 7843 7844 7978 7984 7996 8002 8046 8052
8080 8083 8109 8117 8123 8127 8133 8201 8258 8261 8262 8265 8286 8289
8290 8296 8298 8301 8307 8523 8525 8526 8531 8535 8539 8550 8570 8582
9309 9896 9897 9900 9901 10371 10372 10373 10374 10375 10378 10382 10386 10409
10410 10411 10417 10419 10423 10433 10434 10435 10441 10443 10471 10472 10475 10514
10515 10518 10531 10534 10537 10562 10565 10572 10576 10579 10590 10594 10597 10600
10637 10654 10657 10671 10673 10675 10688 10695 10696 10697 10698 10699 10700 10701
10702 10707 10708 10709 10710 10711 10716 10717 10718 10719 10720 10721 10722 10724
10725 10726 10728 10730 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741
10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10755 10756 10757
10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10770 10771 10779
10782 10783 10786 10789 10793 10808 10812 10822 10826 10842 10846 10849 10852 10855
10858 10861 10871 10875 10878 10881 10884 10895 10899 10902 10920 10933 10936 10943
10944 10945 10946 10947 10948 10949 10950 10953 10954 10955 10956 10957 10958 10959
10960 10961 11014 11017 11020 11023 11058 11063 11065 11084 11096 11097 11098 11099
11100 11101 11102 11103 11104 11105 11106 11107 11109 11110 11111 11112 11113 11114
11125 11128 11140 11141 11142 11145 11148 11151 11156 11158 11159 11163 11165 11166
11189 11197 11201 11207 11218 11223 11237 11240 11243 11244 11245 11248 11251 11254
11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319
11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333
11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11346 11347 11348
11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362
11363 11364 11365 11366 11367 11368 11369 11371 11372 11373 11374 11375 11376 11377
11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391
11392 11393 11394 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406
11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11430
11431 11435 11437 11439 11442 11446 11447 11451 11455 11456 11459 11462 11465 11468
11472 11473 11476 11479 11480 11481 11482 11483 11486 11489 12162
PNTOCC 3897 4783 5224 5701 5950 6110 6515 7270 7278 7296 7299 7302 8581 10415
10422 10439 11434 11436 11438 11445 11450 11454 11484 11485
PNTOCF 435 663 672 852 3596 5978 6009
PNTOCS 890 2217 2236 2682 3074 3094 3175 3295 3299 4029 4327 4980 6395 7207
7245 7249 8264 8560 9311 10575 10593 10792 10811 10814 10825 10828 10848 10851
10854 10857 10860 10863 10877 10880 10883 10886 10901 10919 10935 11086 11144 11147
11150 11200 11222 11239 11294 11478
PNTSIX 2335 2338 6043 6046 7980 7983 7998 8001 8048 8051 8119 8122 8129 8132
PNTSXF 966 969 974 977 7971 7974 7989 7992 8039 8042
PSP 891 1217 4784 5951 6701 7291 7294 7297 7300 7309 7330 7333
PSPF 3597
PUT 1019 1021 3164 3185 3187 3916 3918 3944 3946 4589 4632 4702 5070 5072
5178 5180 5209 5211 5345 5371 5381 5383 5754 5762 5801 5866 6353 6367
6369 6625 6627 6897 6899 7020 7022 7044 7054 7056 7078 7080 7091 7093
7122 7124 7166 7168 7197 7199 7241 7243 7267 7269 7352 7354 7388 7390
7427 7429 7451 7453 7528 7530 7548 7550 7551 7574 7576 7658 7660 7703
7705 7789 7791 7942 8021 8023 8105 8107 8140 8197 8199 8281 8283 8317
8319 8405 8407 8431 8432 8434 8519 8521 8568 8570 8644 8646 9168 9170
9197 9199 9278 9280 9543 9545 9593 9595 9713 9760 9762 9784 9786 9816
9818 9880 9882 9921 9923 10028 10030 10080 10082 10153 10155 10217 10236 10238
10277 10279 10328 10352 10354 10467 10469 10485 10488 10490 10510 10512 10529 10531
10916 10918 10977 11009 11011 11056 11058 11121 11123 11235 11237 11271 11273 11283
11285 11428 11430 11917 11919 11968 11979 11981 12079 12081 12138 12140 12146 12148 SEQ 0493
12155 12157
RGET 1032 3202 3936 3959 5161 5201 5243 5401 6374 6633 6639 7012 7038 7066
7101 7158 7183 7220 7224 7256 7341 7367 7418 7438 7473 7539 7562 7608
7693 7781 7861 8093 8167 8268 8309 8334 8503 8551 8598 8820 9189 9214
9329 9581 9729 9772 9794 9855 9890 10005 10065 10140 10206 10266 10294 10403
10500 10502 10540 10937 11027 11090 11167 11261 11300 11496 11939 12051 12086
RPUT 1019 3185 3916 3944 5070 5178 5209 5381 6367 6625 6897 7020 7054 7078
7091 7122 7166 7197 7241 7267 7352 7388 7427 7451 7528 7548 7574 7658
7703 7789 8021 8105 8197 8281 8317 8405 8432 8519 8568 8644 9168 9197
9278 9543 9593 9760 9784 9816 9880 9921 10028 10080 10153 10236 10277 10352
10467 10488 10510 10529 10916 11009 11056 11121 11235 11271 11283 11428 11917 11979
12079 12138 12146 12155
RTN 225 252 262 325 383 465 550 625 645 652 666 675 689 698
709 715 723 738 740 749 751 761 764 770 774 778 840 846
847 855 874 880 887 901 903 911 913 917 919 928 932 948
954 971 980 1007 1034 1068 1087 1186 1189 1206 1212 1218 1227 1511
1558 1786 1790 1792 1865 1870 1877 1879 1884 1886 1912 1914 1917 1919
1954 1957 1963 1967 1971 2137 2140 2146 2148 2202 2210 2212 2219 2227
2231 2238 2247 2250 2252 2254 2262 2270 2273 2275 2277 2285 2294 2297
2299 2301 2309 2317 2323 2330 2340 2348 2355 2361 2364 2368 2370 2382
2390 2400 2410 2417 2427 2436 2439 2442 2444 2452 2461 2467 2469 2476
2488 2491 2493 2495 2503 2512 2515 2517 2519 2527 2535 2542 2544 2551
2564 2574 2585 2591 2597 2603 2610 2633 2646 2664 2673 2677 2684 2692
2699 2701 2708 2717 2721 2728 2736 2740 2747 2755 2757 2777 2785 2788
2861 2866 2875 2878 2881 2890 2893 2902 2904 2912 2914 2923 2931 2951
2970 2973 2975 2981 2994 2998 3001 3011 3047 3064 3067 3091 3111 3121
3129 3134 3143 3147 3178 3204 3217 3221 3224 3226 3231 3239 3244 3253
3262 3268 3271 3276 3279 3288 3301 3309 3312 3318 3327 3332 3394 3404
3416 3421 3425 3473 3489 3492 3497 3500 3505 3508 3513 3516 3521 3524
3538 3564 3659 3689 3691 3693 3695 3697 3699 3701 3703 3705 3707 3709
3711 3713 3715 3717 3719 3721 3723 3728 3730 3732 3734 3736 3738 3740
3742 3744 3746 3748 3750 3752 3754 3756 3758 3760 3762 3849 3854 3882
3910 3938 3961 3978 3986 3998 4003 4007 4063 4073 4076 4081 4088 4091
4140 4157 4165 4176 4181 4185 4227 4275 4283 4295 4300 4304 4329 4361
4371 4374 4380 4385 4388 4433 4450 4458 4469 4474 4478 4517 4561 4567
4568 4573 4604 4610 4611 4616 4655 4665 4676 4681 4685 4709 4728 4738
4749 4754 4758 4782 4795 4807 4810 4815 4822 4825 4833 4881 4911 4917
4924 4999 5045 5050 5059 5064 5163 5203 5245 5290 5349 5375 5403 5413
5430 5512 5566 5569 5575 5578 5581 5591 5601 5604 5610 5613 5616 5626
5636 5639 5645 5648 5651 5661 5669 5709 5730 5736 5737 5742 5777 5783
5784 5789 5824 5834 5845 5850 5854 5873 5892 5902 5913 5918 5922 5949
5962 5970 5973 5981 5985 5993 6001 6004 6012 6016 6018 6026 6029 6048
6054 6061 6069 6072 6084 6092 6095 6119 6127 6130 6154 6163 6166 6170
6178 6234 6275 6278 6294 6303 6306 6320 6328 6331 6340 6343 6352 6358
6366 6376 6415 6424 6427 6436 6438 6447 6453 6454 6462 6465 6472 6494
6504 6513 6533 6540 6547 6550 6551 6560 6563 6573 6576 6581 6589 6595
6600 6606 6609 6613 6623 6634 6640 6702 6824 6833 6941 6950 7014 7040
7068 7103 7113 7160 7185 7222 7226 7235 7258 7340 7343 7369 7420 7440
7475 7499 7519 7522 7541 7564 7610 7624 7632 7639 7644 7668 7681 7691
7695 7717 7765 7775 7783 7863 7872 7938 7957 7965 7976 7985 7994 8003
8053 8084 8095 8134 8171 8266 8270 8280 8311 8336 8398 8400 8404 8461
8505 8518 8553 8562 8600 8625 8633 8822 9191 9216 9331 9361 9387 9395
9404 9424 9436 9444 9463 9469 9531 9563 9583 9592 9731 9753 9774 9796 SEQ 0494
9857 9892 9978 10007 10026 10067 10142 10152 10179 10208 10216 10225 10268 10293
10296 10336 10370 10405 10504 10542 10586 10606 10614 10622 10630 10635 10800 10815
10829 10838 10864 10887 10908 10939 10990 11029 11050 11092 11169 11195 11202 11215
11263 11302 11498 11910 11913 11941 11964 11973 11975 12053 12088 12168
SCOPER 8628
SYERR 11934 12043
TMSG 257 888 1214 1219 1222 1287 1288 1289 1290 1291 1292 1293 1294 1295
1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309
2215 2234 2257 2280 2304 2333 2336 2373 2378 2447 2472 2498 2522 2547
2619 2650 2680 2704 2724 2743 3092 3104 3107 3167 3170 3173 3296 3865
3898 4027 4030 4323 4328 4981 4987 5082 5089 5094 5113 5123 5128 5225
6111 6146 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249
6250 6251 6252 6253 6396 6399 6402 6406 6409 6514 6698 6705 6712 6719
6726 6733 6740 6830 6886 6901 6946 7085 7088 7205 7209 7243 7248 7253
7271 7274 7279 7282 7285 7288 7303 7306 7311 7312 7313 7314 7315 7316
7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7466 7481 7482
7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496
7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515
7516 7520 7796 7827 7978 7984 7996 8002 8286 8289 8298 8301 8525 8531
8535 8539 8582 9900 10375 10378 10382 10417 10419 10423 10441 10443 10475 10518
10534 10537 10565 10695 10696 10697 10698 10699 10700 10701 10702 10707 10708 10709
10710 10711 10716 10717 10718 10719 10720 10721 10722 10724 10725 10726 10728 10730
10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745
10746 10747 10748 10749 10750 10751 10752 10755 10756 10757 10758 10759 10760 10761
10762 10763 10764 10765 10766 10767 10768 10770 10771 10782 10849 10852 10858 10861
10878 10881 10902 10920 10933 10936 10943 10944 10945 10946 10947 10948 10949 10950
10953 10954 10955 10956 10957 10958 10959 10960 10961 11017 11063 11065 11084 11096
11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11109 11110 11111
11112 11113 11114 11128 11140 11141 11142 11145 11148 11151 11156 11158 11159 11163
11165 11166 11201 11223 11240 11243 11244 11245 11248 11251 11254 11306 11307 11308
11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322
11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336
11337 11338 11339 11340 11341 11342 11343 11344 11346 11347 11348 11349 11350 11351
11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365
11366 11367 11368 11369 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380
11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394
11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409
11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11479 11480 11481 11482
11483 11486 11489
TMSGC 253 2863 3003 3069 3072 3101 3249 3293 3891 4022 4325 4764 4781 4947
4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961
4962 4978 5076 5101 5135 5136 5143 5144 5181 5197 5211 5223 5274 5679
5680 5696 5697 5698 5699 5700 5928 5948 5989 6041 6096 6211 6220 6384
6386 6387 6388 6389 6390 6391 6392 6393 6403 6663 6664 6696 6709 6716
6723 6730 6737 6828 6884 6899 6944 6981 7083 7429 7794 7811 7812 7813
7825 7842 7843 7844 8046 8080 8117 8127 8258 8262 8290 8296 8307 8523
8526 8550 8570 9309 9896 9897 9901 10371 10372 10373 10374 10386 10409 10410
10411 10433 10434 10435 10471 10472 10514 10515 10531 10562 10572 10576 10579 10590
10594 10597 10600 10637 10654 10657 10671 10673 10675 10688 10779 10783 10786 10789
10793 10808 10812 10822 10826 10842 10846 10855 10871 10875 10884 10895 10899 11014
11020 11023 11058 11125 11189 11197 11207 11218 11237 11430 11431 11435 11437 11439
11442 11446 11447 11451 11455 11456 11459 11462 11465 11468 11472 11473 11476
TMSGCD 786 1995 2441 2758 3053 3125 5160 6293 6319 6414 6665 6686 6814 6816 SEQ 0495
6821 6855 6857 6883 6919 6924 6932 6934 6958 6969 6986 6993 6995 7002
7004 7024 7041 8109 8201 12162
TMSGD 788 796 814 1997 2012 2017 2021 2031 2036 2041 2046 2054 2059 2064
2070 2076 2084 2089 2092 2096 2109 2116 2259 2261 2282 2284 2306 2308
2449 2451 2474 2475 2500 2502 2524 2526 2550 2707 2727 2746 3075 3095
3300 5992 6047 6832 6949 6984 7577 7587 8052 8083 8123 8133 8261 8265
TTALTM 686 1161 2421 3087 3127 3847 3871 4048 4216 4345 4505 4788 4871 4988
5237 5955 6115 6150 6372 6607 6671 7336
TTIDEC 1111
TTSIXB 388 1563 3600
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 1
DFNIA2 MAC 8-Jun-83 15:52 Test Module DFNIA2.MAC SEQ 0496
1 SUBTTL Test Module DFNIA2.MAC
2
3 SALL
4
5 SEARCH DFNIA,MONSYM
6
7 ; Tests 1-3
8
9 ENTRY TST1,TST2,TST3
10 ENTRY T2M,T3M
11
12 ; Miscellaneous routines
13
14 ENTRY MSTART,MWAIT,MPRINT
15 INTERN SAVCSR,SAVLAR,SAVEBU,SAVCOD
16
17 ; EXTERN's located in DFNIA1.MAC
18
19 EXTERN UDEBUG,DDEBUG,BUFF,CSRPNT,TRACE,TSTSUB,TLOAD,TFLOAD,PCB
20 EXTERN TFMFLG,TRSFLG,TBYTE,TWORD,TPAT,TREGN,TREGD,PACKET
21 EXTERN TSLOAD,TSTTAB
22
23 ; EXTERN's located in DFNIAI.MAC (Port Handling Routines module)
24
25 EXTERN LDEBUF,LDRAR,LDCRAM,LDCSR,RDEBUF,RDLAR,RDCRAM,RDCSR
26 EXTERN ERESET,IPACLR,.DATAI,.DATAO,CHINIT
27
28 ; EXTERN's located in DFNIAU.MAC (Utility Routines module)
29
30 EXTERN BUFGEN,SCOSW
31
32 ;#********************************************************************
33 ; Z2 - Address for use in DDT
34 ;#********************************************************************
35
36 000000' Z2: ; address of 00000'
37
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 2
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0497
38 SUBTTL Port Modules
39
40 ;#********************************************************************
41 ;* TEST 1 - Port Hardware Test 1
42 ;
43 ; Description: This test verifies the major data paths in the 3
44 ; port modules. Data patterns are written to the
45 ; CSR register, EBUF, and CRAM and read back and
46 ; verified.
47 ;
48 ; Procedure: KL> Read/write data patterns to CSR register
49 ; KL> Verify the results
50 ; KL> Read/write data patterns to EBUF
51 ; KL> Verify the results
52 ; KL> Read/write data patterns to CRAM each location
53 ; KL> Verify the results
54 ;
55 ; FRU: EBUS/MPROC/CBUS Modules
56 ;#********************************************************************
57
58 ; Initialization
59
60 000000' 201 00 0 00 000000' TST1: MOVEI Z2 ; get address of module start
61 000001' 260 17 0 00 000000* GO TRACE ; handle trace output
62 000002' 476 00 0 00 000000* SETOM TSLOAD ; reset microcode loaded flag
63
64 ;#*******************************************************************
65 ; First read/write the CSR register
66 ;#*******************************************************************
67
68 000003' 400 06 0 00 000000 SETZ 6, ; clear bit table pointer
69
70 ; First, set the bit
71
72 000004' 350 00 0 00 000000* TA1: AOS TSTSUB ; increment subtest number
73 000005' 336 01 0 06 000245' SKIPN 1,TA1PAT(6) ; get bit to write
74 000006' 254 00 0 00 000045' JRST TB1 ; zero - end of this segment
75 000007' 260 17 0 00 000000* GO ERESET ; do an EBUS reset
76 000010' 202 01 0 00 003206' MOVEM 1,SAVCS1# ; save data
77 000011' 260 17 0 00 000000* GO LDCSR ; write data
78 000012' 260 17 0 00 000000* GO RDCSR ; read CSR
79 000013' 255 00 0 00 000000 JFCL ; ignore error
80 000014' 202 01 0 00 003210' MOVEM 1,SAVCS3# ; save data
81 000015' 200 00 0 06 000246' MOVE TA1PAT+1(6) ; get correct data
82 000016' 202 00 0 00 003207' MOVEM SAVCS2# ; save data
83 000017' 312 00 0 00 000001 CAME 1 ; actual same as correct?
84 000020' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
85 000021' 027 00 0 00 000127' SCOPER MA1 ; print error message
86 000022' 255 00 0 00 000000 JFCL ; loop on error
87 000023' 254 00 0 00 000126' JRST TX1 ; altmode exit
88 000024' 326 15 0 00 000126' JUMPN ERFLG,TX1 ; error? yes - exit
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 3
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0498
89
90 ; Then, clear the bit
91
92 000025' 350 00 0 00 000004* AOS TSTSUB ; point to next subtest
93 000026' 403 01 0 00 003206' SETZB 1,SAVCS1 ; zero
94 000027' 260 17 0 00 000011* GO LDCSR ; clear the bit
95 000030' 260 17 0 00 000012* GO RDCSR ; read CSR
96 000031' 255 00 0 00 000000 JFCL ; ignore error
97 000032' 202 01 0 00 003210' MOVEM 1,SAVCS3 ; save data
98 000033' 200 00 0 06 000247' MOVE TA1PAT+2(6) ; get correct data
99 000034' 202 00 0 00 003207' MOVEM SAVCS2 ; save data
100 000035' 312 00 0 00 000001 CAME 1 ; actual same as correct?
101 000036' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
102 000037' 027 00 0 00 000127' SCOPER MA1 ; print error message
103 000040' 255 00 0 00 000000 JFCL ; loop on error
104 000041' 254 00 0 00 000126' JRST TX1 ; altmode exit
105 000042' 326 15 0 00 000126' JUMPN ERFLG,TX1 ; error? yes - exit
106
107 ; Increment bit table pointer
108
109 000043' 271 06 0 00 000003 ADDI 6,3 ; point to next entry
110 000044' 254 00 0 00 000004' JRST TA1 ; repeat this segment
111
112 ;#********************************************************************
113 ; Next, read/write the EBUF
114 ;#********************************************************************
115
116 000045' 400 06 0 00 000000 TB1: SETZ 6, ; clear bit table pointer
117
118 ; First, get the data pattern to write
119
120 000046' 350 00 0 00 000025* TC1: AOS TSTSUB ; set up subtest number
121 000047' 200 01 0 06 000333' MOVE 1,TC1PAT(6) ; get pattern to write
122 000050' 306 01 0 00 000377 CAIN 1,377 ; end of table?
123 000051' 254 00 0 00 000072' JRST TD1 ; yes - end of this segment
124
125 ; First test segment - verify EBUF write/read correctly
126
127 000052' 202 01 0 00 003211' MOVEM 1,SAVEB1# ; save data
128 000053' 260 17 0 00 000007* GO ERESET ; do an EBUS Reset
129 000054' 201 01 0 00 200000 MOVEI 1,TSTEBF ; get 'DIAG Test EBUF' bit
130 000055' 260 17 0 00 000027* GO LDCSR ; write to CSR
131 000056' 200 01 0 00 003211' MOVE 1,SAVEB1 ; get data pattern
132 000057' 260 17 0 00 000000* GO LDEBUF ; write to EBUF
133 000060' 260 17 0 00 000000* GO RDEBUF ; write to EBUF
134 000061' 202 01 0 00 003212' MOVEM 1,SAVEB2# ; save EBUF data
135 000062' 312 01 0 00 003211' CAME 1,SAVEB1 ; correct?
136 000063' 474 15 0 00 000000 SETO ERFLG, ; no - flag error
137 000064' 027 00 0 00 000155' SCOPER MC1 ; print error message
138 000065' 255 00 0 00 000000 JFCL ; loop on error
139 000066' 254 00 0 00 000126' JRST TX1 ; altmode exit
140 000067' 326 15 0 00 000126' JUMPN ERFLG,TX1 ; error? yes - exit
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 4
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0499
141
142 ; Increment data pattern pointer
143
144 000070' 350 00 0 00 000006 AOS 6 ; point to next data pattern
145 000071' 254 00 0 00 000046' JRST TC1 ; repeat this segment
146
147 ;#********************************************************************
148 ; Now read/write the CRAM
149 ;#********************************************************************
150
151 000072' 474 07 0 00 000000 TD1: SETO 7, ; initialize CRAM address
152
153 ; First set up RAR to correct address (left half of CRAM)
154
155 000073' 350 00 0 00 000007 TE1: AOS 7 ; point to next CRAM location
156 000074' 303 07 0 00 017777 CAILE 7,17777 ; done yet?
157 000075' 254 00 0 00 000126' JRST TX1 ; yes - exit
158 000076' 260 17 0 00 000000* GO IPACLR ; do a port clear
159 000077' 200 01 0 00 000007 MOVE 1,7 ; get address
160 000100' 202 01 0 00 003205' MOVEM 1,SAVCRA# ; save CRAM address
161 000101' 260 17 0 00 000000* GO LDRAR ; write it to RAR register
162
163 ; Next, get the data pattern to write
164
165 000102' 400 06 0 00 000000 SETZ 6, ; clear bit table pointer
166 000103' 200 01 0 06 000450' TF1: MOVE 1,TD1PAT(6) ; get pattern to write
167 000104' 621 01 0 00 770000 TLZ 1,770000 ; clear unused bits
168 000105' 202 01 0 00 003203' MOVEM 1,SAVCR1# ; save data
169 000106' 306 01 0 00 000377 CAIN 1,377 ; end of table?
170 000107' 254 00 0 00 000073' JRST TE1 ; yes - end of segment
171
172 ; Now write/read the location
173
174 000110' 350 00 0 00 000046* AOS TSTSUB ; set up subtest number
175 000111' 260 17 0 00 000000* GO LDCRAM ; write CRAM
176 000112' 260 17 0 00 000000* GO RDCRAM ; read CRAM
177 000113' 621 01 0 00 770000 TLZ 1,770000 ; clear unused bits
178 000114' 202 01 0 00 003204' MOVEM 1,SAVCR2# ; save CRAM data
179 000115' 312 01 0 00 003203' CAME 1,SAVCR1 ; correct?
180 000116' 474 15 0 00 000000 SETO ERFLG, ; no - flag error
181 000117' 027 00 0 00 000176' SCOPER MD1 ; print error message
182 000120' 255 00 0 00 000000 JFCL ; loop on error
183 000121' 254 00 0 00 000126' JRST TX1 ; altmode exit
184 000122' 326 15 0 00 000126' JUMPN ERFLG,TX1 ; error? yes - exit
185
186 ; Increment data pattern pointer
187
188 000123' 350 00 0 00 000006 AOS 6 ; point to next data pattern
189 000124' 336 00 0 00 000000* SKIPN UDEBUG ; debug mode?
190 000125' 254 00 0 00 000103' JRST TF1 ; no - repeat this segment
191
192 ; End of test
193
194 000126' 263 17 0 00 000000 TX1: RTN ; return
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 5
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0500
195
196 ;#********************************************************************
197 ; Error Messages
198 ;#********************************************************************
199
200 ; Error messages (CSR Read/Write)
201
202 000127' 240000 000132' MA1: CALL!TXNOT!MA1PNT
203 000130' 260000 000137' CALL!TXALL!M1CSR
204 000131' 170000 002636' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
205
206 000132' 037 00 0 00 002642' MA1PNT: TMSGC <Write CSR '>
207 000133' 200 00 0 00 003206' MOVE SAVCS1
208 000134' 037 16 0 00 000003 PNTOCS
209 000135' 037 00 0 00 002645' TMSG <', then read CSR, verify result.>
210 000136' 263 17 0 00 000000 RTN
211
212 000137' 200 01 0 00 000000* M1CSR: MOVE 1,SCOSW ; get switches
213 000140' 603 01 0 00 000200 TLNE 1,TXTINH ; inhibit text?
214 000141' 037 00 0 00 002654' TMSGC <CSR (C): > ; yes
215 000142' 607 01 0 00 000200 TLNN 1,TXTINH ; inhibit text?
216 000143' 037 00 0 00 002657' TMSGC <CSR (Correct): > ; no
217 000144' 200 00 0 00 003207' MOVE SAVCS2 ; get CSR data written
218 000145' 037 13 0 00 000000 PNTHW
219 000146' 603 01 0 00 000200 TLNE 1,TXTINH ; inhibit text?
220 000147' 037 00 0 00 002663' TMSGC < (A): > ; yes
221 000150' 607 01 0 00 000200 TLNN 1,TXTINH ; inhibit text?
222 000151' 037 00 0 00 002666' TMSGC < (Actual): > ; no
223 000152' 200 00 0 00 003210' MOVE SAVCS3 ; get CSR data
224 000153' 037 13 0 00 000000 PNTHW ; print it
225 000154' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 6
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0501
226
227 ; Error messages (EBUF Read/Write)
228
229 000155' 140000 002672' MC1: MSG!TXNOT![ASCIZ /EBUF data loopback failed./]
230 000156' 260000 000160' CALL!TXALL!M1EBUF
231 000157' 170000 002636' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
232
233 000160' 200 01 0 00 000137* M1EBUF: MOVE 1,SCOSW ; get switches
234 000161' 603 01 0 00 000200 TLNE 1,TXTINH ; inhibit text?
235 000162' 037 00 0 00 002700' TMSGC <EBUF (C): > ; yes
236 000163' 607 01 0 00 000200 TLNN 1,TXTINH ; inhibit text?
237 000164' 037 00 0 00 002703' TMSGC <EBUF (Correct): > ; no
238 000165' 200 00 0 00 003211' MOVE SAVEB1 ; get EBUF data written
239 000166' 037 13 0 00 000000 PNTHW
240 000167' 603 01 0 00 000200 TLNE 1,TXTINH ; inhibit text?
241 000170' 037 00 0 00 002707' TMSGC < (A): > ; yes
242 000171' 607 01 0 00 000200 TLNN 1,TXTINH ; inhibit text?
243 000172' 037 00 0 00 002712' TMSGC < (Actual): > ; no
244 000173' 200 00 0 00 003212' MOVE SAVEB2 ; get EBUF data
245 000174' 037 13 0 00 000000 PNTHW
246 000175' 263 17 0 00 000000 RTN
247
248 ; Error messages (CRAM Read/Write)
249
250 000176' 140000 002716' MD1: MSG!TXNOT![ASCIZ ^CRAM write/read failed.^]
251 000177' 260000 000201' CALL!TXALL!M1CRAM
252 000200' 170000 002636' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
253
254 000201' 200 01 0 00 000160* M1CRAM: MOVE 1,SCOSW ; get switches
255 000202' 037 00 0 00 002723' TMSGC <CRAM Loc: >
256 000203' 200 00 0 00 003205' MOVE SAVCRA ; get address
257 000204' 242 00 0 00 777777 LSH -1 ; position correctly
258 000205' 037 04 0 00 000000 PNT4 ; print it
259 000206' 200 00 0 00 003205' MOVE SAVCRA ; get address
260 000207' 606 00 0 00 000001 TRNN 1 ; left half?
261 000210' 037 00 0 00 002726' TMSG <(left)> ; yes - print it
262 000211' 602 00 0 00 000001 TRNE 1 ; right half?
263 000212' 037 00 0 00 002730' TMSG <(right)> ; yes - print it
264 000213' 603 01 0 00 000200 TLNE 1,TXTINH ; inhibit text?
265 000214' 037 00 0 00 002732' TMSGC <CRAM (C): > ; yes
266 000215' 607 01 0 00 000200 TLNN 1,TXTINH ; inhibit text?
267 000216' 037 00 0 00 002735' TMSGC <CRAM (Correct): > ; no
268 000217' 200 00 0 00 003203' MOVE SAVCR1 ; get CRAM data written
269 000220' 260 17 0 00 000227' GO MPNTC ; print it
270 000221' 603 01 0 00 000200 TLNE 1,TXTINH ; inhibit text?
271 000222' 037 00 0 00 002707' TMSGC < (A): > ; yes
272 000223' 607 01 0 00 000200 TLNN 1,TXTINH ; inhibit text?
273 000224' 037 00 0 00 002712' TMSGC < (Actual): > ; no
274 000225' 200 00 0 00 003204' MOVE SAVCR2 ; get CRAM data
275 000226' 260 17 0 00 000227' GO MPNTC ; print it
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 7
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0502
276
277 000227' 261 17 0 00 000001 MPNTC: PUT 1 ; save AC1
278 000230' 200 01 0 00 000000 MOVE 1,0
279 000231' 135 00 0 00 002741' LDB [POINT 3,1,8] ; get digit 1
280 000232' 037 16 0 00 000003 PNTOCS ; print it
281 000233' 135 00 0 00 002742' LDB [POINT 3,1,11] ; get digit 2
282 000234' 037 16 0 00 000003 PNTOCS ; print it
283 000235' 135 00 0 00 002743' LDB [POINT 3,1,14] ; get digit 3
284 000236' 037 16 0 00 000003 PNTOCS ; print it
285 000237' 135 00 0 00 002744' LDB [POINT 3,1,17] ; get digit 4
286 000240' 037 16 0 00 000003 PNTOCS ; print it
287 000241' 135 00 0 00 002745' LDB [POINT 18,1,35] ; get right 6 octal digits
288 000242' 037 06 0 00 000000 PNT6 ; and print them out
289 000243' 262 17 0 00 000001 GET 1 ; restore AC1
290 000244' 263 17 0 00 000000 RTN ; return
291
292
293 ;#********************************************************************
294 ; Data Patterns
295 ;#********************************************************************
296
297 ; Data patterns (CSR Read/Write)
298
299 000245' 000000 400000 TA1PAT: EXP 400000,400003000000,500003000000 ; bit 18
300 000246' 400003 000000
301 000247' 500003 000000
302 000250' 000000 200000 EXP 200000,500003200000,500003000000 ; bit 19
303 000251' 500003 200000
304 000252' 500003 000000
305 000253' 000000 100000 EXP 100000,500003104000,500003004000 ; bit 20
306 000254' 500003 104000
307 000255' 500003 004000
308 000256' 000000 040000 EXP 040000,500003040000,500003000000 ; bit 21
309 000257' 500003 040000
310 000260' 500003 000000
311 000261' 000000 020000 EXP 020000,500003020000,500003000000 ; bit 22
312 000262' 500003 020000
313 000263' 500003 000000
314 000264' 000000 010000 EXP 010000,500003010000,500003000000 ; bit 23
315 000265' 500003 010000
316 000266' 500003 000000
317 000267' 000000 004000 EXP 004000,500003000000,500003000000 ; bit 24
318 000270' 500003 000000
319 000271' 500003 000000
320 000272' 000000 002000 EXP 002000,500003000000,500003000000 ; bit 25
321 000273' 500003 000000
322 000274' 500003 000000
323 000275' 000000 001000 EXP 001000,500003000000,500003000000 ; bit 26
324 000276' 500003 000000
325 000277' 500003 000000
326 000300' 000000 000400 EXP 000400,500003000400,500003000400 ; bit 27
327 000301' 500003 000400
328 000302' 500003 000400
329 000303' 000000 000200 EXP 000200,500003000000,500003000000 ; bit 28
330 000304' 500003 000000
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 7-1
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0503
331 000305' 500003 000000
332 000306' 000000 000100 EXP 000100,500003000000,500003000000 ; bit 29
333 000307' 500003 000000
334 000310' 500003 000000
335 000311' 000000 000040 EXP 000040,500003000040,500003000040 ; bit 30
336 000312' 500003 000040
337 000313' 500003 000040
338 000314' 000000 000020 EXP 000020,500003000020,500003000020 ; bit 31
339 000315' 500003 000020
340 000316' 500003 000020
341 000317' 000000 000004 EXP 000004,500003000004,500003000000 ; bit 32
342 000320' 500003 000004
343 000321' 500003 000000
344 000322' 000000 000002 EXP 000002,500003000002,500003000000 ; bit 33
345 000323' 500003 000002
346 000324' 500003 000000
347 000325' 000000 000001 EXP 000001,500003000001,500003000000 ; bit 34
348 000326' 500003 000001
349 000327' 500003 000000
350 000330' 000000 000000 EXP 000000,500003000000,500003000000 ; bit 35
351 000331' 500003 000000
352 000332' 500003 000000
353
354 ; Data Patterns (EBUF Read/Write)
355
356 000333' 000000 000000 TC1PAT: EXP 0,-2,525252525252,252525252525
357 000334' 777777 777776
358 000335' 525252 525252
359 000336' 252525 252525
360 000337' 000000 000001 EXP 000000000001,000000000002,000000000004
361 000340' 000000 000002
362 000341' 000000 000004
363 000342' 000000 000010 EXP 000000000010,000000000020,000000000040
364 000343' 000000 000020
365 000344' 000000 000040
366 000345' 000000 000100 EXP 000000000100,000000000200,000000000400
367 000346' 000000 000200
368 000347' 000000 000400
369 000350' 000000 001000 EXP 000000001000,000000002000,000000004000
370 000351' 000000 002000
371 000352' 000000 004000
372 000353' 000000 010000 EXP 000000010000,000000020000,000000040000
373 000354' 000000 020000
374 000355' 000000 040000
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 8
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0504
375 000356' 000000 100000 EXP 000000100000,000000200000,000000400000
376 000357' 000000 200000
377 000360' 000000 400000
378 000361' 000001 000000 EXP 000001000000,000002000000,000004000000
379 000362' 000002 000000
380 000363' 000004 000000
381 000364' 000010 000000 EXP 000010000000,000020000000,000040000000
382 000365' 000020 000000
383 000366' 000040 000000
384 000367' 000100 000000 EXP 000100000000,000200000000,000400000000
385 000370' 000200 000000
386 000371' 000400 000000
387 000372' 001000 000000 EXP 001000000000,002000000000,004000000000
388 000373' 002000 000000
389 000374' 004000 000000
390 000375' 010000 000000 EXP 010000000000,020000000000,040000000000
391 000376' 020000 000000
392 000377' 040000 000000
393 000400' 100000 000000 EXP 100000000000,200000000000,400000000000
394 000401' 200000 000000
395 000402' 400000 000000
396 000403' 777777 777776 EXP 777777777776,777777777775,777777777773
397 000404' 777777 777775
398 000405' 777777 777773
399 000406' 777777 777767 EXP 777777777767,777777777757,777777777737
400 000407' 777777 777757
401 000410' 777777 777737
402 000411' 777777 777677 EXP 777777777677,777777777577,777777777377
403 000412' 777777 777577
404 000413' 777777 777377
405 000414' 777777 776777 EXP 777777776777,777777775777,777777773777
406 000415' 777777 775777
407 000416' 777777 773777
408 000417' 777777 767777 EXP 777777767777,777777757777,777777737777
409 000420' 777777 757777
410 000421' 777777 737777
411 000422' 777777 677777 EXP 777777677777,777777577777,777777377777
412 000423' 777777 577777
413 000424' 777777 377777
414 000425' 777776 777777 EXP 777776777777,777775777777,777773777777
415 000426' 777775 777777
416 000427' 777773 777777
417 000430' 777767 777777 EXP 777767777777,777757777777,777737777777
418 000431' 777757 777777
419 000432' 777737 777777
420 000433' 777677 777777 EXP 777677777777,777577777777,777377777777
421 000434' 777577 777777
422 000435' 777377 777777
423 000436' 776777 777777 EXP 776777777777,775777777777,773777777777
424 000437' 775777 777777
425 000440' 773777 777777
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 9
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0505
426 000441' 767777 777777 EXP 767777777777,757777777777,737777777777
427 000442' 757777 777777
428 000443' 737777 777777
429 000444' 677777 777777 EXP 677777777777,577777777777,377777777777
430 000445' 577777 777777
431 000446' 377777 777777
432 000447' 000000 000377 EXP 377
433
434 ; Data Patterns (CRAM Read/Write)
435
436 000450' 000000 000000 TD1PAT: EXP 0,7777777777,5252525252,2525252525
437 000451' 007777 777777
438 000452' 005252 525252
439 000453' 002525 252525
440 000454' 000000 000377 EXP 377
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 10
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0506
441
442 ;#********************************************************************
443 ;* TEST 2 - Port Hardware Test 2
444 ;
445 ; Description: This test verifies more of the logic on the 3
446 ; port modules, in particular, the 2901's, local
447 ; storage, data mover/formatter and the PLI
448 ; interface logic.
449 ;
450 ; Procedure: KL> Load microcode
451 ; KL> Port Clear
452 ; KL> Start port
453 ;
454 ; Verify local storage
455 ; --------------------
456 ;
457 ; UC> build a data pattern
458 ; UC> write/read all of local storage with this
459 ; data pattern
460 ; UC> do data compare
461 ; If failed - exit test with error code 1 in EBUF
462 ; If passed - do next data pattern until done
463 ;
464 ; Verify formatter
465 ; ----------------
466 ;
467 ; UC> build a data pattern
468 ; UC> write/read formatter with data pattern
469 ; UC> do data compare
470 ; If failed - exit test with error code 2 in EBUF
471 ; If passed - do next data pattern until done
472 ;
473 ; Verify PLI input/output buffers
474 ; -------------------------------
475 ;
476 ; UC> build a data pattern
477 ; UC> write/read PLI input/output buffers with pattern
478 ; UC> do data compare
479 ; If failed - exit test with error code 3 in EBUF
480 ; If passed - do next data pattern until done
481 ;
482 ; Verify 2901 Registers/Operations
483 ; --------------------------------
484 ;
485 ; UC> build a data pattern
486 ; UC> write/read 2901 Registers with pattern
487 ; UC> do data compare
488 ; If failed - exit test with error code 4 in EBUF
489 ; If passed - do next data pattern until done
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 11
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0507
490
491 ; Verify 2901's Shifting Operations
492 ; ---------------------------------
493 ;
494 ; UC> build a data pattern
495 ; UC> Shift 2901 Register left and right with pattern
496 ; UC> do data compare
497 ; If failed - exit test with error code 5 in EBUF
498 ; If passed - do next data pattern until done
499 ;
500 ; Verify shifting of formatter
501 ; ----------------------------
502 ;
503 ; UC> build a data pattern
504 ; UC> write/read formatter with data pattern
505 ; UC> do data compare
506 ; If failed - exit test with error code 6 in EBUF
507 ; If passed - do next data pattern until done
508 ;
509 ; Done
510 ; ----
511 ;
512 ; KL> Read EBUF and determine test disposition
513 ;
514 ; FRU: EBUS/MPROC/CBUS Modules
515 ;#********************************************************************
516
517 ; Initialization
518
519 000455' 201 00 0 00 000000' TST2: MOVEI Z2 ; get address of module start
520 000456' 260 17 0 00 000001* GO TRACE ; handle trace output
521 000457' 201 01 0 00 000506' MOVEI 1,T2M ; set up microcode address
522 000460' 260 17 0 00 000000* GO TLOAD ; load/verify it
523 000461' 263 17 0 00 000000 RTN ; failed - exit test
524
525 ; Do the test
526
527 000462' 260 17 0 00 002575' GO MSTART ; start the test at 5777
528 000463' 201 01 0 00 001750 MOVEI 1,^D1000 ; set up wait of 1 second
529 000464' 260 17 0 00 002536' GO MWAIT ; wait for completion
530
531 ; Handle error printouts
532
533 000465' 027 00 0 00 000471' SCOPER MA2 ; print error message
534 000466' 255 00 0 00 000000 JFCL ; loop on error
535 000467' 254 00 0 00 000470' JRST TX2 ; altmode exit
536
537 ; End of test
538
539 000470' 263 17 0 00 000000 TX2: RTN ; return
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0508
540
541 ; Error messages
542
543 000471' 250000 000473' MA2: LAST!CALL!TXNOT!MA2PNT
544 000472' 060000 002636' TXALL![ASCIZ /FRU: Port Modules/]
545
546 000473' 201 01 0 00 000477' MA2PNT: MOVEI 1,MA2LST ; get list address
547 000474' 201 02 0 00 000007 MOVEI 2,7 ; get list length
548 000475' 260 17 0 00 002606' GO MPRINT ; print data
549 000476' 263 17 0 00 000000 RTN ; return
550
551 000477' 037 00 0 00 002746' MA2LST: TMSGC <No failure detected>
552 000500' 037 00 0 00 002753' TMSGC <Local storage failure>
553 000501' 037 00 0 00 002760' TMSGC <Formatter failure>
554 000502' 037 00 0 00 002764' TMSGC <PLI data path failure>
555 000503' 037 00 0 00 002771' TMSGC <2901's failure>
556 000504' 037 00 0 00 002775' TMSGC <2901's shifting failure>
557 000505' 037 00 0 00 003003' TMSGC <Formatter shifting failure>
558
559 ;#********************************************************************
560 ; Microcode:
561 ;#********************************************************************
562
563 ; Initialization
564
565 000506' 577700 000000 T2M: MWORD <ADDR=5777,JZ> ; 5777
566 000507' 000000 000000
567 000510' 000010 000000 MWORD <ADDR=0,JMAP,J=1000> ; 0
568 000511' 000000 000040
569
570 ;#********************************************************************
571 ; Local Storage testing 1000-1300
572 ;#********************************************************************
573
574 ; Build data patterns
575
576 000512' 100000 000000 MWORD <ADDR=1000,CONT,SD0,AND,B=7,D=2> ; 1000
577 000513' 742003 400340
578 000514' 100110 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,OR,D=2> ; 1001 - 0's
579 000515' 432074 000020
580 000516' 100210 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,XNOR,D=2> ; 1002 - comp
581 000517' 472074 000020
582 000520' 100300 000000 MWORD <CONT,S0A,PLUS,CRY,A=7,B=7,D=2> ; 1003
583 000521' 402073 400740
584 000522' 100410 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,OR,D=2> ; 1004 - 1
585 000523' 432074 000020
586 000524' 100510 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,XNOR,D=2> ; 1005 - comp
587 000525' 472074 000020
588 000526' 100600 420000 MWORD <LDCT,J=42> ; 1006
589 000527' 000000 000300
590 000530' 100700 000000 MWORD <CONT,S0A,OR,A=7,B=7,D=7> ; 1007
591 000531' 437073 400340
592 000532' 101010 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,OR,D=2> ; 1010 - 2 ...
593 000533' 432074 000020
594 000534' 101110 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,XNOR,D=2> ; 1011 - comp
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-1
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0509
595 000535' 472074 000020
596 000536' 101210 070000 MWORD <RPCT,J=1007> ; 1012
597 000537' 000000 000220
598 000540' 101314 000000 MWORD <JMAP,J=1400,S0A,AND,B=17,D=2> ; 1013 - done
599 000541' 442007 400040
600
601 ; Write/read each page
602
603 000542' 102011 000000 MWORD <ADDR=1020,CJS,J=1100,SD0,OR,B=12,D=1,MGC=0,LSAD>; 1020 - 0
604 000543' 731005 200020
605 000544' 102111 000040 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=40,LSAD> ; 1021 - 1
606 000545' 731005 200020
607 000546' 102211 000100 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=100,LSAD> ; 1022 - 2
608 000547' 731005 200020
609 000550' 102311 000140 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=140,LSAD> ; 1023 - 3
610 000551' 731005 200020
611 000552' 102411 000200 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=200,LSAD> ; 1024 - 4
612 000553' 731005 200020
613 000554' 102511 000240 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=240,LSAD> ; 1025 - 5
614 000555' 731005 200020
615 000556' 102611 000300 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=300,LSAD> ; 1026 - 6
616 000557' 731005 200020
617 000560' 102711 000340 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=340,LSAD> ; 1027 - 7
618 000561' 731005 200020
619 000562' 103011 000400 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=400,LSAD> ; 1030 - 10
620 000563' 731005 200020
621 000564' 103111 000440 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=440,LSAD> ; 1031 - 11
622 000565' 731005 200020
623 000566' 103211 000500 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=500,LSAD> ; 1032 - 12
624 000567' 731005 200020
625 000570' 103311 000540 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=540,LSAD> ; 1033 - 13
626 000571' 731005 200020
627 000572' 103411 000600 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=600,LSAD> ; 1034 - 14
628 000573' 731005 200020
629 000574' 103511 000640 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=640,LSAD> ; 1035 - 15
630 000575' 731005 200020
631 000576' 103611 000700 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=700,LSAD> ; 1036 - 16
632 000577' 731005 200020
633 000600' 103711 000740 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=740,LSAD> ; 1037 - 17
634 000601' 731005 200020
635 000602' 104011 001000 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1000,LSAD> ; 1040 - 20
636 000603' 731005 200020
637 000604' 104111 001040 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1040,LSAD> ; 1041 - 21
638 000605' 731005 200020
639 000606' 104211 001100 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1100,LSAD> ; 1042 - 22
640 000607' 731005 200020
641 000610' 104311 001140 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1140,LSAD> ; 1043 - 23
642 000611' 731005 200020
643 000612' 104411 001200 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1200,LSAD> ; 1044 - 24
644 000613' 731005 200020
645 000614' 104511 001240 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1240,LSAD> ; 1045 - 25
646 000615' 731005 200020
647 000616' 104611 001300 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1300,LSAD> ; 1046 - 26
648 000617' 731005 200020
649 000620' 104711 001340 MWORD <CJS,J=1100,SD0,OR,B=12,D=1,MGC=1340,LSAD> ; 1047 - 27
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-2
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0510
650 000621' 731005 200020
651 000622' 105000 000000 MWORD <CRTN> ; 1060 - exit
652 000623' 000000 000240
653
654 ; Write/read the LS address locations
655
656 000624' 110000 002000 MWORD <ADDR=1100,CONT,MGC=0,S0A,OR,A=10,OENA,D=1,RAM,LDLM>; 1100 - 0
657 000625' 431300 230340
658 000626' 110100 000000 MWORD <CONT,MGC=0,SD0,OR,D=2,B=11,RAM,RDLM> ; 1101
659 000627' 732204 620340
660 000630' 110211 040000 MWORD <CJP,J=1104,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1102
661 000631' 161504 420060
662 000632' 110350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1103
663 000633' 732007 640040
664 000634' 110400 002001 MWORD <CONT,MGC=1,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1104 - 1
665 000635' 431300 230340
666 000636' 110500 000001 MWORD <CONT,MGC=1,SD0,OR,D=2,B=11,RAM,RDLM> ; 1105
667 000637' 732204 620340
668 000640' 110611 100000 MWORD <CJP,J=1110,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1106
669 000641' 161504 420060
670 000642' 110750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1107
671 000643' 732007 640040
672 000644' 111000 002002 MWORD <CONT,MGC=2,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1110 - 2
673 000645' 431300 230340
674 000646' 111100 000002 MWORD <CONT,MGC=2,SD0,OR,D=2,B=11,RAM,RDLM> ; 1111
675 000647' 732204 620340
676 000650' 111211 140000 MWORD <CJP,J=1114,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1112
677 000651' 161504 420060
678 000652' 111350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1113
679 000653' 732007 640040
680 000654' 111400 002003 MWORD <CONT,MGC=3,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1114 - 3
681 000655' 431300 230340
682 000656' 111500 000003 MWORD <CONT,MGC=3,SD0,OR,D=2,B=11,RAM,RDLM> ; 1115
683 000657' 732204 620340
684 000660' 111611 200000 MWORD <CJP,J=1120,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1116
685 000661' 161504 420060
686 000662' 111750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1117
687 000663' 732007 640040
688 000664' 112000 002004 MWORD <CONT,MGC=4,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1120 - 4
689 000665' 431300 230340
690 000666' 112100 000004 MWORD <CONT,MGC=4,SD0,OR,D=2,B=11,RAM,RDLM> ; 1121
691 000667' 732204 620340
692 000670' 112211 240000 MWORD <CJP,J=1124,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1122
693 000671' 161504 420060
694 000672' 112350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1123
695 000673' 732007 640040
696 000674' 112400 002005 MWORD <CONT,MGC=5,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1124 - 5
697 000675' 431300 230340
698 000676' 112500 000005 MWORD <CONT,MGC=5,SD0,OR,D=2,B=11,RAM,RDLM> ; 1125
699 000677' 732204 620340
700 000700' 112611 300000 MWORD <CJP,J=1130,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1126
701 000701' 161504 420060
702 000702' 112750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1127
703 000703' 732007 640040
704 000704' 113000 002006 MWORD <CONT,MGC=6,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1130 - 6
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-3
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0511
705 000705' 431300 230340
706 000706' 113100 000006 MWORD <CONT,MGC=6,SD0,OR,D=2,B=11,RAM,RDLM> ; 1131
707 000707' 732204 620340
708 000710' 113211 340000 MWORD <CJP,J=1134,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1132
709 000711' 161504 420060
710 000712' 113350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1133
711 000713' 732007 640040
712 000714' 113400 002007 MWORD <CONT,MGC=7,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1134 - 7
713 000715' 431300 230340
714 000716' 113500 000007 MWORD <CONT,MGC=7,SD0,OR,D=2,B=11,RAM,RDLM> ; 1135
715 000717' 732204 620340
716 000720' 113611 400000 MWORD <CJP,J=1140,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1136
717 000721' 161504 420060
718 000722' 113750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1137
719 000723' 732007 640040
720 000724' 114000 002010 MWORD <CONT,MGC=10,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1140 - 10
721 000725' 431300 230340
722 000726' 114100 000010 MWORD <CONT,MGC=10,SD0,OR,D=2,B=11,RAM,RDLM> ; 1141
723 000727' 732204 620340
724 000730' 114211 440000 MWORD <CJP,J=1144,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1142
725 000731' 161504 420060
726 000732' 114350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1143
727 000733' 732007 640040
728 000734' 114400 002011 MWORD <CONT,MGC=11,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1144 - 11
729 000735' 431300 230340
730 000736' 114500 000011 MWORD <CONT,MGC=11,SD0,OR,D=2,B=11,RAM,RDLM> ; 1145
731 000737' 732204 620340
732 000740' 114611 500000 MWORD <CJP,J=1150,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1146
733 000741' 161504 420060
734 000742' 114750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1147
735 000743' 732007 640040
736 000744' 115000 002012 MWORD <CONT,MGC=12,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1150 - 12
737 000745' 431300 230340
738 000746' 115100 000012 MWORD <CONT,MGC=12,SD0,OR,D=2,B=11,RAM,RDLM> ; 1151
739 000747' 732204 620340
740 000750' 115211 540000 MWORD <CJP,J=1154,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1152
741 000751' 161504 420060
742 000752' 115350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1153
743 000753' 732007 640040
744 000754' 115400 002013 MWORD <CONT,MGC=13,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1154 - 13
745 000755' 431300 230340
746 000756' 115500 000013 MWORD <CONT,MGC=13,SD0,OR,D=2,B=11,RAM,RDLM> ; 1155
747 000757' 732204 620340
748 000760' 115611 600000 MWORD <CJP,J=1160,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1156
749 000761' 161504 420060
750 000762' 115750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1157
751 000763' 732007 640040
752 000764' 116000 002014 MWORD <CONT,MGC=14,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1160 - 14
753 000765' 431300 230340
754 000766' 116100 000014 MWORD <CONT,MGC=14,SD0,OR,D=2,B=11,RAM,RDLM> ; 1161
755 000767' 732204 620340
756 000770' 116211 640000 MWORD <CJP,J=1164,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1162
757 000771' 161504 420060
758 000772' 116350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1163
759 000773' 732007 640040
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-4
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0512
760 000774' 116400 002015 MWORD <CONT,MGC=15,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1164 - 15
761 000775' 431300 230340
762 000776' 116500 000015 MWORD <CONT,MGC=15,SD0,OR,D=2,B=11,RAM,RDLM> ; 1165
763 000777' 732204 620340
764 001000' 116611 700000 MWORD <CJP,J=1170,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1166
765 001001' 161504 420060
766 001002' 116750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1167
767 001003' 732007 640040
768 001004' 117000 002016 MWORD <CONT,MGC=16,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1170 - 16
769 001005' 431300 230340
770 001006' 117100 000016 MWORD <CONT,MGC=16,SD0,OR,D=2,B=11,RAM,RDLM> ; 1171
771 001007' 732204 620340
772 001010' 117211 740000 MWORD <CJP,J=1174,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1172
773 001011' 161504 420060
774 001012' 117350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1173
775 001013' 732007 640040
776 001014' 117400 002017 MWORD <CONT,MGC=17,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1174 - 17
777 001015' 431300 230340
778 001016' 117500 000017 MWORD <CONT,MGC=17,SD0,OR,D=2,B=11,RAM,RDLM> ; 1175
779 001017' 732204 620340
780 001020' 117612 000000 MWORD <CJP,J=1200,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1176
781 001021' 161504 420060
782 001022' 117750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1177
783 001023' 732007 640040
784 001024' 120000 002020 MWORD <CONT,MGC=20,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1200 - 20
785 001025' 431300 230340
786 001026' 120100 000020 MWORD <CONT,MGC=20,SD0,OR,D=2,B=11,RAM,RDLM> ; 1201
787 001027' 732204 620340
788 001030' 120212 040000 MWORD <CJP,J=1204,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1202
789 001031' 161504 420060
790 001032' 120350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1203
791 001033' 732007 640040
792 001034' 120400 002021 MWORD <CONT,MGC=21,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1204 - 21
793 001035' 431300 230340
794 001036' 120500 000021 MWORD <CONT,MGC=21,SD0,OR,D=2,B=11,RAM,RDLM> ; 1205
795 001037' 732204 620340
796 001040' 120612 100000 MWORD <CJP,J=1210,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1206
797 001041' 161504 420060
798 001042' 120750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1207
799 001043' 732007 640040
800 001044' 121000 002022 MWORD <CONT,MGC=22,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1210 - 22
801 001045' 431300 230340
802 001046' 121100 000022 MWORD <CONT,MGC=22,SD0,OR,D=2,B=11,RAM,RDLM> ; 1211
803 001047' 732204 620340
804 001050' 121212 140000 MWORD <CJP,J=1214,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1212
805 001051' 161504 420060
806 001052' 121350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1213
807 001053' 732007 640040
808 001054' 121400 002023 MWORD <CONT,MGC=23,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1214 - 23
809 001055' 431300 230340
810 001056' 121500 000023 MWORD <CONT,MGC=23,SD0,OR,D=2,B=11,RAM,RDLM> ; 1215
811 001057' 732204 620340
812 001060' 121612 200000 MWORD <CJP,J=1220,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1216
813 001061' 161504 420060
814 001062' 121750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1217
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-5
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0513
815 001063' 732007 640040
816 001064' 122000 002024 MWORD <CONT,MGC=24,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1220 - 24
817 001065' 431300 230340
818 001066' 122100 000024 MWORD <CONT,MGC=24,SD0,OR,D=2,B=11,RAM,RDLM> ; 1221
819 001067' 732204 620340
820 001070' 122212 240000 MWORD <CJP,J=1224,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1222
821 001071' 161504 420060
822 001072' 122350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1223
823 001073' 732007 640040
824 001074' 122400 002025 MWORD <CONT,MGC=25,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1224 - 25
825 001075' 431300 230340
826 001076' 122500 000025 MWORD <CONT,MGC=25,SD0,OR,D=2,B=11,RAM,RDLM> ; 1225
827 001077' 732204 620340
828 001100' 122612 300000 MWORD <CJP,J=1230,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1226
829 001101' 161504 420060
830 001102' 122750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1227
831 001103' 732007 640040
832 001104' 123000 002026 MWORD <CONT,MGC=26,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1230 - 26
833 001105' 431300 230340
834 001106' 123100 000026 MWORD <CONT,MGC=26,SD0,OR,D=2,B=11,RAM,RDLM> ; 1231
835 001107' 732204 620340
836 001110' 123212 340000 MWORD <CJP,J=1234,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1232
837 001111' 161504 420060
838 001112' 123350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1233
839 001113' 732007 640040
840 001114' 123400 002027 MWORD <CONT,MGC=27,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1234 - 27
841 001115' 431300 230340
842 001116' 123500 000027 MWORD <CONT,MGC=27,SD0,OR,D=2,B=11,RAM,RDLM> ; 1235
843 001117' 732204 620340
844 001120' 123612 400000 MWORD <CJP,J=1240,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1236
845 001121' 161504 420060
846 001122' 123750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1237
847 001123' 732007 640040
848 001124' 124000 002030 MWORD <CONT,MGC=30,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1240 - 30
849 001125' 431300 230340
850 001126' 124100 000030 MWORD <CONT,MGC=30,SD0,OR,D=2,B=11,RAM,RDLM> ; 1241
851 001127' 732204 620340
852 001130' 124212 440000 MWORD <CJP,J=1244,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1242
853 001131' 161504 420060
854 001132' 124350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1243
855 001133' 732007 640040
856 001134' 124400 002031 MWORD <CONT,MGC=31,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1244 - 31
857 001135' 431300 230340
858 001136' 124500 000031 MWORD <CONT,MGC=31,SD0,OR,D=2,B=11,RAM,RDLM> ; 1245
859 001137' 732204 620340
860 001140' 124612 500000 MWORD <CJP,J=1250,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1246
861 001141' 161504 420060
862 001142' 124750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1247
863 001143' 732007 640040
864 001144' 125000 002032 MWORD <CONT,MGC=32,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1250 - 32
865 001145' 431300 230340
866 001146' 125100 000032 MWORD <CONT,MGC=32,SD0,OR,D=2,B=11,RAM,RDLM> ; 1251
867 001147' 732204 620340
868 001150' 125212 540000 MWORD <CJP,J=1254,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1252
869 001151' 161504 420060
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-6
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0514
870 001152' 125350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1253
871 001153' 732007 640040
872 001154' 125400 002033 MWORD <CONT,MGC=33,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1254 - 33
873 001155' 431300 230340
874 001156' 125500 000033 MWORD <CONT,MGC=33,SD0,OR,D=2,B=11,RAM,RDLM> ; 1255
875 001157' 732204 620340
876 001160' 125612 600000 MWORD <CJP,J=1260,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1256
877 001161' 161504 420060
878 001162' 125750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1257
879 001163' 732007 640040
880 001164' 126000 002034 MWORD <CONT,MGC=34,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1260 - 34
881 001165' 431300 230340
882 001166' 126100 000034 MWORD <CONT,MGC=34,SD0,OR,D=2,B=11,RAM,RDLM> ; 1261
883 001167' 732204 620340
884 001170' 126212 640000 MWORD <CJP,J=1264,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1262
885 001171' 161504 420060
886 001172' 126350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1263
887 001173' 732007 640040
888 001174' 126400 002035 MWORD <CONT,MGC=35,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1264 - 35
889 001175' 431300 230340
890 001176' 126500 000035 MWORD <CONT,MGC=35,SD0,OR,D=2,B=11,RAM,RDLM> ; 1265
891 001177' 732204 620340
892 001200' 126612 700000 MWORD <CJP,J=1270,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1266
893 001201' 161504 420060
894 001202' 126750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1267
895 001203' 732007 640040
896 001204' 127000 002036 MWORD <CONT,MGC=36,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1270 - 36
897 001205' 431300 230340
898 001206' 127100 000036 MWORD <CONT,MGC=36,SD0,OR,D=2,B=11,RAM,RDLM> ; 1271
899 001207' 732204 620340
900 001210' 127212 740000 MWORD <CJP,J=1274,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1272
901 001211' 161504 420060
902 001212' 127350 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1273
903 001213' 732007 640040
904 001214' 127400 002037 MWORD <CONT,MGC=37,S0A,OR,A=10,OENA,D=1,RAM,LDLM> ; 1274 - 37
905 001215' 431300 230340
906 001216' 127500 000037 MWORD <CONT,MGC=37,SD0,OR,D=2,B=11,RAM,RDLM> ; 1275
907 001217' 732204 620340
908 001220' 127613 000000 MWORD <CJP,J=1300,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1276
909 001221' 161504 420060
910 001222' 127750 000001 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=1,SKCN> ; 1277
911 001223' 732007 640040
912 001224' 130000 000000 MWORD <CRTN> ; 1300
913 001225' 000000 000240
914
915 ;#********************************************************************
916 ; Formatter Data Loopback 1400-1424
917 ;#********************************************************************
918
919 ; Build data patterns
920
921 001226' 140000 000000 MWORD <ADDR=1400,CONT,SD0,AND,B=7,D=2> ; 1400
922 001227' 742003 400340
923 001230' 140114 200000 MWORD <CJS,J=1420,S0A,A=7,B=10,OR,D=2> ; 1401 - 0's
924 001231' 432074 000020
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-7
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0515
925 001232' 140214 200000 MWORD <CJS,J=1420,S0A,A=7,B=10,XNOR,D=2> ; 1402 - comp
926 001233' 472074 000020
927 001234' 140300 000000 MWORD <CONT,S0A,PLUS,CRY,A=7,B=7,D=2> ; 1403
928 001235' 402073 400740
929 001236' 140414 200000 MWORD <CJS,J=1420,S0A,A=7,B=10,OR,D=2> ; 1404 - 1
930 001237' 432074 000020
931 001240' 140514 200000 MWORD <CJS,J=1420,S0A,A=7,B=10,XNOR,D=2> ; 1405 - comp
932 001241' 472074 000020
933 001242' 140600 420000 MWORD <LDCT,J=42> ; 1406
934 001243' 000000 000300
935 001244' 140700 000000 MWORD <CONT,S0A,OR,A=7,B=7,D=7> ; 1407
936 001245' 437073 400340
937 001246' 141014 200000 MWORD <CJS,J=1420,S0A,A=7,B=10,OR,D=2> ; 1410 - 2 ...
938 001247' 432074 000020
939 001250' 141114 200000 MWORD <CJS,J=1420,S0A,A=7,B=10,XNOR,D=2> ; 1411 - comp
940 001251' 472074 000020
941 001252' 141214 070000 MWORD <RPCT,J=1407> ; 1412
942 001253' 000000 000220
943 001254' 141320 000000 MWORD <JMAP,J=2000,S0A,AND,B=17,D=2> ; 1413 - done
944 001255' 442007 400040
945
946 ; Write to formatter, read back, and compare
947
948 001256' 142000 002040 MWORD <ADDR=1420,CONT,S0A,OR,A=10,D=1,OENA,SELF,MGC=40>; 1420
949 001257' 431100 003340
950 001260' 142100 000200 MWORD <CONT,SD0,B=11,D=2,SELM,MGC=200> ; 1421
951 001261' 702004 402340
952 001262' 142214 240000 MWORD <CJP,J=1424,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 1422
953 001263' 161504 420060
954 001264' 142350 000002 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=2,SKCN> ; 1423
955 001265' 732007 640040
956 001266' 142400 000000 MWORD <CRTN> ; 1424
957 001267' 000000 000240
958
959 ;#********************************************************************
960 ; PLI Data Loopback 2000-2106
961 ;#********************************************************************
962
963 ; Build data patterns
964
965 001270' 200020 010000 MWORD <ADDR=2000,JMAP,J=2001> ; 2000
966 001271' 000000 000040
967 001272' 200100 060000 MWORD <LDCT,J=6,S0B,AND,B=14,D=2> ; 2001
968 001273' 342006 000300
969 001274' 200220 020000 MWORD <RPCT,J=2002,S0B,PLUS,B=14,D=7,CRY> ; 2002
970 001275' 307006 000620
971 001276' 200300 000000 MWORD <CONT,S0B,PLUS,B=14,D=2,CRY> ; 2003
972 001277' 302006 000740
973 001300' 200400 000000 MWORD <CONT,SD0,AND,B=7,D=2> ; 2004
974 001301' 742003 400340
975 001302' 200521 000000 MWORD <CJS,J=2100,S0A,A=7,B=10,OR,D=2> ; 2005 - 0's
976 001303' 432074 000020
977 001304' 200621 000000 MWORD <CJS,J=2100,S0A,A=7,B=10,XNOR,D=2> ; 2006 - comp
978 001305' 472074 000020
979 001306' 200700 000000 MWORD <CONT,S0A,PLUS,CRY,A=7,B=7,D=2> ; 2007
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-8
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0516
980 001307' 402073 400740
981 001310' 201021 000000 MWORD <CJS,J=2100,S0A,A=7,B=10,OR,D=2> ; 2010 - 1
982 001311' 432074 000020
983 001312' 201121 000000 MWORD <CJS,J=2100,S0A,A=7,B=10,XNOR,D=2> ; 2011 - comp
984 001313' 472074 000020
985
986 001314' 201200 060000 MWORD <LDCT,J=6> ; 2012
987 001315' 000000 000300
988 001316' 201300 000000 MWORD <CONT,S0A,OR,A=7,B=7,D=7> ; 2013
989 001317' 437073 400340
990 001320' 201421 000000 MWORD <CJS,J=2100,S0A,A=7,B=10,OR,D=2> ; 2014 - 2 ...
991 001321' 432074 000020
992 001322' 201521 000000 MWORD <CJS,J=2100,S0A,A=7,B=10,XNOR,D=2> ; 2015 - comp
993 001323' 472074 000020
994 001324' 201620 130000 MWORD <RPCT,J=2013> ; 2016
995 001325' 000000 000220
996 001326' 201724 000000 MWORD <JMAP,J=2400,S0A,AND,B=17,D=2> ; 2017 - done
997 001327' 442007 400040
998
999 ; Write to PLI, read back, and compare
1000
1001 001330' 210000 000000 MWORD <ADDR=2100,CONT,SAB,A=14,B=10,AND,D=2> ; 2100
1002 001331' 142144 000340
1003 001332' 210100 002040 MWORD <CONT,S0B,OR,D=1,B=10,OENA,SELM,MGC=40> ; 2101
1004 001333' 331004 002340
1005 001334' 210200 000006 MWORD <CONT,SD0,D=1,SELP,MGC=6> ; 2102
1006 001335' 701000 001340
1007 001336' 210300 000300 MWORD <CONT,SD0,OR,B=11,D=2,SELM,MGC=300> ; 2103
1008 001337' 732004 402340
1009 001340' 210400 000000 MWORD <CONT,SAB,A=14,B=11,AND,D=2> ; 2104
1010 001341' 142144 400340
1011 001342' 210521 070000 MWORD <CJP,J=2107,SAB,XOR,A=10,B=11,D=1,CENA,CCFZ> ; 2105
1012 001343' 161504 420060
1013 001344' 210650 000003 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=3,SKCN> ; 2106
1014 001345' 732007 640040
1015 001346' 210700 000000 MWORD <CRTN> ; 2107
1016 001347' 000000 000240
1017
1018 ;#********************************************************************
1019 ; Verify 2901 Registers (2400-2526)
1020 ;#********************************************************************
1021
1022 ; Build data patterns
1023
1024 001350' 240000 000000 MWORD <ADDR=2400,CONT,SD0,AND,B=7,D=2> ; 2400
1025 001351' 742003 400340
1026 001352' 240124 200000 MWORD <CJS,J=2420,S0A,A=7,B=10,OR,D=2> ; 2401 - 0's
1027 001353' 432074 000020
1028 001354' 240224 200000 MWORD <CJS,J=2420,S0A,A=7,B=10,XNOR,D=2> ; 2402 - comp
1029 001355' 472074 000020
1030 001356' 240300 000000 MWORD <CONT,S0A,PLUS,CRY,A=7,B=7,D=2> ; 2403
1031 001357' 402073 400740
1032 001360' 240424 200000 MWORD <CJS,J=2420,S0A,A=7,B=10,OR,D=2> ; 2404 - 1
1033 001361' 432074 000020
1034 001362' 240524 200000 MWORD <CJS,J=2420,S0A,A=7,B=10,XNOR,D=2> ; 2405 - comp
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-9
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0517
1035 001363' 472074 000020
1036
1037 001364' 240600 420000 MWORD <LDCT,J=42> ; 2406
1038 001365' 000000 000300
1039 001366' 240700 000000 MWORD <CONT,S0A,OR,A=7,B=7,D=7> ; 2407
1040 001367' 437073 400340
1041 001370' 241024 200000 MWORD <CJS,J=2420,S0A,A=7,B=10,OR,D=2> ; 2410 - 2 ...
1042 001371' 432074 000020
1043 001372' 241124 200000 MWORD <CJS,J=2420,S0A,A=7,B=10,XNOR,D=2> ; 2411 - comp
1044 001373' 472074 000020
1045 001374' 241224 070000 MWORD <RPCT,J=2407> ; 2412
1046 001375' 000000 000220
1047 001376' 241330 000000 MWORD <JMAP,J=3000,S0A,AND,B=17,D=2> ; 2413 - done
1048 001377' 442007 400040
1049
1050 ; Write/read 2901 registers with various operations and compare
1051
1052 001400' 242000 002000 MWORD <ADDR=2420,CONT,S0A,A=10,B=0,OR,D=2,OENA,LDLM,MGC=0>
1053 001401' 432100 230340
1054 001402' 242100 000000 MWORD <CONT,S0A,A=0,OR,B=1,D=2> ; 2421
1055 001403' 432000 400340
1056 001404' 242200 000000 MWORD <CONT,S0A,A=1,OR,B=2,D=2> ; 2422
1057 001405' 432011 000340
1058 001406' 242300 000000 MWORD <CONT,S0A,A=2,OR,B=3,D=2> ; 2423
1059 001407' 432021 400340
1060 001410' 242400 000000 MWORD <CONT,S0A,A=3,OR,B=4,D=2> ; 2424
1061 001411' 432032 000340
1062 001412' 242500 000000 MWORD <CONT,S0A,A=4,OR,B=5,D=2> ; 2425
1063 001413' 432042 400340
1064 001414' 242600 000000 MWORD <CONT,S0A,A=5,OR,B=6,D=2> ; 2426
1065 001415' 432053 000340
1066 001416' 242700 000000 MWORD <CONT,S0A,A=6,OR,B=7,D=2> ; 2427
1067 001417' 432063 400340
1068 001420' 243000 000000 MWORD <CONT,S0A,A=7,OR,B=10,D=2> ; 2430
1069 001421' 432074 000340
1070 001422' 243100 000000 MWORD <CONT,S0A,A=10,OR,B=11,D=2> ; 2431
1071 001423' 432104 400340
1072 001424' 243200 000000 MWORD <CONT,S0A,A=11,OR,B=12,D=2> ; 2432
1073 001425' 432115 000340
1074 001426' 243300 000000 MWORD <CONT,S0A,A=12,OR,B=13,D=2> ; 2433
1075 001427' 432125 400340
1076 001430' 243400 000000 MWORD <CONT,S0A,A=13,OR,B=14,D=2> ; 2434
1077 001431' 432136 000340
1078 001432' 243500 000000 MWORD <CONT,S0A,A=14,OR,B=15,D=2> ; 2435
1079 001433' 432146 400340
1080 001434' 243600 000000 MWORD <CONT,S0A,A=15,OR,B=16,D=2> ; 2436
1081 001435' 432157 000340
1082 001436' 243700 000000 MWORD <CONT,S0A,A=16,OR,B=17,D=2> ; 2437
1083 001437' 432167 400340
1084 001440' 244000 000000 MWORD <CONT,S0A,A=17,OR,D=0> ; 2440
1085 001441' 430170 000340
1086 001442' 244100 000000 MWORD <CONT,SAB,A=0,B=0,AND,D=2> ; 2441
1087 001443' 142000 000340
1088 001444' 244200 000000 MWORD <CONT,SAB,A=1,B=0,AND,D=2> ; 2442
1089 001445' 142010 000340
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-10
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0518
1090 001446' 244300 000000 MWORD <CONT,SAB,A=2,B=0,AND,D=2> ; 2443
1091 001447' 142020 000340
1092 001450' 244400 000000 MWORD <CONT,SAB,A=3,B=0,AND,D=2> ; 2444
1093 001451' 142030 000340
1094 001452' 244500 000000 MWORD <CONT,SAB,A=4,B=0,AND,D=2> ; 2445
1095 001453' 142040 000340
1096 001454' 244600 000000 MWORD <CONT,SAB,A=5,B=0,AND,D=2> ; 2446
1097 001455' 142050 000340
1098 001456' 244700 000000 MWORD <CONT,SAB,A=6,B=0,AND,D=2> ; 2447
1099 001457' 142060 000340
1100 001460' 245000 000000 MWORD <CONT,SAB,A=7,B=0,AND,D=2> ; 2450
1101 001461' 142070 000340
1102 001462' 245100 000000 MWORD <CONT,SAB,A=10,B=0,AND,D=2> ; 2451
1103 001463' 142100 000340
1104 001464' 245200 000000 MWORD <CONT,SAB,A=11,B=0,AND,D=2> ; 2452
1105 001465' 142110 000340
1106 001466' 245300 000000 MWORD <CONT,SAB,A=12,B=0,AND,D=2> ; 2453
1107 001467' 142120 000340
1108 001470' 245400 000000 MWORD <CONT,SAB,A=13,B=0,AND,D=2> ; 2454
1109 001471' 142130 000340
1110 001472' 245500 000000 MWORD <CONT,SAB,A=14,B=0,AND,D=2> ; 2455
1111 001473' 142140 000340
1112 001474' 245600 000000 MWORD <CONT,SAB,A=15,B=0,AND,D=2> ; 2456
1113 001475' 142150 000340
1114 001476' 245700 000000 MWORD <CONT,SAB,A=16,B=0,AND,D=2> ; 2457
1115 001477' 142160 000340
1116 001500' 246000 000000 MWORD <CONT,SAB,A=17,B=0,AND,D=2> ; 2460
1117 001501' 142170 000340
1118 001502' 246100 000000 MWORD <CONT,SAQ,A=0,B=0,AND,D=2> ; 2461
1119 001503' 042000 000340
1120 001504' 246200 000000 MWORD <CONT,S0A,A=0,PLUS,B=1,D=2> ; 2462
1121 001505' 402000 400340
1122 001506' 246300 000000 MWORD <CONT,S0A,A=1,PLUS,B=2,D=2> ; 2463
1123 001507' 402011 000340
1124 001510' 246400 000000 MWORD <CONT,S0A,A=2,PLUS,B=3,D=2> ; 2464
1125 001511' 402021 400340
1126 001512' 246500 000000 MWORD <CONT,S0A,A=3,PLUS,B=4,D=2> ; 2465
1127 001513' 402032 000340
1128 001514' 246600 000000 MWORD <CONT,S0A,A=4,PLUS,B=5,D=2> ; 2466
1129 001515' 402042 400340
1130 001516' 246700 000000 MWORD <CONT,S0A,A=5,PLUS,B=6,D=2> ; 2467
1131 001517' 402053 000340
1132 001520' 247000 000000 MWORD <CONT,S0A,A=6,PLUS,B=7,D=2> ; 2470
1133 001521' 402063 400340
1134 001522' 247100 000000 MWORD <CONT,S0A,A=7,PLUS,B=10,D=2> ; 2471
1135 001523' 402074 000340
1136 001524' 247200 000000 MWORD <CONT,S0A,A=10,PLUS,B=11,D=2> ; 2472
1137 001525' 402104 400340
1138 001526' 247300 000000 MWORD <CONT,S0A,A=11,PLUS,B=12,D=2> ; 2473
1139 001527' 402115 000340
1140 001530' 247400 000000 MWORD <CONT,S0A,A=12,PLUS,B=13,D=2> ; 2474
1141 001531' 402125 400340
1142 001532' 247500 000000 MWORD <CONT,S0A,A=13,PLUS,B=14,D=2> ; 2475
1143 001533' 402136 000340
1144 001534' 247600 000000 MWORD <CONT,S0A,A=14,PLUS,B=15,D=2> ; 2476
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-11
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0519
1145 001535' 402146 400340
1146 001536' 247700 000000 MWORD <CONT,S0A,A=15,PLUS,B=16,D=2> ; 2477
1147 001537' 402157 000340
1148 001540' 250000 000000 MWORD <CONT,S0A,A=16,PLUS,B=17,D=2> ; 2500
1149 001541' 402167 400340
1150 001542' 250100 000000 MWORD <CONT,S0A,A=17,PLUS,D=0> ; 2501
1151 001543' 400170 000340
1152 001544' 250200 000000 MWORD <CONT,SAB,A=0,B=0,OR,D=2> ; 2502
1153 001545' 132000 000340
1154 001546' 250300 000000 MWORD <CONT,SAB,A=1,B=0,OR,D=2> ; 2503
1155 001547' 132010 000340
1156 001550' 250400 000000 MWORD <CONT,SAB,A=2,B=0,OR,D=2> ; 2504
1157 001551' 132020 000340
1158 001552' 250500 000000 MWORD <CONT,SAB,A=3,B=0,OR,D=2> ; 2505
1159 001553' 132030 000340
1160 001554' 250600 000000 MWORD <CONT,SAB,A=4,B=0,OR,D=2> ; 2506
1161 001555' 132040 000340
1162 001556' 250700 000000 MWORD <CONT,SAB,A=5,B=0,OR,D=2> ; 2507
1163 001557' 132050 000340
1164 001560' 251000 000000 MWORD <CONT,SAB,A=6,B=0,OR,D=2> ; 2510
1165 001561' 132060 000340
1166 001562' 251100 000000 MWORD <CONT,SAB,A=7,B=0,OR,D=2> ; 2511
1167 001563' 132070 000340
1168 001564' 251200 000000 MWORD <CONT,SAB,A=10,B=0,OR,D=2> ; 2512
1169 001565' 132100 000340
1170 001566' 251300 000000 MWORD <CONT,SAB,A=11,B=0,OR,D=2> ; 2513
1171 001567' 132110 000340
1172 001570' 251400 000000 MWORD <CONT,SAB,A=12,B=0,OR,D=2> ; 2514
1173 001571' 132120 000340
1174 001572' 251500 000000 MWORD <CONT,SAB,A=13,B=0,OR,D=2> ; 2515
1175 001573' 132130 000340
1176 001574' 251600 000000 MWORD <CONT,SAB,A=14,B=0,OR,D=2> ; 2516
1177 001575' 132140 000340
1178 001576' 251700 000000 MWORD <CONT,SAB,A=15,B=0,OR,D=2> ; 2517
1179 001577' 132150 000340
1180 001600' 252000 000000 MWORD <CONT,SAB,A=16,B=0,OR,D=2> ; 2520
1181 001601' 132160 000340
1182 001602' 252100 000000 MWORD <CONT,SAB,A=17,B=0,OR,D=2> ; 2521
1183 001603' 132170 000340
1184 001604' 252200 000000 MWORD <CONT,SAQ,A=0,B=0,OR,D=2> ; 2522
1185 001605' 032000 000340
1186 001606' 252300 000000 MWORD <CONT,SD0,OR,D=2,B=1,RDLM,MGC=0> ; 2523
1187 001607' 732000 620340
1188 001610' 252425 260000 MWORD <CJP,J=2526,SAB,XOR,A=0,B=1,D=1,CENA,CCFZ> ; 2524
1189 001611' 161400 420060
1190 001612' 252550 000004 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=4,SKCN> ; 2525
1191 001613' 732007 640040
1192 001614' 252600 000000 MWORD <CRTN> ; 2526
1193 001615' 000000 000240
1194
1195 ;#********************************************************************
1196 ; Verify 2901's Shifting Operations (3000-3032)
1197 ;#********************************************************************
1198
1199 ; Shift zeros, ensure result is always zero
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-12
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0520
1200
1201 001616' 300010 000000 MWORD <ADDR=3000,LDCT,J=1000,S0A,AND,D=2> ; 3000
1202 001617' 442000 000300
1203 001620' 300130 030000 MWORD <CJP,J=3003,S0A,OR,D=4,CENA,CCFZ> ; 3001
1204 001621' 434400 020060
1205 001622' 300250 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN> ; 3002
1206 001623' 732007 640040
1207 001624' 300330 050000 MWORD <CJP,J=3005,S0A,OR,D=5,CENA,CCFZ> ; 3003
1208 001625' 435400 020060
1209 001626' 300450 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN> ; 3004
1210 001627' 732007 640040
1211 001630' 300530 070000 MWORD <CJP,J=3007,S0A,OR,D=6,CENA,CCFZ> ; 3005
1212 001631' 436400 020060
1213 001632' 300650 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN> ; 3006
1214 001633' 732007 640040
1215 001634' 300730 110000 MWORD <CJP,J=3011,S0A,OR,D=7,CENA,CCFZ> ; 3007
1216 001635' 437400 020060
1217 001636' 301050 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN> ; 3010
1218 001637' 732007 640040
1219 001640' 301130 010000 MWORD <RPCT,J=3001,D=1> ; 3011
1220 001641' 001000 000220
1221
1222 ; Shift ones, ensure result is only zero after 36'th shift
1223
1224 001642' 301200 420000 MWORD <LDCT,J=42,S0A,AND,D=2> ; 3012
1225 001643' 442000 000300
1226 001644' 301300 000000 MWORD <CONT,S0A,XNOR,D=2> ; 3013
1227 001645' 472000 000340
1228 001646' 301430 270000 MWORD <CJP,J=3027,S0A,OR,D=6,CENA,CCFZ> ; 3014
1229 001647' 436400 020060
1230 001650' 301530 270000 MWORD <CJP,J=3027,S0A,OR,D=4,CENA,CCFZ> ; 3015
1231 001651' 434400 020060
1232 001652' 301630 270000 MWORD <CJP,J=3027,S0A,OR,D=7,CENA,CCFZ> ; 3016
1233 001653' 437400 020060
1234 001654' 301730 270000 MWORD <CJP,J=3027,S0A,OR,D=5,CENA,CCFZ> ; 3017
1235 001655' 435400 020060
1236 001656' 302030 270000 MWORD <CJP,J=3027,S0A,OR,D=6,CENA,CCFZ> ; 3020
1237 001657' 436400 020060
1238 001660' 302130 270000 MWORD <CJP,J=3027,S0A,OR,D=4,CENA,CCFZ> ; 3021
1239 001661' 434400 020060
1240 001662' 302230 270000 MWORD <CJP,J=3027,S0A,OR,D=7,CENA,CCFZ> ; 3022
1241 001663' 437400 020060
1242 001664' 302330 270000 MWORD <CJP,J=3027,S0A,OR,D=5,CENA,CCFZ> ; 3023
1243 001665' 435400 020060
1244 001666' 302430 270000 MWORD <CJP,J=3027,S0A,OR,D=6,CENA,CCFZ> ; 3024
1245 001667' 436400 020060
1246 001670' 302530 140000 MWORD <RPCT,J=3014,D=1> ; 3025
1247 001671' 001000 000220
1248 001672' 302630 300000 MWORD <JMAP,J=3030,D=1> ; 3026
1249 001673' 001000 000040
1250 001674' 302750 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN> ; 3027
1251 001675' 732007 640040
1252 001676' 303030 270000 MWORD <CJP,J=3027,S0A,OR,D=6,CENA,CCFZ> ; 3030
1253 001677' 436400 020060
1254 001700' 303134 000000 MWORD <CJP,J=3400,S0A,OR,D=6,CENA,CCFZ> ; 3031
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-13
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0521
1255 001701' 436400 020060
1256 001702' 303250 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=5,SKCN> ; 3032
1257 001703' 732007 640040
1258
1259 ;#********************************************************************
1260 ; Verify shifting of formatter (3400-3441)
1261 ;#********************************************************************
1262
1263 ; Build data patterns
1264
1265 001704' 340000 000000 MWORD <ADDR=3400,CONT,SD0,AND,B=7,D=2> ; 3400
1266 001705' 742003 400340
1267 001706' 340134 200000 MWORD <CJS,J=3420,S0A,A=7,B=10,OR,D=2> ; 3401 - 0's
1268 001707' 432074 000020
1269 001710' 340234 200000 MWORD <CJS,J=3420,S0A,A=7,B=10,XNOR,D=2> ; 3402 - comp
1270 001711' 472074 000020
1271 001712' 340300 000000 MWORD <CONT,S0A,PLUS,CRY,A=7,B=7,D=2> ; 3403
1272 001713' 402073 400740
1273 001714' 340434 200000 MWORD <CJS,J=3420,S0A,A=7,B=10,OR,D=2> ; 3404 - 1
1274 001715' 432074 000020
1275 001716' 340534 200000 MWORD <CJS,J=3420,S0A,A=7,B=10,XNOR,D=2> ; 3405 - comp
1276 001717' 472074 000020
1277
1278 001720' 340600 420000 MWORD <LDCT,J=42> ; 3406
1279 001721' 000000 000300
1280 001722' 340700 000000 MWORD <CONT,S0A,OR,A=7,B=7,D=7> ; 3407
1281 001723' 437073 400340
1282 001724' 341034 200000 MWORD <CJS,J=3420,S0A,A=7,B=10,OR,D=2> ; 3410 - 2 ...
1283 001725' 432074 000020
1284 001726' 341134 200000 MWORD <CJS,J=3420,S0A,A=7,B=10,XNOR,D=2> ; 3411 - comp
1285 001727' 472074 000020
1286 001730' 341234 060000 MWORD <RPCT,J=3406> ; 3412
1287 001731' 000000 000220
1288 001732' 341350 000000 MWORD <JMAP,J=5000,S0A,AND,B=17,D=2> ; 3413 - done
1289 001733' 442007 400040
1290
1291 ; Load formatter
1292
1293 001734' 342000 000200 MWORD <ADDR=3420,CONT,D=1,SELF,MGC=200> ; 3420
1294 001735' 001000 003340
1295 001736' 342100 000204 MWORD <CONT,D=1,SELF,MGC=204> ; 3421
1296 001737' 001000 003340
1297 001740' 342200 002040 MWORD <CONT,S0A,A=10,OR,D=1,OENA,SELF,MGC=40> ; 3422
1298 001741' 431100 003340
1299
1300 ; Rotate down 4 or 8 bits
1301
1302 001742' 342300 000000 MWORD <CONT,S0B,AND,B=5,D=2> ; 3423
1303 001743' 342002 400340
1304 001744' 342401 000000 MWORD <LDCT,J=100> ; 3424
1305 001745' 000000 000300
1306 001746' 342500 000204 MWORD <CONT,S0B,PLUS,B=5,D=2,CRY,SELF,MGC=204> ; 3425
1307 001747' 302002 403740
1308 001750' 342600 000104 MWORD <CONT,SELF,MGC=104> ; 3426
1309 001751' 000000 003340
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 12-14
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0522
1310 001752' 342700 000204 MWORD <CONT,SELF,MGC=204> ; 3427
1311 001753' 000000 003340
1312 001754' 343000 000104 MWORD <CONT,SELF,MGC=104> ; 3430
1313 001755' 000000 003340
1314 001756' 343100 000204 MWORD <CONT,SELF,MGC=204> ; 3431
1315 001757' 000000 003340
1316 001760' 343200 000104 MWORD <CONT,SELF,MGC=104> ; 3432
1317 001761' 000000 003340
1318 001762' 343300 000204 MWORD <CONT,SELF,MGC=204> ; 3433
1319 001763' 000000 003340
1320 001764' 343400 000104 MWORD <CONT,SELF,MGC=104> ; 3434
1321 001765' 000000 003340
1322 001766' 343500 000200 MWORD <CONT,SD0,OR,B=4,D=2,SELM,MGC=200> ; 3435
1323 001767' 732002 002340
1324 001770' 343634 400000 MWORD <CJP,J=3440,SAB,A=10,B=4,D=1,SMIN,CRY,CENA,CCFZ>; 3436
1325 001771' 111502 020460
1326 001772' 343750 000006 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,MGC=6,SKCN> ; 3437
1327 001773' 732007 640040
1328 001774' 344034 250000 MWORD <RPCT,J=3425> ; 3440
1329 001775' 000000 000220
1330 001776' 344100 000000 MWORD <CRTN,D=1> ; 3441
1331 001777' 001000 000240
1332
1333 ;#********************************************************************
1334 ; Exit - write completion code to EBUF
1335 ;#********************************************************************
1336
1337 002000' 500050 010000 MWORD <ADDR=5000,JMAP,J=5001,S0B,AND,B=12,D=2> ; 5000
1338 002001' 342005 000040
1339 002002' 500100 110000 MWORD <LDCT,J=11,S0B,PLUS,B=12,D=2,CRY> ; 5001
1340 002003' 302005 000700
1341 002004' 500250 020000 MWORD <RPCT,J=5002,S0B,OR,B=12,D=7> ; 5002
1342 002005' 337005 000220
1343 002006' 500300 002004 MWORD <CONT,S0B,OR,B=12,D=1,OENA,SELE,MGC=4> ; 5003
1344 002007' 331005 005340
1345 002010' 500450 060040 MWORD <CJP,J=5006,CENA,CCGC,D=1,SELE,MGC=40> ; 5004
1346 002011' 001400 015060
1347 002012' 500550 040000 MWORD <JMAP,J=5004,D=1> ; 5005
1348 002013' 001000 000040
1349 002014' 500600 000200 MWORD <CONT,D=1,SELE,MGC=200> ; 5006
1350 002015' 001000 005340
1351 002016' 500700 002004 MWORD <CONT,S0B,OR,B=17,D=1,OENA,SELE,MGC=4> ; 5007
1352 002017' 331007 405340
1353 002020' 501050 100000 MWORD <JMAP,J=5010,D=1> ; 5010
1354 002021' 001000 000040
1355 002022' 777777 777777 -1
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 13
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0523
1356
1357 ;#********************************************************************
1358 ;* TEST 3 - Port Hardware Test 3
1359 ;
1360 ; Description: This test verifies that data transfers over the
1361 ; EBUS and CBUS are possible. Data patterns are
1362 ; read/written/verified via the CBUS module and the
1363 ; channel. The same is done with the EBUS interface
1364 ; using IOP function words to examine and deposit
1365 ; KL10 memory.
1366 ;
1367 ; Procedure: KL> Load microcode
1368 ; KL> Port Clear
1369 ; KL> Start port
1370 ;
1371 ; Verify PORT <==> CBUS interface
1372 ; -------------------------------
1373 ;
1374 ; UC> build a data pattern
1375 ; UC> write buffer 512 words with this data pattern
1376 ; UC> read buffer and verify each word
1377 ; If failed - exit test with error code 1-5 in EBUF
1378 ; If passed - do next data pattern until done
1379 ;
1380 ; Verify PORT <==> EBUS interface
1381 ; -------------------------------
1382 ;
1383 ; UC> write buffer 512 words with a data pattern
1384 ; UC> read buffer and verify each word
1385 ; If failed - exit test with error code 6-10 in EBUF
1386 ;
1387 ; Done
1388 ; ----
1389 ;
1390 ; KL> Read EBUF and determine test disposition
1391 ;
1392 ; FRU: EBUS/MPROC/CBUS Modules
1393 ;#********************************************************************
1394
1395 ; Initialization
1396
1397 002023' 332 00 0 00 030037 TST3: SKIPE USER ; user mode?
1398 GO [MOVE TSTTAB+3 ; yes - ensure this test does not
1399 TLO (TDENA) ; get run (but only if not in
1400 SKIPN UDEBUG ; debug mode)
1401 MOVEM TSTTAB+3
1402 002024' 260 17 0 00 003011' RTN]
1403 002025' 201 00 0 00 000000' MOVEI Z2 ; get address of module start
1404 002026' 260 17 0 00 000456* GO TRACE ; handle trace output
1405 002027' 201 01 0 00 002101' MOVEI 1,T3M ; set up microcode address
1406 002030' 260 17 0 00 000460* GO TLOAD ; load/verify it
1407 002031' 263 17 0 00 000000 RTN ; failed - exit test
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 14
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0524
1408
1409 ; Initialization - set up channel
1410
1411 002032' 260 17 0 00 000000* GO CHINIT ; initialize software
1412 002033' 201 01 0 00 000000* MOVEI 1,BUFF ; get buffer address
1413 002034' 336 00 0 00 000124* SKIPN UDEBUG ; debug mode?
1414 002035' 257 01 0 01 000000 MAP 1,(1) ; no - map to physical
1415 002036' 621 01 0 00 777000 TLZ 1,777000 ; get rid of misc bits
1416 002037' 661 01 0 00 620000 TLO 1,620000 ; make into a 512 word transfer
1417 002040' 202 01 0 00 000000# MOVEM 1,PCB+27 ; save in PCB
1418 002041' 201 02 0 00 001000 MOVEI 2,^D512 ; word count
1419 002042' 201 03 0 00 002033* MOVEI 3,BUFF ; buffer address
1420 002043' 201 14 0 00 000115 MOVEI PAT,115 ; read fill pattern
1421 002044' 260 17 0 00 000000* GO BUFGEN ; initialize buffer
1422
1423 ; Start the port and give it the buffer address (physical)
1424
1425 002045' 260 17 0 00 002575' GO MSTART ; start the test at 5777
1426 002046' 201 01 0 00 002042* MOVEI 1,BUFF ; get buffer address
1427 002047' 336 00 0 00 002034* SKIPN UDEBUG ; debug mode?
1428 002050' 257 01 0 01 000000 MAP 1,(1) ; no - map to physical
1429 002051' 621 01 0 00 777000 TLZ 1,777000 ; get rid of extraneous bits
1430 002052' 336 00 0 00 002047* SKIPN UDEBUG ; debug mode?
1431 002053' 260 17 0 00 000000* GO .DATAO ; no - write to port
1432 002054' 201 01 0 00 003720 MOVEI 1,^D2000 ; set up wait of 2 seconds
1433 002055' 260 17 0 00 002536' GO MWAIT ; wait for completion
1434
1435 ; Handle error printouts
1436
1437 002056' 027 00 0 00 002062' SCOPER MA3 ; print error message
1438 002057' 255 00 0 00 000000 JFCL ; loop on error
1439 002060' 254 00 0 00 002061' JRST TX3 ; altmode exit
1440
1441 ; End of test
1442
1443 002061' 263 17 0 00 000000 TX3: RTN ; return
1444
1445 ; Error messages
1446
1447 002062' 240000 002064' MA3: CALL!TXNOT!MA3PNT
1448 002063' 170000 002636' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1449
1450 002064' 201 01 0 00 002070' MA3PNT: MOVEI 1,MA3LST ; get list address
1451 002065' 201 02 0 00 000011 MOVEI 2,9 ; get list length
1452 002066' 260 17 0 00 002606' GO MPRINT ; print data
1453 002067' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0525
1454
1455 002070' 037 00 0 00 002746' MA3LST: TMSGC <No failure detected>
1456 002071' 037 00 0 00 003016' TMSGC <2901 to CBUS transfer failed - channel error>
1457 002072' 037 00 0 00 003030' TMSGC <2901 to CBUS transfer failed - parity error>
1458 002073' 037 00 0 00 003042' TMSGC <CBUS to 2901 transfer failed - channel error>
1459 002074' 037 00 0 00 003054' TMSGC <CBUS to 2901 transfer failed - parity error>
1460 002075' 037 00 0 00 003066' TMSGC <CBUS to 2901 transfer failed - data compare error>
1461 002076' 037 00 0 00 003101' TMSGC <2901 to EBUS transfer failed - parity error>
1462 002077' 037 00 0 00 003113' TMSGC <EBUS to 2901 transfer failed - parity error>
1463 002100' 037 00 0 00 003125' TMSGC <EBUS to 2901 transfer failed - data compare error>
1464
1465 ;#********************************************************************
1466 ; Microcode:
1467 ;#********************************************************************
1468
1469 ; R6 - Word count
1470 ; R7 - Used to build data pattern
1471 ; R10 - Data pattern
1472 ; R11 - Actual data read
1473 ; R15 - IOP word (function + address)
1474 ; R16 - Initial buffer address
1475 ; R17 - Completion code
1476
1477 ; Initialization, read buffer address into R16
1478
1479 002101' 577700 000000 T3M: MWORD <ADDR=5777,JZ> ; 5777
1480 002102' 000000 000000
1481 002103' 000000 020000 MWORD <ADDR=0,CJP,J=2,CENA,CCER> ; 0
1482 002104' 000400 100060
1483 002105' 000100 000000 MWORD <JZ> ; 1
1484 002106' 000000 000000
1485 002107' 000200 000010 MWORD <CONT,SD0,OR,D=2,B=16,SELE,MGC=10> ; 2
1486 002110' 732007 005340
1487 002111' 000310 000000 MWORD <JMAP,J=1000,S0A,AND,B=17,D=2> ; 3
1488 002112' 442007 400040
1489
1490 ;#********************************************************************
1491 ; Verify 2901-CBUS Data Transfer
1492 ; Verify CBUS-2901 Data Transfer
1493 ;#********************************************************************
1494
1495 ; Build data patterns
1496
1497 002113' 100000 000000 MWORD <ADDR=1000,CONT,SD0,AND,B=7,D=2> ; 1000
1498 002114' 742003 400340
1499 002115' 100110 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,OR,D=2> ; 1001 - 0's
1500 002116' 432074 000020
1501 002117' 100210 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,XNOR,D=2> ; 1002 - comp
1502 002120' 472074 000020
1503 002121' 100300 000000 MWORD <CONT,S0A,PLUS,CRY,A=7,B=7,D=2> ; 1003
1504 002122' 402073 400740
1505 002123' 100410 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,OR,D=2> ; 1004 - 1
1506 002124' 432074 000020
1507 002125' 100510 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,XNOR,D=2> ; 1005 - comp
1508 002126' 472074 000020
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15-1
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0526
1509
1510 002127' 100600 000000 MWORD <CONT,S0A,OR,A=7,B=7,D=7> ; 1006
1511 002130' 437073 400340
1512 002131' 100720 000000 MWORD <CJP,J=2000,S0A,OR,A=7,D=1,CENA,CCFZ> ; 1007
1513 002132' 431470 020060
1514 002133' 101010 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,OR,D=2> ; 1010 - 2 ..
1515 002134' 432074 000020
1516 002135' 101110 200000 MWORD <CJS,J=1020,S0A,A=7,B=10,XNOR,D=2> ; 1011 - comp
1517 002136' 472074 000020
1518 002137' 101210 060000 MWORD <JMAP,J=1006> ; 1012
1519 002140' 000000 000040
1520
1521 ; Write all the words specified by the CCW list
1522
1523 002141' 102010 210030 MWORD <ADDR=1020,JMAP,J=1021,SELM,MGC=30> ; 1020
1524 002142' 000000 002040
1525 002143' 102101 000220 MWORD <LDCT,J=100,S0A,AND,D=2,B=6,SELC,MGC=220> ; 1021
1526 002144' 442003 004300
1527 002145' 102210 220000 MWORD <RPCT,J=1022> ; 1022
1528 002146' 000000 000220
1529 002147' 102307 770000 MWORD <LDCT,J=777> ; 1023
1530 002150' 000000 000300
1531 002151' 102447 770000 MWORD <CJP,J=4777,D=1,CENA,CCCE> ; 1024
1532 002152' 001400 160060
1533 002153' 102547 760000 MWORD <CJP,J=4776,D=1,CENA,CCCP> ; 1025
1534 002154' 001400 140060
1535 002155' 102610 300000 MWORD <CJP,J=1030,D=1,CENA,CCCA> ; 1026
1536 002156' 001400 000060
1537 002157' 102710 260000 MWORD <JMAP,J=1026,D=1> ; 1027
1538 002160' 001000 000040
1539 002161' 103000 002040 MWORD <CONT,S0A,A=10,D=1,OENA,SELF,MGC=40> ; 1030
1540 002162' 401100 003340
1541 002163' 103130 000002 MWORD <CJS,J=3000,S0B,PLUS,B=6,D=2,CRY,SELC,MGC=2> ; 1031
1542 002164' 302003 004420
1543 002165' 103210 240000 MWORD <RPCT,J=1024> ; 1032
1544 002166' 000000 000220
1545 002167' 103330 000000 MWORD <CJS,J=3000> ; 1033
1546 002170' 000000 000020
1547 002171' 103430 000140 MWORD <CJS,J=3000,SELC,MGC=140> ; 1034
1548 002172' 000000 004020
1549 002173' 103547 770000 MWORD <CJP,J=4777,D=1,CENA,CCCE> ; 1035
1550 002174' 001400 160060
1551 002175' 103647 760000 MWORD <CJP,J=4776,D=1,CENA,CCCP> ; 1036
1552 002176' 001400 140060
1553 002177' 103710 500000 MWORD <JMAP,J=1050> ; 1037
1554 002200' 000000 000040
1555
1556 ; Read all the words specified by the CCW list
1557
1558 002201' 105000 000030 MWORD <ADDR=1050,CONT,SELM,MGC=30> ; 1050
1559 002202' 000000 002340
1560 002203' 105101 000200 MWORD <LDCT,J=100,SELC,MGC=200> ; 1051
1561 002204' 000000 004300
1562 002205' 105210 520000 MWORD <RPCT,J=1052> ; 1052
1563 002206' 000000 000220
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15-2
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0527
1564 002207' 105307 770000 MWORD <LDCT,J=777,S0A,AND,D=2,B=6> ; 1053
1565 002210' 442003 000300
1566 002211' 105447 750000 MWORD <CJP,J=4775,D=1,CENA,CCCE> ; 1054
1567 002212' 001400 160060
1568 002213' 105547 740000 MWORD <CJP,J=4774,D=1,CENA,CCCP> ; 1055
1569 002214' 001400 140060
1570 002215' 105610 600000 MWORD <CJP,J=1060,D=1,CENA,CCCA> ; 1056
1571 002216' 001400 000060
1572 002217' 105710 560000 MWORD <JMAP,J=1056,D=1> ; 1057
1573 002220' 001000 000040
1574 002221' 106030 000000 MWORD <CJS,J=3000> ; 1060
1575 002222' 000000 000020
1576 002223' 106100 000004 MWORD <CONT,D=1,SELC,MGC=4> ; 1061
1577 002224' 001000 004340
1578 002225' 106200 000200 MWORD <CONT,SD0,OR,B=11,D=2,SELM,MGC=200> ; 1062
1579 002226' 732004 402340
1580 002227' 106310 650000 MWORD <CJP,J=1065,SAB,XOR,A=11,B=10,D=1,CENA,CCFZ> ; 1063
1581 002230' 161514 020060
1582 002231' 106450 000005 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,SKCN,MGC=5> ; 1064
1583 002232' 732007 640040
1584 002233' 106510 540000 MWORD <RPCT,J=1054,S0B,PLUS,B=6,D=2,CRY> ; 1065
1585 002234' 302003 000620
1586 002235' 106630 000000 MWORD <CJS,J=3000> ; 1066
1587 002236' 000000 000020
1588 002237' 106730 000140 MWORD <CJS,J=3000,SELC,MGC=140> ; 1067
1589 002240' 000000 004020
1590 002241' 107047 750000 MWORD <CJP,J=4775,D=1,CENA,CCCE> ; 1070
1591 002242' 001400 160060
1592 002243' 107147 740000 MWORD <CJP,J=4774,D=1,CENA,CCCP> ; 1071
1593 002244' 001400 140060
1594 002245' 107200 000000 MWORD <CRTN> ; 1072
1595 002246' 000000 000240
1596
1597 ;#********************************************************************
1598 ; Verify 2901-EBUS Data Transfer
1599 ; Verify EBUS-2901 Data Transfer
1600 ;#********************************************************************
1601
1602 ; Write all 512 words
1603
1604 002247' 200020 010000 MWORD <ADDR=2000,JMAP,J=2001,SD0,AND,B=10,D=2> ; 2000
1605 002250' 742004 000040
1606 002251' 200100 320450 MWORD <LDCT,J=32,SD0,OR,B=15,D=2,SKCN,MGC=450> ; 2001
1607 002252' 732006 640300
1608 002253' 200220 020000 MWORD <RPCT,J=2002,S0B,B=15,OR,D=7> ; 2002
1609 002254' 337006 400220
1610 002255' 200300 000000 MWORD <CONT,SAB,A=16,B=15,OR,D=2> ; 2003
1611 002256' 132166 400340
1612 002257' 200407 770000 MWORD <LDCT,J=777,S0B,AND,B=6,D=2> ; 2004
1613 002260' 342003 000300
1614 002261' 200532 002004 MWORD <CJS,J=3200,S0B,OR,B=15,D=1,OENA,SELE,MGC=4> ; 2005
1615 002262' 331006 405020
1616 002263' 200600 000001 MWORD <CONT,D=1,SELE,MGC=1> ; 2006
1617 002264' 001000 005340
1618 002265' 200720 110000 MWORD <CJP,J=2011,CENA,CCER> ; 2007
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15-3
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0528
1619 002266' 000400 100060
1620 002267' 201020 070000 MWORD <JMAP,J=2007> ; 2010
1621 002270' 000000 000040
1622 002271' 201100 002004 MWORD <CONT,S0A,OR,A=10,D=1,SELE,MGC=4,OENA> ; 2011
1623 002272' 431100 005340
1624 002273' 201200 000020 MWORD <CONT,S0B,PLUS,B=15,CRY,D=2,SELE,MGC=20> ; 2012
1625 002274' 302006 405740
1626 002275' 201347 720000 MWORD <CJP,J=4772,D=1,CENA,CCEB> ; 2013
1627 002276' 001400 040060
1628 002277' 201400 000000 MWORD <CONT,S0B,PLUS,CRY,B=10,D=2> ; 2014
1629 002300' 302004 000740
1630 002301' 201520 050000 MWORD <RPCT,J=2005,S0B,B=6,PLUS,D=2,CRY> ; 2015
1631 002302' 302003 000620
1632 002303' 201620 500000 MWORD <JMAP,J=2050> ; 2016
1633 002304' 000000 000040
1634
1635 ; Read all 512 words
1636
1637 002305' 205000 320440 MWORD <ADDR=2050,LDCT,J=32,SD0,OR,B=15,D=2,SKCN,MGC=440>
1638 002306' 732006 640300
1639 002307' 205120 510000 MWORD <RPCT,J=2051,S0B,B=15,OR,D=7> ; 2051
1640 002310' 337006 400220
1641 002311' 205200 000000 MWORD <CONT,SAB,A=16,B=15,OR,D=2> ; 2052
1642 002312' 132166 400340
1643 002313' 205300 000000 MWORD <CONT,S0B,AND,B=10,D=2> ; 2053
1644 002314' 342004 000340
1645 002315' 205407 770000 MWORD <LDCT,J=777,S0B,AND,B=6,D=2> ; 2054
1646 002316' 342003 000300
1647 002317' 205532 002004 MWORD <CJS,J=3200,S0A,OR,A=15,D=1,OENA,SELE,MGC=4> ; 2055
1648 002320' 431150 005020
1649 002321' 205600 000001 MWORD <CONT,D=1,SELE,MGC=1> ; 2056
1650 002322' 001000 005340
1651 002323' 205720 610000 MWORD <CJP,J=2061,CENA,CCER> ; 2057
1652 002324' 000400 100060
1653 002325' 206020 570000 MWORD <JMAP,J=2057> ; 2060
1654 002326' 000000 000040
1655 002327' 206100 000010 MWORD <CONT,SD0,OR,B=11,D=2,SELE,MGC=10> ; 2061
1656 002330' 732004 405340
1657 002331' 206200 000000 MWORD <CONT,S0B,PLUS,B=15,CRY,D=2> ; 2062
1658 002332' 302006 400740
1659 002333' 206347 710000 MWORD <CJP,J=4771,D=1,CENA,CCEB> ; 2063
1660 002334' 001400 040060
1661 002335' 206420 660000 MWORD <CJP,J=2066,SAB,XOR,A=11,B=10,D=1,CENA,CCFZ,TIM>; 2064
1662 002336' 161514 020070
1663 002337' 206550 000010 MWORD <JMAP,J=5000,SD0,OR,B=17,D=2,SKCN,MGC=10> ; 2065
1664 002340' 732007 640040
1665 002341' 206600 000000 MWORD <CONT,S0B,PLUS,CRY,B=10,D=2> ; 2066
1666 002342' 302004 000740
1667 002343' 206720 550000 MWORD <RPCT,J=2055,S0B,B=6,PLUS,D=2,CRY> ; 2067
1668 002344' 302003 000620
1669 002345' 207050 000000 MWORD <JMAP,J=5000,S0A,AND,B=17,D=2> ; 2070
1670 002346' 442007 400040
1671
1672 ;#********************************************************************
1673 ; Delay subroutine - 3.9 usecs
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15-4
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0529
1674 ;#********************************************************************
1675
1676 002347' 300000 000000 MWORD <ADDR=3000,CONT>
1677 002350' 000000 000340
1678 002351' 300100 000000 MWORD <CONT>
1679 002352' 000000 000340
1680 002353' 300200 000000 MWORD <CONT>
1681 002354' 000000 000340
1682 002355' 300300 000000 MWORD <CONT>
1683 002356' 000000 000340
1684 002357' 300400 000000 MWORD <CONT>
1685 002360' 000000 000340
1686 002361' 300500 000000 MWORD <CONT>
1687 002362' 000000 000340
1688 002363' 300600 000000 MWORD <CONT>
1689 002364' 000000 000340
1690 002365' 300700 000000 MWORD <CONT>
1691 002366' 000000 000340
1692 002367' 301000 000000 MWORD <CONT>
1693 002370' 000000 000340
1694 002371' 301100 000000 MWORD <CONT>
1695 002372' 000000 000340
1696 002373' 301200 000000 MWORD <CONT>
1697 002374' 000000 000340
1698 002375' 301300 000000 MWORD <CONT>
1699 002376' 000000 000340
1700 002377' 301400 000000 MWORD <CONT>
1701 002400' 000000 000340
1702 002401' 301500 000000 MWORD <CONT>
1703 002402' 000000 000340
1704 002403' 301600 000000 MWORD <CRTN>
1705 002404' 000000 000240
1706
1707 ;#********************************************************************
1708 ; Delay subroutine - 100 usecs
1709 ;#********************************************************************
1710
1711 002405' 320030 000000 MWORD <ADDR=3200,CJS,J=3000>
1712 002406' 000000 000020
1713 002407' 320130 000000 MWORD <CJS,J=3000>
1714 002410' 000000 000020
1715 002411' 320230 000000 MWORD <CJS,J=3000>
1716 002412' 000000 000020
1717 002413' 320330 000000 MWORD <CJS,J=3000>
1718 002414' 000000 000020
1719 002415' 320430 000000 MWORD <CJS,J=3000>
1720 002416' 000000 000020
1721 002417' 320530 000000 MWORD <CJS,J=3000>
1722 002420' 000000 000020
1723 002421' 320630 000000 MWORD <CJS,J=3000>
1724 002422' 000000 000020
1725 002423' 320730 000000 MWORD <CJS,J=3000>
1726 002424' 000000 000020
1727 002425' 321030 000000 MWORD <CJS,J=3000>
1728 002426' 000000 000020
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15-5
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0530
1729 002427' 321130 000000 MWORD <CJS,J=3000>
1730 002430' 000000 000020
1731 002431' 321230 000000 MWORD <CJS,J=3000>
1732 002432' 000000 000020
1733 002433' 321330 000000 MWORD <CJS,J=3000>
1734 002434' 000000 000020
1735 002435' 321430 000000 MWORD <CJS,J=3000>
1736 002436' 000000 000020
1737 002437' 321530 000000 MWORD <CJS,J=3000>
1738 002440' 000000 000020
1739 002441' 321630 000000 MWORD <CJS,J=3000>
1740 002442' 000000 000020
1741 002443' 321730 000000 MWORD <CJS,J=3000>
1742 002444' 000000 000020
1743 002445' 322030 000000 MWORD <CJS,J=3000>
1744 002446' 000000 000020
1745 002447' 322130 000000 MWORD <CJS,J=3000>
1746 002450' 000000 000020
1747 002451' 322230 000000 MWORD <CJS,J=3000>
1748 002452' 000000 000020
1749 002453' 322330 000000 MWORD <CJS,J=3000>
1750 002454' 000000 000020
1751 002455' 322430 000000 MWORD <CJS,J=3000>
1752 002456' 000000 000020
1753 002457' 322530 000000 MWORD <CJS,J=3000>
1754 002460' 000000 000020
1755 002461' 322630 000000 MWORD <CJS,J=3000>
1756 002462' 000000 000020
1757 002463' 322730 000000 MWORD <CJS,J=3000>
1758 002464' 000000 000020
1759 002465' 323030 000000 MWORD <CJS,J=3000>
1760 002466' 000000 000020
1761 002467' 323130 000000 MWORD <CJS,J=3000>
1762 002470' 000000 000020
1763 002471' 323200 000000 MWORD <CRTN>
1764 002472' 000000 000240
1765
1766 ;#********************************************************************
1767 ; Exit - write completion code to EBUF
1768 ;#********************************************************************
1769
1770 002473' 477000 000000 MWORD <ADDR=4770,CONT,S0B,PLUS,B=17,D=2,CRY> ; 4770
1771 002474' 302007 400740
1772 002475' 477100 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4771
1773 002476' 302007 400740
1774 002477' 477200 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4772
1775 002500' 302007 400740
1776 002501' 477300 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4773
1777 002502' 302007 400740
1778 002503' 477400 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4774
1779 002504' 302007 400740
1780 002505' 477500 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4775
1781 002506' 302007 400740
1782 002507' 477600 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4776
1783 002510' 302007 400740
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 15-6
DFNIA2 MAC 8-Jun-83 15:52 Port Modules SEQ 0531
1784 002511' 477700 000000 MWORD <CONT,S0B,PLUS,B=17,D=2,CRY> ; 4777
1785 002512' 302007 400740
1786 002513' 500050 010000 MWORD <JMAP,J=5001,S0B,AND,B=12,D=2> ; 5000
1787 002514' 342005 000040
1788 002515' 500100 110000 MWORD <LDCT,J=11,S0B,PLUS,B=12,D=2,CRY> ; 5001
1789 002516' 302005 000700
1790 002517' 500250 020000 MWORD <RPCT,J=5002,S0B,OR,B=12,D=7> ; 5002
1791 002520' 337005 000220
1792 002521' 500300 002004 MWORD <CONT,S0B,OR,B=12,D=1,OENA,SELE,MGC=4> ; 5003
1793 002522' 331005 005340
1794 002523' 500450 060040 MWORD <CJP,J=5006,CENA,CCGC,D=1,SELE,MGC=40> ; 5004
1795 002524' 001400 015060
1796 002525' 500550 040000 MWORD <JMAP,J=5004,D=1> ; 5005
1797 002526' 001000 000040
1798 002527' 500600 000200 MWORD <CONT,D=1,SELE,MGC=200> ; 5006
1799 002530' 001000 005340
1800 002531' 500700 002004 MWORD <CONT,S0B,OR,B=17,D=1,OENA,SELE,MGC=4> ; 5007
1801 002532' 331007 405340
1802 002533' 501050 100000 MWORD <JMAP,J=5010,D=1> ; 5010
1803 002534' 001000 000040
1804 002535' 777777 777777 -1
1805
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 16
DFNIA2 MAC 8-Jun-83 15:52 Miscellaneous Routines SEQ 0532
1806 SUBTTL Miscellaneous Routines
1807
1808 ;#********************************************************************
1809 ;* MWAIT - Routine to wait for test completion and determine test results
1810 ;
1811 ; Arguments: AC1 - Contains timeout time in milliseconds
1812 ;
1813 ; Returns: +1 - Always (final data in SAVCSR,SAVLAR,SAVEBU)
1814 ;#********************************************************************
1815
1816 002536' 261 17 0 00 000000 MWAIT: RPUT (0,1,2) ; save AC's
1817
1818
1819 ; Let test run
1820
1821 002541' 200 02 0 00 000001 MOVE 2,1 ; get time to wait
1822 002542' 275 02 0 00 000005 MWAIT0: SUBI 2,5 ; calculate remaining time
1823 002543' 005 00 0 00 000005 DELAY 5 ; wait 5 milliseconds
1824 002544' 260 17 0 00 000030* GO RDCSR ; read CSR
1825 002545' 474 15 0 00 000000 SETO ERFLG, ; failed - set error flag
1826 002546' 606 01 0 00 000010 TRNN 1,MPRUN ; port still running?
1827 002547' 254 00 0 00 002552' JRST MWAIT1 ; no - test is done
1828 002550' 606 01 0 00 002000 TRNN 1,TCOMP ; test complete bit set?
1829 002551' 327 02 0 00 002542' JUMPG 2,MWAIT0 ; no - loop till done
1830
1831 ; Determine test disposition
1832
1833 002552' 202 01 0 00 002632' MWAIT1: MOVEM 1,SAVCSR ; save CSR data
1834 002553' 606 01 0 00 002000 TRNN 1,TCOMP ; test completion bit set?
1835 002554' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1836 002555' 201 01 0 00 200000 MOVEI 1,TSTEBF ; set up to read EBUF
1837 002556' 260 17 0 00 000055* GO LDCSR ; write CSR register
1838 002557' 260 17 0 00 000060* GO RDEBUF ; read the EBUF
1839 002560' 202 01 0 00 002634' MOVEM 1,SAVEBU ; save data
1840 002561' 404 01 0 00 003140' AND 1,[77] ; clear all but rightmost 6 bits
1841 002562' 332 00 0 00 000001 SKIPE 1 ; any error bits set?
1842 002563' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1843
1844 ; Find out stopping address
1845
1846 002564' 201 01 0 00 040000 MOVEI 1,SELLAR ; set this bit
1847 002565' 260 17 0 00 002556* GO LDCSR ; set up to read LAR
1848 002566' 260 17 0 00 000000* GO RDLAR ; read it
1849 002567' 242 01 0 00 777777 LSH 1,-1 ; position correctly
1850 002570' 202 01 0 00 002633' MOVEM 1,SAVLAR ; save it
1851 002571' 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
1852
1853 002574' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 17
DFNIA2 MAC 8-Jun-83 15:52 Miscellaneous Routines SEQ 0533
1854
1855 ;#********************************************************************
1856 ;* MSTART - Start the port at location 5777
1857 ;#********************************************************************
1858
1859 002575' 261 17 0 00 000001 MSTART: PUT 1 ; save AC1
1860 002576' 260 17 0 00 000076* GO IPACLR ; do a 'port clear'
1861 002577' 201 01 0 00 005777 MOVEI 1,5777 ; set up start address and
1862 002600' 242 01 0 00 000001 LSH 1,1 ; write it to the RAR
1863 002601' 260 17 0 00 000101* GO LDRAR
1864 002602' 201 01 0 00 000010 MOVEI 1,MPRUN ; get 'MPRUN' bit
1865 002603' 260 17 0 00 002565* GO LDCSR ; start the port
1866 002604' 262 17 0 00 000001 GET 1 ; restore AC1
1867 002605' 263 17 0 00 000000 RTN ; return
1868
1869
1870 ;#********************************************************************
1871 ;* MPRINT - Print test completion data for a test
1872 ;
1873 ; Argument: AC1 - contains completion code table
1874 ; AC2 - contains length of table
1875 ;#********************************************************************
1876
1877 002606' 261 17 0 00 000000 MPRINT: RPUT (0,1,2) ; save AC's
1878
1879 002611' 037 00 0 00 003141' TMSGC <CSR: >
1880 002612' 200 00 0 00 002632' MOVE SAVCSR ; get CSR data
1881 002613' 037 13 0 00 000000 PNTHW ; print it
1882 002614' 200 01 0 00 002632' MOVE 1,SAVCSR ; get CSR data
1883 002615' 606 01 0 00 002000 TRNN 1,TCOMP ; test completion bit set?
1884 JRST [TMSGC <Test did not complete properly:>
1885 TMSGC < Started at 5777>
1886 TMSGC < Stopped at >
1887 MOVE SAVLAR
1888 PNT4
1889 002616' 254 00 0 00 003162' JRST MPRINX]
1890 002617' 370 00 0 00 000002 SOS 2 ; calculate maximum failure code
1891 002620' 135 01 0 00 003170' LDB 1,[POINT 6,SAVEBU,35] ; get failure code
1892 002621' 313 01 0 00 000002 CAMLE 1,2 ; in range?
1893 JRST [TMSGC <Illegal failure code - >
1894 MOVE 1
1895 PNTOCS
1896 002622' 254 00 0 00 003177' JRST MPRINX]
1897 002623' 200 02 0 17 777777 MOVE 2,-1(P) ; get table address
1898 002624' 270 02 0 00 000001 ADD 2,1 ; plus offset
1899 002625' 256 00 0 02 000000 XCT (2) ; print entry
1900 002626' 262 17 0 00 000002 MPRINX: RGET (2,1,0) ; save AC's
1901
1902 002631' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page 18
DFNIA2 MAC 8-Jun-83 15:52 Miscellaneous Routines SEQ 0534
1903
1904 ;#********************************************************************
1905 ; Miscellaneous variables
1906 ;#********************************************************************
1907
1908 002632' 000000 000000 SAVCSR: 0 ; final CSR data
1909 002633' 000000 000000 SAVLAR: 0 ; final LAR data
1910 002634' 000000 000000 SAVEBU: 0 ; final EBUF data
1911 002635' 000000 000000 SAVCOD: 0 ; failure code
1912
1913
1914 ;#********************************************************************
1915 ; End of DFNIA2.MAC
1916 ;#********************************************************************
1917
1918 XLIST
1919
NO ERRORS DETECTED
PROGRAM BREAK IS 003213
CPU TIME USED 03:56.247
140P CORE USED
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page S-1
DFNIA2 MAC 8-Jun-83 15:52 SYMBOL TABLE SEQ 0535
BUFF 002046' ext SAVCR1 003203' $CHR 000044 .MB 000017 spd
BUFGEN 002044' ext SAVCR2 003204' $GARG 000001 .MCCCA 000037 spd
CALL 200000 000000 spd SAVCRA 003205' %ADDR 005011 spd .MCCCE 000037 spd
CHINIT 002032' ext SAVCS1 003206' %ML 501050 100000 spd .MCCCP 000037 spd
CSRPNT 000000 ext SAVCS2 003207' %MR 001000 000040 spd .MCCEB 000037 spd
DDEBUG 000000 ext SAVCS3 003210' .DATAI 000000 ext .MCCER 000037 spd
DELAY 005000 000000 SAVCSR 002632' int .DATAO 002053' ext .MCCFZ 000037 spd
ERESET 000053' ext SAVEB1 003211' .LA 000000 spd .MCCGC 000037 spd
ERFLG 000015 SAVEB2 003212' .LADDR 000100 000000 spd .MCENA 000001 spd
GET 262740 000000 SAVEBU 002634' int .LAND 000000 spd .MCJP 000017 spd
GO 260740 000000 SAVLAR 002633' int .LB 000000 spd .MCJS 000017 spd
IPACLR 002576' ext SCOPER 027000 000000 .LCCCA 000000 spd .MCONT 000017 spd
LAST 010000 000000 spd SCOSW 000201' ext .LCCCE 000000 spd .MCRTN 000017 spd
LDCRAM 000111' ext SELLAR 040000 spd .LCCCP 000000 spd .MCRY 000001 spd
LDCSR 002603' ext T2M 000506' ent .LCCEB 000000 spd .MD 000007 spd
LDEBUF 000057' ext T3M 002101' ent .LCCER 000000 spd .MJ 007777 spd
LDRAR 002601' ext TA1 000004' .LCCFZ 000000 spd .MJMAP 000017 spd
M1CRAM 000201' TA1PAT 000245' .LCCGC 000000 spd .MJZ 000017 spd
M1CSR 000137' TB1 000045' .LCENA 000000 spd .MLDCT 000017 spd
M1EBUF 000160' TBYTE 000000 ext .LCJP 000000 spd .MLDLM 000037 spd
MA1 000127' TC1 000046' .LCJS 000000 spd .MLSAD 000037 spd
MA1PNT 000132' TC1PAT 000333' .LCONT 000000 spd .MMGC 001777 spd
MA2 000471' TCOMP 002000 spd .LCRTN 000000 spd .MOENA 000001 spd
MA2LST 000477' TD1 000072' .LCRY 000000 spd .MOR 000007 spd
MA2PNT 000473' TD1PAT 000450' .LD 000000 spd .MPLUS 000007 spd
MA3 002062' TDENA 000100 000000 spd .LJ 010000 spd .MRAM 000001 spd
MA3LST 002070' TE1 000073' .LJMAP 000000 spd .MRDLM 000037 spd
MA3PNT 002064' TF1 000103' .LJZ 000000 spd .MRPCT 000017 spd
MC1 000155' TFLOAD 000000 ext .LLDCT 000000 spd .MS0A 000007 spd
MD1 000176' TFMFLG 000000 ext .LLDLM 000000 spd .MS0B 000007 spd
MPNTC 000227' TLOAD 002030' ext .LLSAD 000000 spd .MSAB 000007 spd
MPRINT 002606' ent TPAT 000000 ext .LMGC 000001 spd .MSAQ 000007 spd
MPRINX 002626' TRACE 002026' ext .LOENA 002000 spd .MSD0 000007 spd
MPRUN 000010 spd TREGD 000000 ext .LOR 000000 spd .MSELC 000007 spd
MSG 100000 000000 spd TREGN 000000 ext .LPLUS 000000 spd .MSELE 000007 spd
MSTART 002575' ent TRSFLG 000000 ext .LRAM 000000 spd .MSELF 000007 spd
MWAIT 002536' ent TSLOAD 000002' ext .LRDLM 000000 spd .MSELM 000007 spd
MWAIT0 002542' TST1 000000' ent .LRPCT 000000 spd .MSELP 000007 spd
MWAIT1 002552' TST2 000455' ent .LS0A 000000 spd .MSKCN 000037 spd
P 000017 TST3 002023' ent .LS0B 000000 spd .MSMIN 000007 spd
PACKET 000000 ext TSTEBF 200000 spd .LSAB 000000 spd .MTIM 000001 spd
PAT 000014 TSTSUB 000110' ext .LSAQ 000000 spd .MXNOR 000007 spd
PCB 000000 ext TSTTAB 000000 ext .LSD0 000000 spd .MXOR 000007 spd
PNT4 037200 000000 TWORD 000000 ext .LSELC 000000 spd .RA 000010 000000 spd
PNT6 037300 000000 TX1 000126' .LSELE 000000 spd .RAND 040000 000000 spd
PNTHW 037540 000000 TX2 000470' .LSELF 000000 spd .RB 400000 spd
PNTMSG 037000 000000 TX3 002061' .LSELM 000000 spd .RCCCA 000000 spd
PNTOCS 037700 000003 TXALL 060000 000000 spd .LSELP 000000 spd .RCCCE 160000 spd
PUT 261740 000000 TXNOT 040000 000000 spd .LSKCN 000000 spd .RCCCP 140000 spd
RDCRAM 000112' ext TXTINH 000200 spd .LSMIN 000000 spd .RCCEB 040000 spd
RDCSR 002544' ext UDEBUG 003013' ext .LTIM 000000 spd .RCCER 100000 spd
RDEBUF 002557' ext USER 030037 .LXNOR 000000 spd .RCCFZ 020000 spd
RDLAR 002566' ext Z2 000000' .LXOR 000000 spd .RCCGC 010000 spd
RTN 263740 000000 $ARG2 000001 .MA 000017 spd .RCENA 000400 000000 spd
SAVCOD 002635' int $B 000044 .MAND 000007 spd .RCJP 000060 spd
.MAIN MACRO %53A(1152) 20:01 24-Sep-84 Page S-2
DFNIA2 MAC 8-Jun-83 15:52 SYMBOL TABLE SEQ 0536
.RCJS 000020 spd
.RCONT 000340 spd
.RCRTN 000240 spd
.RCRY 000400 spd
.RD 001000 000000 spd
.RJ 000000 spd
.RJMAP 000040 spd
.RJZ 000000 spd
.RLDCT 000300 spd
.RLDLM 230000 spd
.RLSAD 200000 spd
.RMGC 000000 spd
.ROENA 000000 spd
.ROR 030000 000000 spd
.RPLUS 000000 spd
.RRAM 000200 000000 spd
.RRDLM 220000 spd
.RRPCT 000220 spd
.RS0A 400000 000000 spd
.RS0B 300000 000000 spd
.RSAB 100000 000000 spd
.RSAQ 000000 spd
.RSD0 700000 000000 spd
.RSELC 004000 spd
.RSELE 005000 spd
.RSELF 003000 spd
.RSELM 002000 spd
.RSELP 001000 spd
.RSKCN 240000 spd
.RSMIN 010000 000000 spd
.RTIM 000010 spd
.RXNOR 070000 000000 spd
.RXOR 060000 000000 spd
BUFF 19# 1412 1419 1426
BUFGEN 30# 1421 SEQ 0537
CALL 202 203 230 251 543 1447
CHINIT 26# 1411
CSRPNT 19#
DDEBUG 19#
ERESET 26# 75 128
ERFLG 84 88 101 105 136 140 180 184 1825 1835 1842
IPACLR 26# 158 1860
LAST 204 231 252 543 1448
LDCRAM 25# 175
LDCSR 25# 77 94 130 1837 1847 1865
LDEBUF 25# 132
LDRAR 25# 161 1863
M1CRAM 251 254#
M1CSR 203 212#
M1EBUF 230 233#
MA1 85 102 202#
MA1PNT 202 206#
MA2 533 543#
MA2LST 546 551#
MA2PNT 543 546#
MA3 1437 1447#
MA3LST 1450 1455#
MA3PNT 1447 1450#
MC1 137 229#
MD1 181 250#
MPNTC 269 275 277#
MPRINT 14 548 1452 1877#
MPRINX 1889 1896 1900#
MPRUN 1826 1864
MSG 204 229 231 250 252 1448
MSTART 14 527 1425 1859#
MWAIT 14 529 1433 1816#
MWAIT0 1822# 1829
MWAIT1 1827 1833#
P 1897
PACKET 20#
PAT 1420
PCB 19# 1417
RDCRAM 25# 176
RDCSR 25# 78 95 1824
RDEBUF 25# 133 1838
RDLAR 25# 1848
SAVCOD 15 1911#
SAVCR1 168# 168 179 268
SAVCR2 178# 178 274
SAVCRA 160# 160 256 259
SAVCS1 76# 76 93 207
SAVCS2 82# 82 99 217
SAVCS3 80# 80 97 223
SAVCSR 15 1833 1880 1882 1908#
SAVEB1 127# 127 131 135 238
SAVEB2 134# 134 244
SAVEBU 15 1839 1891 1910# SEQ 0538
SAVLAR 15 1850 1887 1909#
SCOSW 30# 212 233 254
SELLAR 1846
T2M 10 521 565#
T3M 10 1405 1479#
TA1 72# 110
TA1PAT 73 81 98 299#
TB1 74 116#
TBYTE 20#
TC1 120# 145
TC1PAT 121 356#
TCOMP 1828 1834 1883
TD1 123 151#
TD1PAT 166 436#
TDENA 1399
TE1 155# 170
TF1 166# 190
TFLOAD 19#
TFMFLG 20#
TLOAD 19# 522 1406
TPAT 20#
TRACE 19# 61 520 1404
TREGD 20#
TREGN 20#
TRSFLG 20#
TSLOAD 21# 62
TST1 9 60#
TST2 9 519#
TST3 9 1397#
TSTEBF 129 1836
TSTSUB 19# 72 92 120 174
TSTTAB 21# 1398 1401
TWORD 20#
TX1 87 88 104 105 139 140 157 183 184 194#
TX2 535 539#
TX3 1439 1443#
TXALL 203 204 230 231 251 252 544 1448
TXNOT 202 229 250 543 1447
TXTINH 213 215 219 221 234 236 240 242 264 266 270 272
UDEBUG 19# 189 1400 1413 1427 1430
USER 1397
Z2 36# 60 519 1403
$ARG2 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730 SEQ 0539
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688 SEQ 0540
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
$B 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248 SEQ 0541
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
$CHR 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950 SEQ 0542
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
$GARG 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674 SEQ 0543
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624 SEQ 0544
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
%ADDR 565# 565 567# 567 576# 576 578 578# 580 580# 582 582# 584 584#
586 586# 588 588# 590 590# 592 592# 594 594# 596 596# 598 598#
603# 603 605 605# 607 607# 609 609# 611 611# 613 613# 615 615#
617 617# 619 619# 621 621# 623 623# 625 625# 627 627# 629 629#
631 631# 633 633# 635 635# 637 637# 639 639# 641 641# 643 643#
645 645# 647 647# 649 649# 651 651# 656# 656 658 658# 660 660#
662 662# 664 664# 666 666# 668 668# 670 670# 672 672# 674 674#
676 676# 678 678# 680 680# 682 682# 684 684# 686 686# 688 688#
690 690# 692 692# 694 694# 696 696# 698 698# 700 700# 702 702#
704 704# 706 706# 708 708# 710 710# 712 712# 714 714# 716 716#
718 718# 720 720# 722 722# 724 724# 726 726# 728 728# 730 730#
732 732# 734 734# 736 736# 738 738# 740 740# 742 742# 744 744#
746 746# 748 748# 750 750# 752 752# 754 754# 756 756# 758 758#
760 760# 762 762# 764 764# 766 766# 768 768# 770 770# 772 772#
774 774# 776 776# 778 778# 780 780# 782 782# 784 784# 786 786#
788 788# 790 790# 792 792# 794 794# 796 796# 798 798# 800 800#
802 802# 804 804# 806 806# 808 808# 810 810# 812 812# 814 814#
816 816# 818 818# 820 820# 822 822# 824 824# 826 826# 828 828#
830 830# 832 832# 834 834# 836 836# 838 838# 840 840# 842 842#
844 844# 846 846# 848 848# 850 850# 852 852# 854 854# 856 856#
858 858# 860 860# 862 862# 864 864# 866 866# 868 868# 870 870#
872 872# 874 874# 876 876# 878 878# 880 880# 882 882# 884 884#
886 886# 888 888# 890 890# 892 892# 894 894# 896 896# 898 898#
900 900# 902 902# 904 904# 906 906# 908 908# 910 910# 912 912#
921# 921 923 923# 925 925# 927 927# 929 929# 931 931# 933 933#
935 935# 937 937# 939 939# 941 941# 943 943# 948# 948 950 950#
952 952# 954 954# 956 956# 965# 965 967 967# 969 969# 971 971#
973 973# 975 975# 977 977# 979 979# 981 981# 983 983# 986 986#
988 988# 990 990# 992 992# 994 994# 996 996# 1001# 1001 1003 1003#
1005 1005# 1007 1007# 1009 1009# 1011 1011# 1013 1013# 1015 1015# 1024# 1024
1026 1026# 1028 1028# 1030 1030# 1032 1032# 1034 1034# 1037 1037# 1039 1039#
1041 1041# 1043 1043# 1045 1045# 1047 1047# 1052# 1052 1054 1054# 1056 1056#
1058 1058# 1060 1060# 1062 1062# 1064 1064# 1066 1066# 1068 1068# 1070 1070#
1072 1072# 1074 1074# 1076 1076# 1078 1078# 1080 1080# 1082 1082# 1084 1084#
1086 1086# 1088 1088# 1090 1090# 1092 1092# 1094 1094# 1096 1096# 1098 1098#
1100 1100# 1102 1102# 1104 1104# 1106 1106# 1108 1108# 1110 1110# 1112 1112#
1114 1114# 1116 1116# 1118 1118# 1120 1120# 1122 1122# 1124 1124# 1126 1126#
1128 1128# 1130 1130# 1132 1132# 1134 1134# 1136 1136# 1138 1138# 1140 1140#
1142 1142# 1144 1144# 1146 1146# 1148 1148# 1150 1150# 1152 1152# 1154 1154#
1156 1156# 1158 1158# 1160 1160# 1162 1162# 1164 1164# 1166 1166# 1168 1168#
1170 1170# 1172 1172# 1174 1174# 1176 1176# 1178 1178# 1180 1180# 1182 1182# SEQ 0545
1184 1184# 1186 1186# 1188 1188# 1190 1190# 1192 1192# 1201# 1201 1203 1203#
1205 1205# 1207 1207# 1209 1209# 1211 1211# 1213 1213# 1215 1215# 1217 1217#
1219 1219# 1224 1224# 1226 1226# 1228 1228# 1230 1230# 1232 1232# 1234 1234#
1236 1236# 1238 1238# 1240 1240# 1242 1242# 1244 1244# 1246 1246# 1248 1248#
1250 1250# 1252 1252# 1254 1254# 1256 1256# 1265# 1265 1267 1267# 1269 1269#
1271 1271# 1273 1273# 1275 1275# 1278 1278# 1280 1280# 1282 1282# 1284 1284#
1286 1286# 1288 1288# 1293# 1293 1295 1295# 1297 1297# 1302 1302# 1304 1304#
1306 1306# 1308 1308# 1310 1310# 1312 1312# 1314 1314# 1316 1316# 1318 1318#
1320 1320# 1322 1322# 1324 1324# 1326 1326# 1328 1328# 1330 1330# 1337# 1337
1339 1339# 1341 1341# 1343 1343# 1345 1345# 1347 1347# 1349 1349# 1351 1351#
1353 1353# 1479# 1479 1481# 1481 1483 1483# 1485 1485# 1487 1487# 1497# 1497
1499 1499# 1501 1501# 1503 1503# 1505 1505# 1507 1507# 1510 1510# 1512 1512#
1514 1514# 1516 1516# 1518 1518# 1523# 1523 1525 1525# 1527 1527# 1529 1529#
1531 1531# 1533 1533# 1535 1535# 1537 1537# 1539 1539# 1541 1541# 1543 1543#
1545 1545# 1547 1547# 1549 1549# 1551 1551# 1553 1553# 1558# 1558 1560 1560#
1562 1562# 1564 1564# 1566 1566# 1568 1568# 1570 1570# 1572 1572# 1574 1574#
1576 1576# 1578 1578# 1580 1580# 1582 1582# 1584 1584# 1586 1586# 1588 1588#
1590 1590# 1592 1592# 1594 1594# 1604# 1604 1606 1606# 1608 1608# 1610 1610#
1612 1612# 1614 1614# 1616 1616# 1618 1618# 1620 1620# 1622 1622# 1624 1624#
1626 1626# 1628 1628# 1630 1630# 1632 1632# 1637# 1637 1639 1639# 1641 1641#
1643 1643# 1645 1645# 1647 1647# 1649 1649# 1651 1651# 1653 1653# 1655 1655#
1657 1657# 1659 1659# 1661 1661# 1663 1663# 1665 1665# 1667 1667# 1669 1669#
1676# 1676 1678 1678# 1680 1680# 1682 1682# 1684 1684# 1686 1686# 1688 1688#
1690 1690# 1692 1692# 1694 1694# 1696 1696# 1698 1698# 1700 1700# 1702 1702#
1704 1704# 1711# 1711 1713 1713# 1715 1715# 1717 1717# 1719 1719# 1721 1721#
1723 1723# 1725 1725# 1727 1727# 1729 1729# 1731 1731# 1733 1733# 1735 1735#
1737 1737# 1739 1739# 1741 1741# 1743 1743# 1745 1745# 1747 1747# 1749 1749#
1751 1751# 1753 1753# 1755 1755# 1757 1757# 1759 1759# 1761 1761# 1763 1763#
1770# 1770 1772 1772# 1774 1774# 1776 1776# 1778 1778# 1780 1780# 1782 1782#
1784 1784# 1786 1786# 1788 1788# 1790 1790# 1792 1792# 1794 1794# 1796 1796#
1798 1798# 1800 1800# 1802 1802#
%ML 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884 SEQ 0546
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
%MR 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615 SEQ 0547
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560 SEQ 0548
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
.DATAI 26#
.DATAO 26# 1431
.LA 578 580 582 584 586 590 592 594 656 660 664 668 672 676
680 684 688 692 696 700 704 708 712 716 720 724 728 732
736 740 744 748 752 756 760 764 768 772 776 780 784 788
792 796 800 804 808 812 816 820 824 828 832 836 840 844
848 852 856 860 864 868 872 876 880 884 888 892 896 900
904 908 923 925 927 929 931 935 937 939 948 952 975 977
979 981 983 988 990 992 1001 1009 1011 1026 1028 1030 1032 1034
1039 1041 1043 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072
1074 1076 1078 1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100
1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128
1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156
1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184
1188 1267 1269 1271 1273 1275 1280 1282 1284 1297 1324 1499 1501 1503
1505 1507 1510 1512 1514 1516 1539 1580 1610 1622 1641 1647 1661
.LADDR 565 567 576 603 656 921 948 965 1001 1024 1052 1201 1265 1293
1337 1479 1481 1497 1523 1558 1604 1637 1676 1711 1770
.LAND 576 598 921 943 967 973 996 1001 1009 1024 1047 1086 1088 1090
1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1118
1201 1224 1265 1288 1302 1337 1487 1497 1525 1564 1604 1612 1643 1645
1669 1786
.LB 576 578 580 582 584 586 590 592 594 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 658 660 662 666 668 670 674 676
678 682 684 686 690 692 694 698 700 702 706 708 710 714
716 718 722 724 726 730 732 734 738 740 742 746 748 750
754 756 758 762 764 766 770 772 774 778 780 782 786 788
790 794 796 798 802 804 806 810 812 814 818 820 822 826
828 830 834 836 838 842 844 846 850 852 854 858 860 862
866 868 870 874 876 878 882 884 886 890 892 894 898 900
902 906 908 910 921 923 925 927 929 931 935 937 939 943
950 952 954 967 969 971 973 975 977 979 981 983 988 990
992 996 1001 1003 1007 1009 1011 1013 1024 1026 1028 1030 1032 1034
1039 1041 1043 1047 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070
1072 1074 1076 1078 1080 1082 1086 1088 1090 1092 1094 1096 1098 1100
1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128 SEQ 0549
1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1152 1154 1156 1158
1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186
1188 1190 1205 1209 1213 1217 1250 1256 1265 1267 1269 1271 1273 1275
1280 1282 1284 1288 1302 1306 1322 1324 1326 1337 1339 1341 1343 1351
1485 1487 1497 1499 1501 1503 1505 1507 1510 1514 1516 1525 1541 1564
1578 1580 1582 1584 1604 1606 1608 1610 1612 1614 1624 1628 1630 1637
1639 1641 1643 1645 1655 1657 1661 1663 1665 1667 1669 1770 1772 1774
1776 1778 1780 1782 1784 1786 1788 1790 1792 1800
.LCCCA 1535 1570
.LCCCE 1531 1549 1566 1590
.LCCCP 1533 1551 1568 1592
.LCCEB 1626 1659
.LCCER 1481 1618 1651
.LCCFZ 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1512 1580 1661
.LCCGC 1345 1794
.LCENA 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1345 1481 1512 1531 1533
1535 1549 1551 1566 1568 1570 1580 1590 1592 1618 1626 1651 1659 1661
1794
.LCJP 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1345 1481 1512 1531 1533
1535 1549 1551 1566 1568 1570 1580 1590 1592 1618 1626 1651 1659 1661
1794
.LCJS 578 580 584 586 592 594 603 605 607 609 611 613 615 617
619 621 623 625 627 629 631 633 635 637 639 641 643 645
647 649 923 925 929 931 937 939 975 977 981 983 990 992
1026 1028 1032 1034 1041 1043 1267 1269 1273 1275 1282 1284 1499 1501
1505 1507 1514 1516 1541 1545 1547 1574 1586 1588 1614 1647 1711 1713
1715 1717 1719 1721 1723 1725 1727 1729 1731 1733 1735 1737 1739 1741
1743 1745 1747 1749 1751 1753 1755 1757 1759 1761
.LCONT 576 582 590 656 658 664 666 672 674 680 682 688 690 696
698 704 706 712 714 720 722 728 730 736 738 744 746 752
754 760 762 768 770 776 778 784 786 792 794 800 802 808
810 816 818 824 826 832 834 840 842 848 850 856 858 864
866 872 874 880 882 888 890 896 898 904 906 921 927 935
948 950 971 973 979 988 1001 1003 1005 1007 1009 1024 1030 1039
1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078
1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106
1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134
1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162
1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1226 1265
1271 1280 1293 1295 1297 1302 1306 1308 1310 1312 1314 1316 1318 1320
1322 1343 1349 1351 1485 1497 1503 1510 1539 1558 1576 1578 1610 1616
1622 1624 1628 1641 1643 1649 1655 1657 1665 1676 1678 1680 1682 1684
1686 1688 1690 1692 1694 1696 1698 1700 1702 1770 1772 1774 1776 1778
1780 1782 1784 1792 1798 1800 SEQ 0550
.LCRTN 651 912 956 1015 1192 1330 1594 1704 1763
.LCRY 582 927 969 971 979 1030 1271 1306 1324 1339 1503 1541 1584 1624
1628 1630 1657 1665 1667 1770 1772 1774 1776 1778 1780 1782 1784 1788
.LD 576 578 580 582 584 586 590 592 594 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 656 658 660 662 664 666 668 670
672 674 676 678 680 682 684 686 688 690 692 694 696 698
700 702 704 706 708 710 712 714 716 718 720 722 724 726
728 730 732 734 736 738 740 742 744 746 748 750 752 754
756 758 760 762 764 766 768 770 772 774 776 778 780 782
784 786 788 790 792 794 796 798 800 802 804 806 808 810
812 814 816 818 820 822 824 826 828 830 832 834 836 838
840 842 844 846 848 850 852 854 856 858 860 862 864 866
868 870 872 874 876 878 880 882 884 886 888 890 892 894
896 898 900 902 904 906 908 910 921 923 925 927 929 931
935 937 939 943 948 950 952 954 967 969 971 973 975 977
979 981 983 988 990 992 996 1001 1003 1005 1007 1009 1011 1013
1024 1026 1028 1030 1032 1034 1039 1041 1043 1047 1052 1054 1056 1058
1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084 1086
1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114
1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142
1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170
1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1201 1203 1205 1207
1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234 1236 1238
1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269 1271 1273
1275 1280 1282 1284 1288 1293 1295 1297 1302 1306 1322 1324 1326 1330
1337 1339 1341 1343 1345 1347 1349 1351 1353 1485 1487 1497 1499 1501
1503 1505 1507 1510 1512 1514 1516 1525 1531 1533 1535 1537 1539 1541
1549 1551 1564 1566 1568 1570 1572 1576 1578 1580 1582 1584 1590 1592
1604 1606 1608 1610 1612 1614 1616 1622 1624 1626 1628 1630 1637 1639
1641 1643 1645 1647 1649 1655 1657 1659 1661 1663 1665 1667 1669 1770
1772 1774 1776 1778 1780 1782 1784 1786 1788 1790 1792 1794 1796 1798
1800 1802
.LJ 567 578 580 584 586 588 592 594 596 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 660 662 668 670 676 678 684 686
692 694 700 702 708 710 716 718 724 726 732 734 740 742
748 750 756 758 764 766 772 774 780 782 788 790 796 798
804 806 812 814 820 822 828 830 836 838 844 846 852 854
860 862 868 870 876 878 884 886 892 894 900 902 908 910
923 925 929 931 933 937 939 941 943 952 954 965 967 969
975 977 981 983 986 990 992 994 996 1011 1013 1026 1028 1032
1034 1037 1041 1043 1045 1047 1188 1190 1201 1203 1205 1207 1209 1211
1213 1215 1217 1219 1224 1228 1230 1232 1234 1236 1238 1240 1242 1244
1246 1248 1250 1252 1254 1256 1267 1269 1273 1275 1278 1282 1284 1286
1288 1304 1324 1326 1328 1337 1339 1341 1345 1347 1353 1481 1487 1499
1501 1505 1507 1512 1514 1516 1518 1523 1525 1527 1529 1531 1533 1535
1537 1541 1543 1545 1547 1549 1551 1553 1560 1562 1564 1566 1568 1570
1572 1574 1580 1582 1584 1586 1588 1590 1592 1604 1606 1608 1612 1614
1618 1620 1626 1630 1632 1637 1639 1645 1647 1651 1653 1659 1661 1663
1667 1669 1711 1713 1715 1717 1719 1721 1723 1725 1727 1729 1731 1733
1735 1737 1739 1741 1743 1745 1747 1749 1751 1753 1755 1757 1759 1761
1786 1788 1790 1794 1796 1802 SEQ 0551
.LJMAP 567 598 662 670 678 686 694 702 710 718 726 734 742 750
758 766 774 782 790 798 806 814 822 830 838 846 854 862
870 878 886 894 902 910 943 954 965 996 1013 1047 1190 1205
1209 1213 1217 1248 1250 1256 1288 1326 1337 1347 1353 1487 1518 1523
1537 1553 1572 1582 1604 1620 1632 1653 1663 1669 1786 1796 1802
.LJZ 565 1479 1483
.LLDCT 588 933 967 986 1037 1201 1224 1278 1304 1339 1525 1529 1560 1564
1606 1612 1637 1645 1788
.LLDLM 656 664 672 680 688 696 704 712 720 728 736 744 752 760
768 776 784 792 800 808 816 824 832 840 848 856 864 872
880 888 896 904 1052
.LLSAD 603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649
.LMGC 603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649 656 658 662 664
666 670 672 674 678 680 682 686 688 690 694 696 698 702
704 706 710 712 714 718 720 722 726 728 730 734 736 738
742 744 746 750 752 754 758 760 762 766 768 770 774 776
778 782 784 786 790 792 794 798 800 802 806 808 810 814
816 818 822 824 826 830 832 834 838 840 842 846 848 850
854 856 858 862 864 866 870 872 874 878 880 882 886 888
890 894 896 898 902 904 906 910 948 950 954 1003 1005 1007
1013 1052 1186 1190 1205 1209 1213 1217 1250 1256 1293 1295 1297 1306
1308 1310 1312 1314 1316 1318 1320 1322 1326 1343 1345 1349 1351 1485
1523 1525 1539 1541 1547 1558 1560 1576 1578 1582 1588 1606 1614 1616
1622 1624 1637 1647 1649 1655 1663 1792 1794 1798 1800
.LOENA 656 664 672 680 688 696 704 712 720 728 736 744 752 760
768 776 784 792 800 808 816 824 832 840 848 856 864 872
880 888 896 904 948 1003 1052 1297 1343 1351 1539 1614 1622 1647
1792 1800
.LOR 578 584 590 592 603 605 607 609 611 613 615 617 619 621
623 625 627 629 631 633 635 637 639 641 643 645 647 649
656 658 662 664 666 670 672 674 678 680 682 686 688 690
694 696 698 702 704 706 710 712 714 718 720 722 726 728
730 734 736 738 742 744 746 750 752 754 758 760 762 766
768 770 774 776 778 782 784 786 790 792 794 798 800 802
806 808 810 814 816 818 822 824 826 830 832 834 838 840
842 846 848 850 854 856 858 862 864 866 870 872 874 878
880 882 886 888 890 894 896 898 902 904 906 910 923 929
935 937 948 954 975 981 988 990 1003 1007 1013 1026 1032 1039
1041 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076
1078 1080 1082 1084 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170
1172 1174 1176 1178 1180 1182 1184 1186 1190 1203 1205 1207 1209 1211
1213 1215 1217 1228 1230 1232 1234 1236 1238 1240 1242 1244 1250 1252
1254 1256 1267 1273 1280 1282 1297 1322 1326 1341 1343 1351 1485 1499
1505 1510 1512 1514 1578 1582 1606 1608 1610 1614 1622 1637 1639 1641
1647 1655 1663 1790 1792 1800
.LPLUS 582 927 969 971 979 1030 1120 1122 1124 1126 1128 1130 1132 1134
1136 1138 1140 1142 1144 1146 1148 1150 1271 1306 1339 1503 1541 1584
1624 1628 1630 1657 1665 1667 1770 1772 1774 1776 1778 1780 1782 1784
1788
.LRAM 656 658 664 666 672 674 680 682 688 690 696 698 704 706
712 714 720 722 728 730 736 738 744 746 752 754 760 762 SEQ 0552
768 770 776 778 784 786 792 794 800 802 808 810 816 818
824 826 832 834 840 842 848 850 856 858 864 866 872 874
880 882 888 890 896 898 904 906
.LRDLM 658 666 674 682 690 698 706 714 722 730 738 746 754 762
770 778 786 794 802 810 818 826 834 842 850 858 866 874
882 890 898 906 1186
.LRPCT 596 941 969 994 1045 1219 1246 1286 1328 1341 1527 1543 1562 1584
1608 1630 1639 1667 1790
.LS0A 578 580 582 584 586 590 592 594 598 656 664 672 680 688
696 704 712 720 728 736 744 752 760 768 776 784 792 800
808 816 824 832 840 848 856 864 872 880 888 896 904 923
925 927 929 931 935 937 939 943 948 975 977 979 981 983
988 990 992 996 1026 1028 1030 1032 1034 1039 1041 1043 1047 1052
1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080
1082 1084 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142
1144 1146 1148 1150 1201 1203 1207 1211 1215 1224 1226 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1267 1269 1271 1273 1275 1280
1282 1284 1288 1297 1487 1499 1501 1503 1505 1507 1510 1512 1514 1516
1525 1539 1564 1622 1647 1669
.LS0B 967 969 971 1003 1302 1306 1337 1339 1341 1343 1351 1541 1584 1608
1612 1614 1624 1628 1630 1639 1643 1645 1657 1665 1667 1770 1772 1774
1776 1778 1780 1782 1784 1786 1788 1790 1792 1800
.LSAB 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1001 1009 1011 1086 1088 1090 1092 1094 1096
1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1152 1154 1156 1158
1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1188 1324
1580 1610 1641 1661
.LSAQ 1118 1184
.LSD0 576 603 605 607 609 611 613 615 617 619 621 623 625 627
629 631 633 635 637 639 641 643 645 647 649 658 662 666
670 674 678 682 686 690 694 698 702 706 710 714 718 722
726 730 734 738 742 746 750 754 758 762 766 770 774 778
782 786 790 794 798 802 806 810 814 818 822 826 830 834
838 842 846 850 854 858 862 866 870 874 878 882 886 890
894 898 902 906 910 921 950 954 973 1005 1007 1013 1024 1186
1190 1205 1209 1213 1217 1250 1256 1265 1322 1326 1485 1497 1578 1582
1604 1606 1637 1655 1663
.LSELC 1525 1541 1547 1560 1576 1588
.LSELE 1343 1345 1349 1351 1485 1614 1616 1622 1624 1647 1649 1655 1792 1794
1798 1800
.LSELF 948 1293 1295 1297 1306 1308 1310 1312 1314 1316 1318 1320 1539
.LSELM 950 1003 1007 1322 1523 1558 1578
.LSELP 1005
.LSKCN 662 670 678 686 694 702 710 718 726 734 742 750 758 766
774 782 790 798 806 814 822 830 838 846 854 862 870 878
886 894 902 910 954 1013 1190 1205 1209 1213 1217 1250 1256 1326
1582 1606 1637 1663
.LSMIN 1324
.LTIM 1661
.LXNOR 580 586 594 925 931 939 977 983 992 1028 1034 1043 1226 1269
1275 1284 1501 1507 1516
.LXOR 660 668 676 684 692 700 708 716 724 732 740 748 756 764 SEQ 0553
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1580 1661
.MA 578 580 582 584 586 590 592 594 656 660 664 668 672 676
680 684 688 692 696 700 704 708 712 716 720 724 728 732
736 740 744 748 752 756 760 764 768 772 776 780 784 788
792 796 800 804 808 812 816 820 824 828 832 836 840 844
848 852 856 860 864 868 872 876 880 884 888 892 896 900
904 908 923 925 927 929 931 935 937 939 948 952 975 977
979 981 983 988 990 992 1001 1009 1011 1026 1028 1030 1032 1034
1039 1041 1043 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072
1074 1076 1078 1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100
1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128
1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156
1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184
1188 1267 1269 1271 1273 1275 1280 1282 1284 1297 1324 1499 1501 1503
1505 1507 1510 1512 1514 1516 1539 1580 1610 1622 1641 1647 1661
.MAND 576 598 921 943 967 973 996 1001 1009 1024 1047 1086 1088 1090
1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1118
1201 1224 1265 1288 1302 1337 1487 1497 1525 1564 1604 1612 1643 1645
1669 1786
.MB 576 578 580 582 584 586 590 592 594 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 658 660 662 666 668 670 674 676
678 682 684 686 690 692 694 698 700 702 706 708 710 714
716 718 722 724 726 730 732 734 738 740 742 746 748 750
754 756 758 762 764 766 770 772 774 778 780 782 786 788
790 794 796 798 802 804 806 810 812 814 818 820 822 826
828 830 834 836 838 842 844 846 850 852 854 858 860 862
866 868 870 874 876 878 882 884 886 890 892 894 898 900
902 906 908 910 921 923 925 927 929 931 935 937 939 943
950 952 954 967 969 971 973 975 977 979 981 983 988 990
992 996 1001 1003 1007 1009 1011 1013 1024 1026 1028 1030 1032 1034
1039 1041 1043 1047 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070
1072 1074 1076 1078 1080 1082 1086 1088 1090 1092 1094 1096 1098 1100
1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128
1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1152 1154 1156 1158
1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186
1188 1190 1205 1209 1213 1217 1250 1256 1265 1267 1269 1271 1273 1275
1280 1282 1284 1288 1302 1306 1322 1324 1326 1337 1339 1341 1343 1351
1485 1487 1497 1499 1501 1503 1505 1507 1510 1514 1516 1525 1541 1564
1578 1580 1582 1584 1604 1606 1608 1610 1612 1614 1624 1628 1630 1637
1639 1641 1643 1645 1655 1657 1661 1663 1665 1667 1669 1770 1772 1774
1776 1778 1780 1782 1784 1786 1788 1790 1792 1800
.MCCCA 1535 1570
.MCCCE 1531 1549 1566 1590
.MCCCP 1533 1551 1568 1592
.MCCEB 1626 1659
.MCCER 1481 1618 1651
.MCCFZ 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1512 1580 1661
.MCCGC 1345 1794 SEQ 0554
.MCENA 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1345 1481 1512 1531 1533
1535 1549 1551 1566 1568 1570 1580 1590 1592 1618 1626 1651 1659 1661
1794
.MCJP 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1345 1481 1512 1531 1533
1535 1549 1551 1566 1568 1570 1580 1590 1592 1618 1626 1651 1659 1661
1794
.MCJS 578 580 584 586 592 594 603 605 607 609 611 613 615 617
619 621 623 625 627 629 631 633 635 637 639 641 643 645
647 649 923 925 929 931 937 939 975 977 981 983 990 992
1026 1028 1032 1034 1041 1043 1267 1269 1273 1275 1282 1284 1499 1501
1505 1507 1514 1516 1541 1545 1547 1574 1586 1588 1614 1647 1711 1713
1715 1717 1719 1721 1723 1725 1727 1729 1731 1733 1735 1737 1739 1741
1743 1745 1747 1749 1751 1753 1755 1757 1759 1761
.MCONT 576 582 590 656 658 664 666 672 674 680 682 688 690 696
698 704 706 712 714 720 722 728 730 736 738 744 746 752
754 760 762 768 770 776 778 784 786 792 794 800 802 808
810 816 818 824 826 832 834 840 842 848 850 856 858 864
866 872 874 880 882 888 890 896 898 904 906 921 927 935
948 950 971 973 979 988 1001 1003 1005 1007 1009 1024 1030 1039
1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078
1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106
1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134
1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162
1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1226 1265
1271 1280 1293 1295 1297 1302 1306 1308 1310 1312 1314 1316 1318 1320
1322 1343 1349 1351 1485 1497 1503 1510 1539 1558 1576 1578 1610 1616
1622 1624 1628 1641 1643 1649 1655 1657 1665 1676 1678 1680 1682 1684
1686 1688 1690 1692 1694 1696 1698 1700 1702 1770 1772 1774 1776 1778
1780 1782 1784 1792 1798 1800
.MCRTN 651 912 956 1015 1192 1330 1594 1704 1763
.MCRY 582 927 969 971 979 1030 1271 1306 1324 1339 1503 1541 1584 1624
1628 1630 1657 1665 1667 1770 1772 1774 1776 1778 1780 1782 1784 1788
.MD 576 578 580 582 584 586 590 592 594 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 656 658 660 662 664 666 668 670
672 674 676 678 680 682 684 686 688 690 692 694 696 698
700 702 704 706 708 710 712 714 716 718 720 722 724 726
728 730 732 734 736 738 740 742 744 746 748 750 752 754
756 758 760 762 764 766 768 770 772 774 776 778 780 782
784 786 788 790 792 794 796 798 800 802 804 806 808 810
812 814 816 818 820 822 824 826 828 830 832 834 836 838
840 842 844 846 848 850 852 854 856 858 860 862 864 866
868 870 872 874 876 878 880 882 884 886 888 890 892 894
896 898 900 902 904 906 908 910 921 923 925 927 929 931
935 937 939 943 948 950 952 954 967 969 971 973 975 977
979 981 983 988 990 992 996 1001 1003 1005 1007 1009 1011 1013
1024 1026 1028 1030 1032 1034 1039 1041 1043 1047 1052 1054 1056 1058 SEQ 0555
1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084 1086
1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114
1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142
1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170
1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1201 1203 1205 1207
1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234 1236 1238
1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269 1271 1273
1275 1280 1282 1284 1288 1293 1295 1297 1302 1306 1322 1324 1326 1330
1337 1339 1341 1343 1345 1347 1349 1351 1353 1485 1487 1497 1499 1501
1503 1505 1507 1510 1512 1514 1516 1525 1531 1533 1535 1537 1539 1541
1549 1551 1564 1566 1568 1570 1572 1576 1578 1580 1582 1584 1590 1592
1604 1606 1608 1610 1612 1614 1616 1622 1624 1626 1628 1630 1637 1639
1641 1643 1645 1647 1649 1655 1657 1659 1661 1663 1665 1667 1669 1770
1772 1774 1776 1778 1780 1782 1784 1786 1788 1790 1792 1794 1796 1798
1800 1802
.MJ 567 578 580 584 586 588 592 594 596 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 660 662 668 670 676 678 684 686
692 694 700 702 708 710 716 718 724 726 732 734 740 742
748 750 756 758 764 766 772 774 780 782 788 790 796 798
804 806 812 814 820 822 828 830 836 838 844 846 852 854
860 862 868 870 876 878 884 886 892 894 900 902 908 910
923 925 929 931 933 937 939 941 943 952 954 965 967 969
975 977 981 983 986 990 992 994 996 1011 1013 1026 1028 1032
1034 1037 1041 1043 1045 1047 1188 1190 1201 1203 1205 1207 1209 1211
1213 1215 1217 1219 1224 1228 1230 1232 1234 1236 1238 1240 1242 1244
1246 1248 1250 1252 1254 1256 1267 1269 1273 1275 1278 1282 1284 1286
1288 1304 1324 1326 1328 1337 1339 1341 1345 1347 1353 1481 1487 1499
1501 1505 1507 1512 1514 1516 1518 1523 1525 1527 1529 1531 1533 1535
1537 1541 1543 1545 1547 1549 1551 1553 1560 1562 1564 1566 1568 1570
1572 1574 1580 1582 1584 1586 1588 1590 1592 1604 1606 1608 1612 1614
1618 1620 1626 1630 1632 1637 1639 1645 1647 1651 1653 1659 1661 1663
1667 1669 1711 1713 1715 1717 1719 1721 1723 1725 1727 1729 1731 1733
1735 1737 1739 1741 1743 1745 1747 1749 1751 1753 1755 1757 1759 1761
1786 1788 1790 1794 1796 1802
.MJMAP 567 598 662 670 678 686 694 702 710 718 726 734 742 750
758 766 774 782 790 798 806 814 822 830 838 846 854 862
870 878 886 894 902 910 943 954 965 996 1013 1047 1190 1205
1209 1213 1217 1248 1250 1256 1288 1326 1337 1347 1353 1487 1518 1523
1537 1553 1572 1582 1604 1620 1632 1653 1663 1669 1786 1796 1802
.MJZ 565 1479 1483
.MLDCT 588 933 967 986 1037 1201 1224 1278 1304 1339 1525 1529 1560 1564
1606 1612 1637 1645 1788
.MLDLM 656 664 672 680 688 696 704 712 720 728 736 744 752 760
768 776 784 792 800 808 816 824 832 840 848 856 864 872
880 888 896 904 1052
.MLSAD 603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649
.MMGC 603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649 656 658 662 664
666 670 672 674 678 680 682 686 688 690 694 696 698 702
704 706 710 712 714 718 720 722 726 728 730 734 736 738
742 744 746 750 752 754 758 760 762 766 768 770 774 776 SEQ 0556
778 782 784 786 790 792 794 798 800 802 806 808 810 814
816 818 822 824 826 830 832 834 838 840 842 846 848 850
854 856 858 862 864 866 870 872 874 878 880 882 886 888
890 894 896 898 902 904 906 910 948 950 954 1003 1005 1007
1013 1052 1186 1190 1205 1209 1213 1217 1250 1256 1293 1295 1297 1306
1308 1310 1312 1314 1316 1318 1320 1322 1326 1343 1345 1349 1351 1485
1523 1525 1539 1541 1547 1558 1560 1576 1578 1582 1588 1606 1614 1616
1622 1624 1637 1647 1649 1655 1663 1792 1794 1798 1800
.MOENA 656 664 672 680 688 696 704 712 720 728 736 744 752 760
768 776 784 792 800 808 816 824 832 840 848 856 864 872
880 888 896 904 948 1003 1052 1297 1343 1351 1539 1614 1622 1647
1792 1800
.MOR 578 584 590 592 603 605 607 609 611 613 615 617 619 621
623 625 627 629 631 633 635 637 639 641 643 645 647 649
656 658 662 664 666 670 672 674 678 680 682 686 688 690
694 696 698 702 704 706 710 712 714 718 720 722 726 728
730 734 736 738 742 744 746 750 752 754 758 760 762 766
768 770 774 776 778 782 784 786 790 792 794 798 800 802
806 808 810 814 816 818 822 824 826 830 832 834 838 840
842 846 848 850 854 856 858 862 864 866 870 872 874 878
880 882 886 888 890 894 896 898 902 904 906 910 923 929
935 937 948 954 975 981 988 990 1003 1007 1013 1026 1032 1039
1041 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076
1078 1080 1082 1084 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170
1172 1174 1176 1178 1180 1182 1184 1186 1190 1203 1205 1207 1209 1211
1213 1215 1217 1228 1230 1232 1234 1236 1238 1240 1242 1244 1250 1252
1254 1256 1267 1273 1280 1282 1297 1322 1326 1341 1343 1351 1485 1499
1505 1510 1512 1514 1578 1582 1606 1608 1610 1614 1622 1637 1639 1641
1647 1655 1663 1790 1792 1800
.MPLUS 582 927 969 971 979 1030 1120 1122 1124 1126 1128 1130 1132 1134
1136 1138 1140 1142 1144 1146 1148 1150 1271 1306 1339 1503 1541 1584
1624 1628 1630 1657 1665 1667 1770 1772 1774 1776 1778 1780 1782 1784
1788
.MRAM 656 658 664 666 672 674 680 682 688 690 696 698 704 706
712 714 720 722 728 730 736 738 744 746 752 754 760 762
768 770 776 778 784 786 792 794 800 802 808 810 816 818
824 826 832 834 840 842 848 850 856 858 864 866 872 874
880 882 888 890 896 898 904 906
.MRDLM 658 666 674 682 690 698 706 714 722 730 738 746 754 762
770 778 786 794 802 810 818 826 834 842 850 858 866 874
882 890 898 906 1186
.MRPCT 596 941 969 994 1045 1219 1246 1286 1328 1341 1527 1543 1562 1584
1608 1630 1639 1667 1790
.MS0A 578 580 582 584 586 590 592 594 598 656 664 672 680 688
696 704 712 720 728 736 744 752 760 768 776 784 792 800
808 816 824 832 840 848 856 864 872 880 888 896 904 923
925 927 929 931 935 937 939 943 948 975 977 979 981 983
988 990 992 996 1026 1028 1030 1032 1034 1039 1041 1043 1047 1052
1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080
1082 1084 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142
1144 1146 1148 1150 1201 1203 1207 1211 1215 1224 1226 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1267 1269 1271 1273 1275 1280
1282 1284 1288 1297 1487 1499 1501 1503 1505 1507 1510 1512 1514 1516 SEQ 0557
1525 1539 1564 1622 1647 1669
.MS0B 967 969 971 1003 1302 1306 1337 1339 1341 1343 1351 1541 1584 1608
1612 1614 1624 1628 1630 1639 1643 1645 1657 1665 1667 1770 1772 1774
1776 1778 1780 1782 1784 1786 1788 1790 1792 1800
.MSAB 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1001 1009 1011 1086 1088 1090 1092 1094 1096
1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1152 1154 1156 1158
1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1188 1324
1580 1610 1641 1661
.MSAQ 1118 1184
.MSD0 576 603 605 607 609 611 613 615 617 619 621 623 625 627
629 631 633 635 637 639 641 643 645 647 649 658 662 666
670 674 678 682 686 690 694 698 702 706 710 714 718 722
726 730 734 738 742 746 750 754 758 762 766 770 774 778
782 786 790 794 798 802 806 810 814 818 822 826 830 834
838 842 846 850 854 858 862 866 870 874 878 882 886 890
894 898 902 906 910 921 950 954 973 1005 1007 1013 1024 1186
1190 1205 1209 1213 1217 1250 1256 1265 1322 1326 1485 1497 1578 1582
1604 1606 1637 1655 1663
.MSELC 1525 1541 1547 1560 1576 1588
.MSELE 1343 1345 1349 1351 1485 1614 1616 1622 1624 1647 1649 1655 1792 1794
1798 1800
.MSELF 948 1293 1295 1297 1306 1308 1310 1312 1314 1316 1318 1320 1539
.MSELM 950 1003 1007 1322 1523 1558 1578
.MSELP 1005
.MSKCN 662 670 678 686 694 702 710 718 726 734 742 750 758 766
774 782 790 798 806 814 822 830 838 846 854 862 870 878
886 894 902 910 954 1013 1190 1205 1209 1213 1217 1250 1256 1326
1582 1606 1637 1663
.MSMIN 1324
.MTIM 1661
.MXNOR 580 586 594 925 931 939 977 983 992 1028 1034 1043 1226 1269
1275 1284 1501 1507 1516
.MXOR 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1580 1661
.RA 578 580 582 584 586 590 592 594 656 660 664 668 672 676
680 684 688 692 696 700 704 708 712 716 720 724 728 732
736 740 744 748 752 756 760 764 768 772 776 780 784 788
792 796 800 804 808 812 816 820 824 828 832 836 840 844
848 852 856 860 864 868 872 876 880 884 888 892 896 900
904 908 923 925 927 929 931 935 937 939 948 952 975 977
979 981 983 988 990 992 1001 1009 1011 1026 1028 1030 1032 1034
1039 1041 1043 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072
1074 1076 1078 1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100
1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128
1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156
1158 1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184
1188 1267 1269 1271 1273 1275 1280 1282 1284 1297 1324 1499 1501 1503
1505 1507 1510 1512 1514 1516 1539 1580 1610 1622 1641 1647 1661
.RAND 576 598 921 943 967 973 996 1001 1009 1024 1047 1086 1088 1090
1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1118 SEQ 0558
1201 1224 1265 1288 1302 1337 1487 1497 1525 1564 1604 1612 1643 1645
1669 1786
.RB 576 578 580 582 584 586 590 592 594 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 658 660 662 666 668 670 674 676
678 682 684 686 690 692 694 698 700 702 706 708 710 714
716 718 722 724 726 730 732 734 738 740 742 746 748 750
754 756 758 762 764 766 770 772 774 778 780 782 786 788
790 794 796 798 802 804 806 810 812 814 818 820 822 826
828 830 834 836 838 842 844 846 850 852 854 858 860 862
866 868 870 874 876 878 882 884 886 890 892 894 898 900
902 906 908 910 921 923 925 927 929 931 935 937 939 943
950 952 954 967 969 971 973 975 977 979 981 983 988 990
992 996 1001 1003 1007 1009 1011 1013 1024 1026 1028 1030 1032 1034
1039 1041 1043 1047 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070
1072 1074 1076 1078 1080 1082 1086 1088 1090 1092 1094 1096 1098 1100
1102 1104 1106 1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128
1130 1132 1134 1136 1138 1140 1142 1144 1146 1148 1152 1154 1156 1158
1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186
1188 1190 1205 1209 1213 1217 1250 1256 1265 1267 1269 1271 1273 1275
1280 1282 1284 1288 1302 1306 1322 1324 1326 1337 1339 1341 1343 1351
1485 1487 1497 1499 1501 1503 1505 1507 1510 1514 1516 1525 1541 1564
1578 1580 1582 1584 1604 1606 1608 1610 1612 1614 1624 1628 1630 1637
1639 1641 1643 1645 1655 1657 1661 1663 1665 1667 1669 1770 1772 1774
1776 1778 1780 1782 1784 1786 1788 1790 1792 1800
.RCCCA 1535 1570
.RCCCE 1531 1549 1566 1590
.RCCCP 1533 1551 1568 1592
.RCCEB 1626 1659
.RCCER 1481 1618 1651
.RCCFZ 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1512 1580 1661
.RCCGC 1345 1794
.RCENA 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1345 1481 1512 1531 1533
1535 1549 1551 1566 1568 1570 1580 1590 1592 1618 1626 1651 1659 1661
1794
.RCJP 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1203 1207 1211 1215 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1324 1345 1481 1512 1531 1533
1535 1549 1551 1566 1568 1570 1580 1590 1592 1618 1626 1651 1659 1661
1794
.RCJS 578 580 584 586 592 594 603 605 607 609 611 613 615 617
619 621 623 625 627 629 631 633 635 637 639 641 643 645
647 649 923 925 929 931 937 939 975 977 981 983 990 992
1026 1028 1032 1034 1041 1043 1267 1269 1273 1275 1282 1284 1499 1501
1505 1507 1514 1516 1541 1545 1547 1574 1586 1588 1614 1647 1711 1713
1715 1717 1719 1721 1723 1725 1727 1729 1731 1733 1735 1737 1739 1741 SEQ 0559
1743 1745 1747 1749 1751 1753 1755 1757 1759 1761
.RCONT 576 582 590 656 658 664 666 672 674 680 682 688 690 696
698 704 706 712 714 720 722 728 730 736 738 744 746 752
754 760 762 768 770 776 778 784 786 792 794 800 802 808
810 816 818 824 826 832 834 840 842 848 850 856 858 864
866 872 874 880 882 888 890 896 898 904 906 921 927 935
948 950 971 973 979 988 1001 1003 1005 1007 1009 1024 1030 1039
1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078
1080 1082 1084 1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106
1108 1110 1112 1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134
1136 1138 1140 1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162
1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1184 1186 1226 1265
1271 1280 1293 1295 1297 1302 1306 1308 1310 1312 1314 1316 1318 1320
1322 1343 1349 1351 1485 1497 1503 1510 1539 1558 1576 1578 1610 1616
1622 1624 1628 1641 1643 1649 1655 1657 1665 1676 1678 1680 1682 1684
1686 1688 1690 1692 1694 1696 1698 1700 1702 1770 1772 1774 1776 1778
1780 1782 1784 1792 1798 1800
.RCRTN 651 912 956 1015 1192 1330 1594 1704 1763
.RCRY 582 927 969 971 979 1030 1271 1306 1324 1339 1503 1541 1584 1624
1628 1630 1657 1665 1667 1770 1772 1774 1776 1778 1780 1782 1784 1788
.RD 576 578 580 582 584 586 590 592 594 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 656 658 660 662 664 666 668 670
672 674 676 678 680 682 684 686 688 690 692 694 696 698
700 702 704 706 708 710 712 714 716 718 720 722 724 726
728 730 732 734 736 738 740 742 744 746 748 750 752 754
756 758 760 762 764 766 768 770 772 774 776 778 780 782
784 786 788 790 792 794 796 798 800 802 804 806 808 810
812 814 816 818 820 822 824 826 828 830 832 834 836 838
840 842 844 846 848 850 852 854 856 858 860 862 864 866
868 870 872 874 876 878 880 882 884 886 888 890 892 894
896 898 900 902 904 906 908 910 921 923 925 927 929 931
935 937 939 943 948 950 952 954 967 969 971 973 975 977
979 981 983 988 990 992 996 1001 1003 1005 1007 1009 1011 1013
1024 1026 1028 1030 1032 1034 1039 1041 1043 1047 1052 1054 1056 1058
1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084 1086
1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112 1114
1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142
1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170
1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1201 1203 1205 1207
1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234 1236 1238
1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269 1271 1273
1275 1280 1282 1284 1288 1293 1295 1297 1302 1306 1322 1324 1326 1330
1337 1339 1341 1343 1345 1347 1349 1351 1353 1485 1487 1497 1499 1501
1503 1505 1507 1510 1512 1514 1516 1525 1531 1533 1535 1537 1539 1541
1549 1551 1564 1566 1568 1570 1572 1576 1578 1580 1582 1584 1590 1592
1604 1606 1608 1610 1612 1614 1616 1622 1624 1626 1628 1630 1637 1639
1641 1643 1645 1647 1649 1655 1657 1659 1661 1663 1665 1667 1669 1770
1772 1774 1776 1778 1780 1782 1784 1786 1788 1790 1792 1794 1796 1798
1800 1802
.RJ 567 578 580 584 586 588 592 594 596 598 603 605 607 609
611 613 615 617 619 621 623 625 627 629 631 633 635 637
639 641 643 645 647 649 660 662 668 670 676 678 684 686 SEQ 0560
692 694 700 702 708 710 716 718 724 726 732 734 740 742
748 750 756 758 764 766 772 774 780 782 788 790 796 798
804 806 812 814 820 822 828 830 836 838 844 846 852 854
860 862 868 870 876 878 884 886 892 894 900 902 908 910
923 925 929 931 933 937 939 941 943 952 954 965 967 969
975 977 981 983 986 990 992 994 996 1011 1013 1026 1028 1032
1034 1037 1041 1043 1045 1047 1188 1190 1201 1203 1205 1207 1209 1211
1213 1215 1217 1219 1224 1228 1230 1232 1234 1236 1238 1240 1242 1244
1246 1248 1250 1252 1254 1256 1267 1269 1273 1275 1278 1282 1284 1286
1288 1304 1324 1326 1328 1337 1339 1341 1345 1347 1353 1481 1487 1499
1501 1505 1507 1512 1514 1516 1518 1523 1525 1527 1529 1531 1533 1535
1537 1541 1543 1545 1547 1549 1551 1553 1560 1562 1564 1566 1568 1570
1572 1574 1580 1582 1584 1586 1588 1590 1592 1604 1606 1608 1612 1614
1618 1620 1626 1630 1632 1637 1639 1645 1647 1651 1653 1659 1661 1663
1667 1669 1711 1713 1715 1717 1719 1721 1723 1725 1727 1729 1731 1733
1735 1737 1739 1741 1743 1745 1747 1749 1751 1753 1755 1757 1759 1761
1786 1788 1790 1794 1796 1802
.RJMAP 567 598 662 670 678 686 694 702 710 718 726 734 742 750
758 766 774 782 790 798 806 814 822 830 838 846 854 862
870 878 886 894 902 910 943 954 965 996 1013 1047 1190 1205
1209 1213 1217 1248 1250 1256 1288 1326 1337 1347 1353 1487 1518 1523
1537 1553 1572 1582 1604 1620 1632 1653 1663 1669 1786 1796 1802
.RJZ 565 1479 1483
.RLDCT 588 933 967 986 1037 1201 1224 1278 1304 1339 1525 1529 1560 1564
1606 1612 1637 1645 1788
.RLDLM 656 664 672 680 688 696 704 712 720 728 736 744 752 760
768 776 784 792 800 808 816 824 832 840 848 856 864 872
880 888 896 904 1052
.RLSAD 603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649
.RMGC 603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649 656 658 662 664
666 670 672 674 678 680 682 686 688 690 694 696 698 702
704 706 710 712 714 718 720 722 726 728 730 734 736 738
742 744 746 750 752 754 758 760 762 766 768 770 774 776
778 782 784 786 790 792 794 798 800 802 806 808 810 814
816 818 822 824 826 830 832 834 838 840 842 846 848 850
854 856 858 862 864 866 870 872 874 878 880 882 886 888
890 894 896 898 902 904 906 910 948 950 954 1003 1005 1007
1013 1052 1186 1190 1205 1209 1213 1217 1250 1256 1293 1295 1297 1306
1308 1310 1312 1314 1316 1318 1320 1322 1326 1343 1345 1349 1351 1485
1523 1525 1539 1541 1547 1558 1560 1576 1578 1582 1588 1606 1614 1616
1622 1624 1637 1647 1649 1655 1663 1792 1794 1798 1800
.ROENA 656 664 672 680 688 696 704 712 720 728 736 744 752 760
768 776 784 792 800 808 816 824 832 840 848 856 864 872
880 888 896 904 948 1003 1052 1297 1343 1351 1539 1614 1622 1647
1792 1800
.ROR 578 584 590 592 603 605 607 609 611 613 615 617 619 621
623 625 627 629 631 633 635 637 639 641 643 645 647 649
656 658 662 664 666 670 672 674 678 680 682 686 688 690
694 696 698 702 704 706 710 712 714 718 720 722 726 728
730 734 736 738 742 744 746 750 752 754 758 760 762 766
768 770 774 776 778 782 784 786 790 792 794 798 800 802 SEQ 0561
806 808 810 814 816 818 822 824 826 830 832 834 838 840
842 846 848 850 854 856 858 862 864 866 870 872 874 878
880 882 886 888 890 894 896 898 902 904 906 910 923 929
935 937 948 954 975 981 988 990 1003 1007 1013 1026 1032 1039
1041 1052 1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076
1078 1080 1082 1084 1152 1154 1156 1158 1160 1162 1164 1166 1168 1170
1172 1174 1176 1178 1180 1182 1184 1186 1190 1203 1205 1207 1209 1211
1213 1215 1217 1228 1230 1232 1234 1236 1238 1240 1242 1244 1250 1252
1254 1256 1267 1273 1280 1282 1297 1322 1326 1341 1343 1351 1485 1499
1505 1510 1512 1514 1578 1582 1606 1608 1610 1614 1622 1637 1639 1641
1647 1655 1663 1790 1792 1800
.RPLUS 582 927 969 971 979 1030 1120 1122 1124 1126 1128 1130 1132 1134
1136 1138 1140 1142 1144 1146 1148 1150 1271 1306 1339 1503 1541 1584
1624 1628 1630 1657 1665 1667 1770 1772 1774 1776 1778 1780 1782 1784
1788
.RRAM 656 658 664 666 672 674 680 682 688 690 696 698 704 706
712 714 720 722 728 730 736 738 744 746 752 754 760 762
768 770 776 778 784 786 792 794 800 802 808 810 816 818
824 826 832 834 840 842 848 850 856 858 864 866 872 874
880 882 888 890 896 898 904 906
.RRDLM 658 666 674 682 690 698 706 714 722 730 738 746 754 762
770 778 786 794 802 810 818 826 834 842 850 858 866 874
882 890 898 906 1186
.RRPCT 596 941 969 994 1045 1219 1246 1286 1328 1341 1527 1543 1562 1584
1608 1630 1639 1667 1790
.RS0A 578 580 582 584 586 590 592 594 598 656 664 672 680 688
696 704 712 720 728 736 744 752 760 768 776 784 792 800
808 816 824 832 840 848 856 864 872 880 888 896 904 923
925 927 929 931 935 937 939 943 948 975 977 979 981 983
988 990 992 996 1026 1028 1030 1032 1034 1039 1041 1043 1047 1052
1054 1056 1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080
1082 1084 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 1142
1144 1146 1148 1150 1201 1203 1207 1211 1215 1224 1226 1228 1230 1232
1234 1236 1238 1240 1242 1244 1252 1254 1267 1269 1271 1273 1275 1280
1282 1284 1288 1297 1487 1499 1501 1503 1505 1507 1510 1512 1514 1516
1525 1539 1564 1622 1647 1669
.RS0B 967 969 971 1003 1302 1306 1337 1339 1341 1343 1351 1541 1584 1608
1612 1614 1624 1628 1630 1639 1643 1645 1657 1665 1667 1770 1772 1774
1776 1778 1780 1782 1784 1786 1788 1790 1792 1800
.RSAB 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1001 1009 1011 1086 1088 1090 1092 1094 1096
1098 1100 1102 1104 1106 1108 1110 1112 1114 1116 1152 1154 1156 1158
1160 1162 1164 1166 1168 1170 1172 1174 1176 1178 1180 1182 1188 1324
1580 1610 1641 1661
.RSAQ 1118 1184
.RSD0 576 603 605 607 609 611 613 615 617 619 621 623 625 627
629 631 633 635 637 639 641 643 645 647 649 658 662 666
670 674 678 682 686 690 694 698 702 706 710 714 718 722
726 730 734 738 742 746 750 754 758 762 766 770 774 778
782 786 790 794 798 802 806 810 814 818 822 826 830 834
838 842 846 850 854 858 862 866 870 874 878 882 886 890
894 898 902 906 910 921 950 954 973 1005 1007 1013 1024 1186 SEQ 0562
1190 1205 1209 1213 1217 1250 1256 1265 1322 1326 1485 1497 1578 1582
1604 1606 1637 1655 1663
.RSELC 1525 1541 1547 1560 1576 1588
.RSELE 1343 1345 1349 1351 1485 1614 1616 1622 1624 1647 1649 1655 1792 1794
1798 1800
.RSELF 948 1293 1295 1297 1306 1308 1310 1312 1314 1316 1318 1320 1539
.RSELM 950 1003 1007 1322 1523 1558 1578
.RSELP 1005
.RSKCN 662 670 678 686 694 702 710 718 726 734 742 750 758 766
774 782 790 798 806 814 822 830 838 846 854 862 870 878
886 894 902 910 954 1013 1190 1205 1209 1213 1217 1250 1256 1326
1582 1606 1637 1663
.RSMIN 1324
.RTIM 1661
.RXNOR 580 586 594 925 931 939 977 983 992 1028 1034 1043 1226 1269
1275 1284 1501 1507 1516
.RXOR 660 668 676 684 692 700 708 716 724 732 740 748 756 764
772 780 788 796 804 812 820 828 836 844 852 860 868 876
884 892 900 908 952 1011 1188 1580 1661
CALC 565 567 576 578 580 582 584 586 588 590 592 594 596 598
603 605 607 609 611 613 615 617 619 621 623 625 627 629 SEQ 0563
631 633 635 637 639 641 643 645 647 649 651 656 658 660
662 664 666 668 670 672 674 676 678 680 682 684 686 688
690 692 694 696 698 700 702 704 706 708 710 712 714 716
718 720 722 724 726 728 730 732 734 736 738 740 742 744
746 748 750 752 754 756 758 760 762 764 766 768 770 772
774 776 778 780 782 784 786 788 790 792 794 796 798 800
802 804 806 808 810 812 814 816 818 820 822 824 826 828
830 832 834 836 838 840 842 844 846 848 850 852 854 856
858 860 862 864 866 868 870 872 874 876 878 880 882 884
886 888 890 892 894 896 898 900 902 904 906 908 910 912
921 923 925 927 929 931 933 935 937 939 941 943 948 950
952 954 956 965 967 969 971 973 975 977 979 981 983 986
988 990 992 994 996 1001 1003 1005 1007 1009 1011 1013 1015 1024
1026 1028 1030 1032 1034 1037 1039 1041 1043 1045 1047 1052 1054 1056
1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084
1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112
1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140
1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168
1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1201 1203
1205 1207 1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234
1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269
1271 1273 1275 1278 1280 1282 1284 1286 1288 1293 1295 1297 1302 1304
1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1337
1339 1341 1343 1345 1347 1349 1351 1353 1479 1481 1483 1485 1487 1497
1499 1501 1503 1505 1507 1510 1512 1514 1516 1518 1523 1525 1527 1529
1531 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1558 1560
1562 1564 1566 1568 1570 1572 1574 1576 1578 1580 1582 1584 1586 1588
1590 1592 1594 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624
1626 1628 1630 1632 1637 1639 1641 1643 1645 1647 1649 1651 1653 1655
1657 1659 1661 1663 1665 1667 1669 1676 1678 1680 1682 1684 1686 1688
1690 1692 1694 1696 1698 1700 1702 1704 1711 1713 1715 1717 1719 1721
1723 1725 1727 1729 1731 1733 1735 1737 1739 1741 1743 1745 1747 1749
1751 1753 1755 1757 1759 1761 1763 1770 1772 1774 1776 1778 1780 1782
1784 1786 1788 1790 1792 1794 1796 1798 1800 1802
CONCAT 565 567 576 578 580 582 584 586 588 590 592 594 596 598
603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649 651 656 658 660
662 664 666 668 670 672 674 676 678 680 682 684 686 688
690 692 694 696 698 700 702 704 706 708 710 712 714 716
718 720 722 724 726 728 730 732 734 736 738 740 742 744
746 748 750 752 754 756 758 760 762 764 766 768 770 772
774 776 778 780 782 784 786 788 790 792 794 796 798 800
802 804 806 808 810 812 814 816 818 820 822 824 826 828
830 832 834 836 838 840 842 844 846 848 850 852 854 856
858 860 862 864 866 868 870 872 874 876 878 880 882 884
886 888 890 892 894 896 898 900 902 904 906 908 910 912
921 923 925 927 929 931 933 935 937 939 941 943 948 950
952 954 956 965 967 969 971 973 975 977 979 981 983 986
988 990 992 994 996 1001 1003 1005 1007 1009 1011 1013 1015 1024
1026 1028 1030 1032 1034 1037 1039 1041 1043 1045 1047 1052 1054 1056
1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084
1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112
1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140 SEQ 0564
1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168
1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1201 1203
1205 1207 1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234
1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269
1271 1273 1275 1278 1280 1282 1284 1286 1288 1293 1295 1297 1302 1304
1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1337
1339 1341 1343 1345 1347 1349 1351 1353 1479 1481 1483 1485 1487 1497
1499 1501 1503 1505 1507 1510 1512 1514 1516 1518 1523 1525 1527 1529
1531 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1558 1560
1562 1564 1566 1568 1570 1572 1574 1576 1578 1580 1582 1584 1586 1588
1590 1592 1594 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624
1626 1628 1630 1632 1637 1639 1641 1643 1645 1647 1649 1651 1653 1655
1657 1659 1661 1663 1665 1667 1669 1676 1678 1680 1682 1684 1686 1688
1690 1692 1694 1696 1698 1700 1702 1704 1711 1713 1715 1717 1719 1721
1723 1725 1727 1729 1731 1733 1735 1737 1739 1741 1743 1745 1747 1749
1751 1753 1755 1757 1759 1761 1763 1770 1772 1774 1776 1778 1780 1782
1784 1786 1788 1790 1792 1794 1796 1798 1800 1802
DELAY 1823
FIELD 565 567 576 578 580 582 584 586 588 590 592 594 596 598
603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649 651 656 658 660
662 664 666 668 670 672 674 676 678 680 682 684 686 688
690 692 694 696 698 700 702 704 706 708 710 712 714 716
718 720 722 724 726 728 730 732 734 736 738 740 742 744
746 748 750 752 754 756 758 760 762 764 766 768 770 772
774 776 778 780 782 784 786 788 790 792 794 796 798 800
802 804 806 808 810 812 814 816 818 820 822 824 826 828
830 832 834 836 838 840 842 844 846 848 850 852 854 856
858 860 862 864 866 868 870 872 874 876 878 880 882 884
886 888 890 892 894 896 898 900 902 904 906 908 910 912
921 923 925 927 929 931 933 935 937 939 941 943 948 950
952 954 956 965 967 969 971 973 975 977 979 981 983 986
988 990 992 994 996 1001 1003 1005 1007 1009 1011 1013 1015 1024
1026 1028 1030 1032 1034 1037 1039 1041 1043 1045 1047 1052 1054 1056
1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084
1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112
1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140
1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168
1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1201 1203
1205 1207 1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234
1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269
1271 1273 1275 1278 1280 1282 1284 1286 1288 1293 1295 1297 1302 1304
1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1337
1339 1341 1343 1345 1347 1349 1351 1353 1479 1481 1483 1485 1487 1497
1499 1501 1503 1505 1507 1510 1512 1514 1516 1518 1523 1525 1527 1529
1531 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1558 1560
1562 1564 1566 1568 1570 1572 1574 1576 1578 1580 1582 1584 1586 1588
1590 1592 1594 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624
1626 1628 1630 1632 1637 1639 1641 1643 1645 1647 1649 1651 1653 1655
1657 1659 1661 1663 1665 1667 1669 1676 1678 1680 1682 1684 1686 1688
1690 1692 1694 1696 1698 1700 1702 1704 1711 1713 1715 1717 1719 1721
1723 1725 1727 1729 1731 1733 1735 1737 1739 1741 1743 1745 1747 1749
1751 1753 1755 1757 1759 1761 1763 1770 1772 1774 1776 1778 1780 1782 SEQ 0565
1784 1786 1788 1790 1792 1794 1796 1798 1800 1802
GET 289 1851 1853 1866 1900 1902
GO 61 75 77 78 94 95 128 130 132 133 158 161 175 176
269 275 520 522 527 529 548 1398 1404 1406 1411 1421 1425 1431
1433 1452 1824 1837 1838 1847 1848 1860 1863 1865
MFLD 565# 565 567# 567 576# 576 578# 578 580# 580 582# 582 584# 584
586# 586 588# 588 590# 590 592# 592 594# 594 596# 596 598# 598
603# 603 605# 605 607# 607 609# 609 611# 611 613# 613 615# 615
617# 617 619# 619 621# 621 623# 623 625# 625 627# 627 629# 629
631# 631 633# 633 635# 635 637# 637 639# 639 641# 641 643# 643
645# 645 647# 647 649# 649 651# 651 656# 656 658# 658 660# 660
662# 662 664# 664 666# 666 668# 668 670# 670 672# 672 674# 674
676# 676 678# 678 680# 680 682# 682 684# 684 686# 686 688# 688
690# 690 692# 692 694# 694 696# 696 698# 698 700# 700 702# 702
704# 704 706# 706 708# 708 710# 710 712# 712 714# 714 716# 716
718# 718 720# 720 722# 722 724# 724 726# 726 728# 728 730# 730
732# 732 734# 734 736# 736 738# 738 740# 740 742# 742 744# 744
746# 746 748# 748 750# 750 752# 752 754# 754 756# 756 758# 758
760# 760 762# 762 764# 764 766# 766 768# 768 770# 770 772# 772
774# 774 776# 776 778# 778 780# 780 782# 782 784# 784 786# 786
788# 788 790# 790 792# 792 794# 794 796# 796 798# 798 800# 800
802# 802 804# 804 806# 806 808# 808 810# 810 812# 812 814# 814
816# 816 818# 818 820# 820 822# 822 824# 824 826# 826 828# 828
830# 830 832# 832 834# 834 836# 836 838# 838 840# 840 842# 842
844# 844 846# 846 848# 848 850# 850 852# 852 854# 854 856# 856
858# 858 860# 860 862# 862 864# 864 866# 866 868# 868 870# 870
872# 872 874# 874 876# 876 878# 878 880# 880 882# 882 884# 884
886# 886 888# 888 890# 890 892# 892 894# 894 896# 896 898# 898
900# 900 902# 902 904# 904 906# 906 908# 908 910# 910 912# 912
921# 921 923# 923 925# 925 927# 927 929# 929 931# 931 933# 933
935# 935 937# 937 939# 939 941# 941 943# 943 948# 948 950# 950
952# 952 954# 954 956# 956 965# 965 967# 967 969# 969 971# 971
973# 973 975# 975 977# 977 979# 979 981# 981 983# 983 986# 986
988# 988 990# 990 992# 992 994# 994 996# 996 1001# 1001 1003# 1003
1005# 1005 1007# 1007 1009# 1009 1011# 1011 1013# 1013 1015# 1015 1024# 1024
1026# 1026 1028# 1028 1030# 1030 1032# 1032 1034# 1034 1037# 1037 1039# 1039
1041# 1041 1043# 1043 1045# 1045 1047# 1047 1052# 1052 1054# 1054 1056# 1056
1058# 1058 1060# 1060 1062# 1062 1064# 1064 1066# 1066 1068# 1068 1070# 1070
1072# 1072 1074# 1074 1076# 1076 1078# 1078 1080# 1080 1082# 1082 1084# 1084
1086# 1086 1088# 1088 1090# 1090 1092# 1092 1094# 1094 1096# 1096 1098# 1098
1100# 1100 1102# 1102 1104# 1104 1106# 1106 1108# 1108 1110# 1110 1112# 1112
1114# 1114 1116# 1116 1118# 1118 1120# 1120 1122# 1122 1124# 1124 1126# 1126
1128# 1128 1130# 1130 1132# 1132 1134# 1134 1136# 1136 1138# 1138 1140# 1140
1142# 1142 1144# 1144 1146# 1146 1148# 1148 1150# 1150 1152# 1152 1154# 1154
1156# 1156 1158# 1158 1160# 1160 1162# 1162 1164# 1164 1166# 1166 1168# 1168
1170# 1170 1172# 1172 1174# 1174 1176# 1176 1178# 1178 1180# 1180 1182# 1182
1184# 1184 1186# 1186 1188# 1188 1190# 1190 1192# 1192 1201# 1201 1203# 1203
1205# 1205 1207# 1207 1209# 1209 1211# 1211 1213# 1213 1215# 1215 1217# 1217
1219# 1219 1224# 1224 1226# 1226 1228# 1228 1230# 1230 1232# 1232 1234# 1234
1236# 1236 1238# 1238 1240# 1240 1242# 1242 1244# 1244 1246# 1246 1248# 1248
1250# 1250 1252# 1252 1254# 1254 1256# 1256 1265# 1265 1267# 1267 1269# 1269
1271# 1271 1273# 1273 1275# 1275 1278# 1278 1280# 1280 1282# 1282 1284# 1284
1286# 1286 1288# 1288 1293# 1293 1295# 1295 1297# 1297 1302# 1302 1304# 1304 SEQ 0566
1306# 1306 1308# 1308 1310# 1310 1312# 1312 1314# 1314 1316# 1316 1318# 1318
1320# 1320 1322# 1322 1324# 1324 1326# 1326 1328# 1328 1330# 1330 1337# 1337
1339# 1339 1341# 1341 1343# 1343 1345# 1345 1347# 1347 1349# 1349 1351# 1351
1353# 1353 1479# 1479 1481# 1481 1483# 1483 1485# 1485 1487# 1487 1497# 1497
1499# 1499 1501# 1501 1503# 1503 1505# 1505 1507# 1507 1510# 1510 1512# 1512
1514# 1514 1516# 1516 1518# 1518 1523# 1523 1525# 1525 1527# 1527 1529# 1529
1531# 1531 1533# 1533 1535# 1535 1537# 1537 1539# 1539 1541# 1541 1543# 1543
1545# 1545 1547# 1547 1549# 1549 1551# 1551 1553# 1553 1558# 1558 1560# 1560
1562# 1562 1564# 1564 1566# 1566 1568# 1568 1570# 1570 1572# 1572 1574# 1574
1576# 1576 1578# 1578 1580# 1580 1582# 1582 1584# 1584 1586# 1586 1588# 1588
1590# 1590 1592# 1592 1594# 1594 1604# 1604 1606# 1606 1608# 1608 1610# 1610
1612# 1612 1614# 1614 1616# 1616 1618# 1618 1620# 1620 1622# 1622 1624# 1624
1626# 1626 1628# 1628 1630# 1630 1632# 1632 1637# 1637 1639# 1639 1641# 1641
1643# 1643 1645# 1645 1647# 1647 1649# 1649 1651# 1651 1653# 1653 1655# 1655
1657# 1657 1659# 1659 1661# 1661 1663# 1663 1665# 1665 1667# 1667 1669# 1669
1676# 1676 1678# 1678 1680# 1680 1682# 1682 1684# 1684 1686# 1686 1688# 1688
1690# 1690 1692# 1692 1694# 1694 1696# 1696 1698# 1698 1700# 1700 1702# 1702
1704# 1704 1711# 1711 1713# 1713 1715# 1715 1717# 1717 1719# 1719 1721# 1721
1723# 1723 1725# 1725 1727# 1727 1729# 1729 1731# 1731 1733# 1733 1735# 1735
1737# 1737 1739# 1739 1741# 1741 1743# 1743 1745# 1745 1747# 1747 1749# 1749
1751# 1751 1753# 1753 1755# 1755 1757# 1757 1759# 1759 1761# 1761 1763# 1763
1770# 1770 1772# 1772 1774# 1774 1776# 1776 1778# 1778 1780# 1780 1782# 1782
1784# 1784 1786# 1786 1788# 1788 1790# 1790 1792# 1792 1794# 1794 1796# 1796
1798# 1798 1800# 1800 1802# 1802
MWORD 565 567 576 578 580 582 584 586 588 590 592 594 596 598
603 605 607 609 611 613 615 617 619 621 623 625 627 629
631 633 635 637 639 641 643 645 647 649 651 656 658 660
662 664 666 668 670 672 674 676 678 680 682 684 686 688
690 692 694 696 698 700 702 704 706 708 710 712 714 716
718 720 722 724 726 728 730 732 734 736 738 740 742 744
746 748 750 752 754 756 758 760 762 764 766 768 770 772
774 776 778 780 782 784 786 788 790 792 794 796 798 800
802 804 806 808 810 812 814 816 818 820 822 824 826 828
830 832 834 836 838 840 842 844 846 848 850 852 854 856
858 860 862 864 866 868 870 872 874 876 878 880 882 884
886 888 890 892 894 896 898 900 902 904 906 908 910 912
921 923 925 927 929 931 933 935 937 939 941 943 948 950
952 954 956 965 967 969 971 973 975 977 979 981 983 986
988 990 992 994 996 1001 1003 1005 1007 1009 1011 1013 1015 1024
1026 1028 1030 1032 1034 1037 1039 1041 1043 1045 1047 1052 1054 1056
1058 1060 1062 1064 1066 1068 1070 1072 1074 1076 1078 1080 1082 1084
1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 1108 1110 1112
1114 1116 1118 1120 1122 1124 1126 1128 1130 1132 1134 1136 1138 1140
1142 1144 1146 1148 1150 1152 1154 1156 1158 1160 1162 1164 1166 1168
1170 1172 1174 1176 1178 1180 1182 1184 1186 1188 1190 1192 1201 1203
1205 1207 1209 1211 1213 1215 1217 1219 1224 1226 1228 1230 1232 1234
1236 1238 1240 1242 1244 1246 1248 1250 1252 1254 1256 1265 1267 1269
1271 1273 1275 1278 1280 1282 1284 1286 1288 1293 1295 1297 1302 1304
1306 1308 1310 1312 1314 1316 1318 1320 1322 1324 1326 1328 1330 1337
1339 1341 1343 1345 1347 1349 1351 1353 1479 1481 1483 1485 1487 1497
1499 1501 1503 1505 1507 1510 1512 1514 1516 1518 1523 1525 1527 1529
1531 1533 1535 1537 1539 1541 1543 1545 1547 1549 1551 1553 1558 1560
1562 1564 1566 1568 1570 1572 1574 1576 1578 1580 1582 1584 1586 1588 SEQ 0567
1590 1592 1594 1604 1606 1608 1610 1612 1614 1616 1618 1620 1622 1624
1626 1628 1630 1632 1637 1639 1641 1643 1645 1647 1649 1651 1653 1655
1657 1659 1661 1663 1665 1667 1669 1676 1678 1680 1682 1684 1686 1688
1690 1692 1694 1696 1698 1700 1702 1704 1711 1713 1715 1717 1719 1721
1723 1725 1727 1729 1731 1733 1735 1737 1739 1741 1743 1745 1747 1749
1751 1753 1755 1757 1759 1761 1763 1770 1772 1774 1776 1778 1780 1782
1784 1786 1788 1790 1792 1794 1796 1798 1800 1802
PNT4 258 1888
PNT6 288
PNTHW 218 224 239 245 1881
PNTMSG 206 209 214 216 220 222 235 237 241 243 255 261 263 265
267 271 273 551 552 553 554 555 556 557 1455 1456 1457 1458
1459 1460 1461 1462 1463 1879 1884 1885 1886 1893
PNTOCS 208 280 282 284 286 1895
PUT 277 1816 1818 1859 1877 1879
RGET 1851 1900
RPUT 1816 1877
RTN 194 210 225 246 290 523 539 549 1402 1407 1443 1453 1853 1867
1902
SCOPER 85 102 137 181 533 1437
TMSG 209 261 263
TMSGC 206 214 216 220 222 235 237 241 243 255 265 267 271 273
551 552 553 554 555 556 557 1455 1456 1457 1458 1459 1460 1461
1462 1463 1879 1884 1885 1886 1893
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 1
DFNIA3 MAC 30-Nov-83 16:40 Test Module DFNIA3.MAC SEQ 0568
1 SUBTTL Test Module DFNIA3.MAC
2
3 SALL
4
5 SEARCH DFNIA,MONSYM
6
7 ; Tests 4-27
8
9 ENTRY TST4,TST5,TST6,TST7,TST10,TST11,TST12,TST13,TST14
10 ENTRY TST15,TST16,TST17,TST20,TST21,TST22,TST23,TST24
11 ENTRY TST25,TST26,TST27,PDUMP
12 INTERN CRCSAV,CRCOFF,CRCTAB
13
14 ; EXTERN's located in DFNIA1.MAC
15
16 EXTERN MVPNT,TFLOAD,TSLOAD,RDADDR,TIDLE,TPCB,SETENA,SETDSA,PCB,BUFF
17 EXTERN UDEBUG,CSRPNT,TRACE,TSTSUB,TSTREP,TAMC,TH4000,TPRMSC,TRETRY
18 EXTERN TDEST,TRSFLG,TFMFLG,TBSDFL,TPDFLG,TBYTE,TWORD,TPAT,TREGN,TREGD
19 EXTERN TPTTVL,CONPNT,CONTBL,CNTPNT,MTABLE,PTABLE,MCAT17,RSPQUE
20 EXTERN CHKRSP,RWAIT,BPACK,BPACKN,INSQUE,PACKET,RSPONS
21 EXTERN CHKINT,NUMENT,ALTF,TXADDL,CONVIR,PPCB,PQUEUE,DDUMP,DDEBUG
22 EXTERN PTTFQ,SADDR
23 EXTERN STASNT,STARCV,.RREXP,CHKRQV,RQAFLG,GETQUE,NEWENT,PUTQUE
24
25 ; EXTERN's located in DFNIAI.MAC (Port Handling Routines)
26
27 EXTERN LDCSR,RDCSR,IPACLR,RUNTME,DEBTIM,ISTOP,LCHAR,PSTAMP,RDLAR
28 EXTERN LDRAR,CHINIT
29
30 ; EXTERN's located in DFNIAU.MAC (Utility Routines)
31
32 EXTERN BUFGEN,PTIME
33
34 ;#********************************************************************
35 ; Z3 - Address for use in DDT
36 ;#********************************************************************
37
38 000000' Z3: ; address of 00000'
39
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 2
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0569
40 SUBTTL Microcode Functional Tests
41
42 ;#********************************************************************
43 ;* TEST 4 - Idle Loop Test
44 ;
45 ; Description: This test loads the operational microcode and
46 ; verifies that the port is working well enough to
47 ; enter the idle loop. Also, the ability of the
48 ; microcode to change from 'disable' state to
49 ; 'enable' state and back is checked.
50 ;
51 ; Procedure: KL> Load microcode
52 ; KL> Port Clear
53 ;
54 ; KL> Start port
55 ; KL> Verify that the port entered the IDLE loop
56 ; If failed - print error message and exit test
57 ;
58 ; KL> Write 'Disable' bit in CSR
59 ; KL> Verify that 'Disable Complete' is set by the port
60 ; If failed - print error message and exit test
61 ;
62 ; KL> Write 'Enable' bit in CSR
63 ; KL> Verify that 'Enable Complete' is set by the port
64 ; If failed - print error message and exit test
65 ;
66 ; FRU: PORT Modules
67 ;#********************************************************************
68
69 ; Initialization
70
71 000000' 201 00 0 00 000000' TST4: MOVEI Z3 ; get address of module start
72 000001' 260 17 0 00 000000* GO TRACE ; handle trace output
73 000002' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
74 000003' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
75 000004' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
76 000005' 260 17 0 00 000000* GO IPACLR ; do a 'port clear'
77 000006' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
78 000007' 260 17 0 00 000000* GO TFLOAD ; load operational microcode
79 GO [MOVEM TERMES ; error - save error message
80 SETO ERFLG,
81 000010' 260 17 0 00 006552' RTN]
82
83 ; Handle error printouts
84
85 000011' 350 00 0 00 000000* AOS TSTSUB ; initialize subtest number
86 000012' 027 00 0 00 000061' SCOPER MA4 ; print error message
87 000013' 255 00 0 00 000000 JFCL ; loop on error
88 000014' 254 00 0 00 000056' JRST TX4 ; altmode exit
89 000015' 326 15 0 00 000056' JUMPN ERFLG,TX4 ; error exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 3
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0570
90
91 ; Start up the port
92
93 000016' 260 17 0 00 000000* GO TPCB ; initialize the PCB
94 000017' 260 17 0 00 000000* GO TIDLE ; start the port
95 000020' 474 15 0 00 000000 SETO ERFLG, ; failed - set flag
96
97 ; Handle error printouts
98
99 000021' 350 00 0 00 000011* AOS TSTSUB ; initialize subtest number
100 000022' 027 00 0 00 000063' SCOPER MB4 ; print error message
101 000023' 255 00 0 00 000000 JFCL ; loop on error
102 000024' 254 00 0 00 000056' JRST TX4 ; altmode exit
103 000025' 326 15 0 00 000056' JUMPN ERFLG,TX4 ; error exit
104
105 ; Set 'DISABLE' bit in CSR
106
107 000026' 201 01 0 00 000050 MOVEI 1,MPRUN!PDSABL ; get bits to write
108 000027' 260 17 0 00 000000* GO LDCSR ; write CSR
109 000030' 005 00 0 00 000024 DELAY ^D20 ; wait 20 milliseconds
110 000031' 260 17 0 00 000000* GO RDCSR ; read CSR
111 000032' 255 00 0 00 000000 JFCL ; ignore error
112 000033' 607 01 0 00 000040 TLNN 1,(DCOMP) ; 'Disable Complete' bit set?
113 000034' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
114
115 ; Handle error printouts
116
117 000035' 350 00 0 00 000021* AOS TSTSUB ; initialize subtest number
118 000036' 027 00 0 00 000067' SCOPER MC4 ; print error message
119 000037' 255 00 0 00 000000 JFCL ; loop on error
120 000040' 254 00 0 00 000056' JRST TX4 ; altmode exit
121 000041' 326 15 0 00 000056' JUMPN ERFLG,TX4 ; error exit
122
123 ; Set 'ENABLE' bit in CSR
124
125 000042' 201 01 0 00 000030 MOVEI 1,MPRUN!PENABL ; get bits to write
126 000043' 260 17 0 00 000027* GO LDCSR ; write CSR
127 000044' 005 00 0 00 000024 DELAY ^D20 ; wait 20 milliseconds
128 000045' 260 17 0 00 000031* GO RDCSR ; read CSR
129 000046' 255 00 0 00 000000 JFCL ; ignore error
130 000047' 607 01 0 00 000020 TLNN 1,(ECOMP) ; 'Enable Complete' bit set?
131 000050' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
132
133 ; Handle error printouts
134
135 000051' 350 00 0 00 000035* AOS TSTSUB ; initialize subtest number
136 000052' 027 00 0 00 000073' SCOPER MD4 ; print error message
137 000053' 255 00 0 00 000000 JFCL ; loop on error
138 000054' 254 00 0 00 000056' JRST TX4 ; altmode exit
139 000055' 326 15 0 00 000056' JUMPN ERFLG,TX4 ; error exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 4
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0571
140
141 ; End of test
142
143 000056' 260 17 0 00 000000* TX4: GO SETDSA ; disable the port
144 000057' 260 17 0 00 000000* GO ISTOP ; stop the port
145 000060' 263 17 0 00 000000 RTN ; return
146
147 ; Error messages
148
149 000061' 260000 006324' MA4: TXALL!CALL!LODERR
150 000062' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
151
152 000063' 160000 006561' MB4: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
153 000064' 240000 000077' TXNOT!CALL!MA4PN
154 000065' 260000 006276' TXALL!CALL!PDUMP
155 000066' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
156
157 000067' 160000 006567' MC4: TXALL!MSG![ASCIZ /Port did not set 'Disable Complete' in CSR/]
158 000070' 240000 000077' TXNOT!CALL!MA4PN
159 000071' 260000 006276' TXALL!CALL!PDUMP
160 000072' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
161
162 000073' 160000 006600' MD4: TXALL!MSG![ASCIZ /Port did not set 'Enable Complete' in CSR/]
163 000074' 240000 000077' TXNOT!CALL!MA4PN
164 000075' 260000 006276' TXALL!CALL!PDUMP
165 000076' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
166
167 000077' 260 17 0 00 000045* MA4PN: GO RDCSR ; read CSR
168 000100' 255 00 0 00 000000 JFCL ; ignore error
169 000101' 201 02 0 00 000023 MOVEI 2,^D19 ; character count so far
170 000102' 201 03 0 00 000023 MOVEI 3,^D19 ; continuation line column number
171 000103' 260 17 0 00 000000* GO CSRPNT ; go print in English
172 000104' 263 17 0 00 000000 RTN ; done - return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 5
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0572
173
174 ;#********************************************************************
175 ;* TEST 5 - Queue Handling Test
176 ;
177 ; Description: This test verifies that the operational microcode
178 ; handles queues properly, removing entries in
179 ; proper order from the command queue and putting
180 ; entries in proper sequence on the response queue
181 ; and removing entries from the free queue and
182 ; adding entries to the free queue properly.
183 ;
184 ; Procedure: KL> Load microcode
185 ; KL> Port Clear
186 ; KL> Initialize PCB
187 ; KL> Insert 6 packets on the command queue
188 ; KL> Start port
189 ; KL> Remove entries from the response queue and
190 ; verify that the responses are received in
191 ; the proper order
192 ; KL> Continue until all of the responses have
193 ; been processed
194 ; If failed - print error message and exit test
195 ;
196 ; FRU: Operational microcode
197 ;#********************************************************************
198
199 ; Initialization
200
201 000105' 201 00 0 00 000000' TST5: MOVEI Z3 ; get address of module start
202 000106' 260 17 0 00 000001* GO TRACE ; handle trace output
203 000107' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
204 000110' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
205 000111' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
206 000112' 260 17 0 00 000005* GO IPACLR ; do a 'port clear'
207 000113' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
208 000114' 260 17 0 00 000007* GO TFLOAD ; load operational microcode
209 GO [MOVEM TERMES ; error - save error message
210 SETO ERFLG,
211 000115' 260 17 0 00 006552' RTN]
212 000116' 027 00 0 00 000241' SCOPER MA5 ; print error message
213 000117' 255 00 0 00 000000 JFCL ; loop on error
214 000120' 254 00 0 00 000236' JRST TX5 ; altmode exit
215 000121' 326 15 0 00 000236' JUMPN ERFLG,TX5 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 6
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0573
216
217 ; Start port
218
219 000122' 350 00 0 00 000051* AOS TSTSUB ; initialize subtest number
220 000123' 260 17 0 00 000017* GO TIDLE ; start port
221 000124' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
222 000125' 027 00 0 00 000243' SCOPER MB5 ; print error message
223 000126' 255 00 0 00 000000 JFCL ; loop on error
224 000127' 254 00 0 00 000236' JRST TX5 ; altmode exit
225 000130' 326 15 0 00 000236' JUMPN ERFLG,TX5 ; error yet? yes - abort test
226
227 ; Insert packets
228
229 000131' 201 11 0 00 000006 MOVEI OP,WRPLI ; get op code to write PLI data
230 000132' 476 00 0 00 000000* SETOM TRSFLG ; set 'response requested' flag
231 000133' 402 00 0 00 000000* SETZM TBSDFL ; set to non-BSD style datagram
232 000134' 402 00 0 00 000000* SETZM TPDFLG ; clear pad flag
233 000135' 201 00 0 00 000001 MOVEI 1 ; get a 1
234 000136' 202 00 0 00 000000* MOVEM TREGN ; save as register to write
235 000137' 202 00 0 00 000000* MOVEM TREGD ; save as data to write
236 000140' 260 17 0 00 000000* GO BPACK ; build a packet
237 000141' 400 01 0 00 000000 SETZ 1, ; clear packet number
238 000142' 350 00 0 00 000001 TA5: AOS 1 ; increment packet number
239 000143' 137 01 0 00 006611' DPB 1,[POINT 4,PACKET+4,35] ; save it as data to write
240 000144' 260 17 0 00 000000* GO INSQUE ; insert in queue
241 000145' 255 00 0 00 000000 JFCL ; error - ignore
242 000146' 255 00 0 00 000000 JFCL ; error - ignore
243 000147' 305 01 0 00 000006 CAIGE 1,6 ; done yet?
244 000150' 254 00 0 00 000142' JRST TA5 ; no - loop till done
245
246 ; Initialize received packet data
247
248 000151' 476 00 0 00 000310' SETOM T5ORD ; initialize results data
249 000152' 200 00 0 00 006612' MOVE [T5ORD,,T5ORD+1] ; ...
250 000153' 251 00 0 00 000324' BLT T5LIS+5 ; ...
251 000154' 476 00 0 00 000307' SETOM T5PNT ; initialize next location pointer
252 000155' 260 17 0 00 000000* GO SETENA ; set enabled state
253 000156' 255 00 0 00 000000 JFCL ; ignore error
254 000157' 201 01 0 00 000430 MOVEI 1,CMDQAV!PENABL!MPRUN ; get run/enable bits
255 000160' 260 17 0 00 000043* GO LDCSR ; get the port going
256
257 ; Set up wait time and check for a response available
258
259 000161' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
260 000162' 260 17 0 00 000000* GO RUNTME ; get current run time
261 000163' 200 01 0 00 000000* MOVE 1,DEBTIM ; get time in milliseconds
262 000164' 271 01 0 00 000144 ADDI 1,^D100 ; point to maximum time
263 000165' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save it
264 000166' 260 17 0 00 000000* TB5: GO RWAIT ; wait for response
265 000167' 255 00 0 00 000000 JFCL ; ignore error
266 000170' 260 17 0 00 000000* TC5: GO CHKRSP ; check for response entry
267 000171' 254 00 0 00 000207' JRST TD5 ; no responses - determine test results
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 7
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0574
268
269 ; Got an entry - update test data
270
271 000172' 135 00 0 00 006613' LDB [POINT 8,RSPONS+3,23] ; get op code
272 000173' 302 00 0 00 000006 CAIE WRPLI ; is this one of the packets we sent?
273 000174' 254 00 0 00 000170' JRST TC5 ; no - get next entry
274 000175' 135 01 0 00 006614' LDB 1,[POINT 4,RSPONS+4,35] ; get packet number
275 000176' 301 01 0 00 000001 CAIL 1,1 ; in range 1-6?
276 000177' 303 01 0 00 000006 CAILE 1,6
277 000200' 254 00 0 00 000170' JRST TC5 ; no - ignore - get next entry
278 000201' 402 00 0 01 000316' SETZM T5LIS-1(1) ; indicate that we received this one
279 000202' 350 02 0 00 000307' AOS 2,T5PNT ; point to next location
280 000203' 301 02 0 00 000006 CAIL 2,6 ; within range?
281 000204' 254 00 0 00 000170' JRST TC5 ; no - ignore - get next entry
282 000205' 202 01 0 02 000310' MOVEM 1,T5ORD(2) ; save packet received
283 000206' 254 00 0 00 000170' JRST TC5 ; get next entry
284
285 ; No more packets found - check if any more expected
286
287 000207' 200 00 0 00 000307' TD5: MOVE T5PNT ; get packet received count
288 000210' 301 00 0 00 000006 CAIL 6 ; have all of them already?
289 000211' 254 00 0 00 000217' JRST TE5 ; yes - continue
290
291 ; More packets expected - check timeout time
292
293 000212' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
294 000213' 260 17 0 00 000162* GO RUNTME ; get current run time
295 000214' 200 00 0 00 000163* MOVE DEBTIM ; get current time
296 000215' 315 00 0 00 010102' CAMGE ENDTIM ; exceeds maximum time?
297 000216' 254 00 0 00 000170' JRST TC5 ; no - check for response again
298
299 ; Done receiving entries - determine if an error has occurred
300
301 000217' 350 00 0 00 000122* TE5: AOS TSTSUB ; initialize subtest number
302 000220' 260 17 0 00 000056* GO SETDSA ; disable the port
303 000221' 260 17 0 00 000112* GO IPACLR ; stop the port
304 000222' 400 01 0 00 000000 SETZ 1, ; initialize packet # expected
305 000223' 350 00 0 00 000001 TF5: AOS 1 ; point to next entry
306 000224' 303 01 0 00 000006 CAILE 1,6 ; done yet?
307 000225' 254 00 0 00 000233' JRST TG5 ; yes - continue
308 000226' 312 01 0 01 000307' CAME 1,T5ORD-1(1) ; same as expected?
309 000227' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
310 000230' 332 00 0 01 000316' SKIPE T5LIS-1(1) ; got one from this
311 000231' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
312 000232' 254 00 0 00 000223' JRST TF5 ; loop till done
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 8
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0575
313
314 ; Handle error printout
315
316 000233' 027 00 0 00 000246' TG5: SCOPER MC5 ; print error message
317 000234' 255 00 0 00 000000 JFCL ; loop on error
318 000235' 254 00 0 00 000236' JRST TX5 ; altmode exit
319
320 ; Exit
321
322 000236' 260 17 0 00 000220* TX5: GO SETDSA ; disable the port
323 000237' 260 17 0 00 000057* GO ISTOP ; stop the port
324 000240' 263 17 0 00 000000 RTN ; exit test
325
326 ; Error messages
327
328 000241' 260000 006324' MA5: TXALL!CALL!LODERR
329 000242' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
330
331 000243' 160000 006561' MB5: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
332 000244' 260000 006276' TXALL!CALL!PDUMP
333 000245' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
334
335 000246' 260000 000251' MC5: TXALL!CALL!MC5PN
336 000247' 260000 006276' TXALL!CALL!PDUMP
337 000250' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
338
339 000251' 037 00 0 00 006615' MC5PN: TMSGC <Command queue entries processed incorrectly or out of order>
340
341 ; Print correct/actual order
342
343 000252' 037 00 0 00 006632' TMSGC <Correct order (Packet #): 1 2 3 4 5 6>
344 000253' 037 00 0 00 006643' TMSGC <Actual order (Packet #): >
345 000254' 201 01 0 00 000307' MOVEI 1,T5ORD-1 ; get address of order list
346 000255' 350 00 0 00 000001 MC5P0: AOS 1 ; point to next entry
347 000256' 200 00 0 01 000000 MOVE (1) ; get entry
348 000257' 316 00 0 00 006651' CAMN [-1] ; end of list?
349 000260' 254 00 0 00 000264' JRST MC5P1 ; yes - continue
350 000261' 037 16 0 00 000003 PNTOCS ; no - print it out
351 000262' 037 00 0 00 000040 PSP
352 000263' 254 00 0 00 000255' JRST MC5P0 ; continue till done
353
354 ; Now look for any missing entries
355
356 000264' 201 01 0 00 000316' MC5P1: MOVEI 1,T5LIS-1 ; get address of packet list
357 000265' 350 00 0 00 000001 AOS 1 ; point to next packet entry
358 000266' 301 01 0 00 000325' CAIL 1,T5LIS+6 ; done yet?
359 000267' 263 17 0 00 000000 RTN ; yes - exit
360 000270' 336 00 0 00 000317' SKIPN T5LIS ; missing this entry
361 000271' 254 00 0 00 000265' JRST MC5P1+1 ; no - loop till done
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 9
DFNIA3 MAC 30-Nov-83 16:40 Microcode Functional Tests SEQ 0576
362
363 ; Print missing entries
364
365 000272' 037 00 0 00 006652' TMSGC <Packets not received:>
366 000273' 400 02 0 00 000000 SETZ 2, ; clear entry count
367 000274' 201 01 0 00 000316' MC5P2: MOVEI 1,T5LIS-1 ; get address of packet list
368 000275' 350 00 0 00 000001 AOS 1 ; point to next packet entry
369 000276' 350 00 0 00 000002 AOS 2 ; point to next packet entry
370 000277' 303 02 0 00 000006 CAILE 2,6 ; done yet?
371 000300' 263 17 0 00 000000 RTN ; yes - continue
372 000301' 336 00 0 00 000317' SKIPN T5LIS ; missing this entry
373 000302' 254 00 0 00 000275' JRST MC5P2+1 ; no - loop till done
374 000303' 037 00 0 00 006657' TMSGC < Packet # >
375 000304' 200 00 0 00 000002 MOVE 2 ; get entry number
376 000305' 037 16 0 00 000003 PNTOCS ; print it
377 000306' 254 00 0 00 000275' JRST MC5P2+1 ; loop till done
378
379 ; Test data
380
381 000307' 000000 000000 T5PNT: 0 ; pointer to next location in T5ORD
382 000310' T5ORD: BLOCK 7 ; order of packets received
383 000317' T5LIS: BLOCK 6 ; packets received
384
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 10
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0577
385 SUBTTL NSA Tests
386
387 ;#********************************************************************
388 ;* TEST 6 - NSA ROM Address Test
389 ;
390 ; Description: This test reads the NI Station Address contained
391 ; in ROM on the NIA module. Then it starts the
392 ; port and reads the address with a RDNSA 'Read NI
393 ; Station Address' command. The port microcode
394 ; should have set the address to the value in the
395 ; ROM.
396 ;
397 ; Procedure: KL> Load microcode
398 ; KL> Port Clear
399 ; KL> Start port
400 ;
401 ; KL> Build a RDNSA packet, insert on command queue,
402 ; and wait for a response
403 ; KL> Verify proper response
404 ; KL> Verify that the address read is the same as
405 ; that originally read from ROM
406 ; If failed - print error message and exit test
407 ;
408 ; FRU: NIA Module
409 ;#********************************************************************
410
411 ; Initialization
412
413 000325' 201 00 0 00 000000' TST6: MOVEI Z3 ; get address of module start
414 000326' 260 17 0 00 000106* GO TRACE ; handle trace output
415 000327' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
416 000330' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
417 000331' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
418
419 ; Load microcode
420
421 000332' 260 17 0 00 000221* GO IPACLR ; do a 'port clear'
422 000333' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
423 000334' 260 17 0 00 000114* GO TFLOAD ; load operational microcode
424 GO [MOVEM TERMES ; error - save error message
425 SETO ERFLG,
426 000335' 260 17 0 00 006552' RTN]
427 000336' 027 00 0 00 000440' SCOPER MA6 ; print error message
428 000337' 255 00 0 00 000000 JFCL ; loop on error
429 000340' 254 00 0 00 000435' JRST TX6 ; altmode exit
430 000341' 326 15 0 00 000435' JUMPN ERFLG,TX6 ; error exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 11
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0578
431
432 ; Start port
433
434 000342' 350 00 0 00 000217* AOS TSTSUB ; initialize subtest number
435 000343' 260 17 0 00 000123* GO TIDLE ; start port
436 000344' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
437 000345' 027 00 0 00 000442' SCOPER MB6 ; print error message
438 000346' 255 00 0 00 000000 JFCL ; loop on error
439 000347' 254 00 0 00 000435' JRST TX6 ; altmode exit
440 000350' 326 15 0 00 000435' JUMPN ERFLG,TX6 ; error yet? yes - abort test
441
442 ; Enable the port
443
444 000351' 350 00 0 00 000342* AOS TSTSUB ; initialize subtest number
445 000352' 260 17 0 00 000155* GO SETENA ; ensure the port is enabled
446 000353' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
447 000354' 027 00 0 00 000445' SCOPER MC6 ; print error message
448 000355' 255 00 0 00 000000 JFCL ; loop on error
449 000356' 254 00 0 00 000435' JRST TX6 ; altmode exit
450 000357' 326 15 0 00 000435' JUMPN ERFLG,TX6 ; error yet? yes - abort test
451
452 ; Send the packet
453
454 000360' 350 00 0 00 000351* AOS TSTSUB ; initialize subtest number
455 000361' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
456 000362' 402 00 0 00 000000* SETZM TFMFLG ; set to COMPAT mode
457 000363' 476 00 0 00 000132* SETOM TRSFLG ; set response requested
458 000364' 402 00 0 00 000134* SETZM TPDFLG ; clear pad flag
459 000365' 402 00 0 00 000133* SETZM TBSDFL ; set to non-BSD style datagram
460 000366' 201 11 0 00 000010 MOVEI OP,RDNSA ; get op code to read station address
461 000367' 260 17 0 00 000140* GO BPACK ; set up packet data
462 000370' 260 17 0 00 000144* GO INSQUE ; insert on command queue
463 000371' 255 00 0 00 000000 JFCL ; error - ignore
464 000372' 255 00 0 00 000000 JFCL ; error - ignore
465 000373' 260 17 0 00 000077* GO RDCSR ; read CSR
466 000374' 255 00 0 00 000000 JFCL ; error - ignore
467 000375' 660 01 0 00 000400 TRO 1,CMDQAV ; set the 'CMDQAV' bit
468 000376' 260 17 0 00 000160* GO LDCSR ; write the CSR register
469
470 ; Wait for a response
471
472 000377' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
473 000400' 260 17 0 00 000213* GO RUNTME ; get current run time
474 000401' 200 01 0 00 000214* MOVE 1,DEBTIM ; get time in milliseconds
475 000402' 271 01 0 00 023420 ADDI 1,^D10000 ; wait an additional 10 seconds
476 000403' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
477 000404' 254 00 0 00 000412' JRST TA6A ; go check for a response
478 000405' 400 03 0 00 000000 TA6: SETZ 3, ; set up for RUNTME
479 000406' 260 17 0 00 000400* GO RUNTME ; get current run time
480 000407' 200 01 0 00 000401* MOVE 1,DEBTIM ; get time in milliseconds
481 000410' 313 01 0 00 010102' CAMLE 1,ENDTIM ; time expired yet?
482 000411' 254 00 0 00 000420' JRST TB6 ; yes - timeout error
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 12
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0579
483
484 ; Check for response
485
486 000412' 260 17 0 00 000170* TA6A: GO CHKRSP ; check for response entry
487 000413' 254 00 0 00 000405' JRST TA6 ; no responses - check wait time
488
489 ; Got a response - now decode it
490
491 000414' 135 02 0 00 006662' LDB 2,[POINT 8,RSPONS+3,23] ; get opcode
492 000415' 302 02 0 00 000010 CAIE 2,NSARD ; NSARD packet?
493 000416' 254 00 0 00 000405' JRST TA6 ; no - check wait time
494 000417' 334 00 0 00 000000 SKIPA ; yes - continue
495
496 ; Timeout error
497
498 000420' 474 15 0 00 000000 TB6: SETO ERFLG, ; set error flag
499 000421' 027 00 0 00 000450' SCOPER MD6 ; print error message
500 000422' 255 00 0 00 000000 JFCL ; loop on error
501 000423' 254 00 0 00 000435' JRST TX6 ; altmode exit
502 000424' 326 15 0 00 000435' JUMPN ERFLG,TX6 ; error yet? yes - abort test
503
504 ; Check to see if address correct
505
506 000425' 350 00 0 00 000360* AOS TSTSUB ; initialize subtest number
507 000426' 120 00 0 00 000000* DMOVE SADDR ; get correct address
508 000427' 316 00 0 00 000000# CAMN RSPONS+4 ; first word correct?
509 000430' 312 01 0 00 000000# CAME 1,RSPONS+5 ; yes - 2nd word correct?
510 000431' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
511 000432' 027 00 0 00 000453' SCOPER ME6 ; print error message
512 000433' 255 00 0 00 000000 JFCL ; loop on error
513 000434' 254 00 0 00 000435' JRST TX6 ; altmode exit
514
515 ; End of test
516
517 000435' 260 17 0 00 000236* TX6: GO SETDSA ; disable the port
518 000436' 260 17 0 00 000237* GO ISTOP ; stop the port
519 000437' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 13
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0580
520
521 ; Error messages
522
523 000440' 260000 006324' MA6: TXALL!CALL!LODERR
524 000441' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
525
526 000442' 160000 006561' MB6: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
527 000443' 260000 006276' TXALL!CALL!PDUMP
528 000444' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
529
530 000445' 160000 006663' MC6: TXALL!MSG![ASCIZ /Could not enable the port/]
531 000446' 260000 006276' TXALL!CALL!PDUMP
532 000447' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
533
534 000450' 160000 006671' MD6: TXALL!MSG![ASCIZ /Response to RDNSA packet not received in 10 seconds/]
535 000451' 260000 006276' TXALL!CALL!PDUMP
536 000452' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
537
538 000453' 160000 006710' ME6: TXALL!MSG![ASCIZ /NSA not read correctly:/]
539 000454' 260000 000456' TXALL!CALL!ME6PN
540 000455' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
541
542 000456' 037 00 0 00 006715' ME6PN: TMSGC <Correct (Bytes 0-5): >
543 000457' 120 01 0 00 000426* DMOVE 1,SADDR
544 000460' 260 17 0 00 000465' GO NSAPNT
545 000461' 037 00 0 00 006722' TMSGC <Actual (Bytes 0-5): >
546 000462' 120 01 0 00 000000# DMOVE 1,RSPONS+4
547 000463' 260 17 0 00 000465' GO NSAPNT
548 000464' 263 17 0 00 000000 RTN
549
550 000465' 135 00 0 00 006727' NSAPNT: LDB [POINT 8,1,31]
551 000466' 037 03 0 00 000000 PNT3
552 000467' 135 00 0 00 006730' LDB [POINT 8,1,23]
553 000470' 037 03 0 00 000000 PNT3
554 000471' 135 00 0 00 006731' LDB [POINT 8,1,15]
555 000472' 037 03 0 00 000000 PNT3
556 000473' 135 00 0 00 006732' LDB [POINT 8,1,7]
557 000474' 037 03 0 00 000000 PNT3
558 000475' 135 00 0 00 006733' LDB [POINT 8,2,31]
559 000476' 037 03 0 00 000000 PNT3
560 000477' 135 00 0 00 006734' LDB [POINT 8,2,23]
561 000500' 037 03 0 00 000000 PNT3
562 000501' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 14
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0581
563
564 ;#********************************************************************
565 ;* TEST 7 - NSA RAM Address Test
566 ;
567 ; Description: This test executes a 'write station address' command
568 ; (WRNSA) and then a 'read station address' command to
569 ; verify that it got changed correctly.
570 ;
571 ; Procedure: KL> Load microcode
572 ; KL> Port Clear
573 ; KL> Start port
574 ;
575 ; KL> Build a WRNSA packet, insert on command queue
576 ; KL> Build a RDNSA packet, insert on command queue
577 ; and wait for a response
578 ; KL> Verify proper response
579 ; KL> Verify that the address read is the same
580 ; as that written with the WRNSA command
581 ; If failed - print error message and exit test
582 ;
583 ; FRU: NIA Module
584 ;#********************************************************************
585
586 ; Initialization
587
588 000502' 201 00 0 00 000000' TST7: MOVEI Z3 ; get address of module start
589 000503' 260 17 0 00 000326* GO TRACE ; handle trace output
590 000504' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
591 000505' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
592 000506' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
593
594 ; Load microcode
595
596 000507' 260 17 0 00 000332* GO IPACLR ; do a 'port clear'
597 000510' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
598 000511' 260 17 0 00 000334* GO TFLOAD ; load operational microcode
599 GO [MOVEM TERMES ; error - save error message
600 SETO ERFLG,
601 000512' 260 17 0 00 006552' RTN]
602 000513' 027 00 0 00 000633' SCOPER MA7 ; print error message
603 000514' 255 00 0 00 000000 JFCL ; loop on error
604 000515' 254 00 0 00 000630' JRST TX7 ; altmode exit
605 000516' 326 15 0 00 000630' JUMPN ERFLG,TX7 ; error exit
606
607 ; Start port
608
609 000517' 350 00 0 00 000425* AOS TSTSUB ; initialize subtest number
610 000520' 260 17 0 00 000343* GO TIDLE ; start port
611 000521' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
612 000522' 027 00 0 00 000635' SCOPER MB7 ; print error message
613 000523' 255 00 0 00 000000 JFCL ; loop on error
614 000524' 254 00 0 00 000630' JRST TX7 ; altmode exit
615 000525' 326 15 0 00 000630' JUMPN ERFLG,TX7 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 15
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0582
616
617 ; Enable the port
618
619 000526' 350 00 0 00 000517* AOS TSTSUB ; initialize subtest number
620 000527' 260 17 0 00 000352* GO SETENA ; ensure the port is enabled
621 000530' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
622 000531' 027 00 0 00 000640' SCOPER MC7 ; print error message
623 000532' 255 00 0 00 000000 JFCL ; loop on error
624 000533' 254 00 0 00 000630' JRST TX7 ; altmode exit
625 000534' 326 15 0 00 000630' JUMPN ERFLG,TX7 ; error yet? yes - abort test
626
627 ; Send the packets
628
629 000535' 350 00 0 00 000526* AOS TSTSUB ; initialize subtest number
630 000536' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
631 000537' 402 00 0 00 000362* SETZM TFMFLG ; set to COMPAT mode
632 000540' 476 00 0 00 000363* SETOM TRSFLG ; set response requested
633 000541' 402 00 0 00 000364* SETZM TPDFLG ; clear pad flag
634 000542' 402 00 0 00 000365* SETZM TBSDFL ; set to non-BSD style datagram
635 000543' 201 11 0 00 000011 MOVEI OP,WRNSA ; get op code
636 000544' 260 17 0 00 000367* GO BPACK ; set up packet data
637 000545' 120 00 0 00 000457* DMOVE SADDR ; get our station address
638 000546' 430 00 0 00 006735' XOR [777777,,777760] ; complement it (1st word)
639 000547' 430 01 0 00 006736' XOR 1,[3,,77776] ; complement it (2nd word)
640 000550' 124 00 0 00 000000# DMOVEM PACKET+4 ; save it
641 000551' 124 00 0 00 000660' DMOVEM T7ADDR ; save address
642 000552' 260 17 0 00 000370* GO INSQUE ; insert on command queue
643 000553' 255 00 0 00 000000 JFCL ; error - ignore
644 000554' 255 00 0 00 000000 JFCL ; error - ignore
645
646 000555' 260 17 0 00 000373* GO RDCSR ; read CSR
647 000556' 255 00 0 00 000000 JFCL ; error - ignore
648 000557' 660 01 0 00 000400 TRO 1,CMDQAV ; set the 'CMDQAV' bit
649 000560' 260 17 0 00 000376* GO LDCSR ; write the CSR register
650
651 000561' 201 11 0 00 000010 MOVEI OP,RDNSA ; get op code
652 000562' 260 17 0 00 000544* GO BPACK ; set up packet data
653 000563' 260 17 0 00 000552* GO INSQUE ; insert on command queue
654 000564' 255 00 0 00 000000 JFCL ; error - ignore
655 000565' 255 00 0 00 000000 JFCL ; error - ignore
656
657 000566' 260 17 0 00 000555* GO RDCSR ; read CSR
658 000567' 255 00 0 00 000000 JFCL ; error - ignore
659 000570' 660 01 0 00 000400 TRO 1,CMDQAV ; set the 'CMDQAV' bit
660 000571' 260 17 0 00 000560* GO LDCSR ; write the CSR register
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 16
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0583
661
662 ; Wait for a response
663
664 000572' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
665 000573' 260 17 0 00 000406* GO RUNTME ; get current run time
666 000574' 200 01 0 00 000407* MOVE 1,DEBTIM ; get time in milliseconds
667 000575' 271 01 0 00 023420 ADDI 1,^D10000 ; wait an additional 10 seconds
668 000576' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
669 000577' 254 00 0 00 000605' JRST TA7A ; go check for a response
670 000600' 400 03 0 00 000000 TA7: SETZ 3, ; set up for RUNTME
671 000601' 260 17 0 00 000573* GO RUNTME ; get current run time
672 000602' 200 01 0 00 000574* MOVE 1,DEBTIM ; get time in milliseconds
673 000603' 313 01 0 00 010102' CAMLE 1,ENDTIM ; time expired yet?
674 000604' 254 00 0 00 000613' JRST TB7 ; yes - timeout error
675
676 ; Check for response
677
678 000605' 260 17 0 00 000412* TA7A: GO CHKRSP ; check for response entry
679 000606' 254 00 0 00 000600' JRST TA7 ; no responses - check wait time
680
681 ; Got a response - now decode it
682
683 000607' 135 02 0 00 006737' LDB 2,[POINT 8,RSPONS+3,23] ; get opcode
684 000610' 302 02 0 00 000010 CAIE 2,NSARD ; NSARD packet?
685 000611' 254 00 0 00 000600' JRST TA7 ; no - check wait time
686 000612' 334 00 0 00 000000 SKIPA ; yes - continue
687
688 ; Timeout error
689
690 000613' 474 15 0 00 000000 TB7: SETO ERFLG, ; set error flag
691 000614' 027 00 0 00 000643' SCOPER MD7 ; print error message
692 000615' 255 00 0 00 000000 JFCL ; loop on error
693 000616' 254 00 0 00 000630' JRST TX7 ; altmode exit
694 000617' 326 15 0 00 000630' JUMPN ERFLG,TX7 ; error yet? yes - abort test
695
696 ; Check to see if address correct
697
698 000620' 350 00 0 00 000535* AOS TSTSUB ; initialize subtest number
699 000621' 120 00 0 00 000660' DMOVE T7ADDR ; get correct address
700 000622' 316 00 0 00 000000# CAMN RSPONS+4 ; first word correct?
701 000623' 312 01 0 00 000000# CAME 1,RSPONS+5 ; yes - 2nd word correct?
702 000624' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
703 000625' 027 00 0 00 000646' SCOPER ME7 ; print error message
704 000626' 255 00 0 00 000000 JFCL ; loop on error
705 000627' 254 00 0 00 000630' JRST TX7 ; altmode exit
706
707 ; End of test
708
709 000630' 260 17 0 00 000435* TX7: GO SETDSA ; disable the port
710 000631' 260 17 0 00 000436* GO ISTOP ; stop the port
711 000632' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 17
DFNIA3 MAC 30-Nov-83 16:40 NSA Tests SEQ 0584
712
713 ; Error messages
714
715 000633' 260000 006324' MA7: TXALL!CALL!LODERR
716 000634' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
717
718 000635' 160000 006561' MB7: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
719 000636' 260000 006276' TXALL!CALL!PDUMP
720 000637' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
721
722 000640' 160000 006663' MC7: TXALL!MSG![ASCIZ /Could not enable the port/]
723 000641' 260000 006276' TXALL!CALL!PDUMP
724 000642' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
725
726 000643' 160000 006671' MD7: TXALL!MSG![ASCIZ /Response to RDNSA packet not received in 10 seconds/]
727 000644' 260000 006276' TXALL!CALL!PDUMP
728 000645' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
729
730 000646' 160000 006740' ME7: TXALL!MSG![ASCIZ /NSA not set or read correctly:/]
731 000647' 260000 000651' TXALL!CALL!ME7PN
732 000650' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
733
734 000651' 037 00 0 00 006747' ME7PN: TMSGC <Correct (Tried to set to)(Bytes 0-5): >
735 000652' 120 01 0 00 000660' DMOVE 1,T7ADDR
736 000653' 260 17 0 00 000465' GO NSAPNT
737 000654' 037 00 0 00 006760' TMSGC <Actual (Read with RDNSA)(Bytes 0-5): >
738 000655' 120 01 0 00 000000# DMOVE 1,RSPONS+4
739 000656' 260 17 0 00 000465' GO NSAPNT
740 000657' 263 17 0 00 000000 RTN
741
742 000660' T7ADDR: BLOCK 2
743
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 18
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0585
744 SUBTTL CRC Tests
745
746 ;#********************************************************************
747 ;* TEST 10 - CRC Test 1
748 ;
749 ; Description: This test verifies that the CRC is calculated
750 ; correctly. This test verifies that a CRC error
751 ; does not occur when the correct CRC data is
752 ; appended to the packet. The data portion of the
753 ; packet is 256 bytes, which are a counting pattern
754 ; from 0-377 (octal).
755 ;
756 ; Procedure: KL> Load microcode
757 ; KL> Port Clear
758 ; KL> Start port
759 ;
760 ; KL> Build a self-directed datagram, insert on command
761 ; queue, and wait for a response
762 ; KL> Verify proper response
763 ; KL> Verify data portion of packet received properly
764 ; If failed - print error message and exit test
765 ;
766 ; Repeat 200 times.
767 ;
768 ; FRU: NIA Module
769 ;#********************************************************************
770
771 000310 T10PAK==^D200 ; number of packets to send
772
773 ; Initialization
774
775 000662' 201 00 0 00 000000' TST10: MOVEI Z3 ; get address of module start
776 000663' 260 17 0 00 000503* GO TRACE ; handle trace output
777 000664' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
778 000665' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
779 000666' 476 00 0 00 010101' SETOM DUMPP# ; set 'dump possible' flag
780 000667' 260 17 0 00 000507* GO IPACLR ; do a 'port clear'
781 000670' 402 00 0 00 010112' SETZM TERMES# ; clear ucode load error message
782 000671' 260 17 0 00 000511* GO TFLOAD ; load operational microcode
783 GO [MOVEM TERMES ; error - save error message
784 SETO ERFLG,
785 000672' 260 17 0 00 006552' RTN]
786 000673' 027 00 0 00 001063' SCOPER MA10 ; print error message
787 000674' 255 00 0 00 000000 JFCL ; loop on error
788 000675' 254 00 0 00 001060' JRST TX10 ; altmode exit
789 000676' 326 15 0 00 001060' JUMPN ERFLG,TX10 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 19
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0586
790
791 ; Start port
792
793 000677' 260 17 0 00 000520* GO TIDLE ; start port
794 000700' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
795 000701' 027 00 0 00 001065' SCOPER MB10 ; print error message
796 000702' 255 00 0 00 000000 JFCL ; loop on error
797 000703' 254 00 0 00 001060' JRST TX10 ; altmode exit
798 000704' 326 15 0 00 001060' JUMPN ERFLG,TX10 ; error yet? yes - abort test
799
800 ; Enable the port
801
802 000705' 260 17 0 00 000527* GO SETENA ; ensure the port is enabled
803 000706' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
804 000707' 027 00 0 00 001070' SCOPER MC10 ; print error message
805 000710' 255 00 0 00 000000 JFCL ; loop on error
806 000711' 254 00 0 00 001060' JRST TX10 ; altmode exit
807 000712' 326 15 0 00 001060' JUMPN ERFLG,TX10 ; error yet? yes - abort test
808
809 ; Initialize statistics
810
811 000713' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
812 000714' 402 00 0 00 006334' SETZM NPAKSE ; clear sent status error count
813 000715' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
814 000716' 402 00 0 00 006336' SETZM NPAKRE ; clear recv status error count
815 000717' 402 00 0 00 006337' SETZM NPAKRC ; clear recv CRC error count
816 000720' 402 00 0 00 006340' SETZM NPAKRD ; clear recv dt.cmp error count (pkts)
817 000721' 402 00 0 00 006341' SETZM NPAKRW ; clear recv dt.cmp error count (words)
818
819 ; Initialize packet data
820
821 000722' 402 00 0 00 000537* SETZM TFMFLG ; set to COMPAT mode
822 000723' 476 00 0 00 000540* SETOM TRSFLG ; set 'response requested' flag
823 000724' 402 00 0 00 000541* SETZM TPDFLG ; clear pad flag
824 000725' 402 00 0 00 000542* SETZM TBSDFL ; set to non-BSD style datagram
825 000726' 120 00 0 00 000545* DMOVE SADDR ; initialize destination address
826 000727' 124 00 0 00 000000* DMOVEM TDEST ; to self
827 000730' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
828 000731' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
829 000732' 202 00 0 00 000000* MOVEM TPAT ; counting pattern
830 000733' 201 00 0 00 000400 MOVEI ^D256 ; get byte count
831 000734' 202 00 0 00 000000* MOVEM TBYTE ; clear byte count
832 000735' 402 00 0 00 000000* SETZM TWORD ; clear word count
833 000736' 201 00 0 00 000005 MOVEI 5 ; get protocol type
834 000737' 202 00 0 00 000000* MOVEM TPTTVL ; save it
835 000740' 260 17 0 00 000562* GO BPACK ; set up packet data
836 000741' 402 00 0 00 000620* SETZM TSTSUB ; initialize subtest number
837 000742' 402 00 0 00 000000* SETZM RQAFLG ; clear response queue available flag
838 000743' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 20
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0587
839
840 ; Increment packet number
841
842 000744' 350 01 0 00 000741* TA10: AOS 1,TSTSUB ; increment packet number
843 000745' 303 01 0 00 000310 CAILE 1,T10PAK ; done yet?
844 000746' 254 00 0 00 001014' JRST TE10 ; yes - check test results
845 000747' 400 06 0 00 000000 SETZ 6, ; clear hung count
846
847 ; Send a packet
848
849 000750' 037 07 0 00 000003 TB10: TTALTM ; altmode typed?
850 000751' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
851 000752' 476 00 0 00 000000* SETOM ALTF ; yes - set flag
852 000753' 332 00 0 00 000752* SKIPE ALTF ; altmode flagged?
853 000754' 254 00 0 00 001060' JRST TX10 ; yes - exit
854 000755' 336 00 0 00 000000* SKIPN LCHAR ; last character in here already?
855 000756' 202 00 0 00 000755* MOVEM LCHAR ; no - save 'last char typed'
856 000757' 260 17 0 00 000000* GO PSTAMP ; check for S typed
857 000760' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
858
859 000761' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
860 000762' 260 17 0 00 000000* GO CHKINT ; get list of queue entries
861 000763' 255 00 0 00 000000 JFCL ; ignore error
862 000764' 476 00 0 00 000000* SETOM PTTFQ ; reset the interlock
863 000765' 200 00 0 00 000000* MOVE NUMENT ; get entry count
864 000766' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
865 000767' 254 00 0 00 001000' JRST TC10 ; no - continue
866
867 000770' 260 17 0 00 000563* GO INSQUE ; insert into queue
868 000771' 254 00 0 00 000774' JRST .+3 ; failed - continue
869 000772' 254 00 0 00 000774' JRST .+2 ; failed - continue
870 000773' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
871 000774' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
872 000775' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
873 000776' 337 00 0 00 000765* SKIPG NUMENT ; was the queue empty?
874 GO [GO RDCSR ; yes - set 'CMDQAV'
875 MOVEI 1,PENABL!MPRUN
876 TRZ 1,RESQAV
877 TRO 1,CMDQAV
878 GO LDCSR
879 000777' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 21
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0588
880
881 ; Check for a response
882
883 001000' 260 17 0 00 000000* TC10: GO CHKRQV ; check response queue available
884 001001' 260 17 0 00 000605* GO CHKRSP ; check for RspQ entry
885 JRST [SETZM RQAFLG ; no entry found - continue
886 MOVE 1,PCB+5 ; get response queue FLINK
887 GO CONVIR ; convert to virtual
888 CAIE 1,PCB+5 ; queue really empty?
889 SETOM RQAFLG ; no - set rsp queue avail flag
890 GO CHKDEB ; check for debug mode
891 001002' 254 00 0 00 006777' JRST TD10]
892 001003' 400 06 0 00 000000 SETZ 6, ; clear hung count
893 001004' 260 17 0 00 006166' GO MCHECK ; determine results
894 001005' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
895 001006' 254 00 0 00 001000' JRST TC10 ; keep looking for responses
896
897 ; No more responses
898
899 001007' 350 00 0 00 000006 TD10: AOS 6 ; increment hung count
900 001010' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
901 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
902 001011' 254 00 0 00 007006' JRST TE10] ; and exit
903 001012' 322 07 0 00 000750' JUMPE 7,TB10 ; send current packet? yes - go do so
904 001013' 254 00 0 00 000744' JRST TA10 ; no - already did - go do next packet
905
906 ; Check for any stragglers
907
908 001014' 400 03 0 00 000000 TE10: SETZ 3, ; set up for RUNTME
909 001015' 260 17 0 00 000601* GO RUNTME ; get current run time
910 001016' 200 01 0 00 000602* MOVE 1,DEBTIM ; get time in milliseconds
911 001017' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
912 001020' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
913 001021' 260 17 0 00 001000* TF10: GO CHKRQV ; check response queue available
914 001022' 260 17 0 00 001001* GO CHKRSP ; check for RspQ entry
915 JRST [SETZM RQAFLG ; no entry found - continue
916 MOVE 1,PCB+5 ; get response queue FLINK
917 GO CONVIR ; convert to virtual
918 CAIE 1,PCB+5 ; queue really empty?
919 SETOM RQAFLG ; no - set rsp queue avail flag
920 GO CHKDEB ; check for debug mode
921 001023' 254 00 0 00 007010' JRST TG10]
922 001024' 260 17 0 00 006166' GO MCHECK ; determine results
923 001025' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
924 001026' 254 00 0 00 001021' JRST TF10 ; keep looking for responses
925 001027' 400 03 0 00 000000 TG10: SETZ 3, ; set up for RUNTME
926 001030' 260 17 0 00 001015* GO RUNTME ; get current run time
927 001031' 200 01 0 00 001016* MOVE 1,DEBTIM ; get time in milliseconds
928 001032' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
929 001033' 254 00 0 00 001021' JRST TF10 ; no - keep looping
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 22
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0589
930
931 ; Done with test - now check results
932
933 001034' 200 00 0 00 006333' TH10: MOVE NPAKS ; get number of packets sent
934 001035' 302 00 0 00 000310 CAIE T10PAK ; correct number?
935 001036' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
936 001037' 200 00 0 00 006334' MOVE NPAKSE ; get status errors
937 001040' 303 00 0 00 000024 CAILE T10PAK/^D10 ; more than 10% received?
938 001041' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
939 001042' 200 00 0 00 006335' MOVE NPAKR ; get receive count
940 001043' 305 00 0 00 000264 CAIGE T10PAK*^D9/^D10 ; more than 90% received?
941 001044' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
942 001045' 200 00 0 00 006336' MOVE NPAKRE ; number of receive status errors
943 001046' 303 00 0 00 000024 CAILE T10PAK/^D10 ; more than 10% received?
944 001047' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
945 001050' 332 00 0 00 006340' SKIPE NPAKRD ; any receive dt.cmp errors?
946 001051' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
947 001052' 200 00 0 00 006337' MOVE NPAKRC ; number of receive CRC errors
948 001053' 303 00 0 00 000024 CAILE T10PAK/^D10 ; more than 10% received?
949 001054' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
950 001055' 027 00 0 00 001073' SCOPER MD10 ; print error message
951 001056' 255 00 0 00 000000 JFCL ; loop on error
952 001057' 254 00 0 00 001060' JRST TX10 ; altmode exit
953
954 ; Exit
955
956 001060' 260 17 0 00 000630* TX10: GO SETDSA ; disable the port
957 001061' 260 17 0 00 000631* GO ISTOP ; stop the port
958 001062' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 23
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0590
959
960 ; Error messages
961
962 001063' 260000 006324' MA10: TXALL!CALL!LODERR
963 001064' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
964
965 001065' 160000 006561' MB10: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
966 001066' 260000 006276' TXALL!CALL!PDUMP
967 001067' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
968
969 001070' 160000 006663' MC10: TXALL!MSG![ASCIZ /Could not enable the port/]
970 001071' 260000 006276' TXALL!CALL!PDUMP
971 001072' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
972
973 001073' 160000 007017' MD10: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
974 001074' 260000 001077' TXALL!CALL!MD10PN
975 001075' 260000 006276' TXALL!CALL!PDUMP
976 001076' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
977
978 001077' 037 00 0 00 007030' MD10PN: TMSGC < What Expected Actual>
979 001100' 037 00 0 00 007040' TMSGC <----------- -------- ------>
980 001101' 037 00 0 00 007050' TMSGC <Packets Sent >
981 001102' 004 11 0 00 007054' PNTDCP 9,[T10PAK]
982 001103' 004 11 0 00 006333' PNTDCP 9,NPAKS
983 001104' 037 00 0 00 007055' TMSGC < Status Errors >
984 001105' 004 11 0 00 006642' PNTDCP 9,[0]
985 001106' 004 11 0 00 006334' PNTDCP 9,NPAKSE
986 001107' 037 00 0 00 007061' TMSGC <Packets Rcvd >
987 001110' 004 11 0 00 007054' PNTDCP 9,[T10PAK]
988 001111' 004 11 0 00 006335' PNTDCP 9,NPAKR
989 001112' 037 00 0 00 007065' TMSGC < Status Errors 0.>
990 001113' 004 11 0 00 006336' PNTDCP 9,NPAKRE
991 001114' 037 00 0 00 007073' TMSGC < CRC Errors 0.>
992 001115' 004 11 0 00 006337' PNTDCP 9,NPAKRC
993 001116' 037 00 0 00 007101' TMSGC < DtCmp Errors (PKTS) 0.>
994 001117' 004 11 0 00 006340' PNTDCP 9,NPAKRD
995 001120' 037 00 0 00 007107' TMSGC < DtCmp Errors (WORDS) 0.>
996 001121' 004 11 0 00 006341' PNTDCP 9,NPAKRW
997 001122' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 24
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0591
998
999 ;#********************************************************************
1000 ;* TEST 11 - CRC Test 2
1001 ;
1002 ; Description: This test verifies that the CRC is calculated
1003 ; correctly. This test verifies that a CRC error
1004 ; occurs when the correct CRC data is appended to
1005 ; the packet with a single bit error. The data
1006 ; portion of the packet is 256 bytes, which are a
1007 ; counting pattern from 0-377 (octal).
1008 ;
1009 ; Procedure: KL> Load microcode
1010 ; KL> Port Clear
1011 ; KL> Start port
1012 ;
1013 ; KL> Build a self-directed datagram, insert on command
1014 ; queue, and wait for a response
1015 ; KL> Verify proper response
1016 ; KL> Verify data portion of packet received properly
1017 ; If failed - print error message and exit test
1018 ;
1019 ; Repeat 320 times, ten times for each packet with
1020 ; a single bit error in bits 0-31.
1021 ;
1022 ; FRU: NIA Module
1023 ;#********************************************************************
1024
1025 000500 T11PAK==^D320 ; number of packets to send
1026 000100 T11LEN==^D64 ; packet length
1027
1028 ; Initialization
1029
1030 001123' 201 00 0 00 000000' TST11: MOVEI Z3 ; get address of module start
1031 001124' 260 17 0 00 000663* GO TRACE ; handle trace output
1032 001125' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
1033 001126' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
1034 001127' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
1035 001130' 260 17 0 00 000667* GO IPACLR ; do a 'port clear'
1036 001131' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
1037 001132' 260 17 0 00 000671* GO TFLOAD ; load operational microcode
1038 GO [MOVEM TERMES ; error - save error message
1039 SETO ERFLG,
1040 001133' 260 17 0 00 006552' RTN]
1041 001134' 027 00 0 00 001342' SCOPER MA11 ; print error message
1042 001135' 255 00 0 00 000000 JFCL ; loop on error
1043 001136' 254 00 0 00 001335' JRST TX11 ; altmode exit
1044 001137' 326 15 0 00 001335' JUMPN ERFLG,TX11 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 25
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0592
1045
1046 ; Start port
1047
1048 001140' 260 17 0 00 000677* GO TIDLE ; start port
1049 001141' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1050 001142' 027 00 0 00 001344' SCOPER MB11 ; print error message
1051 001143' 255 00 0 00 000000 JFCL ; loop on error
1052 001144' 254 00 0 00 001335' JRST TX11 ; altmode exit
1053 001145' 326 15 0 00 001335' JUMPN ERFLG,TX11 ; error yet? yes - abort test
1054
1055 ; Enable the port
1056
1057 001146' 260 17 0 00 000705* GO SETENA ; ensure the port is enabled
1058 001147' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1059 001150' 027 00 0 00 001347' SCOPER MC11 ; print error message
1060 001151' 255 00 0 00 000000 JFCL ; loop on error
1061 001152' 254 00 0 00 001335' JRST TX11 ; altmode exit
1062 001153' 326 15 0 00 001335' JUMPN ERFLG,TX11 ; error yet? yes - abort test
1063
1064 ; Set up multicast and PTT tables
1065
1066 001154' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
1067 001155' 027 00 0 00 006540' SCOPER LOADPE ; print error message
1068 001156' 255 00 0 00 000000 JFCL ; loop on error
1069 001157' 254 00 0 00 001335' JRST TX11 ; altmode exit
1070 001160' 326 15 0 00 001335' JUMPN ERFLG,TX11 ; error yet? yes - abort test
1071
1072 ; Initialize statistics
1073
1074 001161' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
1075 001162' 402 00 0 00 006334' SETZM NPAKSE ; clear sent status error count
1076 001163' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
1077 001164' 402 00 0 00 006336' SETZM NPAKRE ; clear recv status error count
1078 001165' 402 00 0 00 006337' SETZM NPAKRC ; clear recv CRC error count
1079 001166' 402 00 0 00 006340' SETZM NPAKRD ; clear recv dt.cmp error count (pkts)
1080 001167' 402 00 0 00 006341' SETZM NPAKRW ; clear recv dt.cmp error count (words)
1081 001170' 402 00 0 00 010107' SETZM NRCRC# ; clear expected rcv CRC error count
1082
1083 ; Initialize packet data
1084
1085 001171' 402 00 0 00 000722* SETZM TFMFLG ; set to COMPAT mode
1086 001172' 476 00 0 00 000723* SETOM TRSFLG ; set 'response requested' flag
1087 001173' 402 00 0 00 000724* SETZM TPDFLG ; clear pad flag
1088 001174' 402 00 0 00 000725* SETZM TBSDFL ; set to non-BSD style datagram
1089 001175' 120 00 0 00 000726* DMOVE SADDR ; initialize destination address
1090 001176' 124 00 0 00 000727* DMOVEM TDEST ; to self
1091 001177' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
1092 001200' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
1093 001201' 202 00 0 00 000732* MOVEM TPAT ; counting pattern
1094 001202' 402 00 0 00 000734* SETZM TBYTE ; clear byte count
1095 001203' 201 00 0 00 000100 MOVEI T11LEN ; get length
1096 001204' 202 00 0 00 000735* MOVEM TWORD ; save it
1097 001205' 201 00 0 00 000005 MOVEI 5 ; get protocol type
1098 001206' 202 00 0 00 000737* MOVEM TPTTVL ; save it
1099 001207' 260 17 0 00 000740* GO BPACK ; set up packet data
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 25-1
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0593
1100 001210' 200 00 0 00 000000# MOVE PACKET+T11LEN+5 ; get CRC
1101 001211' 202 00 0 00 001737' MOVEM CRCSAV ; save it
1102 001212' 402 00 0 00 000744* SETZM TSTSUB ; initialize subtest number
1103 001213' 402 00 0 00 000742* SETZM RQAFLG ; clear response queue available flag
1104 001214' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 26
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0594
1105
1106 ; Increment packet number
1107
1108 001215' 350 01 0 00 001212* TA11: AOS 1,TSTSUB ; get subtest number
1109 001216' 231 01 0 00 000012 IDIVI 1,^D10 ; divide by 10
1110 001217' 332 00 0 00 000002 SKIPE 2 ; remainder?
1111 GO [MOVE CRCSAV ; yes - get CRC and invert
1112 MOVEI 1,10 ; one of the bits
1113 LSH 1,(2)
1114 XOR 1
1115 MOVEM PACKET+T11LEN+11
1116 001220' 260 17 0 00 007115' RTN]
1117 001221' 200 01 0 00 001215* MOVE 1,TSTSUB ; increment packet number
1118 001222' 303 01 0 00 000500 CAILE 1,T11PAK ; done yet?
1119 001223' 254 00 0 00 001271' JRST TE11 ; yes - check test results
1120 001224' 400 06 0 00 000000 SETZ 6, ; clear hung count
1121
1122 ; Send a packet
1123
1124 001225' 037 07 0 00 000003 TB11: TTALTM ; altmode typed?
1125 001226' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
1126 001227' 476 00 0 00 000753* SETOM ALTF ; yes - set flag
1127 001230' 332 00 0 00 001227* SKIPE ALTF ; altmode flagged?
1128 001231' 254 00 0 00 001335' JRST TX11 ; yes - exit
1129 001232' 336 00 0 00 000756* SKIPN LCHAR ; last character in here already?
1130 001233' 202 00 0 00 001232* MOVEM LCHAR ; no - save 'last char typed'
1131 001234' 260 17 0 00 000757* GO PSTAMP ; check for S typed
1132 001235' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
1133
1134 001236' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
1135 001237' 260 17 0 00 000762* GO CHKINT ; get list of queue entries
1136 001240' 255 00 0 00 000000 JFCL ; ignore error
1137 001241' 476 00 0 00 000764* SETOM PTTFQ ; reset the interlock
1138 001242' 200 00 0 00 000776* MOVE NUMENT ; get entry count
1139 001243' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
1140 001244' 254 00 0 00 001255' JRST TC11 ; no - continue
1141
1142 001245' 260 17 0 00 000770* GO INSQUE ; insert into queue
1143 001246' 254 00 0 00 001251' JRST .+3 ; failed - continue
1144 001247' 254 00 0 00 001251' JRST .+2 ; failed - continue
1145 001250' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
1146 001251' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
1147 001252' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
1148 001253' 337 00 0 00 001242* SKIPG NUMENT ; was the queue empty?
1149 GO [GO RDCSR ; yes - set 'CMDQAV'
1150 MOVEI 1,PENABL!MPRUN
1151 TRZ 1,RESQAV
1152 TRO 1,CMDQAV
1153 GO LDCSR
1154 001254' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 27
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0595
1155
1156 ; Check for a response
1157
1158 001255' 260 17 0 00 001021* TC11: GO CHKRQV ; check response queue available
1159 001256' 260 17 0 00 001022* GO CHKRSP ; check for RspQ entry
1160 JRST [SETZM RQAFLG ; no entry found - continue
1161 MOVE 1,PCB+5 ; get response queue FLINK
1162 GO CONVIR ; convert to virtual
1163 CAIE 1,PCB+5 ; queue really empty?
1164 SETOM RQAFLG ; no - set rsp queue avail flag
1165 GO CHKDEB ; check for debug mode
1166 001257' 254 00 0 00 007123' JRST TD11]
1167 001260' 400 06 0 00 000000 SETZ 6, ; clear hung count
1168 001261' 260 17 0 00 006166' GO MCHECK ; determine results
1169 001262' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
1170 001263' 254 00 0 00 001255' JRST TC11 ; keep looking for responses
1171
1172 ; No more responses
1173
1174 001264' 350 00 0 00 000006 TD11: AOS 6 ; increment hung count
1175 001265' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
1176 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
1177 001266' 254 00 0 00 007132' JRST TE11] ; and exit
1178 001267' 322 07 0 00 001225' JUMPE 7,TB11 ; send current packet? yes - go do so
1179 001270' 254 00 0 00 001215' JRST TA11 ; no - already did - go do next packet
1180
1181 ; Check for any stragglers
1182
1183 001271' 400 03 0 00 000000 TE11: SETZ 3, ; set up for RUNTME
1184 001272' 260 17 0 00 001030* GO RUNTME ; get current run time
1185 001273' 200 01 0 00 001031* MOVE 1,DEBTIM ; get time in milliseconds
1186 001274' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
1187 001275' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
1188 001276' 260 17 0 00 001255* TF11: GO CHKRQV ; check response queue available
1189 001277' 260 17 0 00 001256* GO CHKRSP ; check for RspQ entry
1190 JRST [SETZM RQAFLG ; no entry found - continue
1191 MOVE 1,PCB+5 ; get response queue FLINK
1192 GO CONVIR ; convert to virtual
1193 CAIE 1,PCB+5 ; queue really empty?
1194 SETOM RQAFLG ; no - set rsp queue avail flag
1195 GO CHKDEB ; check for debug mode
1196 001300' 254 00 0 00 007134' JRST TG11]
1197 001301' 260 17 0 00 006166' GO MCHECK ; determine results
1198 001302' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
1199 001303' 254 00 0 00 001276' JRST TF11 ; keep looking for responses
1200 001304' 400 03 0 00 000000 TG11: SETZ 3, ; set up for RUNTME
1201 001305' 260 17 0 00 001272* GO RUNTME ; get current run time
1202 001306' 200 01 0 00 001273* MOVE 1,DEBTIM ; get time in milliseconds
1203 001307' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
1204 001310' 254 00 0 00 001276' JRST TF11 ; no - keep looping
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 28
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0596
1205
1206 ; Done with test - now check results
1207
1208 001311' 200 00 0 00 006333' TH11: MOVE NPAKS ; get number of packets sent
1209 001312' 302 00 0 00 000500 CAIE T11PAK ; correct number?
1210 001313' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1211 001314' 200 00 0 00 006334' MOVE NPAKSE ; get status errors
1212 001315' 303 00 0 00 000040 CAILE T11PAK/^D10 ; less than 10%?
1213 001316' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1214 001317' 200 00 0 00 006335' MOVE NPAKR ; get receive count
1215 001320' 305 00 0 00 000440 CAIGE T11PAK*^D9/^D10 ; more than 90% received?
1216 001321' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1217 001322' 200 00 0 00 006336' MOVE NPAKRE ; number of receive status errors same
1218 001323' 312 00 0 00 006335' CAME NPAKR ; as number of packets received?
1219 001324' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1220 001325' 332 00 0 00 006340' SKIPE NPAKRD ; any receive dt.cmp errors?
1221 001326' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1222 001327' 200 00 0 00 006337' MOVE NPAKRC ; number of receive CRC errors
1223 001330' 312 00 0 00 006335' CAME NPAKR ; same as number expected?
1224 001331' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1225 001332' 027 00 0 00 001352' SCOPER MD11 ; print error message
1226 001333' 255 00 0 00 000000 JFCL ; loop on error
1227 001334' 254 00 0 00 001335' JRST TX11 ; altmode exit
1228
1229 ; Exit
1230
1231 001335' 200 00 0 00 010107' TX11: MOVE NRCRC ; get receive CRC errors
1232 001336' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
1233 001337' 260 17 0 00 001060* GO SETDSA ; disable the port
1234 001340' 260 17 0 00 001061* GO ISTOP ; stop the port
1235 001341' 263 17 0 00 000000 RTN ; return
1236
1237 ; Error messages
1238
1239 001342' 260000 006324' MA11: TXALL!CALL!LODERR
1240 001343' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1241
1242 001344' 160000 006561' MB11: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
1243 001345' 260000 006276' TXALL!CALL!PDUMP
1244 001346' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1245
1246 001347' 160000 006663' MC11: TXALL!MSG![ASCIZ /Could not enable the port/]
1247 001350' 260000 006276' TXALL!CALL!PDUMP
1248 001351' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 29
DFNIA3 MAC 30-Nov-83 16:40 CRC Tests SEQ 0597
1249
1250 001352' 160000 007017' MD11: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
1251 001353' 260000 001356' TXALL!CALL!MD11PN
1252 001354' 260000 006276' TXALL!CALL!PDUMP
1253 001355' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
1254
1255 001356' 037 00 0 00 007030' MD11PN: TMSGC < What Expected Actual>
1256 001357' 037 00 0 00 007040' TMSGC <----------- -------- ------>
1257 001360' 037 00 0 00 007050' TMSGC <Packets Sent >
1258 001361' 004 11 0 00 007143' PNTDCP 9,[T11PAK]
1259 001362' 004 11 0 00 006333' PNTDCP 9,NPAKS
1260 001363' 037 00 0 00 007065' TMSGC < Status Errors 0.>
1261 001364' 004 11 0 00 006334' PNTDCP 9,NPAKSE
1262 001365' 037 00 0 00 007061' TMSGC <Packets Rcvd >
1263 001366' 004 11 0 00 006333' PNTDCP 9,NPAKS
1264 001367' 004 11 0 00 006335' PNTDCP 9,NPAKR
1265 001370' 037 00 0 00 007055' TMSGC < Status Errors >
1266 001371' 004 11 0 00 007143' PNTDCP 9,[T11PAK]
1267 001372' 004 11 0 00 006336' PNTDCP 9,NPAKRE
1268 001373' 037 00 0 00 007144' TMSGC < CRC Errors >
1269 001374' 004 11 0 00 007143' PNTDCP 9,[T11PAK]
1270 001375' 004 11 0 00 006337' PNTDCP 9,NPAKRC
1271 001376' 037 00 0 00 007101' TMSGC < DtCmp Errors (PKTS) 0.>
1272 001377' 004 11 0 00 006340' PNTDCP 9,NPAKRD
1273 001400' 037 00 0 00 007107' TMSGC < DtCmp Errors (WORDS) 0.>
1274 001401' 004 11 0 00 006341' PNTDCP 9,NPAKRW
1275 001402' 263 17 0 00 000000 RTN
1276
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 30
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0598
1277 SUBTTL Datagram Loopback Tests
1278
1279 ;#********************************************************************
1280 ;* TEST 12 - Non-BSD Datagram Loopback Test
1281 ;
1282 ; Description: This test sends a self-directed datagram with the
1283 ; correct CRC appended to it. The data is verified
1284 ; when received and the receive status verified.
1285 ; The datagram is in non-BSD style format which is
1286 ; also in COMPAT format (by definition). This is
1287 ; repeated with several data patterns and packet
1288 ; lengths.
1289 ;
1290 ; Procedure: KL> Load microcode
1291 ; KL> Port Clear
1292 ; KL> Start port
1293 ;
1294 ; KL> Build a self-directed datagram, insert on command
1295 ; queue, and wait for a response
1296 ; KL> Verify proper response
1297 ; KL> Verify data portion of packet received properly
1298 ; If failed - print error message and exit test
1299 ;
1300 ; Do for:
1301 ; data patterns: 116-126
1302 ; text length (words): 20-200
1303 ;
1304 ; FRU: NIA Module
1305 ;#********************************************************************
1306
1307 001403' 000000 000050 T12REP: ^D40 ; packets of the same type to send
1308 001404' 000000 021450 T12PAK: ^D9*^D25*^D40 ; total number of packets to send
1309
1310 ; Initialization
1311
1312 001405' 201 00 0 00 000000' TST12: MOVEI Z3 ; get address of module start
1313 001406' 260 17 0 00 001124* GO TRACE ; handle trace output
1314 001407' 402 00 0 00 010111' SETZM SDEBUG# ; clear debug flag
1315 001410' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
1316 001411' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
1317 001412' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
1318 001413' 260 17 0 00 001130* GO IPACLR ; do a 'port clear'
1319 001414' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
1320 001415' 260 17 0 00 001132* GO TFLOAD ; load operational microcode
1321 GO [MOVEM TERMES ; error - save error message
1322 SETO ERFLG,
1323 001416' 260 17 0 00 006552' RTN]
1324 001417' 027 00 0 00 001641' SCOPER MA12 ; print error message
1325 001420' 255 00 0 00 000000 JFCL ; loop on error
1326 001421' 254 00 0 00 001636' JRST TX12 ; altmode exit
1327 001422' 326 15 0 00 001636' JUMPN ERFLG,TX12 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 31
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0599
1328
1329 ; Start port
1330
1331 001423' 260 17 0 00 001140* GO TIDLE ; start port
1332 001424' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1333 001425' 027 00 0 00 001643' SCOPER MB12 ; print error message
1334 001426' 255 00 0 00 000000 JFCL ; loop on error
1335 001427' 254 00 0 00 001636' JRST TX12 ; altmode exit
1336 001430' 326 15 0 00 001636' JUMPN ERFLG,TX12 ; error yet? yes - abort test
1337
1338 ; Enable the port
1339
1340 001431' 260 17 0 00 001146* GO SETENA ; ensure the port is enabled
1341 001432' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1342 001433' 027 00 0 00 001646' SCOPER MC12 ; print error message
1343 001434' 255 00 0 00 000000 JFCL ; loop on error
1344 001435' 254 00 0 00 001636' JRST TX12 ; altmode exit
1345 001436' 326 15 0 00 001636' JUMPN ERFLG,TX12 ; error yet? yes - abort test
1346
1347 ; Set up multicast and PTT tables
1348
1349 001437' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
1350 001440' 027 00 0 00 006540' SCOPER LOADPE ; print error message
1351 001441' 255 00 0 00 000000 JFCL ; loop on error
1352 001442' 254 00 0 00 001636' JRST TX12 ; altmode exit
1353 001443' 326 15 0 00 001636' JUMPN ERFLG,TX12 ; error yet? yes - abort test
1354
1355 ; Initialize packet data
1356
1357 001444' 402 00 0 00 001171* SETZM TFMFLG ; set to COMPAT mode
1358 001445' 476 00 0 00 001172* SETOM TRSFLG ; set 'response requested' flag
1359 001446' 402 00 0 00 001173* SETZM TPDFLG ; clear pad flag
1360 001447' 402 00 0 00 001174* SETZM TBSDFL ; set to non-BSD style datagram
1361 001450' 120 00 0 00 001175* DMOVE SADDR ; initialize destination address
1362 001451' 124 00 0 00 001176* DMOVEM TDEST ; to self
1363 001452' 201 00 0 00 000005 MOVEI 5 ; get protocol type
1364 001453' 202 00 0 00 001206* MOVEM TPTTVL ; save it
1365 001454' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
1366 001455' 201 00 0 00 000115 MOVEI 115 ; set initial data pattern
1367 001456' 202 00 0 00 001201* MOVEM TPAT ; ...
1368 001457' 402 00 0 00 001221* SETZM TSTSUB ; initialize subtest number
1369 001460' 260 17 0 00 001731' GO CRCINI ; initialize CRC table
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 32
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0600
1370
1371 ; Initialize statistics
1372
1373 001461' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
1374 001462' 402 00 0 00 006334' SETZM NPAKSE ; clear sent status error count
1375 001463' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
1376 001464' 402 00 0 00 006336' SETZM NPAKRE ; clear recv status error count
1377 001465' 402 00 0 00 006337' SETZM NPAKRC ; clear recv CRC error count
1378 001466' 402 00 0 00 006340' SETZM NPAKRD ; clear recv dt.cmp error count (pkts)
1379 001467' 402 00 0 00 006341' SETZM NPAKRW ; clear recv dt.cmp error count (words)
1380 001470' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
1381 MOVEI [MOVE TLNPAT# ; set up packet data for text
1382 MOVEM PACKET+11 ; length and data pattern
1383 RPUT (1,2)
1384 LDB 1,[POINT 14,TLNPAT,31]
1385 IMULI 1,^D9
1386 HLRZ TLNPAT
1387 ADD 1,
1388 SUBI 1,116
1389 MOVEM 1,CRCOFF
1390 MOVE 2,CRCTAB(1)
1391 MOVEM 2,CRCSAV
1392 RGET (2,1)
1393 001471' 201 00 0 00 007151' RTN]
1394 001472' 202 00 0 00 000000* MOVEM TXADDL
1395 001473' 402 00 0 00 001213* SETZM RQAFLG ; clear response queue available flag
1396 001474' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
1397
1398 ; Increment pattern
1399
1400 001475' 350 01 0 00 001456* TA12: AOS 1,TPAT ; increment pattern
1401 001476' 303 01 0 00 000126 CAILE 1,126 ; done yet?
1402 001477' 254 00 0 00 001565' JRST TG12 ; yes - check test completion
1403 001500' 476 00 0 00 010113' SETOM TLEN# ; initialize length pointer
1404
1405 ; Increment length
1406
1407 001501' 350 01 0 00 010113' TB12: AOS 1,TLEN ; increment length
1408 001502' 301 01 0 00 000031 CAIL 1,^D25 ; done yet?
1409 001503' 254 00 0 00 001475' JRST TA12 ; yes - check next pattern
1410 001504' 402 00 0 00 001202* SETZM TBYTE ; no - clear byte count
1411 001505' 200 00 0 01 001700' MOVE T12LEN(1) ; get length
1412 001506' 202 00 0 00 001204* MOVEM TWORD ; save it
1413 001507' 137 01 0 00 007150' DPB 1,[POINT 14,TLNPAT,31] ; put in LEN/PAT word
1414 001510' 200 00 0 00 001475* MOVE TPAT ; get data pattern
1415 001511' 506 00 0 00 010114' HRLM TLNPAT ; set up LEN/PAT word
1416 001512' 200 10 0 00 001403' MOVE 10,T12REP ; initialize packet count
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 33
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0601
1417 001513' 332 00 0 00 010111' SKIPE SDEBUG ; debug mode?
1418 GO [TMSGC <** Pat >
1419 MOVE TPAT
1420 PNTOCS
1421 TMSG < Len >
1422 MOVE TWORD
1423 PNTDEC
1424 TMSGD < **>
1425 001514' 260 17 0 00 007176' RTN]
1426
1427 ; Decrement packet count (39-0)
1428
1429 001515' 361 10 0 00 001501' TC12: SOJL 10,TB12 ; done yet? yes - check next length
1430 001516' 400 06 0 00 000000 SETZ 6, ; clear hung count
1431
1432 ; Send a packet
1433
1434 001517' 037 07 0 00 000003 TD12: TTALTM ; altmode typed?
1435 001520' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
1436 001521' 476 00 0 00 001230* SETOM ALTF ; yes - set flag
1437 001522' 332 00 0 00 001521* SKIPE ALTF ; altmode flagged?
1438 001523' 254 00 0 00 001636' JRST TX12 ; yes - exit
1439 001524' 336 00 0 00 001233* SKIPN LCHAR ; last character in here already?
1440 001525' 202 00 0 00 001524* MOVEM LCHAR ; no - save 'last char typed'
1441 001526' 260 17 0 00 001234* GO PSTAMP ; check for S typed
1442 001527' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
1443 001530' 260 17 0 00 006046' GO MPACK ; build packet into 'PACKET'
1444
1445 001531' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
1446 001532' 260 17 0 00 001237* GO CHKINT ; get list of queue entries
1447 001533' 255 00 0 00 000000 JFCL ; ignore error
1448 001534' 476 00 0 00 001241* SETOM PTTFQ ; reset the interlock
1449 001535' 200 00 0 00 001253* MOVE NUMENT ; get entry count
1450 001536' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
1451 001537' 254 00 0 00 001551' JRST TE12 ; no - continue
1452
1453 001540' 260 17 0 00 001245* GO INSQUE ; insert into queue
1454 001541' 254 00 0 00 001544' JRST .+3 ; failed - continue
1455 001542' 254 00 0 00 001544' JRST .+2 ; failed - continue
1456 001543' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
1457 001544' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
1458 001545' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
1459 001546' 350 00 0 00 001457* AOS TSTSUB ; increment subtest number
1460 001547' 337 00 0 00 001535* SKIPG NUMENT ; was the queue empty?
1461 GO [GO RDCSR ; yes - set 'CMDQAV'
1462 MOVEI 1,PENABL!MPRUN
1463 TRZ 1,RESQAV
1464 TRO 1,CMDQAV
1465 GO LDCSR
1466 001550' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 34
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0602
1467
1468 ; Check for a response
1469
1470 001551' 260 17 0 00 001276* TE12: GO CHKRQV ; check response queue available
1471 001552' 260 17 0 00 001277* GO CHKRSP ; check for RspQ entry
1472 JRST [SETZM RQAFLG ; no entry found - continue
1473 MOVE 1,PCB+5 ; get response queue FLINK
1474 GO CONVIR ; convert to virtual
1475 CAIE 1,PCB+5 ; queue really empty?
1476 SETOM RQAFLG ; no - set rsp queue avail flag
1477 GO CHKDEB ; check for debug mode
1478 001553' 254 00 0 00 007206' JRST TF12]
1479 001554' 400 06 0 00 000000 SETZ 6, ; clear hung count
1480 001555' 260 17 0 00 006166' GO MCHECK ; determine results
1481 001556' 260 17 0 00 006101' GO MCOMP ; compare packet data
1482 001557' 254 00 0 00 001551' JRST TE12 ; keep looking for responses
1483
1484 ; No more responses
1485
1486 001560' 350 00 0 00 000006 TF12: AOS 6 ; increment hung count
1487 001561' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
1488 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
1489 001562' 254 00 0 00 007215' JRST TG12] ; and exit
1490 001563' 322 07 0 00 001517' JUMPE 7,TD12 ; send current packet? yes - go do so
1491 001564' 254 00 0 00 001515' JRST TC12 ; no - already did - go do next packet
1492
1493 ; Check for any stragglers
1494
1495 001565' 332 00 0 00 010111' TG12: SKIPE SDEBUG ; debug mode?
1496 001566' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
1497 001567' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
1498 001570' 260 17 0 00 001305* GO RUNTME ; get current run time
1499 001571' 200 01 0 00 001306* MOVE 1,DEBTIM ; get time in milliseconds
1500 001572' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
1501 001573' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
1502 001574' 260 17 0 00 001551* TH12: GO CHKRQV ; check response queue available
1503 001575' 260 17 0 00 001552* GO CHKRSP ; check for RspQ entry
1504 JRST [SETZM RQAFLG ; no entry found - continue
1505 MOVE 1,PCB+5 ; get response queue FLINK
1506 GO CONVIR ; convert to virtual
1507 CAIE 1,PCB+5 ; queue really empty?
1508 SETOM RQAFLG ; no - set rsp queue avail flag
1509 GO CHKDEB ; check for debug mode
1510 001576' 254 00 0 00 007226' JRST TI12]
1511 001577' 260 17 0 00 006166' GO MCHECK ; determine results
1512 001600' 260 17 0 00 006101' GO MCOMP ; compare packet data
1513 001601' 254 00 0 00 001574' JRST TH12 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 35
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0603
1514
1515 ; Check timeout
1516
1517 001602' 400 03 0 00 000000 TI12: SETZ 3, ; set up for RUNTME
1518 001603' 260 17 0 00 001570* GO RUNTME ; get current run time
1519 001604' 200 01 0 00 001571* MOVE 1,DEBTIM ; get time in milliseconds
1520 001605' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
1521 001606' 254 00 0 00 001574' JRST TH12 ; no - keep looping
1522
1523 ; Done with test - now check results
1524
1525 001607' 332 00 0 00 010111' TJ12: SKIPE SDEBUG ; debug mode?
1526 001610' 037 00 0 00 007235' TMSGCD <** Done - check results **>
1527 001611' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
1528 001612' 312 00 0 00 001404' CAME T12PAK ; correct number?
1529 001613' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1530 001614' 200 00 0 00 006333' MOVE NPAKS ; get packets sent
1531 001615' 231 00 0 00 000012 IDIVI ^D10 ; get 10%
1532 001616' 315 00 0 00 006334' CAMGE NPAKSE ; more status errors than 10%?
1533 001617' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1534 001620' 200 00 0 00 001404' MOVE T12PAK ; get sent count
1535 001621' 221 00 0 00 000011 IMULI ^D9 ; calculate 90% of it
1536 001622' 231 00 0 00 000012 IDIVI ^D10
1537 001623' 311 00 0 00 006335' CAML NPAKR ; exceed receive count?
1538 001624' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1539 001625' 332 00 0 00 006336' SKIPE NPAKRE ; any receive status errors?
1540 001626' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1541 001627' 332 00 0 00 006340' SKIPE NPAKRD ; any receive dt.cmp errors?
1542 001630' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1543 001631' 332 00 0 00 006337' SKIPE NPAKRC ; any CRC errors?
1544 001632' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1545 001633' 027 00 0 00 001651' SCOPER MD12 ; print error message
1546 001634' 255 00 0 00 000000 JFCL ; loop on error
1547 001635' 254 00 0 00 001636' JRST TX12 ; altmode exit
1548
1549 ; Exit
1550
1551 001636' 260 17 0 00 001337* TX12: GO SETDSA ; disable the port
1552 001637' 260 17 0 00 001340* GO ISTOP ; stop the port
1553 001640' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 36
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0604
1554
1555 ; Error messages
1556
1557 001641' 260000 006324' MA12: TXALL!CALL!LODERR
1558 001642' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1559
1560 001643' 160000 006561' MB12: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
1561 001644' 260000 006276' TXALL!CALL!PDUMP
1562 001645' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1563
1564 001646' 160000 006663' MC12: TXALL!MSG![ASCIZ /Could not enable the port/]
1565 001647' 260000 006276' TXALL!CALL!PDUMP
1566 001650' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1567
1568 001651' 160000 007017' MD12: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
1569 001652' 260000 001655' TXALL!CALL!MD12PN
1570 001653' 260000 006276' TXALL!CALL!PDUMP
1571 001654' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
1572
1573 001655' 037 00 0 00 007030' MD12PN: TMSGC < What Expected Actual>
1574 001656' 037 00 0 00 007040' TMSGC <----------- -------- ------>
1575 001657' 037 00 0 00 007050' TMSGC <Packets Sent >
1576 001660' 004 11 0 00 001404' PNTDCP 9,T12PAK
1577 001661' 004 11 0 00 006333' PNTDCP 9,NPAKS
1578 001662' 037 00 0 00 007065' TMSGC < Status Errors 0.>
1579 001663' 004 11 0 00 006334' PNTDCP 9,NPAKSE
1580 001664' 037 00 0 00 007061' TMSGC <Packets Rcvd >
1581 001665' 004 11 0 00 001404' PNTDCP 9,T12PAK
1582 001666' 004 11 0 00 006335' PNTDCP 9,NPAKR
1583 001667' 037 00 0 00 007065' TMSGC < Status Errors 0.>
1584 001670' 004 11 0 00 006336' PNTDCP 9,NPAKRE
1585 001671' 037 00 0 00 007073' TMSGC < CRC Errors 0.>
1586 001672' 004 11 0 00 006337' PNTDCP 9,NPAKRC
1587 001673' 037 00 0 00 007101' TMSGC < DtCmp Errors (PKTS) 0.>
1588 001674' 004 11 0 00 006340' PNTDCP 9,NPAKRD
1589 001675' 037 00 0 00 007107' TMSGC < DtCmp Errors (WORDS) 0.>
1590 001676' 004 11 0 00 006341' PNTDCP 9,NPAKRW
1591 001677' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 37
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0605
1592
1593 ; Length table
1594
1595 001700' 000000 000024 T12LEN: EXP ^D20,^D20,^D20,^D30,^D30,^D30,^D40,^D40,^D40,^D50,^D50,^D50
1596 001701' 000000 000024
1597 001702' 000000 000024
1598 001703' 000000 000036
1599 001704' 000000 000036
1600 001705' 000000 000036
1601 001706' 000000 000050
1602 001707' 000000 000050
1603 001710' 000000 000050
1604 001711' 000000 000062
1605 001712' 000000 000062
1606 001713' 000000 000062
1607 001714' 000000 000074 EXP ^D60,^D60,^D60,^D70,^D70,^D70,^D80,^D80,^D80,^D90,^D90,^D90
1608 001715' 000000 000074
1609 001716' 000000 000074
1610 001717' 000000 000106
1611 001720' 000000 000106
1612 001721' 000000 000106
1613 001722' 000000 000120
1614 001723' 000000 000120
1615 001724' 000000 000120
1616 001725' 000000 000132
1617 001726' 000000 000132
1618 001727' 000000 000132
1619 001730' 000000 000144 EXP ^D100
1620
1621 ;#********************************************************************
1622 ;* CRCINI - Special routine to clear a CRC table used by TST12...
1623 ;#********************************************************************
1624
1625 001731' 261 17 0 00 000001 CRCINI: PUT 1 ; save AC1
1626 001732' 402 00 0 00 001741' SETZM CRCTAB ; clear first word
1627 001733' 200 01 0 00 007255' MOVE 1,[CRCTAB,,CRCTAB+1] ; build BLT pointer
1628 001734' 251 01 0 00 002301' BLT 1,CRCTAB+^D9*^D25-1 ; clear the rest of it
1629 001735' 262 17 0 00 000001 GET 1 ; restore AC1
1630 001736' 263 17 0 00 000000 RTN ; return
1631
1632 001737' 000000 000000 CRCSAV: 0
1633 001740' 000000 000000 CRCOFF: 0
1634 001741' CRCTAB: BLOCK ^D9*^D25
1635 002302' 000000 000000 0
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 38
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0606
1636
1637 ;#********************************************************************
1638 ;* TEST 13 - BSD Datagram Loopback Test 1
1639 ;
1640 ; Description: This test sends a self-directed datagram with the
1641 ; correct CRC appended to it. The data is verified
1642 ; when received and the receive status verified.
1643 ; The datagram is in BSD style format with only
1644 ; COMPAT format data specified. This is repeated
1645 ; with several data patterns and packet lengths.
1646 ;
1647 ; Procedure: KL> Load microcode
1648 ; KL> Port Clear
1649 ; KL> Start port
1650 ;
1651 ; KL> Build a self-directed datagram, insert on command
1652 ; queue, and wait for a response
1653 ; KL> Verify proper response
1654 ; KL> Verify data portion of packet received properly
1655 ; If failed - print error message and exit test
1656 ;
1657 ; Do for:
1658 ; data patterns: 116-126
1659 ; text length (words): 20-200
1660 ;
1661 ; FRU: NIA Module
1662 ;#********************************************************************
1663
1664 003410 T13PAK==^D9*^D25*^D8 ; number of packets to send
1665
1666 ; Initialization
1667
1668 002303' 201 00 0 00 000000' TST13: MOVEI Z3 ; get address of module start
1669 002304' 260 17 0 00 001406* GO TRACE ; handle trace output
1670 002305' 402 00 0 00 010111' SETZM SDEBUG ; clear debug flag
1671 002306' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
1672 002307' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
1673 002310' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
1674 002311' 260 17 0 00 001413* GO IPACLR ; do a 'port clear'
1675 002312' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
1676 002313' 260 17 0 00 001415* GO TFLOAD ; load operational microcode
1677 GO [MOVEM TERMES ; error - save error message
1678 SETO ERFLG,
1679 002314' 260 17 0 00 006552' RTN]
1680 002315' 027 00 0 00 002535' SCOPER MA13 ; print error message
1681 002316' 255 00 0 00 000000 JFCL ; loop on error
1682 002317' 254 00 0 00 002532' JRST TX13 ; altmode exit
1683 002320' 326 15 0 00 002532' JUMPN ERFLG,TX13 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 39
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0607
1684
1685 ; Start port
1686
1687 002321' 260 17 0 00 001423* GO TIDLE ; start port
1688 002322' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1689 002323' 027 00 0 00 002537' SCOPER MB13 ; print error message
1690 002324' 255 00 0 00 000000 JFCL ; loop on error
1691 002325' 254 00 0 00 002532' JRST TX13 ; altmode exit
1692 002326' 326 15 0 00 002532' JUMPN ERFLG,TX13 ; error yet? yes - abort test
1693
1694 ; Enable the port
1695
1696 002327' 260 17 0 00 001431* GO SETENA ; ensure the port is enabled
1697 002330' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1698 002331' 027 00 0 00 002542' SCOPER MC13 ; print error message
1699 002332' 255 00 0 00 000000 JFCL ; loop on error
1700 002333' 254 00 0 00 002532' JRST TX13 ; altmode exit
1701 002334' 326 15 0 00 002532' JUMPN ERFLG,TX13 ; error yet? yes - abort test
1702
1703 ; Set up multicast and PTT tables
1704
1705 002335' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
1706 002336' 027 00 0 00 006540' SCOPER LOADPE ; print error message
1707 002337' 255 00 0 00 000000 JFCL ; loop on error
1708 002340' 254 00 0 00 002532' JRST TX13 ; altmode exit
1709 002341' 326 15 0 00 002532' JUMPN ERFLG,TX13 ; error yet? yes - abort test
1710
1711 ; Initialize packet data
1712
1713 002342' 402 00 0 00 001444* SETZM TFMFLG ; set to COMPAT mode
1714 002343' 476 00 0 00 001445* SETOM TRSFLG ; set 'response requested' flag
1715 002344' 402 00 0 00 001446* SETZM TPDFLG ; clear pad flag
1716 002345' 476 00 0 00 001447* SETOM TBSDFL ; set to BSD style datagram
1717 002346' 120 00 0 00 001450* DMOVE SADDR ; initialize destination address
1718 002347' 124 00 0 00 001451* DMOVEM TDEST ; to self
1719 002350' 201 00 0 00 000005 MOVEI 5 ; get protocol type
1720 002351' 202 00 0 00 001453* MOVEM TPTTVL ; save it
1721 002352' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
1722 002353' 201 00 0 00 000115 MOVEI 115 ; set initial data pattern
1723 002354' 202 00 0 00 001510* MOVEM TPAT ; ...
1724 002355' 402 00 0 00 001546* SETZM TSTSUB ; initialize subtest number
1725 002356' 260 17 0 00 001731' GO CRCINI ; initialize CRC table
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 40
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0608
1726
1727 ; Initialize statistics
1728
1729 002357' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
1730 002360' 402 00 0 00 006334' SETZM NPAKSE ; clear sent status error count
1731 002361' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
1732 002362' 402 00 0 00 006336' SETZM NPAKRE ; clear recv status error count
1733 002363' 402 00 0 00 006337' SETZM NPAKRC ; clear recv CRC error count
1734 002364' 402 00 0 00 006340' SETZM NPAKRD ; clear recv dt.cmp error count (pkts)
1735 002365' 402 00 0 00 006341' SETZM NPAKRW ; clear recv dt.cmp error count (words)
1736 002366' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
1737 MOVEI [MOVE TLNPAT ; set up packet data for text
1738 MOVEM PACKET+20 ; length and data pattern
1739 RPUT (1,2)
1740 LDB 1,[POINT 14,TLNPAT,31]
1741 IMULI 1,^D9
1742 HLRZ TLNPAT
1743 ADD 1,
1744 SUBI 1,116
1745 MOVEM 1,CRCOFF
1746 MOVE 2,CRCTAB(1)
1747 MOVEM 2,CRCSAV
1748 RGET (2,1)
1749 002367' 201 00 0 00 007256' RTN]
1750 002370' 202 00 0 00 001472* MOVEM TXADDL
1751 002371' 402 00 0 00 001473* SETZM RQAFLG ; clear response queue available flag
1752 002372' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
1753
1754 ; Increment pattern
1755
1756 002373' 350 01 0 00 002354* TA13: AOS 1,TPAT ; increment pattern
1757 002374' 303 01 0 00 000126 CAILE 1,126 ; done yet?
1758 002375' 254 00 0 00 002463' JRST TG13 ; yes - check test completion
1759 002376' 476 00 0 00 010113' SETOM TLEN# ; initialize length pointer
1760
1761 ; Increment length
1762
1763 002377' 350 01 0 00 010113' TB13: AOS 1,TLEN ; increment length
1764 002400' 301 01 0 00 000031 CAIL 1,^D25 ; done yet?
1765 002401' 254 00 0 00 002373' JRST TA13 ; yes - check next pattern
1766 002402' 402 00 0 00 001504* SETZM TBYTE ; no - clear byte count
1767 002403' 200 00 0 01 001700' MOVE T12LEN(1) ; get length
1768 002404' 202 00 0 00 001506* MOVEM TWORD ; save it
1769 002405' 137 01 0 00 007150' DPB 1,[POINT 14,TLNPAT,31] ; put in LEN/PAT word
1770 002406' 200 00 0 00 002373* MOVE TPAT ; get data pattern
1771 002407' 506 00 0 00 010114' HRLM TLNPAT ; set up LEN/PAT word
1772 002410' 201 10 0 00 000010 MOVEI 10,^D8 ; initialize packet count
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 41
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0609
1773 002411' 332 00 0 00 010111' SKIPE SDEBUG ; debug mode?
1774 GO [TMSGC <** Pat >
1775 MOVE TPAT
1776 PNTOCS
1777 TMSG < Len >
1778 MOVE TWORD
1779 PNTDEC
1780 TMSGD < **>
1781 002412' 260 17 0 00 007176' RTN]
1782
1783 ; Decrement packet count (7-0)
1784
1785 002413' 361 10 0 00 002377' TC13: SOJL 10,TB13 ; done yet? yes - check next length
1786 002414' 400 06 0 00 000000 SETZ 6, ; clear hung count
1787
1788 ; Send a packet
1789
1790 002415' 037 07 0 00 000003 TD13: TTALTM ; altmode typed?
1791 002416' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
1792 002417' 476 00 0 00 001522* SETOM ALTF ; yes - set flag
1793 002420' 332 00 0 00 002417* SKIPE ALTF ; altmode flagged?
1794 002421' 254 00 0 00 002532' JRST TX13 ; yes - exit
1795 002422' 336 00 0 00 001525* SKIPN LCHAR ; last character in here already?
1796 002423' 202 00 0 00 002422* MOVEM LCHAR ; no - save 'last char typed'
1797 002424' 260 17 0 00 001526* GO PSTAMP ; check for S typed
1798 002425' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
1799 002426' 260 17 0 00 006046' GO MPACK ; build packet into 'PACKET'
1800
1801 002427' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
1802 002430' 260 17 0 00 001532* GO CHKINT ; get list of queue entries
1803 002431' 255 00 0 00 000000 JFCL ; ignore error
1804 002432' 476 00 0 00 001534* SETOM PTTFQ ; reset the interlock
1805 002433' 200 00 0 00 001547* MOVE NUMENT ; get entry count
1806 002434' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
1807 002435' 254 00 0 00 002447' JRST TE13 ; no - continue
1808
1809 002436' 260 17 0 00 001540* GO INSQUE ; insert into queue
1810 002437' 254 00 0 00 002442' JRST .+3 ; failed - continue
1811 002440' 254 00 0 00 002442' JRST .+2 ; failed - continue
1812 002441' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
1813 002442' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
1814 002443' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
1815 002444' 350 00 0 00 002355* AOS TSTSUB ; increment subtest number
1816 002445' 337 00 0 00 002433* SKIPG NUMENT ; was the queue empty?
1817 GO [GO RDCSR ; yes - set 'CMDQAV'
1818 MOVEI 1,PENABL!MPRUN
1819 TRZ 1,RESQAV
1820 TRO 1,CMDQAV
1821 GO LDCSR
1822 002446' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 42
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0610
1823
1824 ; Check for a response
1825
1826 002447' 260 17 0 00 001574* TE13: GO CHKRQV ; check response queue available
1827 002450' 260 17 0 00 001575* GO CHKRSP ; check for RspQ entry
1828 JRST [SETZM RQAFLG ; no entry found - continue
1829 MOVE 1,PCB+5 ; get response queue FLINK
1830 GO CONVIR ; convert to virtual
1831 CAIE 1,PCB+5 ; queue really empty?
1832 SETOM RQAFLG ; no - set rsp queue avail flag
1833 GO CHKDEB ; check for debug mode
1834 002451' 254 00 0 00 007275' JRST TF13]
1835 002452' 400 06 0 00 000000 SETZ 6, ; clear hung count
1836 002453' 260 17 0 00 006166' GO MCHECK ; determine results
1837 002454' 260 17 0 00 006101' GO MCOMP ; compare packet data
1838 002455' 254 00 0 00 002447' JRST TE13 ; keep looking for responses
1839
1840 ; No more responses
1841
1842 002456' 350 00 0 00 000006 TF13: AOS 6 ; increment hung count
1843 002457' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
1844 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
1845 002460' 254 00 0 00 007304' JRST TG13] ; and exit
1846 002461' 322 07 0 00 002415' JUMPE 7,TD13 ; send current packet? yes - go do so
1847 002462' 254 00 0 00 002413' JRST TC13 ; no - already did - go do next packet
1848
1849 ; Check for any stragglers
1850
1851 002463' 332 00 0 00 010111' TG13: SKIPE SDEBUG ; debug mode?
1852 002464' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
1853 002465' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
1854 002466' 260 17 0 00 001603* GO RUNTME ; get current run time
1855 002467' 200 01 0 00 001604* MOVE 1,DEBTIM ; get time in milliseconds
1856 002470' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
1857 002471' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
1858 002472' 260 17 0 00 002447* TH13: GO CHKRQV ; check response queue available
1859 002473' 260 17 0 00 002450* GO CHKRSP ; check for RspQ entry
1860 JRST [SETZM RQAFLG ; no entry found - continue
1861 MOVE 1,PCB+5 ; get response queue FLINK
1862 GO CONVIR ; convert to virtual
1863 CAIE 1,PCB+5 ; queue really empty?
1864 SETOM RQAFLG ; no - set rsp queue avail flag
1865 GO CHKDEB ; check for debug mode
1866 002474' 254 00 0 00 007306' JRST TI13]
1867 002475' 260 17 0 00 006166' GO MCHECK ; determine results
1868 002476' 260 17 0 00 006101' GO MCOMP ; compare packet data
1869 002477' 254 00 0 00 002472' JRST TH13 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 43
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0611
1870
1871 ; Check timeout
1872
1873 002500' 400 03 0 00 000000 TI13: SETZ 3, ; set up for RUNTME
1874 002501' 260 17 0 00 002466* GO RUNTME ; get current run time
1875 002502' 200 01 0 00 002467* MOVE 1,DEBTIM ; get time in milliseconds
1876 002503' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
1877 002504' 254 00 0 00 002472' JRST TH13 ; no - keep looping
1878
1879 ; Done with test - now check results
1880
1881 002505' 332 00 0 00 010111' TJ13: SKIPE SDEBUG ; debug mode?
1882 002506' 037 00 0 00 007235' TMSGCD <** Done - check results **>
1883 002507' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
1884 002510' 302 00 0 00 003410 CAIE T13PAK ; correct number?
1885 002511' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1886 002512' 200 00 0 00 006333' MOVE NPAKS ; get packets sent
1887 002513' 231 00 0 00 000012 IDIVI ^D10 ; get 10%
1888 002514' 315 00 0 00 006334' CAMGE NPAKSE ; more status errors than 10%?
1889 002515' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1890 002516' 200 00 0 00 006335' MOVE NPAKR ; get receive count
1891 002517' 305 00 0 00 003124 CAIGE T13PAK*^D9/^D10 ; more than 90% received?
1892 002520' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
1893 002521' 332 00 0 00 006336' SKIPE NPAKRE ; any receive status errors?
1894 002522' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1895 002523' 332 00 0 00 006340' SKIPE NPAKRD ; any receive dt.cmp errors?
1896 002524' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1897 002525' 332 00 0 00 006337' SKIPE NPAKRC ; any CRC errors?
1898 002526' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
1899 002527' 027 00 0 00 002545' SCOPER MD13 ; print error message
1900 002530' 255 00 0 00 000000 JFCL ; loop on error
1901 002531' 254 00 0 00 002532' JRST TX13 ; altmode exit
1902
1903 ; Exit
1904
1905 002532' 260 17 0 00 001636* TX13: GO SETDSA ; disable the port
1906 002533' 260 17 0 00 001637* GO ISTOP ; stop the port
1907 002534' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 44
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0612
1908
1909 ; Error messages
1910
1911 002535' 260000 006324' MA13: TXALL!CALL!LODERR
1912 002536' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1913
1914 002537' 160000 006561' MB13: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
1915 002540' 260000 006276' TXALL!CALL!PDUMP
1916 002541' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1917
1918 002542' 160000 006663' MC13: TXALL!MSG![ASCIZ /Could not enable the port/]
1919 002543' 260000 006276' TXALL!CALL!PDUMP
1920 002544' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
1921
1922 002545' 160000 007017' MD13: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
1923 002546' 260000 002551' TXALL!CALL!MD13PN
1924 002547' 260000 006276' TXALL!CALL!PDUMP
1925 002550' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
1926
1927 002551' 037 00 0 00 007030' MD13PN: TMSGC < What Expected Actual>
1928 002552' 037 00 0 00 007040' TMSGC <----------- -------- ------>
1929 002553' 037 00 0 00 007050' TMSGC <Packets Sent >
1930 002554' 004 11 0 00 007315' PNTDCP 9,[T13PAK]
1931 002555' 004 11 0 00 006333' PNTDCP 9,NPAKS
1932 002556' 037 00 0 00 007065' TMSGC < Status Errors 0.>
1933 002557' 004 11 0 00 006334' PNTDCP 9,NPAKSE
1934 002560' 037 00 0 00 007061' TMSGC <Packets Rcvd >
1935 002561' 004 11 0 00 007315' PNTDCP 9,[T13PAK]
1936 002562' 004 11 0 00 006335' PNTDCP 9,NPAKR
1937 002563' 037 00 0 00 007065' TMSGC < Status Errors 0.>
1938 002564' 004 11 0 00 006336' PNTDCP 9,NPAKRE
1939 002565' 037 00 0 00 007073' TMSGC < CRC Errors 0.>
1940 002566' 004 11 0 00 006337' PNTDCP 9,NPAKRC
1941 002567' 037 00 0 00 007101' TMSGC < DtCmp Errors (PKTS) 0.>
1942 002570' 004 11 0 00 006340' PNTDCP 9,NPAKRD
1943 002571' 037 00 0 00 007107' TMSGC < DtCmp Errors (WORDS) 0.>
1944 002572' 004 11 0 00 006341' PNTDCP 9,NPAKRW
1945 002573' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 45
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0613
1946
1947 ;#********************************************************************
1948 ;* TEST 14 - BSD Datagram Loopback Test 2
1949 ;
1950 ; Description: This test sends a self-directed datagram with the
1951 ; correct CRC appended to it. The data is verified
1952 ; when received and the receive status verified.
1953 ; The datagram is in BSD style format with only
1954 ; HIDEN format data specified. This is repeated
1955 ; with several data patterns and packet lengths.
1956 ;
1957 ; Procedure: KL> Load microcode
1958 ; KL> Port Clear
1959 ; KL> Start port
1960 ;
1961 ; KL> Build a self-directed datagram, insert on command
1962 ; queue, and wait for a response
1963 ; KL> Verify proper response
1964 ; KL> Verify data portion of packet received properly
1965 ; If failed - print error message and exit test
1966 ;
1967 ; Do for:
1968 ; data patterns: 116-126
1969 ; text length (words): 20-200
1970 ;
1971 ; FRU: NIA Module
1972 ;#********************************************************************
1973
1974 003410 T14PAK==^D9*^D25*^D8 ; number of packets to send
1975
1976 ; Initialization
1977
1978 002574' 201 00 0 00 000000' TST14: MOVEI Z3 ; get address of module start
1979 002575' 260 17 0 00 002304* GO TRACE ; handle trace output
1980 002576' 402 00 0 00 010111' SETZM SDEBUG ; clear debug flag
1981 002577' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
1982 002600' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
1983 002601' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
1984 002602' 260 17 0 00 002311* GO IPACLR ; do a 'port clear'
1985 002603' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
1986 002604' 260 17 0 00 002313* GO TFLOAD ; load operational microcode
1987 GO [MOVEM TERMES ; error - save error message
1988 SETO ERFLG,
1989 002605' 260 17 0 00 006552' RTN]
1990 002606' 027 00 0 00 003026' SCOPER MA14 ; print error message
1991 002607' 255 00 0 00 000000 JFCL ; loop on error
1992 002610' 254 00 0 00 003023' JRST TX14 ; altmode exit
1993 002611' 326 15 0 00 003023' JUMPN ERFLG,TX14 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 46
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0614
1994
1995 ; Start port
1996
1997 002612' 260 17 0 00 002321* GO TIDLE ; start port
1998 002613' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
1999 002614' 027 00 0 00 003030' SCOPER MB14 ; print error message
2000 002615' 255 00 0 00 000000 JFCL ; loop on error
2001 002616' 254 00 0 00 003023' JRST TX14 ; altmode exit
2002 002617' 326 15 0 00 003023' JUMPN ERFLG,TX14 ; error yet? yes - abort test
2003
2004 ; Enable the port
2005
2006 002620' 260 17 0 00 002327* GO SETENA ; ensure the port is enabled
2007 002621' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2008 002622' 027 00 0 00 003033' SCOPER MC14 ; print error message
2009 002623' 255 00 0 00 000000 JFCL ; loop on error
2010 002624' 254 00 0 00 003023' JRST TX14 ; altmode exit
2011 002625' 326 15 0 00 003023' JUMPN ERFLG,TX14 ; error yet? yes - abort test
2012
2013 ; Set up multicast and PTT tables
2014
2015 002626' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
2016 002627' 027 00 0 00 006540' SCOPER LOADPE ; print error message
2017 002630' 255 00 0 00 000000 JFCL ; loop on error
2018 002631' 254 00 0 00 003023' JRST TX14 ; altmode exit
2019 002632' 326 15 0 00 003023' JUMPN ERFLG,TX14 ; error yet? yes - abort test
2020
2021 ; Initialize packet data
2022
2023 002633' 476 00 0 00 002342* SETOM TFMFLG ; set to HIDEN mode
2024 002634' 476 00 0 00 002343* SETOM TRSFLG ; set 'response requested' flag
2025 002635' 402 00 0 00 002344* SETZM TPDFLG ; clear pad flag
2026 002636' 476 00 0 00 002345* SETOM TBSDFL ; set to BSD style datagram
2027 002637' 120 00 0 00 002346* DMOVE SADDR ; initialize destination address
2028 002640' 124 00 0 00 002347* DMOVEM TDEST ; to self
2029 002641' 201 00 0 00 000005 MOVEI 5 ; get protocol type
2030 002642' 202 00 0 00 002351* MOVEM TPTTVL ; save it
2031 002643' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
2032 002644' 201 00 0 00 000115 MOVEI 115 ; set initial data pattern
2033 002645' 202 00 0 00 002406* MOVEM TPAT ; ...
2034 002646' 402 00 0 00 002444* SETZM TSTSUB ; initialize subtest number
2035 002647' 260 17 0 00 001731' GO CRCINI ; initialize CRC table
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 47
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0615
2036
2037 ; Initialize statistics
2038
2039 002650' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
2040 002651' 402 00 0 00 006334' SETZM NPAKSE ; clear sent status error count
2041 002652' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
2042 002653' 402 00 0 00 006336' SETZM NPAKRE ; clear recv status error count
2043 002654' 402 00 0 00 006337' SETZM NPAKRC ; clear recv CRC error count
2044 002655' 402 00 0 00 006340' SETZM NPAKRD ; clear recv dt.cmp error count (pkts)
2045 002656' 402 00 0 00 006341' SETZM NPAKRW ; clear recv dt.cmp error count (words)
2046 002657' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
2047 MOVEI [MOVE TLNPAT ; set up packet data for text
2048 MOVEM PACKET+20 ; length and data pattern
2049 RPUT (1,2)
2050 LDB 1,[POINT 14,TLNPAT,31]
2051 IMULI 1,^D9
2052 HLRZ TLNPAT
2053 ADD 1,
2054 SUBI 1,116
2055 MOVEM 1,CRCOFF
2056 MOVE 2,CRCTAB(1)
2057 MOVEM 2,CRCSAV
2058 RGET (2,1)
2059 002660' 201 00 0 00 007316' RTN]
2060 002661' 202 00 0 00 002370* MOVEM TXADDL
2061 002662' 402 00 0 00 002371* SETZM RQAFLG ; clear response queue available flag
2062 002663' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
2063
2064 ; Increment pattern
2065
2066 002664' 350 01 0 00 002645* TA14: AOS 1,TPAT ; increment pattern
2067 002665' 303 01 0 00 000126 CAILE 1,126 ; done yet?
2068 002666' 254 00 0 00 002754' JRST TG14 ; yes - check test completion
2069 002667' 476 00 0 00 010113' SETOM TLEN# ; initialize length pointer
2070
2071 ; Increment length
2072
2073 002670' 350 01 0 00 010113' TB14: AOS 1,TLEN ; increment length
2074 002671' 301 01 0 00 000031 CAIL 1,^D25 ; done yet?
2075 002672' 254 00 0 00 002664' JRST TA14 ; yes - check next pattern
2076 002673' 402 00 0 00 002402* SETZM TBYTE ; no - clear byte count
2077 002674' 200 00 0 01 001700' MOVE T12LEN(1) ; get length
2078 002675' 202 00 0 00 002404* MOVEM TWORD ; save it
2079 002676' 137 01 0 00 007150' DPB 1,[POINT 14,TLNPAT,31] ; put in LEN/PAT word
2080 002677' 200 00 0 00 002664* MOVE TPAT ; get data pattern
2081 002700' 506 00 0 00 010114' HRLM TLNPAT ; set up LEN/PAT word
2082 002701' 201 10 0 00 000010 MOVEI 10,^D8 ; initialize packet count
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 48
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0616
2083 002702' 332 00 0 00 010111' SKIPE SDEBUG ; debug mode?
2084 GO [TMSGC <** Pat >
2085 MOVE TPAT
2086 PNTOCS
2087 TMSG < Len >
2088 MOVE TWORD
2089 PNTDEC
2090 TMSGD < **>
2091 002703' 260 17 0 00 007176' RTN]
2092
2093 ; Decrement packet count (7-0)
2094
2095 002704' 361 10 0 00 002670' TC14: SOJL 10,TB14 ; done yet? yes - check next length
2096 002705' 400 06 0 00 000000 SETZ 6, ; clear hung count
2097
2098 ; Send a packet
2099
2100 002706' 037 07 0 00 000003 TD14: TTALTM ; altmode typed?
2101 002707' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
2102 002710' 476 00 0 00 002420* SETOM ALTF ; yes - set flag
2103 002711' 332 00 0 00 002710* SKIPE ALTF ; altmode flagged?
2104 002712' 254 00 0 00 003023' JRST TX14 ; yes - exit
2105 002713' 336 00 0 00 002423* SKIPN LCHAR ; last character in here already?
2106 002714' 202 00 0 00 002713* MOVEM LCHAR ; no - save 'last char typed'
2107 002715' 260 17 0 00 002424* GO PSTAMP ; check for S typed
2108 002716' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
2109 002717' 260 17 0 00 006046' GO MPACK ; build packet into 'PACKET'
2110
2111 002720' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
2112 002721' 260 17 0 00 002430* GO CHKINT ; get list of queue entries
2113 002722' 255 00 0 00 000000 JFCL ; ignore error
2114 002723' 476 00 0 00 002432* SETOM PTTFQ ; reset the interlock
2115 002724' 200 00 0 00 002445* MOVE NUMENT ; get entry count
2116 002725' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
2117 002726' 254 00 0 00 002740' JRST TE14 ; no - continue
2118
2119 002727' 260 17 0 00 002436* GO INSQUE ; insert into queue
2120 002730' 254 00 0 00 002733' JRST .+3 ; failed - continue
2121 002731' 254 00 0 00 002733' JRST .+2 ; failed - continue
2122 002732' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
2123 002733' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
2124 002734' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
2125 002735' 350 00 0 00 002646* AOS TSTSUB ; increment subtest number
2126 002736' 337 00 0 00 002724* SKIPG NUMENT ; was the queue empty?
2127 GO [GO RDCSR ; yes - set 'CMDQAV'
2128 MOVEI 1,PENABL!MPRUN
2129 TRZ 1,RESQAV
2130 TRO 1,CMDQAV
2131 GO LDCSR
2132 002737' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 49
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0617
2133
2134 ; Check for a response
2135
2136 002740' 260 17 0 00 002472* TE14: GO CHKRQV ; check response queue available
2137 002741' 260 17 0 00 002473* GO CHKRSP ; check for RspQ entry
2138 JRST [SETZM RQAFLG ; no entry found - continue
2139 MOVE 1,PCB+5 ; get response queue FLINK
2140 GO CONVIR ; convert to virtual
2141 CAIE 1,PCB+5 ; queue really empty?
2142 SETOM RQAFLG ; no - set rsp queue avail flag
2143 GO CHKDEB ; check for debug mode
2144 002742' 254 00 0 00 007335' JRST TF14]
2145 002743' 400 06 0 00 000000 SETZ 6, ; clear hung count
2146 002744' 260 17 0 00 006166' GO MCHECK ; determine results
2147 002745' 260 17 0 00 006101' GO MCOMP ; compare packet data
2148 002746' 254 00 0 00 002740' JRST TE14 ; keep looking for responses
2149
2150 ; No more responses
2151
2152 002747' 350 00 0 00 000006 TF14: AOS 6 ; increment hung count
2153 002750' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
2154 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
2155 002751' 254 00 0 00 007344' JRST TG14] ; and exit
2156 002752' 322 07 0 00 002706' JUMPE 7,TD14 ; send current packet? yes - go do so
2157 002753' 254 00 0 00 002704' JRST TC14 ; no - already did - go do next packet
2158
2159 ; Check for any stragglers
2160
2161 002754' 332 00 0 00 010111' TG14: SKIPE SDEBUG ; debug mode?
2162 002755' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
2163 002756' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
2164 002757' 260 17 0 00 002501* GO RUNTME ; get current run time
2165 002760' 200 01 0 00 002502* MOVE 1,DEBTIM ; get time in milliseconds
2166 002761' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
2167 002762' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
2168 002763' 260 17 0 00 002740* TH14: GO CHKRQV ; check response queue available
2169 002764' 260 17 0 00 002741* GO CHKRSP ; check for RspQ entry
2170 JRST [SETZM RQAFLG ; no entry found - continue
2171 MOVE 1,PCB+5 ; get response queue FLINK
2172 GO CONVIR ; convert to virtual
2173 CAIE 1,PCB+5 ; queue really empty?
2174 SETOM RQAFLG ; no - set rsp queue avail flag
2175 GO CHKDEB ; check for debug mode
2176 002765' 254 00 0 00 007346' JRST TI14]
2177 002766' 260 17 0 00 006166' GO MCHECK ; determine results
2178 002767' 260 17 0 00 006101' GO MCOMP ; compare packet data
2179 002770' 254 00 0 00 002763' JRST TH14 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 50
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0618
2180
2181 ; Check timeout
2182
2183 002771' 400 03 0 00 000000 TI14: SETZ 3, ; set up for RUNTME
2184 002772' 260 17 0 00 002757* GO RUNTME ; get current run time
2185 002773' 200 01 0 00 002760* MOVE 1,DEBTIM ; get time in milliseconds
2186 002774' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
2187 002775' 254 00 0 00 002763' JRST TH14 ; no - keep looping
2188
2189 ; Done with test - now check results
2190
2191 002776' 332 00 0 00 010111' TJ14: SKIPE SDEBUG ; debug mode?
2192 002777' 037 00 0 00 007235' TMSGCD <** Done - check results **>
2193 003000' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
2194 003001' 302 00 0 00 003410 CAIE T14PAK ; correct number?
2195 003002' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
2196 003003' 200 00 0 00 006333' MOVE NPAKS ; get packets sent
2197 003004' 231 00 0 00 000012 IDIVI ^D10 ; get 10%
2198 003005' 315 00 0 00 006334' CAMGE NPAKSE ; more status errors than 10%?
2199 003006' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2200 003007' 200 00 0 00 006335' MOVE NPAKR ; get receive count
2201 003010' 305 00 0 00 003124 CAIGE T14PAK*^D9/^D10 ; more than 90% received?
2202 003011' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
2203 003012' 332 00 0 00 006336' SKIPE NPAKRE ; any receive status errors?
2204 003013' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2205 003014' 332 00 0 00 006340' SKIPE NPAKRD ; any receive dt.cmp errors?
2206 003015' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2207 003016' 332 00 0 00 006337' SKIPE NPAKRC ; any CRC errors?
2208 003017' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2209 003020' 027 00 0 00 003036' SCOPER MD14 ; print error message
2210 003021' 255 00 0 00 000000 JFCL ; loop on error
2211 003022' 254 00 0 00 003023' JRST TX14 ; altmode exit
2212
2213 ; Exit
2214
2215 003023' 260 17 0 00 002532* TX14: GO SETDSA ; disable the port
2216 003024' 260 17 0 00 002533* GO ISTOP ; stop the port
2217 003025' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 51
DFNIA3 MAC 30-Nov-83 16:40 Datagram Loopback Tests SEQ 0619
2218
2219 ; Error messages
2220
2221 003026' 260000 006324' MA14: TXALL!CALL!LODERR
2222 003027' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2223
2224 003030' 160000 006561' MB14: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
2225 003031' 260000 006276' TXALL!CALL!PDUMP
2226 003032' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2227
2228 003033' 160000 006663' MC14: TXALL!MSG![ASCIZ /Could not enable the port/]
2229 003034' 260000 006276' TXALL!CALL!PDUMP
2230 003035' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2231
2232 003036' 160000 007017' MD14: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
2233 003037' 260000 003042' TXALL!CALL!MD14PN
2234 003040' 260000 006276' TXALL!CALL!PDUMP
2235 003041' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
2236
2237 003042' 037 00 0 00 007030' MD14PN: TMSGC < What Expected Actual>
2238 003043' 037 00 0 00 007040' TMSGC <----------- -------- ------>
2239 003044' 037 00 0 00 007050' TMSGC <Packets Sent >
2240 003045' 004 11 0 00 007315' PNTDCP 9,[T14PAK]
2241 003046' 004 11 0 00 006333' PNTDCP 9,NPAKS
2242 003047' 037 00 0 00 007065' TMSGC < Status Errors 0.>
2243 003050' 004 11 0 00 006334' PNTDCP 9,NPAKSE
2244 003051' 037 00 0 00 007061' TMSGC <Packets Rcvd >
2245 003052' 004 11 0 00 007315' PNTDCP 9,[T14PAK]
2246 003053' 004 11 0 00 006335' PNTDCP 9,NPAKR
2247 003054' 037 00 0 00 007065' TMSGC < Status Errors 0.>
2248 003055' 004 11 0 00 006336' PNTDCP 9,NPAKRE
2249 003056' 037 00 0 00 007073' TMSGC < CRC Errors 0.>
2250 003057' 004 11 0 00 006337' PNTDCP 9,NPAKRC
2251 003060' 037 00 0 00 007101' TMSGC < DtCmp Errors (PKTS) 0.>
2252 003061' 004 11 0 00 006340' PNTDCP 9,NPAKRD
2253 003062' 037 00 0 00 007107' TMSGC < DtCmp Errors (WORDS) 0.>
2254 003063' 004 11 0 00 006341' PNTDCP 9,NPAKRW
2255 003064' 263 17 0 00 000000 RTN
2256
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 52
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0620
2257 SUBTTL Multicast Address Tests
2258
2259 ;#********************************************************************
2260 ;* TEST 15 - Multicast Table Test 1
2261 ;
2262 ; Description: This test sets up the multicast table to enable
2263 ; no multicast addresses. Then a datagram is sent
2264 ; to each multicast address in the table and the
2265 ; results are verified.
2266 ;
2267 ; Procedure: KL> Load microcode
2268 ; KL> Port Clear
2269 ; KL> Start port
2270 ;
2271 ; KL> Build a self-directed datagram to the first
2272 ; multicast address and insert on command queue
2273 ; KL> Verify that no datagram is received
2274 ; If failed - print error message and exit test
2275 ;
2276 ; Repeat 16 times, once for each possible multicast
2277 ; address.
2278 ;
2279 ; FRU: NIA Module
2280 ;#********************************************************************
2281
2282 000020 T15PAK==^D16 ; number of packets to send
2283 000100 T15LEN==^D64 ; packet length
2284
2285 ; Initialization
2286
2287 003065' 201 00 0 00 000000' TST15: MOVEI Z3 ; get address of module start
2288 003066' 260 17 0 00 002575* GO TRACE ; handle trace output
2289 003067' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
2290 003070' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
2291 003071' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
2292 003072' 260 17 0 00 002602* GO IPACLR ; do a 'port clear'
2293 003073' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
2294 003074' 260 17 0 00 002604* GO TFLOAD ; load operational microcode
2295 GO [MOVEM TERMES ; error - save error message
2296 SETO ERFLG,
2297 003075' 260 17 0 00 006552' RTN]
2298 003076' 027 00 0 00 003261' SCOPER MA15 ; print error message
2299 003077' 255 00 0 00 000000 JFCL ; loop on error
2300 003100' 254 00 0 00 003254' JRST TX15 ; altmode exit
2301 003101' 326 15 0 00 003254' JUMPN ERFLG,TX15 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 53
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0621
2302
2303 ; Start port
2304
2305 003102' 201 00 0 00 003305' MOVEI T15SPC ; set up address of routine to
2306 003103' 202 00 0 00 010110' MOVEM PSPEC ; disable multicast addresses
2307 003104' 260 17 0 00 006373' GO PIDLE ; start port
2308 003105' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2309 003106' 402 00 0 00 010110' SETZM PSPEC ; clear special routine address
2310 003107' 027 00 0 00 003263' SCOPER MB15 ; print error message
2311 003110' 255 00 0 00 000000 JFCL ; loop on error
2312 003111' 254 00 0 00 003254' JRST TX15 ; altmode exit
2313 003112' 326 15 0 00 003254' JUMPN ERFLG,TX15 ; error yet? yes - abort test
2314
2315 ; Enable the port
2316
2317 003113' 260 17 0 00 002620* GO SETENA ; ensure the port is enabled
2318 003114' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2319 003115' 027 00 0 00 003266' SCOPER MC15 ; print error message
2320 003116' 255 00 0 00 000000 JFCL ; loop on error
2321 003117' 254 00 0 00 003254' JRST TX15 ; altmode exit
2322 003120' 326 15 0 00 003254' JUMPN ERFLG,TX15 ; error yet? yes - abort test
2323
2324 ; Set up multicast and PTT tables
2325
2326 003121' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
2327 003122' 027 00 0 00 006540' SCOPER LOADPE ; print error message
2328 003123' 255 00 0 00 000000 JFCL ; loop on error
2329 003124' 254 00 0 00 003254' JRST TX15 ; altmode exit
2330 003125' 326 15 0 00 003254' JUMPN ERFLG,TX15 ; error yet? yes - abort test
2331
2332 ; Initialize statistics
2333
2334 003126' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
2335 003127' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
2336 003130' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
2337
2338 ; Initialize packet data
2339
2340 003131' 402 00 0 00 002633* SETZM TFMFLG ; set to COMPAT mode
2341 003132' 476 00 0 00 002634* SETOM TRSFLG ; set 'response requested' flag
2342 003133' 402 00 0 00 002635* SETZM TPDFLG ; clear pad flag
2343 003134' 402 00 0 00 002636* SETZM TBSDFL ; set to non-BSD style datagram
2344 003135' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
2345 003136' 202 00 0 00 002677* MOVEM TPAT ; counting pattern
2346 003137' 402 00 0 00 002673* SETZM TBYTE ; clear byte count
2347 003140' 201 00 0 00 000100 MOVEI T15LEN ; get length
2348 003141' 202 00 0 00 002675* MOVEM TWORD ; save it
2349 003142' 201 00 0 00 000005 MOVEI 5 ; get protocol type
2350 003143' 202 00 0 00 002642* MOVEM TPTTVL ; save it
2351 003144' 402 00 0 00 002735* SETZM TSTSUB ; initialize subtest number
2352 003145' 402 00 0 00 002662* SETZM RQAFLG ; clear response queue available flag
2353 003146' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 54
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0622
2354
2355 ; Increment packet number
2356
2357 003147' 350 01 0 00 003144* TA15: AOS 1,TSTSUB ; increment subtest number
2358 003150' 303 01 0 00 000020 CAILE 1,T15PAK ; done yet?
2359 003151' 254 00 0 00 003224' JRST TE15 ; yes - check test results
2360 003152' 400 06 0 00 000000 SETZ 6, ; clear hung count
2361
2362 ; Build a packet
2363
2364 003153' 242 01 0 00 000001 TB15: LSH 1,1 ; get subtest # * 2
2365 003154' 120 00 0 01 000000# DMOVE MTABLE-2(1) ; get multicast address
2366 003155' 124 00 0 00 002640* DMOVEM TDEST ; set up destination address
2367 003156' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
2368 003157' 260 17 0 00 000000* GO BPACKN ; set up packet data (no CRC)
2369
2370 ; Check misc
2371
2372 003160' 037 07 0 00 000003 TTALTM ; altmode typed?
2373 003161' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
2374 003162' 476 00 0 00 002711* SETOM ALTF ; yes - set flag
2375 003163' 332 00 0 00 003162* SKIPE ALTF ; altmode flagged?
2376 003164' 254 00 0 00 003254' JRST TX15 ; yes - exit
2377 003165' 336 00 0 00 002714* SKIPN LCHAR ; last character in here already?
2378 003166' 202 00 0 00 003165* MOVEM LCHAR ; no - save 'last char typed'
2379 003167' 260 17 0 00 002715* GO PSTAMP ; check for S typed
2380
2381 ; Send packet
2382
2383 003170' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
2384 003171' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
2385 003172' 260 17 0 00 002721* GO CHKINT ; get list of queue entries
2386 003173' 255 00 0 00 000000 JFCL ; ignore error
2387 003174' 476 00 0 00 002723* SETOM PTTFQ ; reset the interlock
2388 003175' 200 00 0 00 002736* MOVE NUMENT ; get entry count
2389 003176' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
2390 003177' 254 00 0 00 003210' JRST TC15 ; no - continue
2391
2392 003200' 260 17 0 00 002727* GO INSQUE ; insert into queue
2393 003201' 254 00 0 00 003204' JRST .+3 ; failed - continue
2394 003202' 254 00 0 00 003204' JRST .+2 ; failed - continue
2395 003203' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
2396 003204' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
2397 003205' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
2398 003206' 337 00 0 00 003175* SKIPG NUMENT ; was the queue empty?
2399 GO [GO RDCSR ; yes - set 'CMDQAV'
2400 MOVEI 1,PENABL!MPRUN
2401 TRZ 1,RESQAV
2402 TRO 1,CMDQAV
2403 GO LDCSR
2404 003207' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 55
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0623
2405
2406 ; Check for a response
2407
2408 003210' 260 17 0 00 002763* TC15: GO CHKRQV ; check response queue available
2409 003211' 260 17 0 00 002764* GO CHKRSP ; check for RspQ entry
2410 JRST [SETZM RQAFLG ; no entry found - continue
2411 MOVE 1,PCB+5 ; get response queue FLINK
2412 GO CONVIR ; convert to virtual
2413 CAIE 1,PCB+5 ; queue really empty?
2414 SETOM RQAFLG ; no - set rsp queue avail flag
2415 003212' 254 00 0 00 007355' JRST TD15]
2416 003213' 400 06 0 00 000000 SETZ 6, ; clear hung count
2417 003214' 260 17 0 00 006166' GO MCHECK ; determine results
2418 003215' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
2419 003216' 254 00 0 00 003210' JRST TC15 ; keep looking for responses
2420
2421 ; No more responses
2422
2423 003217' 350 00 0 00 000006 TD15: AOS 6 ; increment hung count
2424 003220' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
2425 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
2426 003221' 254 00 0 00 007363' JRST TE15] ; and exit
2427 003222' 322 07 0 00 003153' JUMPE 7,TB15 ; send current packet? yes - go do so
2428 003223' 254 00 0 00 003147' JRST TA15 ; no - already did - go do next packet
2429
2430 ; Check for any stragglers
2431
2432 003224' 400 03 0 00 000000 TE15: SETZ 3, ; set up for RUNTME
2433 003225' 260 17 0 00 002772* GO RUNTME ; get current run time
2434 003226' 200 01 0 00 002773* MOVE 1,DEBTIM ; get time in milliseconds
2435 003227' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
2436 003230' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
2437 003231' 260 17 0 00 003210* TF15: GO CHKRQV ; check response queue available
2438 003232' 260 17 0 00 003211* GO CHKRSP ; check for RspQ entry
2439 JRST [SETZM RQAFLG ; no entry found - continue
2440 MOVE 1,PCB+5 ; get response queue FLINK
2441 GO CONVIR ; convert to virtual
2442 CAIE 1,PCB+5 ; queue really empty?
2443 SETOM RQAFLG ; no - set rsp queue avail flag
2444 003233' 254 00 0 00 007365' JRST TG15]
2445 003234' 260 17 0 00 006166' GO MCHECK ; determine results
2446 003235' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
2447 003236' 254 00 0 00 003231' JRST TF15 ; keep looking for responses
2448 003237' 400 03 0 00 000000 TG15: SETZ 3, ; set up for RUNTME
2449 003240' 260 17 0 00 003225* GO RUNTME ; get current run time
2450 003241' 200 01 0 00 003226* MOVE 1,DEBTIM ; get time in milliseconds
2451 003242' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
2452 003243' 254 00 0 00 003231' JRST TF15 ; no - keep looping
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 56
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0624
2453
2454 ; Done with test - now check results
2455
2456 003244' 200 00 0 00 006333' TH15: MOVE NPAKS ; get number of packets sent
2457 003245' 302 00 0 00 000020 CAIE T15PAK ; correct number?
2458 003246' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
2459 003247' 332 00 0 00 006335' SKIPE NPAKR ; any packets received?
2460 003250' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2461 003251' 027 00 0 00 003271' SCOPER MD15 ; print error message
2462 003252' 255 00 0 00 000000 JFCL ; loop on error
2463 003253' 254 00 0 00 003254' JRST TX15 ; altmode exit
2464
2465 ; Exit
2466
2467 003254' 200 00 0 00 010107' TX15: MOVE NRCRC ; get receive CRC errors
2468 003255' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
2469 003256' 260 17 0 00 003023* GO SETDSA ; disable the port
2470 003257' 260 17 0 00 003024* GO ISTOP ; stop the port
2471 003260' 263 17 0 00 000000 RTN ; return
2472
2473 ; Error messages
2474
2475 003261' 260000 006324' MA15: TXALL!CALL!LODERR
2476 003262' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2477
2478 003263' 160000 006561' MB15: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
2479 003264' 260000 006276' TXALL!CALL!PDUMP
2480 003265' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2481
2482 003266' 160000 006663' MC15: TXALL!MSG![ASCIZ /Could not enable the port/]
2483 003267' 260000 006276' TXALL!CALL!PDUMP
2484 003270' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2485
2486 003271' 160000 007017' MD15: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
2487 003272' 260000 003275' TXALL!CALL!MD15PN
2488 003273' 260000 006276' TXALL!CALL!PDUMP
2489 003274' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
2490
2491 003275' 037 00 0 00 007030' MD15PN: TMSGC < What Expected Actual>
2492 003276' 037 00 0 00 007040' TMSGC <----------- -------- ------>
2493 003277' 037 00 0 00 007050' TMSGC <Packets Sent >
2494 003300' 004 11 0 00 007373' PNTDCP 9,[T15PAK]
2495 003301' 004 11 0 00 006333' PNTDCP 9,NPAKS
2496 003302' 037 00 0 00 007374' TMSGC <Packets Rcvd 0.>
2497 003303' 004 11 0 00 006335' PNTDCP 9,NPAKR
2498 003304' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 57
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0625
2499
2500 ; Special routine to set up multicast address table
2501
2502 003305' 400 03 0 00 000000 T15SPC: SETZ 3, ; initialize offset
2503 003306' 200 00 0 03 000000# MOVE MTABLE+1(3) ; get multicast address word
2504 003307' 621 00 0 00 400000 TLZ 400000 ; clear enable bit
2505 003310' 202 00 0 03 000000# MOVEM MTABLE+1(3) ; save it
2506 003311' 271 03 0 00 000002 ADDI 3,2 ; point to next
2507 003312' 307 03 0 00 000037 CAIG 3,37 ; done yet?
2508 003313' 254 00 0 00 003306' JRST T15SPC+1 ; no - loop till done
2509 003314' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 58
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0626
2510
2511 ;#********************************************************************
2512 ;* TEST 16 - Multicast Table Test 2
2513 ;
2514 ; Description: This test sets up the multicast table to enable
2515 ; one multicast address. Then datagrams are sent
2516 ; to multicast addresses that are different from
2517 ; one that is enabled by one bit. The results are
2518 ; then verified.
2519 ;
2520 ; Procedure: KL> Load microcode
2521 ; KL> Port Clear
2522 ; KL> Start port
2523 ;
2524 ; KL> Build a self-directed datagram to the first
2525 ; multicast address and insert on command queue
2526 ; KL> Verify that no datagram is received
2527 ; If failed - print error message and exit test
2528 ;
2529 ; Repeat 47 times, once for each possible multicast
2530 ; address.
2531 ;
2532 ; FRU: NIA Module
2533 ;#********************************************************************
2534
2535 000057 T16PAK==^D47 ; number of packets to send
2536 000100 T16LEN==^D64 ; packet length
2537
2538 ; Initialization
2539
2540 003315' 201 00 0 00 000000' TST16: MOVEI Z3 ; get address of module start
2541 003316' 260 17 0 00 003066* GO TRACE ; handle trace output
2542 003317' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
2543 003320' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
2544 003321' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
2545 003322' 260 17 0 00 003072* GO IPACLR ; do a 'port clear'
2546 003323' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
2547 003324' 260 17 0 00 003074* GO TFLOAD ; load operational microcode
2548 GO [MOVEM TERMES ; error - save error message
2549 SETO ERFLG,
2550 003325' 260 17 0 00 006552' RTN]
2551 003326' 027 00 0 00 003516' SCOPER MA16 ; print error message
2552 003327' 255 00 0 00 000000 JFCL ; loop on error
2553 003330' 254 00 0 00 003511' JRST TX16 ; altmode exit
2554 003331' 326 15 0 00 003511' JUMPN ERFLG,TX16 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 59
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0627
2555
2556 ; Start port
2557
2558 003332' 201 00 0 00 003542' MOVEI T16SPC ; set up address of routine to
2559 003333' 202 00 0 00 010110' MOVEM PSPEC ; disable multicast addresses
2560 003334' 260 17 0 00 006373' GO PIDLE ; start port
2561 003335' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2562 003336' 402 00 0 00 010110' SETZM PSPEC ; clear special routine address
2563 003337' 027 00 0 00 003520' SCOPER MB16 ; print error message
2564 003340' 255 00 0 00 000000 JFCL ; loop on error
2565 003341' 254 00 0 00 003511' JRST TX16 ; altmode exit
2566 003342' 326 15 0 00 003511' JUMPN ERFLG,TX16 ; error yet? yes - abort test
2567
2568 ; Enable the port
2569
2570 003343' 260 17 0 00 003113* GO SETENA ; ensure the port is enabled
2571 003344' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2572 003345' 027 00 0 00 003523' SCOPER MC16 ; print error message
2573 003346' 255 00 0 00 000000 JFCL ; loop on error
2574 003347' 254 00 0 00 003511' JRST TX16 ; altmode exit
2575 003350' 326 15 0 00 003511' JUMPN ERFLG,TX16 ; error yet? yes - abort test
2576
2577 ; Set up multicast and PTT tables
2578
2579 003351' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
2580 003352' 027 00 0 00 006540' SCOPER LOADPE ; print error message
2581 003353' 255 00 0 00 000000 JFCL ; loop on error
2582 003354' 254 00 0 00 003511' JRST TX16 ; altmode exit
2583 003355' 326 15 0 00 003511' JUMPN ERFLG,TX16 ; error yet? yes - abort test
2584
2585 ; Initialize statistics
2586
2587 003356' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
2588 003357' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
2589 003360' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
2590
2591 ; Initialize packet data
2592
2593 003361' 402 00 0 00 003131* SETZM TFMFLG ; set to COMPAT mode
2594 003362' 476 00 0 00 003132* SETOM TRSFLG ; set 'response requested' flag
2595 003363' 402 00 0 00 003133* SETZM TPDFLG ; clear pad flag
2596 003364' 402 00 0 00 003134* SETZM TBSDFL ; set to non-BSD style datagram
2597 003365' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
2598 003366' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
2599 003367' 202 00 0 00 003136* MOVEM TPAT ; counting pattern
2600 003370' 402 00 0 00 003137* SETZM TBYTE ; clear byte count
2601 003371' 201 00 0 00 000100 MOVEI T16LEN ; get length
2602 003372' 202 00 0 00 003141* MOVEM TWORD ; save it
2603 003373' 201 00 0 00 000005 MOVEI 5 ; get protocol type
2604 003374' 202 00 0 00 003143* MOVEM TPTTVL ; save it
2605 003375' 402 00 0 00 003147* SETZM TSTSUB ; initialize subtest number
2606 003376' 402 00 0 00 003145* SETZM RQAFLG ; clear response queue available flag
2607 003377' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 60
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0628
2608
2609 ; Increment packet number
2610
2611 003400' 350 01 0 00 003375* TA16: AOS 1,TSTSUB ; increment subtest number
2612 003401' 303 01 0 00 000057 CAILE 1,T16PAK ; done yet?
2613 003402' 254 00 0 00 003461' JRST TE16 ; yes - check test results
2614 003403' 400 06 0 00 000000 SETZ 6, ; clear hung count
2615
2616 ; Build a packet
2617
2618 003404' 120 02 0 00 000000* TB16: DMOVE 2,MCAT17 ; get multicast address
2619 003405' 307 01 0 00 000037 CAIG 1,^D31 ; first word?
2620 GO [MOVEI 20 ; yes - get a one bit
2621 LSH (1) ; position correctly
2622 XOR 2, ; XOR the bit
2623 003406' 260 17 0 00 007402' RTN]
2624 003407' 303 01 0 00 000037 CAILE 1,^D31 ; 2nd word?
2625 GO [MOVEI 10 ; yes - get a one bit
2626 SUBI 1,^D31 ; calc amount to shift
2627 LSH (1) ; position correctly
2628 XOR 3, ; XOR the bit
2629 003410' 260 17 0 00 007406' RTN]
2630 003411' 621 03 0 00 400000 TLZ 3,400000 ; get rid of enable bit
2631 003412' 124 02 0 00 003155* DMOVEM 2,TDEST ; set up destination address
2632 003413' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
2633 003414' 260 17 0 00 003157* GO BPACKN ; set up packet data (no CRC)
2634
2635 ; Check misc
2636
2637 003415' 037 07 0 00 000003 TTALTM ; altmode typed?
2638 003416' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
2639 003417' 476 00 0 00 003163* SETOM ALTF ; yes - set flag
2640 003420' 332 00 0 00 003417* SKIPE ALTF ; altmode flagged?
2641 003421' 254 00 0 00 003511' JRST TX16 ; yes - exit
2642 003422' 336 00 0 00 003166* SKIPN LCHAR ; last character in here already?
2643 003423' 202 00 0 00 003422* MOVEM LCHAR ; no - save 'last char typed'
2644 003424' 260 17 0 00 003167* GO PSTAMP ; check for S typed
2645
2646 ; Send packet
2647
2648 003425' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
2649 003426' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
2650 003427' 260 17 0 00 003172* GO CHKINT ; get list of queue entries
2651 003430' 255 00 0 00 000000 JFCL ; ignore error
2652 003431' 476 00 0 00 003174* SETOM PTTFQ ; reset the interlock
2653 003432' 200 00 0 00 003206* MOVE NUMENT ; get entry count
2654 003433' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
2655 003434' 254 00 0 00 003445' JRST TC16 ; no - continue
2656
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 61
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0629
2657 003435' 260 17 0 00 003200* GO INSQUE ; insert into queue
2658 003436' 254 00 0 00 003441' JRST .+3 ; failed - continue
2659 003437' 254 00 0 00 003441' JRST .+2 ; failed - continue
2660 003440' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
2661 003441' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
2662 003442' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
2663 003443' 337 00 0 00 003432* SKIPG NUMENT ; was the queue empty?
2664 GO [GO RDCSR ; yes - set 'CMDQAV'
2665 MOVEI 1,PENABL!MPRUN
2666 TRZ 1,RESQAV
2667 TRO 1,CMDQAV
2668 GO LDCSR
2669 003444' 260 17 0 00 006771' RTN]
2670
2671 ; Check for a response
2672
2673 003445' 260 17 0 00 003231* TC16: GO CHKRQV ; check response queue available
2674 003446' 260 17 0 00 003232* GO CHKRSP ; check for RspQ entry
2675 JRST [SETZM RQAFLG ; no entry found - continue
2676 MOVE 1,PCB+5 ; get response queue FLINK
2677 GO CONVIR ; convert to virtual
2678 CAIE 1,PCB+5 ; queue really empty?
2679 SETOM RQAFLG ; no - set rsp queue avail flag
2680 003447' 254 00 0 00 007413' JRST TD16]
2681 003450' 400 06 0 00 000000 SETZ 6, ; clear hung count
2682 003451' 260 17 0 00 006166' GO MCHECK ; determine results
2683 003452' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
2684 003453' 254 00 0 00 003445' JRST TC16 ; keep looking for responses
2685
2686 ; No more responses
2687
2688 003454' 350 00 0 00 000006 TD16: AOS 6 ; increment hung count
2689 003455' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
2690 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
2691 003456' 254 00 0 00 007421' JRST TE16] ; and exit
2692 003457' 322 07 0 00 003404' JUMPE 7,TB16 ; send current packet? yes - go do so
2693 003460' 254 00 0 00 003400' JRST TA16 ; no - already did - go do next packet
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 62
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0630
2694
2695 ; Check for any stragglers
2696
2697 003461' 400 03 0 00 000000 TE16: SETZ 3, ; set up for RUNTME
2698 003462' 260 17 0 00 003240* GO RUNTME ; get current run time
2699 003463' 200 01 0 00 003241* MOVE 1,DEBTIM ; get time in milliseconds
2700 003464' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
2701 003465' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
2702 003466' 260 17 0 00 003445* TF16: GO CHKRQV ; check response queue available
2703 003467' 260 17 0 00 003446* GO CHKRSP ; check for RspQ entry
2704 JRST [SETZM RQAFLG ; no entry found - continue
2705 MOVE 1,PCB+5 ; get response queue FLINK
2706 GO CONVIR ; convert to virtual
2707 CAIE 1,PCB+5 ; queue really empty?
2708 SETOM RQAFLG ; no - set rsp queue avail flag
2709 003470' 254 00 0 00 007423' JRST TG16]
2710 003471' 260 17 0 00 006166' GO MCHECK ; determine results
2711 003472' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
2712 003473' 254 00 0 00 003466' JRST TF16 ; keep looking for responses
2713 003474' 400 03 0 00 000000 TG16: SETZ 3, ; set up for RUNTME
2714 003475' 260 17 0 00 003462* GO RUNTME ; get current run time
2715 003476' 200 01 0 00 003463* MOVE 1,DEBTIM ; get time in milliseconds
2716 003477' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
2717 003500' 254 00 0 00 003466' JRST TF16 ; no - keep looping
2718
2719 ; Done with test - now check results
2720
2721 003501' 200 00 0 00 006333' TH16: MOVE NPAKS ; get number of packets sent
2722 003502' 302 00 0 00 000057 CAIE T16PAK ; correct number?
2723 003503' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
2724 003504' 332 00 0 00 006335' SKIPE NPAKR ; any packets received?
2725 003505' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2726 003506' 027 00 0 00 003526' SCOPER MD16 ; print error message
2727 003507' 255 00 0 00 000000 JFCL ; loop on error
2728 003510' 254 00 0 00 003511' JRST TX16 ; altmode exit
2729
2730 ; Exit
2731
2732 003511' 200 00 0 00 010107' TX16: MOVE NRCRC ; get receive CRC errors
2733 003512' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
2734 003513' 260 17 0 00 003256* GO SETDSA ; disable the port
2735 003514' 260 17 0 00 003257* GO ISTOP ; stop the port
2736 003515' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 63
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0631
2737
2738 ; Error messages
2739
2740 003516' 260000 006324' MA16: TXALL!CALL!LODERR
2741 003517' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2742
2743 003520' 160000 006561' MB16: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
2744 003521' 260000 006276' TXALL!CALL!PDUMP
2745 003522' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2746
2747 003523' 160000 006663' MC16: TXALL!MSG![ASCIZ /Could not enable the port/]
2748 003524' 260000 006276' TXALL!CALL!PDUMP
2749 003525' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
2750
2751 003526' 160000 007017' MD16: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
2752 003527' 260000 003532' TXALL!CALL!MD16PN
2753 003530' 260000 006276' TXALL!CALL!PDUMP
2754 003531' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
2755
2756 003532' 037 00 0 00 007030' MD16PN: TMSGC < What Expected Actual>
2757 003533' 037 00 0 00 007040' TMSGC <----------- -------- ------>
2758 003534' 037 00 0 00 007050' TMSGC <Packets Sent >
2759 003535' 004 11 0 00 007431' PNTDCP 9,[T16PAK]
2760 003536' 004 11 0 00 006333' PNTDCP 9,NPAKS
2761 003537' 037 00 0 00 007374' TMSGC <Packets Rcvd 0.>
2762 003540' 004 11 0 00 006335' PNTDCP 9,NPAKR
2763 003541' 263 17 0 00 000000 RTN
2764
2765 ; Special routine to set up multicast address table to disable all but
2766 ; the last address
2767
2768 003542' 400 03 0 00 000000 T16SPC: SETZ 3, ; initialize offset
2769 003543' 200 00 0 03 000000# MOVE MTABLE+1(3) ; get multicast address word
2770 003544' 621 00 0 00 400000 TLZ 400000 ; clear enable bit
2771 003545' 202 00 0 03 000000# MOVEM MTABLE+1(3) ; save it
2772 003546' 271 03 0 00 000002 ADDI 3,2 ; point to next
2773 003547' 307 03 0 00 000035 CAIG 3,35 ; done yet?
2774 003550' 254 00 0 00 003543' JRST T16SPC+1 ; no - loop till done
2775 003551' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 64
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0632
2776
2777 ;#********************************************************************
2778 ;* TEST 17 - Multicast Table Test 3
2779 ;
2780 ; Description: This test sets up the multicast table to enable
2781 ; all multicast addresses. Then datagrams are sent
2782 ; to multicast addresses in the table and the
2783 ; results are verified.
2784 ;
2785 ; Procedure: KL> Load microcode
2786 ; KL> Port Clear
2787 ; KL> Start port
2788 ;
2789 ; KL> Build a self-directed datagram, insert on command
2790 ; queue, and wait for a response
2791 ; KL> Verify proper response
2792 ; KL> Verify data portion of packet received properly
2793 ; If failed - print error message and exit test
2794 ;
2795 ; Do for data pattern 122 and 10 packets of each type
2796 ;
2797 ; FRU: NIA Module
2798 ;#********************************************************************
2799
2800 000240 T17PAK==^D16*^D10 ; number of packets to send
2801
2802 ; Initialization
2803
2804 003552' 201 00 0 00 000000' TST17: MOVEI Z3 ; get address of module start
2805 003553' 260 17 0 00 003316* GO TRACE ; handle trace output
2806 003554' 402 00 0 00 010111' SETZM SDEBUG ; clear debug flag
2807 003555' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
2808 003556' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
2809 003557' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
2810 003560' 260 17 0 00 003322* GO IPACLR ; do a 'port clear'
2811 003561' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
2812 003562' 260 17 0 00 003324* GO TFLOAD ; load operational microcode
2813 GO [MOVEM TERMES ; error - save error message
2814 SETO ERFLG,
2815 003563' 260 17 0 00 006552' RTN]
2816 003564' 027 00 0 00 003760' SCOPER MA17 ; print error message
2817 003565' 255 00 0 00 000000 JFCL ; loop on error
2818 003566' 254 00 0 00 003753' JRST TX17 ; altmode exit
2819 003567' 326 15 0 00 003753' JUMPN ERFLG,TX17 ; error yet? yes - abort test
2820
2821 ; Start port
2822
2823 003570' 260 17 0 00 002612* GO TIDLE ; start port
2824 003571' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2825 003572' 027 00 0 00 003762' SCOPER MB17 ; print error message
2826 003573' 255 00 0 00 000000 JFCL ; loop on error
2827 003574' 254 00 0 00 003753' JRST TX17 ; altmode exit
2828 003575' 326 15 0 00 003753' JUMPN ERFLG,TX17 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 65
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0633
2829
2830 ; Enable the port
2831
2832 003576' 260 17 0 00 003343* GO SETENA ; ensure the port is enabled
2833 003577' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
2834 003600' 027 00 0 00 003765' SCOPER MC17 ; print error message
2835 003601' 255 00 0 00 000000 JFCL ; loop on error
2836 003602' 254 00 0 00 003753' JRST TX17 ; altmode exit
2837 003603' 326 15 0 00 003753' JUMPN ERFLG,TX17 ; error yet? yes - abort test
2838
2839 ; Set up multicast and PTT tables
2840
2841 003604' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
2842 003605' 027 00 0 00 006540' SCOPER LOADPE ; print error message
2843 003606' 255 00 0 00 000000 JFCL ; loop on error
2844 003607' 254 00 0 00 003753' JRST TX17 ; altmode exit
2845 003610' 326 15 0 00 003753' JUMPN ERFLG,TX17 ; error yet? yes - abort test
2846
2847 ; Initialize packet data
2848
2849 003611' 402 00 0 00 003361* SETZM TFMFLG ; set to COMPAT mode
2850 003612' 476 00 0 00 003362* SETOM TRSFLG ; set 'response requested' flag
2851 003613' 402 00 0 00 003363* SETZM TPDFLG ; clear pad flag
2852 003614' 402 00 0 00 003364* SETZM TBSDFL ; set to non-BSD style datagram
2853 003615' 402 00 0 00 003370* SETZM TBYTE ; clear byte count
2854 003616' 201 00 0 00 000100 MOVEI ^D64 ; get length
2855 003617' 202 00 0 00 003372* MOVEM TWORD ; save it
2856 003620' 201 00 0 00 000005 MOVEI 5 ; get protocol type
2857 003621' 202 00 0 00 003374* MOVEM TPTTVL ; save it
2858 003622' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
2859 003623' 201 00 0 00 000122 MOVEI 122 ; set data pattern
2860 003624' 202 00 0 00 003367* MOVEM TPAT ; ...
2861 003625' 402 00 0 00 003400* SETZM TSTSUB ; initialize subtest number
2862 003626' 260 17 0 00 001731' GO CRCINI ; initialize CRC table
2863
2864 ; Initialize statistics
2865
2866 003627' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
2867 003630' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
2868 003631' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
2869 003632' 402 00 0 00 003376* SETZM RQAFLG ; clear response queue available flag
2870 003633' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
2871 003634' 402 00 0 00 010103' SETZM MCOFF# ; clear 'multicast offset'
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 66
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0634
2872
2873 ; Select next multicast address
2874
2875 003635' 350 01 0 00 010103' TA17: AOS 1,MCOFF ; point to next table entry
2876 003636' 350 01 0 00 010103' AOS 1,MCOFF ; ...
2877 003637' 303 01 0 00 000040 CAILE 1,^D32 ; done yet?
2878 003640' 254 00 0 00 003716' JRST TF17 ; yes - exit
2879 003641' 120 00 0 01 000000# DMOVE MTABLE-2(1) ; get multicast address
2880 003642' 621 01 0 00 400000 TLZ 1,400000 ; clear enable bit
2881 003643' 124 00 0 00 003412* DMOVEM TDEST ; set up destination address
2882 003644' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
2883 003645' 260 17 0 00 003414* GO BPACKN ; set up packet data (no CRC)
2884 003646' 201 10 0 00 000012 MOVEI 10,^D10 ; initialize packet count
2885
2886 ; Decrement packet count (9-0)
2887
2888 003647' 361 10 0 00 003635' TB17: SOJL 10,TA17 ; done yet? yes - check next mc addr
2889 003650' 400 06 0 00 000000 SETZ 6, ; clear hung count
2890
2891 ; Send a packet
2892
2893 003651' 037 07 0 00 000003 TC17: TTALTM ; altmode typed?
2894 003652' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
2895 003653' 476 00 0 00 003420* SETOM ALTF ; yes - set flag
2896 003654' 332 00 0 00 003653* SKIPE ALTF ; altmode flagged?
2897 003655' 254 00 0 00 003753' JRST TX17 ; yes - exit
2898 003656' 336 00 0 00 003423* SKIPN LCHAR ; last character in here already?
2899 003657' 202 00 0 00 003656* MOVEM LCHAR ; no - save 'last char typed'
2900 003660' 260 17 0 00 003424* GO PSTAMP ; check for S typed
2901 003661' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
2902
2903 003662' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
2904 003663' 260 17 0 00 003427* GO CHKINT ; get list of queue entries
2905 003664' 255 00 0 00 000000 JFCL ; ignore error
2906 003665' 476 00 0 00 003431* SETOM PTTFQ ; reset the interlock
2907 003666' 200 00 0 00 003443* MOVE NUMENT ; get entry count
2908 003667' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
2909 003670' 254 00 0 00 003702' JRST TD17 ; no - continue
2910
2911 003671' 260 17 0 00 003435* GO INSQUE ; insert into queue
2912 003672' 254 00 0 00 003675' JRST .+3 ; failed - continue
2913 003673' 254 00 0 00 003675' JRST .+2 ; failed - continue
2914 003674' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
2915 003675' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
2916 003676' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
2917 003677' 350 00 0 00 003625* AOS TSTSUB ; increment subtest number
2918 003700' 337 00 0 00 003666* SKIPG NUMENT ; was the queue empty?
2919 GO [GO RDCSR ; yes - set 'CMDQAV'
2920 MOVEI 1,PENABL!MPRUN
2921 TRZ 1,RESQAV
2922 TRO 1,CMDQAV
2923 GO LDCSR
2924 003701' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 67
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0635
2925
2926 ; Check for a response
2927
2928 003702' 260 17 0 00 003466* TD17: GO CHKRQV ; check response queue available
2929 003703' 260 17 0 00 003467* GO CHKRSP ; check for RspQ entry
2930 JRST [SETZM RQAFLG ; no entry found - continue
2931 MOVE 1,PCB+5 ; get response queue FLINK
2932 GO CONVIR ; convert to virtual
2933 CAIE 1,PCB+5 ; queue really empty?
2934 SETOM RQAFLG ; no - set rsp queue avail flag
2935 GO CHKDEB ; check for debug mode
2936 003704' 254 00 0 00 007432' JRST TE17]
2937 003705' 400 06 0 00 000000 SETZ 6, ; clear hung count
2938 003706' 260 17 0 00 006166' GO MCHECK ; determine results
2939 003707' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
2940 003710' 254 00 0 00 003702' JRST TD17 ; keep looking for responses
2941
2942 ; No more responses
2943
2944 003711' 350 00 0 00 000006 TE17: AOS 6 ; increment hung count
2945 003712' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
2946 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
2947 003713' 254 00 0 00 007441' JRST TF17] ; and exit
2948 003714' 322 07 0 00 003702' JUMPE 7,TD17 ; send current packet? yes - go do so
2949 003715' 254 00 0 00 003647' JRST TB17 ; no - already did - go do next packet
2950
2951 ; Check for any stragglers
2952
2953 003716' 332 00 0 00 010111' TF17: SKIPE SDEBUG ; debug mode?
2954 003717' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
2955 003720' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
2956 003721' 260 17 0 00 003475* GO RUNTME ; get current run time
2957 003722' 200 01 0 00 003476* MOVE 1,DEBTIM ; get time in milliseconds
2958 003723' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
2959 003724' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
2960 003725' 260 17 0 00 003702* TG17: GO CHKRQV ; check response queue available
2961 003726' 260 17 0 00 003703* GO CHKRSP ; check for RspQ entry
2962 JRST [SETZM RQAFLG ; no entry found - continue
2963 MOVE 1,PCB+5 ; get response queue FLINK
2964 GO CONVIR ; convert to virtual
2965 CAIE 1,PCB+5 ; queue really empty?
2966 SETOM RQAFLG ; no - set rsp queue avail flag
2967 GO CHKDEB ; check for debug mode
2968 003727' 254 00 0 00 007443' JRST TH17]
2969 003730' 260 17 0 00 006166' GO MCHECK ; determine results
2970 003731' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
2971 003732' 254 00 0 00 003725' JRST TG17 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 68
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0636
2972
2973 ; Check timeout
2974
2975 003733' 400 03 0 00 000000 TH17: SETZ 3, ; set up for RUNTME
2976 003734' 260 17 0 00 003721* GO RUNTME ; get current run time
2977 003735' 200 01 0 00 003722* MOVE 1,DEBTIM ; get time in milliseconds
2978 003736' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
2979 003737' 254 00 0 00 003725' JRST TG17 ; no - keep looping
2980
2981 ; Done with test - now check results
2982
2983 003740' 332 00 0 00 010111' TI17: SKIPE SDEBUG ; debug mode?
2984 003741' 037 00 0 00 007235' TMSGCD <** Done - check results **>
2985 003742' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
2986 003743' 302 00 0 00 000240 CAIE T17PAK ; correct number?
2987 003744' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
2988 003745' 200 00 0 00 006335' MOVE NPAKR ; get receive count
2989 003746' 305 00 0 00 000220 CAIGE T17PAK*^D9/^D10 ; more than 90% received?
2990 003747' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
2991 003750' 027 00 0 00 003770' SCOPER MD17 ; print error message
2992 003751' 255 00 0 00 000000 JFCL ; loop on error
2993 003752' 254 00 0 00 003753' JRST TX17 ; altmode exit
2994
2995 ; Exit
2996
2997 003753' 200 00 0 00 010107' TX17: MOVE NRCRC ; get receive CRC errors
2998 003754' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
2999 003755' 260 17 0 00 003513* GO SETDSA ; disable the port
3000 003756' 260 17 0 00 003514* GO ISTOP ; stop the port
3001 003757' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 69
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0637
3002
3003 ; Error messages
3004
3005 003760' 260000 006324' MA17: TXALL!CALL!LODERR
3006 003761' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3007
3008 003762' 160000 006561' MB17: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
3009 003763' 260000 006276' TXALL!CALL!PDUMP
3010 003764' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3011
3012 003765' 160000 006663' MC17: TXALL!MSG![ASCIZ /Could not enable the port/]
3013 003766' 260000 006276' TXALL!CALL!PDUMP
3014 003767' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3015
3016 003770' 160000 007017' MD17: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
3017 003771' 260000 003774' TXALL!CALL!MD17PN
3018 003772' 260000 006276' TXALL!CALL!PDUMP
3019 003773' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
3020
3021 003774' 037 00 0 00 007030' MD17PN: TMSGC < What Expected Actual>
3022 003775' 037 00 0 00 007040' TMSGC <----------- -------- ------>
3023 003776' 037 00 0 00 007050' TMSGC <Packets Sent >
3024 003777' 004 11 0 00 007452' PNTDCP 9,[T17PAK]
3025 004000' 004 11 0 00 006333' PNTDCP 9,NPAKS
3026 004001' 037 00 0 00 007061' TMSGC <Packets Rcvd >
3027 004002' 004 11 0 00 007452' PNTDCP 9,[T17PAK]
3028 004003' 004 11 0 00 006335' PNTDCP 9,NPAKR
3029 004004' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 70
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0638
3030
3031 ;#********************************************************************
3032 ;* TEST 20 - Broadcast Test
3033 ;
3034 ; Description: This test sets up the multicast table to disable
3035 ; all multicast addresses. The protocol type table
3036 ; is set up to disable all protocol types. Then
3037 ; datagrams are sent to a multicast address of -1
3038 ; (broadcast) and the results are verified (they
3039 ; should be received.
3040 ;
3041 ; Procedure: KL> Load microcode
3042 ; KL> Port Clear
3043 ; KL> Start port
3044 ;
3045 ; KL> Build a self-directed datagram, insert on command
3046 ; queue, and wait for a response
3047 ; KL> Verify proper response
3048 ; KL> Verify data portion of packet received properly
3049 ; If failed - print error message and exit test
3050 ;
3051 ; Do for data pattern 122 and 200 packets.
3052 ;
3053 ; FRU: NIA Module
3054 ;#********************************************************************
3055
3056 000310 T20PAK==^D200 ; number of packets to send
3057
3058 ; Initialization
3059
3060 004005' 201 00 0 00 000000' TST20: MOVEI Z3 ; get address of module start
3061 004006' 260 17 0 00 003553* GO TRACE ; handle trace output
3062 004007' 402 00 0 00 010111' SETZM SDEBUG ; clear debug flag
3063 004010' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
3064 004011' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
3065 004012' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
3066 004013' 260 17 0 00 003560* GO IPACLR ; do a 'port clear'
3067 004014' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
3068 004015' 260 17 0 00 003562* GO TFLOAD ; load operational microcode
3069 GO [MOVEM TERMES ; error - save error message
3070 SETO ERFLG,
3071 004016' 260 17 0 00 006552' RTN]
3072 004017' 027 00 0 00 004206' SCOPER MA20 ; print error message
3073 004020' 255 00 0 00 000000 JFCL ; loop on error
3074 004021' 254 00 0 00 004201' JRST TX20 ; altmode exit
3075 004022' 326 15 0 00 004201' JUMPN ERFLG,TX20 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 71
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0639
3076
3077 ; Start port
3078
3079 004023' 201 00 0 00 004233' MOVEI T20SPC ; set up address of routine to
3080 004024' 202 00 0 00 010110' MOVEM PSPEC ; disable multicast addresses
3081 004025' 260 17 0 00 006373' GO PIDLE ; start port
3082 004026' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3083 004027' 402 00 0 00 010110' SETZM PSPEC ; clear special routine address
3084 004030' 027 00 0 00 004210' SCOPER MB20 ; print error message
3085 004031' 255 00 0 00 000000 JFCL ; loop on error
3086 004032' 254 00 0 00 004201' JRST TX20 ; altmode exit
3087 004033' 326 15 0 00 004201' JUMPN ERFLG,TX20 ; error yet? yes - abort test
3088
3089 ; Enable the port
3090
3091 004034' 260 17 0 00 003576* GO SETENA ; ensure the port is enabled
3092 004035' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3093 004036' 027 00 0 00 004213' SCOPER MC20 ; print error message
3094 004037' 255 00 0 00 000000 JFCL ; loop on error
3095 004040' 254 00 0 00 004201' JRST TX20 ; altmode exit
3096 004041' 326 15 0 00 004201' JUMPN ERFLG,TX20 ; error yet? yes - abort test
3097
3098 ; Set up multicast and PTT tables
3099
3100 004042' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
3101 004043' 027 00 0 00 006540' SCOPER LOADPE ; print error message
3102 004044' 255 00 0 00 000000 JFCL ; loop on error
3103 004045' 254 00 0 00 004201' JRST TX20 ; altmode exit
3104 004046' 326 15 0 00 004201' JUMPN ERFLG,TX20 ; error yet? yes - abort test
3105
3106 ; Initialize packet data
3107
3108 004047' 402 00 0 00 003611* SETZM TFMFLG ; set to COMPAT mode
3109 004050' 476 00 0 00 003612* SETOM TRSFLG ; set 'response requested' flag
3110 004051' 402 00 0 00 003613* SETZM TPDFLG ; clear pad flag
3111 004052' 402 00 0 00 003614* SETZM TBSDFL ; set to non-BSD style datagram
3112 004053' 402 00 0 00 003615* SETZM TBYTE ; clear byte count
3113 004054' 201 00 0 00 000100 MOVEI ^D64 ; get length
3114 004055' 202 00 0 00 003617* MOVEM TWORD ; save it
3115 004056' 201 00 0 00 000005 MOVEI 5 ; get protocol type
3116 004057' 202 00 0 00 003621* MOVEM TPTTVL ; save it
3117 004060' 201 00 0 00 000122 MOVEI 122 ; set data pattern
3118 004061' 202 00 0 00 003624* MOVEM TPAT ; ...
3119 004062' 402 00 0 00 003677* SETZM TSTSUB ; initialize subtest number
3120 004063' 120 00 0 00 007453' DMOVE [EXP 777777777760,777777777760]
3121 004064' 124 00 0 00 003643* DMOVEM TDEST ; set up destination address
3122 004065' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3123 004066' 260 17 0 00 003645* GO BPACKN ; set up packet data (no CRC)
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 72
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0640
3124
3125 ; Initialize statistics
3126
3127 004067' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
3128 004070' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
3129 004071' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
3130 004072' 402 00 0 00 003632* SETZM RQAFLG ; clear response queue available flag
3131 004073' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
3132 004074' 201 10 0 00 000310 MOVEI 10,^D200 ; initialize packet count
3133
3134 ; Decrement packet count (199-0)
3135
3136 004075' 361 10 0 00 004144' TA20: SOJL 10,TE20 ; done yet? yes - exit
3137 004076' 400 06 0 00 000000 SETZ 6, ; clear hung count
3138
3139 ; Send a packet
3140
3141 004077' 037 07 0 00 000003 TB20: TTALTM ; altmode typed?
3142 004100' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
3143 004101' 476 00 0 00 003654* SETOM ALTF ; yes - set flag
3144 004102' 332 00 0 00 004101* SKIPE ALTF ; altmode flagged?
3145 004103' 254 00 0 00 004201' JRST TX20 ; yes - exit
3146 004104' 336 00 0 00 003657* SKIPN LCHAR ; last character in here already?
3147 004105' 202 00 0 00 004104* MOVEM LCHAR ; no - save 'last char typed'
3148 004106' 260 17 0 00 003660* GO PSTAMP ; check for S typed
3149 004107' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
3150
3151 004110' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
3152 004111' 260 17 0 00 003663* GO CHKINT ; get list of queue entries
3153 004112' 255 00 0 00 000000 JFCL ; ignore error
3154 004113' 476 00 0 00 003665* SETOM PTTFQ ; reset the interlock
3155 004114' 200 00 0 00 003700* MOVE NUMENT ; get entry count
3156 004115' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
3157 004116' 254 00 0 00 004130' JRST TC20 ; no - continue
3158
3159 004117' 260 17 0 00 003671* GO INSQUE ; insert into queue
3160 004120' 254 00 0 00 004123' JRST .+3 ; failed - continue
3161 004121' 254 00 0 00 004123' JRST .+2 ; failed - continue
3162 004122' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
3163 004123' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
3164 004124' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
3165 004125' 350 00 0 00 004062* AOS TSTSUB ; increment subtest number
3166 004126' 337 00 0 00 004114* SKIPG NUMENT ; was the queue empty?
3167 GO [GO RDCSR ; yes - set 'CMDQAV'
3168 MOVEI 1,PENABL!MPRUN
3169 TRZ 1,RESQAV
3170 TRO 1,CMDQAV
3171 GO LDCSR
3172 004127' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 73
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0641
3173
3174 ; Check for a response
3175
3176 004130' 260 17 0 00 003725* TC20: GO CHKRQV ; check response queue available
3177 004131' 260 17 0 00 003726* GO CHKRSP ; check for RspQ entry
3178 JRST [SETZM RQAFLG ; no entry found - continue
3179 MOVE 1,PCB+5 ; get response queue FLINK
3180 GO CONVIR ; convert to virtual
3181 CAIE 1,PCB+5 ; queue really empty?
3182 SETOM RQAFLG ; no - set rsp queue avail flag
3183 GO CHKDEB ; check for debug mode
3184 004132' 254 00 0 00 007455' JRST TD20]
3185 004133' 400 06 0 00 000000 SETZ 6, ; clear hung count
3186 004134' 260 17 0 00 006166' GO MCHECK ; determine results
3187 004135' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3188 004136' 254 00 0 00 004130' JRST TC20 ; keep looking for responses
3189
3190 ; No more responses
3191
3192 004137' 350 00 0 00 000006 TD20: AOS 6 ; increment hung count
3193 004140' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
3194 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
3195 004141' 254 00 0 00 007464' JRST TE20] ; and exit
3196 004142' 322 07 0 00 004130' JUMPE 7,TC20 ; send current packet? yes - go do so
3197 004143' 254 00 0 00 004075' JRST TA20 ; no - already did - go do next packet
3198
3199 ; Check for any stragglers
3200
3201 004144' 332 00 0 00 010111' TE20: SKIPE SDEBUG ; debug mode?
3202 004145' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
3203 004146' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
3204 004147' 260 17 0 00 003734* GO RUNTME ; get current run time
3205 004150' 200 01 0 00 003735* MOVE 1,DEBTIM ; get time in milliseconds
3206 004151' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
3207 004152' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
3208 004153' 260 17 0 00 004130* TF20: GO CHKRQV ; check response queue available
3209 004154' 260 17 0 00 004131* GO CHKRSP ; check for RspQ entry
3210 JRST [SETZM RQAFLG ; no entry found - continue
3211 MOVE 1,PCB+5 ; get response queue FLINK
3212 GO CONVIR ; convert to virtual
3213 CAIE 1,PCB+5 ; queue really empty?
3214 SETOM RQAFLG ; no - set rsp queue avail flag
3215 GO CHKDEB ; check for debug mode
3216 004155' 254 00 0 00 007466' JRST TG20]
3217 004156' 260 17 0 00 006166' GO MCHECK ; determine results
3218 004157' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3219 004160' 254 00 0 00 004153' JRST TF20 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 74
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0642
3220
3221 ; Check timeout
3222
3223 004161' 400 03 0 00 000000 TG20: SETZ 3, ; set up for RUNTME
3224 004162' 260 17 0 00 004147* GO RUNTME ; get current run time
3225 004163' 200 01 0 00 004150* MOVE 1,DEBTIM ; get time in milliseconds
3226 004164' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
3227 004165' 254 00 0 00 004153' JRST TF20 ; no - keep looping
3228
3229 ; Done with test - now check results
3230
3231 004166' 332 00 0 00 010111' TH20: SKIPE SDEBUG ; debug mode?
3232 004167' 037 00 0 00 007235' TMSGCD <** Done - check results **>
3233 004170' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
3234 004171' 302 00 0 00 000310 CAIE T20PAK ; correct number?
3235 004172' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3236 004173' 200 00 0 00 006335' MOVE NPAKR ; get receive count
3237 004174' 305 00 0 00 000264 CAIGE T20PAK*^D9/^D10 ; more than 90% received?
3238 004175' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3239 004176' 027 00 0 00 004216' SCOPER MD20 ; print error message
3240 004177' 255 00 0 00 000000 JFCL ; loop on error
3241 004200' 254 00 0 00 004201' JRST TX20 ; altmode exit
3242
3243 ; Exit
3244
3245 004201' 200 00 0 00 010107' TX20: MOVE NRCRC ; get receive CRC errors
3246 004202' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
3247 004203' 260 17 0 00 003755* GO SETDSA ; disable the port
3248 004204' 260 17 0 00 003756* GO ISTOP ; stop the port
3249 004205' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 75
DFNIA3 MAC 30-Nov-83 16:40 Multicast Address Tests SEQ 0643
3250
3251 ; Error messages
3252
3253 004206' 260000 006324' MA20: TXALL!CALL!LODERR
3254 004207' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3255
3256 004210' 160000 006561' MB20: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
3257 004211' 260000 006276' TXALL!CALL!PDUMP
3258 004212' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3259
3260 004213' 160000 006663' MC20: TXALL!MSG![ASCIZ /Could not enable the port/]
3261 004214' 260000 006276' TXALL!CALL!PDUMP
3262 004215' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3263
3264 004216' 160000 007017' MD20: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
3265 004217' 260000 004222' TXALL!CALL!MD20PN
3266 004220' 260000 006276' TXALL!CALL!PDUMP
3267 004221' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
3268
3269 004222' 037 00 0 00 007030' MD20PN: TMSGC < What Expected Actual>
3270 004223' 037 00 0 00 007040' TMSGC <----------- -------- ------>
3271 004224' 037 00 0 00 007050' TMSGC <Packets Sent >
3272 004225' 004 11 0 00 007054' PNTDCP 9,[T20PAK]
3273 004226' 004 11 0 00 006333' PNTDCP 9,NPAKS
3274 004227' 037 00 0 00 007061' TMSGC <Packets Rcvd >
3275 004230' 004 11 0 00 007054' PNTDCP 9,[T20PAK]
3276 004231' 004 11 0 00 006335' PNTDCP 9,NPAKR
3277 004232' 263 17 0 00 000000 RTN
3278
3279 ; Special routine to set up multicast address and PTT table
3280
3281 004233' 400 03 0 00 000000 T20SPC: SETZ 3, ; initialize offset
3282 004234' 200 00 0 03 000000# MOVE MTABLE+1(3) ; get multicast address word
3283 004235' 621 00 0 00 400000 TLZ 400000 ; clear enable bit
3284 004236' 202 00 0 03 000000# MOVEM MTABLE+1(3) ; save it
3285 004237' 271 03 0 00 000002 ADDI 3,2 ; point to next
3286 004240' 307 03 0 00 000037 CAIG 3,37 ; done yet?
3287 004241' 254 00 0 00 004234' JRST T20SPC+1 ; no - loop till done
3288
3289 004242' 400 03 0 00 000000 T20SP0: SETZ 3, ; initialize offset
3290 004243' 200 00 0 03 000000* MOVE PTABLE(3) ; get PT table enable word
3291 004244' 621 00 0 00 400000 TLZ 400000 ; clear enable bit
3292 004245' 202 00 0 03 004243* MOVEM PTABLE(3) ; save it
3293 004246' 271 03 0 00 000003 ADDI 3,3 ; point to next
3294 004247' 307 03 0 00 000060 CAIG 3,^D48 ; done yet?
3295 004250' 254 00 0 00 004243' JRST T20SP0+1 ; no - loop till done
3296 004251' 263 17 0 00 000000 RTN ; return
3297
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 76
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0644
3298 SUBTTL Protocol Type Tests
3299
3300 ;#********************************************************************
3301 ;* TEST 21 - PTT Table Test 1
3302 ;
3303 ; Description: This test sets up the protocol type table to
3304 ; enable no protocol types. Then a datagram is sent
3305 ; to self specifying each of the protocol types and
3306 ; the results are verified (responses are built
3307 ; from the unknown protocol type free queue).
3308 ;
3309 ; Procedure: KL> Load microcode
3310 ; KL> Port Clear
3311 ; KL> Start port
3312 ;
3313 ; KL> Build a self-directed datagram to the specifying
3314 ; the first protocol type and insert on cmd queue
3315 ; KL> Verify that a datagram is received
3316 ; If failed - print error message and exit test
3317 ;
3318 ; Repeat 16 times, one for each protocol type.
3319 ;
3320 ; FRU: NIA Module
3321 ;#********************************************************************
3322
3323 000020 T21PAK==^D16 ; number of packets to send
3324 000100 T21LEN==^D64 ; packet length
3325
3326 ; Initialization
3327
3328 004252' 201 00 0 00 000000' TST21: MOVEI Z3 ; get address of module start
3329 004253' 260 17 0 00 004006* GO TRACE ; handle trace output
3330 004254' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
3331 004255' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
3332 004256' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
3333 004257' 260 17 0 00 004013* GO IPACLR ; do a 'port clear'
3334 004260' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
3335 004261' 260 17 0 00 004015* GO TFLOAD ; load operational microcode
3336 GO [MOVEM TERMES ; error - save error message
3337 SETO ERFLG,
3338 004262' 260 17 0 00 006552' RTN]
3339 004263' 027 00 0 00 004457' SCOPER MA21 ; print error message
3340 004264' 255 00 0 00 000000 JFCL ; loop on error
3341 004265' 254 00 0 00 004452' JRST TX21 ; altmode exit
3342 004266' 326 15 0 00 004452' JUMPN ERFLG,TX21 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 77
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0645
3343
3344 ; Start port
3345
3346 004267' 201 00 0 00 004511' MOVEI T21SPC ; set up address of routine to
3347 004270' 202 00 0 00 010110' MOVEM PSPEC ; disable multicast addresses
3348 004271' 260 17 0 00 006373' GO PIDLE ; start port
3349 004272' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3350 004273' 402 00 0 00 010110' SETZM PSPEC ; clear special routine address
3351 004274' 027 00 0 00 004461' SCOPER MB21 ; print error message
3352 004275' 255 00 0 00 000000 JFCL ; loop on error
3353 004276' 254 00 0 00 004452' JRST TX21 ; altmode exit
3354 004277' 326 15 0 00 004452' JUMPN ERFLG,TX21 ; error yet? yes - abort test
3355
3356 ; Enable the port
3357
3358 004300' 260 17 0 00 004034* GO SETENA ; ensure the port is enabled
3359 004301' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3360 004302' 027 00 0 00 004464' SCOPER MC21 ; print error message
3361 004303' 255 00 0 00 000000 JFCL ; loop on error
3362 004304' 254 00 0 00 004452' JRST TX21 ; altmode exit
3363 004305' 326 15 0 00 004452' JUMPN ERFLG,TX21 ; error yet? yes - abort test
3364
3365 ; Set up multicast and PTT tables
3366
3367 004306' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
3368 004307' 027 00 0 00 006540' SCOPER LOADPE ; print error message
3369 004310' 255 00 0 00 000000 JFCL ; loop on error
3370 004311' 254 00 0 00 004452' JRST TX21 ; altmode exit
3371 004312' 326 15 0 00 004452' JUMPN ERFLG,TX21 ; error yet? yes - abort test
3372
3373 ; Initialize statistics
3374
3375 004313' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
3376 004314' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
3377 004315' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
3378 004316' 402 00 0 00 010106' SETZM NPAKUN# ; clear # packets on UNK free queue
3379 004317' 402 00 0 00 010104' SETZM NPAKPT# ; clear # packets on PTT free queue
3380
3381 ; Initialize packet data
3382
3383 004320' 402 00 0 00 004047* SETZM TFMFLG ; set to COMPAT mode
3384 004321' 476 00 0 00 004050* SETOM TRSFLG ; set 'response requested' flag
3385 004322' 402 00 0 00 004051* SETZM TPDFLG ; clear pad flag
3386 004323' 402 00 0 00 004052* SETZM TBSDFL ; set to non-BSD style datagram
3387 004324' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3388 004325' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
3389 004326' 202 00 0 00 004061* MOVEM TPAT ; counting pattern
3390 004327' 402 00 0 00 004053* SETZM TBYTE ; clear byte count
3391 004330' 201 00 0 00 000100 MOVEI T21LEN ; get length
3392 004331' 202 00 0 00 004055* MOVEM TWORD ; save it
3393 004332' 120 00 0 00 002637* DMOVE SADDR ; initialize destination address
3394 004333' 124 00 0 00 004064* DMOVEM TDEST ; to self
3395 004334' 402 00 0 00 004125* SETZM TSTSUB ; initialize subtest number
3396 004335' 402 00 0 00 004072* SETZM RQAFLG ; clear response queue available flag
3397 004336' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 78
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0646
3398
3399 ; Increment packet number
3400
3401 004337' 350 01 0 00 004334* TA21: AOS 1,TSTSUB ; increment subtest number
3402 004340' 303 01 0 00 000020 CAILE 1,T21PAK ; done yet?
3403 004341' 254 00 0 00 004413' JRST TE21 ; yes - check test results
3404 004342' 400 06 0 00 000000 SETZ 6, ; clear hung count
3405
3406 ; Build a packet
3407
3408 004343' 202 01 0 00 004057* MOVEM 1,TPTTVL ; save protocol type
3409 004344' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3410 004345' 260 17 0 00 004066* GO BPACKN ; set up packet data (no CRC)
3411
3412 ; Check misc
3413
3414 004346' 037 07 0 00 000003 TB21: TTALTM ; altmode typed?
3415 004347' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
3416 004350' 476 00 0 00 004102* SETOM ALTF ; yes - set flag
3417 004351' 332 00 0 00 004350* SKIPE ALTF ; altmode flagged?
3418 004352' 254 00 0 00 004452' JRST TX21 ; yes - exit
3419 004353' 336 00 0 00 004105* SKIPN LCHAR ; last character in here already?
3420 004354' 202 00 0 00 004353* MOVEM LCHAR ; no - save 'last char typed'
3421 004355' 260 17 0 00 004106* GO PSTAMP ; check for S typed
3422
3423 ; Send packet
3424
3425 004356' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
3426 004357' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
3427 004360' 260 17 0 00 004111* GO CHKINT ; get list of queue entries
3428 004361' 255 00 0 00 000000 JFCL ; ignore error
3429 004362' 476 00 0 00 004113* SETOM PTTFQ ; reset the interlock
3430 004363' 200 00 0 00 004126* MOVE NUMENT ; get entry count
3431 004364' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
3432 004365' 254 00 0 00 004376' JRST TC21 ; no - continue
3433
3434 004366' 260 17 0 00 004117* GO INSQUE ; insert into queue
3435 004367' 254 00 0 00 004372' JRST .+3 ; failed - continue
3436 004370' 254 00 0 00 004372' JRST .+2 ; failed - continue
3437 004371' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
3438 004372' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
3439 004373' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
3440 004374' 337 00 0 00 004363* SKIPG NUMENT ; was the queue empty?
3441 GO [GO RDCSR ; yes - set 'CMDQAV'
3442 MOVEI 1,PENABL!MPRUN
3443 TRZ 1,RESQAV
3444 TRO 1,CMDQAV
3445 GO LDCSR
3446 004375' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 79
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0647
3447
3448 ; Check for a response
3449
3450 004376' 260 17 0 00 004153* TC21: GO CHKRQV ; check response queue available
3451 004377' 260 17 0 00 004154* GO CHKRSP ; check for RspQ entry
3452 JRST [SETZM RQAFLG ; no entry found - continue
3453 MOVE 1,PCB+5 ; get response queue FLINK
3454 GO CONVIR ; convert to virtual
3455 CAIE 1,PCB+5 ; queue really empty?
3456 SETOM RQAFLG ; no - set rsp queue avail flag
3457 004400' 254 00 0 00 007475' JRST TD21]
3458 004401' 400 06 0 00 000000 SETZ 6, ; clear hung count
3459 004402' 260 17 0 00 006166' GO MCHECK ; determine results
3460 004403' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3461 004404' 260 17 0 00 006420' GO QCHECK ; check for queue type
3462 004405' 254 00 0 00 004376' JRST TC21 ; keep looking for responses
3463
3464 ; No more responses
3465
3466 004406' 350 00 0 00 000006 TD21: AOS 6 ; increment hung count
3467 004407' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
3468 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
3469 004410' 254 00 0 00 007503' JRST TE21] ; and exit
3470 004411' 322 07 0 00 004346' JUMPE 7,TB21 ; send current packet? yes - go do so
3471 004412' 254 00 0 00 004337' JRST TA21 ; no - already did - go do next packet
3472
3473 ; Check for any stragglers
3474
3475 004413' 400 03 0 00 000000 TE21: SETZ 3, ; set up for RUNTME
3476 004414' 260 17 0 00 004162* GO RUNTME ; get current run time
3477 004415' 200 01 0 00 004163* MOVE 1,DEBTIM ; get time in milliseconds
3478 004416' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
3479 004417' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
3480 004420' 260 17 0 00 004376* TF21: GO CHKRQV ; check response queue available
3481 004421' 260 17 0 00 004377* GO CHKRSP ; check for RspQ entry
3482 JRST [SETZM RQAFLG ; no entry found - continue
3483 MOVE 1,PCB+5 ; get response queue FLINK
3484 GO CONVIR ; convert to virtual
3485 CAIE 1,PCB+5 ; queue really empty?
3486 SETOM RQAFLG ; no - set rsp queue avail flag
3487 004422' 254 00 0 00 007505' JRST TG21]
3488 004423' 260 17 0 00 006166' GO MCHECK ; determine results
3489 004424' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3490 004425' 260 17 0 00 006420' GO QCHECK ; check for queue type
3491 004426' 254 00 0 00 004420' JRST TF21 ; keep looking for responses
3492
3493 004427' 400 03 0 00 000000 TG21: SETZ 3, ; set up for RUNTME
3494 004430' 260 17 0 00 004414* GO RUNTME ; get current run time
3495 004431' 200 01 0 00 004415* MOVE 1,DEBTIM ; get time in milliseconds
3496 004432' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
3497 004433' 254 00 0 00 004420' JRST TF21 ; no - keep looping
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 80
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0648
3498
3499 ; Done with test - now check results
3500
3501 004434' 200 00 0 00 006333' TH21: MOVE NPAKS ; get number of packets sent
3502 004435' 302 00 0 00 000020 CAIE T21PAK ; correct number?
3503 004436' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3504 004437' 200 00 0 00 006335' MOVE NPAKR ; get number of packets received
3505 004440' 305 00 0 00 000014 CAIGE T21PAK-4 ; correct number received?
3506 004441' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3507 004442' 332 00 0 00 010104' SKIPE NPAKPT ; any # of packets from PTT free queue?
3508 004443' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
3509 004444' 200 00 0 00 010106' MOVE NPAKUN ; get # of packets from UNK free queue?
3510 004445' 312 00 0 00 006335' CAME NPAKR ; same as received?
3511 004446' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3512 004447' 027 00 0 00 004467' SCOPER MD21 ; print error message
3513 004450' 255 00 0 00 000000 JFCL ; loop on error
3514 004451' 254 00 0 00 004452' JRST TX21 ; altmode exit
3515
3516 ; Exit
3517
3518 004452' 200 00 0 00 010107' TX21: MOVE NRCRC ; get receive CRC errors
3519 004453' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
3520 004454' 260 17 0 00 004203* GO SETDSA ; disable the port
3521 004455' 260 17 0 00 004204* GO ISTOP ; stop the port
3522 004456' 263 17 0 00 000000 RTN ; return
3523
3524 ; Error messages
3525
3526 004457' 260000 006324' MA21: TXALL!CALL!LODERR
3527 004460' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3528
3529 004461' 160000 006561' MB21: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
3530 004462' 260000 006276' TXALL!CALL!PDUMP
3531 004463' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3532
3533 004464' 160000 006663' MC21: TXALL!MSG![ASCIZ /Could not enable the port/]
3534 004465' 260000 006276' TXALL!CALL!PDUMP
3535 004466' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 81
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0649
3536
3537 004467' 160000 007017' MD21: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
3538 004470' 260000 004473' TXALL!CALL!MD21PN
3539 004471' 260000 006276' TXALL!CALL!PDUMP
3540 004472' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
3541
3542 004473' 037 00 0 00 007030' MD21PN: TMSGC < What Expected Actual>
3543 004474' 037 00 0 00 007040' TMSGC <----------- -------- ------>
3544 004475' 037 00 0 00 007050' TMSGC <Packets Sent >
3545 004476' 004 11 0 00 007373' PNTDCP 9,[T21PAK]
3546 004477' 004 11 0 00 006333' PNTDCP 9,NPAKS
3547 004500' 037 00 0 00 007061' TMSGC <Packets Rcvd >
3548 004501' 004 11 0 00 007373' PNTDCP 9,[T21PAK]
3549 004502' 004 11 0 00 006335' PNTDCP 9,NPAKR
3550 004503' 037 00 0 00 007513' TMSGC < On UnkPT Free Q>
3551 004504' 004 11 0 00 006335' PNTDCP 9,NPAKR
3552 004505' 004 11 0 00 010106' PNTDCP 9,NPAKUN
3553 004506' 037 00 0 00 007517' TMSGC < On PTT Free Q 0.>
3554 004507' 004 11 0 00 010104' PNTDCP 9,NPAKPT
3555 004510' 263 17 0 00 000000 RTN
3556
3557 ; Special routine to set up PTT table
3558
3559 004511' 400 03 0 00 000000 T21SPC: SETZ 3, ; initialize offset
3560 004512' 200 00 0 03 004245* MOVE PTABLE(3) ; get PTT enable word
3561 004513' 621 00 0 00 400000 TLZ 400000 ; clear enable bit
3562 004514' 202 00 0 03 004512* MOVEM PTABLE(3) ; save it
3563 004515' 271 03 0 00 000003 ADDI 3,3 ; point to next
3564 004516' 307 03 0 00 000060 CAIG 3,^D48 ; done yet?
3565 004517' 254 00 0 00 004512' JRST T21SPC+1 ; no - loop till done
3566 004520' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 82
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0650
3567
3568 ;#********************************************************************
3569 ;* TEST 22 - PTT Table Test 2
3570 ;
3571 ; Description: This test sets up the protocol type table to
3572 ; enable all protocol types. Then datagrams are
3573 ; sent to self specifying other protocol types.
3574 ; These datagrams should be placed on the unknown
3575 ; protocol type free queue.
3576 ;
3577 ; Procedure: KL> Load microcode
3578 ; KL> Port Clear
3579 ; KL> Start port
3580 ;
3581 ; KL> Build a self-directed datagram to the specifying
3582 ; the first protocol type and insert on cmd queue
3583 ; KL> Verify that a datagram is received
3584 ; If failed - print error message and exit test
3585 ;
3586 ; Repeat 16 times, one for each protocol type.
3587 ;
3588 ; FRU: NIA Module
3589 ;#********************************************************************
3590
3591 000020 T22PAK==^D16 ; number of packets to send
3592 000100 T22LEN==^D64 ; packet length
3593
3594 ; Initialization
3595
3596 004521' 201 00 0 00 000000' TST22: MOVEI Z3 ; get address of module start
3597 004522' 260 17 0 00 004253* GO TRACE ; handle trace output
3598 004523' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
3599 004524' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
3600 004525' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
3601 004526' 260 17 0 00 004257* GO IPACLR ; do a 'port clear'
3602 004527' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
3603 004530' 260 17 0 00 004261* GO TFLOAD ; load operational microcode
3604 GO [MOVEM TERMES ; error - save error message
3605 SETO ERFLG,
3606 004531' 260 17 0 00 006552' RTN]
3607 004532' 027 00 0 00 004724' SCOPER MA22 ; print error message
3608 004533' 255 00 0 00 000000 JFCL ; loop on error
3609 004534' 254 00 0 00 004717' JRST TX22 ; altmode exit
3610 004535' 326 15 0 00 004717' JUMPN ERFLG,TX22 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 83
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0651
3611
3612 ; Start port
3613
3614 004536' 260 17 0 00 003570* GO TIDLE ; start port
3615 004537' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3616 004540' 027 00 0 00 004726' SCOPER MB22 ; print error message
3617 004541' 255 00 0 00 000000 JFCL ; loop on error
3618 004542' 254 00 0 00 004717' JRST TX22 ; altmode exit
3619 004543' 326 15 0 00 004717' JUMPN ERFLG,TX22 ; error yet? yes - abort test
3620
3621 ; Enable the port
3622
3623 004544' 260 17 0 00 004300* GO SETENA ; ensure the port is enabled
3624 004545' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3625 004546' 027 00 0 00 004731' SCOPER MC22 ; print error message
3626 004547' 255 00 0 00 000000 JFCL ; loop on error
3627 004550' 254 00 0 00 004717' JRST TX22 ; altmode exit
3628 004551' 326 15 0 00 004717' JUMPN ERFLG,TX22 ; error yet? yes - abort test
3629
3630 ; Set up multicast and PTT tables
3631
3632 004552' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
3633 004553' 027 00 0 00 006540' SCOPER LOADPE ; print error message
3634 004554' 255 00 0 00 000000 JFCL ; loop on error
3635 004555' 254 00 0 00 004717' JRST TX22 ; altmode exit
3636 004556' 326 15 0 00 004717' JUMPN ERFLG,TX22 ; error yet? yes - abort test
3637
3638 ; Initialize statistics
3639
3640 004557' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
3641 004560' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
3642 004561' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
3643 004562' 402 00 0 00 010106' SETZM NPAKUN ; clear # packets on UNK free queue
3644 004563' 402 00 0 00 010104' SETZM NPAKPT ; clear # packets on PTT free queue
3645
3646 ; Initialize packet data
3647
3648 004564' 402 00 0 00 004320* SETZM TFMFLG ; set to COMPAT mode
3649 004565' 476 00 0 00 004321* SETOM TRSFLG ; set 'response requested' flag
3650 004566' 402 00 0 00 004322* SETZM TPDFLG ; clear pad flag
3651 004567' 402 00 0 00 004323* SETZM TBSDFL ; set to non-BSD style datagram
3652 004570' 120 00 0 00 004332* DMOVE SADDR ; initialize destination address
3653 004571' 124 00 0 00 004333* DMOVEM TDEST ; to self
3654 004572' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3655 004573' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
3656 004574' 202 00 0 00 004326* MOVEM TPAT ; counting pattern
3657 004575' 402 00 0 00 004327* SETZM TBYTE ; clear byte count
3658 004576' 201 00 0 00 000100 MOVEI T22LEN ; get length
3659 004577' 202 00 0 00 004331* MOVEM TWORD ; save it
3660 004600' 402 00 0 00 004337* SETZM TSTSUB ; initialize subtest number
3661 004601' 402 00 0 00 004335* SETZM RQAFLG ; clear response queue available flag
3662 004602' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 84
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0652
3663
3664 ; Increment packet number
3665
3666 004603' 350 01 0 00 004600* TA22: AOS 1,TSTSUB ; increment subtest number
3667 004604' 303 01 0 00 000020 CAILE 1,T22PAK ; done yet?
3668 004605' 254 00 0 00 004660' JRST TE22 ; yes - check test results
3669 004606' 400 06 0 00 000000 SETZ 6, ; clear hung count
3670
3671 ; Build a packet
3672
3673 004607' 431 01 0 00 000200 XORI 1,200 ; change the protocol type
3674 004610' 202 01 0 00 004343* MOVEM 1,TPTTVL ; save it
3675 004611' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3676 004612' 260 17 0 00 004345* GO BPACKN ; set up packet data (no CRC)
3677
3678 ; Check misc
3679
3680 004613' 037 07 0 00 000003 TB22: TTALTM ; altmode typed?
3681 004614' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
3682 004615' 476 00 0 00 004351* SETOM ALTF ; yes - set flag
3683 004616' 332 00 0 00 004615* SKIPE ALTF ; altmode flagged?
3684 004617' 254 00 0 00 004717' JRST TX22 ; yes - exit
3685 004620' 336 00 0 00 004354* SKIPN LCHAR ; last character in here already?
3686 004621' 202 00 0 00 004620* MOVEM LCHAR ; no - save 'last char typed'
3687 004622' 260 17 0 00 004355* GO PSTAMP ; check for S typed
3688
3689 ; Send packet
3690
3691 004623' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
3692 004624' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
3693 004625' 260 17 0 00 004360* GO CHKINT ; get list of queue entries
3694 004626' 255 00 0 00 000000 JFCL ; ignore error
3695 004627' 476 00 0 00 004362* SETOM PTTFQ ; reset the interlock
3696 004630' 200 00 0 00 004374* MOVE NUMENT ; get entry count
3697 004631' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
3698 004632' 254 00 0 00 004643' JRST TC22 ; no - continue
3699
3700 004633' 260 17 0 00 004366* GO INSQUE ; insert into queue
3701 004634' 254 00 0 00 004637' JRST .+3 ; failed - continue
3702 004635' 254 00 0 00 004637' JRST .+2 ; failed - continue
3703 004636' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
3704 004637' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
3705 004640' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
3706 004641' 337 00 0 00 004630* SKIPG NUMENT ; was the queue empty?
3707 GO [GO RDCSR ; yes - set 'CMDQAV'
3708 MOVEI 1,PENABL!MPRUN
3709 TRZ 1,RESQAV
3710 TRO 1,CMDQAV
3711 GO LDCSR
3712 004642' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 85
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0653
3713
3714 ; Check for a response
3715
3716 004643' 260 17 0 00 004420* TC22: GO CHKRQV ; check response queue available
3717 004644' 260 17 0 00 004421* GO CHKRSP ; check for RspQ entry
3718 JRST [SETZM RQAFLG ; no entry found - continue
3719 MOVE 1,PCB+5 ; get response queue FLINK
3720 GO CONVIR ; convert to virtual
3721 CAIE 1,PCB+5 ; queue really empty?
3722 SETOM RQAFLG ; no - set rsp queue avail flag
3723 004645' 254 00 0 00 007525' JRST TD22]
3724 004646' 400 06 0 00 000000 SETZ 6, ; clear hung count
3725 004647' 260 17 0 00 006166' GO MCHECK ; determine results
3726 004650' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3727 004651' 260 17 0 00 006420' GO QCHECK ; check for queue type
3728 004652' 254 00 0 00 004643' JRST TC22 ; keep looking for responses
3729
3730 ; No more responses
3731
3732 004653' 350 00 0 00 000006 TD22: AOS 6 ; increment hung count
3733 004654' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
3734 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
3735 004655' 254 00 0 00 007533' JRST TE22] ; and exit
3736 004656' 322 07 0 00 004613' JUMPE 7,TB22 ; send current packet? yes - go do so
3737 004657' 254 00 0 00 004603' JRST TA22 ; no - already did - go do next packet
3738
3739 ; Check for any stragglers
3740
3741 004660' 400 03 0 00 000000 TE22: SETZ 3, ; set up for RUNTME
3742 004661' 260 17 0 00 004430* GO RUNTME ; get current run time
3743 004662' 200 01 0 00 004431* MOVE 1,DEBTIM ; get time in milliseconds
3744 004663' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
3745 004664' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
3746 004665' 260 17 0 00 004643* TF22: GO CHKRQV ; check response queue available
3747 004666' 260 17 0 00 004644* GO CHKRSP ; check for RspQ entry
3748 JRST [SETZM RQAFLG ; no entry found - continue
3749 MOVE 1,PCB+5 ; get response queue FLINK
3750 GO CONVIR ; convert to virtual
3751 CAIE 1,PCB+5 ; queue really empty?
3752 SETOM RQAFLG ; no - set rsp queue avail flag
3753 004667' 254 00 0 00 007535' JRST TG22]
3754 004670' 260 17 0 00 006166' GO MCHECK ; determine results
3755 004671' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3756 004672' 260 17 0 00 006420' GO QCHECK ; check for queue type
3757 004673' 254 00 0 00 004665' JRST TF22 ; keep looking for responses
3758
3759 004674' 400 03 0 00 000000 TG22: SETZ 3, ; set up for RUNTME
3760 004675' 260 17 0 00 004661* GO RUNTME ; get current run time
3761 004676' 200 01 0 00 004662* MOVE 1,DEBTIM ; get time in milliseconds
3762 004677' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
3763 004700' 254 00 0 00 004665' JRST TF22 ; no - keep looping
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 86
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0654
3764
3765 ; Done with test - now check results
3766
3767 004701' 200 00 0 00 006333' TH22: MOVE NPAKS ; get number of packets sent
3768 004702' 302 00 0 00 000020 CAIE T22PAK ; correct number?
3769 004703' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3770 004704' 200 00 0 00 006335' MOVE NPAKR ; get number of packets received
3771 004705' 305 00 0 00 000014 CAIGE T22PAK-4 ; correct number received?
3772 004706' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3773 004707' 332 00 0 00 010104' SKIPE NPAKPT ; any # of packets from PTT free queue?
3774 004710' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
3775 004711' 200 00 0 00 010106' MOVE NPAKUN ; get # of packets from UNK free queue?
3776 004712' 312 00 0 00 006335' CAME NPAKR ; same as received?
3777 004713' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
3778 004714' 027 00 0 00 004734' SCOPER MD22 ; print error message
3779 004715' 255 00 0 00 000000 JFCL ; loop on error
3780 004716' 254 00 0 00 004717' JRST TX22 ; altmode exit
3781
3782 ; Exit
3783
3784 004717' 200 00 0 00 010107' TX22: MOVE NRCRC ; get receive CRC errors
3785 004720' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
3786 004721' 260 17 0 00 004454* GO SETDSA ; disable the port
3787 004722' 260 17 0 00 004455* GO ISTOP ; stop the port
3788 004723' 263 17 0 00 000000 RTN ; return
3789
3790 ; Error messages
3791
3792 004724' 260000 006324' MA22: TXALL!CALL!LODERR
3793 004725' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3794
3795 004726' 160000 006561' MB22: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
3796 004727' 260000 006276' TXALL!CALL!PDUMP
3797 004730' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
3798
3799 004731' 160000 006663' MC22: TXALL!MSG![ASCIZ /Could not enable the port/]
3800 004732' 260000 006276' TXALL!CALL!PDUMP
3801 004733' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 87
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0655
3802
3803 004734' 160000 007017' MD22: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
3804 004735' 260000 004740' TXALL!CALL!MD22PN
3805 004736' 260000 006276' TXALL!CALL!PDUMP
3806 004737' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
3807
3808 004740' 037 00 0 00 007030' MD22PN: TMSGC < What Expected Actual>
3809 004741' 037 00 0 00 007040' TMSGC <----------- -------- ------>
3810 004742' 037 00 0 00 007050' TMSGC <Packets Sent >
3811 004743' 004 11 0 00 007373' PNTDCP 9,[T22PAK]
3812 004744' 004 11 0 00 006333' PNTDCP 9,NPAKS
3813 004745' 037 00 0 00 007061' TMSGC <Packets Rcvd >
3814 004746' 004 11 0 00 007373' PNTDCP 9,[T22PAK]
3815 004747' 004 11 0 00 006335' PNTDCP 9,NPAKR
3816 004750' 037 00 0 00 007513' TMSGC < On UnkPT Free Q>
3817 004751' 004 11 0 00 006335' PNTDCP 9,NPAKR
3818 004752' 004 11 0 00 010106' PNTDCP 9,NPAKUN
3819 004753' 037 00 0 00 007517' TMSGC < On PTT Free Q 0.>
3820 004754' 004 11 0 00 010104' PNTDCP 9,NPAKPT
3821 004755' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 88
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0656
3822
3823 ;#********************************************************************
3824 ;* TEST 23 - PTT Table Test 3
3825 ;
3826 ; Description: This test sets up the protocol type table to
3827 ; enable all protocol types. Then datagrams are
3828 ; sent to self specifying all of the protocol
3829 ; types. The results are then verified.
3830 ;
3831 ; Procedure: KL> Load microcode
3832 ; KL> Port Clear
3833 ; KL> Start port
3834 ;
3835 ; KL> Build a self-directed datagram to the specifying
3836 ; the first protocol type and insert on cmd queue
3837 ; KL> Verify that a datagram is received
3838 ; If failed - print error message and exit test
3839 ;
3840 ; Repeat 16 times, one for each protocol type.
3841 ;
3842 ; FRU: NIA Module
3843 ;#********************************************************************
3844
3845 000020 T23PAK==^D16 ; number of packets to send
3846 000100 T23LEN==^D64 ; packet length
3847
3848 ; Initialization
3849
3850 004756' 201 00 0 00 000000' TST23: MOVEI Z3 ; get address of module start
3851 004757' 260 17 0 00 004522* GO TRACE ; handle trace output
3852 004760' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
3853 004761' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
3854 004762' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
3855 004763' 260 17 0 00 004526* GO IPACLR ; do a 'port clear'
3856 004764' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
3857 004765' 260 17 0 00 004530* GO TFLOAD ; load operational microcode
3858 GO [MOVEM TERMES ; error - save error message
3859 SETO ERFLG,
3860 004766' 260 17 0 00 006552' RTN]
3861 004767' 027 00 0 00 005161' SCOPER MA23 ; print error message
3862 004770' 255 00 0 00 000000 JFCL ; loop on error
3863 004771' 254 00 0 00 005154' JRST TX23 ; altmode exit
3864 004772' 326 15 0 00 005154' JUMPN ERFLG,TX23 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 89
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0657
3865
3866 ; Start port
3867
3868 004773' 260 17 0 00 004536* GO TIDLE ; start port
3869 004774' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3870 004775' 027 00 0 00 005163' SCOPER MB23 ; print error message
3871 004776' 255 00 0 00 000000 JFCL ; loop on error
3872 004777' 254 00 0 00 005154' JRST TX23 ; altmode exit
3873 005000' 326 15 0 00 005154' JUMPN ERFLG,TX23 ; error yet? yes - abort test
3874
3875 ; Enable the port
3876
3877 005001' 260 17 0 00 004544* GO SETENA ; ensure the port is enabled
3878 005002' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
3879 005003' 027 00 0 00 005166' SCOPER MC23 ; print error message
3880 005004' 255 00 0 00 000000 JFCL ; loop on error
3881 005005' 254 00 0 00 005154' JRST TX23 ; altmode exit
3882 005006' 326 15 0 00 005154' JUMPN ERFLG,TX23 ; error yet? yes - abort test
3883
3884 ; Set up multicast and PTT tables
3885
3886 005007' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
3887 005010' 027 00 0 00 006540' SCOPER LOADPE ; print error message
3888 005011' 255 00 0 00 000000 JFCL ; loop on error
3889 005012' 254 00 0 00 004717' JRST TX22 ; altmode exit
3890 005013' 326 15 0 00 004717' JUMPN ERFLG,TX22 ; error yet? yes - abort test
3891
3892 ; Initialize statistics
3893
3894 005014' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
3895 005015' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
3896 005016' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
3897 005017' 402 00 0 00 010106' SETZM NPAKUN ; clear # packets on UNK free queue
3898 005020' 402 00 0 00 010104' SETZM NPAKPT ; clear # packets on PTT free queue
3899
3900 ; Initialize packet data
3901
3902 005021' 402 00 0 00 004564* SETZM TFMFLG ; set to COMPAT mode
3903 005022' 476 00 0 00 004565* SETOM TRSFLG ; set 'response requested' flag
3904 005023' 402 00 0 00 004566* SETZM TPDFLG ; clear pad flag
3905 005024' 402 00 0 00 004567* SETZM TBSDFL ; set to non-BSD style datagram
3906 005025' 120 00 0 00 004570* DMOVE SADDR ; initialize destination address
3907 005026' 124 00 0 00 004571* DMOVEM TDEST ; to self
3908 005027' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3909 005030' 201 00 0 00 000122 MOVEI 122 ; set data pattern to 8 bit
3910 005031' 202 00 0 00 004574* MOVEM TPAT ; counting pattern
3911 005032' 402 00 0 00 004575* SETZM TBYTE ; clear byte count
3912 005033' 201 00 0 00 000100 MOVEI T23LEN ; get length
3913 005034' 202 00 0 00 004577* MOVEM TWORD ; save it
3914 005035' 402 00 0 00 004603* SETZM TSTSUB ; initialize subtest number
3915 005036' 402 00 0 00 004601* SETZM RQAFLG ; clear response queue available flag
3916 005037' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 90
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0658
3917
3918 ; Increment packet number
3919
3920 005040' 350 01 0 00 005035* TA23: AOS 1,TSTSUB ; increment subtest number
3921 005041' 303 01 0 00 000020 CAILE 1,T23PAK ; done yet?
3922 005042' 254 00 0 00 005115' JRST TE23 ; yes - check test results
3923 005043' 400 06 0 00 000000 SETZ 6, ; clear hung count
3924
3925 ; Build a packet
3926
3927 005044' 370 00 0 00 000001 SOS 1 ; adjust to 0-17
3928 005045' 202 01 0 00 004610* MOVEM 1,TPTTVL ; save protocol type
3929 005046' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
3930 005047' 260 17 0 00 001207* GO BPACK ; set up packet data (no CRC)
3931
3932 ; Check misc
3933
3934 005050' 037 07 0 00 000003 TB23: TTALTM ; altmode typed?
3935 005051' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
3936 005052' 476 00 0 00 004616* SETOM ALTF ; yes - set flag
3937 005053' 332 00 0 00 005052* SKIPE ALTF ; altmode flagged?
3938 005054' 254 00 0 00 005154' JRST TX23 ; yes - exit
3939 005055' 336 00 0 00 004621* SKIPN LCHAR ; last character in here already?
3940 005056' 202 00 0 00 005055* MOVEM LCHAR ; no - save 'last char typed'
3941 005057' 260 17 0 00 004622* GO PSTAMP ; check for S typed
3942
3943 ; Send packet
3944
3945 005060' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
3946 005061' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
3947 005062' 260 17 0 00 004625* GO CHKINT ; get list of queue entries
3948 005063' 255 00 0 00 000000 JFCL ; ignore error
3949 005064' 476 00 0 00 004627* SETOM PTTFQ ; reset the interlock
3950 005065' 200 00 0 00 004641* MOVE NUMENT ; get entry count
3951 005066' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
3952 005067' 254 00 0 00 005100' JRST TC23 ; no - continue
3953
3954 005070' 260 17 0 00 004633* GO INSQUE ; insert into queue
3955 005071' 254 00 0 00 005074' JRST .+3 ; failed - continue
3956 005072' 254 00 0 00 005074' JRST .+2 ; failed - continue
3957 005073' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
3958 005074' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
3959 005075' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
3960 005076' 337 00 0 00 005065* SKIPG NUMENT ; was the queue empty?
3961 GO [GO RDCSR ; yes - set 'CMDQAV'
3962 MOVEI 1,PENABL!MPRUN
3963 TRZ 1,RESQAV
3964 TRO 1,CMDQAV
3965 GO LDCSR
3966 005077' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 91
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0659
3967
3968 ; Check for a response
3969
3970 005100' 260 17 0 00 004665* TC23: GO CHKRQV ; check response queue available
3971 005101' 260 17 0 00 004666* GO CHKRSP ; check for RspQ entry
3972 JRST [SETZM RQAFLG ; no entry found - continue
3973 MOVE 1,PCB+5 ; get response queue FLINK
3974 GO CONVIR ; convert to virtual
3975 CAIE 1,PCB+5 ; queue really empty?
3976 SETOM RQAFLG ; no - set rsp queue avail flag
3977 005102' 254 00 0 00 007543' JRST TD23]
3978 005103' 400 06 0 00 000000 SETZ 6, ; clear hung count
3979 005104' 260 17 0 00 006166' GO MCHECK ; determine results
3980 005105' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
3981 005106' 260 17 0 00 006420' GO QCHECK ; check for queue type
3982 005107' 254 00 0 00 005100' JRST TC23 ; keep looking for responses
3983
3984 ; No more responses
3985
3986 005110' 350 00 0 00 000006 TD23: AOS 6 ; increment hung count
3987 005111' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
3988 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
3989 005112' 254 00 0 00 007551' JRST TE23] ; and exit
3990 005113' 322 07 0 00 005050' JUMPE 7,TB23 ; send current packet? yes - go do so
3991 005114' 254 00 0 00 005040' JRST TA23 ; no - already did - go do next packet
3992
3993 ; Check for any stragglers
3994
3995 005115' 400 03 0 00 000000 TE23: SETZ 3, ; set up for RUNTME
3996 005116' 260 17 0 00 004675* GO RUNTME ; get current run time
3997 005117' 200 01 0 00 004676* MOVE 1,DEBTIM ; get time in milliseconds
3998 005120' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
3999 005121' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
4000 005122' 260 17 0 00 005100* TF23: GO CHKRQV ; check response queue available
4001 005123' 260 17 0 00 005101* GO CHKRSP ; check for RspQ entry
4002 JRST [SETZM RQAFLG ; no entry found - continue
4003 MOVE 1,PCB+5 ; get response queue FLINK
4004 GO CONVIR ; convert to virtual
4005 CAIE 1,PCB+5 ; queue really empty?
4006 SETOM RQAFLG ; no - set rsp queue avail flag
4007 005124' 254 00 0 00 007553' JRST TG23]
4008 005125' 260 17 0 00 006166' GO MCHECK ; determine results
4009 005126' 260 17 0 00 006144' GO MCOMP2 ; compare packet data
4010 005127' 260 17 0 00 006420' GO QCHECK ; check for queue type
4011 005130' 254 00 0 00 005122' JRST TF23 ; keep looking for responses
4012
4013 005131' 400 03 0 00 000000 TG23: SETZ 3, ; set up for RUNTME
4014 005132' 260 17 0 00 005116* GO RUNTME ; get current run time
4015 005133' 200 01 0 00 005117* MOVE 1,DEBTIM ; get time in milliseconds
4016 005134' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
4017 005135' 254 00 0 00 005122' JRST TF23 ; no - keep looping
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 92
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0660
4018
4019 ; Done with test - now check results
4020
4021 005136' 200 00 0 00 006333' TH23: MOVE NPAKS ; get number of packets sent
4022 005137' 302 00 0 00 000020 CAIE T23PAK ; correct number?
4023 005140' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4024 005141' 200 00 0 00 006335' MOVE NPAKR ; get number of packets received
4025 005142' 305 00 0 00 000014 CAIGE T23PAK-4 ; correct number received?
4026 005143' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4027 005144' 332 00 0 00 010106' SKIPE NPAKUN ; any # of packets from UNK free queue?
4028 005145' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
4029 005146' 200 00 0 00 010104' MOVE NPAKPT ; get # of packets from PTT free queue?
4030 005147' 312 00 0 00 006335' CAME NPAKR ; same as received?
4031 005150' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4032 005151' 027 00 0 00 005171' SCOPER MD23 ; print error message
4033 005152' 255 00 0 00 000000 JFCL ; loop on error
4034 005153' 254 00 0 00 005154' JRST TX23 ; altmode exit
4035
4036 ; Exit
4037
4038 005154' 200 00 0 00 010107' TX23: MOVE NRCRC ; get receive CRC errors
4039 005155' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
4040 005156' 260 17 0 00 004721* GO SETDSA ; disable the port
4041 005157' 260 17 0 00 004722* GO ISTOP ; stop the port
4042 005160' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 93
DFNIA3 MAC 30-Nov-83 16:40 Protocol Type Tests SEQ 0661
4043
4044 ; Error messages
4045
4046 005161' 260000 006324' MA23: TXALL!CALL!LODERR
4047 005162' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4048
4049 005163' 160000 006561' MB23: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
4050 005164' 260000 006276' TXALL!CALL!PDUMP
4051 005165' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4052
4053 005166' 160000 006663' MC23: TXALL!MSG![ASCIZ /Could not enable the port/]
4054 005167' 260000 006276' TXALL!CALL!PDUMP
4055 005170' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4056
4057 005171' 160000 007017' MD23: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
4058 005172' 260000 005175' TXALL!CALL!MD23PN
4059 005173' 260000 006276' TXALL!CALL!PDUMP
4060 005174' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
4061
4062 005175' 037 00 0 00 007030' MD23PN: TMSGC < What Expected Actual>
4063 005176' 037 00 0 00 007040' TMSGC <----------- -------- ------>
4064 005177' 037 00 0 00 007050' TMSGC <Packets Sent >
4065 005200' 004 11 0 00 007373' PNTDCP 9,[T23PAK]
4066 005201' 004 11 0 00 006333' PNTDCP 9,NPAKS
4067 005202' 037 00 0 00 007061' TMSGC <Packets Rcvd >
4068 005203' 004 11 0 00 007373' PNTDCP 9,[T23PAK]
4069 005204' 004 11 0 00 006335' PNTDCP 9,NPAKR
4070 005205' 037 00 0 00 007561' TMSGC < On UnkPT Free Q 0.>
4071 005206' 004 11 0 00 010106' PNTDCP 9,NPAKUN
4072 005207' 037 00 0 00 007567' TMSGC < On PTT Free Q >
4073 005210' 004 11 0 00 006335' PNTDCP 9,NPAKR
4074 005211' 004 11 0 00 010104' PNTDCP 9,NPAKPT
4075 005212' 263 17 0 00 000000 RTN
4076
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 94
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0662
4077 SUBTTL Miscellaneous Tests
4078
4079 ;********************************************************************
4080 ;* TEST 24 - PAD Flag Bit Test 1
4081 ;
4082 ; Description: This test sends self-directed datagrams which are
4083 ; smaller than the minimum legal packet size (46
4084 ; bytes). It verifies that the microcode pads the
4085 ; packet with trailing 0 bytes when the PAD bit is
4086 ; set and sends it without generating an error
4087 ; response.
4088 ;
4089 ; Procedure: KL> Load microcode
4090 ; KL> Port Clear
4091 ; KL> Start port
4092 ;
4093 ; KL> Build a self-directed runtgram (pad bit set), insert
4094 ; on command queue, and wait for a response
4095 ; KL> Verify proper response
4096 ; KL> Verify data portion of packet received properly
4097 ; If failed - print error message and exit test
4098 ;
4099 ; Do for data pattern 122 and packets of length 0 to 77 bytes
4100 ;
4101 ; FRU: NIA Module
4102 ;#********************************************************************
4103
4104 000100 T24PAK==^D64 ; number of packets to send
4105
4106 ; Initialization
4107
4108 005213' 201 00 0 00 000000' TST24: MOVEI Z3 ; get address of module start
4109 005214' 260 17 0 00 004757* GO TRACE ; handle trace output
4110 005215' 402 00 0 00 010111' SETZM SDEBUG ; clear debug flag
4111 005216' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
4112 005217' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
4113 005220' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
4114 005221' 260 17 0 00 004763* GO IPACLR ; do a 'port clear'
4115 005222' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
4116 005223' 260 17 0 00 004765* GO TFLOAD ; load operational microcode
4117 GO [MOVEM TERMES ; error - save error message
4118 SETO ERFLG,
4119 005224' 260 17 0 00 006552' RTN]
4120 005225' 027 00 0 00 005412' SCOPER MA24 ; print error message
4121 005226' 255 00 0 00 000000 JFCL ; loop on error
4122 005227' 254 00 0 00 005405' JRST TX24 ; altmode exit
4123 005230' 326 15 0 00 005405' JUMPN ERFLG,TX24 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 95
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0663
4124
4125 ; Start port
4126
4127 005231' 260 17 0 00 004773* GO TIDLE ; start port
4128 005232' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
4129 005233' 027 00 0 00 005414' SCOPER MB24 ; print error message
4130 005234' 255 00 0 00 000000 JFCL ; loop on error
4131 005235' 254 00 0 00 005405' JRST TX24 ; altmode exit
4132 005236' 326 15 0 00 005405' JUMPN ERFLG,TX24 ; error yet? yes - abort test
4133
4134 ; Enable the port
4135
4136 005237' 260 17 0 00 005001* GO SETENA ; ensure the port is enabled
4137 005240' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
4138 005241' 027 00 0 00 005417' SCOPER MC24 ; print error message
4139 005242' 255 00 0 00 000000 JFCL ; loop on error
4140 005243' 254 00 0 00 005405' JRST TX24 ; altmode exit
4141 005244' 326 15 0 00 005405' JUMPN ERFLG,TX24 ; error yet? yes - abort test
4142
4143 ; Set up multicast and PTT tables
4144
4145 005245' 260 17 0 00 006434' GO LOADPM ; send the LDPTT and LDMCAT packets
4146 005246' 027 00 0 00 006540' SCOPER LOADPE ; print error message
4147 005247' 255 00 0 00 000000 JFCL ; loop on error
4148 005250' 254 00 0 00 005405' JRST TX24 ; altmode exit
4149 005251' 326 15 0 00 005405' JUMPN ERFLG,TX24 ; error yet? yes - abort test
4150
4151 ; Initialize packet data
4152
4153 005252' 402 00 0 00 005021* SETZM TFMFLG ; set to COMPAT mode
4154 005253' 476 00 0 00 005022* SETOM TRSFLG ; set 'response requested' flag
4155 005254' 476 00 0 00 005023* SETOM TPDFLG ; set pad flag
4156 005255' 402 00 0 00 005024* SETZM TBSDFL ; set to non-BSD style datagram
4157 005256' 201 00 0 00 000005 MOVEI 5 ; get protocol type
4158 005257' 202 00 0 00 005045* MOVEM TPTTVL ; save it
4159 005260' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
4160 005261' 201 00 0 00 000122 MOVEI 122 ; set data pattern
4161 005262' 202 00 0 00 005031* MOVEM TPAT ; ...
4162 005263' 402 00 0 00 005040* SETZM TSTSUB ; initialize subtest number
4163 005264' 120 00 0 00 005025* DMOVE SADDR ; set up destination address
4164 005265' 124 00 0 00 005026* DMOVEM TDEST ; ...
4165
4166 ; Initialize statistics
4167
4168 005266' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
4169 005267' 402 00 0 00 010105' SETZM NPAKSR# ; clear runt error count
4170 005270' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
4171 005271' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
4172 005272' 402 00 0 00 005036* SETZM RQAFLG ; clear response queue available flag
4173 005273' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
4174 005274' 201 10 0 00 000100 MOVEI 10,^D64 ; initialize packet count
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 96
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0664
4175
4176 ; Decrement packet count (77-0)
4177
4178 005275' 361 10 0 00 005347' TA24: SOJL 10,TE24 ; done yet? yes - exit
4179 005276' 202 10 0 00 005032* MOVEM 10,TBYTE ; set up byte count
4180 005277' 402 00 0 00 005034* SETZM TWORD ; clear word count
4181 005300' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
4182 005301' 260 17 0 00 004612* GO BPACKN ; set up packet data (no CRC)
4183 005302' 400 06 0 00 000000 SETZ 6, ; clear hung count
4184
4185 ; Send a packet
4186
4187 005303' 037 07 0 00 000003 TB24: TTALTM ; altmode typed?
4188 005304' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
4189 005305' 476 00 0 00 005053* SETOM ALTF ; yes - set flag
4190 005306' 332 00 0 00 005305* SKIPE ALTF ; altmode flagged?
4191 005307' 254 00 0 00 005405' JRST TX24 ; yes - exit
4192 005310' 336 00 0 00 005056* SKIPN LCHAR ; last character in here already?
4193 005311' 202 00 0 00 005310* MOVEM LCHAR ; no - save 'last char typed'
4194 005312' 260 17 0 00 005057* GO PSTAMP ; check for S typed
4195 005313' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
4196
4197 005314' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
4198 005315' 260 17 0 00 005062* GO CHKINT ; get list of queue entries
4199 005316' 255 00 0 00 000000 JFCL ; ignore error
4200 005317' 476 00 0 00 005064* SETOM PTTFQ ; reset the interlock
4201 005320' 200 00 0 00 005076* MOVE NUMENT ; get entry count
4202 005321' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
4203 005322' 254 00 0 00 005334' JRST TC24 ; no - continue
4204
4205 005323' 260 17 0 00 005070* GO INSQUE ; insert into queue
4206 005324' 254 00 0 00 005327' JRST .+3 ; failed - continue
4207 005325' 254 00 0 00 005327' JRST .+2 ; failed - continue
4208 005326' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
4209 005327' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
4210 005330' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
4211 005331' 350 00 0 00 005263* AOS TSTSUB ; increment subtest number
4212 005332' 337 00 0 00 005320* SKIPG NUMENT ; was the queue empty?
4213 GO [GO RDCSR ; yes - set 'CMDQAV'
4214 MOVEI 1,PENABL!MPRUN
4215 TRZ 1,RESQAV
4216 TRO 1,CMDQAV
4217 GO LDCSR
4218 005333' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 97
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0665
4219
4220 ; Check for a response
4221
4222 005334' 260 17 0 00 005122* TC24: GO CHKRQV ; check response queue available
4223 005335' 260 17 0 00 005123* GO CHKRSP ; check for RspQ entry
4224 JRST [SETZM RQAFLG ; no entry found - continue
4225 MOVE 1,PCB+5 ; get response queue FLINK
4226 GO CONVIR ; convert to virtual
4227 CAIE 1,PCB+5 ; queue really empty?
4228 SETOM RQAFLG ; no - set rsp queue avail flag
4229 GO CHKDEB ; check for debug mode
4230 005336' 254 00 0 00 007573' JRST TD24]
4231 005337' 400 06 0 00 000000 SETZ 6, ; clear hung count
4232 005340' 260 17 0 00 006166' GO MCHECK ; determine results
4233 005341' 254 00 0 00 005334' JRST TC24 ; keep looking for responses
4234
4235 ; No more responses
4236
4237 005342' 350 00 0 00 000006 TD24: AOS 6 ; increment hung count
4238 005343' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
4239 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
4240 005344' 254 00 0 00 007602' JRST TE24] ; and exit
4241 005345' 322 07 0 00 005334' JUMPE 7,TC24 ; send current packet? yes - go do so
4242 005346' 254 00 0 00 005275' JRST TA24 ; no - already did - go do next packet
4243
4244 ; Check for any stragglers
4245
4246 005347' 332 00 0 00 010111' TE24: SKIPE SDEBUG ; debug mode?
4247 005350' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
4248 005351' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
4249 005352' 260 17 0 00 005132* GO RUNTME ; get current run time
4250 005353' 200 01 0 00 005133* MOVE 1,DEBTIM ; get time in milliseconds
4251 005354' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
4252 005355' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
4253 005356' 260 17 0 00 005334* TF24: GO CHKRQV ; check response queue available
4254 005357' 260 17 0 00 005335* GO CHKRSP ; check for RspQ entry
4255 JRST [SETZM RQAFLG ; no entry found - continue
4256 MOVE 1,PCB+5 ; get response queue FLINK
4257 GO CONVIR ; convert to virtual
4258 CAIE 1,PCB+5 ; queue really empty?
4259 SETOM RQAFLG ; no - set rsp queue avail flag
4260 GO CHKDEB ; check for debug mode
4261 005360' 254 00 0 00 007604' JRST TG24]
4262 005361' 260 17 0 00 006166' GO MCHECK ; determine results
4263 005362' 254 00 0 00 005356' JRST TF24 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 98
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0666
4264
4265 ; Check timeout
4266
4267 005363' 400 03 0 00 000000 TG24: SETZ 3, ; set up for RUNTME
4268 005364' 260 17 0 00 005352* GO RUNTME ; get current run time
4269 005365' 200 01 0 00 005353* MOVE 1,DEBTIM ; get time in milliseconds
4270 005366' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
4271 005367' 254 00 0 00 005356' JRST TF24 ; no - keep looping
4272
4273 ; Done with test - now check results
4274
4275 005370' 332 00 0 00 010111' TH24: SKIPE SDEBUG ; debug mode?
4276 005371' 037 00 0 00 007235' TMSGCD <** Done - check results **>
4277 005372' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
4278 005373' 302 00 0 00 000100 CAIE T24PAK ; correct number?
4279 005374' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4280 005375' 200 00 0 00 006335' MOVE NPAKR ; get receive count
4281 005376' 305 00 0 00 000071 CAIGE T24PAK*^D9/^D10 ; more than 90% received?
4282 005377' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4283 005400' 332 00 0 00 010105' SKIPE NPAKSR ; any runt packets?
4284 005401' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
4285 005402' 027 00 0 00 005422' SCOPER MD24 ; print error message
4286 005403' 255 00 0 00 000000 JFCL ; loop on error
4287 005404' 254 00 0 00 005405' JRST TX24 ; altmode exit
4288
4289 ; Exit
4290
4291 005405' 200 00 0 00 010107' TX24: MOVE NRCRC ; get receive CRC errors
4292 005406' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
4293 005407' 260 17 0 00 005156* GO SETDSA ; disable the port
4294 005410' 260 17 0 00 005157* GO ISTOP ; stop the port
4295 005411' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 99
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0667
4296
4297 ; Error messages
4298
4299 005412' 260000 006324' MA24: TXALL!CALL!LODERR
4300 005413' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4301
4302 005414' 160000 006561' MB24: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
4303 005415' 260000 006276' TXALL!CALL!PDUMP
4304 005416' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4305
4306 005417' 160000 006663' MC24: TXALL!MSG![ASCIZ /Could not enable the port/]
4307 005420' 260000 006276' TXALL!CALL!PDUMP
4308 005421' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4309
4310 005422' 160000 007017' MD24: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
4311 005423' 260000 005426' TXALL!CALL!MD24PN
4312 005424' 260000 006276' TXALL!CALL!PDUMP
4313 005425' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
4314
4315 005426' 037 00 0 00 007030' MD24PN: TMSGC < What Expected Actual>
4316 005427' 037 00 0 00 007040' TMSGC <----------- -------- ------>
4317 005430' 037 00 0 00 007050' TMSGC <Packets Sent >
4318 005431' 004 11 0 00 007613' PNTDCP 9,[T24PAK]
4319 005432' 004 11 0 00 006333' PNTDCP 9,NPAKS
4320 005433' 037 00 0 00 007614' TMSGC < Runt Packets 0.>
4321 005434' 004 11 0 00 010105' PNTDCP 9,NPAKSR
4322 005435' 037 00 0 00 007061' TMSGC <Packets Rcvd >
4323 005436' 004 11 0 00 007613' PNTDCP 9,[T24PAK]
4324 005437' 004 11 0 00 006335' PNTDCP 9,NPAKR
4325 005440' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 100
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0668
4326
4327 ;********************************************************************
4328 ;* TEST 25 - PAD Flag Bit Test 2
4329 ;
4330 ; Description: This test sends self-directed datagrams which are
4331 ; smaller than the minimum legal packet size (46
4332 ; bytes). It verifies that the microcode creates
4333 ; an error packet for 'runt packet' when the PAD
4334 ; flag bit is not set.
4335 ;
4336 ; Procedure: KL> Load microcode
4337 ; KL> Port Clear
4338 ; KL> Start port
4339 ;
4340 ; KL> Build a self-directed runtgram (pad bit not set),
4341 ; insert on command queue, and wait for a response
4342 ; KL> Verify proper response
4343 ; If failed - print error message and exit test
4344 ;
4345 ; Do for data pattern 122 and packets of length 0 to 41. bytes
4346 ; (4 less than 45. bytes due to additional 4 bytes for CRC)
4347 ;
4348 ; FRU: NIA Module
4349 ;#********************************************************************
4350
4351 000051 T25PAK==^D41 ; number of packets to send
4352
4353 ; Initialization
4354
4355 005441' 201 00 0 00 000000' TST25: MOVEI Z3 ; get address of module start
4356 005442' 260 17 0 00 005214* GO TRACE ; handle trace output
4357 005443' 402 00 0 00 010111' SETZM SDEBUG ; clear debug flag
4358 005444' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
4359 005445' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
4360 005446' 476 00 0 00 010101' SETOM DUMPP ; set 'dump possible' flag
4361 005447' 260 17 0 00 005221* GO IPACLR ; do a 'port clear'
4362 005450' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
4363 005451' 260 17 0 00 005223* GO TFLOAD ; load operational microcode
4364 GO [MOVEM TERMES ; error - save error message
4365 SETO ERFLG,
4366 005452' 260 17 0 00 006552' RTN]
4367 005453' 027 00 0 00 005633' SCOPER MA25 ; print error message
4368 005454' 255 00 0 00 000000 JFCL ; loop on error
4369 005455' 254 00 0 00 005626' JRST TX25 ; altmode exit
4370 005456' 326 15 0 00 005626' JUMPN ERFLG,TX25 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 101
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0669
4371
4372 ; Start port
4373
4374 005457' 260 17 0 00 005231* GO TIDLE ; start port
4375 005460' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
4376 005461' 027 00 0 00 005635' SCOPER MB25 ; print error message
4377 005462' 255 00 0 00 000000 JFCL ; loop on error
4378 005463' 254 00 0 00 005626' JRST TX25 ; altmode exit
4379 005464' 326 15 0 00 005626' JUMPN ERFLG,TX25 ; error yet? yes - abort test
4380
4381 ; Enable the port
4382
4383 005465' 260 17 0 00 005237* GO SETENA ; ensure the port is enabled
4384 005466' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
4385 005467' 027 00 0 00 005640' SCOPER MC25 ; print error message
4386 005470' 255 00 0 00 000000 JFCL ; loop on error
4387 005471' 254 00 0 00 005626' JRST TX25 ; altmode exit
4388 005472' 326 15 0 00 005626' JUMPN ERFLG,TX25 ; error yet? yes - abort test
4389
4390 ; Initialize packet data
4391
4392 005473' 402 00 0 00 005252* SETZM TFMFLG ; set to COMPAT mode
4393 005474' 476 00 0 00 005253* SETOM TRSFLG ; set 'response requested' flag
4394 005475' 402 00 0 00 005254* SETZM TPDFLG ; clear pad flag
4395 005476' 402 00 0 00 005255* SETZM TBSDFL ; set to non-BSD style datagram
4396 005477' 201 00 0 00 000005 MOVEI 5 ; get protocol type
4397 005500' 202 00 0 00 005257* MOVEM TPTTVL ; save it
4398 005501' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
4399 005502' 201 00 0 00 000122 MOVEI 122 ; set data pattern
4400 005503' 202 00 0 00 005262* MOVEM TPAT ; ...
4401 005504' 402 00 0 00 005331* SETZM TSTSUB ; initialize subtest number
4402 005505' 120 00 0 00 005264* DMOVE SADDR ; set up destination address
4403 005506' 124 00 0 00 005265* DMOVEM TDEST ; ...
4404
4405 ; Initialize statistics
4406
4407 005507' 402 00 0 00 006333' SETZM NPAKS ; clear sent count
4408 005510' 402 00 0 00 010105' SETZM NPAKSR ; clear runt error count
4409 005511' 402 00 0 00 006335' SETZM NPAKR ; clear recv count
4410 005512' 402 00 0 00 010107' SETZM NRCRC ; clear expected rcv CRC error count
4411 005513' 402 00 0 00 005272* SETZM RQAFLG ; clear response queue available flag
4412 005514' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
4413 005515' 201 10 0 00 000051 MOVEI 10,T25PAK ; initialize packet count
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 102
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0670
4414
4415 ; Decrement packet count (73-0)
4416
4417 005516' 361 10 0 00 005570' TA25: SOJL 10,TE25 ; done yet? yes - exit
4418 005517' 202 10 0 00 005276* MOVEM 10,TBYTE ; set up byte count
4419 005520' 402 00 0 00 005277* SETZM TWORD ; clear word count
4420 005521' 201 11 0 00 000001 MOVEI OP,SNDDG ; set op code (SNDDG)
4421 005522' 260 17 0 00 005301* GO BPACKN ; set up packet data (no CRC)
4422 005523' 400 06 0 00 000000 SETZ 6, ; clear hung count
4423
4424 ; Send a packet
4425
4426 005524' 037 07 0 00 000003 TB25: TTALTM ; altmode typed?
4427 005525' 334 00 0 00 000000 SKIPA ; no - keep checking CSR, etc.
4428 005526' 476 00 0 00 005306* SETOM ALTF ; yes - set flag
4429 005527' 332 00 0 00 005526* SKIPE ALTF ; altmode flagged?
4430 005530' 254 00 0 00 005626' JRST TX25 ; yes - exit
4431 005531' 336 00 0 00 005311* SKIPN LCHAR ; last character in here already?
4432 005532' 202 00 0 00 005531* MOVEM LCHAR ; no - save 'last char typed'
4433 005533' 260 17 0 00 005312* GO PSTAMP ; check for S typed
4434 005534' 400 07 0 00 000000 SETZ 7, ; clear 'packet put on queue' flag
4435
4436 005535' 201 13 0 00 000003 MOVEI Q,3 ; get PT free queue number
4437 005536' 260 17 0 00 005315* GO CHKINT ; get list of queue entries
4438 005537' 255 00 0 00 000000 JFCL ; ignore error
4439 005540' 476 00 0 00 005317* SETOM PTTFQ ; reset the interlock
4440 005541' 200 00 0 00 005332* MOVE NUMENT ; get entry count
4441 005542' 305 00 0 00 000010 CAIGE 8 ; 8 or more?
4442 005543' 254 00 0 00 005555' JRST TC25 ; no - continue
4443
4444 005544' 260 17 0 00 005323* GO INSQUE ; insert into queue
4445 005545' 254 00 0 00 005550' JRST .+3 ; failed - continue
4446 005546' 254 00 0 00 005550' JRST .+2 ; failed - continue
4447 005547' 474 07 0 00 000000 SETO 7, ; set 'packet put on queue' flag
4448 005550' 332 00 0 00 000007 SKIPE 7 ; put on cmd queue?
4449 005551' 350 00 0 00 006333' AOS NPAKS ; yes - increment packet sent count
4450 005552' 350 00 0 00 005504* AOS TSTSUB ; increment subtest number
4451 005553' 337 00 0 00 005541* SKIPG NUMENT ; was the queue empty?
4452 GO [GO RDCSR ; yes - set 'CMDQAV'
4453 MOVEI 1,PENABL!MPRUN
4454 TRZ 1,RESQAV
4455 TRO 1,CMDQAV
4456 GO LDCSR
4457 005554' 260 17 0 00 006771' RTN]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 103
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0671
4458
4459 ; Check for a response
4460
4461 005555' 260 17 0 00 005356* TC25: GO CHKRQV ; check response queue available
4462 005556' 260 17 0 00 005357* GO CHKRSP ; check for RspQ entry
4463 JRST [SETZM RQAFLG ; no entry found - continue
4464 MOVE 1,PCB+5 ; get response queue FLINK
4465 GO CONVIR ; convert to virtual
4466 CAIE 1,PCB+5 ; queue really empty?
4467 SETOM RQAFLG ; no - set rsp queue avail flag
4468 GO CHKDEB ; check for debug mode
4469 005557' 254 00 0 00 007622' JRST TD25]
4470 005560' 400 06 0 00 000000 SETZ 6, ; clear hung count
4471 005561' 260 17 0 00 006166' GO MCHECK ; determine results
4472 005562' 254 00 0 00 005555' JRST TC25 ; keep looking for responses
4473
4474 ; No more responses
4475
4476 005563' 350 00 0 00 000006 TD25: AOS 6 ; increment hung count
4477 005564' 303 06 0 00 007640 CAILE 6,^D4000 ; check 4000 times and no response?
4478 JRST [SETOM DUMPP ; yes - set 'dump possible' flag
4479 005565' 254 00 0 00 007631' JRST TE25] ; and exit
4480 005566' 322 07 0 00 005555' JUMPE 7,TC25 ; send current packet? yes - go do so
4481 005567' 254 00 0 00 005516' JRST TA25 ; no - already did - go do next packet
4482
4483 ; Check for any stragglers
4484
4485 005570' 332 00 0 00 010111' TE25: SKIPE SDEBUG ; debug mode?
4486 005571' 037 00 0 00 007217' TMSGCD <** Check for stragglers **>
4487 005572' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
4488 005573' 260 17 0 00 005364* GO RUNTME ; get current run time
4489 005574' 200 01 0 00 005365* MOVE 1,DEBTIM ; get time in milliseconds
4490 005575' 271 01 0 00 000310 ADDI 1,^D200 ; wait an addl 200 msecs
4491 005576' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
4492 005577' 260 17 0 00 005555* TF25: GO CHKRQV ; check response queue available
4493 005600' 260 17 0 00 005556* GO CHKRSP ; check for RspQ entry
4494 JRST [SETZM RQAFLG ; no entry found - continue
4495 MOVE 1,PCB+5 ; get response queue FLINK
4496 GO CONVIR ; convert to virtual
4497 CAIE 1,PCB+5 ; queue really empty?
4498 SETOM RQAFLG ; no - set rsp queue avail flag
4499 GO CHKDEB ; check for debug mode
4500 005601' 254 00 0 00 007633' JRST TG25]
4501 005602' 260 17 0 00 006166' GO MCHECK ; determine results
4502 005603' 254 00 0 00 005577' JRST TF25 ; keep looking for responses
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 104
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0672
4503
4504 ; Check timeout
4505
4506 005604' 400 03 0 00 000000 TG25: SETZ 3, ; set up for RUNTME
4507 005605' 260 17 0 00 005573* GO RUNTME ; get current run time
4508 005606' 200 01 0 00 005574* MOVE 1,DEBTIM ; get time in milliseconds
4509 005607' 317 01 0 00 010102' CAMG 1,ENDTIM ; time expired yet?
4510 005610' 254 00 0 00 005577' JRST TF25 ; no - keep looping
4511
4512 ; Done with test - now check results
4513
4514 005611' 332 00 0 00 010111' TH25: SKIPE SDEBUG ; debug mode?
4515 005612' 037 00 0 00 007235' TMSGCD <** Done - check results **>
4516 005613' 200 00 0 00 006333' MOVE NPAKS ; get number of packets sent
4517 005614' 302 00 0 00 000051 CAIE T25PAK ; correct number?
4518 005615' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4519 005616' 200 00 0 00 010105' MOVE NPAKSR ; get number of runt packets
4520 005617' 312 00 0 00 006333' CAME NPAKS ; same number sent?
4521 005620' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4522 005621' 332 00 0 00 006335' SKIPE NPAKR ; any received?
4523 005622' 474 15 0 00 000000 SETO ERFLG, ; no - set error flag
4524 005623' 027 00 0 00 005643' SCOPER MD25 ; print error message
4525 005624' 255 00 0 00 000000 JFCL ; loop on error
4526 005625' 254 00 0 00 005626' JRST TX25 ; altmode exit
4527
4528 ; Exit
4529
4530 005626' 200 00 0 00 010107' TX25: MOVE NRCRC ; get receive CRC errors
4531 005627' 272 00 0 00 000000# ADDM STARCV+4+.RREXP ; update statistics for expected errors
4532 005630' 260 17 0 00 005407* GO SETDSA ; disable the port
4533 005631' 260 17 0 00 005410* GO ISTOP ; stop the port
4534 005632' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 105
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0673
4535
4536 ; Error messages
4537
4538 005633' 260000 006324' MA25: TXALL!CALL!LODERR
4539 005634' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4540
4541 005635' 160000 006561' MB25: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
4542 005636' 260000 006276' TXALL!CALL!PDUMP
4543 005637' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4544
4545 005640' 160000 006663' MC25: TXALL!MSG![ASCIZ /Could not enable the port/]
4546 005641' 260000 006276' TXALL!CALL!PDUMP
4547 005642' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4548
4549 005643' 160000 007017' MD25: TXALL!MSG![ASCIZ /Errors noted with self-directed datagrams:/]
4550 005644' 260000 005647' TXALL!CALL!MD25PN
4551 005645' 260000 006276' TXALL!CALL!PDUMP
4552 005646' 170000 007244' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module (possibly H4000 or cables)/]
4553
4554 005647' 037 00 0 00 007030' MD25PN: TMSGC < What Expected Actual>
4555 005650' 037 00 0 00 007040' TMSGC <----------- -------- ------>
4556 005651' 037 00 0 00 007050' TMSGC <Packets Sent >
4557 005652' 004 11 0 00 007642' PNTDCP 9,[T25PAK]
4558 005653' 004 11 0 00 006333' PNTDCP 9,NPAKS
4559 005654' 037 00 0 00 007643' TMSGC < Runt Packets >
4560 005655' 004 11 0 00 007642' PNTDCP 9,[T25PAK]
4561 005656' 004 11 0 00 010105' PNTDCP 9,NPAKSR
4562 005657' 037 00 0 00 007374' TMSGC <Packets Rcvd 0.>
4563 005660' 004 11 0 00 006335' PNTDCP 9,NPAKR
4564 005661' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 106
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0674
4565
4566 ;#********************************************************************
4567 ;* TEST 26 - Configuration Test
4568 ;
4569 ; Description: This test prints the accumulated configuration
4570 ; data. The data is printed at end of passes 1,5,
4571 ; 10,20,...
4572 ;#********************************************************************
4573
4574 ; Initialization
4575
4576 005662' 201 00 0 00 000000' TST26: MOVEI Z3 ; get address of module start
4577 005663' 260 17 0 00 005442* GO TRACE ; handle trace output
4578
4579 ; Check to see if should print configuration
4580
4581 005664' 200 00 0 00 000000* MOVE TSTREP ; get test pass count
4582 005665' 315 00 0 00 030047 CAMGE PASCNT ; less than diagnostic pass count?
4583 005666' 200 00 0 00 030047 MOVE PASCNT ; yes - get diagnostic pass count
4584 005667' 350 00 0 00 000000 AOS ; ...
4585 005670' 306 00 0 00 000001 CAIN 1 ; end pass 1?
4586 005671' 254 00 0 00 005676' JRST TA26 ; yes - go print configuration
4587 005672' 306 00 0 00 000005 CAIN 5 ; end pass 5?
4588 005673' 254 00 0 00 005676' JRST TA26 ; yes - go print configuration
4589 005674' 231 00 0 00 000012 IDIVI ^D10 ; divide by 10
4590 005675' 336 00 0 00 000001 SKIPN 1 ; multiple of 10? no - exit
4591 005676' 260 17 0 00 000000* TA26: GO CONPNT ; yes - print configuration
4592 005677' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 107
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0675
4593
4594 ;#********************************************************************
4595 ;* TEST 27 - Statistics Test
4596 ;
4597 ; Description: This test merely reads the counters. It prints
4598 ; the counters after passes 1,5,10,20,30,40,...
4599 ;
4600 ; Procedure: KL> Load microcode
4601 ; KL> Port Clear
4602 ; KL> Start port
4603 ;
4604 ; KL> Build a RCCNT packet, insert on command queue,
4605 ; and wait for a response
4606 ; KL> Print counters
4607 ; If failed - print error message and exit test
4608 ;
4609 ; FRU: NIA Module
4610 ;#********************************************************************
4611
4612 ; Initialization
4613
4614 005700' 201 00 0 00 000000' TST27: MOVEI Z3 ; get address of module start
4615 005701' 260 17 0 00 005663* GO TRACE ; handle trace output
4616 005702' 402 00 0 00 006236' SETZM PKSAV1 ; clear 'have status error data' flag
4617 005703' 402 00 0 00 006256' SETZM PKSAV2 ; clear 'have data error data' flag
4618 005704' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
4619
4620 ; Load microcode
4621
4622 005705' 260 17 0 00 005447* GO IPACLR ; do a 'port clear'
4623 005706' 402 00 0 00 010112' SETZM TERMES ; clear ucode load error message
4624 005707' 260 17 0 00 005451* GO TFLOAD ; load operational microcode
4625 GO [MOVEM TERMES ; error - save error message
4626 SETO ERFLG,
4627 005710' 260 17 0 00 006552' RTN]
4628 005711' 027 00 0 00 006033' SCOPER MA27 ; print error message
4629 005712' 255 00 0 00 000000 JFCL ; loop on error
4630 005713' 254 00 0 00 006030' JRST TX27 ; altmode exit
4631 005714' 326 15 0 00 006030' JUMPN ERFLG,TX27 ; error exit
4632
4633 ; Start port
4634
4635 005715' 350 00 0 00 005552* AOS TSTSUB ; initialize subtest number
4636 005716' 260 17 0 00 005457* GO TIDLE ; start port
4637 005717' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
4638 005720' 027 00 0 00 006035' SCOPER MB27 ; print error message
4639 005721' 255 00 0 00 000000 JFCL ; loop on error
4640 005722' 254 00 0 00 006030' JRST TX27 ; altmode exit
4641 005723' 326 15 0 00 006030' JUMPN ERFLG,TX27 ; error yet? yes - abort test
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 108
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0676
4642
4643 ; Enable the port
4644
4645 005724' 350 00 0 00 005715* AOS TSTSUB ; initialize subtest number
4646 005725' 260 17 0 00 005465* GO SETENA ; ensure the port is enabled
4647 005726' 474 15 0 00 000000 SETO ERFLG, ; error - set error flag
4648 005727' 027 00 0 00 006040' SCOPER MC27 ; print error message
4649 005730' 255 00 0 00 000000 JFCL ; loop on error
4650 005731' 254 00 0 00 006030' JRST TX27 ; altmode exit
4651 005732' 326 15 0 00 006030' JUMPN ERFLG,TX27 ; error yet? yes - abort test
4652
4653 ; Send the packet
4654
4655 005733' 350 00 0 00 005724* AOS TSTSUB ; initialize subtest number
4656 005734' 402 00 0 00 010101' SETZM DUMPP ; clear 'dump possible' flag
4657 005735' 402 00 0 00 005473* SETZM TFMFLG ; set to COMPAT mode
4658 005736' 476 00 0 00 005474* SETOM TRSFLG ; set response requested
4659 005737' 402 00 0 00 005475* SETZM TPDFLG ; clear pad flag
4660 005740' 402 00 0 00 005476* SETZM TBSDFL ; set to non-BSD style datagram
4661 005741' 201 11 0 00 000004 MOVEI OP,RCCNT ; get op code to read counters
4662 005742' 260 17 0 00 005047* GO BPACK ; set up packet data
4663 005743' 200 00 0 00 005664* MOVE TSTREP ; get test pass count
4664 005744' 315 00 0 00 030047 CAMGE PASCNT ; less than diagnostic pass count?
4665 005745' 200 00 0 00 030047 MOVE PASCNT ; yes - get diagnostic pass count
4666 005746' 350 00 0 00 000000 AOS ; ...
4667 005747' 231 00 0 00 000012 IDIVI ^D10 ; divide by 10
4668 005750' 200 00 0 00 007647' MOVE [4,,0] ; get a 1 for clear counters
4669 005751' 336 00 0 00 000001 SKIPN 1 ; clear the counters this time?
4670 005752' 202 00 0 00 000000# MOVEM PACKET+4 ; save data
4671 005753' 260 17 0 00 005544* GO INSQUE ; insert on command queue
4672 005754' 255 00 0 00 000000 JFCL ; error - ignore
4673 005755' 255 00 0 00 000000 JFCL ; error - ignore
4674 005756' 260 17 0 00 000566* GO RDCSR ; read CSR
4675 005757' 255 00 0 00 000000 JFCL ; error - ignore
4676 005760' 660 01 0 00 000400 TRO 1,CMDQAV ; set the 'CMDQAV' bit
4677 005761' 260 17 0 00 000571* GO LDCSR ; write the CSR register
4678
4679 ; Wait for a response
4680
4681 005762' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
4682 005763' 260 17 0 00 005605* GO RUNTME ; get current run time
4683 005764' 200 01 0 00 005606* MOVE 1,DEBTIM ; get time in milliseconds
4684 005765' 271 01 0 00 023420 ADDI 1,^D10000 ; wait an additional 10 seconds
4685 005766' 202 01 0 00 010102' MOVEM 1,ENDTIM# ; save maximum time
4686 005767' 254 00 0 00 005775' JRST TA27A ; go check for a response
4687 005770' 400 03 0 00 000000 TA27: SETZ 3, ; set up for RUNTME
4688 005771' 260 17 0 00 005763* GO RUNTME ; get current run time
4689 005772' 200 01 0 00 005764* MOVE 1,DEBTIM ; get time in milliseconds
4690 005773' 313 01 0 00 010102' CAMLE 1,ENDTIM ; time expired yet?
4691 005774' 254 00 0 00 006003' JRST TB27 ; yes - timeout error
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 109
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0677
4692
4693 ; Check for response
4694
4695 005775' 260 17 0 00 005600* TA27A: GO CHKRSP ; check for response entry
4696 005776' 254 00 0 00 005770' JRST TA27 ; no responses - check wait time
4697
4698 ; Got a response - now decode it
4699
4700 005777' 135 02 0 00 007650' LDB 2,[POINT 8,RSPONS+3,23] ; get opcode
4701 006000' 302 02 0 00 000004 CAIE 2,CNTRC ; CNTRC packet?
4702 006001' 254 00 0 00 005770' JRST TA27 ; no - check wait time
4703 006002' 334 00 0 00 000000 SKIPA ; yes - continue
4704
4705 ; Timeout error
4706
4707 006003' 474 15 0 00 000000 TB27: SETO ERFLG, ; set error flag
4708 006004' 027 00 0 00 006043' SCOPER MD27 ; print error message
4709 006005' 255 00 0 00 000000 JFCL ; loop on error
4710 006006' 254 00 0 00 006030' JRST TX27 ; altmode exit
4711 006007' 326 15 0 00 006030' JUMPN ERFLG,TX27 ; error yet? yes - abort test
4712
4713 ; Check to see if should print counters
4714
4715 006010' 200 00 0 00 005743* MOVE TSTREP ; get test pass count
4716 006011' 315 00 0 00 030047 CAMGE PASCNT ; less than diagnostic pass count?
4717 006012' 200 00 0 00 030047 MOVE PASCNT ; yes - get diagnostic pass count
4718 006013' 350 00 0 00 000000 AOS ; ...
4719 006014' 306 00 0 00 000001 CAIN 1 ; end pass 1?
4720 006015' 254 00 0 00 006022' JRST TC27 ; yes - go print counters
4721 006016' 306 00 0 00 000005 CAIN 5 ; end pass 5?
4722 006017' 254 00 0 00 006022' JRST TC27 ; yes - go print counters
4723 006020' 231 00 0 00 000012 IDIVI ^D10 ; divide by 10
4724 006021' 326 01 0 00 006030' JUMPN 1,TX27 ; multiple of 10? no - exit
4725
4726 ; Print counters
4727
4728 006022' 037 00 0 00 007651' TC27: TMSGC <********** NI Counters at >
4729 006023' 260 17 0 00 000000* GO PTIME
4730 006024' 037 00 0 00 007657' TMSGD < **********>
4731 006025' 201 12 0 00 000000* MOVEI PK,RSPONS ; get address of packet data
4732 006026' 260 17 0 00 000000* GO CNTPNT ; print counters
4733 006027' 037 00 0 00 030242 PCRL ; final CRLF
4734
4735 ; End of test
4736
4737 006030' 260 17 0 00 005630* TX27: GO SETDSA ; disable the port
4738 006031' 260 17 0 00 005631* GO ISTOP ; stop the port
4739 006032' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 110
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Tests SEQ 0678
4740
4741 ; Error messages
4742
4743 006033' 260000 006324' MA27: TXALL!CALL!LODERR
4744 006034' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4745
4746 006035' 160000 006561' MB27: TXALL!MSG![ASCIZ /Port did not enter IDLE loop/]
4747 006036' 260000 006276' TXALL!CALL!PDUMP
4748 006037' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4749
4750 006040' 160000 006663' MC27: TXALL!MSG![ASCIZ /Could not enable the port/]
4751 006041' 260000 006276' TXALL!CALL!PDUMP
4752 006042' 170000 006555' LAST!TXALL!MSG![ASCIZ /FRU: Port Modules/]
4753
4754 006043' 160000 007662' MD27: TXALL!MSG![ASCIZ /Response to RCCNT packet not received in 10 seconds/]
4755 006044' 260000 006276' TXALL!CALL!PDUMP
4756 006045' 170000 006704' LAST!TXALL!MSG![ASCIZ /FRU: NIA Module/]
4757
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 111
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0679
4758 SUBTTL Miscellaneous Routines
4759
4760 ;#********************************************************************
4761 ;* MPACK - Build a packet based on parameters in AC1
4762 ;#********************************************************************
4763
4764 006046' 261 17 0 00 000001 MPACK: PUT 1 ; save AC1
4765 006047' 200 01 0 00 010114' MOVE 1,TLNPAT ; get LEN/PAT word
4766 006050' 556 01 0 00 005503* HLRZM 1,TPAT ; set up data pattern
4767 006051' 135 01 0 00 007675' LDB 1,[POINT 14,1,31] ; get word count
4768 006052' 200 00 0 01 001700' MOVE T12LEN(1) ; get length
4769 006053' 202 00 0 00 005520* MOVEM TWORD ; set up word count
4770 006054' 402 00 0 00 005517* SETZM TBYTE ; clear byte count also
4771 006055' 120 00 0 00 005505* DMOVE SADDR ; get our address
4772 006056' 124 00 0 00 005506* DMOVEM TDEST ; set up destination address
4773 006057' 201 11 0 00 000001 MOVEI OP,SNDDG ; set up op code
4774 006060' 260 17 0 00 005742* GO BPACK ; set up packet data
4775 006061' 262 17 0 00 000001 GET 1 ; restore AC1
4776 006062' 263 17 0 00 000000 RTN
4777
4778
4779 ;#********************************************************************
4780 ;* MPACKN - Build a packet based on parameters in AC1
4781 ;#********************************************************************
4782
4783 006063' 261 17 0 00 000001 MPACKN: PUT 1 ; save AC1
4784 006064' 200 01 0 00 010114' MOVE 1,TLNPAT ; get LEN/PAT word
4785 006065' 556 01 0 00 006050* HLRZM 1,TPAT ; set up data pattern
4786 006066' 135 00 0 00 007675' LDB [POINT 14,1,31] ; get word count
4787 006067' 135 01 0 00 007675' LDB 1,[POINT 14,1,31] ; get word count
4788 006070' 200 00 0 01 001700' MOVE T12LEN(1) ; get length
4789 006071' 202 00 0 00 006053* MOVEM TWORD ; set up word count
4790 006072' 402 00 0 00 006054* SETZM TBYTE ; clear byte count also
4791 006073' 120 00 0 00 006055* DMOVE SADDR ; get our address
4792 006074' 124 00 0 00 006056* DMOVEM TDEST ; set up destination address
4793 006075' 201 11 0 00 000001 MOVEI OP,SNDDG ; set up op code
4794 006076' 260 17 0 00 005522* GO BPACKN ; set up packet data
4795 006077' 262 17 0 00 000001 GET 1 ; restore AC1
4796 006100' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 112
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0680
4797
4798 ;#********************************************************************
4799 ;* MCOMP - Do data compare of a packet received
4800 ;
4801 ; For each packet received, the first data word contains the definition
4802 ; of what the packet should look like. This routine first builds a
4803 ; packet based on that data, then it does the data compare.
4804 ;#********************************************************************
4805
4806 006101' 120 00 0 00 006073* MCOMP: DMOVE SADDR ; get correct address
4807 006102' 316 00 0 00 000000# CAMN RSPONS+4 ; first word correct?
4808 006103' 312 01 0 00 000000# CAME 1,RSPONS+5 ; yes - 2nd word correct?
4809 006104' 263 17 0 00 000000 RTN ; no - ignore - exit
4810 006105' 135 11 0 00 007676' LDB OP,[POINT 8,RSPONS+3,23]; get op code
4811 006106' 302 11 0 00 000005 CAIE OP,DGRCV ; is this a packet received?
4812 006107' 263 17 0 00 000000 RTN ; no - return
4813
4814 006110' 261 17 0 00 010114' PUT TLNPAT ; save variables
4815 006111' 261 17 0 00 006065* PUT TPAT ; ...
4816 006112' 261 17 0 00 006071* PUT TWORD ; ...
4817 006113' 261 17 0 00 006072* PUT TBYTE ; ...
4818 006114' 261 17 0 00 010113' PUT TLEN ; ...
4819 006115' 200 01 0 00 000000# MOVE 1,RSPONS+13 ; get LEN/PAT word
4820 006116' 202 01 0 00 010114' MOVEM 1,TLNPAT ; save it
4821 006117' 260 17 0 00 006063' GO MPACKN ; build packet data
4822 006120' 201 02 0 00 000000# MOVEI 2,PACKET+11 ; get text address of non-BSD style
4823 006121' 332 00 0 00 005740* SKIPE TBSDFL ; BSD style datagram?
4824 006122' 201 02 0 00 000000# MOVEI 2,BUFF+4 ; yes - get text address of BSD style
4825
4826 006123' 400 04 0 00 000000 SETZ 4, ; initialize error count
4827 006124' 200 03 0 00 006112* MOVE 3,TWORD ; get word count
4828 006125' 270 02 0 00 000003 ADD 2,3 ; get buffer address
4829 006126' 200 00 0 02 000000 MCOMP0: MOVE (2) ; get correct
4830 006127' 312 00 0 03 000000# CAME RSPONS+^D13(3) ; same as actual?
4831 006130' 350 00 0 00 000004 AOS 4 ; no - increment error count
4832 006131' 365 03 0 00 006126' SOJGE 3,MCOMP0 ; loop till done
4833
4834 006132' 322 04 0 00 006136' JUMPE 4,MCOMPX ; errors? no - exit
4835 006133' 350 00 0 00 006340' AOS NPAKRD ; yes - increment data compare count
4836 006134' 272 04 0 00 006341' ADDM 4,NPAKRW ; count words in error
4837 006135' 260 17 0 00 006231' GO SAVPK2 ; save packet if needed
4838
4839 ; Exit
4840
4841 006136' 262 17 0 00 010113' MCOMPX: GET TLEN ; restore variables
4842 006137' 262 17 0 00 006113* GET TBYTE ; ...
4843 006140' 262 17 0 00 006124* GET TWORD ; ...
4844 006141' 262 17 0 00 006111* GET TPAT ; ...
4845 006142' 262 17 0 00 010114' GET TLNPAT ; ...
4846 006143' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 113
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0681
4847
4848 ;#********************************************************************
4849 ;* MCOMP2 - Compare RSPONS against contents of PACKET
4850 ;
4851 ; This is similar to MCOMP except that the packet data in PACKET is
4852 ; not constructed based on the packet data specification contained
4853 ; in the response, in RSPONS.
4854 ;#********************************************************************
4855
4856 006144' 120 00 0 00 006101* MCOMP2: DMOVE SADDR ; get correct address
4857 006145' 316 00 0 00 000000# CAMN RSPONS+4 ; first word correct?
4858 006146' 312 01 0 00 000000# CAME 1,RSPONS+5 ; yes - 2nd word correct?
4859 006147' 263 17 0 00 000000 RTN ; no - ignore - exit
4860 006150' 135 11 0 00 007677' LDB OP,[POINT 8,RSPONS+3,23]; get op code
4861 006151' 302 11 0 00 000005 CAIE OP,DGRCV ; is this a packet received?
4862 006152' 263 17 0 00 000000 RTN ; no - return
4863
4864 006153' 400 04 0 00 000000 SETZ 4, ; initialize error count
4865 006154' 200 03 0 00 006140* MOVE 3,TWORD ; get word count
4866 006155' 200 00 0 03 000000# MCOM20: MOVE PACKET+9(3) ; get correct
4867 006156' 312 00 0 03 000000# CAME RSPONS+^D13(3) ; same as actual?
4868 006157' 350 00 0 00 000004 AOS 4 ; no - increment error count
4869 006160' 365 03 0 00 006155' SOJGE 3,MCOM20 ; loop till done
4870
4871 006161' 322 04 0 00 006165' JUMPE 4,MCOM2X ; errors? no - exit
4872 006162' 350 00 0 00 006340' AOS NPAKRD ; yes - increment data compare count
4873 006163' 272 04 0 00 006341' ADDM 4,NPAKRW ; count words in error
4874 006164' 260 17 0 00 006231' GO SAVPK2 ; save packet if needed
4875
4876 006165' 263 17 0 00 000000 MCOM2X: RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 114
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0682
4877
4878 ;#********************************************************************
4879 ;* MCHECK - Check results
4880 ;#********************************************************************
4881
4882 006166' 120 00 0 00 006144* MCHECK: DMOVE SADDR ; get correct address
4883 006167' 316 00 0 00 000000# CAMN RSPONS+7 ; first word correct?
4884 006170' 312 01 0 00 000000# CAME 1,RSPONS+10 ; yes - 2nd word correct?
4885 006171' 263 17 0 00 000000 RTN ; no - ignore - exit
4886
4887 006172' 135 11 0 00 007700' LDB OP,[POINT 8,RSPONS+3,23]; get op code
4888 006173' 306 11 0 00 000005 CAIN OP,DGRCV ; is this a packet received?
4889 006174' 254 00 0 00 006210' JRST MCHEC1 ; yes - go handle
4890 006175' 302 11 0 00 000001 CAIE OP,DGSNT ; is this a packet response?
4891 006176' 263 17 0 00 000000 RTN ; no - return
4892
4893 ; This is a packet received by dint of 'Rsp Requested' flag or error on
4894 ; transmission.
4895
4896 006177' 200 02 0 00 000000# MOVE 2,RSPONS+3 ; get status word
4897 006200' 607 02 0 00 002000 TLNN 2,2000 ; error bit set?
4898 006201' 263 17 0 00 000000 RTN ; no - return
4899 006202' 135 00 0 00 007701' LDB [POINT 5,RSPONS+3,6] ; get error byte
4900 006203' 306 00 0 00 000013 CAIN 13 ; runt packet?
4901 006204' 350 00 0 00 010105' AOS NPAKSR ; yes - increment count
4902 006205' 350 00 0 00 006334' AOS NPAKSE ; yes - incr sent status error count
4903 006206' 260 17 0 00 006224' GO SAVPK1 ; and save packet data
4904 006207' 263 17 0 00 000000 RTN ; return
4905
4906 ; This is an actual response
4907
4908 006210' 350 00 0 00 006335' MCHEC1: AOS NPAKR ; increment packet recv count
4909 006211' 200 02 0 00 000000# MOVE 2,RSPONS+3 ; get status word
4910 006212' 607 02 0 00 002000 TLNN 2,2000 ; error bit set?
4911 006213' 263 17 0 00 000000 RTN ; no - exit
4912 006214' 350 00 0 00 006336' AOS NPAKRE ; yes - incr recv status error count
4913 006215' 260 17 0 00 006224' GO SAVPK1 ; save packet data
4914 006216' 135 00 0 00 007702' LDB [POINT 5,2,6] ; get status
4915 006217' 306 00 0 00 000007 CAIN 7 ; CRC Error?
4916 006220' 350 00 0 00 006337' AOS NPAKRC ; increment recv CRC error count
4917 006221' 306 00 0 00 000007 CAIN 7 ; CRC Error?
4918 006222' 350 00 0 00 010107' AOS NRCRC ; increment expected CRC error count
4919 006223' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 115
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0683
4920
4921 ;#********************************************************************
4922 ;* SAVPK1 - Save packet data (status error packet)
4923 ;* SAVPK2 - Save packet data (data error packet)
4924 ;#********************************************************************
4925
4926 006224' 200 00 0 00 007703' SAVPK1: MOVE [RSPONS,,PKDAT1] ; build BLT pointer
4927 006225' 336 00 0 00 006236' SKIPN PKSAV1 ; already saving some data?
4928 006226' 251 00 0 00 006255' BLT PKDAT1+^D14 ; no - save the data
4929 006227' 476 00 0 00 006236' SETOM PKSAV1 ; set the flag
4930 006230' 263 17 0 00 000000 RTN ; return
4931
4932 006231' 200 00 0 00 007704' SAVPK2: MOVE [RSPONS,,PKDAT2] ; build BLT pointer
4933 006232' 336 00 0 00 006256' SKIPN PKSAV2 ; already saving some data?
4934 006233' 251 00 0 00 006275' BLT PKDAT2+^D14 ; no - save the data
4935 006234' 476 00 0 00 006256' SETOM PKSAV2 ; set the flag
4936 006235' 263 17 0 00 000000 RTN ; return
4937
4938 ; Save data areas
4939
4940 006236' 000000 000000 PKSAV1: 0 ; 'have the data' flag
4941 006237' PKDAT1: BLOCK ^D15 ; status error data
4942
4943 006256' 000000 000000 PKSAV2: 0 ; 'have the data' flag
4944 006257' PKDAT2: BLOCK ^D15 ; data error data
4945
4946
4947 ;#********************************************************************
4948 ; PDUMP - Print addl data
4949 ;#********************************************************************
4950
4951 006276' 332 00 0 00 006236' PDUMP: SKIPE PKSAV1 ; have the status error data?
4952 GO [TMSGC <**** Packet with status error ****>
4953 MOVEI 2,PKDAT1 ; yes - get address of data to print
4954 GO PKPNT ; and print it
4955 SETZM PKSAV1
4956 006277' 260 17 0 00 007715' RTN]
4957 006300' 332 00 0 00 006256' SKIPE PKSAV2 ; have the data error data?
4958 GO [TMSGC <**** Packet with data error ****>
4959 MOVEI 2,PKDAT2 ; yes - get address of data to print
4960 GO PKPNT ; and print it
4961 SETZM PKSAV2
4962 006301' 260 17 0 00 007731' RTN]
4963 006302' 336 00 0 00 000000* SKIPN DDEBUG ; dump on error flag set?
4964 006303' 263 17 0 00 000000 RTN ; no - exit
4965 006304' 332 00 0 00 010101' SKIPE DUMPP ; 'dump possible' flag set?
4966 006305' 260 17 0 00 000000* GO DDUMP ; yes - dump
4967 006306' 263 17 0 00 000000 RTN ; no - exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 116
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0684
4968
4969 ;#********************************************************************
4970 ;* PKPNT - Print special saved packet data
4971 ;#********************************************************************
4972
4973 006307' 474 03 0 00 000000 PKPNT: SETO 3, ; clear word pointer
4974 006310' 350 00 0 00 000003 PKPN0: AOS 3 ; point to next word
4975 006311' 301 03 0 00 000017 CAIL 3,^D15 ; done yet?
4976 006312' 263 17 0 00 000000 RTN ; yes - return
4977 006313' 037 00 0 00 007736' TMSGC <RSPONS+> ; print word address
4978 006314' 200 00 0 00 000003 MOVE 3 ; ...
4979 006315' 037 16 0 00 000003 PNTOCS ; ...
4980 006316' 037 00 0 00 007740' TMSG </ >
4981 006317' 200 01 0 00 000002 MOVE 1,2 ; get data address
4982 006320' 270 01 0 00 000003 ADD 1,3 ; add in offset
4983 006321' 200 00 0 01 000000 MOVE (1) ; get data
4984 006322' 037 13 0 00 000000 PNTHW ; print it
4985 006323' 254 00 0 00 006310' JRST PKPN0 ; loop till done
4986
4987
4988 ;#********************************************************************
4989 ;* LODERR - Print ucode load error
4990 ;#********************************************************************
4991
4992 006324' 336 00 0 00 010112' LODERR: SKIPN TERMES ; ucode load error?
4993 006325' 263 17 0 00 000000 RTN ; no - return
4994 006326' 037 00 0 00 030242 PCRL
4995 006327' 550 00 0 00 010112' HRRZ TERMES ; get error message
4996 006330' 332 00 0 00 010112' SKIPE TERMES ; any error message given?
4997 006331' 260 17 1 00 000000 GO @0 ; yes - print it
4998 006332' 263 17 0 00 000000 RTN ; no - return
4999
5000
5001 ;#********************************************************************
5002 ; Miscellaneous data
5003 ;#********************************************************************
5004
5005 006333' 000000 000000 NPAKS: 0 ; sent count
5006 006334' 000000 000000 NPAKSE: 0 ; sent status error count
5007 006335' 000000 000000 NPAKR: 0 ; recv count
5008 006336' 000000 000000 NPAKRE: 0 ; recv status error count
5009 006337' 000000 000000 NPAKRC: 0 ; recv CRC error count
5010 006340' 000000 000000 NPAKRD: 0 ; recv dt.cmp error count (pkts)
5011 006341' 000000 000000 NPAKRW: 0 ; recv dt.cmp error count (words)
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 117
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0685
5012
5013 ;#********************************************************************
5014 ;* CHKDEB - Check for debug mode (transfer entry from cmd to rsp queue)
5015 ;#********************************************************************
5016
5017 006342' 336 00 0 00 000000* CHKDEB: SKIPN UDEBUG ; debug mode?
5018 006343' 263 17 0 00 000000 RTN ; no - return
5019 006344' 261 17 0 00 000000 RPUT (0,1,2,3) ; save AC's
5020
5021
5022 ; Get command queue data
5023
5024 006350' 400 13 0 00 000000 SETZ Q, ; set up cmd queue
5025 006351' 260 17 0 00 005536* GO CHKINT ; get queue contents
5026 006352' 254 00 0 00 006366' JRST CHKDEX ; failed - exit
5027
5028 ; Remove packet from the command queue and reset interlock.
5029
5030 006353' 260 17 0 00 000000* GO GETQUE ; get a queue entry
5031 JRST [SETOM PCB ; empty - reset interlock word
5032 006354' 254 00 0 00 007741' JRST CHKDEX] ; and exit
5033 006355' 202 01 0 00 000000* MOVEM 1,NEWENT ; got an entry - save address
5034 006356' 476 00 0 00 005513* SETOM RQAFLG ; set rsp queue available flag
5035 006357' 476 00 0 00 000000* SETOM PCB ; reset interlock word
5036 006360' 504 00 0 00 006355* HRL NEWENT ; build a BLT pointer
5037
5038 ; Put entry on rsponse queue
5039
5040 006361' 201 13 0 00 000001 MOVEI Q,1 ; set up for response queue
5041 006362' 260 17 0 00 006351* GO CHKINT ; check interlock word
5042 006363' 334 00 0 00 000000 SKIPA ; failed - continue
5043 006364' 260 17 0 00 000000* GO PUTQUE ; insert back on queue
5044 006365' 476 00 0 00 000000# SETOM PCB+4 ; reset interlock
5045
5046 ; Exit
5047
5048 006366' 262 17 0 00 000003 CHKDEX: RGET (3,2,1,0) ; restore AC's
5049
5050 006372' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 118
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0686
5051
5052 ;#********************************************************************
5053 ;* PIDLE - Start the port and wait for IDLE bit to set in CSR
5054 ;
5055 ; Return: +1 - Error - never reached idle loop
5056 ; +2 - Succeeded
5057 ;#********************************************************************
5058
5059 006373' 261 17 0 00 000000 PIDLE: RPUT (0,1,2) ; save AC's
5060
5061 006376' 260 17 0 00 005705* GO IPACLR ; clear port
5062
5063 ; Set up initial CCW list
5064
5065 006377' 260 17 0 00 000000* GO CHINIT ; initialize software
5066 006400' 260 17 1 00 010110' GO @PSPEC# ; call special routine
5067
5068 ; Start it up
5069
5070 006401' 400 01 0 00 000000 SETZ 1, ; clear data
5071 006402' 260 17 0 00 000000* GO LDRAR ; clear RAR contents
5072 006403' 201 01 0 00 000010 MOVEI 1,MPRUN ; get 'MPRun' bit
5073 006404' 336 00 0 00 030037 SKIPN USER ; user mode?
5074 006405' 660 01 0 00 000004 TRO 1,4 ; no - set PIA bits
5075 006406' 260 17 0 00 005761* GO LDCSR ; start up the port
5076 006407' 005 00 0 00 000144 DELAY ^D100 ; wait of 100 milliseconds
5077 006410' 260 17 0 00 005756* GO RDCSR ; read CSR register
5078 006411' 254 00 0 00 006414' JRST PIDLEE ; error - exit
5079 006412' 602 01 0 00 000010 TRNE 1,MPRUN ; still running?
5080 006413' 350 00 0 17 777775 AOS -3(P) ; yes - set up proper return
5081 006414' 262 17 0 00 000002 PIDLEE: RGET (2,1,0) ; restore AC's
5082
5083 006417' 263 17 0 00 000000 RTN ; return
5084
5085
5086 ;#********************************************************************
5087 ;* QCHECK - Check for received type of free queue
5088 ;#********************************************************************
5089
5090 006420' 302 11 0 00 000005 QCHECK: CAIE OP,DGRCV ; is this a packet received?
5091 006421' 263 17 0 00 000000 RTN ; no - return
5092 006422' 120 00 0 00 006166* DMOVE SADDR ; get correct address
5093 006423' 316 00 0 00 000000# CAMN RSPONS+7 ; first word correct?
5094 006424' 312 01 0 00 000000# CAME 1,RSPONS+10 ; yes - 2nd word correct?
5095 006425' 263 17 0 00 000000 RTN ; no - ignore - exit
5096 006426' 200 00 0 00 000000* MOVE RSPQUE ; get queue number of packet
5097 006427' 306 00 0 00 000002 CAIN 2 ; UNK free queue?
5098 006430' 350 00 0 00 010106' AOS NPAKUN ; increment # packets on UNK free queue
5099 006431' 306 00 0 00 000003 CAIN 3 ; PTT free queue?
5100 006432' 350 00 0 00 010104' AOS NPAKPT ; increment # packets on PTT free queue
5101 006433' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 119
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0687
5102
5103 ;#********************************************************************
5104 ;* LOADPM - Load PTT table and MCAT tables and H4000 mode (via port commands)
5105 ;#********************************************************************
5106
5107 006434' 261 17 0 00 000000 LOADPM: RPUT (0,1,2,6,7) ; save AC's
5108
5109 006441' 201 07 0 00 000003 MOVEI 7,3 ; number of retries allowed
5110 006442' 400 15 0 00 000000 LOADP0: SETZ ERFLG, ; clear error flag
5111
5112 ; Get rid of any unexpected responses on the response queue
5113
5114 006443' 260 17 0 00 005775* GO CHKRSP ; check for response entry
5115 006444' 334 00 0 00 000000 SKIPA ; no more - continue
5116 006445' 254 00 0 00 006443' JRST .-2 ; found one - keep looking
5117
5118 ; Build the PTT command and put on the queue
5119
5120 006446' 201 11 0 00 000003 MOVEI OP,LDPTT ; get op code to load PTT table
5121 006447' 476 00 0 00 005736* SETOM TRSFLG ; set 'response requested' flag
5122 006450' 402 00 0 00 006121* SETZM TBSDFL ; set to non-BSD style datagram
5123 006451' 402 00 0 00 005737* SETZM TPDFLG ; clear pad flag
5124 006452' 260 17 0 00 006060* GO BPACK ; build a packet
5125 006453' 260 17 0 00 005753* GO INSQUE ; insert in queue
5126 006454' 350 00 0 00 006544' AOS LDERR1 ; error - ignore
5127 006455' 350 00 0 00 006545' AOS LDERR2 ; error - ignore
5128
5129 ; Build the MCAT command and put on the queue
5130
5131 006456' 201 11 0 00 000002 MOVEI OP,LDMCAT ; get op code to load MCAT table
5132 006457' 260 17 0 00 006452* GO BPACK ; build a packet
5133 006460' 260 17 0 00 006453* GO INSQUE ; insert in queue
5134 006461' 350 00 0 00 006546' AOS LDERR3 ; error - ignore
5135 006462' 350 00 0 00 006547' AOS LDERR4 ; error - ignore
5136
5137 ; Build the WRNSA command and put on the queue
5138
5139 006463' 201 11 0 00 000011 MOVEI OP,WRNSA ; get op code to write NSA
5140 006464' 402 00 0 00 000000* SETZM TAMC ; clear AMC bit
5141 006465' 402 00 0 00 000000* SETZM TH4000 ; set H4000 bit
5142 006466' 350 00 0 00 006465* AOS TH4000 ; ...
5143 006467' 402 00 0 00 000000* SETZM TPRMSC ; clear PRMSC bit
5144 006470' 201 00 0 00 000005 MOVEI 5 ; set default retry
5145 006471' 202 00 0 00 000000* MOVEM TRETRY ; count
5146 006472' 260 17 0 00 006457* GO BPACK ; build a packet
5147 006473' 260 17 0 00 006460* GO INSQUE ; insert in queue
5148 006474' 350 00 0 00 006550' AOS LDERR5 ; error - ignore
5149 006475' 350 00 0 00 006551' AOS LDERR6 ; error - ignore
5150
5151 ; Send the packets
5152
5153 006476' 201 01 0 00 000430 MOVEI 1,CMDQAV!PENABL!MPRUN ; get run/enable bits
5154 006477' 260 17 0 00 006406* GO LDCSR ; get the port going
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 120
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0688
5155 006500' 400 06 0 00 000000 SETZ 6, ; clear packet count
5156
5157 ; Wait for a response
5158
5159 006501' 400 03 0 00 000000 SETZ 3, ; set up for RUNTME
5160 006502' 260 17 0 00 005771* GO RUNTME ; get current run time
5161 006503' 200 01 0 00 005772* MOVE 1,DEBTIM ; get time in milliseconds
5162 006504' 271 01 0 00 011610 ADDI 1,^D5000 ; wait an additional 5 seconds
5163 006505' 202 01 0 00 010102' MOVEM 1,ENDTIM ; save maximum time
5164 006506' 400 03 0 00 000000 LOADP1: SETZ 3, ; set up for RUNTME
5165 006507' 260 17 0 00 006502* GO RUNTME ; get current run time
5166 006510' 200 01 0 00 006503* MOVE 1,DEBTIM ; get time in milliseconds
5167 006511' 313 01 0 00 010102' CAMLE 1,ENDTIM ; time expired yet?
5168 JRST [SETO ERFLG, ; yes - timeout error
5169 006512' 254 00 0 00 007743' JRST LOADPX]
5170 006513' 260 17 0 00 006443* LOADP2: GO CHKRSP ; check for response entry
5171 006514' 254 00 0 00 006506' JRST LOADP1 ; no responses - check wait time
5172
5173 ; Got a response - now decode it
5174
5175 006515' 135 02 0 00 007745' LDB 2,[POINT 8,RSPONS+3,23] ; get opcode
5176 006516' 306 02 0 00 000003 CAIN 2,LDPTT ; LDPTT packet?
5177 006517' 350 00 0 00 000006 AOS 6 ; yes - increment packet count
5178 006520' 306 02 0 00 000002 CAIN 2,LDMCAT ; LDMCAT packet?
5179 006521' 350 00 0 00 000006 AOS 6 ; yes - increment packet count
5180 006522' 306 02 0 00 000011 CAIN 2,WRNSA ; WRNSA packet?
5181 006523' 350 00 0 00 000006 AOS 6 ; yes - increment packet count
5182 006524' 302 06 0 00 000003 CAIE 6,3 ; receive all 3 packets yet?
5183 006525' 254 00 0 00 006513' JRST LOADP2 ; no - check for another packet
5184
5185 ; Exit
5186
5187 006526' 332 00 0 00 000015 LOADPX: SKIPE ERFLG ; error flag set?
5188 006527' 350 00 0 00 006543' AOS LDERR0 ; yes - increment error count
5189 006530' 332 00 0 00 000015 SKIPE ERFLG ; error flag set?
5190 006531' 367 07 0 00 006442' SOJG 7,LOADP0 ; yes - retry until done
5191 006532' 262 17 0 00 000007 RGET (7,6,2,1,0) ; restore AC's
5192
5193 006537' 263 17 0 00 000000 RTN ; exit
5194
5195 006540' 160000 007746' LOADPE: TXALL!MSG![ASCIZ ^Could not successfully issue LDPTT/LDMCAT/WRNSA commands^]
5196 006541' 260000 006276' TXALL!CALL!PDUMP
5197 006542' 170000 007762' LAST!TXALL!MSG![ASCIZ /FRU: NIA module/]
5198
5199 ; Miscellaneous debug variables
5200
5201 006543' 000000 000000 LDERR0: 0
5202 006544' 000000 000000 LDERR1: 0
5203 006545' 000000 000000 LDERR2: 0
5204 006546' 000000 000000 LDERR3: 0
5205 006547' 000000 000000 LDERR4: 0
5206 006550' 000000 000000 LDERR5: 0
5207 006551' 000000 000000 LDERR6: 0
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 121
DFNIA3 MAC 30-Nov-83 16:40 Miscellaneous Routines SEQ 0689
5208
5209 ;#********************************************************************
5210 ; End of DFNIA3.MAC
5211 ;#********************************************************************
5212
5213 XLIST
5214
NO ERRORS DETECTED
PROGRAM BREAK IS 010115
CPU TIME USED 00:15.665
80P CORE USED
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page S-1
DFNIA3 MAC 30-Nov-83 16:40 SYMBOL TABLE SEQ 0690
ALTF 005527' ext LOADP2 006513' MC23 005166' ME6PN 000456'
BPACK 006472' ext LOADPE 006540' MC24 005417' ME7 000646'
BPACKN 006076' ext LOADPM 006434' MC25 005640' ME7PN 000651'
BUFF 000000 ext LOADPX 006526' MC27 006040' MPACK 006046'
BUFGEN 000000 ext LODERR 006324' MC4 000067' MPACKN 006063'
CALL 200000 000000 spd MA10 001063' MC5 000246' MPRUN 000010 spd
CHINIT 006377' ext MA11 001342' MC5P0 000255' MSG 100000 000000 spd
CHKDEB 006342' MA12 001641' MC5P1 000264' MTABLE 000000 ext
CHKDEX 006366' MA13 002535' MC5P2 000274' MVPNT 000000 ext
CHKINT 006362' ext MA14 003026' MC5PN 000251' NEWENT 006360' ext
CHKRQV 005577' ext MA15 003261' MC6 000445' NPAKPT 010104'
CHKRSP 006513' ext MA16 003516' MC7 000640' NPAKR 006335'
CMDQAV 000400 spd MA17 003760' MCAT17 003404' ext NPAKRC 006337'
CNTPNT 006026' ext MA20 004206' MCHEC1 006210' NPAKRD 006340'
CNTRC 000004 spd MA21 004457' MCHECK 006166' NPAKRE 006336'
CONPNT 005676' ext MA22 004724' MCOFF 010103' NPAKRW 006341'
CONTBL 000000 ext MA23 005161' MCOM20 006155' NPAKS 006333'
CONVIR 007635' ext MA24 005412' MCOM2X 006165' NPAKSE 006334'
CRCINI 001731' MA25 005633' MCOMP 006101' NPAKSR 010105'
CRCOFF 001740' int MA27 006033' MCOMP0 006126' NPAKUN 010106'
CRCSAV 001737' int MA4 000061' MCOMP2 006144' NRCRC 010107'
CRCTAB 001741' int MA4PN 000077' MCOMPX 006136' NSAPNT 000465'
CSRPNT 000103' ext MA5 000241' MD10 001073' NSARD 000010 spd
DCOMP 000040 000000 spd MA6 000440' MD10PN 001077' NUMENT 005553' ext
DDEBUG 006302' ext MA7 000633' MD11 001352' OP 000011
DDUMP 006305' ext MB10 001065' MD11PN 001356' P 000017
DEBTIM 006510' ext MB11 001344' MD12 001651' PACKET 000000 ext
DELAY 005000 000000 MB12 001643' MD12PN 001655' PASCNT 030047
DGRCV 000005 spd MB13 002537' MD13 002545' PCB 007741' ext
DGSNT 000001 spd MB14 003030' MD13PN 002551' PCRL 037000 030242
DUMPP 010101' MB15 003263' MD14 003036' PDSABL 000040 spd
ECOMP 000020 000000 spd MB16 003520' MD14PN 003042' PDUMP 006276' ent
ENDTIM 010102' MB17 003762' MD15 003271' PENABL 000020 spd
ERFLG 000015 MB20 004210' MD15PN 003275' PIDLE 006373'
GET 262740 000000 MB21 004461' MD16 003526' PIDLEE 006414'
GETQUE 006353' ext MB22 004726' MD16PN 003532' PK 000012
GO 260740 000000 MB23 005163' MD17 003770' PKDAT1 006237'
INSQUE 006473' ext MB24 005414' MD17PN 003774' PKDAT2 006257'
IPACLR 006376' ext MB25 005635' MD20 004216' PKPN0 006310'
ISTOP 006031' ext MB27 006035' MD20PN 004222' PKPNT 006307'
LAST 010000 000000 spd MB4 000063' MD21 004467' PKSAV1 006236'
LCHAR 005532' ext MB5 000243' MD21PN 004473' PKSAV2 006256'
LDCSR 006775' ext MB6 000442' MD22 004734' PNT3 037140 000000
LDERR0 006543' MB7 000635' MD22PN 004740' PNTDCP 004000 000000
LDERR1 006544' MC10 001070' MD23 005171' PNTDEC 037640 000000
LDERR2 006545' MC11 001347' MD23PN 005175' PNTHW 037540 000000
LDERR3 006546' MC12 001646' MD24 005422' PNTMSG 037000 000000
LDERR4 006547' MC13 002542' MD24PN 005426' PNTOCS 037700 000003
LDERR5 006550' MC14 003033' MD25 005643' PPCB 000000 ext
LDERR6 006551' MC15 003266' MD25PN 005647' PQUEUE 000000 ext
LDMCAT 000002 spd MC16 003523' MD27 006043' PSP 037000 000040
LDPTT 000003 spd MC17 003765' MD4 000073' PSPEC 010110'
LDRAR 006402' ext MC20 004213' MD6 000450' PSTAMP 005533' ext
LOADP0 006442' MC21 004464' MD7 000643' PTABLE 004514' ext
LOADP1 006506' MC22 004731' ME6 000453' PTIME 006023' ext
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page S-2
DFNIA3 MAC 30-Nov-83 16:40 SYMBOL TABLE SEQ 0691
PTTFQ 005540' ext T5ORD 000310' TC21 004376' TFMFLG 005735' ext
PUT 261740 000000 T5PNT 000307' TC22 004643' TG10 001027'
PUTQUE 006364' ext T7ADDR 000660' TC23 005100' TG11 001304'
Q 000013 TA10 000744' TC24 005334' TG12 001565'
QCHECK 006420' TA11 001215' TC25 005555' TG13 002463'
RCCNT 000004 spd TA12 001475' TC27 006022' TG14 002754'
RDADDR 000000 ext TA13 002373' TC5 000170' TG15 003237'
RDCSR 006771' ext TA14 002664' TD10 001007' TG16 003474'
RDLAR 000000 ext TA15 003147' TD11 001264' TG17 003725'
RDNSA 000010 spd TA16 003400' TD12 001517' TG20 004161'
RESQAV 000200 spd TA17 003635' TD13 002415' TG21 004427'
RQAFLG 007637' ext TA20 004075' TD14 002706' TG22 004674'
RSPONS 006025' ext TA21 004337' TD15 003217' TG23 005131'
RSPQUE 006426' ext TA22 004603' TD16 003454' TG24 005363'
RTN 263740 000000 TA23 005040' TD17 003702' TG25 005604'
RUNTME 006507' ext TA24 005275' TD20 004137' TG5 000233'
RWAIT 000166' ext TA25 005516' TD21 004406' TH10 001034'
SADDR 006422' ext TA26 005676' TD22 004653' TH11 001311'
SAVPK1 006224' TA27 005770' TD23 005110' TH12 001574'
SAVPK2 006231' TA27A 005775' TD24 005342' TH13 002472'
SCOPER 027000 000000 TA5 000142' TD25 005563' TH14 002763'
SDEBUG 010111' TA6 000405' TD5 000207' TH15 003244'
SETDSA 006030' ext TA6A 000412' TDEST 006074' ext TH16 003501'
SETENA 005725' ext TA7 000600' TE10 001014' TH17 003733'
SNDDG 000001 spd TA7A 000605' TE11 001271' TH20 004166'
STARCV 000000 ext TAMC 006464' ext TE12 001551' TH21 004434'
STASNT 000000 ext TB10 000750' TE13 002447' TH22 004701'
T10PAK 000310 spd TB11 001225' TE14 002740' TH23 005136'
T11LEN 000100 spd TB12 001501' TE15 003224' TH24 005370'
T11PAK 000500 spd TB13 002377' TE16 003461' TH25 005611'
T12LEN 001700' TB14 002670' TE17 003711' TH4000 006466' ext
T12PAK 001404' TB15 003153' TE20 004144' TI12 001602'
T12REP 001403' TB16 003404' TE21 004413' TI13 002500'
T13PAK 003410 spd TB17 003647' TE22 004660' TI14 002771'
T14PAK 003410 spd TB20 004077' TE23 005115' TI17 003740'
T15LEN 000100 spd TB21 004346' TE24 005347' TIDLE 005716' ext
T15PAK 000020 spd TB22 004613' TE25 005570' TJ12 001607'
T15SPC 003305' TB23 005050' TE5 000217' TJ13 002505'
T16LEN 000100 spd TB24 005303' TERMES 010112' TJ14 002776'
T16PAK 000057 spd TB25 005524' TF10 001021' TLEN 010113'
T16SPC 003542' TB27 006003' TF11 001276' TLNPAT 010114'
T17PAK 000240 spd TB5 000166' TF12 001560' TPAT 007177' ext
T20PAK 000310 spd TB6 000420' TF13 002456' TPCB 000016' ext
T20SP0 004242' TB7 000613' TF14 002747' TPDFLG 006451' ext
T20SPC 004233' TBSDFL 006450' ext TF15 003231' TPRMSC 006467' ext
T21LEN 000100 spd TBYTE 006137' ext TF16 003466' TPTTVL 005500' ext
T21PAK 000020 spd TC10 001000' TF17 003716' TRACE 005701' ext
T21SPC 004511' TC11 001255' TF20 004153' TREGD 000137' ext
T22LEN 000100 spd TC12 001515' TF21 004420' TREGN 000136' ext
T22PAK 000020 spd TC13 002413' TF22 004665' TRETRY 006471' ext
T23LEN 000100 spd TC14 002704' TF23 005122' TRSFLG 006447' ext
T23PAK 000020 spd TC15 003210' TF24 005356' TSLOAD 000000 ext
T24PAK 000100 spd TC16 003445' TF25 005577' TST10 000662' ent
T25PAK 000051 spd TC17 003651' TF5 000223' TST11 001123' ent
T5LIS 000317' TC20 004130' TFLOAD 005707' ext TST12 001405' ent
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page S-3
DFNIA3 MAC 30-Nov-83 16:40 SYMBOL TABLE SEQ 0692
TST13 002303' ent
TST14 002574' ent
TST15 003065' ent
TST16 003315' ent
TST17 003552' ent
TST20 004005' ent
TST21 004252' ent
TST22 004521' ent
TST23 004756' ent
TST24 005213' ent
TST25 005441' ent
TST26 005662' ent
TST27 005700' ent
TST4 000000' ent
TST5 000105' ent
TST6 000325' ent
TST7 000502' ent
TSTREP 006010' ext
TSTSUB 005733' ext
TTALTM 037340 000003
TWORD 007202' ext
TX10 001060'
TX11 001335'
TX12 001636'
TX13 002532'
TX14 003023'
TX15 003254'
TX16 003511'
TX17 003753'
TX20 004201'
TX21 004452'
TX22 004717'
TX23 005154'
TX24 005405'
TX25 005626'
TX27 006030'
TX4 000056'
TX5 000236'
TX6 000435'
TX7 000630'
TXADDL 002661' ext
TXALL 060000 000000 spd
TXNOT 040000 000000 spd
UDEBUG 006342' ext
USER 030037
WRNSA 000011 spd
WRPLI 000006 spd
Z3 000000'
.RREXP 000000 ext
ALTF 21# 851 852 1126 1127 1436 1437 1792 1793 2102 2103 2374 2375 2639
2640 2895 2896 3143 3144 3416 3417 3682 3683 3936 3937 4189 4190 4428 SEQ 0693
4429
BPACK 20# 236 461 636 652 835 1099 3930 4662 4774 5124 5132 5146
BPACKN 20# 2368 2633 2883 3123 3410 3676 4182 4421 4794
BUFF 16# 4824
BUFGEN 32#
CALL 149 153 154 158 159 163 164 328 332 335 336 523 527 531
535 539 715 719 723 727 731 962 966 970 974 975 1239 1243
1247 1251 1252 1557 1561 1565 1569 1570 1911 1915 1919 1923 1924 2221
2225 2229 2233 2234 2475 2479 2483 2487 2488 2740 2744 2748 2752 2753
3005 3009 3013 3017 3018 3253 3257 3261 3265 3266 3526 3530 3534 3538
3539 3792 3796 3800 3804 3805 4046 4050 4054 4058 4059 4299 4303 4307
4311 4312 4538 4542 4546 4550 4551 4743 4747 4751 4755 5196
CHINIT 28# 5065
CHKDEB 890 920 1165 1195 1477 1509 1833 1865 2143 2175 2935 2967 3183 3215
4229 4260 4468 4499 5017#
CHKDEX 5026 5032 5048#
CHKINT 21# 860 1135 1446 1802 2112 2385 2650 2904 3152 3427 3693 3947 4198
4437 5025 5041
CHKRQV 23# 883 913 1158 1188 1470 1502 1826 1858 2136 2168 2408 2437 2673
2702 2928 2960 3176 3208 3450 3480 3716 3746 3970 4000 4222 4253 4461
4492
CHKRSP 20# 266 486 678 884 914 1159 1189 1471 1503 1827 1859 2137 2169
2409 2438 2674 2703 2929 2961 3177 3209 3451 3481 3717 3747 3971 4001
4223 4254 4462 4493 4695 5114 5170
CMDQAV 254 467 648 659 877 1152 1464 1820 2130 2402 2667 2922 3170 3444
3710 3964 4216 4455 4676 5153
CNTPNT 19# 4732
CNTRC 4701
CONPNT 19# 4591
CONTBL 19#
CONVIR 21# 887 917 1162 1192 1474 1506 1830 1862 2140 2172 2412 2441 2677
2706 2932 2964 3180 3212 3454 3484 3720 3750 3974 4004 4226 4257 4465
4496
CRCINI 1369 1625# 1725 2035 2862
CRCOFF 12 1389 1633# 1745 2055
CRCSAV 12 1101 1111 1391 1632# 1747 2057
CRCTAB 12 1390 1626 1627 1628 1634# 1746 2056
CSRPNT 17# 171
DCOMP 112
DDEBUG 21# 4963
DDUMP 21# 4966
DEBTIM 27# 261 295 474 480 666 672 910 927 1185 1202 1499 1519 1855
1875 2165 2185 2434 2450 2699 2715 2957 2977 3205 3225 3477 3495 3743
3761 3997 4015 4250 4269 4489 4508 4683 4689 5161 5166
DGRCV 4811 4861 4888 5090
DGSNT 4890
DUMPP 75 205 417 455 592 630 779# 779 838 901 1034 1104 1176 1317
1396 1488 1673 1752 1844 1983 2062 2154 2291 2353 2425 2544 2607 2690
2809 2870 2946 3065 3131 3194 3332 3397 3468 3600 3662 3734 3854 3916
3988 4113 4173 4239 4360 4412 4478 4618 4656 4965
ECOMP 130
ENDTIM 263# 263 296 476# 476 481 668# 668 673 912# 912 928 1187# 1187
1203 1501# 1501 1520 1857# 1857 1876 2167# 2167 2186 2436# 2436 2451 2701# SEQ 0694
2701 2716 2959# 2959 2978 3207# 3207 3226 3479# 3479 3496 3745# 3745 3762
3999# 3999 4016 4252# 4252 4270 4491# 4491 4509 4685# 4685 4690 5163 5167
ERFLG 80 89 95 103 113 121 131 139 210 215 221 225 309 311
425 430 436 440 446 450 498 502 510 600 605 611 615 621
625 690 694 702 784 789 794 798 803 807 935 938 941 944
946 949 1039 1044 1049 1053 1058 1062 1070 1210 1213 1216 1219 1221
1224 1322 1327 1332 1336 1341 1345 1353 1529 1533 1538 1540 1542 1544
1678 1683 1688 1692 1697 1701 1709 1885 1889 1892 1894 1896 1898 1988
1993 1998 2002 2007 2011 2019 2195 2199 2202 2204 2206 2208 2296 2301
2308 2313 2318 2322 2330 2458 2460 2549 2554 2561 2566 2571 2575 2583
2723 2725 2814 2819 2824 2828 2833 2837 2845 2987 2990 3070 3075 3082
3087 3092 3096 3104 3235 3238 3337 3342 3349 3354 3359 3363 3371 3503
3506 3508 3511 3605 3610 3615 3619 3624 3628 3636 3769 3772 3774 3777
3859 3864 3869 3873 3878 3882 3890 4023 4026 4028 4031 4118 4123 4128
4132 4137 4141 4149 4279 4282 4284 4365 4370 4375 4379 4384 4388 4518
4521 4523 4626 4631 4637 4641 4647 4651 4707 4711 5110 5168 5187 5189
GETQUE 23# 5030
INSQUE 20# 240 462 642 653 867 1142 1453 1809 2119 2392 2657 2911 3159
3434 3700 3954 4205 4444 4671 5125 5133 5147
IPACLR 27# 76 206 303 421 596 780 1035 1318 1674 1984 2292 2545 2810
3066 3333 3601 3855 4114 4361 4622 5061
ISTOP 27# 144 323 518 710 957 1234 1552 1906 2216 2470 2735 3000 3248
3521 3787 4041 4294 4533 4738
LAST 150 155 160 165 329 333 337 524 528 532 536 540 716 720
724 728 732 963 967 971 976 1240 1244 1248 1253 1558 1562 1566
1571 1912 1916 1920 1925 2222 2226 2230 2235 2476 2480 2484 2489 2741
2745 2749 2754 3006 3010 3014 3019 3254 3258 3262 3267 3527 3531 3535
3540 3793 3797 3801 3806 4047 4051 4055 4060 4300 4304 4308 4313 4539
4543 4547 4552 4744 4748 4752 4756 5197
LCHAR 27# 854 855 1129 1130 1439 1440 1795 1796 2105 2106 2377 2378 2642
2643 2898 2899 3146 3147 3419 3420 3685 3686 3939 3940 4192 4193 4431
4432
LDCSR 27# 108 126 255 468 649 660 878 1153 1465 1821 2131 2403 2668
2923 3171 3445 3711 3965 4217 4456 4677 5075 5154
LDERR0 5188 5201#
LDERR1 5126 5202#
LDERR2 5127 5203#
LDERR3 5134 5204#
LDERR4 5135 5205#
LDERR5 5148 5206#
LDERR6 5149 5207#
LDMCAT 5131 5178
LDPTT 5120 5176
LDRAR 28# 5071
LOADP0 5110# 5190
LOADP1 5164# 5171
LOADP2 5170# 5183
LOADPE 1067 1350 1706 2016 2327 2580 2842 3101 3368 3633 3887 4146 5195#
LOADPM 1066 1349 1705 2015 2326 2579 2841 3100 3367 3632 3886 4145 5107#
LOADPX 5169 5187#
LODERR 149 328 523 715 962 1239 1557 1911 2221 2475 2740 3005 3253 3526
3792 4046 4299 4538 4743 4992#
MA10 786 962# SEQ 0695
MA11 1041 1239#
MA12 1324 1557#
MA13 1680 1911#
MA14 1990 2221#
MA15 2298 2475#
MA16 2551 2740#
MA17 2816 3005#
MA20 3072 3253#
MA21 3339 3526#
MA22 3607 3792#
MA23 3861 4046#
MA24 4120 4299#
MA25 4367 4538#
MA27 4628 4743#
MA4 86 149#
MA4PN 153 158 163 167#
MA5 212 328#
MA6 427 523#
MA7 602 715#
MB10 795 965#
MB11 1050 1242#
MB12 1333 1560#
MB13 1689 1914#
MB14 1999 2224#
MB15 2310 2478#
MB16 2563 2743#
MB17 2825 3008#
MB20 3084 3256#
MB21 3351 3529#
MB22 3616 3795#
MB23 3870 4049#
MB24 4129 4302#
MB25 4376 4541#
MB27 4638 4746#
MB4 100 152#
MB5 222 331#
MB6 437 526#
MB7 612 718#
MC10 804 969#
MC11 1059 1246#
MC12 1342 1564#
MC13 1698 1918#
MC14 2008 2228#
MC15 2319 2482#
MC16 2572 2747#
MC17 2834 3012#
MC20 3093 3260#
MC21 3360 3533#
MC22 3625 3799#
MC23 3879 4053#
MC24 4138 4306#
MC25 4385 4545#
MC27 4648 4750# SEQ 0696
MC4 118 157#
MC5 316 335#
MC5P0 346# 352
MC5P1 349 356# 361
MC5P2 367# 373 377
MC5PN 335 339#
MC6 447 530#
MC7 622 722#
MCAT17 19# 2618
MCHEC1 4889 4908#
MCHECK 893 922 1168 1197 1480 1511 1836 1867 2146 2177 2417 2445 2682 2710
2938 2969 3186 3217 3459 3488 3725 3754 3979 4008 4232 4262 4471 4501
4882#
MCOFF 2871# 2871 2875 2876
MCOM20 4866# 4869
MCOM2X 4871 4876#
MCOMP 1481 1512 1837 1868 2147 2178 4806#
MCOMP0 4829# 4832
MCOMP2 894 923 1169 1198 2418 2446 2683 2711 2939 2970 3187 3218 3460 3489
3726 3755 3980 4009 4856#
MCOMPX 4834 4841#
MD10 950 973#
MD10PN 974 978#
MD11 1225 1250#
MD11PN 1251 1255#
MD12 1545 1568#
MD12PN 1569 1573#
MD13 1899 1922#
MD13PN 1923 1927#
MD14 2209 2232#
MD14PN 2233 2237#
MD15 2461 2486#
MD15PN 2487 2491#
MD16 2726 2751#
MD16PN 2752 2756#
MD17 2991 3016#
MD17PN 3017 3021#
MD20 3239 3264#
MD20PN 3265 3269#
MD21 3512 3537#
MD21PN 3538 3542#
MD22 3778 3803#
MD22PN 3804 3808#
MD23 4032 4057#
MD23PN 4058 4062#
MD24 4285 4310#
MD24PN 4311 4315#
MD25 4524 4549#
MD25PN 4550 4554#
MD27 4708 4754#
MD4 136 162#
MD6 499 534#
MD7 691 726# SEQ 0697
ME6 511 538#
ME6PN 539 542#
ME7 703 730#
ME7PN 731 734#
MPACK 1443 1799 2109 4764#
MPACKN 4783# 4821
MPRUN 107 125 254 875 1150 1462 1818 2128 2400 2665 2920 3168 3442 3708
3962 4214 4453 5072 5079 5153
MSG 150 152 155 157 160 162 165 329 331 333 337 524 526 528
530 532 534 536 538 540 716 718 720 722 724 726 728 730
732 963 965 967 969 971 973 976 1240 1242 1244 1246 1248 1250
1253 1558 1560 1562 1564 1566 1568 1571 1912 1914 1916 1918 1920 1922
1925 2222 2224 2226 2228 2230 2232 2235 2476 2478 2480 2482 2484 2486
2489 2741 2743 2745 2747 2749 2751 2754 3006 3008 3010 3012 3014 3016
3019 3254 3256 3258 3260 3262 3264 3267 3527 3529 3531 3533 3535 3537
3540 3793 3795 3797 3799 3801 3803 3806 4047 4049 4051 4053 4055 4057
4060 4300 4302 4304 4306 4308 4310 4313 4539 4541 4543 4545 4547 4549
4552 4744 4746 4748 4750 4752 4754 4756 5195 5197
MTABLE 19# 2365 2503 2505 2769 2771 2879 3282 3284
MVPNT 16#
NEWENT 23# 5033 5036
NPAKPT 3379# 3379 3507 3554 3644 3773 3820 3898 4029 4074 5100
NPAKR 813 939 988 1076 1214 1218 1223 1264 1375 1537 1582 1731 1890 1936
2041 2200 2246 2335 2459 2497 2588 2724 2762 2867 2988 3028 3128 3236
3276 3376 3504 3510 3549 3551 3641 3770 3776 3815 3817 3895 4024 4030
4069 4073 4170 4280 4324 4409 4522 4563 4908 5007#
NPAKRC 815 947 992 1078 1222 1270 1377 1543 1586 1733 1897 1940 2043 2207
2250 4916 5009#
NPAKRD 816 945 994 1079 1220 1272 1378 1541 1588 1734 1895 1942 2044 2205
2252 4835 4872 5010#
NPAKRE 814 942 990 1077 1217 1267 1376 1539 1584 1732 1893 1938 2042 2203
2248 4912 5008#
NPAKRW 817 996 1080 1274 1379 1590 1735 1944 2045 2254 4836 4873 5011#
NPAKS 811 872 933 982 1074 1147 1208 1259 1263 1373 1458 1527 1530 1577
1729 1814 1883 1886 1931 2039 2124 2193 2196 2241 2334 2397 2456 2495
2587 2662 2721 2760 2866 2916 2985 3025 3127 3164 3233 3273 3375 3439
3501 3546 3640 3705 3767 3812 3894 3959 4021 4066 4168 4210 4277 4319
4407 4449 4516 4520 4558 5005#
NPAKSE 812 936 985 1075 1211 1261 1374 1532 1579 1730 1888 1933 2040 2198
2243 4902 5006#
NPAKSR 4169# 4169 4283 4321 4408 4519 4561 4901
NPAKUN 3378# 3378 3509 3552 3643 3775 3818 3897 4027 4071 5098
NRCRC 1081# 1081 1231 1380 1736 2046 2336 2467 2589 2732 2868 2997 3129 3245
3377 3518 3642 3784 3896 4038 4171 4291 4410 4530 4918
NSAPNT 544 547 550# 736 739
NSARD 492 684
NUMENT 21# 863 873 1138 1148 1449 1460 1805 1816 2115 2126 2388 2398 2653
2663 2907 2918 3155 3166 3430 3440 3696 3706 3950 3960 4201 4212 4440
4451
OP 229 460 635 651 827 1091 1365 1721 2031 2367 2597 2632 2858 2882
3122 3387 3409 3654 3675 3908 3929 4159 4181 4398 4420 4661 4773 4793
4810 4811 4860 4861 4887 4888 4890 5090 5120 5131 5139
P 5080 SEQ 0698
PACKET 20# 239 640 1100 1115 1382 1738 2048 4670 4822 4866
PASCNT 4582 4583 4664 4665 4716 4717
PCB 16# 886 888 916 918 1161 1163 1191 1193 1473 1475 1505 1507 1829
1831 1861 1863 2139 2141 2171 2173 2411 2413 2440 2442 2676 2678 2705
2707 2931 2933 2963 2965 3179 3181 3211 3213 3453 3455 3483 3485 3719
3721 3749 3751 3973 3975 4003 4005 4225 4227 4256 4258 4464 4466 4495
4497 5031 5035 5044
PDSABL 107
PDUMP 11 154 159 164 332 336 527 531 535 719 723 727 966 970
975 1243 1247 1252 1561 1565 1570 1915 1919 1924 2225 2229 2234 2479
2483 2488 2744 2748 2753 3009 3013 3018 3257 3261 3266 3530 3534 3539
3796 3800 3805 4050 4054 4059 4303 4307 4312 4542 4546 4551 4747 4751
4755 4951# 5196
PENABL 125 254 875 1150 1462 1818 2128 2400 2665 2920 3168 3442 3708 3962
4214 4453 5153
PIDLE 2307 2560 3081 3348 5059#
PIDLEE 5078 5081#
PK 4731
PKDAT1 4926 4928 4941# 4953
PKDAT2 4932 4934 4944# 4959
PKPN0 4974# 4985
PKPNT 4954 4960 4973#
PKSAV1 73 203 415 590 777 1032 1315 1671 1981 2289 2542 2807 3063 3330
3598 3852 4111 4358 4616 4927 4929 4940# 4951 4955
PKSAV2 74 204 416 591 778 1033 1316 1672 1982 2290 2543 2808 3064 3331
3599 3853 4112 4359 4617 4933 4935 4943# 4957 4961
PPCB 21#
PQUEUE 21#
PSPEC 2306 2309 2559 2562 3080 3083 3347 3350 5066# 5066
PSTAMP 27# 856 1131 1441 1797 2107 2379 2644 2900 3148 3421 3687 3941 4194
4433
PTABLE 19# 3290 3292 3560 3562
PTIME 32# 4729
PTTFQ 22# 862 1137 1448 1804 2114 2387 2652 2906 3154 3429 3695 3949 4200
4439
PUTQUE 23# 5043
Q 859 1134 1445 1801 2111 2384 2649 2903 3151 3426 3692 3946 4197 4436
5024 5040
QCHECK 3461 3490 3727 3756 3981 4010 5090#
RCCNT 4661
RDADDR 16#
RDCSR 27# 110 128 167 465 646 657 874 1149 1461 1817 2127 2399 2664
2919 3167 3441 3707 3961 4213 4452 4674 5077
RDLAR 27#
RDNSA 460 651
RESQAV 876 1151 1463 1819 2129 2401 2666 2921 3169 3443 3709 3963 4215 4454
RQAFLG 23# 837 885 889 915 919 1103 1160 1164 1190 1194 1395 1472 1476
1504 1508 1751 1828 1832 1860 1864 2061 2138 2142 2170 2174 2352 2410
2414 2439 2443 2606 2675 2679 2704 2708 2869 2930 2934 2962 2966 3130
3178 3182 3210 3214 3396 3452 3456 3482 3486 3661 3718 3722 3748 3752
3915 3972 3976 4002 4006 4172 4224 4228 4255 4259 4411 4463 4467 4494
4498 5034
RSPONS 20# 271 274 491 508 509 546 683 700 701 738 4700 4731 4807 SEQ 0699
4808 4810 4819 4830 4857 4858 4860 4867 4883 4884 4887 4896 4899 4909
4926 4932 5093 5094 5175
RSPQUE 19# 5096
RUNTME 27# 260 294 473 479 665 671 909 926 1184 1201 1498 1518 1854
1874 2164 2184 2433 2449 2698 2714 2956 2976 3204 3224 3476 3494 3742
3760 3996 4014 4249 4268 4488 4507 4682 4688 5160 5165
RWAIT 20# 264
SADDR 22# 507 543 637 825 1089 1361 1717 2027 3393 3652 3906 4163 4402
4771 4791 4806 4856 4882 5092
SAVPK1 4903 4913 4926#
SAVPK2 4837 4874 4932#
SDEBUG 1314# 1314 1417 1495 1525 1670 1773 1851 1881 1980 2083 2161 2191 2806
2953 2983 3062 3201 3231 4110 4246 4275 4357 4485 4514
SETDSA 16# 143 302 322 517 709 956 1233 1551 1905 2215 2469 2734 2999
3247 3520 3786 4040 4293 4532 4737
SETENA 16# 252 445 620 802 1057 1340 1696 2006 2317 2570 2832 3091 3358
3623 3877 4136 4383 4646
SNDDG 827 1091 1365 1721 2031 2367 2597 2632 2858 2882 3122 3387 3409 3654
3675 3908 3929 4159 4181 4398 4420 4773 4793
STARCV 23# 1232 2468 2733 2998 3246 3519 3785 4039 4292 4531
STASNT 23#
T10PAK 771# 843 934 937 940 943 948 981 987
T11LEN 1026# 1095 1100 1115
T11PAK 1025# 1118 1209 1212 1215 1258 1266 1269
T12LEN 1411 1595# 1767 2077 4768 4788
T12PAK 1308# 1528 1534 1576 1581
T12REP 1307# 1416
T13PAK 1664# 1884 1891 1930 1935
T14PAK 1974# 2194 2201 2240 2245
T15LEN 2283# 2347
T15PAK 2282# 2358 2457 2494
T15SPC 2305 2502# 2508
T16LEN 2536# 2601
T16PAK 2535# 2612 2722 2759
T16SPC 2558 2768# 2774
T17PAK 2800# 2986 2989 3024 3027
T20PAK 3056# 3234 3237 3272 3275
T20SP0 3289# 3295
T20SPC 3079 3281# 3287
T21LEN 3324# 3391
T21PAK 3323# 3402 3502 3505 3545 3548
T21SPC 3346 3559# 3565
T22LEN 3592# 3658
T22PAK 3591# 3667 3768 3771 3811 3814
T23LEN 3846# 3912
T23PAK 3845# 3921 4022 4025 4065 4068
T24PAK 4104# 4278 4281 4318 4323
T25PAK 4351# 4413 4517 4557 4560
T5LIS 250 278 310 356 358 360 367 372 383#
T5ORD 248 249 282 308 345 382#
T5PNT 251 279 287 381#
T7ADDR 641 699 735 742#
TA10 842# 904 SEQ 0700
TA11 1108# 1179
TA12 1400# 1409
TA13 1756# 1765
TA14 2066# 2075
TA15 2357# 2428
TA16 2611# 2693
TA17 2875# 2888
TA20 3136# 3197
TA21 3401# 3471
TA22 3666# 3737
TA23 3920# 3991
TA24 4178# 4242
TA25 4417# 4481
TA26 4586 4588 4591#
TA27 4687# 4696 4702
TA27A 4686 4695#
TA5 238# 244
TA6 478# 487 493
TA6A 477 486#
TA7 670# 679 685
TA7A 669 678#
TAMC 17# 5140
TB10 849# 903
TB11 1124# 1178
TB12 1407# 1429
TB13 1763# 1785
TB14 2073# 2095
TB15 2364# 2427
TB16 2618# 2692
TB17 2888# 2949
TB20 3141#
TB21 3414# 3470
TB22 3680# 3736
TB23 3934# 3990
TB24 4187#
TB25 4426#
TB27 4691 4707#
TB5 264#
TB6 482 498#
TB7 674 690#
TBSDFL 18# 231 459 634 824 1088 1360 1716 2026 2343 2596 2852 3111 3386
3651 3905 4156 4395 4660 4823 5122
TBYTE 18# 831 1094 1410 1766 2076 2346 2600 2853 3112 3390 3657 3911 4179
4418 4770 4790 4817 4842
TC10 865 883# 895
TC11 1140 1158# 1170
TC12 1429# 1491
TC13 1785# 1847
TC14 2095# 2157
TC15 2390 2408# 2419
TC16 2655 2673# 2684
TC17 2893#
TC20 3157 3176# 3188 3196 SEQ 0701
TC21 3432 3450# 3462
TC22 3698 3716# 3728
TC23 3952 3970# 3982
TC24 4203 4222# 4233 4241
TC25 4442 4461# 4472 4480
TC27 4720 4722 4728#
TC5 266# 273 277 281 283 297
TD10 891 899#
TD11 1166 1174#
TD12 1434# 1490
TD13 1790# 1846
TD14 2100# 2156
TD15 2415 2423#
TD16 2680 2688#
TD17 2909 2928# 2940 2948
TD20 3184 3192#
TD21 3457 3466#
TD22 3723 3732#
TD23 3977 3986#
TD24 4230 4237#
TD25 4469 4476#
TD5 267 287#
TDEST 18# 826 1090 1362 1718 2028 2366 2631 2881 3121 3394 3653 3907 4164
4403 4772 4792
TE10 844 902 908#
TE11 1119 1177 1183#
TE12 1451 1470# 1482
TE13 1807 1826# 1838
TE14 2117 2136# 2148
TE15 2359 2426 2432#
TE16 2613 2691 2697#
TE17 2936 2944#
TE20 3136 3195 3201#
TE21 3403 3469 3475#
TE22 3668 3735 3741#
TE23 3922 3989 3995#
TE24 4178 4240 4246#
TE25 4417 4479 4485#
TE5 289 301#
TERMES 77 79 207 209 422 424 597 599 781# 781 783 1036 1038 1319
1321 1675 1677 1985 1987 2293 2295 2546 2548 2811 2813 3067 3069 3334
3336 3602 3604 3856 3858 4115 4117 4362 4364 4623 4625 4992 4995 4996
TF10 913# 924 929
TF11 1188# 1199 1204
TF12 1478 1486#
TF13 1834 1842#
TF14 2144 2152#
TF15 2437# 2447 2452
TF16 2702# 2712 2717
TF17 2878 2947 2953#
TF20 3208# 3219 3227
TF21 3480# 3491 3497
TF22 3746# 3757 3763 SEQ 0702
TF23 4000# 4011 4017
TF24 4253# 4263 4271
TF25 4492# 4502 4510
TF5 305# 312
TFLOAD 16# 78 208 423 598 782 1037 1320 1676 1986 2294 2547 2812 3068
3335 3603 3857 4116 4363 4624
TFMFLG 18# 456 631 821 1085 1357 1713 2023 2340 2593 2849 3108 3383 3648
3902 4153 4392 4657
TG10 921 925#
TG11 1196 1200#
TG12 1402 1489 1495#
TG13 1758 1845 1851#
TG14 2068 2155 2161#
TG15 2444 2448#
TG16 2709 2713#
TG17 2960# 2971 2979
TG20 3216 3223#
TG21 3487 3493#
TG22 3753 3759#
TG23 4007 4013#
TG24 4261 4267#
TG25 4500 4506#
TG5 307 316#
TH10 933#
TH11 1208#
TH12 1502# 1513 1521
TH13 1858# 1869 1877
TH14 2168# 2179 2187
TH15 2456#
TH16 2721#
TH17 2968 2975#
TH20 3231#
TH21 3501#
TH22 3767#
TH23 4021#
TH24 4275#
TH25 4514#
TH4000 17# 5141 5142
TI12 1510 1517#
TI13 1866 1873#
TI14 2176 2183#
TI17 2983#
TIDLE 16# 94 220 435 610 793 1048 1331 1687 1997 2823 3614 3868 4127
4374 4636
TJ12 1525#
TJ13 1881#
TJ14 2191#
TLEN 1403# 1403 1407 1759# 1759 1763 2069# 2069 2073 4818 4841
TLNPAT 1381# 1381 1384 1386 1413 1415 1737 1740 1742 1769 1771 2047 2050 2052
2079 2081 4765 4784 4814 4820 4845
TPAT 18# 829 1093 1367 1400 1414 1419 1723 1756 1770 1775 2033 2066 2080
2085 2345 2599 2860 3118 3389 3656 3910 4161 4400 4766 4785 4815 4844
TPCB 16# 93 SEQ 0703
TPDFLG 18# 232 458 633 823 1087 1359 1715 2025 2342 2595 2851 3110 3385
3650 3904 4155 4394 4659 5123
TPRMSC 17# 5143
TPTTVL 19# 834 1098 1364 1720 2030 2350 2604 2857 3116 3408 3674 3928 4158
4397
TRACE 17# 72 202 414 589 776 1031 1313 1669 1979 2288 2541 2805 3061
3329 3597 3851 4109 4356 4577 4615
TREGD 18# 235
TREGN 18# 234
TRETRY 17# 5145
TRSFLG 18# 230 457 632 822 1086 1358 1714 2024 2341 2594 2850 3109 3384
3649 3903 4154 4393 4658 5121
TSLOAD 16#
TST10 9 775#
TST11 9 1030#
TST12 9 1312#
TST13 9 1668#
TST14 9 1978#
TST15 10 2287#
TST16 10 2540#
TST17 10 2804#
TST20 10 3060#
TST21 10 3328#
TST22 10 3596#
TST23 10 3850#
TST24 10 4108#
TST25 11 4355#
TST26 11 4576#
TST27 11 4614#
TST4 9 71#
TST5 9 201#
TST6 9 413#
TST7 9 588#
TSTREP 17# 4581 4663 4715
TSTSUB 17# 85 99 117 135 219 301 434 444 454 506 609 619 629
698 836 842 1102 1108 1117 1368 1459 1724 1815 2034 2125 2351 2357
2605 2611 2861 2917 3119 3165 3395 3401 3660 3666 3914 3920 4162 4211
4401 4450 4635 4645 4655
TWORD 18# 832 1096 1412 1422 1768 1778 2078 2088 2348 2602 2855 3114 3392
3659 3913 4180 4419 4769 4789 4816 4827 4843 4865
TX10 788 789 797 798 806 807 853 952 956#
TX11 1043 1044 1052 1053 1061 1062 1069 1070 1128 1227 1231#
TX12 1326 1327 1335 1336 1344 1345 1352 1353 1438 1547 1551#
TX13 1682 1683 1691 1692 1700 1701 1708 1709 1794 1901 1905#
TX14 1992 1993 2001 2002 2010 2011 2018 2019 2104 2211 2215#
TX15 2300 2301 2312 2313 2321 2322 2329 2330 2376 2463 2467#
TX16 2553 2554 2565 2566 2574 2575 2582 2583 2641 2728 2732#
TX17 2818 2819 2827 2828 2836 2837 2844 2845 2897 2993 2997#
TX20 3074 3075 3086 3087 3095 3096 3103 3104 3145 3241 3245#
TX21 3341 3342 3353 3354 3362 3363 3370 3371 3418 3514 3518#
TX22 3609 3610 3618 3619 3627 3628 3635 3636 3684 3780 3784# 3889 3890
TX23 3863 3864 3872 3873 3881 3882 3938 4034 4038#
TX24 4122 4123 4131 4132 4140 4141 4148 4149 4191 4287 4291# SEQ 0704
TX25 4369 4370 4378 4379 4387 4388 4430 4526 4530#
TX27 4630 4631 4640 4641 4650 4651 4710 4711 4724 4737#
TX4 88 89 102 103 120 121 138 139 143#
TX5 214 215 224 225 318 322#
TX6 429 430 439 440 449 450 501 502 513 517#
TX7 604 605 614 615 624 625 693 694 705 709#
TXADDL 21# 1394 1750 2060
TXALL 149 150 152 154 155 157 159 160 162 164 165 328 329 331
332 333 335 336 337 523 524 526 527 528 530 531 532 534
535 536 538 539 540 715 716 718 719 720 722 723 724 726
727 728 730 731 732 962 963 965 966 967 969 970 971 973
974 975 976 1239 1240 1242 1243 1244 1246 1247 1248 1250 1251 1252
1253 1557 1558 1560 1561 1562 1564 1565 1566 1568 1569 1570 1571 1911
1912 1914 1915 1916 1918 1919 1920 1922 1923 1924 1925 2221 2222 2224
2225 2226 2228 2229 2230 2232 2233 2234 2235 2475 2476 2478 2479 2480
2482 2483 2484 2486 2487 2488 2489 2740 2741 2743 2744 2745 2747 2748
2749 2751 2752 2753 2754 3005 3006 3008 3009 3010 3012 3013 3014 3016
3017 3018 3019 3253 3254 3256 3257 3258 3260 3261 3262 3264 3265 3266
3267 3526 3527 3529 3530 3531 3533 3534 3535 3537 3538 3539 3540 3792
3793 3795 3796 3797 3799 3800 3801 3803 3804 3805 3806 4046 4047 4049
4050 4051 4053 4054 4055 4057 4058 4059 4060 4299 4300 4302 4303 4304
4306 4307 4308 4310 4311 4312 4313 4538 4539 4541 4542 4543 4545 4546
4547 4549 4550 4551 4552 4743 4744 4746 4747 4748 4750 4751 4752 4754
4755 4756 5195 5196 5197
TXNOT 153 158 163
UDEBUG 17# 5017
USER 5073
WRNSA 635 5139 5180
WRPLI 229 272
Z3 38# 71 201 413 588 775 1030 1312 1668 1978 2287 2540 2804 3060
3328 3596 3850 4108 4355 4576 4614
.RREXP 23# 1232 2468 2733 2998 3246 3519 3785 4039 4292 4531
DELAY 109 127 5076
GET 1392 1629 1748 2058 4775 4795 4841 4842 4843 4844 4845 5048 5050 5081 SEQ 0705
5083 5191 5193
GO 72 76 78 79 93 94 108 110 126 128 143 144 167 171
202 206 208 209 220 236 240 252 255 260 264 266 294 302
303 322 323 414 421 423 424 435 445 461 462 465 468 473
479 486 517 518 544 547 589 596 598 599 610 620 636 642
646 649 652 653 657 660 665 671 678 709 710 736 739 776
780 782 783 793 802 835 856 860 867 874 878 883 884 887
890 893 894 909 913 914 917 920 922 923 926 956 957 1031
1035 1037 1038 1048 1057 1066 1099 1111 1131 1135 1142 1149 1153 1158
1159 1162 1165 1168 1169 1184 1188 1189 1192 1195 1197 1198 1201 1233
1234 1313 1318 1320 1321 1331 1340 1349 1369 1418 1441 1443 1446 1453
1461 1465 1470 1471 1474 1477 1480 1481 1498 1502 1503 1506 1509 1511
1512 1518 1551 1552 1669 1674 1676 1677 1687 1696 1705 1725 1774 1797
1799 1802 1809 1817 1821 1826 1827 1830 1833 1836 1837 1854 1858 1859
1862 1865 1867 1868 1874 1905 1906 1979 1984 1986 1987 1997 2006 2015
2035 2084 2107 2109 2112 2119 2127 2131 2136 2137 2140 2143 2146 2147
2164 2168 2169 2172 2175 2177 2178 2184 2215 2216 2288 2292 2294 2295
2307 2317 2326 2368 2379 2385 2392 2399 2403 2408 2409 2412 2417 2418
2433 2437 2438 2441 2445 2446 2449 2469 2470 2541 2545 2547 2548 2560
2570 2579 2620 2625 2633 2644 2650 2657 2664 2668 2673 2674 2677 2682
2683 2698 2702 2703 2706 2710 2711 2714 2734 2735 2805 2810 2812 2813
2823 2832 2841 2862 2883 2900 2904 2911 2919 2923 2928 2929 2932 2935
2938 2939 2956 2960 2961 2964 2967 2969 2970 2976 2999 3000 3061 3066
3068 3069 3081 3091 3100 3123 3148 3152 3159 3167 3171 3176 3177 3180
3183 3186 3187 3204 3208 3209 3212 3215 3217 3218 3224 3247 3248 3329
3333 3335 3336 3348 3358 3367 3410 3421 3427 3434 3441 3445 3450 3451
3454 3459 3460 3461 3476 3480 3481 3484 3488 3489 3490 3494 3520 3521
3597 3601 3603 3604 3614 3623 3632 3676 3687 3693 3700 3707 3711 3716
3717 3720 3725 3726 3727 3742 3746 3747 3750 3754 3755 3756 3760 3786
3787 3851 3855 3857 3858 3868 3877 3886 3930 3941 3947 3954 3961 3965
3970 3971 3974 3979 3980 3981 3996 4000 4001 4004 4008 4009 4010 4014
4040 4041 4109 4114 4116 4117 4127 4136 4145 4182 4194 4198 4205 4213
4217 4222 4223 4226 4229 4232 4249 4253 4254 4257 4260 4262 4268 4293
4294 4356 4361 4363 4364 4374 4383 4421 4433 4437 4444 4452 4456 4461
4462 4465 4468 4471 4488 4492 4493 4496 4499 4501 4507 4532 4533 4577
4591 4615 4622 4624 4625 4636 4646 4662 4671 4674 4677 4682 4688 4695
4729 4732 4737 4738 4774 4794 4821 4837 4874 4903 4913 4952 4954 4958
4960 4966 4997 5025 5030 5041 5043 5061 5065 5066 5071 5075 5077 5114
5124 5125 5132 5133 5146 5147 5154 5160 5165 5170
PCRL 4733 4994
PNT3 551 553 555 557 559 561
PNTDCP 981 982 984 985 987 988 990 992 994 996 1258 1259 1261 1263
1264 1266 1267 1269 1270 1272 1274 1576 1577 1579 1581 1582 1584 1586
1588 1590 1930 1931 1933 1935 1936 1938 1940 1942 1944 2240 2241 2243
2245 2246 2248 2250 2252 2254 2494 2495 2497 2759 2760 2762 3024 3025
3027 3028 3272 3273 3275 3276 3545 3546 3548 3549 3551 3552 3554 3811
3812 3814 3815 3817 3818 3820 4065 4066 4068 4069 4071 4073 4074 4318
4319 4321 4323 4324 4557 4558 4560 4561 4563
PNTDEC 1423 1779 2089
PNTHW 4984
PNTMSG 339 343 344 365 374 542 545 734 737 978 979 980 983 986
989 991 993 995 1255 1256 1257 1260 1262 1265 1268 1271 1273 1418
1421 1424 1496 1526 1573 1574 1575 1578 1580 1583 1585 1587 1589 1774 SEQ 0706
1777 1780 1852 1882 1927 1928 1929 1932 1934 1937 1939 1941 1943 2084
2087 2090 2162 2192 2237 2238 2239 2242 2244 2247 2249 2251 2253 2491
2492 2493 2496 2756 2757 2758 2761 2954 2984 3021 3022 3023 3026 3202
3232 3269 3270 3271 3274 3542 3543 3544 3547 3550 3553 3808 3809 3810
3813 3816 3819 4062 4063 4064 4067 4070 4072 4247 4276 4315 4316 4317
4320 4322 4486 4515 4554 4555 4556 4559 4562 4728 4730 4952 4958 4977
4980
PNTOCS 350 376 1420 1776 2086 4979
PSP 351
PUT 1383 1625 1739 2049 4764 4783 4814 4815 4816 4817 4818 5019 5021 5059
5061 5107 5109
RGET 1392 1748 2058 5048 5081 5191
RPUT 1383 1739 2049 5019 5059 5107
RTN 81 145 172 211 324 359 371 426 519 548 562 601 711 740
785 879 958 997 1040 1116 1154 1235 1275 1323 1393 1425 1466 1553
1591 1630 1679 1749 1781 1822 1907 1945 1989 2059 2091 2132 2217 2255
2297 2404 2471 2498 2509 2550 2623 2629 2669 2736 2763 2775 2815 2924
3001 3029 3071 3172 3249 3277 3296 3338 3446 3522 3555 3566 3606 3712
3788 3821 3860 3966 4042 4075 4119 4218 4295 4325 4366 4457 4534 4564
4592 4627 4739 4776 4796 4809 4812 4846 4859 4862 4876 4885 4891 4898
4904 4911 4919 4930 4936 4956 4962 4964 4967 4976 4993 4998 5018 5050
5083 5091 5095 5101 5193
SCOPER 86 100 118 136 212 222 316 427 437 447 499 511 602 612
622 691 703 786 795 804 950 1041 1050 1059 1067 1225 1324 1333
1342 1350 1545 1680 1689 1698 1706 1899 1990 1999 2008 2016 2209 2298
2310 2319 2327 2461 2551 2563 2572 2580 2726 2816 2825 2834 2842 2991
3072 3084 3093 3101 3239 3339 3351 3360 3368 3512 3607 3616 3625 3633
3778 3861 3870 3879 3887 4032 4120 4129 4138 4146 4285 4367 4376 4385
4524 4628 4638 4648 4708
TMSG 1421 1777 2087 4980
TMSGC 339 343 344 365 374 542 545 734 737 978 979 980 983 986
989 991 993 995 1255 1256 1257 1260 1262 1265 1268 1271 1273 1418
1573 1574 1575 1578 1580 1583 1585 1587 1589 1774 1927 1928 1929 1932
1934 1937 1939 1941 1943 2084 2237 2238 2239 2242 2244 2247 2249 2251
2253 2491 2492 2493 2496 2756 2757 2758 2761 3021 3022 3023 3026 3269
3270 3271 3274 3542 3543 3544 3547 3550 3553 3808 3809 3810 3813 3816
3819 4062 4063 4064 4067 4070 4072 4315 4316 4317 4320 4322 4554 4555
4556 4559 4562 4728 4952 4958 4977
TMSGCD 1496 1526 1852 1882 2162 2192 2954 2984 3202 3232 4247 4276 4486 4515
TMSGD 1424 1780 2090 4730
TTALTM 849 1124 1434 1790 2100 2372 2637 2893 3141 3414 3680 3934 4187 4426
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 1
DFNIAI MAC 1-Nov-83 18:03 Port Controller Utility Package SEQ 0707
1 SUBTTL Port Controller Utility Package
2
3 SALL
4
5 SEARCH DFNIA,MONSYM
6
7 ; Register Read/write routines
8
9 ENTRY .CONI,.CONO,.DATAO,.DATAI
10 ENTRY LDEBUF,LDRAR,LDCRAM,LDCSR
11 ENTRY RDEBUF,RDLAR,RDCRAM,RDCSR
12
13 ; Port specific utility routines
14
15 ENTRY SETEBU,SETLAR,CLREBU,CHKCSR
16 ENTRY IPACLR,IPASRT,IPASTP,ERESET,IPASST,ISTOP
17 INTERN SNEXT,SLAST,EADDR,AADDR,SDATA
18
19 ; PI system handling routines
20
21 ENTRY INITPI,INITPD,.PIOFF,.PION,PISYOF
22 ENTRY PISYON,SETVEC,.INPNT
23 INTERN INTNUM,INTPC,INTTYP,INTCON,INTAPR,INTTIM,INTUSE
24 INTERN INTCSR,INTEND,.INWD1,.INWD2
25
26 ; Channel handling routines
27
28 ENTRY CHINIT
29 ENTRY GETLOG,CCWPNT,LOGPNT
30 INTERN CBASE,LOGBUF,EPTJMP,ICWA0
31
32 ; User mode support routines
33
34 ENTRY DSETUP,DEVREQ,DEVREL,REQ1,REQ2,REL,LOCPHY
35 ENTRY USRION,USRIOF,ENABLE
36 INTERN SNARKF,HAVIPA,LOCDON
37
38 ; Miscellaneous routines
39
40 ENTRY FFF ; Fatal error routine
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 2
DFNIAI MAC 1-Nov-83 18:03 Port Controller Utility Package SEQ 0708
41
42 ; EXTERN's located in DFNIAU.MAC (Utility Routines module)
43
44 EXTERN .CLOSE,.EXIT,SWITT,RUNTME,DEBTIM,USTIM
45
46 ; EXTERN's located in DFNIA1.MAC (Mainline code..)
47
48 EXTERN UDEBUG,DSPRIN,MLOADN
49 EXTERN CADDR,CWORDL,CWORDR,DRCRAM,DWCRAM,PARFLG
50 EXTERN PCB,TIDLE,TPCB,PMODE
51
52
53 ;#********************************************************************
54 ; ZI - Address for use in DDT
55 ;#********************************************************************
56
57 000000' ZI: ; address of 00000'
58
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 3
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0709
59 SUBTTL Port Register Read/Write Routines
60
61 ;#*********************************************************************
62 ;* Notes On I/O Routine Design
63 ;
64 ; 1. All code in this file is re-entrant with the exception of the
65 ; user mode stuff which need not be since the PI system cannot
66 ; be used in user mode.
67 ;
68 ; 2. No AC's are modified unless they return data.
69 ;
70 ; 3. If in (exec mode) with a port it is necessary for the channel
71 ; routines to do a limited amount of paging, a location "CBASE"
72 ; must be set up as a paged address of "0". Then the routines
73 ; will then work properly.
74 ;
75 ; The following routines are given:
76 ;
77 ; Port Register Load/Read Routines:
78 ;
79 ; LDEBUF This is a DATAO with 'Diag Test EBUF' bit set
80 ; in the CSR Register.
81 ;
82 ; LDRAR This is a DATAO with 'Diag Test EBUF' bit not
83 ; set in the CSR Register, and Bit 0 set in the
84 ; data given. The address to put in the RAR is
85 ; in bits 1-13.
86 ;
87 ; LDCRAM This is a DATAO with 'Diag Test EBUF' bit not
88 ; set in the CSR Register, and Bit 0 zero in the
89 ; data given. The data to load in CRAM is in
90 ; bits 6-35.
91 ;
92 ; LDCSR This is simply a CONO.
93 ;
94 ; RDEBUF This is a DATAI with 'Diag Test EBUF' bit set
95 ; in the CSR Register.
96 ;
97 ; RDLAR This is a DATAI with 'Diag Test EBUF' bit not
98 ; set and 'Diag Sel LAR' set in CSR Register
99 ; The data returned is in bits 1-12. Bit 13 is
100 ; returned as the corresponding bit of the RAR.
101 ;
102 ; RDCRAM This is a DATAI with 'Diag Test EBUF' bit not
103 ; set and 'Diag Sel LAR' not set in CSR Regis-
104 ; ter. The data returned is in bits 6-35.
105 ;
106 ; RDCSR This is simply a CONI.
107 ;
108 ;#********************************************************************
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 4
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0710
109
110 ;#************************************************************
111 ;* Port Register Load Routines
112 ;
113 ; Port registers are loaded by a CONO or DATAO. The data to be
114 ; written is given right justified in AC1. Each routine will
115 ; will position the data correctly.
116 ;
117 ; Example: MOVE AC1,FOO ; data to write to register
118 ; GO LDXXXX ; XXXX (Register description)
119 ; Return ; no errors are possible
120 ;#************************************************************
121
122 ;#************************************************************
123 ;* LDEBUF - Load EBUF
124 ;
125 ; This routine assumes that 'Diag Test EBUF' bit is already set
126 ; in the CSR Register, so a simple DATAO will load the register.
127 ;#************************************************************
128
129 000000' 332 00 0 00 000000* LDEBUF: SKIPE UDEBUG ; debug mode?
130 000001' 263 17 0 00 000000 RTN ; yes - exit
131 000002' 261 17 0 00 000002 PUT 2 ; save AC2
132 000003' 200 02 0 00 002447' MOVE 2,[DATAO 0,1] ; build a DATAO
133 000004' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
134 000005' 256 00 0 00 000002 XCT 2 ; do the DATAO
135 000006' 262 17 0 00 000002 GET 2 ; restore AC2
136 000007' 263 17 0 00 000000 RTN
137
138
139 ;#************************************************************
140 ;* LDCSR - Load CSR (This is simply a CONO).
141 ;#************************************************************
142
143 000010' 332 00 0 00 000000* LDCSR: SKIPE UDEBUG ; debug mode?
144 000011' 263 17 0 00 000000 RTN ; yes - exit
145 000012' 261 17 0 00 000002 PUT 2 ; save AC2
146 000013' 200 02 0 00 002450' MOVE 2,[CONO] ; build a CONO
147 000014' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
148 000015' 540 02 0 00 000001 HRR 2,1 ; include data to write
149 000016' 256 00 0 00 000002 XCT 2 ; do the CONO
150 000017' 262 17 0 00 000002 GET 2 ; restore AC2
151 000020' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 5
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0711
152
153 ;#************************************************************
154 ;* LDRAR - Load RAR
155 ;
156 ; This assumes that 'Diag Test EBUF' bit is not set in CSR, so a DATAO
157 ; loads the RAR). The sign bit set in the data specified in the DATAO
158 ; causes the RAR to be loaded instead of the CRAM.
159 ;
160 ; Data to load is in AC1: Bits 23-34 - CRAM Address
161 ; 35 - 0 - Left half of CRAM word
162 ; 1 - Right half of CRAM word
163 ;#************************************************************
164
165 000021' 332 00 0 00 000010* LDRAR: SKIPE UDEBUG ; debug mode?
166 000022' 263 17 0 00 000000 RTN ; yes - exit
167 000023' 261 17 0 00 000001 RPUT (1,2) ; save AC's
168
169 000025' 200 02 0 00 002447' MOVE 2,[DATAO 0,1] ; build a DATAO
170 000026' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
171 000027' 242 01 0 00 000026 LSH 1,^D22 ; position data correctly
172 000030' 661 01 0 00 400000 TLO 1,400000 ; set sign bit
173 000031' 256 00 0 00 000002 XCT 2 ; do the DATAO
174 000032' 262 17 0 00 000002 RGET (2,1) ; restore AC's
175
176 000034' 263 17 0 00 000000 RTN
177
178
179 ;#************************************************************
180 ;* LDCRAM - Load CRAM
181 ;
182 ; This assumes that 'Diag Test EBUF' bit is not set in CSR, so a
183 ; DATAO loads the CRAM). The sign bit zero in the data specified
184 ; in the DATAO causes the CRAM to be loaded instead of the RAR.
185 ; The data to load is given right justified in AC1.
186 ;#************************************************************
187
188 000035' 332 00 0 00 000021* LDCRAM: SKIPE UDEBUG ; debug mode?
189 000036' 263 17 0 00 000000 RTN ; yes - exit
190 000037' 261 17 0 00 000001 RPUT (1,2) ; save AC's
191
192 000041' 200 02 0 00 002447' MOVE 2,[DATAO 0,1] ; build a DATAO
193 000042' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
194 000043' 621 01 0 00 770000 TLZ 1,770000 ; ensure left 6 bits zero
195 000044' 256 00 0 00 000002 XCT 2 ; do the DATAO
196 000045' 262 17 0 00 000002 RGET (2,1) ; restore AC's
197
198 000047' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 6
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0712
199
200 ;#************************************************************
201 ;* Port Register Read Routines
202 ;
203 ; Port registers are read by a CONI or DATAI. The data is
204 ; returned right justified in AC1 with unused bits zero.
205 ;
206 ; Example: MOVE AC1,FOO ; some argument
207 ; GO RDXXXX ; XXXX (Register description)
208 ; Return+1 ; read failed
209 ; Return+2 ; read succeeded
210 ;
211 ; Note: It is not normally possible to tell if the read failed
212 ; or succeeded, except with the CSR register. Reading the CSR
213 ; is set up for a +1 and +2 return. The remaining routines
214 ; return +1 always.
215 ;#************************************************************
216
217 ;#************************************************************
218 ;* RDEBUF - Read EBUF
219 ;
220 ; This routine assumes that 'Diag Test EBUF' bit is already set
221 ; in CSR, so a simple DATAI will load the register.
222 ;#************************************************************
223
224 000050' 332 00 0 00 000035* RDEBUF: SKIPE UDEBUG ; debug mode?
225 000051' 263 17 0 00 000000 RTN ; yes - return
226 000052' 261 17 0 00 000002 PUT 2 ; save AC2
227 000053' 200 02 0 00 002451' MOVE 2,[DATAI 0,1] ; build a DATAI
228 000054' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
229 000055' 256 00 0 00 000002 XCT 2 ; do the DATAI
230 000056' 262 17 0 00 000002 GET 2 ; restore AC2
231 000057' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 7
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0713
232
233 ;#************************************************************
234 ;* RDCSR - Read CSR
235 ;#************************************************************
236
237 000060' 350 00 0 17 000000 RDCSR: AOS (P) ; set up return+2
238 000061' 332 00 0 00 000050* SKIPE UDEBUG ; debug mode?
239 000062' 263 17 0 00 000000 RTN ; yes - return
240 000063' 261 17 0 00 000000 RPUT (0,2,3) ; save AC's
241
242 000066' 201 03 0 00 000050 MOVEI 3,^D40 ; retry up to 40 times
243 000067' 200 02 0 00 002452' MOVE 2,[CONI 0,1] ; build a CONI from AC1
244 000070' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
245 000071' 256 00 0 00 000002 RDCS0: XCT 2 ; do the CONI
246 000072' 255 00 0 00 000000 JFCL
247 000073' 255 00 0 00 000000 JFCL
248 000074' 326 01 0 00 000100' JUMPN 1,RDCSX ; succeeded? yes - exit
249 000075' 005 00 0 00 000001 DELAY 1 ; wait 1 millisecond
250 000076' 367 03 0 00 000071' SOJG 3,RDCS0 ; loop till done
251 000077' 370 00 0 17 777775 SOS -3(P) ; failed - set up return+1
252 000100' 262 17 0 00 000003 RDCSX: RGET (3,2,0) ; yes - error - restore AC's
253
254 000103' 263 17 0 00 000000 RTN ; and return
255
256
257 ;#************************************************************
258 ;* RDLAR - Read LAR
259 ;
260 ; This assumes that 'Diag Test EBUF' is not set and 'Diag Sel LAR' is
261 ; set in the CSR Register, so a DATAI can be used to load the CRAM).
262 ;
263 ; The data is returned right justified in AC1:
264 ;
265 ; Bits 23-34 - CRAM Address
266 ; 35 - 0 - Left half of CRAM word
267 ; 1 - Right half of CRAM word
268 ;#************************************************************
269
270 000104' 332 00 0 00 000061* RDLAR: SKIPE UDEBUG ; debug mode?
271 000105' 263 17 0 00 000000 RTN ; yes - return
272 000106' 261 17 0 00 000002 PUT 2 ; save AC2
273 000107' 200 02 0 00 002451' MOVE 2,[DATAI 0,1] ; build a DATAI from AC1
274 000110' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
275 000111' 256 00 0 00 000002 XCT 2 ; do the DATAI
276 000112' 135 01 0 00 002453' LDB 1,[POINT 13,1,13] ; position correctly
277 000113' 262 17 0 00 000002 GET 2 ; restore AC2
278 000114' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 8
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0714
279
280 ;#************************************************************
281 ;* RDCRAM - Read CRAM
282 ;
283 ; This assumes that 'Diag Test EBUF' and 'Diag Sel LAR' bits are
284 ; not set in the CSR Register, so a DATAI can be used to load the
285 ; CRAM). The data is returned in AC1.
286 ;#************************************************************
287
288 000115' 332 00 0 00 000104* RDCRAM: SKIPE UDEBUG ; debug mode?
289 000116' 263 17 0 00 000000 RTN ; yes - return
290 000117' 261 17 0 00 000002 PUT 2 ; save AC2
291 000120' 200 02 0 00 002451' MOVE 2,[DATAI 0,1] ; build a DATAI from AC1
292 000121' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
293 000122' 256 00 0 00 000002 XCT 2 ; do the DATAI
294 000123' 621 01 0 00 770000 TLZ 1,770000 ; ensure leftmost 6 bits are zero
295 000124' 262 17 0 00 000002 GET 2 ; restore AC2
296 000125' 263 17 0 00 000000 RTN ; return
297
298
299 ;#************************************************************
300 ;* .CONI - Do a simple CONI (no error checking)
301 ;
302 ; Argument: MBCN - Contains RH number to do (left justified properly)
303 ; as 54000,,0, etc.
304 ;
305 ; Returns: AC1 - Contains result
306 ; +1 always
307 ;#************************************************************
308
309 000126' 332 00 0 00 000115* .CONI: SKIPE UDEBUG ; debug mode?
310 000127' 263 17 0 00 000000 RTN ; yes - exit
311 000130' 261 17 0 00 000002 PUT 2 ; save AC2
312 000131' 200 02 0 00 002452' MOVE 2,[CONI 0,1] ; build a CONI from AC1
313 000132' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
314 000133' 256 00 0 00 000002 XCT 2 ; do the CONI
315 000134' 262 17 0 00 000002 GET 2 ; restore AC2
316 000135' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 9
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0715
317
318 ;#************************************************************
319 ;* .CONO - Do a simple CONO
320 ;
321 ; Argument: MBCN - Contains RH number to do (left justified properly)
322 ; as 54000,,0, etc.
323 ;
324 ; Returns: AC1 - Contains data to write to RH or IPA20
325 ; +1 always
326 ;#************************************************************
327
328 000136' 332 00 0 00 000126* .CONO: SKIPE UDEBUG ; debug mode?
329 000137' 263 17 0 00 000000 RTN ; yes - exit
330 000140' 261 17 0 00 000002 PUT 2 ; save AC2
331 000141' 200 02 0 00 002450' MOVE 2,[CONO] ; build a CONO
332 000142' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
333 000143' 540 02 0 00 000001 HRR 2,1 ; include data to write
334 000144' 256 00 0 00 000002 XCT 2 ; do the CONO
335 000145' 262 17 0 00 000002 GET 2 ; restore AC2
336 000146' 263 17 0 00 000000 RTN ; return
337
338
339 ;#************************************************************
340 ;* .DATAI - Do a simple DATAI (no error checking)
341 ;
342 ; Argument: MBCN - Contains RH number to do (left justified properly)
343 ; as 54000,,0, etc.
344 ;
345 ; Returns: AC1 - Contains result
346 ; +1 always
347 ;#************************************************************
348
349 000147' 332 00 0 00 000136* .DATAI: SKIPE UDEBUG ; debug mode?
350 000150' 263 17 0 00 000000 RTN ; yes - exit
351 000151' 261 17 0 00 000002 PUT 2 ; save AC2
352 000152' 200 02 0 00 002451' MOVE 2,[DATAI 0,1] ; build a DATAI from AC1
353 000153' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
354 000154' 256 00 0 00 000002 XCT 2 ; do the DATAI
355 000155' 262 17 0 00 000002 GET 2 ; restore AC2
356 000156' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 10
DFNIAI MAC 1-Nov-83 18:03 Port Register Read/Write Routines SEQ 0716
357
358 ;#************************************************************
359 ;* .DATAO - Do a simple DATAO
360 ;
361 ; Argument: MBCN - Contains RH number to do (left justified properly)
362 ; as 54000,,0, etc.
363 ;
364 ; Returns: AC1 - Contains data to write to RH or IPA20
365 ; +1 always
366 ;#************************************************************
367
368 000157' 332 00 0 00 000147* .DATAO: SKIPE UDEBUG ; debug mode?
369 000160' 263 17 0 00 000000 RTN ; yes - exit
370 000161' 261 17 0 00 000002 PUT 2 ; save AC2
371 000162' 200 02 0 00 002447' MOVE 2,[DATAO 0,1] ; build a DATAO
372 000163' 434 02 0 00 000016 IOR 2,MBCN ; include the device code
373 000164' 256 00 0 00 000002 XCT 2 ; do the DATAO
374 000165' 262 17 0 00 000002 GET 2 ; restore AC2
375 000166' 263 17 0 00 000000 RTN ; return
376
377
378 ;#********************************************************************
379 ;* ERESET - Issue an EBUS reset
380 ;#********************************************************************
381
382 000167' 332 00 0 00 000157* ERESET: SKIPE UDEBUG ; debug mode?
383 000170' 263 17 0 00 000000 RTN ; yes - exit
384 000171' 336 00 0 00 030037 SKIPN USER ; user mode?
385 000172' 7 000 20 0 00 200000 CONO APR,200000 ; no - do an EBUS reset
386 000173' 332 00 0 00 030037 SKIPE USER ; user mode?
387 000174' 260 17 0 00 000252' GO IPACLR ; yes - do a 'port clear' instead
388 000175' 263 17 0 00 000000 RTN
389
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 11
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0717
390 SUBTTL Port Specific Utility Routines
391
392 ;#********************************************************************
393 ;* ISTOP - Stop IPA either by a port clear or by clearing the CSR register
394 ;#********************************************************************
395
396 000176' 332 00 0 00 000167* ISTOP: SKIPE UDEBUG ; debug mode?
397 000177' 263 17 0 00 000000 RTN ; yes - return
398 000200' 261 17 0 00 000000 RPUT (0,1,2) ; save AC's
399
400 000203' 260 17 0 00 000060' GO RDCSR ; read CSR register
401 000204' 474 01 0 00 000000 SETO 1, ; error - ensure error bits are set
402 000205' 200 02 0 00 000001 MOVE 2,1 ; get into AC2
403 000206' 603 01 0 00 004000 TLNE 1,(CRAMPE) ; CRAM parity error bit set?
404 000207' 254 00 0 00 000212' JRST ISTOP0 ; yes - must clear it
405 000210' 606 01 0 00 000010 TRNN 1,MPRUN ; IPA running?
406 000211' 254 00 0 00 000244' JRST ISTOPX ; no - exit
407 000212' 200 00 0 00 000001 ISTOP0: MOVE 1 ; get into AC0
408 000213' 400 01 0 00 000000 SETZ 1, ; CSR data to clear 'MPRUN'
409 000214' 603 00 0 00 002000 TLNE (MBERR) ; MBUS error bit set?
410 000215' 254 00 0 00 000240' JRST ISTOPC ; yes - must do a port clear
411 000216' 603 00 0 00 004000 TLNE (CRAMPE) ; CRAM parity error bit set?
412 000217' 201 01 0 00 004000 MOVEI 1,EBUSPE ; yes - get 'EBUS PE' bit
413 000220' 260 17 0 00 000010' GO LDCSR ; write CSR
414 000221' 260 17 0 00 000060' GO RDCSR ; read CSR register
415 000222' 474 01 0 00 000000 SETO 1, ; error - ensure error bits are set
416 000223' 603 01 0 00 006000 TLNE 1,(CRAMPE!MBERR) ; error bits set?
417 000224' 254 00 0 00 000240' JRST ISTOPC ; yes - must do a port clear
418 000225' 602 01 0 00 000010 TRNE 1,MPRUN ; still running?
419 000226' 254 00 0 00 000240' JRST ISTOPC ; yes - must do a port clear
420 000227' 603 02 0 00 004000 TLNE 2,(CRAMPE) ; was CRAM PE set before?
421 000230' 332 00 0 00 000000* SKIPE PMODE ; yes - running a test?
422 000231' 334 00 0 00 000000 SKIPA ; yes - don't print anything
423 000232' 037 00 0 00 002454' TMSGCD <[CRAM PE cleared]> ; no - let operator know
424 000233' 607 02 0 00 004000 TLNN 2,(CRAMPE) ; was CRAM PE set before?
425 000234' 332 00 0 00 000230* SKIPE PMODE ; no - running a test?
426 000235' 334 00 0 00 000000 SKIPA ; yes - don't print anything
427 000236' 037 00 0 00 002461' TMSGCD <[Port stopped]> ; no - let operator know
428 000237' 254 00 0 00 000244' JRST ISTOPX ; no - exit
429 000240' 201 01 0 00 400000 ISTOPC: MOVEI 1,PCLEAR ; get 'port clear' bit
430 000241' 260 17 0 00 000010' GO LDCSR ; write the CSR register
431 000242' 336 00 0 00 000234* SKIPN PMODE ; no - running a test?
432 000243' 037 00 0 00 002465' TMSGCD <[Port Clear done]> ; let operator know
433 000244' 400 01 0 00 000000 ISTOPX: SETZ 1, ; clear AC1
434 000245' 260 17 0 00 000010' GO LDCSR ; clear CSR register
435 000246' 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
436
437 000251' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 12
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0718
438
439 ;#********************************************************************
440 ;* IPACLR - Issue a port clear
441 ;#********************************************************************
442
443 000252' 261 17 0 00 000001 IPACLR: PUT 1 ; save AC1
444 000253' 201 01 0 00 400000 MOVEI 1,PCLEAR ; get 'port clear' bit
445 000254' 260 17 0 00 000010' GO LDCSR ; write the CSR register
446 000255' 262 17 0 00 000001 GET 1 ; restore AC1
447 000256' 263 17 0 00 000000 RTN ; return
448
449
450 ;#********************************************************************
451 ;* SETEBU - Check that 'Diag Test EBUF' bit is set in CSR and set if not.
452 ;
453 ; Return +1 - Error accessing CSR
454 ; +2 - Ok
455 ;#********************************************************************
456
457 000257' 261 17 0 00 000000 SETEBU: RPUT (0,1) ; save AC's
458
459 000261' 260 17 0 00 000060' GO RDCSR ; read CSR
460 000262' 254 00 0 00 000271' JRST SETEBE ; error return
461 000263' 200 00 0 00 000001 MOVE 1 ; get copy of AC1 into AC0
462 000264' 660 01 0 00 200000 TRO 1,TSTEBF ; set this bit
463 000265' 620 01 0 00 040000 TRZ 1,SELLAR ; clear this bit
464 000266' 312 00 0 00 000001 CAME 1 ; bits already set up ok?
465 000267' 260 17 0 00 000010' GO LDCSR ; no - set/clear them
466 000270' 350 00 0 17 777776 AOS -2(P) ; set up ok return
467 000271' 262 17 0 00 000001 SETEBE: RGET (1,0) ; restore AC's
468
469 000273' 263 17 0 00 000000 RTN ; return
470
471
472 ;#********************************************************************
473 ;* SETLAR - Check that 'Diag Sel LAR' bit is set in CSR and set if not.
474 ;
475 ; Return +1 - Error accessing CSR
476 ; +2 - Ok
477 ;#********************************************************************
478
479 000274' 261 17 0 00 000000 SETLAR: RPUT (0,1) ; save AC's
480
481 000276' 260 17 0 00 000060' GO RDCSR ; read CSR
482 000277' 254 00 0 00 000306' JRST SETLAE ; error return
483 000300' 200 00 0 00 000001 MOVE 1 ; get copy of AC1 into AC0
484 000301' 620 01 0 00 200000 TRZ 1,TSTEBF ; clear this bit
485 000302' 660 01 0 00 040000 TRO 1,SELLAR ; set this bit
486 000303' 312 00 0 00 000001 CAME 1 ; bits already set up ok?
487 000304' 260 17 0 00 000010' GO LDCSR ; is set in CSR Register
488 000305' 350 00 0 17 777776 AOS -2(P) ; set up ok return
489 000306' 262 17 0 00 000001 SETLAE: RGET (1,0) ; restore AC's
490
491 000310' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 13
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0719
492
493 ;#********************************************************************
494 ;* CLREBU - Check that 'Diag Test EBUF' is not set in CSR and clear if is.
495 ;
496 ; Return +1 - Error accessing CSR
497 ; +2 - Ok
498 ;#********************************************************************
499
500 000311' 261 17 0 00 000000 CLREBU: RPUT (0,1) ; save AC's
501
502 000313' 260 17 0 00 000060' GO RDCSR ; read CSR
503 000314' 254 00 0 00 000322' JRST CLREBE ; error return
504 000315' 606 01 0 00 200000 TRNN 1,TSTEBF ; 'Diag Test EBUF' bit set?
505 000316' 254 00 0 00 000321' JRST CLREBX ; no - exit
506 000317' 620 01 0 00 200000 TRZ 1,TSTEBF ; make sure 'Diag Test EBUF' bit
507 000320' 260 17 0 00 000010' GO LDCSR ; is cleared in CSR Register
508 000321' 350 00 0 17 777776 CLREBX: AOS -2(P) ; set up ok return
509 000322' 262 17 0 00 000001 CLREBE: RGET (1,0) ; restore AC's
510
511 000324' 263 17 0 00 000000 RTN ; return
512
513
514 ;#********************************************************************
515 ;* CHKCSR - Check if error bits are set in the CSR register
516 ;
517 ; Also, stop the IPA if it is running, and announce the fact to the
518 ; user.
519 ;#********************************************************************
520
521 000325' 261 17 0 00 000001 CHKCSR: PUT 1 ; save AC1
522 000326' 260 17 0 00 000060' GO RDCSR ; read CSR register
523 000327' 334 00 0 00 000000 SKIPA ; error return
524 000330' 603 01 0 00 002000 TLNE 1,(MBERR) ; MBUS Error bit set?
525 000331' 254 00 0 00 000342' JRST CHKCSX ; yes - error exit
526 000332' 603 01 0 00 004000 TLNE 1,(CRAMPE) ; CRAM PE bit set?
527 GO [MOVEI 1,EBUSPE ; yes - clear it
528 GO LDCSR
529 TMSGCD <[CRAM PE cleared from CSR register]>
530 000333' 260 17 0 00 002502' RTN]
531 000334' 350 00 0 17 777777 AOS -1(P) ; no - set up RTN+2
532
533 ; Also, check to see if the IPA is running
534
535 000335' 606 01 0 00 000010 TRNN 1,MPRUN ; running?
536 000336' 254 00 0 00 000342' JRST CHKCSX ; no - continue
537 000337' 400 01 0 00 000000 SETZ 1, ; clear AC1
538 000340' 260 17 0 00 000010' GO LDCSR ; stop the port
539 000341' 037 00 0 00 002506' TMSGCD <[CSR cleared to stop the port]>
540 000342' 262 17 0 00 000001 CHKCSX: GET 1 ; restore AC1
541 000343' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 14
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0720
542
543 ;#********************************************************************
544 ;* IPASRT - Start the port at the address given in 'SADDR' and with
545 ;* initial parameters given in 'SDATA'.
546 ;
547 ; Arguments: SNEXT - Contains the start address desired.
548 ;
549 ; SDATA - Contains the data to be written to the CSR
550 ; registers to initialize everything correctly.
551 ;
552 ; Note: This routine is normally used in conjunction with IPASTP. IPASTP
553 ; saves the next address in SNEXT and the contents of CSR in SDATA.
554 ; Calling IPASRT after IPASTP has been called will leave the port
555 ; in the same state that it was, unless something is done to the
556 ; port between the calls.
557 ;
558 ; Procedure: (1) Obtain start address in 'SNEXT' and write it to the
559 ; RAR Register.
560 ;
561 ; (2) If SDATA is zero, no initial data is assumed. The
562 ; CSR is written as follows:
563 ;
564 ; Clear 'Single Cycle' - no single stepping apparently
565 ; is desired.
566 ; Set 'MPROC Run' - Start it up at address in RAR.
567 ; Set PIA bits to 4 - Allow interrupts on channel 4.
568 ; Clear all remaining bits.
569 ;
570 ; (3) If SDATA is non-zero, the initial data given in SDATA
571 ; is massaged to ensure that at least the following is
572 ; true of the data:
573 ;
574 ; 'Single Cycle' bit is cleared.
575 ; 'MPROC Run' bit is set.
576 ;
577 ; Return: +1 - Failed (Error reading/writing CSR Register).
578 ; +2 - Failed (Port already running).
579 ; +3 - Failed (Error bits set in CSR)
580 ; +4 - Ok
581 ;#********************************************************************
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 15
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0721
582
583 000344' 261 17 0 00 000000 IPASRT: RPUT (0,1) ; save AC's
584
585
586 ; First check if the port is already running
587
588 000346' 260 17 0 00 000060' GO RDCSR ; read CSR
589 000347' 254 00 0 00 000373' JRST IPASR3 ; error accessing CSR register
590 000350' 602 01 0 00 000010 TRNE 1,MPRUN ; uproc already running?
591 000351' 254 00 0 00 000372' JRST IPASR2 ; yes - exit +2 (error)
592
593 ; Check for error bits set
594
595 000352' 603 01 0 00 006000 TLNE 1,(CRAMPE!MBERR) ; error bits set?
596 000353' 254 00 0 00 000371' JRST IPASR1 ; yes - error exit
597
598 ; Now handle start address
599
600 000354' 622 01 0 00 200000 TRZE 1,TSTEBF ; 'Diag Test EBUF' bit set?
601 000355' 260 17 0 00 000010' GO LDCSR ; yes - clear it
602 000356' 200 01 0 00 000426' MOVE 1,SNEXT ; get start address
603 000357' 242 01 0 00 000001 LSH 1,1 ; position correctly
604 000360' 260 17 0 00 000021' GO LDRAR ; load the register
605
606 ; Set up data to write to CSR
607
608 000361' 336 01 0 00 000430' IPASR0: SKIPN 1,SDATA ; any data given?
609 000362' 201 01 0 00 000014 MOVEI 1,MPRUN!4 ; no - set initial data
610 000363' 620 01 0 00 020000 TRZ 1,SINCYC ; ensure SINCYC are cleared
611 000364' 660 01 0 00 040010 TRO 1,MPRUN!SELLAR ; ensure MPRUN,SELLAR are set
612 000365' 332 00 0 00 030037 SKIPE USER ; user mode?
613 000366' 620 01 0 00 000007 TRZ 1,7 ; yes - clear PI level bits
614
615 ; Write the data to CSR
616
617 000367' 260 17 0 00 000010' GO LDCSR
618 000370' 350 00 0 17 777776 AOS -2(P) ; ok exit (+4)
619 000371' 350 00 0 17 777776 IPASR1: AOS -2(P) ; error exit (+3)
620 000372' 350 00 0 17 777776 IPASR2: AOS -2(P) ; error exit (+2)
621 000373' 262 17 0 00 000001 IPASR3: RGET (1,0) ; error exit (+1)
622
623 000375' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 16
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0722
624
625 ;#********************************************************************
626 ;* IPASTP - Stop the port
627 ;
628 ; Arguments: None
629 ;
630 ; Procedure: Read the CSR Register.
631 ; Clear 'MPROC Run' bit.
632 ; Write this data to CSR.
633 ; Read the CSR Register and save data in SDATA.
634 ; Write 'DIAG Sel LAR' bit in CSR.
635 ; Read the LAR and save data in SNEXT.
636 ;
637 ; Return: +1 - Failed (Error reading/writing CSR Register).
638 ; +2 - Failed (Port not running).
639 ; +3 - Failed (Error bits set in CSR)
640 ; +4 - Ok, SDATA and SADDR have data at stopping point.
641 ;#********************************************************************
642
643 000376' 261 17 0 00 000000 IPASTP: RPUT (0,1) ; save AC's
644
645
646 ; First read CSR and verify that 'MPRUN' is set.
647
648 000400' 260 17 0 00 000060' GO RDCSR ; read CSR
649 000401' 254 00 0 00 000423' JRST IPAST3 ; failed - exit +1
650 000402' 606 01 0 00 000010 TRNN 1,MPRUN ; uproc running?
651 000403' 254 00 0 00 000422' JRST IPAST2 ; no - failed - exit +2
652
653 ; Check for error bits set
654
655 000404' 603 01 0 00 006000 TLNE 1,(CRAMPE!MBERR) ; error bits set?
656 000405' 254 00 0 00 000421' JRST IPAST1 ; yes - error exit
657
658 ; Then clear 'MPRUN'.
659
660 000406' 620 01 0 00 000010 TRZ 1,MPRUN ; clear 'MPROC Run' bit
661 000407' 260 17 0 00 000010' GO LDCSR ; write the CSR
662 000410' 260 17 0 00 000060' GO RDCSR ; read CSR
663 000411' 254 00 0 00 000423' JRST IPAST3 ; failed - exit
664 000412' 202 01 0 00 000430' MOVEM 1,SDATA ; save CSR at halt
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 17
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0723
665
666 ; Now read the stopping address (in LAR)
667
668 000413' 660 01 0 00 040000 TRO 1,SELLAR ; set 'Diag Sel LAR' bit
669 000414' 260 17 0 00 000010' GO LDCSR ; write it
670 000415' 260 17 0 00 000104' GO RDLAR ; read LAR
671 000416' 242 01 0 00 777777 LSH 1,-1 ; get LAR data
672 000417' 202 01 0 00 000426' MOVEM 1,SNEXT ; save the data
673
674 ; Exit
675
676 000420' 350 00 0 17 777776 AOS -2(P) ; ok exit (+4)
677 000421' 350 00 0 17 777776 IPAST1: AOS -2(P) ; error exit (+3)
678 000422' 350 00 0 17 777776 IPAST2: AOS -2(P) ; error exit (+2)
679 000423' 262 17 0 00 000001 IPAST3: RGET (1,0) ; error exit (+1)
680
681 000425' 263 17 0 00 000000 RTN ; return
682
683 ; Parameter locations
684
685 000426' 000000 000000 SNEXT: 0 ; next address
686 000427' 000000 000000 SLAST: 0 ; last address
687 000430' 000000 000000 SDATA: 0 ; contents of CSR at when stopped
688 000431' 000000 000000 EADDR: 0 ; correct stopping address
689 000432' 000000 000000 AADDR: 0 ; actual stopping address
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 18
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0724
690
691 ;#********************************************************************
692 ;* IPASST - Single step the port at the address given in 'SNEXT' and
693 ;* with initial parameters given in 'SDATA'.
694 ;
695 ; Arguments: SADDR - Contains the start address desired.
696 ;
697 ; SDATA - Contains the data to be written to the CSR
698 ; registers to initialize everything correctly.
699 ;
700 ; AC1 - 0 - Don't preserve EBUF data
701 ; -1 - Preserve EBUF data
702 ;
703 ; Procedure: (1) Start the port exactly as IPASRT would have, except
704 ; that 'Single Cycle' is set at the same time as
705 ; 'MPRUN'.
706 ;
707 ; (2) Successive calls to IPASST do as in (1), except
708 ; that SDATA is already set up and SNEXT is being
709 ; continually copied to SLAST and new contents of
710 ; the LAR are being put into SNEXT.
711 ;
712 ; Return: +1 - Failed (Error reading/writing CSR Register).
713 ; +2 - Failed (Port already running).
714 ; +3 - Failed (Error bits set in CSR)
715 ; +4 - Ok
716 ;#********************************************************************
717
718 000433' 261 17 0 00 000000 IPASST: RPUT (0,1) ; save AC's
719
720 000435' 202 01 0 00 003610' MOVEM 1,PRSFLG# ; save 'Preserve EBUF' flag
721
722 ; First check if the port is already running
723
724 000436' 260 17 0 00 000060' GO RDCSR ; read CSR register
725 000437' 254 00 0 00 000514' JRST IPASS4 ; error accessing CSR register
726 000440' 602 01 0 00 000010 TRNE 1,MPRUN ; uproc already running?
727 000441' 254 00 0 00 000513' JRST IPASS3 ; yes - exit +2 (error)
728
729 ; Check for error bits set
730
731 000442' 603 01 0 00 006000 TLNE 1,(CRAMPE!MBERR) ; error bits set?
732 000443' 254 00 0 00 000512' JRST IPASS2 ; yes - error exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 19
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0725
733
734 ; Now handle start address
735
736 000444' 606 01 0 00 200000 TRNN 1,TSTEBF ; 'Diag Test EBUF' bit set?
737 000445' 254 00 0 00 000450' JRST .+3 ; no - continue
738 000446' 620 01 0 00 200000 TRZ 1,TSTEBF ; make sure 'Diag Test EBUF' bit
739 000447' 260 17 0 00 000010' GO LDCSR ; is cleared in CSR Register
740 000450' 200 01 0 00 000426' MOVE 1,SNEXT ; get start address
741 000451' 242 01 0 00 000001 LSH 1,1 ; position correctly
742 000452' 260 17 0 00 000021' GO LDRAR ; load the register
743
744 ; Set up data to write to CSR
745
746 000453' 336 01 0 00 000430' IPASS0: SKIPN 1,SDATA ; any data given?
747 000454' 201 01 0 00 000014 MOVEI 1,MPRUN!4 ; no - set initial data
748 000455' 660 01 0 00 060010 TRO 1,SELLAR!MPRUN!SINCYC ; ensure MPRUN,SELLAR,SINCYC are set
749 000456' 332 00 0 00 030037 SKIPE USER ; user mode?
750 000457' 620 01 0 00 000007 TRZ 1,7 ; yes - clear PI level bits
751
752 ; Do the single step
753
754 000460' 260 17 0 00 000010' GO LDCSR ; write the data
755
756 ; Read CSR
757
758 000461' 260 17 0 00 000060' GO RDCSR ; read CSR
759 000462' 255 00 0 00 000000 JFCL ; ignore error
760 000463' 202 01 0 00 000430' MOVEM 1,SDATA ; save it
761
762 ; Save EBUF contents
763
764 000464' 331 00 0 00 003610' SKIPL PRSFLG ; preserve EBUF data?
765 000465' 254 00 0 00 000475' JRST IPASS1 ; no - continue
766 000466' 660 01 0 00 200000 TRO 1,TSTEBF ; set 'Diag Test EBUF'
767 000467' 260 17 0 00 000010' GO LDCSR ; write it
768 000470' 260 17 0 00 000050' GO RDEBUF ; read the EBUF
769 000471' 202 01 0 00 003612' MOVEM 1,SAVEBF# ; save EBUF data
770 000472' 200 01 0 00 000430' MOVE 1,SDATA ; get CSR data
771 000473' 620 01 0 00 200000 TRZ 1,TSTEBF ; set 'Diag Test EBUF'
772 000474' 260 17 0 00 000010' GO LDCSR ; write it
773
774 ; Read LAR
775
776 000475' 200 00 0 00 000426' IPASS1: MOVE SNEXT ; get original next address
777 000476' 202 00 0 00 000427' MOVEM SLAST ; save in last address
778 000477' 260 17 0 00 000104' GO RDLAR ; read LAR register
779 000500' 242 01 0 00 777777 LSH 1,-1 ; get LAR data
780 000501' 202 01 0 00 000426' MOVEM 1,SNEXT ; set up new next address
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 20
DFNIAI MAC 1-Nov-83 18:03 Port Specific Utility Routines SEQ 0726
781
782 ; Restore EBUF
783
784 000502' 200 01 0 00 000430' MOVE 1,SDATA ; get CSR data back
785 000503' 660 01 0 00 200000 TRO 1,TSTEBF ; set 'Diag Test EBUF'
786 000504' 260 17 0 00 000010' GO LDCSR ; write it
787 000505' 200 01 0 00 003612' MOVE 1,SAVEBF ; restore EBUF data
788 000506' 260 17 0 00 000000' GO LDEBUF ; write the EBUF
789 000507' 200 01 0 00 000430' MOVE 1,SDATA ; get CSR data back
790 000510' 260 17 0 00 000010' GO LDCSR ; write it
791
792 000511' 350 00 0 17 777776 AOS -2(P) ; ok exit (+4)
793 000512' 350 00 0 17 777776 IPASS2: AOS -2(P) ; error exit (+3)
794 000513' 350 00 0 17 777776 IPASS3: AOS -2(P) ; error exit (+2)
795 000514' 262 17 0 00 000001 IPASS4: RGET (1,0) ; error exit (+1)
796
797 000516' 263 17 0 00 000000 RTN ; return
798
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 21
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0727
799 SUBTTL PI System Routines
800
801 ;#********************************************************************
802 ;* INITPI - Initialize and Turn On PI System
803 ;
804 ; In exec mode only. Turn on PI system with all channels activated.
805 ; Also, write PI level bits to 0's for all other RH's to ensure that
806 ; only the port interrupts.
807 ;#********************************************************************
808
809 000517' 332 00 0 00 030037 INITPI: SKIPE USER ; user mode?
810 000520' 263 17 0 00 000000 RTN ; yes - exit
811 000521' 261 17 0 00 000001 PUT 1 ; save AC1
812 000522' 7 004 20 0 00 010000 CONO PI,PICLR ; clear PI system
813
814 ; Set PI level bits to zero for each RH slot
815
816 000523' 7 540 20 0 00 000000 CONO 540,0 ; set PIA level bits to 0
817 000524' 7 544 20 0 00 000000 CONO 544,0 ; set PIA level bits to 0
818 000525' 7 550 20 0 00 000000 CONO 550,0 ; set PIA level bits to 0
819 000526' 7 554 20 0 00 000000 CONO 554,0 ; set PIA level bits to 0
820 000527' 7 560 20 0 00 000000 CONO 560,0 ; set PIA level bits to 0
821 000530' 7 570 20 0 00 000000 CONO 570,0 ; set PIA level bits to 0
822 000531' 7 574 20 0 00 000000 CONO 574,0 ; set PIA level bits to 0
823
824 ; Finally activate all channels and turn on the PI system
825
826 000532' 7 004 20 0 00 002177 INITP0: CONO PI,2177 ; activate all channels
827 000533' 7 004 20 0 00 000200 CONO PI,PION ; turn on PI system
828 000534' 261 17 0 00 000000 PUT 0 ; save AC0
829 000535' 200 00 0 00 002515' MOVE [INTNUM,,INTNUM+1] ; build BLT pointer
830 000536' 251 00 0 00 001330' BLT INTEND ; clear interrupt history data
831 000537' 262 17 0 00 000000 RGET (0,1) ; restore AC's
832
833 000541' 263 17 0 00 000000 RTN ; return
834
835 ; Clear PI system after returning from DDT
836
837 000542' 332 00 0 00 030037 INITPD: SKIPE USER ; user mode?
838 000543' 263 17 0 00 000000 RTN ; yes - exit
839 000544' 7 004 20 0 00 010000 CONO PI,PICLR ; clear PI system
840 000545' 254 00 0 00 000532' JRST INITP0 ; continue
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 22
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0728
841
842 ;#********************************************************************
843 ;* .PIOFF - Detach port from PI system
844 ;#********************************************************************
845
846 000546' 332 00 0 00 030037 .PIOFF: SKIPE USER ; user mode?
847 000547' 263 17 0 00 000000 RTN ; yes - return
848 000550' 261 17 0 00 000001 PUT 1 ; save AC1
849 000551' 260 17 0 00 000574' GO PISYOF ; no - turn off PI system
850 000552' 260 17 0 00 000060' GO RDCSR ; read CSR
851 000553' 255 00 0 00 000000 JFCL ; error return
852 000554' 620 01 0 00 000007 TRZ 1,7 ; clear PIA bits in CSR
853 000555' 260 17 0 00 000010' GO LDCSR ; write the bit
854 000556' 262 17 0 00 000001 GET 1 ; restore AC1
855 000557' 263 17 0 00 000000 RTN ; exit
856
857
858 ;#********************************************************************
859 ;* .PION - Attach port to PI system (Channel 4)
860 ;#********************************************************************
861
862 000560' 332 00 0 00 030037 .PION: SKIPE USER ; user mode?
863 000561' 263 17 0 00 000000 RTN ; yes - exit
864 000562' 261 17 0 00 000001 PUT 1 ; save AC1
865 000563' 260 17 0 00 000574' GO PISYOF ; turn PI system off
866 000564' 260 17 0 00 000060' GO RDCSR ; read CSR
867 000565' 255 00 0 00 000000 JFCL ; error return
868 000566' 620 01 0 00 000007 TRZ 1,7 ; clear PIA bits
869 000567' 660 01 0 00 000004 TRO 1,4 ; set PI level 4
870 000570' 260 17 0 00 000010' GO LDCSR ; write the bit
871 000571' 260 17 0 00 000577' GO PISYON ; turn PI system back on
872 000572' 262 17 0 00 000001 GET 1 ; restore AC
873 000573' 263 17 0 00 000000 RTN ; exit
874
875
876 ;#********************************************************************
877 ;* PISYOF - Turn PI system off
878 ;#********************************************************************
879
880 000574' 336 00 0 00 030037 PISYOF: SKIPN USER ; user mode?
881 000575' 7 004 20 0 00 000400 CONO PI,PIOFF ; no - turn it off
882 000576' 263 17 0 00 000000 RTN ; exit
883
884
885 ;#********************************************************************
886 ;* PISYON - Turn PI system on
887 ;#********************************************************************
888
889 000577' 336 00 0 00 030037 PISYON: SKIPN USER ; user mode?
890 000600' 7 004 20 0 00 002300 CONO PI,2300 ; no - turn on PI system
891 000601' 263 17 0 00 000000 RTN ; and exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 23
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0729
892
893 ;#********************************************************************
894 ;* SETVEC - Set up interrupt vectors for an port under test
895 ;#********************************************************************
896
897 000602' 402 00 0 00 001356' SETVEC: SETZM .INWD1 ; clear special interrupt data
898 000603' 332 00 0 00 030037 SKIPE USER ; user mode?
899 000604' 263 17 0 00 000000 RTN ; yes - exit
900 000605' 261 17 0 00 000000 RPUT (0,1) ; save AC's
901
902 000607' 200 00 0 00 002516' MOVE [JSR VIINT] ; get trap instruction (Vectored Int)
903 000610' 200 01 0 00 001367' MOVE 1,ICWA0+7 ; get initial address of log area
904 000611' 271 01 0 00 000003 ADDI 1,3 ; calculate address of 4th word
905 000612' 270 01 0 00 001372' ADD 1,CBASE ; add special page number
906 000613' 202 00 0 01 000000 MOVEM (1) ; put in 4th word of logout area
907 000614' 200 01 0 00 000622' MOVE 1,IVADDR
908 000615' 260 17 0 00 000623' GO SET2N ; set up 40+2N transfer addresses
909 000616' 476 00 0 00 001067' SETOM INTNUM ; initialize interrupt count
910 000617' 262 17 0 00 000001 RGET (1,0) ; restore AC's
911
912 000621' 263 17 0 00 000000 RTN
913
914 000622' 000000 000000 IVADDR: 0 ; interrupt vector address for port
915
916
917 ;#********************************************************************
918 ;* SET2N - Set up 40 + 2N locations with interrupt dispatch instruction
919 ;#********************************************************************
920
921 000623' 261 17 0 00 000000 SET2N: PUT ; save AC0
922 000624' 200 00 0 00 002517' MOVE [JSR NVIIN1] ; channel 1
923 000625' 202 00 0 00 000042 MOVEM 42
924 000626' 200 00 0 00 002520' MOVE [JSR NVIIN2] ; channel 2
925 000627' 202 00 0 00 000044 MOVEM 44
926 000630' 200 00 0 00 002521' MOVE [JSR NVIIN3] ; channel 3
927 000631' 202 00 0 00 000046 MOVEM 46
928 000632' 200 00 0 00 002522' MOVE [JSR NVIIN4] ; channel 4
929 000633' 202 00 0 00 000050 MOVEM 50
930 000634' 200 00 0 00 002523' MOVE [JSR NVIIN5] ; channel 5
931 000635' 202 00 0 00 000052 MOVEM 52
932 000636' 200 00 0 00 002524' MOVE [JSR NVIIN6] ; channel 6
933 000637' 202 00 0 00 000054 MOVEM 54
934 000640' 200 00 0 00 002525' MOVE [JSR NVIIN7] ; channel 7
935 000641' 202 00 0 00 000056 MOVEM 56
936 000642' 262 17 0 00 000000 GET ; restore AC0
937 000643' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 24
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0730
938
939 ;#********************************************************************
940 ;* VIINT - Vectored interrupt (Port)
941 ;
942 ; This routine (and NVIINx) do the following:
943 ;
944 ; - CONI PI and save it
945 ; - Shut off PI system
946 ; - Increment interrupt offset (not to exceed 20 interrupts)
947 ; - Save interrupt data
948 ; - Exit with a JEN after turning PI system back on
949 ;
950 ; Interrupt data maintained:
951 ;
952 ; INTPC - PC interrupted from
953 ; INTTYP - Type 0,,0 - Vectored (If overflow occurred
954 ; 0,,n - Non-vectored channel N the left half is -1)
955 ; INTCON - CONI PI data
956 ; INTAPR - CONI APR data
957 ; INTTIM - Time of interrupt (in msec)
958 ; INTUSE - Time of interrupt (addl time in usec)
959 ; INTCSR - CSR data on interrrupt
960 ; INTNNN - Interrupt #
961 ;
962 ; The index into these tables is saved in INTNUM.
963 ;#********************************************************************
964
965 000644' 000000 000000 VIINT: 0 ; flags and PC get stored here
966 000645' 7 004 24 0 00 003614' CONI PI,VIIPI# ; save CONI PI data
967 000646' 7 004 20 0 00 000400 CONO PI,PIOFF ; no - turn off PI system
968 000647' 261 17 0 00 000000 RPUT (0,1,2,3,$SVUUO,$SVUPC) ; save some stuff
969
970
971 ; Save interrupt data
972
973 000655' 400 00 0 00 000000 SETZ ; initialized interrupt type
974 000656' 350 01 0 00 001067' AOS 1,INTNUM ; increment interrupt number
975 000657' 301 01 0 00 000024 CAIL 1,^D20 ; exceed maximum?
976 000660' 505 00 0 00 777777 HRLI 777777 ; yes - flag such
977 000661' 301 01 0 00 000024 CAIL 1,^D20 ; exceed maximum?
978 000662' 201 01 0 00 000023 MOVEI 1,^D19 ; yes - limit to 20 entries
979 000663' 202 00 0 01 001114' MOVEM INTTYP(1) ; save interrupt type
980 000664' 200 00 0 00 001067' MOVE INTNUM ; get interrupt number
981 000665' 202 00 0 01 001304' MOVEM INTNNN(1) ; save it
982 000666' 200 00 0 00 000644' MOVE VIINT ; get interrupt PC
983 000667' 202 00 0 01 001070' MOVEM INTPC(1) ; save it
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 25
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0731
984 000670' 200 00 0 00 003614' MOVE VIIPI ; get CONI PI data
985 000671' 202 00 0 01 001140' MOVEM INTCON(1) ; save it
986 000672' 7 000 24 0 00 000000 CONI APR,0 ; get CONI APR data
987 000673' 202 00 0 01 001164' MOVEM INTAPR(1) ; save it
988 000674' 400 03 0 00 000000 SETZ 3, ; set up for getting time
989 000675' 260 17 0 00 000000* GO RUNTME ; get current time
990 000676' 200 00 0 00 000000* MOVE DEBTIM ; get time in milliseconds
991 000677' 202 00 0 01 001210' MOVEM INTTIM(1) ; save it
992 000700' 200 00 0 00 000000* MOVE USTIM ; get addl time in microseconds
993 000701' 202 00 0 01 001234' MOVEM INTUSE(1) ; save it
994
995 ; Exit after turning on PI system (if not refusing them anymore)
996
997 000702' 200 00 0 01 001304' MOVE INTNNN(1) ; get interrupt number
998 000703' 307 00 0 00 020000 CAIG 20000 ; more than 20000 interrupts?
999 000704' 260 17 0 00 000560' GO .PION ; no - turn on PI system
1000 000705' 303 00 0 00 020000 CAILE 20000 ; more than 20000 interrupts?
1001 000706' 476 00 0 00 001356' SETOM .INWD1 ; yes - indicate such
1002 000707' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,3,2,1,0) ; restore stuff
1003
1004 000715' 254 12 1 00 000644' JEN @VIINT ; release interrupt and return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 26
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0732
1005
1006 ;#********************************************************************
1007 ;* NVIINx - Non-Vectored interrupt (Port)
1008 ;#********************************************************************
1009
1010 000716' 000000 000000 NVIIN1: 0 ; for PC+flags
1011 000717' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1012 000720' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1013 000721' 261 17 0 00 000000 PUT 0 ; save AC0
1014 000722' 200 00 0 00 000716' MOVE NVIIN1 ; get interrupt PC
1015 000723' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1016 000724' 201 00 0 00 000001 MOVEI 1 ; set up interrupt type
1017 000725' 254 00 0 00 001006' JRST NVIINC ; go to common handling
1018
1019 000726' 000000 000000 NVIIN2: 0 ; for PC+flags
1020 000727' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1021 000730' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1022 000731' 261 17 0 00 000000 PUT 0 ; save AC0
1023 000732' 200 00 0 00 000726' MOVE NVIIN2 ; get interrupt PC
1024 000733' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1025 000734' 201 00 0 00 000002 MOVEI 2 ; set up interrupt type
1026 000735' 254 00 0 00 001006' JRST NVIINC ; go to common handling
1027
1028 000736' 000000 000000 NVIIN3: 0 ; for PC+flags
1029 000737' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1030 000740' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1031 000741' 261 17 0 00 000000 PUT 0 ; save AC0
1032 000742' 200 00 0 00 000736' MOVE NVIIN3 ; get interrupt PC
1033 000743' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1034 000744' 201 00 0 00 000003 MOVEI 3 ; set up interrupt type
1035 000745' 254 00 0 00 001006' JRST NVIINC ; go to common handling
1036
1037 000746' 000000 000000 NVIIN4: 0 ; for PC+flags
1038 000747' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1039 000750' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1040 000751' 261 17 0 00 000000 PUT 0 ; save AC0
1041 000752' 200 00 0 00 000746' MOVE NVIIN4 ; get interrupt PC
1042 000753' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1043 000754' 201 00 0 00 000004 MOVEI 4 ; set up interrupt type
1044 000755' 254 00 0 00 001006' JRST NVIINC ; go to common handling
1045
1046 000756' 000000 000000 NVIIN5: 0 ; for PC+flags
1047 000757' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1048 000760' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1049 000761' 261 17 0 00 000000 PUT 0 ; save AC0
1050 000762' 200 00 0 00 000756' MOVE NVIIN5 ; get interrupt PC
1051 000763' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1052 000764' 201 00 0 00 000005 MOVEI 5 ; set up interrupt type
1053 000765' 254 00 0 00 001006' JRST NVIINC ; go to common handling
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 27
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0733
1054
1055 000766' 000000 000000 NVIIN6: 0 ; for PC+flags
1056 000767' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1057 000770' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1058 000771' 261 17 0 00 000000 PUT 0 ; save AC0
1059 000772' 200 00 0 00 000766' MOVE NVIIN6 ; get interrupt PC
1060 000773' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1061 000774' 201 00 0 00 000006 MOVEI 6 ; set up interrupt type
1062 000775' 254 00 0 00 001006' JRST NVIINC ; go to common handling
1063
1064 000776' 000000 000000 NVIIN7: 0 ; for PC+flags
1065 000777' 7 004 24 0 00 003614' CONI PI,VIIPI ; save CONI PI data
1066 001000' 7 004 20 0 00 000400 CONO PI,PIOFF ; turn off PI system
1067 001001' 261 17 0 00 000000 PUT 0 ; save AC0
1068 001002' 200 00 0 00 000776' MOVE NVIIN7 ; get interrupt PC
1069 001003' 202 00 0 00 001066' MOVEM NVJEN ; save it for JEN
1070 001004' 201 00 0 00 000007 MOVEI 7 ; set up interrupt type
1071 001005' 254 00 0 00 001006' JRST NVIINC ; go to common handling
1072
1073 ; Save AC's and calculate interrupt number
1074
1075 001006' 261 17 0 00 000001 NVIINC: RPUT (1,2,3,$SVUUO,$SVUPC) ; save some stuff
1076
1077 001013' 350 02 0 00 001067' AOS 2,INTNUM ; increment interrupt number
1078 001014' 301 02 0 00 000024 CAIL 2,^D20 ; exceed maximum?
1079 001015' 505 00 0 00 777777 HRLI 777777 ; yes - flag such
1080 001016' 301 02 0 00 000024 CAIL 2,^D20 ; exceed maximum?
1081 001017' 201 02 0 00 000023 MOVEI 2,^D19 ; yes - limit to 20 entries
1082
1083 ; Save interrupt data
1084
1085 001020' 202 00 0 02 001114' MOVEM INTTYP(2) ; save interrupt type
1086 001021' 200 00 0 00 001067' MOVE INTNUM ; get interrupt number
1087 001022' 202 00 0 02 001304' MOVEM INTNNN(2) ; save interrupt number
1088 001023' 200 00 0 00 001066' MOVE NVJEN ; get interrupt PC
1089 001024' 202 00 0 02 001070' MOVEM INTPC(2) ; save it
1090 001025' 200 00 0 00 003614' MOVE VIIPI ; get CONI PI data
1091 001026' 202 00 0 02 001140' MOVEM INTCON(2) ; save it
1092 001027' 7 000 24 0 00 000000 CONI APR,0 ; get CONI APR data
1093 001030' 202 00 0 02 001164' MOVEM INTAPR(2) ; save it
1094 001031' 260 17 0 00 000060' GO RDCSR ; read CSR register
1095 001032' 255 00 0 00 000000 JFCL ; ignore error
1096 001033' 202 01 0 02 001260' MOVEM 1,INTCSR(2) ; save data
1097 001034' 400 03 0 00 000000 SETZ 3, ; set up for getting time
1098 001035' 260 17 0 00 000675* GO RUNTME ; get current time
1099 001036' 200 00 0 00 000676* MOVE DEBTIM ; get time in milliseconds
1100 001037' 202 00 0 02 001210' MOVEM INTTIM(2) ; save it
1101 001040' 200 00 0 00 000700* MOVE USTIM ; get addl time in microseconds
1102 001041' 202 00 0 02 001234' MOVEM INTUSE(2) ; save it
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 28
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0734
1103
1104 ; Save special interrupt data if necessary
1105
1106 001042' 400 03 0 00 000000 SETZ 3, ; clear LAR data
1107 001043' 603 01 0 00 004000 TLNE 1,(CRAMPE) ; CRAM PE occurred?
1108 GO [TLZ 1,(CRAMPE) ; yes - clear it and read
1109 TRO 1,SELLAR!EBUSPE ; LAR
1110 GO LDCSR
1111 GO RDLAR
1112 MOVE 3,1
1113 001044' 260 17 0 00 002526' RTN]
1114 001045' 603 01 0 00 002000 TLNE 1,(MBERR) ; MBUS Error occurred?
1115 GO [GO IPACLR ; yes - clear it and read
1116 MOVEI 1,SELLAR ; LAR
1117 GO LDCSR
1118 GO RDLAR
1119 MOVE 3,1
1120 001046' 260 17 0 00 002534' RTN]
1121 001047' 607 01 0 00 006000 TLNN 1,(CRAMPE!MBERR) ; interrupt bits in CSR set?
1122 001050' 602 01 0 00 007200 TRNE 1,EBUSPE!FQUERR!MVRERR!RESQAV
1123 GO [MOVE 1,INTCSR(2) ; yes - save special interrupt data
1124 MOVEM 1,.INWD1
1125 MOVEM 3,.INWD2
1126 001051' 260 17 0 00 002542' RTN]
1127
1128 ; Turn back on PI system and dismiss interrupt
1129
1130 001052' 200 00 0 02 001304' MOVE INTNNN(2) ; get interrupt number
1131 001053' 307 00 0 00 020000 CAIG 20000 ; more than 20000 interrupts?
1132 001054' 260 17 0 00 000560' GO .PION ; no - turn on PI system
1133 001055' 303 00 0 00 020000 CAILE 20000 ; more than 20000 interrupts?
1134 001056' 476 00 0 00 001356' SETOM .INWD1 ; yes - indicate such
1135 001057' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,3,2,1,0) ; restore stuff
1136
1137 001065' 254 12 1 00 001066' JEN @NVJEN ; release interrupt and return
1138
1139 001066' 000000 000000 NVJEN: 0
1140
1141 ; Interrupt data storage
1142
1143 001067' 000000 000000 INTNUM: 0
1144
1145 001070' INTPC: BLOCK ^D20
1146 001114' INTTYP: BLOCK ^D20
1147 001140' INTCON: BLOCK ^D20
1148 001164' INTAPR: BLOCK ^D20
1149 001210' INTTIM: BLOCK ^D20
1150 001234' INTUSE: BLOCK ^D20
1151 001260' INTCSR: BLOCK ^D20
1152 001304' INTNNN: BLOCK ^D20
1153 001330' 000000 000000 INTEND: 0
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 29
DFNIAI MAC 1-Nov-83 18:03 PI System Routines SEQ 0735
1154
1155 ;#********************************************************************
1156 ;* .INPNT - Print special interrupt data
1157 ;#********************************************************************
1158
1159 001331' 336 00 0 00 001356' .INPNT: SKIPN .INWD1 ; any interrupt data saved yet?
1160 001332' 263 17 0 00 000000 RTN ; no - return
1161 001333' 261 17 0 00 000000 RPUT (0,1) ; save AC's
1162
1163 001335' 200 01 0 00 001356' MOVE 1,.INWD1 ; get CSR data
1164 001336' 316 01 0 00 002546' CAMN 1,[-1] ; over 20000 interrupts?
1165 JRST [TMSGCD <[More than 20000 interrupts - PI system shut off]>
1166 001337' 254 00 0 00 002562' JRST .INPNX]
1167 001340' 603 01 0 00 004000 TLNE 1,(CRAMPE) ; CRAM PE?
1168 JRST [TMSGC <[CRAM PE at > ; yes - print such
1169 MOVE .INWD2
1170 LSH -1
1171 PNTOCS
1172 TMSGD <]>
1173 001341' 254 00 0 00 002567' JRST .INPNX]
1174 001342' 603 01 0 00 002000 TLNE 1,(MBERR) ; MBUS Error?
1175 JRST [TMSGC <[MBUS ERR at > ; yes - print such
1176 MOVE .INWD2
1177 LSH -1
1178 PNTOCS
1179 TMSGD <]>
1180 001343' 254 00 0 00 002601' JRST .INPNX]
1181 001344' 602 01 0 00 004000 TRNE 1,EBUSPE ; EBUS PE?
1182 JRST [TMSGCD <[EBUS PE]> ; yes - print such
1183 001345' 254 00 0 00 002612' JRST .INPNX]
1184 001346' 602 01 0 00 002000 TRNE 1,FQUERR ; FQ Error?
1185 JRST [TMSGCD <[FreeQ Error]> ; yes - print such
1186 001347' 254 00 0 00 002620' JRST .INPNX]
1187 001350' 602 01 0 00 001000 TRNE 1,MVRERR ; DP Error?
1188 JRST [TMSGCD <[Data Path Error]> ; yes - print such
1189 001351' 254 00 0 00 002627' JRST .INPNX]
1190
1191 ; Exit
1192
1193 001352' 402 00 0 00 001356' .INPNX: SETZM .INWD1 ; clear initial word
1194 001353' 262 17 0 00 000001 RGET (1,0) ; restore AC's
1195
1196 001355' 263 17 0 00 000000 RTN ; return
1197
1198 ; Special interrupt data
1199
1200 001356' 000000 000000 .INWD1: 0 ; CSR data
1201 001357' 000000 000000 .INWD2: 0 ; LAR data
1202
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 30
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0736
1203 SUBTTL Channel Handling Routines
1204
1205 ;#*********************************************************************
1206 ;* Routines To Interface With A Channel
1207 ;
1208 ; There are 4 routines available for interfacing with a data channel.
1209 ;
1210 ; CHINIT - Initialize hardware and software. This routine sets up
1211 ; the 3 word data transfer needed by the port microcode
1212 ; when starting up.
1213 ; GETLOG - Snapshot logout data to a buffer area
1214 ; LOGPNT - Print channel logout data
1215 ; CCWPNT - Print the CCW list located in the PCB at location PCB+32.
1216 ;
1217 ; Notes On Initial Control Word Addr:
1218 ;
1219 ; With each controller is an associated channel #. The channel routines
1220 ; default to the following (exec mode) initial control word addresses
1221 ; for each of the channels.
1222 ;
1223 ; TYPE DEV. CODE CHAN # ICW-ADR
1224 ; ---- --------- ------ -------
1225 ; RH20 540 0 000(ICWA0)
1226 ; RH20 544 1 004(ICWA1)
1227 ; RH20 550 2 010(ICWA2)
1228 ; RH20 554 3 014(ICWA3)
1229 ; RH20 560 4 020(ICWA4)
1230 ; NIPort 564 5 024(ICWA5)
1231 ; RH20 570 6 030(ICWA6)
1232 ; CIPort 574 7 034(ICWA7)
1233 ;#*********************************************************************
1234
1235 ; Initial control word addr for each channel
1236
1237 001360' 000000 000000 ICWA0: 0
1238 001361' 000000 000004 ICWA1: 4
1239 001362' 000000 000010 ICWA2: 10
1240 001363' 000000 000014 ICWA3: 14
1241 001364' 000000 000020 ICWA4: 20
1242 001365' 000000 000024 ICWA5: 24
1243 001366' 000000 000030 ICWA6: 30
1244 001367' 000000 000034 ICWA7: 34
1245
1246 ; Miscellaneous channel locations
1247
1248 001370' 000000 000000 EPTJMP: 0 ; jump word for EPT
1249 001371' 000000 000000 EPTADR: 0 ; address of EPT location
1250 001372' 000000 000000 CBASE: 0 ; a base for computing ICWA in RH20
1251 ; the 340000 causes paging
1252 001373' LOGBUF: BLOCK 4 ; logout area
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 31
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0737
1253
1254 ;#*********************************************************************
1255 ;* CHINIT - Channel Initialization Routine
1256 ;
1257 ; This routine synchronizes software and hardware channel logic
1258 ; specifically for use by the port. The CCW list is assumed to
1259 ; be a 1 word list located at PCB+32 always.
1260 ;#************************************************************
1261
1262 001377' 261 17 0 00 000000 CHINIT: RPUT (0,1,2,3) ; save AC's
1263
1264
1265 ; Initialize port, set up PCB
1266
1267 001403' 260 17 0 00 000252' GO IPACLR ; clear port
1268 001404' 260 17 0 00 000000* GO TPCB ; set up PCB correctly
1269 001405' 332 00 0 00 000176* SKIPE UDEBUG ; special debug mode?
1270 001406' 254 00 0 00 001503' JRST CHINX ; yes - exit
1271 001407' 336 00 0 00 030037 SKIPN USER ; user mode?
1272 001410' 254 00 0 00 001470' JRST CHIN3 ; no - go handle
1273
1274 ; First build the EPT jump word to point the the CCW in the PCB
1275
1276 001411' 135 01 0 00 002631' LDB 1,[POINT 3,MBCN,9] ; get channel number
1277 001412' 200 01 0 01 001360' MOVE 1,ICWA0(1) ; get ICWA for channel
1278 001413' 7 010 24 0 00 000002 CONI PAG,2 ; get page number of EPT
1279 001414' 242 02 0 00 000011 LSH 2,9 ; position correctly
1280 001415' 621 02 0 00 777777 TLZ 2,777777 ; clear left half
1281 001416' 270 01 0 00 000002 ADD 1,2 ; add in EPT offset
1282 001417' 202 01 0 00 001371' MOVEM 1,EPTADR ; save address of EPT location
1283 001420' 201 02 0 00 000000# MOVEI 2,PCB+27 ; get buffer address
1284 001421' 257 02 0 02 000000 MAP 2,(2) ; map to physical
1285 001422' 621 02 0 00 777000 TLZ 2,777000 ; get rid of misc bits
1286 001423' 661 02 0 00 200000 TLO 2,200000 ; make into a jump CCW
1287 001424' 202 02 0 00 001370' MOVEM 2,EPTJMP ; save the jump word
1288
1289 ; Save CRAM locations 0-17
1290
1291 001425' 201 02 0 00 001510' MOVEI 2,CHCRAM ; get address of storage area
1292 001426' 200 03 0 00 002632' MOVE 3,[-^D16,,0] ; set up AOBJN word
1293 001427' 552 03 0 00 000000* CHIN1: HRRZM 3,CADDR ; set up CRAM address
1294 001430' 260 17 0 00 000000* GO DRCRAM ; read CRAM location
1295 001431' 120 00 0 00 000000* DMOVE CWORDL ; get location
1296 001432' 124 00 0 02 000000 DMOVEM (2) ; save it
1297 001433' 271 02 0 00 000002 ADDI 2,2 ; point to next location
1298 001434' 253 03 0 00 001427' AOBJN 3,CHIN1 ; loop till done
1299
1300 ; Load special microcode
1301
1302 001435' 201 01 0 00 001550' MOVEI 1,MWEPT ; get microcode address
1303 001436' 260 17 0 00 000000* GO MLOADN ; load the microcode
1304 001437' 037 00 0 00 002633' TMSGCD <? Error loading microcode - continuing ...>
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 32
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0738
1305
1306 ; Start it up and give the port the special data
1307
1308 001440' 400 01 0 00 000000 SETZ 1, ; get start address
1309 001441' 260 17 0 00 000021' GO LDRAR ; load the register
1310 001442' 201 01 0 00 000010 MOVEI 1,MPRUN ; set initial data
1311 001443' 260 17 0 00 000010' GO LDCSR
1312 001444' 200 01 0 00 001370' MOVE 1,EPTJMP ; get data
1313 001445' 260 17 0 00 000157' GO .DATAO ; do the first DATAO
1314 001446' 200 01 0 00 001371' MOVE 1,EPTADR ; get EPT address
1315 001447' 661 01 0 00 450000 TLO 1,450000 ; make IOP function word
1316 001450' 202 01 0 00 003605' MOVEM 1,EPTIOP# ; save it
1317 001451' 260 17 0 00 000157' GO .DATAO ; do the 2nd DATAO
1318 001452' 400 01 0 00 000000 SETZ 1,
1319 001453' 260 17 0 00 000010' GO LDCSR ; stop the port
1320
1321 ; Restore CRAM locations
1322
1323 001454' 261 17 0 00 000000* PUT PARFLG ; save parity flag
1324 001455' 402 00 0 00 001454* SETZM PARFLG ; don't calculate parity
1325 001456' 201 02 0 00 001510' MOVEI 2,CHCRAM ; get address of storage area
1326 001457' 200 03 0 00 002632' MOVE 3,[-^D16,,0] ; set up AOBJN word
1327 001460' 552 03 0 00 001427* CHIN2: HRRZM 3,CADDR ; set up CRAM address
1328 001461' 120 00 0 02 000000 DMOVE (2) ; save it
1329 001462' 124 00 0 00 001431* DMOVEM CWORDL ; get location
1330 001463' 260 17 0 00 000000* GO DWCRAM ; read CRAM location
1331 001464' 271 02 0 00 000002 ADDI 2,2 ; point to next location
1332 001465' 253 03 0 00 001460' AOBJN 3,CHIN2 ; loop till done
1333 001466' 262 17 0 00 001455* GET PARFLG ; restore parity flag
1334 001467' 254 00 0 00 001476' JRST CHIN4 ; exit
1335
1336 ; First build the EPT jump word to point the the CCW in the PCB
1337
1338 001470' 135 01 0 00 002631' CHIN3: LDB 1,[POINT 3,MBCN,9] ; get channel number
1339 001471' 200 01 0 01 001360' MOVE 1,ICWA0(1) ; get ICWA for channel
1340 001472' 270 01 0 00 001372' ADD 1,CBASE ; no - get paged EPT address
1341 001473' 202 01 0 00 001371' MOVEM 1,EPTADR ; save address of EPT location
1342 001474' 200 02 0 00 002645' MOVE 2,[200000,,PCB+27] ; get jump CCW
1343 001475' 202 02 0 01 000000 MOVEM 2,(1) ; store in EPT location
1344
1345 ; Set up initial CCW list
1346
1347 001476' 201 01 0 00 000000# CHIN4: MOVEI 1,PCB+24 ; get PCB address
1348 001477' 257 01 0 01 000000 MAP 1,(1) ; map to physical
1349 001500' 621 01 0 00 777000 TLZ 1,777000 ; get rid of misc bits
1350 001501' 661 01 0 00 600060 TLO 1,600060 ; make into a 3 word transfer
1351 001502' 202 01 0 00 000000# MOVEM 1,PCB+27 ; save in PCB
1352
1353 ; Done - exit
1354
1355 001503' 262 17 0 00 000003 CHINX: RGET (3,2,1,0) ; restore AC's
1356
1357 001507' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 33
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0739
1358
1359 ; CRAM storage - locations 0-17
1360
1361 001510' CHCRAM: BLOCK ^D32
1362
1363 ; First, read the CCW Jump word into R17
1364
1365 001550' 000000 010000 MWEPT: MWORD <ADDR=0,JMAP,J=1> ; 0
1366 001551' 000000 000040
1367 001552' 000100 030000 MWORD <CJP,J=3,CENA,CCER> ; 1
1368 001553' 000400 100060
1369 001554' 000200 010000 MWORD <JMAP,J=1> ; 2
1370 001555' 000000 000040
1371 001556' 000300 000010 MWORD <CONT,SD0,B=17,OR,D=2,SELE,MGC=10> ; 3
1372 001557' 732007 405340
1373 001560' 000400 040000 MWORD <CJP,J=4,CENA,CCER> ; 4
1374 001561' 000400 100060
1375
1376 ; Then, read the IOP Function word into R16
1377
1378 001562' 000500 070000 MWORD <CJP,J=7,CENA,CCER> ; 5
1379 001563' 000400 100060
1380 001564' 000600 050000 MWORD <JMAP,J=5> ; 6
1381 001565' 000000 000040
1382 001566' 000700 000010 MWORD <CONT,SD0,B=16,OR,D=2,SELE,MGC=10> ; 7
1383 001567' 732007 005340
1384 001570' 001000 100000 MWORD <CJP,J=10,CENA,CCER> ; 10
1385 001571' 000400 100060
1386
1387 ; Done getting the data words - now write the CCW
1388 ; jump word into EPT location 34
1389
1390 001572' 001100 002004 MWORD <CONT,S0A,A=16,OR,D=1,OENA,SELE,MGC=4> ; 11
1391 001573' 431160 005340
1392 001574' 001200 000001 MWORD <CONT,SELE,MGC=1> ; 12 (Ex/Dep int)
1393 001575' 000000 005340
1394 001576' 001300 150000 MWORD <CJP,J=15,D=1,CENA,CCER> ; 13
1395 001577' 001400 100060
1396 001600' 001400 130000 MWORD <JMAP,J=13,D=1> ; 14
1397 001601' 001000 000040
1398 001602' 001500 002004 MWORD <CONT,S0A,A=17,OR,D=1,OENA,SELE,MGC=4> ; 15
1399 001603' 431170 005340
1400 001604' 001600 000020 MWORD <CONT,D=1,SELE,MGC=20> ; 16
1401 001605' 001000 005340
1402 001606' 001700 170000 MWORD <JMAP,J=17> ; 17
1403 001607' 000000 000040
1404 001610' 777777 777777 -1
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 34
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0740
1405
1406 ;#*********************************************************************
1407 ;* GETLOG - Snapshot The Channel Logout Area
1408 ;
1409 ; This routine takes data from the channel logout area and places it in
1410 ; LOGBUF for LOGPNT to print it out. It zeros the logout area as it
1411 ; transfers also. This routine must be called before calling LOGPNT.
1412 ;#********************************************************************
1413
1414 001611' 332 00 0 00 001405* GETLOG: SKIPE UDEBUG ; debug mode?
1415 001612' 263 17 0 00 000000 RTN ; yes - exit
1416 001613' 261 17 0 00 000000 RPUT (0,1,2) ; save AC's
1417
1418 001616' 135 01 0 00 002631' LDB 1,[POINT 3,MBCN,9] ; get channel number
1419 001617' 200 01 0 01 001360' MOVE 1,ICWA0(1) ; get ICWA
1420 001620' 270 01 0 00 001372' ADD 1,CBASE ; get EPT address
1421 001621' 332 00 0 00 030037 SKIPE USER ; user mode?
1422 GO [MOVE DEVADR ; yes - get device address word
1423 MOVEM LOGARG+1 ; and put in argument list
1424 MOVE 1,[-^D15,,LOGARG]
1425 XCT .DIAG ; get logout data
1426 GO DIAGER ; error
1427 MOVEI 1,LOGARG+2 ; set up address of logout data
1428 001622' 260 17 0 00 002647' RTN]
1429 001623' 201 02 0 00 001373' MOVEI 2,LOGBUF ; get address to save logout data
1430 001624' 504 02 0 00 000001 HRL 2,1 ; build BLT word
1431 001625' 251 02 0 00 001376' BLT 2,LOGBUF+3 ; move the data
1432 001626' 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
1433
1434 001631' 263 17 0 00 000000 RTN ; return
1435
1436 ; Argument list for channel status snapshot routine
1437
1438 001632' 000000 000006 LOGARG: 6 ; function
1439 001633' 000 00 0 00 000000 Z ; reserved for device addr word
1440 001634' BLOCK 4 ; reserved for logout data
1441 001640' BLOCK ^D10 ; room for physical I/O list
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 35
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0741
1442
1443 ;#*********************************************************************
1444 ;* CCWPNT - Prints CCW word currently in PCB+32.
1445 ;#********************************************************************
1446
1447 001652' 261 17 0 00 000000 CCWPNT: RPUT (0,1) ; save AC's
1448
1449 001654' 037 00 0 00 002656' TMSGC <CCW (PCB+27): >
1450 001655' 200 00 0 00 000000# MOVE PCB+27 ; get CCW
1451 001656' 037 13 0 00 000000 PNTHW ; print it
1452 001657' 037 00 0 00 002662' TMSG < OP=>
1453 001660' 135 01 0 00 002664' LDB 1,[POINT 3,PCB+27,2] ; get op code
1454 XCT [TMSG <Halt> ; print it
1455 TMSG <?1?>
1456 TMSG <Jump>
1457 TMSG <?3?>
1458 TMSG <Dt-fwd>
1459 TMSG <Dt-rev>
1460 TMSG <Dt-fwd-hlt>
1461 001661' 256 00 0 01 002703' TMSG <Dt-rev-hlt>](1)
1462 001662' 037 00 0 00 002713' TMSG < WC=>
1463 001663' 135 00 0 00 002714' LDB [POINT 11,PCB+27,13] ; get word count
1464 001664' 037 15 0 00 000000 PNTDEC ; print it
1465 001665' 037 00 0 00 002715' TMSG <. Adr=>
1466 001666' 135 00 0 00 002717' LDB [POINT 22,PCB+27,35] ; get address
1467 001667' 037 10 0 00 000000 PNTADR ; print it
1468 001670' 262 17 0 00 000001 RGET (1,0) ; restore AC's
1469
1470 001672' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 36
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0742
1471
1472 ;#*********************************************************************
1473 ;* LOGPNT - Channel Logout Printer
1474 ;
1475 ; Routine prints the status of the channel at logout time. Logout data
1476 ; is printed from a buffered area, therefore, GETLOG should be executed
1477 ; first.
1478 ;#********************************************************************
1479
1480 001673' 261 17 0 00 000000 LOGPNT: RPUT (0,1,2,3) ; save AC's
1481
1482 001677' 037 00 0 00 002720' TMSGC <Channel->
1483 001700' 135 01 0 00 002631' LDB 1,[POINT 3,MBCN,9] ; get channel number
1484 001701' 200 03 0 00 000001 MOVE 3,1 ; now to AC3
1485 001702' 200 00 0 00 000003 MOVE 3 ; ready to print
1486 001703' 037 01 0 00 000000 PNT1 ; print it
1487 TMSG <Logout Data
1488 001704' 037 00 0 00 002723' Loc Contents>
1489 001705' 260 17 0 00 001716' GO ICWPT ; print initial cw data
1490 001706' 260 17 0 00 001722' GO LOSPT ; print SW1 data if an RH20
1491 001707' 260 17 0 00 001737' GO TCWPT ; prints TERM CW status
1492 001710' 037 00 0 00 030242 PCRL
1493 001711' 262 17 0 00 000003 RGET (3,2,1,0) ; restore the AC's
1494
1495 001715' 263 17 0 00 000000 RTN ; and exit
1496
1497 ; Printer for initial control word & pointer setup routine
1498
1499 001716' 037 00 0 00 002731' ICWPT: TMSGC < 1 ICW: >
1500 001717' 200 00 0 00 001373' MOVE LOGBUF ; fetch the initial CW
1501 001720' 037 13 0 00 000000 PNTHW ; and print it
1502 001721' 263 17 0 00 000000 RTN ; and exit
1503
1504 ; RH20 status word-1 printer
1505
1506 001722' 037 00 0 00 002734' LOSPT: TMSGC < 2 SW1: >
1507 001723' 200 01 0 00 001374' MOVE 1,LOGBUF+1 ; get SW1 word
1508 001724' 404 01 0 00 002632' AND 1,[777760,,0] ; mask off unwanted bits
1509 001725' 400 02 0 00 000000 SETZ 2, ; initialize text pointer
1510 001726' 603 01 0 00 400000 LOSPT1: TLNE 1,400000 ; bit set?
1511 XCT [TMSG < LOGOUT> ; yes - print text
1512 TMSG < M-PAR>
1513 TMSG < -ADRPE>
1514 TMSG < -WCZRO>
1515 TMSG < NXM>
1516 JFCL
1517 JFCL
1518 JFCL
1519 JFCL
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 37
DFNIAI MAC 1-Nov-83 18:03 Channel Handling Routines SEQ 0743
1520 1521 TMSG < LSTXER>
1522 TMSG < RH-ERR>
1523 TMSG < LNG-WC>
1524 TMSG < SHT-WC>
1525 001727' 256 00 0 02 002762' TMSG < OVRRUN>](2)
1526 001730' 242 01 0 00 000001 LSH 1,1 ; shift in next bit
1527 001731' 350 00 0 00 000002 AOS 2 ; point the next text
1528 001732' 326 01 0 00 001726' JUMPN 1,LOSPT1 ; loop till done
1529 001733' 037 00 0 00 003000' TMSG < CLP points to: >
1530 001734' 135 00 0 00 003004' LDB [POINT 22,LOGBUF+1,35] ; fetch the actual CLP address
1531 001735' 037 16 0 00 000003 PNTOCS ; print in octal
1532 001736' 263 17 0 00 000000 RTN ; and exit
1533
1534 ; Print termination word from the logout area
1535
1536 001737' 037 00 0 00 003005' TCWPT: TMSGC < 3 Last Updated CCW: >
1537 001740' 200 00 0 00 001375' MOVE LOGBUF+2 ; fetch last CCW
1538 001741' 037 13 0 00 000000 PNTHW ; print it
1539 001742' 037 00 0 00 003013' TMSG < WC=>
1540 001743' 135 00 0 00 003015' LDB [POINT 11,LOGBUF+2,13] ; gets word count
1541 001744' 037 15 0 00 000000 PNTDEC ; print it
1542 001745' 037 00 0 00 003016' TMSG <. ADR=>
1543 001746' 135 00 0 00 003020' LDB [POINT 22,LOGBUF+2,35] ; gets address
1544 001747' 037 16 0 00 000003 PNTOCS ; print it in octal
1545 001750' 263 17 0 00 000000 RTN
1546
1547
1548 ;#*********************************************************************
1549 ;* DIAGER - Report Monitor Call Error In User Mode
1550 ;
1551 ; This routine prints an error message stating where and why a
1552 ; diagnostic monitor call has failed.
1553 ;#*********************************************************************
1554
1555 001751' 261 17 0 00 000000 DIAGER: RPUT (0,1) ; save AC's
1556
1557 001753' 202 01 0 00 003611' MOVEM 1,SAC1# ; save the error number
1558 001754' 037 01 0 00 030242 PCRLF
1559 001755' 037 01 0 00 003021' FMSGC <? Error return from diagnostic monitor call at PC->
1560 001756' 540 00 0 17 000000 HRR (P) ; get pc
1561 001757' 037 17 0 00 000003 PNTOCF ; print it
1562 001760' 037 01 0 00 003034' FMSGC <? Error code=>
1563 001761' 200 00 0 00 003611' MOVE SAC1 ; get error code
1564 001762' 037 17 0 00 000003 PNTOCF ; print it
1565 001763' 037 01 0 00 003040' FMSG < - >
1566 001764' 260 17 0 00 002235' GO DGEPNT ; print DIAG error message
1567 001765' 037 01 0 00 030242 PCRLF
1568 001766' 262 17 0 00 000001 RGET (1,0) ; restore AC's
1569
1570 001770' 263 17 0 00 000000 RTN ; return
1571
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 38
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0744
1572 SUBTTL User Mode Support Routines
1573
1574 ;#************************************************************
1575 ;* DSETUP - Setup Routine For Diagnostic Function
1576 ;
1577 ; This routine sets up a location called ".DIAG" with the appropriate
1578 ; JSYS or UUO for a diagnostic monitor call. Two monitor types are
1579 ; presently known 1=TOPS, 4=SNARK. The monitor type is found in bits
1580 ; 21-23 of Monitor Table-11, Entry-112. This information is retrieved
1581 ; by executing a GETTAB UUO which never fails. ".DIAG" is set up so
1582 ; that the AC field is 1 (means AC1 is used for argument pointer).
1583 ;
1584 ; Calling sequence:
1585 ; GO DSETUP ; call the routine
1586 ; RETURN ; returns + 1 always>
1587 ;#************************************************************
1588
1589 001771' 047000 000163 .UUO: 047000,,163 ; CALLI AC,163 for TOPS
1590 001772' 104000 000530 .JSYS: 104000,,530 ; JSYS AC,530 for SNARK
1591 001773' 260 17 0 00 002054' .DIAG: GO NOSET ; a default error reporter
1592
1593 001774' 336 00 0 00 001611* DSETUP: SKIPN UDEBUG ; special debug mode?
1594 001775' 336 00 0 00 030037 SKIPN USER ; exec mode?
1595 001776' 263 17 0 00 000000 RTN ; yes - then exit
1596 001777' 402 00 0 00 003606' SETZM INDIAG# ; a flag used during request
1597 002000' 261 17 0 00 000000 PUT 0 ; save AC0
1598 002001' 200 00 0 00 003041' MOVE [112,,11] ; entry-112,,table-11
1599 002002' 047 00 0 00 000041 GETTAB ; a GETTAB UUO
1600 002003' 260 17 0 00 002432' GO FFF ; GETTABs can't fail
1601 002004' 135 00 0 00 003042' LDB [POINT 3,0,23] ; get monitor type field
1602 002005' 402 00 0 00 003613' SETZM SNARKF# ; init SNARK flag to 1
1603 002006' 350 00 0 00 003613' AOS SNARKF
1604 002007' 306 00 0 00 000001 CAIN 1 ; type = 1
1605 002010' 254 00 0 00 002023' JRST TPSMON ; yes - TOPS monitor
1606 002011' 306 00 0 00 000004 CAIN 4 ; type = 4
1607 002012' 254 00 0 00 002017' JRST SNKMON ; yes - SNARK monitor
1608
1609 ; Unrecognized monitor type
1610
1611 002013' 037 01 0 00 003043' FMSGC <Can't run under this monitor. Type = >
1612 002014' 037 01 0 00 000001 PNT1F
1613 002015' 037 01 0 00 003054' FMSGCD <Type comes from bits 21-23 of Table-11, Entry-112. (1&4) are allowed.>
1614 002016' 260 17 0 00 002432' GO FFF ; fatal out
1615
1616 ; SNARK monitor found
1617
1618 002017' 201 00 0 00 000002 SNKMON: MOVEI 2 ; request function for TOPS20
1619 002020' 202 00 0 00 002320' MOVEM REQARG ; save it in argument block
1620 002021' 200 00 0 00 001772' MOVE .JSYS ; get appropriate JSYS
1621 002022' 254 00 0 00 002030' JRST TPSM2 ; to common code
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 39
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0745
1622
1623 ; TOPS monitor found
1624
1625 002023' 260 17 0 00 002060' TPSMON: GO CPUTST ; test for dual CPU
1626 002024' 201 00 0 00 000001 MOVEI 1 ; request function 1 for TOPS10
1627 002025' 202 00 0 00 002320' MOVEM REQARG ; save it in argument block
1628 002026' 402 00 0 00 003613' SETZM SNARKF ; clear SNARK flag
1629 002027' 200 00 0 00 001771' MOVE .UUO ; get appropriate UUO
1630 002030' 661 00 0 00 000040 TPSM2: TLO (1B12) ; 1 into AC field
1631 002031' 202 00 0 00 001773' MOVEM .DIAG ; move into execute location
1632 002032' 336 00 0 00 003613' SKIPN SNARKF ; TOPS-20 monitor?
1633 002033' 254 00 0 00 002041' JRST SMX ; no
1634 002034' 260 17 0 00 002412' GO ENABLE ; enable avail privileges
1635 002035' 104 00 0 00 000310 USRIO ; set USRIO bit to check privileges
1636 002036' 254 00 0 00 002043' JRST NOPRIV ; user has no privileges for diagnostic
1637 002037' 254 02 1 00 002040' JRSTF @.+1 ; now turn the IOT priv off
1638 002040' 010000 002041' 010000,,.+1 ; modifies the PC word
1639 002041' 262 17 0 00 000000 SMX: GET 0 ; restore the AC
1640 002042' 263 17 0 00 000000 RTN ; exit
1641
1642 002043' 037 01 0 00 003073' NOPRIV: FMSGCD <User does not have proper priviledges to run diagnostic!!>
1643 002044' 260 17 0 00 002432' GO FFF
1644 002045' 201 01 0 00 000101 MOVEI 1,101 ; specify terminal as destination
1645 002046' 200 02 0 00 003110' MOVE 2,[400000,,-1] ; specify the handle
1646 002047' 402 00 0 00 000003 SETZM 3 ; must be cleared
1647 002050' 104 00 0 00 000011 ERSTR ; does an ERSTR JSYS
1648 002051' 260 17 0 00 002432' GO FFF ; error rtn - HALTF
1649 002052' 260 17 0 00 002432' GO FFF ; other error rtn - HALTF
1650 002053' 260 17 0 00 002432' GO FFF ; then back to the monitor
1651
1652 ; Default error reporter if we try to execute a DIAG function with
1653 ; setting up.
1654
1655 002054' 332 00 0 00 001774* NOSET: SKIPE UDEBUG ; debug mode?
1656 JRST [AOS (P) ; yes - return
1657 002055' 254 00 0 00 003111' RTN]
1658 002056' 037 01 0 00 003113' FMSGCD <Diagnostic attempted a DIAG before initialization>
1659 002057' 260 17 0 00 002432' GO FFF
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 40
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0746
1660
1661 ;#************************************************************
1662 ;* CPUTST - Determine Which Of 2 CPU's To Run On
1663 ;
1664 ; Here if TOPS10 only. First find out if we have a dual CPU system.
1665 ; If so, ask user to select the proper one. You must test RH's only that
1666 ; are on the same CPU. This code also sets up to run on the correct one.
1667 ;
1668 ; Calling sequence:
1669 ; GO CPUTST ; call the routine
1670 ; RTN ; RTN+1 always
1671 ;#********************************************************************
1672
1673 002060' 336 00 0 00 030037 CPUTST: SKIPN USER ; user mode?
1674 002061' 263 17 0 00 000000 RTN ; no - exit
1675 002062' 261 17 0 00 000000 RPUT (0,1,2) ; yes - save AC's
1676
1677 002065' 200 00 0 00 003126' MOVE [17,,11] ; TABLE=11 ENTRY=17
1678 002066' 047 00 0 00 000041 GETTAB 0, ; table lookup
1679 002067' 260 17 0 00 002432' GO FFF ; fatal out
1680 002070' 607 00 0 00 000040 TLNN 40 ; dual CPU system?
1681 002071' 254 00 0 00 002111' JRST DPRCX ; no - then we can exit
1682 002072' 336 00 0 00 003607' SKIPN MCPUS# ; msg flag printed flag set?
1683 FMSGC <This is a multi-CPU system. You must choose only 1 to run in.
1684 002073' 037 01 0 00 003127' Furthermore, all the RH's you select "must" be on that CPU.>
1685 002074' 476 00 0 00 003607' SETOM MCPUS ; clear the flag
1686 002075' 037 01 0 00 003161' FMSGC <Select CPU 0 thru 5 <CR> - >
1687 002076' 037 04 0 00 000003 TTIDEC
1688 002077' 254 00 0 00 002076' JRST .-1 ; timeout
1689 002100' 331 00 0 00 000000 SKIPL ; less than 0?
1690 002101' 303 00 0 00 000005 CAILE 5 ; less than or equal 5?
1691 002102' 254 00 0 00 002075' JRST .-5 ; invalid - reask
1692 002103' 200 02 0 00 000000 MOVE 2,0 ; get # to AC for indexing later
1693 002104' 201 01 0 00 000001 MOVEI 1,1 ; set bit mask to assume CPU0
1694 002105' 242 01 0 02 000000 LSH 1,(2) ; shift into position for selected CPU
1695 002106' 505 01 0 00 000014 HRLI 1,14 ; set CPU is Function-14
1696 002107' 047 01 0 00 000075 SETUUO 1, ; set to proper CPU
1697 JRST [FMSGC <SETCPU UUO failed. Either wrong CPU selection or>
1698 FMSGCD <must have wheel privileges.>
1699 002110' 254 00 0 00 003211' GO FFF] ; fatal out
1700 002111' 262 17 0 00 000002 DPRCX: RGET (2,1,0) ; restore AC's
1701
1702 002114' 263 17 0 00 000000 RTN ; and exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 41
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0747
1703
1704 ;#************************************************************
1705 ;* DEVREL - User Mode Release Routine
1706 ;
1707 ; In user mode this routine issues a DIAG monitor call, Function-3,
1708 ; to return device to monitor resources. This routine is different
1709 ; in use from RH20 disk and tape uses in that the device (the port)
1710 ; is released only upon exiting the diagnostic.
1711 ;
1712 ; Calling sequence: GO DEVREL
1713 ; RETURN ; returns +1 always
1714 ;#************************************************************
1715
1716 002115' 336 00 0 00 002054* DEVREL: SKIPN UDEBUG ; special debug mode?
1717 002116' 336 00 0 00 030037 SKIPN USER ; or exec mode?
1718 002117' 263 17 0 00 000000 RTN ; yes - return
1719 002120' 336 00 0 00 002317' SKIPN HAVIPA ; have the port?
1720 002121' 263 17 0 00 000000 RTN ; no - exit
1721 002122' 261 17 0 00 000001 RPUT (1,2) ; save AC's
1722
1723 002124' 260 17 0 00 002364' GO USRION ; ensure user IOT bit is set
1724 002125' 260 17 0 00 000252' GO IPACLR ; do a 'port clear'
1725
1726 ; Get device address
1727
1728 002126' 200 00 0 00 000016 MOVE MBCN ; get device code
1729 002127' 336 00 0 00 003613' SKIPN SNARKF ; TOPS-20 monitor?
1730 002130' 242 00 0 00 000003 LSH 3 ; no - position all the way left
1731 002131' 135 01 0 00 002631' LDB 1,[POINT 3,MBCN,9] ; get channel number
1732 002132' 137 01 0 00 003042' DPB 1,[POINT 3,0,23] ; put into device address
1733 002133' 202 00 0 00 003604' MOVEM DEVADR# ; save it
1734 002134' 202 00 0 00 002316' MOVEM RELARG+1 ; place in argument list
1735 002135' 200 01 0 00 003214' MOVE 1,[-2,,RELARG] ; pointer used
1736 002136' 476 00 0 00 003606' SETOM INDIAG# ; useful for debugging crashes
1737 002137' 256 00 0 00 001773' REL: XCT .DIAG ; execute DIAG function
1738 GO [MOVEM 1,SAC1 ; error
1739 FMSGC <? Release of CI port failed - >
1740 GO DGEPNT ; print error message
1741 PCRLF ; final CRLF
1742 002140' 260 17 0 00 003224' RTN] ; exit
1743 002141' 402 00 0 00 002317' SETZM HAVIPA ; no longer have the device
1744 002142' 402 00 0 00 003606' SETZM INDIAG ; no longer in DIAG JSYS
1745
1746 ; Clean up and exit
1747
1748 002143' 262 17 0 00 000002 RGET (2,1) ; restore AC's
1749
1750 002145' 336 00 0 00 003613' SKIPN SNARKF ; TOPS-20
1751 002146' 254 00 0 00 002151' JRST .+3 ; don't play with USRIOT bit
1752 002147' 254 02 1 00 002150' JRSTF @.+1 ; yes - turn off USER IOT
1753 002150' 010000 002151' 010000,,.+1 ; sets flags
1754 002151' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 42
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0748
1755
1756 ;#************************************************************
1757 ;* DEVREQ - User Mode Request Routine
1758 ;
1759 ; Does nothing in exec mode. In user mode, this routine executes
1760 ; a diagnostic monitor call of Function 2 to request the port from
1761 ; from the monitor. This routine is different in use from RH20 disk
1762 ; and tape uses in that the device (the port) is requested only when
1763 ; the diagnostic starts up.
1764 ;#************************************************************
1765
1766 002152' 350 00 0 17 000000 DEVREQ: AOS (P) ; set up proper return
1767 002153' 336 00 0 00 002115* SKIPN UDEBUG ; special debug mode?
1768 002154' 336 00 0 00 030037 SKIPN USER ; or exec mode?
1769 002155' 263 17 0 00 000000 RTN ; yes - return
1770 002156' 260 17 0 00 002364' GO USRION ; set USRIOT bit
1771 002157' 332 00 0 00 002317' SKIPE HAVIPA ; do we have the port?
1772 002160' 260 17 0 00 002115' GO DEVREL ; yes - release it first
1773 002161' 261 17 0 00 000001 RPUT (1,0) ; save AC's
1774
1775 002163' 201 00 0 00 000002 MOVEI 2 ; set up function 2 (request
1776 002164' 202 00 0 00 002320' MOVEM REQARG ; channel and all devices)
1777
1778 ; Get device address
1779
1780 002165' 200 00 0 00 000016 MOVE MBCN ; get device code
1781 002166' 336 00 0 00 003613' SKIPN SNARKF ; TOPS-20 monitor?
1782 002167' 242 00 0 00 000003 LSH 3 ; position all the way left
1783 002170' 135 01 0 00 002631' LDB 1,[POINT 3,MBCN,9] ; get channel number
1784 002171' 137 01 0 00 003042' DPB 1,[POINT 3,0,23] ; put into device address
1785 002172' 202 00 0 00 003604' MOVEM DEVADR# ; save it
1786 002173' 202 00 0 00 002321' MOVEM REQARG+1 ; place in argument list
1787
1788 ; Do the request
1789
1790 002174' 200 01 0 00 003231' MOVE 1,[-3,,REQARG] ; pointer word
1791 002175' 476 00 0 00 003606' SETOM INDIAG ; entering DIAG JSYS
1792 002176' 256 00 0 00 001773' REQ1: XCT .DIAG ; a diagnostic call
1793 002177' 334 00 0 00 000000 SKIPA ; error
1794 002200' 254 00 0 00 002210' JRST REQOK ; continue
1795 002201' 550 01 0 00 000001 HRRZ 1,1 ; clear left half
1796 002202' 302 01 0 00 602712 CAIE 1,602712 ; port not enabled?
1797 002203' 254 00 0 00 002207' JRST .+4 ; no - another error - go handle
1798 002204' 260 17 0 00 002216' GO ENDIAG ; yes - go enable the port
1799 002205' 200 01 0 00 003231' MOVE 1,[-3,,REQARG] ; pointer word
1800 002206' 256 00 0 00 001773' REQ2: XCT .DIAG ; a diagnostic call
1801 JRST [MOVEM 1,SAC1 ; error
1802 FMSGC <? NI port not available - >
1803 GO DGEPNT ; print error message
1804 PCRLF ; final CRLF
1805 SOS -2(P) ; set up failed return
1806 002207' 254 00 0 00 003240' JRST DEVRQX] ; exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 43
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0749
1807
1808 002210' 260 17 0 00 000252' REQOK: GO IPACLR ; do a 'port clear'
1809 002211' 476 00 0 00 002317' SETOM HAVIPA ; indicate we have the port
1810 002212' 402 00 0 00 003606' DEVRQX: SETZM INDIAG ; no longer in DIAG JSYS
1811 002213' 262 17 0 00 000000 RGET (0,1) ; restore AC's
1812
1813 002215' 263 17 0 00 000000 RTN ; exit
1814
1815
1816 ;#********************************************************************
1817 ;* ENDIAG - Enable the NI/CI port
1818 ;#********************************************************************
1819
1820 002216' 261 17 0 00 000000 ENDIAG: RPUT (0,1,2) ; save AC's
1821
1822 002221' 200 00 0 00 000016 MOVE MBCN ; get device code
1823 002222' 336 00 0 00 003613' SKIPN SNARKF ; TOPS-20 monitor?
1824 002223' 242 00 0 00 000003 LSH 3 ; no - position all the way left
1825 002224' 135 00 0 00 002631' LDB [POINT 3,MBCN,9] ; get channel number
1826 002225' 202 00 0 00 002324' MOVEM ENARG+1 ; place in argument list
1827 002226' 200 01 0 00 003246' MOVE 1,[-3,,ENARG] ; pointer word
1828 002227' 256 00 0 00 001773' XCT .DIAG ; do the DIAG
1829 002230' 255 00 0 00 000000 JFCL ; error return
1830 002231' 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
1831
1832 002234' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 44
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0750
1833
1834 ;#********************************************************************
1835 ;* DGEPNT - Decode and print DIAG error
1836 ;#********************************************************************
1837
1838 002235' 261 17 0 00 000000 DGEPNT: RPUT (0,1,2) ; save AC's
1839
1840 002240' 201 02 0 00 002257' MOVEI 2,T10TAB-1 ; get address of TOPS-10 table
1841 002241' 332 00 0 00 003613' SKIPE SNARKF ; TOPS-20 monitor?
1842 002242' 201 02 0 00 002271' MOVEI 2,T20TAB-1 ; yes - get address of TOPS-20 table
1843 002243' 550 01 0 00 003611' HRRZ 1,SAC1 ; get error code
1844
1845 002244' 350 00 0 00 000002 DGEPN0: AOS 2 ; point to next entry
1846 002245' 554 00 0 02 000000 HLRZ (2) ; get entry
1847 002246' 316 00 0 00 003247' CAMN [777777] ; end of list?
1848 JRST [FMSG <Unrecognized error code - >
1849 MOVE SAC1
1850 PNTHW
1851 002247' 254 00 0 00 003256' JRST DGEPNX]
1852 002250' 312 00 0 00 000001 CAME 1 ; match?
1853 002251' 254 00 0 00 002244' JRST DGEPN0 ; no - keep looping
1854 002252' 550 00 0 02 000000 HRRZ (2)
1855 002253' 256 00 1 00 000000 XCT @0
1856
1857 002254' 262 17 0 00 000002 DGEPNX: RGET (2,1,0) ; restore AC's
1858
1859 002257' 263 17 0 00 000000 RTN ; return
1860
1861 ; TOPS-10 Error Messages
1862
1863 002260' 601174 003272' T10TAB: 601174,,[FMSG <Argument count field is non negative>]
1864 002261' 601175 003302' 601175,,[FMSG <Device assigned to another job>]
1865 002262' 601176 003311' 601176,,[FMSG <Argument count is to small>]
1866 002263' 601177 003321' 601177,,[FMSG <Illegal MBC device code selected>]
1867 002264' 601200 003331' 601200,,[FMSG <Device not mounted in maint mode>]
1868 002265' 601201 003334' 601201,,[FMSG <Bad CCW>]
1869 002266' 601202 003347' 601202,,[FMSG <CCW indicates that xfer will cross page boundary>]
1870 002267' 601203 003354' 601203,,[FMSG <No such channel>]
1871 002270' 601204 003360' 601204,,[FMSG <No such drive>]
1872 002271' 777777 777777 -1
1873
1874 ; TOPS-20 Error Messages
1875
1876 002272' 601174 003365' T20TAB: 601174,,[FMSG <Invalid function>]
1877 002273' 601175 003373' 601175,,[FMSG <Device is not assigned>]
1878 002274' 601176 003401' 601176,,[FMSG <Argument block too small>]
1879 002275' 601177 003406' 601177,,[FMSG <Invalid device type>]
1880 002276' 601200 003421' 601200,,[FMSG <WHEEL, OPERATOR, or MAINT capability required>]
1881 002277' 601201 003430' 601201,,[FMSG <Invalid channel command list>]
1882 002300' 601202 003441' 601202,,[FMSG <Illegal to do I/O across page boundary>]
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 45
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0751
1883 002301' 601203 003445' 601203,,[FMSG <No such device>]
1884 002302' 601204 003452' 601204,,[FMSG <Unit does not exist>]
1885 002303' 601205 003460' 601205,,[FMSG <Subunit does not exist>]
1886 002304' 602406 003465' 602406,,[FMSG <Unit already online>]
1887 002305' 602407 003472' 602407,,[FMSG <Unit not online>]
1888 002306' 602614 003501' 602614,,[FMSG <Datagram buffer not available>]
1889 002307' 602705 003513' 602705,,[FMSG <Port does not exist or is not a NI/CI port>]
1890 002310' 602706 003522' 602706,,[FMSG <CI counters not available>]
1891 002311' 602707 003532' 602707,,[FMSG <Fork doesn't own NI/CI Counters>]
1892 002312' 602712 003541' 602712,,[FMSG <NI/CI channel is not enabled>]
1893 002313' 602713 003550' 602713,,[FMSG <Diagnostic owns the channel>]
1894 002314' 777777 777777 -1
1895
1896 ; Argument list for release command
1897
1898 002315' 000000 000003 RELARG: 3 ; function
1899 002316' 000 00 0 00 000000 Z ; reserved for device adr word
1900
1901 002317' 000000 000000 HAVIPA: 0 ; 'have port' flag
1902
1903 ; Argument list for request command
1904
1905 002320' 000 00 0 00 000000 REQARG: Z ; function
1906 002321' 000 00 0 00 000000 Z ; reserved for device address
1907 002322' 001623 416000 ^D1000*^D60*^D4000 ; 4000 minutes (in milleseconds)
1908
1909 ; Argument list for enable command
1910
1911 002323' 000000 000111 ENARG: 111 ; function
1912 002324' 000 00 0 00 000000 Z ; reserved for device address
1913 002325' 777777 777777 -1
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 46
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0752
1914
1915 ;#********************************************************************
1916 ;* LOCPHY - Lock part of the diagnostic
1917 ;#********************************************************************
1918
1919 002326' 336 00 0 00 002153* LOCPHY: SKIPN UDEBUG ; special debug mode?
1920 002327' 336 00 0 00 030037 SKIPN USER ; or exec mode?
1921 002330' 263 17 0 00 000000 RTN ; yes - return
1922 002331' 332 00 0 00 002363' SKIPE LOCDON ; already done?
1923 002332' 263 17 0 00 000000 RTN ; yes - return
1924 002333' 261 17 0 00 000000 RPUT (0,1,2,3) ; save AC's
1925
1926 002337' 255 00 0 00 000000 JFCL
1927 002340' 201 05 0 00 000000# MOVEI 5,PCB-3000 ; set up initial address
1928 002341' 201 06 0 00 000010 MOVEI 6,8 ; number of times to do this
1929 002342' 271 05 0 00 003000 LOCP1: ADDI 5,3000 ; point to next address
1930 002343' 400 01 0 00 000000 SETZ 1,
1931 002344' 200 02 0 00 000005 MOVE 2,5 ; get address
1932 002345' 242 02 0 00 777767 LSH 2,-9 ; obtain page number
1933 002346' 505 02 0 00 400000 HRLI 2,.FHSLF ; insert process handle
1934 002347' 200 03 0 00 003551' MOVE 3,[500000,,3] ; not cache,,page count
1935 002350' 104 00 0 00 000561 JSYS 561 ; PLOCK JSYS
1936 002351' 255 00 0 00 000000 JFCL
1937 002352' 005 00 0 00 000144 DELAY ^D100 ; wait a bit
1938 002353' 367 06 0 00 002342' SOJG 6,LOCP1 ; loop till done
1939 002354' 476 00 0 00 002363' LOCP3: SETOM LOCDON ; set already done flag
1940 002355' 402 00 0 00 002317' SETZM HAVIPA ; no longer have the port
1941 002356' 262 17 0 00 000003 RGET (3,2,1,0) ; restore AC's
1942
1943 002362' 263 17 0 00 000000 RTN ; return
1944
1945 002363' 000000 000000 LOCDON: 0 ; already done flag
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 47
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0753
1946
1947 ;#********************************************************************
1948 ;* USRION/USRIOF - Turn User I/O Privileges On/Off
1949 ;
1950 ; This routine does nothing in exec mode. Under TOPS-20 we do an enable
1951 ; of privileges and then a USER I/O JSYS to get User-IOT set. Under TOPS10,
1952 ; a TRPSET UUO gets us into User-IOT mode. USRION will fatal you out if you
1953 ; don't have User IOT privileges.
1954 ;#********************************************************************
1955
1956 002364' 336 00 0 00 002326* USRION: SKIPN UDEBUG ; special debug mode?
1957 002365' 336 00 0 00 030037 SKIPN USER ; exec mode?
1958 002366' 263 17 0 00 000000 RTN ; yes - return
1959 002367' 261 17 0 00 000000 RPUT (0,1) ; save AC's
1960
1961 002371' 336 00 0 00 030516 SKIPN MONTYP ; TOPS10?
1962 GO [MOVEI 1,0 ; yes - setup for RTTRP UUO
1963 TRPSET 1, ; and do it
1964 JFCL
1965 002372' 260 17 0 00 003552' RTN]
1966 002373' 332 00 0 00 030516 SKIPE MONTYP ; TOPS20?
1967 GO [GO ENABLE ; yes - enable available privileges
1968 USRIO ; and set the User I/O bit
1969 JFCL
1970 002374' 260 17 0 00 003556' RTN]
1971 002375' 260 17 0 00 002376' GO .+1 ; push PC onto stack
1972 002376' 262 17 0 00 000001 GET 1 ; pop it from stack into AC1
1973 002377' 607 01 0 00 004000 TLNN 1,(1B6) ; is USRIOT bit set?
1974 JRST [FMSGCD <User does not have sufficient privileges>
1975 002400' 254 00 0 00 003573' JRST FFF]
1976 002401' 262 17 0 00 000001 RGET (1,0) ; restore the AC's
1977
1978 002403' 263 17 0 00 000000 RTN
1979
1980 ; Code to turn User I/O off
1981
1982 002404' 336 00 0 00 002364* USRIOF: SKIPN UDEBUG ; special debug mode?
1983 002405' 336 00 0 00 030037 SKIPN USER ; exec mode?
1984 002406' 263 17 0 00 000000 RTN ; yes - return
1985 002407' 254 02 1 00 002410' JRSTF @.+1 ; turn off the privilege
1986 002410' 010000 002411' 010000,,.+1 ; modifies the PC word
1987 002411' 263 17 0 00 000000 USROFX: RTN
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 48
DFNIAI MAC 1-Nov-83 18:03 User Mode Support Routines SEQ 0754
1988
1989 ;#************************************************************
1990 ;* ENABLE - Enable Capabilities of This Process
1991 ;
1992 ; First read capabilities and then enable them. Same as typing "ENA"
1993 ; from exec level.
1994 ;#************************************************************
1995
1996 002412' 336 00 0 00 002404* ENABLE: SKIPN UDEBUG ; special debug mode?
1997 002413' 336 00 0 00 030037 SKIPN USER ; exec mode?
1998 002414' 263 17 0 00 000000 RTN ; yes - exit
1999 002415' 261 17 0 00 000001 RPUT (1,2,3) ; save AC's
2000
2001 002420' 201 01 0 00 400000 MOVEI 1,.FHSLF ; process handle
2002 002421' 104 00 0 00 000150 RPCAP ; read capabilities
2003 002422' 320 17 0 00 002505' ERCAL [RTN] ; ignore errors
2004 002423' 200 03 0 00 000002 MOVE 3,2 ; get capabilities to AC3
2005 002424' 104 00 0 00 000151 EPCAP ; now enable
2006 002425' 320 17 0 00 002505' ERCAL [RTN] ; ignore errors
2007 002426' 262 17 0 00 000003 RGET (3,2,1) ; restore AC's
2008
2009 002431' 263 17 0 00 000000 RTN ; exit
2010
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page 49
DFNIAI MAC 1-Nov-83 18:03 Miscellaneous Routines SEQ 0755
2011 SUBTTL Miscellaneous Routines
2012
2013 ;#************************************************************
2014 ;* FFF - Routine To Handle Fatals
2015 ;
2016 ; There is no return from this call. You end up at DDT in exec mode
2017 ; or the monitor if in user mode.
2018 ;
2019 ; Calling sequence:
2020 ;
2021 ; GO FFF ; call routine
2022 ; ........... ; pgm has fataled out
2023 ;#************************************************************
2024
2025 002432' 260 17 0 00 002115' FFF: GO DEVREL ; release device if necessary
2026 002433' 037 01 0 00 003575' FMSGC <Fatal pgm error at PC - >
2027 002434' 550 00 0 17 000000 HRRZ (P) ; get calling PC
2028 002435' 275 00 0 00 000001 SUBI 1 ; gets correct PC
2029 002436' 037 06 0 00 000001 PNT6F ; print it
2030 002437' 037 01 0 00 030242 PCRLF
2031 002440' 332 00 0 00 030037 SKIPE USER ; user mode?
2032 002441' 254 00 0 00 002444' JRST .+3 ; yes
2033 002442' 254 04 0 00 000000* HALT START ; halt .. restart
2034 002443' 254 00 0 00 002442* JRST START ; to be sure
2035
2036 ; User mode fatal halt
2037
2038 002444' 260 17 0 00 000000* GO .CLOSE ; close output files
2039 002445' 260 17 0 00 000000* GO .EXIT ; exit the job
2040 002446' 254 00 0 00 002443* JRST START ; restart program
2041
2042
2043 ;#********************************************************************
2044 ; End of DFNIAI.MAC Module
2045 ;#********************************************************************
2046
2047 XLIST
2048
NO ERRORS DETECTED
PROGRAM BREAK IS 003615
CPU TIME USED 00:12.250
76P CORE USED
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page S-1
DFNIAI MAC 1-Nov-83 18:03 SYMBOL TABLE SEQ 0756
AADDR 000432' int HAVIPA 002317' int LOCPHY 002326' ent RDEBUF 000050' ent
APR 000000 spd ICWA0 001360' int LOGARG 001632' RDLAR 000104' ent
CADDR 001460' ext ICWA1 001361' LOGBUF 001373' int REL 002137' ent
CBASE 001372' int ICWA2 001362' LOGPNT 001673' ent RELARG 002315'
CCWPNT 001652' ent ICWA3 001363' LOSPT 001722' REQ1 002176' ent
CHCRAM 001510' ICWA4 001364' LOSPT1 001726' REQ2 002206' ent
CHIN1 001427' ICWA5 001365' MBCN 000016 REQARG 002320'
CHIN2 001460' ICWA6 001366' MBERR 002000 000000 spd REQOK 002210'
CHIN3 001470' ICWA7 001367' MCPUS 003607' RESQAV 000200 spd
CHIN4 001476' ICWPT 001716' MLOADN 001436' ext RPCAP 104000 000150 int
CHINIT 001377' ent INDIAG 003606' MONTYP 030516 RTN 263740 000000
CHINX 001503' INITP0 000532' MPRUN 000010 spd RUNTME 001035' ext
CHKCSR 000325' ent INITPD 000542' ent MVRERR 001000 spd SAC1 003611'
CHKCSX 000342' INITPI 000517' ent MWEPT 001550' SAVEBF 003612'
CLREBE 000322' INTAPR 001164' int NOPRIV 002043' SDATA 000430' int
CLREBU 000311' ent INTCON 001140' int NOSET 002054' SELLAR 040000 spd
CLREBX 000321' INTCSR 001260' int NVIIN1 000716' SET2N 000623'
CPUTST 002060' INTEND 001330' int NVIIN2 000726' SETEBE 000271'
CRAMPE 004000 000000 spd INTNNN 001304' NVIIN3 000736' SETEBU 000257' ent
CWORDL 001462' ext INTNUM 001067' int NVIIN4 000746' SETLAE 000306'
CWORDR 000000 ext INTPC 001070' int NVIIN5 000756' SETLAR 000274' ent
DEBTIM 001036' ext INTTIM 001210' int NVIIN6 000766' SETUUO 047000 000075
DELAY 005000 000000 INTTYP 001114' int NVIIN7 000776' SETVEC 000602' ent
DEVADR 003604' INTUSE 001234' int NVIINC 001006' SINCYC 020000 spd
DEVREL 002115' ent IPACLR 000252' ent NVJEN 001066' SLAST 000427' int
DEVREQ 002152' ent IPASR0 000361' P 000017 SMX 002041'
DEVRQX 002212' IPASR1 000371' PAG 000010 spd SNARKF 003613' int
DGEPN0 002244' IPASR2 000372' PARFLG 001466' ext SNEXT 000426' int
DGEPNT 002235' IPASR3 000373' PCB 000000 ext SNKMON 002017'
DGEPNX 002254' IPASRT 000344' ent PCLEAR 400000 spd START 002446' ext
DIAGER 001751' IPASS0 000453' PCRL 037000 030242 SWITT 000000 ext
DPRCX 002111' IPASS1 000475' PCRLF 037040 030242 T10TAB 002260'
DRCRAM 001430' ext IPASS2 000512' PI 000004 spd T20TAB 002272'
DSETUP 001774' ent IPASS3 000513' PICLR 010000 spd TCWPT 001737'
DSPRIN 000000 ext IPASS4 000514' PIOFF 000400 spd TIDLE 000000 ext
DWCRAM 001463' ext IPASST 000433' ent PION 000200 spd TPCB 001404' ext
EADDR 000431' int IPAST1 000421' PISYOF 000574' ent TPSM2 002030'
EBUSPE 004000 spd IPAST2 000422' PISYON 000577' ent TPSMON 002023'
ENABLE 002412' ent IPAST3 000423' PMODE 000242' ext TRPSET 047000 000025
ENARG 002323' IPASTP 000376' ent PNT1 037040 000000 TSTEBF 200000 spd
ENDIAG 002216' ISTOP 000176' ent PNT1F 037040 000001 TTIDEC 037200 000003
EPCAP 104000 000151 int ISTOP0 000212' PNT6F 037300 000001 UDEBUG 002412' ext
EPTADR 001371' ISTOPC 000240' PNTADR 037400 000000 USER 030037
EPTIOP 003605' ISTOPX 000244' PNTDEC 037640 000000 USRIO 104000 000310 int
EPTJMP 001370' int IVADDR 000622' PNTHW 037540 000000 USRIOF 002404' ent
ERCAL 320740 000000 int JEN 254500 000000 PNTMSF 037040 000000 USRION 002364' ent
ERESET 000167' ent JRSTF 254100 000000 PNTMSG 037000 000000 USROFX 002411'
ERSTR 104000 000011 int JSYS 104000 000000 PNTOCF 037740 000003 USTIM 001040' ext
FFF 002432' ent LDCRAM 000035' ent PNTOCS 037700 000003 VIINT 000644'
FQUERR 002000 spd LDCSR 000010' ent PRSFLG 003610' VIIPI 003614'
GET 262740 000000 LDEBUF 000000' ent PUT 261740 000000 ZI 000000'
GETLOG 001611' ent LDRAR 000021' ent RDCRAM 000115' ent $ARG2 000017
GETTAB 047000 000041 LOCDON 002363' int RDCS0 000071' $B 000052
GO 260740 000000 LOCP1 002342' RDCSR 000060' ent $CHR 000052
HALT 254200 000000 LOCP3 002354' RDCSX 000100' $GARG 000001
.MAIN MACRO %53A(1152) 20:08 24-Sep-84 Page S-2
DFNIAI MAC 1-Nov-83 18:03 SYMBOL TABLE SEQ 0757
$SVUPC 030114 .RCJP 000060 spd
$SVUUO 030113 .RCONT 000340 spd
%ADDR 000020 spd .RD 001000 000000 spd
%ML 001700 170000 spd .RJ 000000 spd
%MR 000040 spd .RJMAP 000040 spd
.CLOSE 002444' ext .RMGC 000000 spd
.CONI 000126' ent .ROENA 000000 spd
.CONO 000136' ent .ROR 030000 000000 spd
.DATAI 000147' ent .RS0A 400000 000000 spd
.DATAO 000157' ent .RSD0 700000 000000 spd
.DIAG 001773' .RSELE 005000 spd
.EXIT 002445' ext .UUO 001771'
.FHSLF 400000 sin
.INPNT 001331' ent
.INPNX 001352'
.INWD1 001356' int
.INWD2 001357' int
.JSYS 001772'
.LA 000000 spd
.LADDR 000100 000000 spd
.LB 000000 spd
.LCCER 000000 spd
.LCENA 000000 spd
.LCJP 000000 spd
.LCONT 000000 spd
.LD 000000 spd
.LJ 010000 spd
.LJMAP 000000 spd
.LMGC 000001 spd
.LOENA 002000 spd
.LOR 000000 spd
.LS0A 000000 spd
.LSD0 000000 spd
.LSELE 000000 spd
.MA 000017 spd
.MB 000017 spd
.MCCER 000037 spd
.MCENA 000001 spd
.MCJP 000017 spd
.MCONT 000017 spd
.MD 000007 spd
.MJ 007777 spd
.MJMAP 000017 spd
.MMGC 001777 spd
.MOENA 000001 spd
.MOR 000007 spd
.MS0A 000007 spd
.MSD0 000007 spd
.MSELE 000007 spd
.PIOFF 000546' ent
.PION 000560' ent
.RA 000010 000000 spd
.RB 400000 spd
.RCCER 100000 spd
.RCENA 000400 000000 spd
AADDR 17 689#
APR 385 986 1092 SEQ 0758
CADDR 49# 1293 1327
CBASE 30 905 1250# 1340 1420
CCWPNT 29 1447#
CHCRAM 1291 1325 1361#
CHIN1 1293# 1298
CHIN2 1327# 1332
CHIN3 1272 1338#
CHIN4 1334 1347#
CHINIT 28 1262#
CHINX 1270 1355#
CHKCSR 15 521#
CHKCSX 525 536 540#
CLREBE 503 509#
CLREBU 15 500#
CLREBX 505 508#
CPUTST 1625 1673#
CRAMPE 403 411 416 420 424 526 595 655 731 1107 1108 1121 1167
CWORDL 49# 1295 1329
CWORDR 49#
DEBTIM 44# 990 1099
DEVADR 1422 1733# 1733 1785# 1785
DEVREL 34 1716# 1772 2025
DEVREQ 34 1766#
DEVRQX 1806 1810#
DGEPN0 1845# 1853
DGEPNT 1566 1740 1803 1838#
DGEPNX 1851 1857#
DIAGER 1426 1555#
DPRCX 1681 1700#
DRCRAM 49# 1294
DSETUP 34 1593#
DSPRIN 48#
DWCRAM 49# 1330
EADDR 17 688#
EBUSPE 412 527 1109 1122 1181
ENABLE 35 1634 1967 1996#
ENARG 1826 1827 1911#
ENDIAG 1798 1820#
EPTADR 1249# 1282 1314 1341
EPTIOP 1316# 1316
EPTJMP 30 1248# 1287 1312
ERESET 16 382#
FFF 40 1600 1614 1643 1648 1649 1650 1659 1679 1699 1975 2025#
FQUERR 1122 1184
GETLOG 29 1414#
HAVIPA 36 1719 1743 1771 1809 1901# 1940
ICWA0 30 903 1237# 1277 1339 1419
ICWA1 1238#
ICWA2 1239#
ICWA3 1240#
ICWA4 1241#
ICWA5 1242#
ICWA6 1243# SEQ 0759
ICWA7 1244#
ICWPT 1489 1499#
INDIAG 1596# 1596 1736# 1736 1744 1791 1810
INITP0 826# 840
INITPD 21 837#
INITPI 21 809#
INTAPR 23 987 1093 1148#
INTCON 23 985 1091 1147#
INTCSR 24 1096 1123 1151#
INTEND 24 830 1153#
INTNNN 981 997 1087 1130 1152#
INTNUM 23 829 909 974 980 1077 1086 1143#
INTPC 23 983 1089 1145#
INTTIM 23 991 1100 1149#
INTTYP 23 979 1085 1146#
INTUSE 23 993 1102 1150#
IPACLR 16 387 443# 1115 1267 1724 1808
IPASR0 608#
IPASR1 596 619#
IPASR2 591 620#
IPASR3 589 621#
IPASRT 16 583#
IPASS0 746#
IPASS1 765 776#
IPASS2 732 793#
IPASS3 727 794#
IPASS4 725 795#
IPASST 16 718#
IPAST1 656 677#
IPAST2 651 678#
IPAST3 649 663 679#
IPASTP 16 643#
ISTOP 16 396#
ISTOP0 404 407#
ISTOPC 410 417 419 429#
ISTOPX 406 428 433#
IVADDR 907 914#
LDCRAM 10 188#
LDCSR 10 143# 413 430 434 445 465 487 507 528 538 601 617 661
669 739 754 767 772 786 790 853 870 1110 1117 1311 1319
LDEBUF 10 129# 788
LDRAR 10 165# 604 742 1309
LOCDON 36 1922 1939 1945#
LOCP1 1929# 1938
LOCP3 1939#
LOCPHY 34 1919#
LOGARG 1423 1424 1427 1438#
LOGBUF 30 1252# 1429 1431 1500 1507 1530 1537 1540 1543
LOGPNT 29 1480#
LOSPT 1490 1506#
LOSPT1 1510# 1528
MBCN 133 147 170 193 228 244 274 292 313 332 353 372 1276 1338
1418 1483 1728 1731 1780 1783 1822 1825 SEQ 0760
MBERR 409 416 524 595 655 731 1114 1121 1174
MCPUS 1682# 1682 1685
MLOADN 48# 1303
MONTYP 1961 1966
MPRUN 405 418 535 590 609 611 650 660 726 747 748 1310
MVRERR 1122 1187
MWEPT 1302 1365#
NOPRIV 1636 1642#
NOSET 1591 1655#
NVIIN1 922 1010# 1014
NVIIN2 924 1019# 1023
NVIIN3 926 1028# 1032
NVIIN4 928 1037# 1041
NVIIN5 930 1046# 1050
NVIIN6 932 1055# 1059
NVIIN7 934 1064# 1068
NVIINC 1017 1026 1035 1044 1053 1062 1071 1075#
NVJEN 1015 1024 1033 1042 1051 1060 1069 1088 1137 1139#
P 237 251 466 488 508 531 618 619 620 676 677 678 792 793
794 1560 1656 1766 1805 2027
PAG 1278
PARFLG 49# 1323 1324 1333
PCB 50# 1283 1342 1347 1351 1450 1453 1463 1466 1927
PCLEAR 429 444
PI 812 826 827 839 881 890 966 967 1011 1012 1020 1021 1029 1030
1038 1039 1047 1048 1056 1057 1065 1066
PICLR 812 839
PIOFF 881 967 1012 1021 1030 1039 1048 1057 1066
PION 827
PISYOF 21 849 865 880#
PISYON 22 871 889#
PMODE 50# 421 425 431
PRSFLG 720# 720 764
RDCRAM 11 288#
RDCS0 245# 250
RDCSR 11 237# 400 414 459 481 502 522 588 648 662 724 758 850
866 1094
RDCSX 248 252#
RDEBUF 11 224# 768
RDLAR 11 270# 670 778 1111 1118
REL 34 1737#
RELARG 1734 1735 1898#
REQ1 34 1792#
REQ2 34 1800#
REQARG 1619 1627 1776 1786 1790 1799 1905#
REQOK 1794 1808#
RESQAV 1122
RUNTME 44# 989 1098
SAC1 1557# 1557 1563 1738 1801 1843 1849
SAVEBF 769# 769 787
SDATA 17 608 664 687# 746 760 770 784 789
SELLAR 463 485 611 668 748 1109 1116
SET2N 908 921# SEQ 0761
SETEBE 460 467#
SETEBU 15 457#
SETLAE 482 489#
SETLAR 15 479#
SETVEC 22 897#
SINCYC 610 748
SLAST 17 686# 777
SMX 1633 1639#
SNARKF 36 1602# 1602 1603 1628 1632 1729 1750 1781 1823 1841
SNEXT 17 602 672 685# 740 776 780
SNKMON 1607 1618#
START 2033 2034 2040
SWITT 44#
T10TAB 1840 1863#
T20TAB 1842 1876#
TCWPT 1491 1536#
TIDLE 50#
TPCB 50# 1268
TPSM2 1621 1630#
TPSMON 1605 1625#
TSTEBF 462 484 504 506 600 736 738 766 771 785
UDEBUG 48# 129 143 165 188 224 238 270 288 309 328 349 368 382
396 1269 1414 1593 1655 1716 1767 1919 1956 1982 1996
USER 384 386 612 749 809 837 846 862 880 889 898 1271 1421 1594
1673 1717 1768 1920 1957 1983 1997 2031
USRIOF 35 1982#
USRION 35 1723 1770 1956#
USROFX 1987#
USTIM 44# 992 1101
VIINT 902 965# 982 1004
VIIPI 966# 966 984 1011 1020 1029 1038 1047 1056 1065 1090
ZI 57#
$ARG2 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
$B 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
$CHR 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
$GARG 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
$SVUPC 970 1002 1077 1135
$SVUUO 970 1004 1077 1137
%ADDR 1365# 1365 1367 1367# 1369 1369# 1371 1371# 1373 1373# 1378 1378# 1380 1380#
1382 1382# 1384 1384# 1390 1390# 1392 1392# 1394 1394# 1396 1396# 1398 1398#
1400 1400# 1402 1402#
%ML 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
%MR 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380 SEQ 0762
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
.CLOSE 44# 2038
.CONI 9 309#
.CONO 9 328#
.DATAI 9 349#
.DATAO 9 368# 1313 1317
.DIAG 1425 1591# 1631 1737 1792 1800 1828
.EXIT 44# 2039
.FHSLF 1933 2001
.INPNT 22 1159#
.INPNX 1166 1173 1180 1183 1186 1189 1193#
.INWD1 24 897 1001 1124 1134 1159 1163 1193 1200#
.INWD2 24 1125 1169 1176 1201#
.JSYS 1590# 1620
.LA 1390 1398
.LADDR 1365
.LB 1371 1382
.LCCER 1367 1373 1378 1384 1394
.LCENA 1367 1373 1378 1384 1394
.LCJP 1367 1373 1378 1384 1394
.LCONT 1371 1382 1390 1392 1398 1400
.LD 1371 1382 1390 1394 1396 1398 1400
.LJ 1365 1367 1369 1373 1378 1380 1384 1394 1396 1402
.LJMAP 1365 1369 1380 1396 1402
.LMGC 1371 1382 1390 1392 1398 1400
.LOENA 1390 1398
.LOR 1371 1382 1390 1398
.LS0A 1390 1398
.LSD0 1371 1382
.LSELE 1371 1382 1390 1392 1398 1400
.MA 1390 1398
.MB 1371 1382
.MCCER 1367 1373 1378 1384 1394
.MCENA 1367 1373 1378 1384 1394
.MCJP 1367 1373 1378 1384 1394
.MCONT 1371 1382 1390 1392 1398 1400
.MD 1371 1382 1390 1394 1396 1398 1400
.MJ 1365 1367 1369 1373 1378 1380 1384 1394 1396 1402
.MJMAP 1365 1369 1380 1396 1402
.MMGC 1371 1382 1390 1392 1398 1400
.MOENA 1390 1398
.MOR 1371 1382 1390 1398
.MS0A 1390 1398
.MSD0 1371 1382
.MSELE 1371 1382 1390 1392 1398 1400
.PIOFF 21 846#
.PION 21 862# 999 1132
.RA 1390 1398
.RB 1371 1382
.RCCER 1367 1373 1378 1384 1394
.RCENA 1367 1373 1378 1384 1394
.RCJP 1367 1373 1378 1384 1394 SEQ 0763
.RCONT 1371 1382 1390 1392 1398 1400
.RD 1371 1382 1390 1394 1396 1398 1400
.RJ 1365 1367 1369 1373 1378 1380 1384 1394 1396 1402
.RJMAP 1365 1369 1380 1396 1402
.RMGC 1371 1382 1390 1392 1398 1400
.ROENA 1390 1398
.ROR 1371 1382 1390 1398
.RS0A 1390 1398
.RSD0 1371 1382
.RSELE 1371 1382 1390 1392 1398 1400
.UUO 1589# 1629
CALC 1365 1367 1369 1371 1373 1378 1380 1382 1384 1390 1392 1394 1396 1398
1400 1402 SEQ 0764
CONCAT 1365 1367 1369 1371 1373 1378 1380 1382 1384 1390 1392 1394 1396 1398
1400 1402
DELAY 249 1937
EPCAP 2005
ERCAL 2003 2006
ERSTR 1647
FIELD 1365 1367 1369 1371 1373 1378 1380 1382 1384 1390 1392 1394 1396 1398
1400 1402
FMSG 1565 1848 1863 1864 1865 1866 1867 1868 1869 1870 1871 1876 1877 1878
1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892
1893
FMSGC 1559 1562 1611 1683 1686 1697 1739 1802 2026
FMSGCD 1613 1642 1658 1698 1974
GET 135 150 174 176 196 198 230 252 254 277 295 315 335 355
374 435 437 446 467 469 489 491 509 511 540 621 623 679
681 795 797 831 833 854 872 910 912 936 1002 1004 1135 1137
1194 1196 1333 1355 1357 1432 1434 1468 1470 1493 1495 1568 1570 1639
1700 1702 1748 1750 1811 1813 1830 1832 1857 1859 1941 1943 1972 1976
1978 2007 2009
GETTAB 1599 1678
GO 387 400 413 414 430 434 445 459 465 481 487 502 507 522
527 528 538 588 601 604 617 648 661 662 669 670 724 739
742 754 758 767 768 772 778 786 788 790 849 850 853 865
866 870 871 908 989 999 1094 1098 1108 1110 1111 1115 1117 1118
1123 1132 1267 1268 1294 1303 1309 1311 1313 1317 1319 1330 1422 1426
1489 1490 1491 1566 1591 1600 1614 1625 1634 1643 1648 1649 1650 1659
1679 1699 1723 1724 1738 1740 1770 1772 1798 1803 1808 1962 1967 1971
2025 2038 2039
HALT 2033
JEN 1004 1137
JRSTF 1637 1752 1985
JSYS 1935
MFLD 1365# 1365 1367# 1367 1369# 1369 1371# 1371 1373# 1373 1378# 1378 1380# 1380
1382# 1382 1384# 1384 1390# 1390 1392# 1392 1394# 1394 1396# 1396 1398# 1398
1400# 1400 1402# 1402
MWORD 1365 1367 1369 1371 1373 1378 1380 1382 1384 1390 1392 1394 1396 1398
1400 1402
PCRL 1492
PCRLF 1558 1567 1741 1804 2030
PNT1 1486
PNT1F 1612
PNT6F 2029
PNTADR 1467
PNTDEC 1464 1541
PNTHW 1451 1501 1538 1850
PNTMSF 1559 1562 1565 1611 1613 1642 1658 1684 1686 1697 1698 1739 1802 1848
1863 1864 1865 1866 1867 1868 1869 1870 1871 1876 1877 1878 1879 1880
1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1974
2026
PNTMSG 423 427 432 529 539 1165 1168 1172 1175 1179 1182 1185 1188 1304
1449 1452 1454 1455 1456 1457 1458 1459 1460 1461 1462 1465 1482 1488
1499 1506 1511 1512 1513 1514 1515 1521 1522 1523 1524 1525 1529 1536
1539 1542 SEQ 0765
PNTOCF 1561 1564
PNTOCS 1171 1178 1531 1544
PUT 131 145 167 169 190 192 226 240 242 272 290 311 330 351
370 398 400 443 457 459 479 481 500 502 521 583 585 643
645 718 720 811 828 848 864 900 902 921 968 970 1013 1022
1031 1040 1049 1058 1067 1075 1077 1161 1163 1262 1264 1323 1416 1418
1447 1449 1480 1482 1555 1557 1597 1675 1677 1721 1723 1773 1775 1820
1822 1838 1840 1924 1926 1959 1961 1999 2001
RGET 174 196 252 435 467 489 509 621 679 795 831 910 1002 1135
1194 1355 1432 1468 1493 1568 1700 1748 1811 1830 1857 1941 1976 2007
RPCAP 2002
RPUT 167 190 240 398 457 479 500 583 643 718 900 968 1075 1161
1262 1416 1447 1480 1555 1675 1721 1773 1820 1838 1924 1959 1999
RTN 130 136 144 151 166 176 189 198 225 231 239 254 271 278
289 296 310 316 329 336 350 356 369 375 383 388 397 437
447 469 491 511 530 541 623 681 797 810 833 838 847 855
863 873 882 891 899 912 937 1113 1120 1126 1160 1196 1357 1415
1428 1434 1470 1495 1502 1532 1545 1570 1595 1640 1657 1674 1702 1718
1720 1742 1754 1769 1813 1832 1859 1921 1923 1943 1958 1965 1970 1978
1984 1987 1998 2003 2006 2009
SETUUO 1696
TMSG 1452 1454 1455 1456 1457 1458 1459 1460 1461 1462 1465 1487 1511 1512
1513 1514 1515 1521 1522 1523 1524 1525 1529 1539 1542
TMSGC 1168 1175 1449 1482 1499 1506 1536
TMSGCD 423 427 432 529 539 1165 1182 1185 1188 1304
TMSGD 1172 1179
TRPSET 1963
TTIDEC 1687
USRIO 1635 1968
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 1
DFNIAU MAC 6-Aug-83 09:31 UTILITY Routines Module SEQ 0766
1 SUBTTL UTILITY Routines Module
2
3 SALL
4
5 SEARCH DFNIA,MONSYM
6
7 ; Typeout/typin routines
8
9 ENTRY CLRBUF,TTYYES
10 ENTRY PPDEC,PPDECF,PSDN,ALTCHH,CONVSX,.PNTOC,.PNTDC,.PNTDP,.PNTDL
11
12 ; Clock handling routines/variables
13
14 ENTRY STCLOK,MONTIM,PTIME,RUNTME,PSTAMP,.DELAY
15 INTERN CURTIM,MAXTIM,DEBTIM,USTIM,FORPNT,LCHAR
16
17 ; TOPS-10/20 miscellaneous routines
18
19 ENTRY .CLOSE,.RESET,.EXIT
20
21 ; File handling routines
22
23 ENTRY FGETW,FINCMD,FOARG
24
25 ; Data pattern routines
26
27 ENTRY BUFGEN,BUFCOM,PATPNT,PATBUF
28 INTERN WRDERR
29
30 ; Switch handling routines
31
32 ENTRY .SWCHP,SWITT,.ISWT,SWCHPT,SWCOM
33 INTERN .RSWIT,.LSWIT,SWRGT
34
35 ; Miscellaneous routines
36
37 ENTRY PARSER,.COMM,.SARG,.OARG,.DARG,CHKARG,LASARG,DECYN,FIOFF
38 INTERN .CGOT,ARGUM,ARGFLG
39
40 ; Scope routine
41
42 ENTRY SCOPE1
43 INTERN SCOSW,SCOOFF
44
45 ; EXTERN's located in DFNIA1.MAC
46
47 EXTERN EDEBUG,UDEBUG,MDEBUG,CADDR,CWORDL,CWORDR,SPREP2,UVERSN
48 EXTERN TSTPNT,TSTNUM,TSTSUB,TSTPC,TSTREP,TSTOFF,ALTF,SADDR
49 EXTERN FINPUT,FINECH,TAKFIL,TPAT,CADDR,TFMFLG,TBSDFL
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 2
DFNIAU MAC 6-Aug-83 09:31 UTILITY Routines Module SEQ 0767
50
51 ; EXTERN's located in DFNIAI.MAC (Port Device Handling Routines module)
52
53 EXTERN RDCSR,GETLOG,LOGPNT,FFF
54
55
56 ;#********************************************************************
57 ; ZU - Address for use in DDT
58 ;#********************************************************************
59
60 000000' ZU: ; address of 00000'
61
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 3
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0768
62 SUBTTL Printout/Typin Routines
63
64 ;#********************************************************************
65 ;* CONVSX - Convert sixbit to octal
66 ;
67 ; Argument: AC1 - Contains a word of sixbit (which may or may not
68 ; be an octal number).
69 ;
70 ; Return: +1 - Error - not a valid octal number
71 ; +2 - Ok - number converted ok - in AC1
72 ;#********************************************************************
73
74 000000' 261 17 0 00 000000 CONVSX: RPUT (0,2) ; save AC's
75
76 000002' 202 01 0 00 006250' MOVEM 1,CONVSS# ; save argument
77 000003' 200 01 0 00 003631' MOVE 1,[POINT 6,CONVSS] ; set to get sixbit char
78 000004' 202 01 0 00 000027' MOVEM 1,CONVSP ; save the pointer
79 000005' 400 02 0 00 000000 SETZ 2, ; clear result
80 000006' 134 01 0 00 000027' CONVS0: ILDB 1,CONVSP ; get a char
81 000007' 322 01 0 00 000022' JUMPE 1,CONVS1 ; zero - all done - exit
82 000010' 301 01 0 00 000020 CAIL 1,20 ; see if its in octal range
83 000011' 303 01 0 00 000027 CAILE 1,27
84 000012' 254 00 0 00 000017' JRST CONVSE ; no - error
85 000013' 405 01 0 00 000007 ANDI 1,7 ; yes - save only digit
86 000014' 242 02 0 00 000003 LSH 2,3 ; multiply by 8
87 000015' 272 01 0 00 000002 ADDM 1,2 ; insert in number
88 000016' 254 00 0 00 000006' JRST CONVS0 ; get next digit
89
90 ; Error
91
92 000017' 262 17 0 00 000002 CONVSE: RGET (2,0) ; restore AC's
93
94 000021' 263 17 0 00 000000 RTN ; return +1
95
96 ; Done - put result into AC1
97
98 000022' 200 01 0 00 000002 CONVS1: MOVE 1,2
99 000023' 262 17 0 00 000002 RGET (2,0) ; restore AC's
100
101 000025' 350 00 0 17 000000 AOS (P) ; set up return +2
102 000026' 263 17 0 00 000000 RTN ; exit
103
104 000027' 000000 000000 CONVSP: 0 ; number to convert
105 000030' 000000 000000 0 ; trailing zeros
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 4
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0769
106
107 ;#********************************************************************
108 ;* ALTCHH - Handle altmode intercept
109 ;
110 ; If an altmode has been typed in response to the question asked
111 ; immediately before this call - exit through ALTMGO.
112 ;
113 ; If an altmode has not been typed - exit to the address specified
114 ; by the right half of the UUO (in $SVUUO).
115 ;#********************************************************************
116
117 000031' 261 17 0 00 000000 ALTCHH: PUT 0 ; save AC0
118 000032' 200 00 0 00 030232 MOVE $CHRIN ; get last character typed
119 000033' 306 00 0 00 000033 CAIN 33 ; altmode?
120 000034' 254 00 0 00 000042' JRST ALTCHX ; yes - handle
121 000035' 302 00 0 00 000175 CAIE 175 ; altmode?
122 000036' 306 00 0 00 000176 CAIN 176 ; altmode?
123 000037' 254 00 0 00 000042' JRST ALTCHX ; yes - handle
124 000040' 262 17 0 00 000000 GET 0 ; no - restore AC0
125 000041' 254 00 1 00 030113 JRST @$SVUUO ; exit
126
127 000042' 262 17 0 00 000000 ALTCHX: GET 0 ; restore AC0
128 000043' 262 17 0 00 006272' GET XX# ; take off return address
129 000044' 254 00 1 00 030063 JRST @ALTMGO ; go to intercept address
130
131
132 ;#********************************************************************
133 ;* CLRBUF - Clear input buffer
134 ;#********************************************************************
135
136 000045' 336 00 0 00 030037 CLRBUF: SKIPN USER ; user mode?
137 000046' 263 17 0 00 000000 RTN ; no - return
138 000047' 261 17 0 00 000000 RPUT (0,1) ; save some AC's
139
140 000051' 201 01 0 00 000100 MOVEI 1,100 ; set up TOPS-10 argument
141 000052' 332 00 0 00 030516 SKIPE MONTYP ; TOPS-20?
142 000053' 051 11 0 00 000000 CLRBFI ; yes - clear input buffer
143 000054' 336 00 0 00 030516 SKIPN MONTYP ; TOPS-10?
144 000055' 104 00 0 00 000100 CFIBF ; yes - clear input buffer
145 000056' 262 17 0 00 000001 RGET (1,0) ; restore AC's
146
147 000060' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 5
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0770
148
149 ;#********************************************************************
150 ;* TTYYES - Answer yes or no question
151 ;
152 ; Calling sequence: MOVE [FMSG <Question?>]
153 ; GO TTYYES
154 ; Return+1 ==> No
155 ; Return+2 ==> Yes
156 ;#********************************************************************
157
158 000061' 261 17 0 00 000000 TTYYES: RPUT (0,1,2) ; save AC's
159
160 000064' 202 00 0 00 000002 MOVEM 2 ; get printout in AC2
161 000065' 256 00 0 00 000002 TTYY0: XCT 2 ; print question
162 000066' 037 01 0 00 003632' FMSG < (Y or N) - > ; print Y or N section
163 000067' 037 10 0 00 000003 TTYY1: TTSIXB ; get it
164 ALTCHK [SKIPE $TWCNT ; did a timeout occur?
165 JRST TTYY0 ; no - error - reask question
166 000070' 007 00 0 00 003635' JRST TTYY1] ; yes - just keep looking for answer
167 000071' 404 00 0 00 003640' AND [770000,,0] ; mask out all but first character
168 000072' 241 00 0 00 000006 ROT 6 ; right justify byte
169 000073' 302 00 0 00 000071 CAIE 71 ; Y?
170 000074' 306 00 0 00 000056 CAIN 56 ; N?
171 000075' 334 00 0 00 000000 SKIPA ; yes - continue
172 000076' 254 00 0 00 000065' JRST TTYY0 ; neither - reask question
173 000077' 306 00 0 00 000071 CAIN 71 ; Y?
174 000100' 350 00 0 17 777775 AOS -3(P) ; increment return
175 000101' 262 17 0 00 000002 RGET (2,1,0) ; restore AC's
176
177 000104' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 6
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0771
178
179 ;#*********************************************************************
180 ;* PSDN - Prints signed decimal numbers
181 ;
182 ; PSDN prints the contents of AC0 as a signed decimal number followed
183 ; by a period. Leading zeros are suppressed.
184 ;#*********************************************************************
185
186 000105' 261 17 0 00 000000 PSDN: PUT
187 JUMPL [TMSG <->
188 MOVN (P)
189 000106' 321 00 0 00 003642' JRST .+1]
190 000107' 037 15 0 00 000000 PNTDEC ; print the number
191 000110' 037 00 0 00 003645' TMSG <.> ; follow with a period
192 000111' 262 17 0 00 000000 GET
193 000112' 263 17 0 00 000000 RTN
194
195 000113' 261 17 0 00 000000 PSDNF: PUT
196 JUMPL [FMSG <->
197 MOVN (P)
198 000114' 321 00 0 00 003646' JRST .+1]
199 000115' 037 15 0 00 000001 PNTDCF
200 000116' 037 01 0 00 000056 PNTCIF "."
201 000117' 262 17 0 00 000000 GET
202 000120' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 7
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0772
203
204 ;#********************************************************************
205 ;* .PNTOC - Print n digit octal number with leading zeros suppressed
206 ;#********************************************************************
207
208 000121' 261 17 0 00 000000 .PNTOC: RPUT (0,1,2,3,4,$SVUUO,$SVUPC)
209
210 000130' 135 01 0 00 003651' LDB 1,[POINT 23,$SVUUO,35] ; get address portion
211 000131' 661 01 0 00 200040 TLO 1,200040 ; make into a "MOVE 1," instruction
212 000132' 261 17 0 00 000001 PUT 1 ; put on stack
213 000133' 200 01 0 17 777772 MOVE 1,-6(P) ; restore AC1
214 000134' 256 00 0 17 000000 XCT (P) ; get number into AC1
215 000135' 262 17 0 00 006272' GET XX# ; pop off temporary stack location
216 000136' 214 02 0 00 000001 MOVM 2,1 ; get absolute value
217 000137' 243 02 0 00 000141' JFFO 2,.+2 ; find out where number starts
218 000140' 201 03 0 00 000043 MOVEI 3,^D35 ; assume at least one bit set
219 000141' 231 03 0 00 000003 IDIVI 3,3 ; calculate # of leading 0's there are
220 000142' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
221 000143' 270 02 0 00 000003 ADD 2,3 ; calculate number of spaces to
222 000144' 275 02 0 00 000014 SUBI 2,^D12 ; print
223 000145' 335 00 0 00 000001 SKIPGE 1 ; number is actually negative?
224 000146' 370 00 0 00 000002 SOS 2 ; yes - allow for minus sign
225 000147' 333 00 0 00 000002 SKIPLE 2 ; number of spaces still 1..n?
226 000150' 256 00 0 02 000163' XCT SPATAB(2) ; yes - print leading spaces
227 000151' 200 00 0 00 000001 MOVE 1 ; get number
228 000152' 037 16 0 00 000003 PNTOCS ; print it
229 000153' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,4,3,2,1,0)
230
231 000162' 263 17 0 00 000000 RTN ; exit
232
233 ; Table to print leading spaces
234
235 000163' 255 00 0 00 000000 SPATAB: JFCL ; 0
236 000164' 037 00 0 00 003653' TMSG < > ; 1
237 000165' 037 00 0 00 003654' TMSG < > ; 2
238 000166' 037 00 0 00 003655' TMSG < > ; 3
239 000167' 037 00 0 00 003656' TMSG < > ; 4
240 000170' 037 00 0 00 003657' TMSG < > ; 5
241 000171' 037 00 0 00 003661' TMSG < > ; 6
242 000172' 037 00 0 00 003663' TMSG < > ; 7
243 000173' 037 00 0 00 003665' TMSG < > ; 8
244 000174' 037 00 0 00 003667' TMSG < > ; 9
245 000175' 037 00 0 00 003671' TMSG < > ; 10
246 000176' 037 00 0 00 003674' TMSG < > ; 11
247 000177' 037 00 0 00 003677' TMSG < > ; 12
248 000200' 037 00 0 00 003702' TMSG < > ; 13
249 000201' 037 00 0 00 003705' TMSG < > ; 14
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 8
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0773
250
251 ;#********************************************************************
252 ;* .PNTDC - Print n digit decimal number with leading zeros suppressed
253 ;#********************************************************************
254
255 000202' 261 17 0 00 000000 .PNTDC: RPUT (0,1,2,3,4,5,$SVUUO,$SVUPC)
256
257 000212' 135 01 0 00 003651' LDB 1,[POINT 23,$SVUUO,35] ; get address portion
258 000213' 661 01 0 00 200040 TLO 1,200040 ; make into a "MOVE 1," instruction
259 000214' 261 17 0 00 000001 PUT 1 ; put on stack
260 000215' 200 01 0 17 777771 MOVE 1,-7(P) ; restore AC1
261 000216' 256 00 0 17 000000 XCT (P) ; get number into AC1
262 000217' 262 17 0 00 006272' GET XX# ; pop off temporary stack location
263 000220' 214 02 0 00 000001 MOVM 2,1 ; get absolute value
264 000221' 201 04 0 00 000001 MOVEI 4,1 ; digit count
265 000222' 231 02 0 00 000012 .PNTD0: IDIVI 2,^D10 ; divide by 10
266 000223' 322 02 0 00 000226' JUMPE 2,.PNTD1 ; remainder? no - go print
267 000224' 350 00 0 00 000004 AOS 4 ; yes - increment character count
268 000225' 254 00 0 00 000222' JRST .PNTD0 ; and keep looping
269 000226' 200 05 0 00 003710' .PNTD1: MOVE 5,[TMSG < >]
270 000227' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
271 000230' 370 00 0 00 000002 SOS 2 ; allow for initial space
272 000231' 317 02 0 00 000004 CAMG 2,4 ; overflow?
273 GO [IDIVI 1,^D1000 ; yes - divide by 1000
274 SUBI 4,3
275 MOVE 5,[TMSG <K>]
276 000232' 260 17 0 00 003713' RTN]
277 000233' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
278 000234' 370 00 0 00 000002 SOS 2 ; allow for initial space
279 000235' 317 02 0 00 000004 CAMG 2,4 ; overflow?
280 GO [IDIVI 1,^D1000 ; yes - divide by 1000
281 SUBI 4,3
282 MOVE 5,[TMSG <M>]
283 000236' 260 17 0 00 003721' RTN]
284 000237' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
285 000240' 370 00 0 00 000002 SOS 2 ; allow for initial space
286 000241' 274 02 0 00 000004 SUB 2,4 ; calculate number of spaces to print
287 000242' 335 00 0 00 000001 SKIPGE 1 ; number is actually negative?
288 000243' 370 00 0 00 000002 SOS 2 ; yes - allow for minus sign
289 000244' 333 00 0 00 000002 SKIPLE 2 ; number of spaces still 1..n?
290 000245' 256 00 0 02 000163' XCT SPATAB(2) ; yes - print leading spaces
291 000246' 200 00 0 00 000001 MOVE 1 ; get number
292 000247' 037 15 0 00 000000 PNTDEC ; print it
293 000250' 256 00 0 00 000005 XCT 5 ; print trailer
294 000251' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,5,4,3,2,1,0)
295
296 000261' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 9
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0774
297
298 ;#********************************************************************
299 ;* .PNTDL - Print decimal number left justified leading zeros suppressed
300 ;#********************************************************************
301
302 000262' 261 17 0 00 000000 .PNTDL: RPUT (0,1,2,3,4,5,$SVUUO,$SVUPC)
303
304 000272' 135 01 0 00 003651' LDB 1,[POINT 23,$SVUUO,35] ; get address portion
305 000273' 661 01 0 00 200040 TLO 1,200040 ; make into a "MOVE 1," instruction
306 000274' 261 17 0 00 000001 PUT 1 ; put on stack
307 000275' 200 01 0 17 777771 MOVE 1,-7(P) ; restore AC1
308 000276' 256 00 0 17 000000 XCT (P) ; get number into AC1
309 000277' 262 17 0 00 006272' GET XX# ; pop off temporary stack location
310 000300' 214 02 0 00 000001 MOVM 2,1 ; get absolute value
311 000301' 201 04 0 00 000001 MOVEI 4,1 ; digit count
312 000302' 231 02 0 00 000012 .PNTD2: IDIVI 2,^D10 ; divide by 10
313 000303' 322 02 0 00 000306' JUMPE 2,.PNTD3 ; remainder? no - go print
314 000304' 350 00 0 00 000004 AOS 4 ; yes - increment character count
315 000305' 254 00 0 00 000302' JRST .PNTD2 ; and keep looping
316 000306' 200 05 0 00 003726' .PNTD3: MOVE 5,[TMSG <. >]
317 000307' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
318 000310' 275 02 0 00 000002 SUBI 2,2 ; allow for initial space
319 000311' 317 02 0 00 000004 CAMG 2,4 ; overflow?
320 GO [IDIVI 1,^D1000 ; yes - divide by 1000
321 SUBI 4,3
322 MOVE 5,[TMSG <.K>]
323 000312' 260 17 0 00 003731' RTN]
324 000313' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
325 000314' 370 00 0 00 000002 SOS 2 ; allow for initial space
326 000315' 317 02 0 00 000004 CAMG 2,4 ; overflow?
327 GO [IDIVI 1,^D1000 ; yes - divide by 1000
328 SUBI 4,3
329 MOVE 5,[TMSG <.M>]
330 000316' 260 17 0 00 003737' RTN]
331 000317' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
332 000320' 370 00 0 00 000002 SOS 2 ; allow for initial space
333 000321' 274 02 0 00 000004 SUB 2,4 ; calculate number of spaces to print
334 000322' 335 00 0 00 000001 SKIPGE 1 ; number is actually negative?
335 000323' 370 00 0 00 000002 SOS 2 ; yes - allow for minus sign
336 000324' 200 00 0 00 000001 MOVE 1 ; get number
337 000325' 037 15 0 00 000000 PNTDEC ; print it
338 000326' 256 00 0 00 000005 XCT 5 ; print trailer
339 000327' 333 00 0 00 000002 SKIPLE 2 ; number of spaces still 1..n?
340 000330' 256 00 0 02 000163' XCT SPATAB(2) ; yes - print leading spaces
341 000331' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,5,4,3,2,1,0)
342
343 000341' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 10
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0775
344
345 ;#********************************************************************
346 ;* .PNTDP - Print n digit decimal number with leading zeros suppressed
347 ;#********************************************************************
348
349 000342' 261 17 0 00 000000 .PNTDP: RPUT (0,1,2,3,4,5,$SVUUO,$SVUPC)
350
351 000352' 135 01 0 00 003651' LDB 1,[POINT 23,$SVUUO,35] ; get address portion
352 000353' 661 01 0 00 200040 TLO 1,200040 ; make into a "MOVE 1," instruction
353 000354' 261 17 0 00 000001 PUT 1 ; put on stack
354 000355' 200 01 0 17 777771 MOVE 1,-7(P) ; restore AC1
355 000356' 256 00 0 17 000000 XCT (P) ; get number into AC1
356 000357' 262 17 0 00 006272' GET XX# ; pop off temporary stack location
357 000360' 214 02 0 00 000001 MOVM 2,1 ; get absolute value
358 000361' 201 04 0 00 000001 MOVEI 4,1 ; digit count
359 000362' 231 02 0 00 000012 .PNTP0: IDIVI 2,^D10 ; divide by 10
360 000363' 322 02 0 00 000366' JUMPE 2,.PNTP1 ; remainder? no - go print
361 000364' 350 00 0 00 000004 AOS 4 ; yes - increment character count
362 000365' 254 00 0 00 000362' JRST .PNTP0 ; and keep looping
363 000366' 200 05 0 00 003743' .PNTP1: MOVE 5,[TMSG <.>]
364 000367' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
365 000370' 370 00 0 00 000002 SOS 2 ; allow for initial space
366 000371' 317 02 0 00 000004 CAMG 2,4 ; overflow?
367 GO [IDIVI 1,^D1000 ; yes - divide by 1000
368 SUBI 4,3
369 MOVE 5,[TMSG <.K>]
370 000372' 260 17 0 00 003731' RTN]
371 000373' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
372 000374' 370 00 0 00 000002 SOS 2 ; allow for initial space
373 000375' 317 02 0 00 000004 CAMG 2,4 ; overflow?
374 GO [IDIVI 1,^D1000 ; yes - divide by 1000
375 SUBI 4,3
376 MOVE 5,[TMSG <.M>]
377 000376' 260 17 0 00 003737' RTN]
378 000377' 135 02 0 00 003652' LDB 2,[POINT 4,$SVUUO,12] ; get AC field
379 000400' 370 00 0 00 000002 SOS 2 ; allow for initial space
380 000401' 274 02 0 00 000004 SUB 2,4 ; calculate number of spaces to print
381 000402' 335 00 0 00 000001 SKIPGE 1 ; number is actually negative?
382 000403' 370 00 0 00 000002 SOS 2 ; yes - allow for minus sign
383 000404' 333 00 0 00 000002 SKIPLE 2 ; number of spaces still 1..n?
384 000405' 256 00 0 02 000163' XCT SPATAB(2) ; yes - print leading spaces
385 000406' 200 00 0 00 000001 MOVE 1 ; get number
386 000407' 037 15 0 00 000000 PNTDEC ; print it
387 000410' 256 00 0 00 000005 XCT 5 ; print trailer
388 000411' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,5,4,3,2,1,0)
389
390 000421' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 11
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0776
391
392 ;#********************************************************************
393 ;* PPDEC - Print decimal number in a field of size x.
394 ;
395 ; Call is: PDEC X,ADR
396 ;#********************************************************************
397
398 000422' 261 17 0 00 000000 PPDEC: RPUT (0,1,$SVUUO,$SVUPC) ; save ACs
399
400 000426' 200 00 1 00 030113 MOVE @$SVUUO ; get number to print
401 000427' 135 01 0 00 003652' LDB 1,[POINT 4,$SVUUO,12] ; get size field
402 000430' 322 00 0 00 000441' JUMPE PDECSS ; special print
403 000431' 250 01 0 00 030264 PDEC0: EXCH 1,RADLSC ; put in position
404 000432' 037 16 0 00 000000 PNTDS ; no - print the number
405 000433' 202 01 0 00 030264 MOVEM 1,RADLSC ; restore old field size
406 000434' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,1,0) ; restore ACs
407
408 000440' 263 17 0 00 000000 RTN ; exit
409
410 000441' 322 01 0 00 000431' PDECSS: JUMPE 1,PDEC0 ; make sure length field is specified
411 XCT [TMSG <0> ; print a bunch of spaces
412 TMSG <0>
413 TMSG < 0>
414 TMSG < 0>
415 TMSG < 0>
416 TMSG < 0>
417 TMSG < 0>
418 TMSG < 0>
419 TMSG < 0>
420 TMSG < 0>
421 TMSG < 0>
422 TMSG < 0>
423 TMSG < 0>
424 TMSG < 0>
425 TMSG < 0>
426 000442' 256 00 0 01 004005' TMSG < 0>](1)
427 000443' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,1,0) ; restore ACs
428
429 000447' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 12
DFNIAU MAC 6-Aug-83 09:31 Printout/Typin Routines SEQ 0777
430
431 ;#********************************************************************
432 ;* PPDECF - Force print decimal number in a field of size x.
433 ;
434 ; Call is: PDECF X,ADR
435 ;#********************************************************************
436
437 000450' 261 17 0 00 000000 PPDECF: RPUT (0,1,$SVUUO,$SVUPC) ; save ACs
438
439 000454' 200 00 1 00 030113 MOVE @$SVUUO ; get number to print
440 000455' 135 01 0 00 003652' LDB 1,[POINT 4,$SVUUO,12] ; get size field
441 000456' 322 00 0 00 000467' JUMPE PDECFS ; special print
442 000457' 250 01 0 00 030264 PDECF0: EXCH 1,RADLSC ; put in position
443 000460' 037 16 0 00 000001 PNTDSF ; no - print the number
444 000461' 202 01 0 00 030264 MOVEM 1,RADLSC ; restore old field size
445 000462' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,1,0) ; restore ACs
446
447 000466' 263 17 0 00 000000 RTN ; exit
448
449 000467' 322 01 0 00 000457' PDECFS: JUMPE 1,PDECF0 ; make sure length field is specified
450 XCT [FMSG <0> ; print a bunch of spaces
451 FMSG <0>
452 FMSG < 0>
453 FMSG < 0>
454 FMSG < 0>
455 FMSG < 0>
456 FMSG < 0>
457 FMSG < 0>
458 FMSG < 0>
459 FMSG < 0>
460 FMSG < 0>
461 FMSG < 0>
462 FMSG < 0>
463 FMSG < 0>
464 FMSG < 0>
465 000470' 256 00 0 01 004025' FMSG < 0>](1)
466 000471' 262 17 0 00 030114 RGET ($SVUPC,$SVUUO,1,0) ; restore ACs
467
468 000475' 263 17 0 00 000000 RTN ; exit
469
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 13
DFNIAU MAC 6-Aug-83 09:31 Clock Handling Routines SEQ 0778
470 SUBTTL Clock Handling Routines
471
472 ;#********************************************************************
473 ;* STCLOK - Initialize program runtime clock
474 ;
475 ; This routine initializes the clock for the program. It is used in
476 ; conjunction with routine "RUNTME".
477 ;
478 ; In exec mode this routine resets, restarts and reads the current
479 ; microsecond time clock into memory for reference by the runtime
480 ; calculator "RUNTME". The clock is set up so it causes a hardware
481 ; interrupt, it merely free runs.
482 ;
483 ; In user mode the program run time is obtained in milliseconds with
484 ; a monitor call, converted to microseconds and stored for future
485 ; reference by the runtime calculator "RUNTME".
486 ;
487 ; This routine may be called anytime to reset the program runtime.
488 ;
489 ; Call Sequence: GO STCLOK ; calls the routine
490 ; RTN-1 ; always returns +1
491 ;#********************************************************************
492
493 000476' 261 17 0 00 000000 STCLOK: RPUT (0,1) ; save AC's
494
495 000500' 332 00 0 00 030037 SKIPE USER ; in user mode?
496 000501' 254 00 0 00 000510' JRST STCU ; yes
497 000502' 7 024 20 0 00 420000 CONO 24,1B18!1B22 ; stop and reset the clock
498 000503' 402 00 0 00 000510 SETZM 510 ; clear EPT locations
499 000504' 402 00 0 00 000511 SETZM 511 ; for timer data
500 000505' 7 024 20 0 00 002000 CONO 24,1B25 ; turns the meter on
501 000506' 7 020 04 0 00 000517' DATAI 20,TMRST1 ; save a double word
502 000507' 254 00 0 00 000514' JRST STCX ; done - exit
503 000510' 476 00 0 00 006261' STCU: SETOM INITM# ; invalidate initial time
504 000511' 260 17 0 00 000521' GO MONTIM ; get monitor time in microseconds
505 000512' 255 00 0 00 000000 JFCL ; in meter format
506 000513' 124 01 0 00 000517' DMOVEM 1,TMRST1 ; save a double word
507 000514' 262 17 0 00 000001 STCX: RGET (1,0) ; restore
508
509 000516' 263 17 0 00 000000 RTN ; exit
510
511 000517' TMRST1: BLOCK 2 ; 2 word initial time storage
512
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 14
DFNIAU MAC 6-Aug-83 09:31 Clock Handling Routines SEQ 0779
513
514 ;#********************************************************************
515 ;* MONTIM - Read program runtime from monitor
516 ;
517 ; Here is a subroutine called by both STCLOK and RUNTME. It reads
518 ; current program runtime in milliseconds from the monitor, converts
519 ; the time to microseconds and positions the microsecond count in AC2
520 ; and AC1 in the same 59 bit format you get when you read the meter
521 ; board microsecond clock. The microsecond count is then returned in
522 ; AC1 and AC2 .....
523 ;
524 ; Call: GO MONTIM ; call the routine
525 ; RTN+1 ; microsecond time in AC1 and AC2
526 ;#********************************************************************
527
528 000521' 261 17 0 00 000003 MONTIM: PUT 3 ; save AC3 (RUNTM JSYS destroys it)
529 000522' 332 00 0 00 030516 SKIPE MONTYP ; TOPS10?
530 000523' 254 00 0 00 000530' JRST MONTI0 ; no - continue
531 000524' 047 01 0 00 000022 CALLI 1,22 ; yes - get current time in jiffies
532 000525' 400 02 0 00 000000 SETZ 2,
533 000526' 225 01 0 00 040433 MULI 1,^D16667
534 000527' 254 00 0 00 000533' JRST MONTI1
535 000530' 201 01 0 00 400000 MONTI0: MOVEI 1,.FHSLF ; get process handle
536 000531' 104 00 0 00 000014 TIME ; does a TIME JSYS
537 000532' 320 17 0 00 003716' ERCAL [RTN] ; error not likely
538 000533' 335 00 0 00 006261' MONTI1: SKIPGE INITM# ; initial time valid?
539 000534' 202 01 0 00 006261' MOVEM 1,INITM# ; no - set it up
540 000535' 274 01 0 00 006261' SUB 1,INITM# ; subtract initial time
541 000536' 400 02 0 00 000000 SETZ 2, ; clear AC2
542 000537' 225 01 0 00 001750 MULI 1,^D1000 ; converts ms to us
543 000540' 244 01 0 00 000014 ASHC 1,^D12 ; put data in proper microsecond format
544 000541' 262 17 0 00 000003 GET 3 ; restore AC3
545 000542' 263 17 0 00 000000 RTN ; and exit
546
547
548 ;#********************************************************************
549 ;* PTIME - Print time of day
550 ;#********************************************************************
551
552 000543' 261 17 0 00 000003 PTIME: PUT 3 ; save AC3
553 000544' 200 03 0 00 004045' MOVE 3,[JFCL] ; non-zero for RUNTME
554 000545' 402 00 0 00 006255' SETZM FORPNT# ; clear forced print flag
555 000546' 260 17 0 00 000557' GO RUNTME ; go print out time
556 000547' 262 17 0 00 000003 GET 3 ; restore AC3
557 000550' 263 17 0 00 000000 RTN ; return
558
559 000551' 261 17 0 00 000003 PTIMEF: PUT 3 ; save AC3
560 000552' 200 03 0 00 004045' MOVE 3,[JFCL] ; non-zero for RUNTME
561 000553' 476 00 0 00 006255' SETOM FORPNT ; set forced print flag
562 000554' 260 17 0 00 000557' GO RUNTME ; go print out time
563 000555' 262 17 0 00 000003 GET 3 ; restore AC3
564 000556' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 15
DFNIAU MAC 6-Aug-83 09:31 Clock Handling Routines SEQ 0780
565
566 ;#********************************************************************
567 ;* RUNTME - Calculate and print program runtime
568 ;
569 ; This reports the elapsed time (exec or user mode) since the last
570 ; call to the initialize routine "STCLOK". The runtime is printed on the
571 ; current line and no line feed is printed at the end of the message.
572 ; It is printed as " 1h 20m 48s"
573 ;
574 ; In exec mode the time is calculated by using the microsecond clock
575 ; that was initialized in the call to "STCLOK". In user mode, "RUNTIME"
576 ; monitor calls are used and the difference is calculated from the last
577 ; call to "STCLOK".
578 ;
579 ; Arguments: AC3 - contains message to print - if zero then the time
580 ; is only calculated and the routine returns (in TMSG format). The
581 ; current time is always placed in CURTIM (in seconds).
582 ;
583 ; Call sequence: GO RUNTME ; call the routine
584 ; RTN+1 ; always returns +1
585 ;#********************************************************************
586
587 000557' 261 17 0 00 000000 RUNTME: RPUT (0,1,2,3) ; save AC's
588
589
590 ; Get the microsecond count
591
592 000563' 332 00 0 00 030037 SKIPE USER ; in user mode?
593 000564' 254 00 0 00 000567' JRST RUNTM0 ; yes
594 000565' 7 020 04 0 00 000647' DATAI 20,TMRUN1 ; exec mode. get dble word time
595 000566' 254 00 0 00 000571' JRST RUNTM1 ; go to common code
596 000567' 260 17 0 00 000521' RUNTM0: GO MONTIM ; get time from mon calls to AC1,AC2
597 000570' 124 01 0 00 000647' DMOVEM 1,TMRUN1 ; save microsecond count in double word
598
599 ; Calculate time
600
601 000571' 120 00 0 00 000647' RUNTM1: DMOVE TMRUN1 ; get current run time
602 000572' 115 00 0 00 000517' DSUB TMRST1 ; calculates actual run time
603 000573' 244 00 0 00 777764 ASHC -^D12 ; right justify
604 000574' 234 00 0 00 004046' DIV [^D1000] ; convert us to ms
605 000575' 202 00 0 00 000653' MOVEM DEBTIM ; save in debug time location
606 000576' 202 01 0 00 000654' MOVEM 1,USTIM ; save microseconds also
607 000577' 230 00 0 00 004046' IDIV [^D1000] ; convert ms to seconds
608 000600' 202 00 0 00 000651' MOVEM CURTIM ; save in current time location
609
610 ; Exit if not printing
611
612 000601' 336 00 0 00 000003 SKIPN 3 ; message to print?
613 JRST [RGET (3,2,1,0) ; no - restore AC's and
614 000602' 254 00 0 00 004047' RTN] ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 16
DFNIAU MAC 6-Aug-83 09:31 Clock Handling Routines SEQ 0781
615
616 ; Print the time
617
618 000603' 256 00 0 00 000003 XCT 3 ; print the message
619 000604' 231 00 0 00 000074 IDIVI ^D60 ; compute minutes, seconds
620 000605' 202 01 0 00 000003 MOVEM 1,3 ; save seconds
621 000606' 231 00 0 00 000074 IDIVI ^D60 ; compute hours, minutes
622 000607' 322 00 0 00 000620' JUMPE RUNTM2 ; print hours if not zero
623
624 ; Print hours
625
626 000610' 332 00 0 00 006255' SKIPE FORPNT ; forced print?
627 000611' 037 15 0 00 000001 PNTDCF ; yes - print hours
628 000612' 336 00 0 00 006255' SKIPN FORPNT ; forced print?
629 000613' 037 15 0 00 000000 PNTDEC ; no - print hours
630
631 000614' 332 00 0 00 006255' SKIPE FORPNT ; forced print?
632 000615' 037 01 0 00 004054' FMSG <h > ; yes
633 000616' 336 00 0 00 006255' SKIPN FORPNT ; forced print?
634 000617' 037 00 0 00 004054' TMSG <h > ; no
635
636 ; Print minutes
637
638 000620' 200 00 0 00 000001 RUNTM2: MOVE 1
639 000621' 332 00 0 00 006255' SKIPE FORPNT ; forced print?
640 000622' 037 15 0 00 000001 PNTDCF ; yes - print minutes
641 000623' 336 00 0 00 006255' SKIPN FORPNT ; forced print?
642 000624' 037 15 0 00 000000 PNTDEC ; no - print minutes
643 000625' 332 00 0 00 006255' SKIPE FORPNT ; forced print?
644 000626' 037 01 0 00 004055' FMSG <m > ; yes
645 000627' 336 00 0 00 006255' SKIPN FORPNT ; forced print?
646 000630' 037 00 0 00 004055' TMSG <m > ; no
647
648 ; Print seconds
649
650 000631' 200 00 0 00 000003 MOVE 3
651 000632' 332 00 0 00 006255' SKIPE FORPNT ; forced print?
652 000633' 037 15 0 00 000001 PNTDCF ; yes - print seconds
653 000634' 336 00 0 00 006255' SKIPN FORPNT ; forced print?
654 000635' 037 15 0 00 000000 PNTDEC ; no - print seconds
655 000636' 332 00 0 00 006255' SKIPE FORPNT ; forced print?
656 000637' 037 01 0 00 004056' FMSG <s >
657 000640' 336 00 0 00 006255' SKIPN FORPNT ; forced print?
658 000641' 037 00 0 00 004057' TMSG <s>
659
660 000642' 262 17 0 00 000003 RUNTMX: RGET (3,2,1,0) ; restore AC's
661
662 000646' 263 17 0 00 000000 RTN ; and exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 17
DFNIAU MAC 6-Aug-83 09:31 Clock Handling Routines SEQ 0782
663
664 ; Timer routine storage
665
666 000647' TMRUN1: BLOCK 2 ; microsecond runtime saved here...
667
668 000651' 000000 000000 CURTIM: 0 ; current time in seconds
669 000652' 000000 000000 MAXTIM: 0 ; maximum wait time
670 000653' 000000 000000 DEBTIM: 0 ; current time in milliseconds
671 000654' 000000 000000 USTIM: 0 ; current usecs (additional to DEBTIM)
672
673
674 ;#********************************************************************
675 ;* PSTAMP - Check for an 'S' typed.
676 ;#********************************************************************
677
678 000655' 261 17 0 00 000000 PSTAMP: RPUT (0,1,2,3,4) ; save AC's
679
680 000662' 200 00 0 00 006262' MOVE LCHAR# ; get last character typed
681 000663' 306 00 0 00 000123 CAIN 123 ; was it an upper case-s?
682 000664' 254 00 0 00 000671' JRST PSTAM0 ; yes - print current statistics
683 000665' 306 00 0 00 000163 CAIN 163 ; lower case-s?
684 000666' 254 00 0 00 000671' JRST PSTAM0 ; yes - print current statistics
685 000667' 302 00 0 00 000023 CAIE 023 ; control-s?
686 000670' 254 00 0 00 000707' JRST PSTAMX ; no - exit
687
688 ; Print runtime data
689
690 000671' 037 01 0 00 004060' PSTAM0: FMSGC <** Test >
691 000672' 200 00 0 00 000000* MOVE TSTNUM ; get test number
692 000673' 037 17 0 00 000003 PNTOCF ; print it
693 000674' 200 00 0 00 000000* MOVE TSTSUB ; get subtest number
694 000675' 322 00 0 00 000700' JUMPE .+3 ; zero? yes - continue
695 000676' 037 01 0 00 003641' FMSG <-> ; no - print it
696 000677' 037 17 0 00 000003 PNTOCF
697 000700' 037 01 0 00 004063' FMSG < at >
698 000701' 260 17 0 00 000551' GO PTIMEF ; print current time
699 000702' 037 01 0 00 004064' FMSG < in Pass >
700 000703' 200 00 0 00 000000* MOVE TSTREP ; get pass count
701 000704' 350 00 0 00 000000 AOS
702 000705' 037 15 0 00 000001 PNTDCF ; print it
703 000706' 037 01 0 00 004066' FMSGD <. **>
704
705 000707' 402 00 0 00 006262' PSTAMX: SETZM LCHAR ; clear last character typed location
706 000710' 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
707
708 000715' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 18
DFNIAU MAC 6-Aug-83 09:31 Clock Handling Routines SEQ 0783
709
710 ;#********************************************************************
711 ;* .DELAY - Delay a specified amount of time (in milliseconds)
712 ;#********************************************************************
713
714 000716' 261 17 0 00 000000 .DELAY: RPUT (0,1,2,3,$SVUUO,$SVUPC) ; save AC's ...
715
716 000724' 332 00 0 00 030037 SKIPE USER ; user mode?
717 000725' 254 00 0 00 000740' JRST .DELA1 ; yes - go handle
718
719 ; Exec mode - inspect timers
720
721 000726' 135 00 0 00 003651' LDB [POINT 23,$SVUUO,35] ; get address (millisecond count)
722 000727' 400 03 0 00 000000 SETZ 3, ; set up so RUNTME doesn't print time
723 000730' 260 17 0 00 000557' GO RUNTME ; get initial time
724 000731' 200 02 0 00 000653' MOVE 2,DEBTIM ; get time in msecs
725 000732' 272 00 0 00 000002 ADDM 2 ; add in the time to delay
726 000733' 400 03 0 00 000000 .DELA0: SETZ 3, ; set up so RUNTME doesn't print time
727 000734' 260 17 0 00 000557' GO RUNTME ; get time
728 000735' 313 02 0 00 000653' CAMLE 2,DEBTIM ; done?
729 000736' 254 00 0 00 000733' JRST .DELA0 ; no - keep checking time
730 000737' 254 00 0 00 000742' JRST .DELAX ; yes - exit
731
732 ; User mode - use DISMS JSYS
733
734 000740' 135 01 0 00 003651' .DELA1: LDB 1,[POINT 23,$SVUUO,35] ; get address (millisecond count)
735 000741' 104 00 0 00 000167 DISMS ; wait
736
737 ; Exit
738
739 000742' 262 17 0 00 030114 .DELAX: RGET ($SVUPC,$SVUUO,3,2,1,0) ; restore AC's ...
740
741 000750' 263 17 0 00 000000 RTN ; exit
742
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 19
DFNIAU MAC 6-Aug-83 09:31 TOPS10/20 Related Routines SEQ 0784
743 SUBTTL TOPS10/20 Related Routines
744
745 ;#********************************************************************
746 ;* .RESET - Subroutine to issue a RESET JSYS/UUO
747 ;
748 ; In exec mode it does nothing. In user mode it issues the appropriate
749 ; RESET UUO/JSYS that may be desirable at the start or end of a program.
750 ;#********************************************************************
751
752 000751' 336 00 0 00 030037 .RESET: SKIPN USER ; user mode?
753 000752' 263 17 0 00 000000 RTN ; no - exit
754 000753' 336 00 0 00 030516 SKIPN MONTYP ; TOPS20? (non-zero)
755 000754' 254 00 0 00 000760' JRST RST10 ; no - TOPS10
756 000755' 104 00 0 00 000147 RESET ; do a RESET
757 000756' 320 17 0 00 003716' ERCAL [RTN] ; error rtn
758 000757' 254 00 0 00 000762' JRST RSTX ; to exit code
759 000760' 047000 000000 RST10: 047000,,000000 ; RESET UUO, CALLI AC,0 ...
760 000761' 255 00 0 00 000000 JFCL ; error rtn
761 000762' 263 17 0 00 000000 RSTX: RTN ; exit
762
763
764 ;#********************************************************************
765 ;* .CLOSE - Subroutine to close opened files
766 ;
767 ; This does nothing in exec mode. In user mode under TOPS10 and
768 ; TOPS20 it takes the necessary steps to close the output file which
769 ; is necessary if you've been outputting to a disk file and wish to
770 ; leave the program ....
771 ;
772 ; Note *** Once you do a close from a Ctrl-C intercept the PNT File
773 ; gets closed correctly but if you continue, the SUBRTN PKG creates a
774 ; new PNT File and you lose the old one.
775 ;#********************************************************************
776
777 000763' 336 00 0 00 030037 .CLOSE: SKIPN USER ; skip if we're in user mode
778 000764' 263 17 0 00 000000 RTN ; exec mode
779 000765' 037 05 0 00 000002 DROPDV ; SUBRTN PKG UUO or it won't work ok
780 000766' 261 17 0 00 000001 PUT 1 ; save AC
781 000767' 336 00 0 00 030516 SKIPN MONTYP ; TOPS10?
782 000770' 254 00 0 00 000775' JRST CLS10 ; yes - go handle
783 000771' 201 01 0 00 400000 MOVEI 1,.FHSLF ; no - get fork handle
784 000772' 104 00 0 00 000034 CLZFF ; close all files JSYS ..
785 000773' 320 17 0 00 003716' ERCAL [RTN] ; error return
786 000774' 254 00 0 00 000777' JRST CLSX ; exit
787 000775' 070000 000000 CLS10: 070000,,000000 ; CLOSE D,0 UUO ... closes files
788 000776' 255 00 0 00 000000 JFCL
789 000777' 262 17 0 00 000001 CLSX: GET 1 ; restore AC
790 001000' 263 17 0 00 000000 RTN ; and exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 20
DFNIAU MAC 6-Aug-83 09:31 TOPS10/20 Related Routines SEQ 0785
791
792 ;#********************************************************************
793 ;* .EXIT - Subroutine to exit job in user mode
794 ;
795 ; In exec mode it does nothing. In user mode it issues the appropriate
796 ; EXIT UUO or HALTF JSYS getting you back to monitor level. This also
797 ; allows you to continue with a continue command.
798 ;
799 ; Call seq:
800 ; GO .EXIT ; the call
801 ; RTN1 ; rtn+1 always
802 ;#********************************************************************
803
804 001001' 336 00 0 00 030037 .EXIT: SKIPN USER ; user mode?
805 001002' 263 17 0 00 000000 RTN ; no - exec mode - exit
806
807 001003' 261 17 0 00 000001 PUT 1 ; save AC1
808 001004' 336 00 0 00 030516 SKIPN MONTYP ; TOPS20?
809 001005' 254 00 0 00 001012' JRST EXT10 ; no - TOPS10
810
811 001006' 201 01 0 00 400000 MOVEI 1,.FHSLF ; get fork handle
812 001007' 104 00 0 00 000170 HALTF ; halt... to monitor level
813 001010' 255 00 0 00 000000 JFCL ; here on a continue command
814 001011' 254 00 0 00 001014' JRST EXTX ; to exit code
815
816 001012' 047040 000012 EXT10: 047040,,000012 ; EXIT 1, UUO (CALLI 12 F=1)
817 001013' 255 00 0 00 000000 JFCL ; here on a continue command
818
819 001014' 262 17 0 00 000001 EXTX: GET 1 ; restore the AC
820 001015' 263 17 0 00 000000 RTN ; exit
821
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 21
DFNIAU MAC 6-Aug-83 09:31 File Handling Routines SEQ 0786
822 SUBTTL File Handling Routines
823
824 ;#*********************************************************************
825 ;* CHRIN - Routine to read an ASCII character from the selected file.
826 ;#*********************************************************************
827
828 001016' 037 06 0 00 000004 CHRIN: FREAD ; tell DIAMON to get a file character
829 001017' 263 17 0 00 000000 RTN ; error or eof detected during reading
830 001020' 322 00 0 00 001016' JUMPE CHRIN ; eat all null characters
831 001021' 350 00 0 17 000000 AOS (P) ; normal exit +2
832 001022' 263 17 0 00 000000 RTN
833
834
835 ;#*********************************************************************
836 ;* CHRINS - Routine to read an ASCII character from the selected file.
837 ;#*********************************************************************
838
839 001023' 261 17 0 00 000000 CHRINS: PUT 0 ; save AC0
840 001024' 037 06 0 00 000004 FREAD ; get a file character
841 001025' 254 00 0 00 001035' JRST CHRINX ; error or eof detected during reading
842 001026' 322 00 0 00 001024' JUMPE .-2 ; eat all null characters
843 001027' 350 00 0 17 777777 AOS -1(P) ; normal exit +2
844 001030' 202 00 0 17 000000 MOVEM (P) ; put character on stack
845 001031' 332 00 0 00 000000* SKIPE FINECH ; echo flag set?
846 001032' 037 12 0 00 000001 PNTCHF ; yes - echo the character
847 001033' 262 17 0 00 000000 GET 0 ; restore AC0
848 001034' 263 17 0 00 000000 RTN
849
850 001035' 037 01 0 00 004070' CHRINX: FMSGC <[End of > ; end of file
851 001036' 200 00 0 00 000000* MOVE TAKFIL ; print file name
852 001037' 037 01 0 00 000002 PNTSXF
853 001040' 037 01 0 00 000056 PNTCIF "."
854 001041' 200 00 0 00 000000# MOVE TAKFIL+1
855 001042' 037 01 0 00 000002 PNTSXF
856 001043' 037 01 0 00 004073' FMSGD <]>
857 001044' 402 00 0 00 000000* SETZM FINPUT ; clear 'file input' flag
858 001045' 262 17 0 00 000000 GET 0 ; restore AC0
859 001046' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 22
DFNIAU MAC 6-Aug-83 09:31 File Handling Routines SEQ 0787
860
861 ;#********************************************************************
862 ;* FGETW - Get microword entry from file
863 ;
864 ; Arguments: None (but file is already open and ready for use)
865 ;
866 ; Function: Read a file entry consisting of '[ADDR]=Microword Data'
867 ;
868 ; Returns: +1 - Error/EOF occurred
869 ; +2 - OK - Address is in CADDR
870 ; Microword is in CWORDL,CWORDR
871 ;#********************************************************************
872
873 001047' 261 17 0 00 000000 FGETW: RPUT (0,1,2) ; save AC's
874
875 001052' 402 00 0 00 000000* SETZM CADDR ; clear address
876 001053' 402 00 0 00 000000* SETZM CWORDL ; clear left half
877 001054' 402 00 0 00 000000* SETZM CWORDR ; clear right half
878 001055' 260 17 0 00 001114' GO FGETA ; get load address
879 001056' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
880 001057' 202 01 0 00 001052* MOVEM 1,CADDR ; save address
881 001060' 260 17 0 00 001016' GO CHRIN ; search for the = sign
882 001061' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
883 001062' 302 00 0 00 000075 CAIE "=" ; equal sign?
884 001063' 254 00 0 00 001060' JRST .-3 ; keep looking
885 001064' 260 17 0 00 001136' GO FGETD ; get a 4 digit number
886 001065' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
887 001066' 137 01 0 00 004074' DPB 1,[POINT 12,CWORDL,17] ; save it
888 001067' 260 17 0 00 001136' GO FGETD ; get a 4 digit number
889 001070' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
890 001071' 137 01 0 00 004075' DPB 1,[POINT 12,CWORDL,29] ; save it
891 001072' 260 17 0 00 001136' GO FGETD ; get a 4 digit number
892 001073' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
893 001074' 246 01 0 00 777772 LSHC 1,-^D6 ; right shift 6 bits
894 001075' 137 01 0 00 004076' DPB 1,[POINT 6,CWORDL,35] ; save 4 of the bits
895 001076' 400 01 0 00 000000 SETZ 1, ; clear AC1
896 001077' 246 01 0 00 000006 LSHC 1,^D6 ; left shift 6 bits
897 001100' 137 01 0 00 004077' DPB 1,[POINT 6,CWORDR,11] ; save remaining 6 bits
898 001101' 260 17 0 00 001136' GO FGETD ; get a 4 digit number
899 001102' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
900 001103' 137 01 0 00 004100' DPB 1,[POINT 12,CWORDR,23] ; save it
901 001104' 260 17 0 00 001136' GO FGETD ; get a 4 digit number
902 001105' 254 00 0 00 001110' JRST FGETWE ; error/EOF occurred
903 001106' 137 01 0 00 004101' DPB 1,[POINT 12,CWORDR,35] ; save it
904 001107' 350 00 0 17 777775 AOS -3(P) ; done - set up RTN+2
905 001110' 262 17 0 00 000002 FGETWE: RGET (2,1,0) ; restore AC's
906
907 001113' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 23
DFNIAU MAC 6-Aug-83 09:31 File Handling Routines SEQ 0788
908
909 ;#********************************************************************
910 ;* FGETA - Obtain microcode load address 'ADDR:' from file
911 ;
912 ; Returns: +1 - Error/EOF occurred
913 ; +2 - OK - AC1 contains octal address
914 ;#********************************************************************
915
916 001114' 261 17 0 00 000000 FGETA: PUT 0 ; save AC0
917 001115' 260 17 0 00 001016' FGETA0: GO CHRIN ; get a character
918 001116' 254 00 0 00 001126' JRST FGETAE ; exit - error or EOF occurred
919 001117' 306 00 0 00 000073 CAIN ";" ; comment character?
920 001120' 260 17 0 00 001130' GO FSKIPC ; yes - go skip it
921 001121' 302 00 0 00 000133 CAIE "[" ; found beginning of address?
922 001122' 254 00 0 00 001115' JRST FGETA0 ; no - keep looking
923 001123' 260 17 0 00 001136' GO FGETD ; get up to 4 digit # ended by CR or ]
924 001124' 254 00 0 00 001126' JRST FGETAE ; exit - error or EOF occurred
925 001125' 350 00 0 17 777777 AOS -1(P)
926 001126' 262 17 0 00 000000 FGETAE: GET 0 ; restore AC0
927 001127' 263 17 0 00 000000 RTN ; return
928
929 001130' 260 17 0 00 001016' FSKIPC: GO CHRIN ; get a character
930 001131' 254 00 0 00 001126' JRST FGETAE ; exit - error or EOF occurred
931 001132' 302 00 0 00 000015 CAIE 15 ; CRLF yet?
932 001133' 306 00 0 00 000012 CAIN 12
933 001134' 263 17 0 00 000000 RTN ; yes - return
934 001135' 254 00 0 00 001130' JRST FSKIPC ; no - keep looking for it
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 24
DFNIAU MAC 6-Aug-83 09:31 File Handling Routines SEQ 0789
935
936 ;#********************************************************************
937 ;* FGETD - Obtain microcode data entry from file (4 digits).
938 ;
939 ; Returns: +1 - Error/EOF occurred
940 ; +2 - OK - AC1 contains octal data
941 ;#********************************************************************
942
943 001136' 261 17 0 00 000000 FGETD: RPUT (0,2) ; save AC's
944
945 001140' 400 01 0 00 000000 SETZ 1, ; clear result
946 001141' 201 02 0 00 000004 MOVEI 2,4 ; up to 4 digits
947 001142' 260 17 0 00 001016' FGETD0: GO CHRIN ; get a digit
948 001143' 254 00 0 00 001160' JRST FGETDE ; error - exit
949 001144' 306 00 0 00 000015 CAIN 15 ; carriage return?
950 001145' 254 00 0 00 001157' JRST FGETD1 ; yes - done - exit
951 001146' 306 00 0 00 000135 CAIN "]" ; end of address field?
952 001147' 254 00 0 00 001157' JRST FGETD1 ; yes - done - exit
953 001150' 301 00 0 00 000060 CAIL 60 ; is character between
954 001151' 303 00 0 00 000067 CAILE 67 ; 0 and 7?
955 001152' 254 00 0 00 001160' JRST FGETDE ; no - error - exit
956 001153' 275 00 0 00 000060 SUBI 60 ; normalize to 0-7
957 001154' 242 01 0 00 000003 LSH 1,3 ; multiply result so far by 8
958 001155' 272 00 0 00 000001 ADDM 1 ; add current digit
959 001156' 367 02 0 00 001142' SOJG 2,FGETD0 ; loop till done
960 001157' 350 00 0 17 777776 FGETD1: AOS -2(P) ; ok - set up RTN+2
961 001160' 262 17 0 00 000002 FGETDE: RGET (2,0) ; restore AC's
962
963 001162' 263 17 0 00 000000 RTN ; return
964
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 25
DFNIAU MAC 6-Aug-83 09:31 Data Pattern Generator/Compare Routines SEQ 0790
965 SUBTTL Data Pattern Generator/Compare Routines
966
967 ;#********************************************************************
968 ;* BUFGEN - Generate the specified data pattern in the data buffer.
969 ;* BUFCOM - Compare the data buffer with expected data
970 ;
971 ; Arguments: AC2 - Length in words
972 ; AC3 - Address of buffer
973 ; PAT - Data pattern
974 ; TFMFLG - Format (0-Compat,1-Hiden)
975 ;
976 ; Returns (BUFCOM): AC1 - Number of words in error
977 ;#********************************************************************
978
979 001163' 402 00 0 00 006271' BUFCOM: SETZM WRDERR ; clear words in error count
980 001164' 476 00 0 00 006256' SETOM GENFLG# ; set to 'compare data'
981 001165' 476 00 0 00 006257' SETOM GENREP# ; set 'report errors' flag
982 001166' 335 00 0 00 000001 SKIPGE 1 ; report errors?
983 001167' 402 00 0 00 006257' SETZM GENREP ; no - clear 'report errors' flag
984 001170' 217 00 0 00 000001 MOVMS 1 ; get absolute value
985 001171' 334 00 0 00 000000 SKIPA
986 001172' 402 00 0 00 006256' BUFGEN: SETZM GENFLG ; set to 'generate data'
987 001173' 202 01 0 00 006260' MOVEM 1,GENTYP# ; save type of transfer
988 001174' 322 14 0 00 003716' JUMPE PAT,[RTN] ; exit immediately if pat is zero
989 001175' 261 17 0 00 000000 RPUT (0,1,2,3,5,6,7,PAT) ; save some AC's
990
991
992 ; Handle buffer length - cannot exceed 256 words
993
994 001205' 200 01 0 00 000002 MOVE 1,2 ; get number of full words in buffer
995 001206' 303 01 0 00 000400 CAILE 1,^D256 ; over 256 words?
996 001207' 201 01 0 00 000400 MOVEI 1,^D256 ; yes - limit to 256 words
997 001210' 200 02 0 00 000003 MOVE 2,3 ; get buffer address
998 001211' 202 02 0 00 006246' MOVEM 2,ABUFF# ; save buffer address
999 001212' 213 00 0 00 000001 MOVNS 1 ; generate AOBJN word to sequence
1000 001213' 506 01 0 00 000002 HRLM 1,2 ; through the buffer
1001
1002 ; Now generate/compare the data (for a constant pattern)
1003 ; ------------------------------------------------------
1004
1005 001214' 301 14 0 00 000116 CAIL PAT,VPATRN ; skip if a constant pattern
1006 001215' 254 00 0 00 001227' JRST BUFG1 ; go generate variable pattern
1007 001216' 200 07 0 14 001333' BUFG0: MOVE 7,PATBUF(PAT) ; get pattern
1008 001217' 336 00 0 00 000000* SKIPN TFMFLG ; COMPAT mode?
1009 001220' 620 07 0 00 000017 TRZ 7,17 ; yes - clear rightmost 4 bits
1010 001221' 336 00 0 00 006256' SKIPN GENFLG ; compare data?
1011 001222' 202 07 0 02 000000 MOVEM 7,(2) ; no - put into buffer
1012 001223' 332 00 0 00 006256' SKIPE GENFLG ; compare data?
1013 GO [CAME 7,(2) ; yes - compare it
1014 GO DATMES ; error - go handle
1015 001224' 260 17 0 00 004102' RTN]
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 26
DFNIAU MAC 6-Aug-83 09:31 Data Pattern Generator/Compare Routines SEQ 0791
1016
1017 ; Now do next word
1018
1019 001225' 253 02 0 00 001216' AOBJN 2,BUFG0 ; loop till done
1020 001226' 254 00 0 00 001246' JRST BUFGX ; all done - exit
1021
1022 ; Now generate/compare the data (for a variable pattern)
1023 ; ------------------------------------------------------
1024
1025 ; Generate first word of buffer
1026
1027 001227' 201 05 0 00 000005 BUFG1: MOVEI 5,5 ; current byte count
1028 001230' 201 06 0 00 000005 MOVEI 6,5 ; set 'half byte' in progress
1029 001231' 200 07 0 14 001333' MOVE 7,PATBUF(PAT) ; get pattern pointer word
1030 001232' 552 07 0 00 006270' HRRZM 7,VARPAT# ; put adr of 2nd instruction in VARPAT
1031 001233' 207 00 0 00 000007 MOVSS 7 ; swap address of pointer
1032 001234' 256 00 0 07 000000 XCT (7) ; get first word of pattern
1033 001235' 334 00 0 00 000000 SKIPA ; continue
1034
1035 ; Generate successive words of variable pattern
1036
1037 001236' 256 00 1 00 006270' BUFG2: XCT @VARPAT ; generate another word of pattern
1038 001237' 336 00 0 00 001217* SKIPN TFMFLG ; COMPAT mode?
1039 001240' 620 07 0 00 000017 TRZ 7,17 ; yes - clear rightmost 4 bits
1040 001241' 336 00 0 00 006256' SKIPN GENFLG ; compare data?
1041 001242' 202 07 0 02 000000 MOVEM 7,(2) ; no - put into buffer
1042 001243' 332 00 0 00 006256' SKIPE GENFLG ; compare data?
1043 GO [CAME 7,(2) ; yes - compare it
1044 GO DATMES ; error - go handle
1045 001244' 260 17 0 00 004102' RTN]
1046
1047 ; Now do next word
1048
1049 001245' 253 02 0 00 001236' AOBJN 2,BUFG2 ; loop till done
1050
1051 ; All done - exit
1052
1053 001246' 336 00 0 00 006256' BUFGX: SKIPN GENFLG ; compare data?
1054 001247' 254 00 0 00 001262' JRST BUFGXZ ; no - exit
1055 001250' 337 00 0 00 006271' SKIPG WRDERR# ; any compare errors?
1056 001251' 254 00 0 00 001260' JRST BUFGXY ; no - return
1057 001252' 336 00 0 00 006257' SKIPN GENREP ; report errors?
1058 001253' 254 00 0 00 001260' JRST BUFGXY ; no - return
1059 001254' 037 00 0 00 004105' TMSGC <Words in error = >
1060 001255' 200 00 0 00 006271' MOVE WRDERR
1061 001256' 037 15 0 00 000000 PNTDEC
1062 001257' 037 00 0 00 003645' TMSG <.>
1063 001260' 200 01 0 00 006271' BUFGXY: MOVE 1,WRDERR ; get number of errors
1064 001261' 202 01 0 17 777774 MOVEM 1,-4(P) ; save it
1065 001262' 262 17 0 00 000014 BUFGXZ: RGET (PAT,7,6,5,3,2,1,0) ; restore AC's
1066
1067 001272' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 27
DFNIAU MAC 6-Aug-83 09:31 Data Pattern Generator/Compare Routines SEQ 0792
1068
1069 ;#********************************************************************
1070 ;* DATMES - A data comparison error has been found. Report the error,
1071 ;* printing a maximum of three lines of errors.
1072 ;#********************************************************************
1073
1074 001273' 261 17 0 00 000000 DATMES: RPUT (0,1,2,3) ; save AC's
1075
1076 001277' 336 00 0 00 006257' SKIPN GENREP ; report errors?
1077 001300' 254 00 0 00 001301' JRST DATM0 ; no - skip this
1078 001301' 350 03 0 00 006271' DATM0: AOS 3,WRDERR ; increment error count
1079
1080 ; Now see if should be printed
1081
1082 001302' 336 00 0 00 006257' SKIPN GENREP ; report errors?
1083 001303' 254 00 0 00 001326' JRST DATMX ; no - exit
1084 001304' 307 03 0 00 000003 CAIG 3,3 ; already print 3 of them?
1085 001305' 254 00 0 00 001307' JRST DATM1 ; no - go print
1086 001306' 254 00 0 00 001326' JRST DATMX ; yes - exit
1087
1088 ; Now print
1089
1090 001307' 302 03 0 00 000001 DATM1: CAIE 3,1 ; first data error?
1091 001310' 254 00 0 00 001313' JRST .+3 ; no - don't print headers ...
1092 001311' 037 00 0 00 004111' TMSGC <Data Compare Error:>
1093 001312' 037 00 0 00 004116' TMSGC <Word ---Correct--- ---Actual---->
1094 001313' 550 00 0 02 000001 HRRZ 1(2) ; get word number, numbered
1095 001314' 274 00 0 00 006246' SUB ABUFF ; from 1 ...
1096 001315' 202 00 0 00 006251' MOVEM CWORDN# ; save current word number
1097 001316' 037 00 0 00 030242 PCRL
1098 001317' 006 04 0 00 000000 PDEC 4,0 ; print it
1099 001320' 037 00 0 00 003655' TMSG < > ; print spaces
1100 001321' 200 00 0 00 000007 MOVE 7 ; get correct data
1101 001322' 037 13 0 00 000000 PNTHW ; print it
1102 001323' 037 00 0 00 003654' TMSG < > ; print some more spaces
1103 001324' 200 00 0 02 000000 MOVE (2) ; get actual data
1104 001325' 037 13 0 00 000000 PNTHW ; print it
1105
1106 ; Exit
1107
1108 001326' 262 17 0 00 000003 DATMX: RGET (3,2,1,0) ; restore AC's
1109
1110 001332' 263 17 0 00 000000 RTN ; return
1111
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 28
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0793
1112 SUBTTL Data Patterns
1113
1114 ;#********************************************************************
1115 ;* Data Patterns
1116 ;
1117 ; Here are the locations called by the BUFGEN and BUFCOM routines
1118 ; indexed by the pattern number.
1119 ;#********************************************************************
1120
1121 001333' 000000 000000 PATBUF: 0 ; unused
1122 001334' 000000 000000 0 ; 1 - zeros
1123 001335' 777777 777777 -1 ; 2 - ones
1124 001336' 525252 525252 525252525252 ; 3 - alternate bit in 36-bit word
1125 001337' 252525 252525 252525252525 ; 4 - alternate bit in 36-bit word
1126 001340' 000000 000001 1 ; 5 - floating 1's
1127 001341' 000000 000002 2 ; 6
1128 001342' 000000 000004 4 ; 7
1129 001343' 000000 000010 10 ; 10
1130 001344' 000000 000020 20 ; 11
1131 001345' 000000 000040 40 ; 12
1132 001346' 000000 000100 100 ; 13
1133 001347' 000000 000200 200 ; 14
1134 001350' 000000 000400 400 ; 15
1135 001351' 000000 001000 1000 ; 16
1136 001352' 000000 002000 2000 ; 17
1137 001353' 000000 004000 4000 ; 20
1138 001354' 000000 010000 10000 ; 21
1139 001355' 000000 020000 20000 ; 22
1140 001356' 000000 040000 40000 ; 23
1141 001357' 000000 100000 100000 ; 24
1142 001360' 000000 200000 200000 ; 25
1143 001361' 000000 400000 400000 ; 26
1144 001362' 000001 000000 1,,0 ; 27
1145 001363' 000002 000000 2,,0 ; 30
1146 001364' 000004 000000 4,,0 ; 31
1147 001365' 000010 000000 10,,0 ; 32
1148 001366' 000020 000000 20,,0 ; 33
1149 001367' 000040 000000 40,,0 ; 34
1150 001370' 000100 000000 100,,0 ; 35
1151 001371' 000200 000000 200,,0 ; 36
1152 001372' 000400 000000 400,,0 ; 37
1153 001373' 001000 000000 1000,,0 ; 40
1154 001374' 002000 000000 2000,,0 ; 41
1155 001375' 004000 000000 4000,,0 ; 42
1156 001376' 010000 000000 10000,,0 ; 43
1157 001377' 020000 000000 20000,,0 ; 44
1158 001400' 040000 000000 40000,,0 ; 45
1159 001401' 100000 000000 100000,,0 ; 46
1160 001402' 200000 000000 200000,,0 ; 47
1161 001403' 400000 000000 400000,,0 ; 50
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 29
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0794
1162 001404' 777777 777776 777777,,777776 ; 51 - floating 0's
1163 001405' 777777 777775 777777,,777775 ; 52
1164 001406' 777777 777773 777777,,777773 ; 53
1165 001407' 777777 777767 777777,,777767 ; 54
1166 001410' 777777 777757 777777,,777757 ; 55
1167 001411' 777777 777737 777777,,777737 ; 56
1168 001412' 777777 777677 777777,,777677 ; 57
1169 001413' 777777 777577 777777,,777577 ; 60
1170 001414' 777777 777377 777777,,777377 ; 61
1171 001415' 777777 776777 777777,,776777 ; 62
1172 001416' 777777 775777 777777,,775777 ; 63
1173 001417' 777777 773777 777777,,773777 ; 64
1174 001420' 777777 767777 777777,,767777 ; 65
1175 001421' 777777 757777 777777,,757777 ; 66
1176 001422' 777777 737777 777777,,737777 ; 67
1177 001423' 777777 677777 777777,,677777 ; 70
1178 001424' 777777 577777 777777,,577777 ; 71
1179 001425' 777777 377777 777777,,377777 ; 72
1180 001426' 777776 777777 777776,,777777 ; 73
1181 001427' 777775 777777 777775,,777777 ; 74
1182 001430' 777773 777777 777773,,777777 ; 75
1183 001431' 777767 777777 777767,,777777 ; 76
1184 001432' 777757 777777 777757,,777777 ; 77
1185 001433' 777737 777777 777737,,777777 ; 100
1186 001434' 777677 777777 777677,,777777 ; 101
1187 001435' 777577 777777 777577,,777777 ; 102
1188 001436' 777377 777777 777377,,777777 ; 103
1189 001437' 776777 777777 776777,,777777 ; 104
1190 001440' 775777 777777 775777,,777777 ; 105
1191 001441' 773777 777777 773777,,777777 ; 106
1192 001442' 767777 777777 767777,,777777 ; 107
1193 001443' 757777 777777 757777,,777777 ; 110
1194 001444' 737777 777777 737777,,777777 ; 111
1195 001445' 677777 777777 677777,,777777 ; 112
1196 001446' 577777 777777 577777,,777777 ; 113
1197 001447' 377777 777777 377777,,777777 ; 114
1198
1199 000115 FILLFP==.-PATBUF ; read fill pattern
1200
1201 001450' 400000 000001 400000,,000001 ; 115
1202
1203 ; Pattern codes from here require execution of special routines
1204
1205 000116 VPATRN==.-PATBUF
1206
1207 ; Each location contains addresses, the first address should be used
1208 ; to generate the first word in a buffer, the second should be used
1209 ; to generate each remaining word. An execute is performed on the
1210 ; instruction in the specified address. The data is returned in AC7.
1211
1212 001451' 004126' 004127' [GO PATRAN],,[GO PATRA1] ; 116 - random numbers
1213 001452' 004130' 004132' [GO PATADR],,[ADD 7,[1,,1]] ; 117 - memory address pattern
1214 001453' 004133' 004134' [GO PATFON],,[GO PATFO1] ; 120 - floating ones
1215 001454' 004135' 004136' [GO PATFZE],,[GO PATFZ1] ; 121 - floating zeroes
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 30
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0795
1216
1217 004137' PATCN2==[BYTE (8)1,2,3,4]
1218 004140' PATCN3==[BYTE (7)1,2,3,4,5]
1219 004141' PATCN4==[BYTE (6)1,2,3,4,5,6]
1220
1221 001455' 004142' 004143' [MOVE 7,PATCN2],,[GO PATCN8] ; 122 - count pattern in 8-bit bytes
1222 001456' 004144' 004145' [MOVE 7,PATCN3],,[GO PATCN7] ; 123 - count pattern in 7-bit bytes
1223 001457' 004146' 004147' [MOVE 7,PATCN4],,[GO PATCN6] ; 124 - count pattern in 6-bit bytes
1224 001460' 004150' 004151' [MOVE 7,PATBUF+3],,[SETCA 7,] ; 125 - alternating 36-bit pattern
1225 001461' 004152' 004045' [MOVE 7,TPAT],,[JFCL] ; 126 - operator selected pattern
1226
1227 000127 FILLVP==.-PATBUF ; read fill pattern
1228
1229 001462' 004154' 004045' [MOVE 7,[400000,,1]],,[JFCL] ; 127 - read buffer fill pattern
1230
1231 000127 MAXPAT==.-PATBUF-1 ; maximum pattern number allowed
1232
1233 ; Random number generator
1234
1235 001463' 200 07 0 00 001464' PATRAN: MOVE 7,.+1 ; get base number
1236 001464' 202 07 0 00 006263' MOVEM 7,OLDRAN# ; save it
1237 001465' 263 17 0 00 000000 RTN
1238
1239 001466' 270 07 0 00 030022 PATRA1: ADD 7,RANDBS ; modify number in AC7
1240 001467' 241 07 0 00 777774 ROT 7,-4 ; to create a new number
1241 001470' 447 07 0 00 006263' EQVB 7,OLDRAN ; put result in AC7 and OLDRAN
1242 001471' 263 17 0 00 000000 RTN
1243
1244 ; Put address of data pattern in AC7
1245
1246 001472' 550 07 0 00 000002 PATADR: HRRZ 7,2 ; get buffer address
1247 001473' 504 07 0 00 000007 HRL 7,7 ; put in both halves
1248 001474' 263 17 0 00 000000 RTN
1249
1250 ; Floating ones
1251
1252 001475' 201 07 0 00 000001 PATFON: MOVEI 7,1 ; get rightmost bit
1253 001476' 332 00 0 00 001237* SKIPE TFMFLG ; HIDEN format?
1254 001477' 201 07 0 00 000020 MOVEI 7,20 ; yes - get rightmost bit
1255 001500' 263 17 0 00 000000 RTN ; return
1256
1257 001501' 241 07 0 00 000001 PATFO1: ROT 7,1 ; rotate 1 bit
1258 001502' 306 07 0 00 000001 CAIN 7,1 ; a 1 bit?
1259 001503' 201 07 0 00 000020 MOVEI 7,20 ; yes - position properly
1260 001504' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 31
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0796
1261
1262 ; Floating zeroes
1263
1264 001505' 201 07 0 00 000001 PATFZE: MOVEI 7,1 ; get rightmost bit
1265 001506' 332 00 0 00 001476* SKIPE TFMFLG ; HIDEN format?
1266 001507' 201 07 0 00 000020 MOVEI 7,20 ; yes - get rightmost bit
1267 001510' 430 07 0 00 004155' XOR 7,[-1] ; complement
1268 001511' 263 17 0 00 000000 RTN ; return
1269
1270 001512' 660 07 0 00 000017 PATFZ1: TRO 7,17 ; ensure bits will be shifted as 1's
1271 001513' 241 07 0 00 000001 ROT 7,1 ; rotate 1 bit
1272 001514' 606 07 0 00 000001 TRNN 7,1 ; shifted the 0 into bit position 1?
1273 001515' 200 07 0 00 004156' MOVE 7,[-1,,777757] ; yes - position properly
1274 001516' 263 17 0 00 000000 RTN ; return
1275
1276 ; Count the number in AC7 in 8-bit bytes
1277
1278 001517' 332 00 0 00 000000* PATCN8: SKIPE TBSDFL ; BSD style datagram?
1279 001520' 336 00 0 00 001506* SKIPN TFMFLG ; yes - HIDEN format?
1280 001521' 334 00 0 00 000000 SKIPA ; no - continue
1281 001522' 254 00 0 00 001534' JRST PATC8A ; yes - go handle
1282 001523' 201 05 0 00 000004 MOVEI 5,4 ; set up to loop 4 times
1283 001524' 135 06 0 00 004157' LDB 6,[POINT 8,7,31] ; get last byte into AC6
1284 001525' 350 00 0 00 000006 AOS 6 ; increment byte number
1285 001526' 405 06 0 00 000377 ANDI 6,377 ; clear all but one byte
1286 001527' 242 07 0 00 000010 LSH 7,8 ; shift word
1287 001530' 436 06 0 00 000007 ORM 6,7 ; merge with new byte
1288 001531' 367 05 0 00 001525' SOJG 5,.-4 ; loop on 5 bytes
1289 001532' 242 07 0 00 000004 LSH 7,4 ; shift over and clear bit 32-35
1290 001533' 263 17 0 00 000000 RTN ; return
1291
1292 001534' 261 17 0 00 000004 PATC8A: PUT 4 ; save AC4
1293 001535' 201 04 0 00 000004 MOVEI 4,4 ; set up to loop 4 times
1294 001536' 350 00 0 00 000005 AOS 5 ; increment byte number
1295 001537' 303 05 0 00 000377 CAILE 5,377 ; between 1 and 377?
1296 001540' 201 05 0 00 000001 MOVEI 5,1 ; no - set to 1
1297 001541' 242 07 0 00 000010 LSH 7,8 ; shift word
1298 001542' 436 05 0 00 000007 ORM 5,7 ; merge with new byte
1299 001543' 367 04 0 00 001536' SOJG 4,.-5 ; loop on 5 bytes
1300 001544' 242 07 0 00 000004 LSH 7,4 ; shift over and clear bit 32-35
1301 JUMPN 6,[LSHC 6,-4 ; half-byte zero? no - insert half
1302 SETZ 6, ; byte, clear half byte, and
1303 GET 4 ; exit
1304 001545' 326 06 0 00 004160' RTN]
1305 001546' 350 00 0 00 000005 AOS 5 ; increment current byte
1306 001547' 200 06 0 00 000005 MOVE 6,5 ; get half byte
1307 001550' 135 04 0 00 004164' LDB 4,[POINT 4,5,31] ; get 4 leftmost bits
1308 001551' 137 04 0 00 004165' DPB 4,[POINT 4,7,35] ; save them
1309 001552' 262 17 0 00 000004 GET 4 ; restore AC4
1310 001553' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 32
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0797
1311
1312 ; Count the number in AC7 in 7-bit bytes
1313
1314 001554' 201 05 0 00 000005 PATCN7: MOVEI 5,5 ; set up to loop 5 times
1315 001555' 135 06 0 00 004166' LDB 6,[POINT 7,7,34] ; get last byte into AC6
1316 001556' 350 00 0 00 000006 AOS 6 ; increment byte number
1317 001557' 405 06 0 00 000177 ANDI 6,177 ; clear all but one byte
1318 001560' 242 07 0 00 000007 LSH 7,7 ; shift word
1319 001561' 436 06 0 00 000007 ORM 6,7 ; merge with new byte
1320 001562' 367 05 0 00 001556' SOJG 5,.-4 ; loop on 5 bytes
1321 001563' 242 07 0 00 000001 LSH 7,1 ; shift over and clear bit 35
1322 001564' 263 17 0 00 000000 RTN ; return
1323
1324 ; Count the number in AC7 in 6-bit bytes
1325
1326 001565' 201 05 0 00 000006 PATCN6: MOVEI 5,6 ; set up to loop 6 times
1327 001566' 550 06 0 00 000007 HRRZ 6,7 ; get word into AC6
1328 001567' 350 00 0 00 000006 AOS 6 ; increment byte number
1329 001570' 405 06 0 00 000077 ANDI 6,77 ; clear all but one byte
1330 001571' 242 07 0 00 000006 LSH 7,6 ; shift word
1331 001572' 436 06 0 00 000007 ORM 6,7 ; merge with new byte
1332 001573' 367 05 0 00 001567' SOJG 5,.-4 ; loop on four bytes
1333 001574' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 33
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0798
1334
1335 ;#********************************************************************
1336 ;* PATPNT - Translate pattern number to description
1337 ;#********************************************************************
1338
1339 001575' 037 00 0 00 004167' PATPNT: TMSG <0 - Illegal> ; unused
1340 001576' 037 00 0 00 004172' TMSG <1 - zeros>
1341 001577' 037 00 0 00 004174' TMSG <2 - ones>
1342 001600' 037 00 0 00 004176' TMSG <3 - alternating 5252..>
1343 001601' 037 00 0 00 004203' TMSG <4 - alternating 2525..>
1344 001602' 037 00 0 00 004210' TMSG <5 - 0,,1>
1345 001603' 037 00 0 00 004212' TMSG <6 - 0,,2>
1346 001604' 037 00 0 00 004214' TMSG <7 - 0,,4>
1347 001605' 037 00 0 00 004216' TMSG <10 - 0,,10>
1348 001606' 037 00 0 00 004221' TMSG <11 - 0,,20>
1349 001607' 037 00 0 00 004224' TMSG <12 - 0,,40>
1350 001610' 037 00 0 00 004227' TMSG <13 - 0,,100>
1351 001611' 037 00 0 00 004232' TMSG <14 - 0,,200>
1352 001612' 037 00 0 00 004235' TMSG <15 - 0,,400>
1353 001613' 037 00 0 00 004240' TMSG <16 - 0,,1000>
1354 001614' 037 00 0 00 004243' TMSG <17 - 0,,2000>
1355 001615' 037 00 0 00 004246' TMSG <20 - 0,,4000>
1356 001616' 037 00 0 00 004251' TMSG <21 - 0,,10000>
1357 001617' 037 00 0 00 004254' TMSG <22 - 0,,20000>
1358 001620' 037 00 0 00 004257' TMSG <23 - 0,,40000>
1359 001621' 037 00 0 00 004262' TMSG <24 - 0,,100000>
1360 001622' 037 00 0 00 004265' TMSG <25 - 0,,200000>
1361 001623' 037 00 0 00 004270' TMSG <26 - 0,,400000>
1362 001624' 037 00 0 00 004273' TMSG <27 - 1,,0>
1363 001625' 037 00 0 00 004275' TMSG <30 - 2,,0>
1364 001626' 037 00 0 00 004277' TMSG <31 - 4,,0>
1365 001627' 037 00 0 00 004301' TMSG <32 - 10,,0>
1366 001630' 037 00 0 00 004304' TMSG <33 - 20,,0>
1367 001631' 037 00 0 00 004307' TMSG <34 - 40,,0>
1368 001632' 037 00 0 00 004312' TMSG <35 - 100,,0>
1369 001633' 037 00 0 00 004315' TMSG <36 - 200,,0>
1370 001634' 037 00 0 00 004320' TMSG <37 - 400,,0>
1371 001635' 037 00 0 00 004323' TMSG <40 - 1000,,0>
1372 001636' 037 00 0 00 004326' TMSG <41 - 2000,,0>
1373 001637' 037 00 0 00 004331' TMSG <42 - 4000,,0>
1374 001640' 037 00 0 00 004334' TMSG <43 - 10000,,0>
1375 001641' 037 00 0 00 004337' TMSG <44 - 20000,,0>
1376 001642' 037 00 0 00 004342' TMSG <45 - 40000,,0>
1377 001643' 037 00 0 00 004345' TMSG <46 - 100000,,0>
1378 001644' 037 00 0 00 004350' TMSG <47 - 200000,,0>
1379 001645' 037 00 0 00 004353' TMSG <50 - 400000,,0>
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 34
DFNIAU MAC 6-Aug-83 09:31 Data Patterns SEQ 0799
1380 001646' 037 00 0 00 004356' TMSG <51 - 777777,,777776>
1381 001647' 037 00 0 00 004362' TMSG <52 - 777777,,777775>
1382 001650' 037 00 0 00 004366' TMSG <53 - 777777,,777773>
1383 001651' 037 00 0 00 004372' TMSG <54 - 777777,,777767>
1384 001652' 037 00 0 00 004376' TMSG <55 - 777777,,777757>
1385 001653' 037 00 0 00 004402' TMSG <56 - 777777,,777737>
1386 001654' 037 00 0 00 004406' TMSG <57 - 777777,,777677>
1387 001655' 037 00 0 00 004412' TMSG <60 - 777777,,777577>
1388 001656' 037 00 0 00 004416' TMSG <61 - 777777,,777377>
1389 001657' 037 00 0 00 004422' TMSG <62 - 777777,,776777>
1390 001660' 037 00 0 00 004426' TMSG <63 - 777777,,775777>
1391 001661' 037 00 0 00 004432' TMSG <64 - 777777,,773777>
1392 001662' 037 00 0 00 004436' TMSG <65 - 777777,,767777>
1393 001663' 037 00 0 00 004442' TMSG <66 - 777777,,757777>
1394 001664' 037 00 0 00 004446' TMSG <67 - 777777,,737777>
1395 001665' 037 00 0 00 004452' TMSG <70 - 777777,,677777>
1396 001666' 037 00 0 00 004456' TMSG <71 - 777777,,577777>
1397 001667' 037 00 0 00 004462' TMSG <72 - 777777,,377777>
1398 001670' 037 00 0 00 004466' TMSG <73 - 777776,,777777>
1399 001671' 037 00 0 00 004472' TMSG <74 - 777775,,777777>
1400 001672' 037 00 0 00 004476' TMSG <75 - 777773,,777777>
1401 001673' 037 00 0 00 004502' TMSG <76 - 777767,,777777>
1402 001674' 037 00 0 00 004506' TMSG <77 - 777757,,777777>
1403 001675' 037 00 0 00 004512' TMSG <100 - 777737,,777777>
1404 001676' 037 00 0 00 004517' TMSG <101 - 777677,,777777>
1405 001677' 037 00 0 00 004524' TMSG <102 - 777577,,777777>
1406 001700' 037 00 0 00 004531' TMSG <103 - 777377,,777777>
1407 001701' 037 00 0 00 004536' TMSG <104 - 776777,,777777>
1408 001702' 037 00 0 00 004543' TMSG <105 - 775777,,777777>
1409 001703' 037 00 0 00 004550' TMSG <106 - 773777,,777777>
1410 001704' 037 00 0 00 004555' TMSG <107 - 767777,,777777>
1411 001705' 037 00 0 00 004562' TMSG <110 - 757777,,777777>
1412 001706' 037 00 0 00 004567' TMSG <111 - 737777,,777777>
1413 001707' 037 00 0 00 004574' TMSG <112 - 677777,,777777>
1414 001710' 037 00 0 00 004601' TMSG <113 - 577777,,777777>
1415 001711' 037 00 0 00 004606' TMSG <114 - 377777,,777777>
1416 001712' 037 00 0 00 004613' TMSG <115 - 400000,,1>
1417 001713' 037 00 0 00 004617' TMSG <116 - random numbers>
1418 001714' 037 00 0 00 004624' TMSG <117 - memory address pattern>
1419 001715' 037 00 0 00 004632' TMSG <120 - floating ones>
1420 001716' 037 00 0 00 004636' TMSG <121 - floating zeros>
1421 001717' 037 00 0 00 004643' TMSG <122 - count pattern in 8-bit bytes>
1422 001720' 037 00 0 00 004652' TMSG <123 - count pattern in 7-bit bytes>
1423 001721' 037 00 0 00 004661' TMSG <124 - count pattern in 6-bit bytes>
1424 001722' 037 00 0 00 004670' TMSG <125 - alternating 36-bit pattern>
1425 001723' 037 00 0 00 004677' TMSG <126 - opr select pattern>
1426 001724' 037 00 0 00 004704' TMSG <127 - 400000,,1>
1427
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 35
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0800
1428 SUBTTL Switch Handling Routines
1429
1430 ;#********************************************************************
1431 ;* .SWCHP - Print switch settings in English
1432 ;#********************************************************************
1433
1434 001725' 261 17 0 00 000000 .SWCHP: RPUT (0,1,2,3,4) ; save AC's
1435
1436 001732' 037 01 0 00 004710' FMSGC <Switches: >
1437 001733' 403 02 0 00 000004 SETZB 2,4 ; init print, switch count AC's
1438 001734' 400 03 0 00 000000 SETZ 3, ; set up AC3 to point to
1439 001735' 661 03 0 00 400000 TLO 3,(1B0) ; the leftmost switch
1440 001736' 260 17 0 00 001764' GO SWITT ; get program switches
1441 001737' 037 13 0 00 000001 PNTHWF ; print in octal first
1442 001740' 037 01 0 00 003654' FMSG < >
1443 001741' 260 17 0 00 001764' GO SWITT ; get program switches
1444
1445 001742' 616 00 0 00 000003 .SWCH0: TDNN 3 ; this switch set?
1446 001743' 254 00 0 00 001752' JRST .SWCH1 ; no - continue
1447 001744' 271 04 0 00 000007 ADDI 4,7 ; 6 more characters printed
1448 001745' 303 04 0 00 000052 CAILE 4,^D42 ; print 42 characters yet?
1449 001746' 037 01 0 00 004713' FMSGC < > ; yes - continue on next line
1450 001747' 303 04 0 00 000052 CAILE 4,^D42 ; print 42 characters yet?
1451 001750' 201 04 0 00 000007 MOVEI 4,7 ; yes - reinit print counter
1452 XCT [FMSG <ABORT > ; 0
1453 FMSG <RSTART > ; 1
1454 FMSG <TOTALS > ; 2
1455 FMSG <NOPNT > ; 3
1456 FMSG <PNTLPT > ; 4
1457 FMSG <DING > ; 5
1458 FMSG <LOOPER > ; 6
1459 FMSG <ERSTOP > ; 7
1460 FMSG <PALERS > ; 8
1461 FMSG <RELIAB > ; 9
1462 FMSG <TXTINH > ; 10
1463 FMSG <PAGINH > ; 11
1464 FMSG <MODDVC > ; 12
1465 FMSG <CASINH > ; 13
1466 FMSG <OPRSEL > ; 14
1467 FMSG <CHAIN > ; 15
1468 FMSG <KA10 > ; 16
1469 JFCL
1470 FMSG <TRACE > ; 18
1471 FMSG <INHFLT > ; 19
1472 FMSG <INHMSG > ; 20
1473 FMSG <LOOPGM > ; 21
1474 FMSG <LOOPTS > ; 22
1475 FMSG <RUNALL > ; 23
1476 FMSG <DSPEAR > ; 24
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 36
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0801
1477 1478 FMSG <UDEBUG > ; 25
1479 FMSG <MDEBUG > ; 26
1480 FMSG <LDEBUG > ; 27
1481 FMSG <DDEBUG > ; 28
1482 JFCL ; 29
1483 JFCL ; 30
1484 JFCL ; 31
1485 JFCL ; 32
1486 JFCL ; 33
1487 JFCL ; 34
1488 001751' 256 00 0 02 005005' JFCL](2) ; 35
1489 001752' 242 03 0 00 777777 .SWCH1: LSH 3,-1 ; right shift the switch pointer
1490 001753' 350 00 0 00 000002 AOS 2 ; increment text pointer
1491 001754' 326 03 0 00 001742' JUMPN 3,.SWCH0 ; done? no - continue
1492 001755' 037 01 0 00 030242 PCRLF
1493 001756' 262 17 0 00 000004 RGET (4,3,2,1,0) ; restore AC's
1494
1495 001763' 263 17 0 00 000000 RTN ; return
1496
1497
1498 ;#********************************************************************
1499 ;* SWITT - Get value of switches
1500 ;#********************************************************************
1501
1502 001764' 200 00 0 00 030046 SWITT: MOVE CONSW ; get switches
1503 001765' 336 00 0 00 030037 SKIPN USER ; user mode?
1504 001766' 037 10 0 00 000002 SWITCH ; no - get switches from KLDCP
1505 001767' 434 00 0 00 001771' IOR SWRGT ; insert addl right hand switches
1506 001770' 263 17 0 00 000000 RTN ; return
1507
1508 001771' 000000 000000 SWRGT: 0 ; right hand switches
1509
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 37
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0802
1510
1511 ;#********************************************************************
1512 ;* .ISWT - Complete switch handling
1513 ;
1514 ; This routine will print out switches if desired, and then enter left
1515 ; hand switches (if user mode) and then enter right hand switches.
1516 ;
1517 ;#********************************************************************
1518
1519 ; Print program switches if desired
1520
1521 001772' 261 17 0 00 000000 .ISWT: RPUT (0,1) ; save AC's
1522
1523 001774' 260 17 0 00 002032' GO .SWPNT ; print switches if desired
1524
1525 ; Now look at switches and determine if we should enter them
1526
1527 001775' 260 17 0 00 001764' .ISWT2: GO SWITT ; get switches
1528 001776' 202 00 0 00 006264' MOVEM SAVSWW# ; save switches
1529 001777' 202 00 0 00 006247' MOVEM CONSWW# ; save in work location
1530 002000' 037 01 0 00 005051' FMSGC <Switches = >
1531 002001' 037 13 0 00 000001 PNTHWF
1532 002002' 037 01 0 00 030242 PCRLF
1533 002003' 476 00 0 00 006267' SETOM SWPSWW# ; set switches printed flag
1534 002004' 336 00 0 00 030037 SKIPN USER ; user mode?
1535 002005' 254 00 0 00 002007' JRST .ISWT7 ; no - don't ask for left hand switches
1536
1537 ; Now input the switches
1538
1539 002006' 260 17 0 00 002043' .ISWT6: GO .SLEFT ; get left hand switches
1540
1541 ; Now get right hand switches
1542
1543 002007' 332 00 0 00 030037 .ISWT7: SKIPE USER ; user mode?
1544 002010' 254 00 0 00 002013' JRST .ISWTB ; yes - go ask for them
1545
1546 ; In exec mode get switches which may have been entered already
1547
1548 002011' 260 17 0 00 001764' .ISWT8: GO SWITT ; get switches
1549 002012' 202 00 0 00 006247' MOVEM CONSWW ; save switches
1550
1551 ; Now input the switches
1552
1553 002013' 260 17 0 00 002144' .ISWTB: GO .SRIGT ; go get right hand switches
1554
1555 ; Now ensure right hand switches are saved and print out new switches
1556 ; if they changed.
1557
1558 002014' 200 00 0 00 006247' .ISWTX: MOVE CONSWW ; get switches
1559 002015' 552 00 0 00 001771' HRRZM SWRGT ; make sure right half is saved away
1560 002016' 202 00 0 00 030046 MOVEM CONSW ; save in real switches location also
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 38
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0803
1561 002017' 260 17 0 00 001764' GO SWITT ; get switches
1562 002020' 312 00 0 00 006264' CAME SAVSWW ; same as original switches?
1563 002021' 254 00 0 00 002024' JRST .ISWTY ; no - go print them out
1564 002022' 332 00 0 00 006267' SKIPE SWPSWW# ; switches already printed?
1565 002023' 254 00 0 00 002027' JRST .ISWTZ ; yes - don't print them
1566 002024' 037 01 0 00 005054' .ISWTY: FMSGC <SWITCHES = >
1567 002025' 037 13 0 00 000001 PNTHWF
1568 002026' 037 01 0 00 030242 PCRLF
1569 002027' 262 17 0 00 000001 .ISWTZ: RGET (1,0) ; done with switch handling
1570
1571 002031' 263 17 0 00 000000 RTN ; return
1572
1573 ; Print switches available
1574
1575 002032' 037 01 0 00 000026 .SWPNT: PFORCE ; handle Control-O
1576 002033' 200 00 0 00 005067' MOVE [FMSGC <Print the selectable pgm switches?>]
1577 002034' 260 17 0 00 000061' GO TTYYES ; go get response
1578 002035' 263 17 0 00 000000 RTN ; no - return
1579 002036' 037 00 1 00 002040' PNTMSG @.SWTXT ; yes - print it
1580 002037' 263 17 0 00 000000 RTN ; return
1581
1582 002040' .SWTXT: [ASCII /
1583 ----Left Side Switches-------- ----Right Side Switches------
1584
1585 SW KL10 11 Function SW Value Function
1586 -- ---- ---- -------- -- ----- --------
1587 0 400000 100000 Abort 18 400000 Program trace
1588 1 200000 040000 Restart 19 200000 Inhibit fault isolation
1589 2 100000 020000 Totals 20 100000 Inhibit error messages
1590 002040' 000000 005070' 3 040000 010000 No print 21 040000 Loop on program/]
1591 [ASCII /
1592 4 020000 004000 Print on LPT 22 020000 Loop on test
1593 5 010000 002000 Ding bell on err 23 010000 Run all test segments
1594 6 004000 001000 Loop on error 24 004000 Disable SPEAR reporting
1595 7 002000 000400 Halt on error 25 002000 User mode debug
1596 8 001000 000200 Print all errors 26 001000 Error message debug
1597 002041' 000000 005223' 9 000400 000100 Reliability mode 27 000400 Test debug /]
1598 [ASCIZ /
1599 10 000200 000040 Text inhibit 28 000200 Load microcode debug
1600 11 000100 000020 Inhibit paging
1601 12 000040 000010 Mod device codes
1602 13 000020 000004 Inhibit cache
1603 14 000010 000002 Operator select
1604 15 000004 000001 Chain.. for DIAMON
1605 16 000002 KA10 50 Hertz power
1606 002042' 000000 005346' /]
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 39
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0804
1607
1608 ;#********************************************************************
1609 ;* .SLEFT - Input left hand switches
1610 ;#********************************************************************
1611
1612 002043' 261 17 0 00 000000 .SLEFT: RPUT (0,1,2,3,4,5,6) ; save AC's
1613
1614
1615 002052' 554 00 0 00 006247' .SLF1: HLRZ CONSWW ; print out left hand switches as
1616 002053' 037 01 0 00 030242 PCRLF ; they currently are
1617 002054' 037 17 0 00 000003 PNTOCF
1618 002055' 037 01 0 00 005444' FMSG < LH Switches <# or ?> - >
1619 002056' 260 17 0 00 002255' GO .SWIN ; go input switches
1620 002057' 254 00 0 00 002063' JRST .SLF2 ; typed a ?
1621 002060' 254 00 0 00 002052' JRST .SLF1 ; error - re-ask question
1622 002061' 506 01 0 00 006247' HRLM 1,CONSWW ; save left hand switches
1623 002062' 254 00 0 00 002134' JRST .SLFX ; exit
1624
1625 002063' 037 01 0 00 030242 .SLF2: PCRLF
1626 002064' 037 01 0 00 005452' PNTMSF [ASCIZ /Type Y,N,^,CR,^Z/]
1627 002065' 037 01 0 00 030243 PCRL2F
1628 002066' 201 05 0 00 000001 MOVEI 5,1 ; init pointer to switch to ask
1629 002067' 275 05 0 00 000002 .SLF3: SUBI 5,2 ; back up
1630 002070' 350 00 0 00 000005 .SLF4: AOS 5 ; forward
1631 002071' 335 00 0 00 000005 SKIPGE 5 ; backed up too much?
1632 002072' 400 05 0 00 000000 SETZ 5, ; yes - init pointer to first switch
1633 002073' 303 05 0 00 000015 CAILE 5,^D13 ; reach end yet?
1634 002074' 254 00 0 00 002134' JRST .SLFX ; yes - exit
1635
1636 002075' 200 04 0 05 002316' .SLF5: MOVE 4,.LSWTN(5) ; get proper bit in AC4
1637 002076' 200 00 0 00 006247' MOVE CONSWW ; get switches
1638 002077' 616 00 0 00 000004 TDNN 4
1639 002100' 037 01 0 00 005456' FMSG <N >
1640 002101' 612 00 0 00 000004 TDNE 4
1641 002102' 037 01 0 00 005457' FMSG <Y >
1642 002103' 200 00 0 05 002300' MOVE .LSWIT(5) ; get SIXBIT switch name
1643 002104' 037 01 0 00 000002 PNTSXF ; print it
1644 002105' 037 00 0 00 005460' TMSG < - >
1645 002106' 037 11 0 00 000003 TTYINP
1646 002107' 306 00 0 00 000015 CAIN 15 ; carraige return?
1647 002110' 260 17 0 00 000045' GO CLRBUF ; clear input buffer
1648 002111' 306 00 0 00 000015 CAIN 15 ; carraige return?
1649 002112' 254 00 0 00 002070' JRST .SLF4 ; yes - next switch
1650 002113' 037 01 0 00 030242 PCRLF
1651 002114' 306 00 0 00 000032 CAIN 32 ; Control-Z?
1652 002115' 254 00 0 00 002134' JRST .SLFX ; yes - exit
1653 002116' 306 00 0 00 000136 CAIN 136 ; ^ back up?
1654 002117' 254 00 0 00 002067' JRST .SLF3 ; yes - go back up
1655 002120' 306 00 0 00 000131 CAIN "Y" ; Y?
1656 002121' 254 00 0 00 002130' JRST .SLF6 ; yes - set switch
1657 002122' 302 00 0 00 000116 CAIE "N" ; N?
1658 002123' 254 00 0 00 002075' JRST .SLF5 ; no - unrecognizable - reask question
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 40
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0805
1659 002124' 200 00 0 00 006247' MOVE CONSWW ; get switches
1660 002125' 412 00 0 00 000004 ANDCAM 4 ; clear switch
1661 002126' 202 00 0 00 006247' MOVEM CONSWW ; save switches
1662 002127' 254 00 0 00 002070' JRST .SLF4 ; continue
1663 002130' 200 00 0 00 006247' .SLF6: MOVE CONSWW ; get switches
1664 002131' 434 00 0 00 000004 IOR 4 ; set switch
1665 002132' 202 00 0 00 006247' MOVEM CONSWW ; save switches
1666 002133' 254 00 0 00 002070' JRST .SLF4 ; continue
1667
1668 002134' 262 17 0 00 000006 .SLFX: RGET (6,5,4,3,2,1,0) ; restore AC's
1669
1670 002143' 263 17 0 00 000000 RTN ; return
1671
1672
1673 ;#********************************************************************
1674 ;* .SRIGT - Enter right hand switches
1675 ;#********************************************************************
1676
1677 002144' 261 17 0 00 000000 .SRIGT: RPUT (0,1,2,3,4,5,6) ; save AC's
1678
1679
1680 002153' 550 00 0 00 006247' .SRG2: HRRZ CONSWW ; print out right hand switches as
1681 002154' 037 01 0 00 030242 PCRLF ; they currently are
1682 002155' 037 17 0 00 000003 PNTOCF
1683 002156' 037 01 0 00 005461' FMSG < RH Switches <# or ?> - >
1684 002157' 260 17 0 00 002255' GO .SWIN ; go input switches
1685 002160' 254 00 0 00 002164' JRST .SRG3 ; typed a ?
1686 002161' 254 00 0 00 002153' JRST .SRG2 ; error - re-ask question
1687 002162' 542 01 0 00 006247' HRRM 1,CONSWW ; save right hand switches
1688 002163' 254 00 0 00 002245' JRST .SRGX ; exit this switch handling
1689
1690 002164' 037 01 0 00 005452' .SRG3: PNTMSF [ASCIZ /Type Y,N,^,CR,^Z/]
1691 002165' 037 01 0 00 030243 PCRL2F
1692 002166' 201 05 0 00 000001 MOVEI 5,1 ; init pointer to switch to ask
1693 002167' 275 05 0 00 000002 .SRG4: SUBI 5,2 ; back up
1694 002170' 350 00 0 00 000005 .SRG5: AOS 5 ; forward
1695 002171' 335 00 0 00 000005 SKIPGE 5 ; backed up too much?
1696 002172' 400 05 0 00 000000 SETZ 5, ; yes - init pointer to first switch
1697 002173' 303 05 0 00 000021 CAILE 5,^D17 ; reach end yet?
1698 002174' 254 00 0 00 002245' JRST .SRGX ; yes
1699 002175' 336 00 0 05 002334' SKIPN .RSWIT(5) ; switch zero?
1700 002176' 254 00 0 00 002170' JRST .SRG5 ; yes - go handle next one
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 41
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0806
1701
1702 002177' 201 04 0 00 400000 .SRG6: MOVEI 4,400000 ; get a bit set in AC4
1703 002200' 210 06 0 00 000005 MOVN 6,5 ; negate for shifting
1704 002201' 242 04 0 06 000000 LSH 4,(6) ; shift over properly
1705 002202' 200 00 0 00 006247' MOVE CONSWW ; get switches
1706 002203' 616 00 0 00 000004 TDNN 4
1707 002204' 037 01 0 00 005456' FMSG <N >
1708 002205' 612 00 0 00 000004 TDNE 4
1709 002206' 037 01 0 00 005457' FMSG <Y >
1710 002207' 200 00 0 05 002334' MOVE .RSWIT(5) ; get SIXBIT switch name
1711 002210' 037 01 0 00 000002 PNTSXF ; print it
1712 002211' 037 00 0 00 005460' TMSG < - >
1713 002212' 037 11 0 00 000003 TTYINP
1714 002213' 306 00 0 00 000015 CAIN 15 ; carraige return?
1715 002214' 260 17 0 00 000045' GO CLRBUF ; clear input buffer
1716 002215' 306 00 0 00 000015 CAIN 15 ; carraige return?
1717 002216' 254 00 0 00 002170' JRST .SRG5 ; yes - next switch
1718 002217' 037 01 0 00 030242 PCRLF
1719 002220' 306 00 0 00 000032 CAIN 32 ; Control-Z?
1720 002221' 254 00 0 00 002245' JRST .SRGX ; yes - exit
1721 002222' 302 00 0 00 000136 CAIE 136 ; ^ back up?
1722 002223' 254 00 0 00 002231' JRST .SRG6B ; no - continue
1723 002224' 322 05 0 00 002177' JUMPE 5,.SRG6 ; at first switch? - yes - reask
1724 002225' 370 00 0 00 000005 .SRG6A: SOS 5 ; decrement switch
1725 002226' 336 00 0 05 002334' SKIPN .RSWIT(5) ; this switch exists?
1726 002227' 254 00 0 00 002225' JRST .SRG6A ; no - try previous one
1727 002230' 254 00 0 00 002177' JRST .SRG6 ; yes - now continue
1728
1729 002231' 306 00 0 00 000131 .SRG6B: CAIN "Y" ; Y?
1730 002232' 254 00 0 00 002241' JRST .SRG7 ; yes - set switch
1731 002233' 302 00 0 00 000116 CAIE "N" ; N?
1732 002234' 254 00 0 00 002177' JRST .SRG6 ; no - unrecognizable - reask question
1733 002235' 200 00 0 00 006247' MOVE CONSWW ; get switches
1734 002236' 620 00 0 04 000000 TRZ (4) ; clear switch
1735 002237' 202 00 0 00 006247' MOVEM CONSWW ; save switches
1736 002240' 254 00 0 00 002170' JRST .SRG5 ; continue
1737 002241' 200 00 0 00 006247' .SRG7: MOVE CONSWW ; get switches
1738 002242' 660 00 0 04 000000 TRO (4) ; set switch
1739 002243' 202 00 0 00 006247' MOVEM CONSWW ; save switches
1740 002244' 254 00 0 00 002170' JRST .SRG5 ; continue
1741
1742 002245' 262 17 0 00 000006 .SRGX: RGET (6,5,4,3,2,1,0) ; restore AC's
1743
1744 002254' 263 17 0 00 000000 RTN ; return
1745
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 42
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0807
1746
1747 ;#********************************************************************
1748 ; .SWIN - Input switches (either as # or ?)
1749 ;
1750 ; Return +1 - ? typed
1751 ; +2 - error
1752 ; +3 - # typed (in AC1)
1753 ; +4 - no change
1754 ;#********************************************************************
1755
1756 002255' 037 11 0 00 000003 .SWIN: TTYINP ; get image mode character
1757 002256' 306 00 0 00 000015 CAIN 15 ; CR typed?
1758 PJRST [GO CLRBUF ; clear input buffer
1759 AOS (P) ; increment return
1760 AOS (P) ; increment return
1761 AOS (P) ; increment return
1762 PCRLF
1763 002257' 254 00 0 00 005467' RTN]
1764 002260' 306 00 0 00 000077 CAIN "?" ; ? typed?
1765 PJRST [PCRL2F ; yes - exit
1766 002261' 254 00 0 00 005475' RTN]
1767 002262' 400 01 0 00 000000 SETZ 1, ; clear number for starters
1768 002263' 301 00 0 00 000060 .SWIN0: CAIL "0" ; number typed is in a valid
1769 002264' 303 00 0 00 000067 CAILE "7" ; range?
1770 PJRST [AOS (P) ; no - error return
1771 PCRLF
1772 002265' 254 00 0 00 005472' RTN]
1773 002266' 275 00 0 00 000060 SUBI 60 ; normalize to 0..7
1774 002267' 242 01 0 00 000003 LSH 1,3 ; shift over current copy of number
1775 002270' 270 01 0 00 000000 ADD 1,0 ; add in new digit
1776 002271' 037 11 0 00 000003 TTYINP ; get a new character
1777 002272' 302 00 0 00 000015 CAIE 15 ; carraige return?
1778 002273' 254 00 0 00 002263' JRST .SWIN0 ; no - go decode as a digit
1779 002274' 260 17 0 00 000045' GO CLRBUF ; clear out extra
1780 002275' 350 00 0 17 000000 AOS (P) ; set up return+2
1781 002276' 350 00 0 17 000000 AOS (P)
1782 002277' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 43
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0808
1783
1784 ;#********************************************************************
1785 ; .LSWIT - Table of left hand switch names
1786 ;#********************************************************************
1787
1788 002300' 41 42 57 62 64 00 .LSWIT: SIXBIT /ABORT /
1789 002301' 62 63 64 41 62 64 SIXBIT /RSTART/
1790 002302' 64 57 64 41 54 63 SIXBIT /TOTALS/
1791 002303' 56 57 60 56 64 00 SIXBIT /NOPNT /
1792 002304' 60 56 64 54 60 64 SIXBIT /PNTLPT/
1793 002305' 44 51 56 47 00 00 SIXBIT /DING /
1794 002306' 54 57 57 60 45 62 SIXBIT /LOOPER/
1795 002307' 45 62 63 64 57 60 SIXBIT /ERSTOP/
1796 002310' 60 41 54 45 62 63 SIXBIT /PALERS/
1797 002311' 62 45 54 51 41 42 SIXBIT /RELIAB/
1798 002312' 64 70 64 51 56 50 SIXBIT /TXTINH/
1799 002313' 55 57 44 44 66 43 SIXBIT /MODDVC/
1800 002314' 57 60 62 63 45 54 SIXBIT /OPRSEL/
1801 002315' 43 50 41 51 56 00 SIXBIT /CHAIN /
1802
1803 002316' 400000 000000 .LSWTN: 400000,,0 ; ABORT
1804 002317' 200000 000000 200000,,0 ; RSTART
1805 002320' 100000 000000 100000,,0 ; TOTALS
1806 002321' 040000 000000 040000,,0 ; NOPNT
1807 002322' 020000 000000 020000,,0 ; PNTLPT
1808 002323' 010000 000000 010000,,0 ; DING
1809 002324' 004000 000000 004000,,0 ; LOOPER
1810 002325' 002000 000000 002000,,0 ; ERSTOP
1811 002326' 001000 000000 001000,,0 ; PALERS
1812 002327' 000400 000000 000400,,0 ; RELIAB
1813 002330' 000200 000000 000200,,0 ; TXTINH
1814 002331' 000040 000000 000040,,0 ; MODDVC
1815 002332' 000010 000000 000010,,0 ; OPRSEL
1816 002333' 000004 000000 000004,,0 ; CHAIN
1817
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 44
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0809
1818
1819 ;#********************************************************************
1820 ; .RSWIT - Table of right hand switch names
1821 ;#********************************************************************
1822
1823 ; Here is the switch prompt table of SIXBIT switch names to use
1824
1825 002334' 64 62 41 43 45 00 .RSWIT: SIXBIT /TRACE/ ; switch 18
1826 002335' 51 56 50 46 54 64 SIXBIT /INHFLT/ ; switch 19
1827 002336' 51 56 50 55 63 47 SIXBIT /INHMSG/ ; switch 20
1828 002337' 54 57 57 60 47 55 SIXBIT /LOOPGM/ ; switch 21
1829 002340' 54 57 57 60 64 63 SIXBIT /LOOPTS/ ; switch 22
1830 002341' 62 65 56 41 54 54 SIXBIT /RUNALL/ ; switch 23
1831 002342' 44 63 60 45 41 62 SIXBIT /DSPEAR/ ; switch 24
1832 002343' 65 44 45 42 65 47 SIXBIT /UDEBUG/ ; switch 25
1833 002344' 55 44 45 42 65 47 SIXBIT /MDEBUG/ ; switch 26
1834 002345' 54 44 45 42 65 47 SIXBIT /LDEBUG/ ; switch 27
1835 002346' 44 44 45 42 65 47 SIXBIT /DDEBUG/ ; switch 28
1836 002347' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 29
1837 002350' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 30
1838 002351' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 31
1839 002352' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 32
1840 002353' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 33
1841 002354' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 34
1842 002355' 65 56 65 63 45 44 SIXBIT /UNUSED/ ; switch 35
1843
1844
1845 ;#*********************************************************************
1846 ;* SWCHPT - Prints current state of switches
1847 ;#*********************************************************************
1848
1849 002356' 261 17 0 00 000000 SWCHPT: PUT 0
1850 002357' 037 00 0 00 005477' TMSG <Switches - >
1851 002360' 200 00 0 00 030046 MOVE CONSW
1852 002361' 037 13 0 00 000001 PNTHWF
1853 002362' 037 00 0 00 005443' TMSGC <>
1854 002363' 262 17 0 00 000000 GET 0
1855 002364' 263 17 0 00 000000 RTN
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 45
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0810
1856
1857 ;#********************************************************************
1858 ;* SWCOM - Switch complement routine
1859 ;
1860 ; Argument: AC1 - Contains switch command number (0-x)
1861 ;#********************************************************************
1862
1863 002365' 261 17 0 00 000000 SWCOM: RPUT (0,1,2) ; save AC's
1864
1865 002370' 200 02 0 01 002447' MOVE 2,SWCOMP(1) ; get text
1866 002371' 200 01 0 01 002424' MOVE 1,SWCOMT(1) ; get switch in octal
1867 002372' 336 00 0 00 030037 SKIPN USER ; user mode?
1868 002373' 607 01 0 00 777777 TLNN 1,777777 ; no - left hand switch set?
1869 002374' 254 00 0 00 002404' JRST SWCOM0 ; no - continue
1870
1871 ; Cannot complement
1872
1873 002375' 037 01 0 00 005502' FMSGC <[Alter >
1874 002376' 256 00 0 00 000002 XCT 2
1875 002377' 037 01 0 00 005504' FMSG < with PDP11 Switch >
1876 002400' 200 01 0 17 777777 MOVE 1,-1(P) ; get switch number
1877 XCT [FMSG <12> ; print it
1878 FMSG <11>
1879 FMSG <10>
1880 FMSG <8>
1881 FMSG <7>
1882 FMSG <6>
1883 FMSG <5>
1884 002401' 256 00 0 01 005520' FMSG <1>](1)
1885 002402' 037 01 0 00 005530' FMSGD < only]>
1886 002403' 254 00 0 00 002420' JRST SWCOMX ; exit
1887
1888 ; Ok to complement
1889
1890 002404' 260 17 0 00 001764' SWCOM0: GO SWITT ; get switches
1891 002405' 430 00 0 00 000001 XOR 1 ; complement as specified
1892 002406' 202 00 0 00 030046 MOVEM CONSW ; save switches
1893 002407' 552 00 0 00 001771' HRRZM SWRGT ; save right hand switches
1894 002410' 037 01 0 00 005532' FMSGC <[>
1895 002411' 256 00 0 00 000002 XCT 2 ; print text
1896 002412' 260 17 0 00 001764' GO SWITT ; get switches
1897 002413' 404 00 0 00 000001 AND 1 ; get only this switch
1898 002414' 332 00 0 00 000000 SKIPE ; did it get set?
1899 002415' 037 01 0 00 005533' FMSGD < On]> ; yes
1900 002416' 336 00 0 00 000000 SKIPN ; did it get set?
1901 002417' 037 01 0 00 005535' FMSGD < Off]> ; no
1902 002420' 262 17 0 00 000002 SWCOMX: RGET (2,1,0) ; restore AC's
1903
1904 002423' 263 17 0 00 000000 RTN ; continue
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 46
DFNIAU MAC 6-Aug-83 09:31 Switch Handling Routines SEQ 0811
1905
1906 ; Switches in octal
1907
1908 002424' 040000 000000 SWCOMT: 040000,,0 ; NOPNT
1909 002425' 020000 000000 020000,,0 ; PNTLPT
1910 002426' 010000 000000 010000,,0 ; DING
1911 002427' 002000 000000 002000,,0 ; ERSTOP
1912 002430' 001000 000000 001000,,0 ; PALERS
1913 002431' 000400 000000 000400,,0 ; RELIAB
1914 002432' 000200 000000 000200,,0 ; TXTINH
1915 002433' 000010 000000 000010,,0 ; OPRSEL
1916 002434' 000000 400000 0,,400000 ; TRACE
1917 002435' 000000 200000 0,,200000 ; INHFLT
1918 002436' 000000 100000 0,,100000 ; INHMSG
1919 002437' 000000 040000 0,,040000 ; LOOPGM
1920 002440' 000000 020000 0,,020000 ; LOOPTS
1921 002441' 000000 010000 0,,010000 ; RUNALL
1922 002442' 000000 004000 0,,004000 ; DSPEAR
1923 002443' 000000 002000 0,,002000 ; UDEBUG
1924 002444' 000000 001000 0,,001000 ; MDEBUG
1925 002445' 000000 000400 0,,000400 ; LDEBUG
1926 002446' 000000 000200 0,,000200 ; DDEBUG
1927
1928 ; Switch text
1929
1930 002447' 037 01 0 00 005537' SWCOMP: FMSG <NOPNT>
1931 002450' 037 01 0 00 005541' FMSG <PNTLPT>
1932 002451' 037 01 0 00 005543' FMSG <DING>
1933 002452' 037 01 0 00 005544' FMSG <ERSTOP>
1934 002453' 037 01 0 00 005546' FMSG <PALERS>
1935 002454' 037 01 0 00 005550' FMSG <RELIAB>
1936 002455' 037 01 0 00 005552' FMSG <TXTINH>
1937 002456' 037 01 0 00 005554' FMSG <OPRSEL>
1938 002457' 037 01 0 00 005556' FMSG <TRACE>
1939 002460' 037 01 0 00 005560' FMSG <INHFLT>
1940 002461' 037 01 0 00 005562' FMSG <INHMSG>
1941 002462' 037 01 0 00 005564' FMSG <LOOPGM>
1942 002463' 037 01 0 00 005566' FMSG <LOOPTS>
1943 002464' 037 01 0 00 005570' FMSG <RUNALL>
1944 002465' 037 01 0 00 005572' FMSG <DSPEAR>
1945 002466' 037 01 0 00 005574' FMSG <UDEBUG>
1946 002467' 037 01 0 00 005576' FMSG <MDEBUG>
1947 002470' 037 01 0 00 005600' FMSG <LDEBUG>
1948 002471' 037 01 0 00 005602' FMSG <DDEBUG>
1949
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 47
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0812
1950 SUBTTL Miscellaneous Routines
1951
1952 ;#********************************************************************
1953 ;* PARSER - Additional CPU parity error service
1954 ;
1955 ; This routine is called by the subroutine package automatically when the
1956 ; processor is interrupted with a memory parity error. It furnishes some
1957 ; additional useful information. (A) IPA status (B) Channel status. If
1958 ; running on a KL10 in exec mode, and the parity error occurs not in the
1959 ; program area but the data buffer, the error will be cleared and the
1960 ; diagnostic will be forced to loop on the error.
1961 ;#********************************************************************
1962
1963 002472' 332 00 0 00 030037 PARSER: SKIPE USER ; user mode?
1964 002473' 260 17 0 00 000000* GO FFF ; yes - fatal error
1965 002474' 261 17 0 00 000000 RPUT (0,1) ; save AC's
1966
1967 002476' 402 00 0 00 000001 SETZM 1
1968 002477' 260 17 0 00 000000* GO RDCSR ; read CSR register
1969 002500' 255 00 0 00 000000 JFCL ; error return
1970 002501' 037 01 0 00 005604' FMSGC <************* Memory Parity Error Occurred *************>
1971 002502' 037 01 0 00 005620' FMSGC <CSR: >
1972 002503' 200 00 0 00 000001 MOVE 1
1973 002504' 037 13 0 00 000001 PNTHWF
1974 002505' 260 17 0 00 000000* GO GETLOG ; get logout area for channel
1975 002506' 260 17 0 00 000000* GO LOGPNT ; print logout data
1976 002507' 336 00 0 00 030041 SKIPN KLFLG ; KL-PROCESSOR?
1977 002510' 260 17 0 00 002473* GO FFF ; no - fatal error
1978 002511' 255 00 0 00 000000 JFCL ; yes
1979 002512' 256 00 0 00 005622' XCT [700400,,0] ; read error addr register
1980 002513' 404 00 0 00 005623' AND 0,[17,777777] ; save 22 bit address
1981 002514' 202 00 0 00 006274' MOVEM XYZ# ; save
1982 002515' 311 00 1 00 006246' CAML 0,@ABUFF# ; in buffer area
1983 002516' 254 00 0 00 002521' JRST CORECT ; yes. we can continue
1984 002517' 037 01 0 00 005624' FMSGCD <Error not in data buffer area, cannot continue>
1985 002520' 260 17 0 00 002510* GO FFF ; fatal out
1986
1987 002521' 037 01 0 00 005637' CORECT: FMSGCD <Error is in the data buffer, diag will continue>
1988 002522' 256 00 0 00 005652' XCT [700240,,0] ; CONI APR
1989 002523' 554 00 0 00 000000 HLRZ 0,0 ; swaps flags to right
1990 002524' 435 00 0 00 000001 IORI 0,1 ; include PI channel
1991 002525' 405 00 0 00 007777 ANDI 0,7777 ; save FLAGS and PI
1992 002526' 434 00 0 00 005653' IOR 0,[700200,,120000] ; clr and re-enable
1993 002527' 256 00 0 00 000000 XCT 0 ; does the CONO
1994 002530' 256 00 0 00 005652' XCT [700240,,0] ; another CONI
1995 002531' 262 17 0 00 000001 GET 1
1996 002532' 262 17 0 00 000000 GET 0
1997 002533' 254 12 1 00 030104 JEN @ITRCH1 ; dismiss the interrupt
1998
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 48
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0813
1999
2000 ;#********************************************************************
2001 ;* .COMM - Match a command entered against a command table.
2002 ;
2003 ; Handle erroneous input by returning to re-ask question.
2004 ;
2005 ; Arguments: AC1 - Contains the SIXBIT command entered
2006 ; AC2 - Contains address of command table
2007 ;
2008 ; Returns: RTN+1 - Return error address (for re-asking question)
2009 ; RTN+2 - Valid command recognized, offset in command
2010 ; table is returned in AC1
2011 ;
2012 ;#********************************************************************
2013
2014 002534' 261 17 0 00 000000 .COMM: RPUT (0,2,3) ; save some AC's
2015
2016 002537' 202 01 0 00 002561' MOVEM 1,.CTYP ; save command typed
2017
2018 ; Now look through each command
2019
2020 002540' 474 03 0 00 000000 SETO 3, ; init test check pointer
2021 002541' 350 00 0 00 000003 .COMM0: AOS 3 ; point to next command
2022 002542' 260 17 0 00 002565' GO .COMM2 ; see if this is the test selected
2023 002543' 254 00 0 00 002541' JRST .COMM0 ; no - try next command
2024 002544' 254 00 0 00 002551' JRST .COMM1 ; yes - go handle
2025
2026 ; Error exit
2027
2028 002545' 262 17 0 00 000003 RGET (3,2,0) ; restore AC's
2029
2030 002550' 263 17 0 00 000000 RTN ; return + 1 (error)
2031
2032 ; Found a valid command
2033
2034 002551' 202 03 0 00 002560' .COMM1: MOVEM 3,.CGOT ; save command number
2035 002552' 202 03 0 00 000001 MOVEM 3,1 ; put into AC1
2036 002553' 262 17 0 00 000003 RGET (3,2,0) ; restore AC's
2037
2038 002556' 350 00 0 17 000000 AOS (P) ; set up return + 2 (valid return)
2039 002557' 263 17 0 00 000000 RTN
2040
2041 ; Storage areas
2042
2043 002560' 000000 000000 .CGOT: 0 ; command number
2044
2045 002561' 000000 000000 .CTYP: 0 ; command typed (SIXBIT)
2046 002562' 000000 000000 0
2047
2048 002563' 000000 000000 .CTBL: 0 ; command to compare
2049 002564' 000000 000000 0
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 49
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0814
2050
2051 ;#********************************************************************
2052 ;* .COMM2 - Compare command typed to table to see if valid
2053 ;
2054 ; AC2 - Contains address of sixbit command table
2055 ; AC3 - Contains current command number (0..)
2056 ;#********************************************************************
2057
2058 002565' 261 17 0 00 000000 .COMM2: RPUT (0,1,2,3) ; save AC's
2059
2060 002571' 270 02 0 00 000003 ADD 2,3 ; calculate address of entry to compare
2061 002572' 200 00 0 02 000000 MOVE (2) ; get cmd table entry
2062 002573' 322 00 0 00 002622' JUMPE .COMM6 ; reached end of table? - yes - exit
2063 002574' 202 00 0 00 002563' MOVEM .CTBL ; save cmd table entry
2064 002575' 200 02 0 00 005654' MOVE 2,[POINT 6,.CTYP,5] ; set up byte pointers
2065 002576' 200 03 0 00 005655' MOVE 3,[POINT 6,.CTBL,5] ; ...
2066 002577' 135 00 0 00 000002 .COMM3: LDB 0,2 ; get character of typed
2067 002600' 135 01 0 00 000003 LDB 1,3 ; get character of table
2068 002601' 322 00 0 00 002607' JUMPE .COMM4 ; end of typed? yes - done
2069 002602' 312 00 0 00 000001 CAME 1 ; no - same as table?
2070 002603' 254 00 0 00 002615' JRST .COMM5 ; no - no match - exit
2071 002604' 133 00 0 00 000002 IBP 2 ; increment byte pointers
2072 002605' 133 00 0 00 000003 IBP 3 ; ...
2073 002606' 254 00 0 00 002577' JRST .COMM3 ; end of table entry? no - keep looping
2074 002607' 262 17 0 00 000003 .COMM4: RGET (3,2,1,0) ; yes - match - done
2075
2076 002613' 350 00 0 17 000000 AOS (P) ; set up return+2
2077 002614' 263 17 0 00 000000 RTN ; return+2
2078 002615' 262 17 0 00 000003 .COMM5: RGET (3,2,1,0) ; no match
2079
2080 002621' 263 17 0 00 000000 RTN ; return+1
2081 002622' 262 17 0 00 000003 .COMM6: RGET (3,2,1,0) ; return as end of list
2082
2083 002626' 350 00 0 17 000000 AOS (P) ; set up return+2
2084 002627' 350 00 0 17 000000 AOS (P) ; set up return+3
2085 002630' 263 17 0 00 000000 RTN ; return+3
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 50
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0815
2086
2087 ;#********************************************************************
2088 ;* .SARG - Obtain SIXBIT argument
2089 ;
2090 ; Arguments: ARGFLG - 0 - No more arguments
2091 ; -1 - More arguments have been given
2092 ; AC1 - Contains executable help message
2093 ;
2094 ; Returns: ARGUM - Contains SIXBIT argument
2095 ; ARGFLG - Updated
2096 ; +1 - Error occurred/Altmode typed/Question mark typed
2097 ; +2 - No argument
2098 ; +3 - Ok
2099 ;#********************************************************************
2100
2101 002631' 261 17 0 00 000000 .SARG: RPUT (0,1,2,3,ALTMGO) ; save AC's
2102
2103 MOVEI [SETOM ALTF ; set up altmode handling to exit
2104 PCRL ; +1 after setting altmode flag
2105 002636' 201 00 0 00 005656' JRST .SARX1] ; and skipping a line
2106 002637' 202 00 0 00 030063 MOVEM ALTMGO
2107
2108 ; Check if any arguments were given at all
2109
2110 002640' 336 00 0 00 003052' SKIPN ARGFLG ; any arguments?
2111 002641' 254 00 0 00 002662' JRST .SARX2 ; no - exit 'no argument'
2112
2113 ; Check for file input
2114
2115 002642' 332 00 0 00 001044* SKIPE FINPUT ; file input?
2116 JRST [GO FSARG ; yes - input octal argument
2117 JRST .SARX1 ; error or EOF occurred
2118 002643' 254 00 0 00 005661' JRST .SARG1] ; continue
2119
2120 ; Input SIXBIT argument
2121
2122 002644' 037 10 0 00 000003 .SARG0: TTSIXB ; get argument
2123 002645' 007 00 0 00 002671' ALTCHK .SARGA ; error - go handle
2124
2125 ; Check result
2126
2127 .SARG1: JUMPE [MOVE $TTCHR ; anything typed? if a space, keep
2128 CAIN 40 ; looking for an argument, if not
2129 JRST .SARG0 ; exit
2130 002646' 322 00 0 00 005664' JRST .SARX2]
2131 002647' 202 00 0 00 003051' MOVEM ARGUM ; save argument
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 51
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0816
2132
2133 ; Check for last argument
2134
2135 002650' 402 00 0 00 003052' SETZM ARGFLG ; clear 'argument typed' flag
2136 002651' 200 01 0 00 030231 MOVE 1,$TTCHR ; get last character typed
2137 002652' 302 01 0 00 000015 CAIE 1,15 ; CR? (end of line)
2138 002653' 476 00 0 00 003052' SETOM ARGFLG ; no - set 'argument typed' flag
2139
2140 ; Check if this should have been the last argument
2141
2142 002654' 331 00 0 17 777775 SKIPL -3(P) ; help message negative?
2143 002655' 254 00 0 00 002661' JRST .+4 ; no - exit
2144 002656' 260 17 0 00 003077' GO LASARG ; check for last argument
2145 002657' 254 00 0 00 002663' JRST .SARX1 ; error - exit +1
2146 JRST [MOVM 1,-3(P) ; any help here?
2147 JUMPE 1,.SARX1 ; no - continue
2148 XCT 1 ; yes - execute it
2149 002660' 254 00 0 00 005670' JRST .SARX1] ; yes - handle
2150 002661' 350 00 0 17 777773 AOS -5(P) ; adjust return
2151 002662' 350 00 0 17 777773 .SARX2: AOS -5(P) ; adjust return
2152
2153 ; Exit
2154
2155 002663' 262 17 0 00 030063 .SARX1: RGET (ALTMGO,3,2,1,0) ; restore AC's
2156
2157 002670' 263 17 0 00 000000 RTN ; return
2158
2159 ; Altmode typed
2160
2161 002671' 262 17 0 00 006273' .SARGA: GET XXT# ; adjust stack properly
2162 002672' 336 00 0 00 030225 SKIPN $TWCNT ; did a timeout occur?
2163 002673' 254 00 0 00 002662' JRST .SARX2 ; yes - assume 'no argument'
2164 002674' 200 01 0 00 030231 MOVE 1,$TTCHR ; no - get character typed
2165 002675' 306 01 0 00 000077 CAIN 1,77 ; was a question mark typed?
2166 JRST [MOVM 1,-3(P) ; yes - any help here?
2167 JUMPE 1,.SARX1 ; no - exit
2168 XCT 1 ; yes - execute it
2169 002676' 254 00 0 00 005670' JRST .SARX1] ; exit
2170 002677' 302 01 0 00 000040 CAIE 1,40 ; space (delimiter character) typed?
2171 JRST [FMSGCD <? Argument error> ; no - error - exit
2172 002700' 254 00 0 00 005701' JRST .SARX1]
2173 002701' 254 00 0 00 002646' JRST .SARG1 ; continue
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 52
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0817
2174
2175 ;#********************************************************************
2176 ;* .OARG - Obtain octal argument
2177 ;
2178 ; Arguments: ARGFLG - 0 - No more arguments
2179 ; -1 - More arguments have been given
2180 ; AC1 - Contains executable help message
2181 ;
2182 ; Returns: ARGUM - Contains octal argument
2183 ; ARGFLG - Updated
2184 ;
2185 ; +1 - Error occurred/Altmode typed/Question mark typed
2186 ; +2 - No argument
2187 ; +3 - Ok
2188 ;#********************************************************************
2189
2190 002702' 261 17 0 00 000000 .OARG: RPUT (0,1,2,3,ALTMGO) ; save AC's
2191
2192 MOVEI [SETOM ALTF ; set up altmode handling to exit
2193 PCRL ; +1 after setting altmode flag
2194 002707' 201 00 0 00 005703' JRST .OARX1] ; and skipping a line
2195 002710' 202 00 0 00 030063 MOVEM ALTMGO
2196
2197 ; Check if any arguments were given at all
2198
2199 002711' 336 00 0 00 003052' SKIPN ARGFLG ; any arguments?
2200 002712' 254 00 0 00 002734' JRST .OARX2 ; no - exit 'no argument'
2201
2202 ; Check for file input
2203
2204 002713' 332 00 0 00 002642* SKIPE FINPUT ; file input?
2205 JRST [GO FOARG ; yes - input octal argument
2206 JRST .OARX1 ; error or EOF occurred
2207 002714' 254 00 0 00 005706' JRST .OARG1] ; continue
2208
2209 ; Input octal argument
2210
2211 002715' 037 03 0 00 000003 .OARG0: TTIOCT ; get a number
2212 002716' 007 00 0 00 002743' ALTCHK .OARGA ; error - go handle
2213
2214 ; Check result
2215
2216 002717' 202 00 0 00 003051' .OARG1: MOVEM ARGUM ; save argument
2217 002720' 336 00 0 00 030510 SKIPN TTNBRF ; any number typed?
2218 JRST [MOVE 1,$TTCHR ; anything typed? if a space, keep
2219 CAIN 1,40 ; looking for an argument, if not
2220 JRST .OARG0 ; exit
2221 002721' 254 00 0 00 005711' JRST .OARX2]
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 53
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0818
2222
2223 ; Check for last argument
2224
2225 002722' 402 00 0 00 003052' SETZM ARGFLG ; clear 'argument typed' flag
2226 002723' 200 01 0 00 030231 MOVE 1,$TTCHR ; get last character typed
2227 002724' 302 01 0 00 000015 CAIE 1,15 ; CR? (end of line)
2228 002725' 476 00 0 00 003052' SETOM ARGFLG ; no - set 'argument typed' flag
2229
2230 ; Check if this should have been the last argument
2231
2232 002726' 331 00 0 17 777775 SKIPL -3(P) ; help message negative?
2233 002727' 254 00 0 00 002733' JRST .+4 ; no - exit
2234 002730' 260 17 0 00 003077' GO LASARG ; check for last argument
2235 002731' 254 00 0 00 002735' JRST .OARX1 ; error - exit +1
2236 JRST [MOVM 1,-3(P) ; any help here?
2237 JUMPE 1,.OARX1 ; no - continue
2238 XCT 1 ; yes - execute it
2239 002732' 254 00 0 00 005715' JRST .OARX1] ; yes - handle
2240 002733' 350 00 0 17 777773 AOS -5(P) ; adjust return
2241 002734' 350 00 0 17 777773 .OARX2: AOS -5(P) ; adjust return
2242
2243 ; Exit
2244
2245 002735' 262 17 0 00 030063 .OARX1: RGET (ALTMGO,3,2,1,0) ; restore AC's
2246
2247 002742' 263 17 0 00 000000 RTN ; return
2248
2249 ; Altmode typed
2250
2251 002743' 262 17 0 00 006273' .OARGA: GET XXT# ; adjust stack properly
2252 002744' 336 00 0 00 030225 SKIPN $TWCNT ; did a timeout occur?
2253 002745' 254 00 0 00 002734' JRST .OARX2 ; yes - assume 'no argument'
2254 002746' 200 01 0 00 030231 MOVE 1,$TTCHR ; no - get character typed
2255 002747' 306 01 0 00 000077 CAIN 1,77 ; was a question mark typed?
2256 JRST [MOVM 1,-3(P) ; yes - any help here?
2257 JUMPE 1,.OARX1 ; no - exit
2258 XCT 1 ; yes - execute it
2259 002750' 254 00 0 00 005715' JRST .OARX1] ; exit
2260 002751' 302 01 0 00 000040 CAIE 1,40 ; space (delimiter character) typed?
2261 JRST [FMSGCD <? Argument error> ; no - error - exit
2262 002752' 254 00 0 00 005721' JRST .OARX1]
2263 002753' 200 00 0 00 030233 MOVE $TYPNB ; get number typed
2264 002754' 254 00 0 00 002717' JRST .OARG1 ; and exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 54
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0819
2265
2266 ;#********************************************************************
2267 ;* DECYN - Decode an argument which should be NO or YES
2268 ;
2269 ; Arguments: ARGUM - Contains sixbit argument
2270 ;
2271 ; Return: +1 - Unrecognizable (print message also)
2272 ; +2 - No
2273 ; +3 - Yes
2274 ;#********************************************************************
2275
2276 002755' 261 17 0 00 000000 DECYN: RPUT (0,1,2) ; save AC's
2277
2278 002760' 200 01 0 00 003051' MOVE 1,ARGUM ; get command into AC1
2279 002761' 201 02 0 00 002773' MOVEI 2,DECLIS ; get address of cmd list
2280 002762' 260 17 0 00 002534' GO .COMM ; handle command decoding
2281 JRST [FMSGCD <? Unrecognized argument>
2282 002763' 254 00 0 00 005731' JRST DECERR]
2283 002764' 332 00 0 00 000001 SKIPE 1 ; NO typed?
2284 002765' 350 00 0 17 777775 AOS -3(P) ; increment return
2285 002766' 350 00 0 17 777775 AOS -3(P) ; increment return
2286 002767' 262 17 0 00 000002 DECERR: RGET (2,1,0) ; restore AC's
2287
2288 002772' 263 17 0 00 000000 RTN ; return
2289
2290 002773' 56 57 00 00 00 00 DECLIS: SIXBIT /NO/
2291 002774' 71 45 63 00 00 00 SIXBIT /YES/
2292 002775' 000 00 0 00 000000 Z
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 55
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0820
2293
2294 ;#********************************************************************
2295 ;* .DARG - Obtain octal/decimal argument
2296 ;
2297 ; Arguments: ARGFLG - 0 - No more arguments
2298 ; -1 - More arguments have been given
2299 ; AC1 - Contains executable help message
2300 ;
2301 ; Returns: ARGUM - Contains octal argument
2302 ; ARGFLG - Updated
2303 ;
2304 ; +1 - Error occurred/Altmode typed/Question mark typed
2305 ; +2 - No argument
2306 ; +3 - Ok
2307 ;#********************************************************************
2308
2309 002776' 261 17 0 00 000000 .DARG: RPUT (0,1,2,3,ALTMGO) ; save AC's
2310
2311 MOVEI [SETOM ALTF ; set up altmode handling to exit
2312 PCRL ; +1 after setting altmode flag
2313 003003' 201 00 0 00 005733' JRST .DARX1] ; and skipping a line
2314 003004' 202 00 0 00 030063 MOVEM ALTMGO
2315
2316 ; Check if any arguments were given at all
2317
2318 003005' 336 00 0 00 003052' SKIPN ARGFLG ; any arguments?
2319 003006' 254 00 0 00 003030' JRST .DARX2 ; no - exit 'no argument'
2320
2321 ; Check for file input
2322
2323 003007' 332 00 0 00 002713* SKIPE FINPUT ; file input?
2324 JRST [GO FOARG ; yes - input octal argument
2325 JRST .DARX1 ; error or EOF occurred
2326 003010' 254 00 0 00 005736' JRST .DARG1] ; continue
2327
2328 ; Input octal/decimal argument
2329
2330 003011' 037 05 0 00 000003 .DARG0: TTICNV ; get a number
2331 003012' 007 00 0 00 003037' ALTCHK .DARGA ; error - go handle
2332
2333 ; Check result
2334
2335 003013' 202 00 0 00 003051' .DARG1: MOVEM ARGUM ; save argument
2336 003014' 336 00 0 00 030510 SKIPN TTNBRF ; any number typed?
2337 JRST [MOVE 1,$TTCHR ; anything typed? if a space, keep
2338 CAIN 1,40 ; looking for an argument, if not
2339 JRST .DARG0 ; exit
2340 003015' 254 00 0 00 005741' JRST .DARX2]
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 56
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0821
2341
2342 ; Check for last argument
2343
2344 003016' 402 00 0 00 003052' SETZM ARGFLG ; clear 'argument typed' flag
2345 003017' 200 01 0 00 030231 MOVE 1,$TTCHR ; get last character typed
2346 003020' 302 01 0 00 000015 CAIE 1,15 ; CR? (end of line)
2347 003021' 476 00 0 00 003052' SETOM ARGFLG ; no - set 'argument typed' flag
2348
2349 ; Check if this should have been the last argument
2350
2351 003022' 331 00 0 17 777775 SKIPL -3(P) ; help message negative?
2352 003023' 254 00 0 00 003027' JRST .+4 ; no - exit
2353 003024' 260 17 0 00 003077' GO LASARG ; check for last argument
2354 003025' 254 00 0 00 003031' JRST .DARX1 ; error - exit +1
2355 JRST [MOVM 1,-3(P) ; any help here?
2356 JUMPE 1,.DARX1 ; no - continue
2357 XCT 1 ; yes - execute it
2358 003026' 254 00 0 00 005745' JRST .DARX1] ; yes - handle
2359 003027' 350 00 0 17 777773 AOS -5(P) ; adjust return
2360 003030' 350 00 0 17 777773 .DARX2: AOS -5(P) ; adjust return
2361
2362 ; Exit
2363
2364 003031' 262 17 0 00 030063 .DARX1: RGET (ALTMGO,3,2,1,0) ; restore AC's
2365
2366 003036' 263 17 0 00 000000 RTN ; return
2367
2368 003037' 262 17 0 00 006273' .DARGA: GET XXT# ; adjust stack properly
2369 003040' 336 00 0 00 030225 SKIPN $TWCNT ; did a timeout occur?
2370 003041' 254 00 0 00 003030' JRST .DARX2 ; yes - assume 'no argument'
2371 003042' 200 01 0 00 030231 MOVE 1,$TTCHR ; no - get character typed
2372 003043' 306 01 0 00 000077 CAIN 1,77 ; was a question mark typed?
2373 JRST [MOVM 1,-3(P) ; yes - any help here?
2374 JUMPE 1,.DARX1 ; no - exit
2375 XCT 1 ; yes - execute it
2376 003044' 254 00 0 00 005745' JRST .DARX1] ; exit
2377 003045' 302 01 0 00 000040 CAIE 1,40 ; space (delimiter character) typed?
2378 JRST [FMSGCD <? Argument error> ; no - error - exit
2379 003046' 254 00 0 00 005751' JRST .DARX1]
2380 003047' 200 00 0 00 030233 MOVE $TYPNB ; get number typed
2381 003050' 254 00 0 00 003013' JRST .DARG1 ; and exit
2382
2383 ; Argument variables
2384
2385 003051' 000000 000000 ARGUM: 0
2386 003052' 000000 000000 ARGFLG: 0
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 57
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0822
2387
2388 ;#********************************************************************
2389 ;* CHKARG - Check for argument when there shouldn't be any
2390 ;
2391 ; Arguments: AC1 - Contains confirmation message
2392 ;
2393 ; Return: +1 - An argument was typed
2394 ; +2 - No argument was typed
2395 ;#********************************************************************
2396
2397 003053' 261 17 0 00 000000 CHKARG: RPUT (0,1,ALTMGO) ; save AC's
2398
2399 003056' 336 00 0 00 003052' SKIPN ARGFLG ; any argument at all?
2400 003057' 254 00 0 00 003072' JRST CHKARX ; no - exit +2
2401 MOVEI [SETOM ALTF ; set up altmode handling to exit
2402 PCRL ; +1 after setting altmode flag
2403 003060' 201 00 0 00 005753' JRST CHKARA] ; and skipping a line
2404 003061' 202 00 0 00 030063 MOVEM ALTMGO
2405
2406 ; Input argument to see if ? typed
2407
2408 003062' 332 00 0 00 003007* SKIPE FINPUT ; file input switch set?
2409 JRST [GO FEOL ; yes - move to end of line
2410 003063' 254 00 0 00 005756' JRST CHKARX]
2411 003064' 037 05 0 00 000003 CHKAR0: TTICNV ; get a number
2412 ALTCHK [GET XXT# ; adjust stack properly
2413 SKIPN $TWCNT ; did a timeout occur?
2414 JRST CHKARY ; yes - error
2415 MOVE 1,$TTCHR ; no - get character typed
2416 CAIE 1,77 ; was a question mark typed?
2417 JRST .+1 ; no - error
2418 XCT -1(P) ; print help message
2419 003065' 007 00 0 00 005760' JRST CHKARA] ; and exit
2420 003066' 336 00 0 00 030510 SKIPN TTNBRF ; any number typed?
2421 JRST [MOVE $TTCHR ; anything typed? if a space, keep
2422 CAIN 40 ; looking for an argument, if not
2423 JRST CHKAR0 ; exit
2424 CAIN 15
2425 JRST CHKARX
2426 003067' 254 00 0 00 005770' JRST CHKARY]
2427
2428 003070' 037 01 0 00 005776' CHKARY: FMSGCD <? No argument expected>
2429 003071' 334 00 0 00 000000 SKIPA
2430 003072' 350 00 0 17 777775 CHKARX: AOS -3(P) ; adjust stack
2431 003073' 262 17 0 00 030063 CHKARA: RGET (ALTMGO,1,0) ; restore AC's
2432
2433 003076' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 58
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0823
2434
2435 ;#********************************************************************
2436 ;* LASARG - Check for last argument when there shouldn't be any more
2437 ;
2438 ; Return: +1 - Error - more arguments
2439 ; +2 - Question mark typed
2440 ; +3 - No more arguments typed
2441 ;#********************************************************************
2442
2443 003077' 261 17 0 00 000000 LASARG: RPUT (0,1,ALTMGO) ; save AC's
2444
2445 003102' 336 00 0 00 003052' SKIPN ARGFLG ; any argument at all?
2446 003103' 254 00 0 00 003116' JRST LASARX ; no - exit +3
2447 MOVEI [SETOM ALTF ; set up altmode handling to exit
2448 PCRL ; +1 after setting altmode flag
2449 003104' 201 00 0 00 006004' JRST LASARA] ; and skipping a line
2450 003105' 202 00 0 00 030063 MOVEM ALTMGO
2451 003106' 332 00 0 00 003062* SKIPE FINPUT ; file input switch set?
2452 JRST [GO FEOL ; yes - move to end of line
2453 003107' 254 00 0 00 006007' JRST LASARX]
2454 003110' 037 05 0 00 000003 LASAR0: TTICNV ; get a number
2455 ALTCHK [GET XXT# ; adjust stack properly
2456 SKIPN $TWCNT ; did a timeout occur?
2457 JRST LASAR1 ; yes - error
2458 MOVE 1,$TTCHR ; get character typed
2459 CAIE 1,77 ; question mark?
2460 JRST .+1 ; yes - continue
2461 003111' 007 00 0 00 006011' JRST LASARX+1] ; no - handle
2462 003112' 336 00 0 00 030510 SKIPN TTNBRF ; any number typed?
2463 JRST [MOVE $TTCHR ; anything typed? if a space, keep
2464 CAIN 40 ; looking for an argument, if not
2465 JRST LASAR0 ; exit
2466 CAIN 15
2467 JRST LASARX
2468 003113' 254 00 0 00 006020' JRST LASAR1]
2469
2470 003114' 037 01 0 00 006026' LASAR1: FMSGCD <? Too many arguments>
2471 003115' 254 00 0 00 003120' JRST .+3
2472 003116' 350 00 0 17 777775 LASARX: AOS -3(P) ; adjust stack
2473 003117' 350 00 0 17 777775 AOS -3(P)
2474 003120' 262 17 0 00 030063 LASARA: RGET (ALTMGO,1,0) ; restore AC's
2475
2476 003123' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 59
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0824
2477
2478 ;#********************************************************************
2479 ;* FIOFF - Routine to turn off the 'file input' switch
2480 ;#********************************************************************
2481
2482 003124' 336 00 0 00 003106* FIOFF: SKIPN FINPUT ; switch set?
2483 003125' 263 17 0 00 000000 RTN ; no - return
2484 003126' 261 17 0 00 000000 PUT 0 ; yes - save AC0
2485 003127' 037 01 0 00 006033' FMSGC <[Input from > ; print message
2486 003130' 200 00 0 00 001036* MOVE TAKFIL ; print file name
2487 003131' 037 01 0 00 000002 PNTSXF
2488 003132' 037 01 0 00 000056 PNTCIF "."
2489 003133' 200 00 0 00 000000# MOVE TAKFIL+1
2490 003134' 037 01 0 00 000002 PNTSXF
2491 003135' 037 01 0 00 006036' FMSGD < aborted]>
2492 003136' 402 00 0 00 003124* SETZM FINPUT ; clear 'file input' flag
2493 003137' 262 17 0 00 000000 GET 0 ; restore AC0
2494 003140' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 60
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0825
2495
2496 ;#********************************************************************
2497 ;* FINCMD - Input a sixbit command from a file
2498 ;
2499 ; Return +1 - Error/EOF
2500 ; +2 - Sixbit word in AC0
2501 ;#********************************************************************
2502
2503 003141' 261 17 0 00 000001 FINCMD: RPUT (1,2) ; save AC's
2504
2505 003143' 402 00 0 00 006253' SETZM FINSIX# ; initialize word
2506 003144' 400 01 0 00 000000 SETZ 1, ; byte count
2507 003145' 200 02 0 00 006041' MOVE 2,[POINT 6,FINSIX] ; initial byte pointer
2508
2509 003146' 260 17 0 00 001023' FINCM0: GO CHRINS ; get a character
2510 003147' 254 00 0 00 003175' JRST FINCMX ; exit - error or EOF occurred
2511 003150' 306 00 0 00 000040 CAIN " " ; space typed?
2512 003151' 254 00 0 00 003165' JRST FINCMC ; yes - exit valid command in AC0
2513 003152' 306 00 0 00 000054 CAIN "," ; comma typed?
2514 003153' 254 00 0 00 003165' JRST FINCMC ; yes - exit valid command in AC0
2515 003154' 306 00 0 00 000015 CAIN 15 ; carriage return typed?
2516 003155' 254 00 0 00 003165' JRST FINCMC ; yes - exit valid command in AC0
2517 003156' 350 00 0 00 000001 AOS 1 ; increment byte count
2518 003157' 303 00 0 00 000140 CAILE 140 ; lowercase?
2519 003160' 275 00 0 00 000040 SUBI 40 ; yes - make into upper case
2520 003161' 275 00 0 00 000040 SUBI 40 ; convert to sixbit
2521 003162' 307 01 0 00 000006 CAIG 1,6 ; exceed 6 characters?
2522 003163' 136 00 0 00 000002 IDPB 2 ; no - save sixbit byte
2523 003164' 254 00 0 00 003146' JRST FINCM0 ; get next character
2524
2525 ; Exit with command in AC0
2526
2527 003165' 202 00 0 00 030231 FINCMC: MOVEM $TTCHR ; save last character typed
2528 003166' 306 00 0 00 000015 CAIN 15 ; carriage return?
2529 GO [GO CHRINS ; yes - strip off the line feed also
2530 JFCL
2531 003167' 260 17 0 00 006042' RTN]
2532 003170' 200 00 0 00 006253' MOVE FINSIX ; get sixbit command
2533 003171' 350 00 0 17 777776 AOS -2(P) ; set up return + 1
2534 003172' 262 17 0 00 000002 RGET (2,1) ; restore AC's
2535
2536 003174' 263 17 0 00 000000 RTN ; return
2537
2538 ; Exit with error or EOF condition
2539
2540 003175' 260 17 0 00 003124' FINCMX: GO FIOFF ; clear 'file input' switch
2541 003176' 400 00 0 00 000000 SETZ 0, ; clear command typed
2542 003177' 262 17 0 00 000002 RGET (2,1) ; restore AC's
2543
2544 003201' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 61
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0826
2545
2546 ;#********************************************************************
2547 ;* FSARG - Input a sixbit argument from a file
2548 ;
2549 ; Return +1 - Error/EOF
2550 ; +2 - Sixbit word in AC0
2551 ;#********************************************************************
2552
2553 003202' 261 17 0 00 000001 FSARG: RPUT (1,2) ; save AC's
2554
2555 003204' 402 00 0 00 006253' SETZM FINSIX ; initialize word
2556 003205' 400 01 0 00 000000 SETZ 1, ; byte count
2557 003206' 200 02 0 00 006041' MOVE 2,[POINT 6,FINSIX] ; initial byte pointer
2558
2559 003207' 260 17 0 00 001023' FSARG0: GO CHRINS ; get a character
2560 003210' 254 00 0 00 003236' JRST FSARGX ; exit - error or EOF occurred
2561 003211' 306 00 0 00 000040 CAIN " " ; space typed?
2562 003212' 254 00 0 00 003226' JRST FSARGC ; yes - exit valid command in AC0
2563 003213' 306 00 0 00 000054 CAIN "," ; comma typed?
2564 003214' 254 00 0 00 003226' JRST FSARGC ; yes - exit valid command in AC0
2565 003215' 306 00 0 00 000015 CAIN 15 ; carriage return typed?
2566 003216' 254 00 0 00 003226' JRST FSARGC ; yes - exit valid command in AC0
2567 003217' 350 00 0 00 000001 AOS 1 ; increment byte count
2568 003220' 303 00 0 00 000140 CAILE 140 ; lowercase?
2569 003221' 275 00 0 00 000040 SUBI 40 ; yes - make into upper case
2570 003222' 275 00 0 00 000040 SUBI 40 ; convert to sixbit
2571 003223' 307 01 0 00 000006 CAIG 1,6 ; exceed 6 characters?
2572 003224' 136 00 0 00 000002 IDPB 2 ; no - save sixbit byte
2573 003225' 254 00 0 00 003207' JRST FSARG0 ; get next character
2574
2575 ; Exit with command in AC0
2576
2577 003226' 202 00 0 00 030231 FSARGC: MOVEM $TTCHR ; save last character typed
2578 003227' 306 00 0 00 000015 CAIN 15 ; carriage return?
2579 GO [GO CHRINS ; yes - strip off the line feed also
2580 JFCL
2581 003230' 260 17 0 00 006042' RTN]
2582 003231' 200 00 0 00 006253' MOVE FINSIX ; get sixbit command
2583 003232' 350 00 0 17 777776 AOS -2(P) ; set up return + 1
2584 003233' 262 17 0 00 000002 RGET (2,1) ; restore AC's
2585
2586 003235' 263 17 0 00 000000 RTN ; return
2587
2588 ; Exit with error or EOF condition
2589
2590 003236' 260 17 0 00 003124' FSARGX: GO FIOFF ; clear 'file input' switch
2591 003237' 400 00 0 00 000000 SETZ 0, ; clear command typed
2592 003240' 262 17 0 00 000002 RGET (2,1) ; restore AC's
2593
2594 003242' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 62
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0827
2595
2596 ;#********************************************************************
2597 ;* FOARG - Input a octal argument from a file
2598 ;
2599 ; Return +1 - Error/EOF
2600 ; +2 - Octal data in AC0
2601 ;#********************************************************************
2602
2603 003243' 261 17 0 00 000001 FOARG: RPUT (1,2,3) ; save AC's
2604
2605 003246' 400 01 0 00 000000 SETZ 1, ; initialize byte count
2606 003247' 403 02 0 00 000003 SETZB 2,3 ; initialize octal and decimal result
2607 003250' 476 00 0 00 006254' SETOM FOFLAG# ; set 'octal' flag
2608 003251' 260 17 0 00 001023' FOARG0: GO CHRINS ; get a character
2609 003252' 254 00 0 00 003317' JRST FOARGX ; exit - error or EOF occurred
2610 003253' 306 00 0 00 000040 CAIN " " ; space typed?
2611 003254' 254 00 0 00 003303' JRST FOARGC ; yes - exit valid command in AC0
2612 003255' 306 00 0 00 000054 CAIN "," ; comma typed?
2613 003256' 254 00 0 00 003303' JRST FOARGC ; yes - exit valid command in AC0
2614 003257' 306 00 0 00 000015 CAIN 15 ; carriage return typed?
2615 003260' 254 00 0 00 003303' JRST FOARGC ; yes - exit valid command in AC0
2616 003261' 306 00 0 00 000056 CAIN "." ; decimal point typed?
2617 003262' 402 00 0 00 006254' SETZM FOFLAG ; yes - clear octal flag
2618 003263' 306 00 0 00 000056 CAIN "." ; decimal point typed?
2619 003264' 254 00 0 00 003251' JRST FOARG0 ; yes - keep looking for delimiter
2620 003265' 350 00 0 00 000001 AOS 1 ; increment byte count
2621 003266' 303 01 0 00 000014 CAILE 1,^D12 ; exceed 12 digits?
2622 003267' 254 00 0 00 003317' JRST FOARGX ; yes - exit - error
2623 003270' 275 00 0 00 000060 SUBI 60 ; convert to octal 0..n
2624 003271' 331 00 0 00 000000 SKIPL 0 ; decimal or octal?
2625 003272' 303 00 0 00 000011 CAILE ^D9 ; (between 0 and 9)
2626 003273' 254 00 0 00 003317' JRST FOARGX ; no - exit - error
2627 003274' 221 02 0 00 000012 IMULI 2,^D10 ; update decimal number
2628 003275' 272 00 0 00 000002 ADDM 2 ; ...
2629 003276' 242 03 0 00 000003 LSH 3,3 ; update octal number
2630 003277' 272 00 0 00 000003 ADDM 3 ; ...
2631 003300' 303 00 0 00 000007 CAILE 7 ; decimal number?
2632 003301' 402 00 0 00 006254' SETZM FOFLAG ; yes - clear octal flag
2633 003302' 254 00 0 00 003251' JRST FOARG0 ; get next character
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 63
DFNIAU MAC 6-Aug-83 09:31 Miscellaneous Routines SEQ 0828
2634
2635 ; Exit with command in AC0
2636
2637 003303' 476 00 0 00 030510 FOARGC: SETOM TTNBRF ; indicate that a number was typed
2638 003304' 202 00 0 00 030231 MOVEM $TTCHR ; save last character typed
2639 003305' 306 00 0 00 000015 CAIN 15 ; carriage return?
2640 GO [GO CHRINS ; yes - strip off the line feed also
2641 JFCL
2642 003306' 260 17 0 00 006042' RTN]
2643 003307' 200 00 0 00 000002 MOVE 2 ; get decimal number
2644 003310' 332 00 0 00 006254' SKIPE FOFLAG ; octal number?
2645 003311' 200 00 0 00 000003 MOVE 3 ; yes - get octal number
2646 003312' 350 00 0 17 777775 AOS -3(P) ; set up return + 1
2647 003313' 262 17 0 00 000003 RGET (3,2,1) ; restore AC's
2648
2649 003316' 263 17 0 00 000000 RTN ; return
2650
2651 ; Exit with error or EOF condition
2652
2653 003317' 260 17 0 00 003124' FOARGX: GO FIOFF ; clear 'file input' switch
2654 003320' 400 00 0 00 000000 SETZ 0, ; clear command typed
2655 003321' 262 17 0 00 000003 RGET (3,2,1) ; restore AC's
2656
2657 003324' 263 17 0 00 000000 RTN ; return
2658
2659
2660 ;#********************************************************************
2661 ;* FEOL - Skip characters until end of line is reached
2662 ;#********************************************************************
2663
2664 003325' 261 17 0 00 000000 FEOL: PUT 0 ; save AC0
2665 003326' 260 17 0 00 001023' FEOL0: GO CHRINS ; get a character
2666 003327' 254 00 0 00 003332' JRST FEOLX ; error/EOF - exit
2667 003330' 302 00 0 00 000012 CAIE 12 ; LF yet?
2668 003331' 254 00 0 00 003326' JRST FEOL0 ; no - keep looking
2669 003332' 262 17 0 00 000000 FEOLX: GET 0 ; restore AC0
2670 003333' 263 17 0 00 000000 RTN ; return
2671
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 64
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0829
2672 SUBTTL Scope Looping And Error Reporting Routine
2673
2674 ;#*********************************************************************
2675 ;* SCOPE1 - Error reporter and scope loop controller
2676 ;
2677 ; This routine is responsible for error reporting and scope looping.
2678 ; Error looping and print options are controlled by switches.
2679 ;
2680 ; Switch Options:
2681 ; --------------
2682 ;
2683 ; DING - 0 No bell on error
2684 ; 1 Ring bell on error (forced)
2685 ;
2686 ; LOOPER - 0 Proceed on error
2687 ; 1 Loop on first occurence of an error
2688 ;
2689 ; ERSTOP - 0 Don't halt on error
2690 ; 1 Halt on error (exec mode only)
2691 ;
2692 ; PALERS - 0 Print error data on first occurance of error only
2693 ; 1 Print error data for all repetitive errors
2694 ;
2695 ; The following two locations should be initialized by the mainline to 0
2696 ; at the start of each test: ERFLG Error/no-error flag
2697 ; ERCNT A local error counter
2698 ; ERRPC PC of last error
2699 ;
2700 ; The scope/error handler is called by executing a UUO whose E-field is a
2701 ; pointer to additional error information. The UUO has a skip and non-skip
2702 ; return to provide the necessary looping capabilities. The non-skip
2703 ; return is the loop on error return and the skip return is the continue
2704 ; test (or no error) return. Pgm branching is accomplished by placing
2705 ; appropriate JRSTs in the return locations.
2706 ;
2707 ; Example: CONSZ DEV,ARG ; test instruction
2708 ; ------- SETOM ERFLG ; detected an error
2709 ; SCOPE TAG ; call the routine via UUO
2710 ; JRST ERADR ; loop return
2711 ; JRST OKADR ; continue return
2712 ;
2713 ; TAG: Cntrl Bits,,ADDR ; variable # of error descriptor
2714 ; Cntrl Bits,,ADDR ; entries
2715 ; ...
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 65
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0830
2716
2717 ; Each word specifies messages or print routines. Each message printed
2718 ; is followed by a CRLF. The right half of each word is a pointer to the
2719 ; start of the ASCIZ message or print routine. The left half furnishes
2720 ; message control information to SCOPE, decoded as follows:
2721 ;
2722 ; 1B2 (MSG) - Right half of word is address of an ASCIZ message.
2723 ;
2724 ; 2B2 (CALL) - Right half of word is address of a special print
2725 ; routine. SCOPE saves AC's 0,1,2,3 so this routine
2726 ; does not have to preserve these.
2727 ;
2728 ; 3B2 (GOTO) - Right half of word is address where to resume this
2729 ; error descriptor table.
2730 ;
2731 ; 1B3 (TXNOT) - Print/call entry if TXTINH not set
2732 ;
2733 ; 1B4 (TXYES) - Print/call entry if TXTINH set
2734 ;
2735 ; 3B4 (TXALL) - Print/call entry always
2736 ;
2737 ; 1B5 (LAST) - Right half of word is address of an ASCIZ message.
2738 ;
2739 ; These bits allows short and normal printout modes, branching, and two
2740 ; level module callout priority.
2741 ;
2742 ; Example: (TXTINH is not set)
2743 ;
2744 ; +-+-+-+-+-+-+
2745 ; ERROR: TEST-XXX (Ebus test)
2746 ; SCOPE PC = XXXXXX TEST PC = XXXXXX SWITCHES = XXXXXX XXXXXX
2747 ; Error description ...
2748 ; Error description ...
2749 ; ...
2750 ; -------------
2751 ;
2752 ; Example: (TXTINH is set)
2753 ;
2754 ; +-+-+-+-+-+-+
2755 ; ERROR: TST-XXX SCOPE PC-XXXXXX SW-XXXXXX XXXXXX
2756 ; Error description ...
2757 ; Error description ...
2758 ; ...
2759 ; -------------
2760 ;
2761 ; NOTE: If the diagnostic is in debug mode (UDEBUG switch set), no error
2762 ; messages are normally printed. With MDEBUG switch set, the error flag
2763 ; is set thereby causing each error message to be printed.
2764 ;#*********************************************************************
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 66
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0831
2765
2766 003334' 261 17 0 00 030114 SCOPE1: PUT $SVUPC ; save the UUO PC
2767 003335' 261 17 0 00 030113 PUT $SVUUO ; save the actual UUO
2768 003336' 261 17 0 00 000000 RPUT (0,1,2) ; save some AC's
2769
2770
2771 ; The stack now looks like this:
2772 ;
2773 ; -5(P) The return addr for SCOPE UUO
2774 ; -4(P) The address from which the SCOPE UUO was called
2775 ; -3(P) The actual UUO that was executed "SCOPE"
2776 ; -2(P) AC0 from before the UUO
2777 ; -1(P) AC1 from before the UUO
2778 ; 0(P) AC2 from before the UUO
2779
2780 ; Get switches
2781
2782 003341' 260 17 0 00 001764' GO SWITT ; get switches
2783 003342' 202 00 0 00 006266' MOVEM SCOSW# ; save switches
2784
2785 ; Handle SPEAR error report
2786
2787 003343' 332 00 0 00 000015 SKIPE ERFLG ; error occurred?
2788 003344' 260 17 0 00 000000* GO SPREP2 ; yes - report it
2789
2790 ; Handle debug printout / error handling
2791
2792 003345' 332 00 0 00 000000* SKIPE UDEBUG ; no-IPA debug mode?
2793 003346' 400 15 0 00 000000 SETZ ERFLG, ; yes - clear error flag
2794 003347' 332 00 0 00 000000* SKIPE MDEBUG ; error message debug mode?
2795 003350' 474 15 0 00 000000 SETO ERFLG, ; yes - set error flag
2796
2797 ; Update scope PC
2798
2799 003351' 550 00 0 17 777774 HRRZ -4(P) ; get PC of the scope call
2800 003352' 202 00 0 00 006265' MOVEM SCOPC# ; save it (scope PC)
2801
2802 ; Error occurred?
2803
2804 003353' 322 15 0 00 003413' JUMPE ERFLG,SCOP4 ; an error occurred? - no check looping
2805
2806 ; Error did occur - update error PC / print error message
2807
2808 003354' 316 00 0 00 030052 CAMN ERRPC ; error has already occurred here?
2809 003355' 254 00 0 00 003363' JRST SCOP0 ; yes - go check if print
2810 003356' 200 00 0 00 006265' MOVE SCOPC ; get scope PC
2811 003357' 202 00 0 00 030052 MOVEM ERRPC ; save as error PC
2812 003360' 200 00 0 00 000674* MOVE TSTSUB ; get current offset
2813 003361' 202 00 0 00 003630' MOVEM SCOOFF ; save as error offset
2814 003362' 254 00 0 00 003371' JRST SCOP2 ; go print error
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 67
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0832
2815
2816 ; Must also check if this is a multiple error from a execute table. Check
2817 ; TSTSUB against SCOOFF - if different then it is not a repeat error.
2818
2819 003363' 200 00 0 00 003630' SCOP0: MOVE SCOOFF ; last offset presented to SCOPE
2820 003364' 312 00 0 00 003360* CAME TSTSUB ; same as current offset?
2821 003365' 254 00 0 00 003371' JRST SCOP2 ; yes - go check if print
2822
2823 ; This is a repeat error here, check if print all errors
2824
2825 003366' 200 00 0 00 006266' SCOP1: MOVE SCOSW ; get switches
2826 003367' 607 00 0 00 001000 TLNN PALERS ; print all errors?
2827 003370' 254 00 0 00 003401' JRST SCOP3 ; no - go ring bell/error halt
2828
2829 ; Print error message
2830
2831 003371' 200 00 0 00 006266' SCOP2: MOVE SCOSW ; get switches
2832 003372' 602 00 0 00 100000 TRNE INHMSG ; inhibit error messages?
2833 003373' 254 00 0 00 003401' JRST SCOP3 ; yes - skip this
2834 003374' 260 17 0 00 003500' GO ERHDR ; print the standard error heading
2835 003375' 550 01 0 17 777775 HRRZ 1,-3(P) ; get the e-field of the UUO
2836 003376' 332 00 0 00 000001 SKIPE 1 ; table address given?
2837 003377' 260 17 0 00 003561' GO ERPNT ; yes - go handle error table
2838 003400' 037 00 0 00 006045' TMSGCD <------------->
2839
2840 ; Handle bell and error halt functions.
2841
2842 003401' 200 00 0 00 006266' SCOP3: MOVE SCOSW ; get switches
2843 003402' 603 00 0 00 010000 TLNE DING ; ding set?
2844 003403' 037 01 0 00 000007 PBELL ; yes - do it
2845 003404' 200 00 0 00 006266' MOVE SCOSW ; get switches
2846 003405' 607 00 0 00 002000 TLNN ERSTOP ; halt on error?
2847 003406' 254 00 0 00 003413' JRST SCOP4 ; no - continue
2848 003407' 332 00 0 00 030037 SKIPE USER ; user mode?
2849 003410' 476 00 0 00 000000* SETOM ALTF ; yes - set abort flag
2850 003411' 336 00 0 00 030037 SKIPN USER ; user mode?
2851 003412' 037 14 0 00 000004 ERRHLT ; yes - halt
2852
2853 ; Error reporting (if any) is done. Now check loop on error switch.
2854
2855 003413' 200 00 0 00 006266' SCOP4: MOVE SCOSW ; get switches
2856 003414' 607 00 0 00 004000 TLNN LOOPER ; loop on error?
2857 003415' 254 00 0 00 003443' JRST SCOPXX ; no - exit +2/3
2858 003416' 326 15 0 00 003424' JUMPN ERFLG,SCOPX1 ; yes - error - yes - exit +1 (loop)
2859
2860 ; Error looping is enabled, but error flag was not set. First check if we
2861 ; are at the same place as the last error - if not, exit +3 because it is
2862 ; not yet time to loop. If yes, exit +1, loop on error.
2863
2864 003417' 200 00 0 00 006265' MOVE SCOPC ; get scope PC and see if this is
2865 003420' 315 00 0 00 030052 CAMGE ERRPC ; earlier than the error PC?
2866 003421' 254 00 0 00 003443' JRST SCOPXX ; earlier - exit +3
2867 003422' 336 00 0 00 030052 SKIPN ERRPC ; no error yet at all?
2868 003423' 254 00 0 00 003443' JRST SCOPXX ; no - exit +3
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 68
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0833
2869
2870 ; Exit +1 (loop return)
2871
2872 003424' 037 07 0 00 000003 SCOPX1: TTALTM ; see if opr wants to abort
2873 003425' 334 00 0 00 000000 SKIPA ; no - continue
2874 003426' 254 00 0 00 003450' JRST SCOPX2 ; yes - altmode exit
2875 003427' 332 00 0 00 003410* SKIPE ALTF ; 'altmode typed' flag set?
2876 003430' 254 00 0 00 003450' JRST SCOPX2 ; yes - altmode exit
2877 003431' 336 00 0 00 006262' SKIPN LCHAR ; last character in here already?
2878 003432' 202 00 0 00 006262' MOVEM LCHAR ; no - save 'last char typed'
2879 003433' 200 00 0 00 006265' MOVE SCOPC ; get scope PC
2880 003434' 202 00 0 00 030052 MOVEM ERRPC ; update error PC
2881 003435' 262 17 0 00 000002 RGET (2,1,0,$SVUUO,$SVUPC) ; restore things
2882
2883 003442' 263 17 0 00 000000 RTN ; exit
2884
2885 ; Exit +2/3 (altmode return / normal return)
2886
2887 003443' 037 07 0 00 000003 SCOPXX: TTALTM ; see if opr wants to abort
2888 003444' 334 00 0 00 000000 SKIPA ; no - continue
2889 003445' 254 00 0 00 003450' JRST SCOPX2 ; yes - altmode exit
2890 003446' 336 00 0 00 003427* SKIPN ALTF ; 'altmode typed' flag set?
2891 003447' 254 00 0 00 003460' JRST SCOPX3 ; no - exit +3 (normal return)
2892
2893 ; Altmode return
2894
2895 003450' 262 17 0 00 000002 SCOPX2: RGET (2,1,0,$SVUUO,$SVUPC) ; restore things
2896
2897 003455' 350 00 0 17 000000 AOS (P) ; set up return +1
2898 003456' 476 00 0 00 003446* SETOM ALTF ; set 'altmode typed' flag
2899 003457' 263 17 0 00 000000 RTN ; exit
2900
2901 ; Normal return - also check for S typed
2902
2903 003460' 336 00 0 00 006262' SCOPX3: SKIPN LCHAR ; last character in here already?
2904 003461' 202 00 0 00 006262' MOVEM LCHAR ; no - save 'last char typed'
2905 003462' 260 17 0 00 000655' GO PSTAMP ; check for S typed
2906 003463' 200 00 0 00 006266' MOVE SCOSW ; get switches
2907 003464' 602 00 0 00 010000 TRNE RUNALL ; run all test segments?
2908 003465' 400 15 0 00 000000 SETZ ERFLG, ; yes - clear error flag
2909 003466' 602 00 0 00 001000 TRNE DEBUG2 ; error message debug?
2910 003467' 400 15 0 00 000000 SETZ ERFLG, ; yes - clear error flag
2911 003470' 262 17 0 00 000002 RGET (2,1,0,$SVUUO,$SVUPC) ; restore things
2912
2913 003475' 350 00 0 17 000000 AOS (P) ; set up return +3
2914 003476' 350 00 0 17 000000 AOS (P) ; set up return +3
2915 003477' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 69
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0834
2916
2917 ;#********************************************************************
2918 ; ERHDR - Print the standard header messages
2919 ;#********************************************************************
2920
2921 003500' 037 01 0 00 000026 ERHDR: PFORCE ; handle Control-O
2922 003501' 037 00 0 00 006051' TMSGC <+-+-+-+-+-+-+>
2923 003502' 332 00 0 00 000000* SKIPE EDEBUG ; expanded data switch set?
2924 GO [TMSGC <Port-> ; yes - print what port
2925 LDB [POINT 3,MBCN,9]; this is
2926 PNT2
2927 TMSG < Addr->
2928 LDB [POINT 8,SADDR,31]
2929 PNT3
2930 LDB [POINT 8,SADDR,23]
2931 PNT3
2932 LDB [POINT 8,SADDR,15]
2933 PNT3
2934 LDB [POINT 8,SADDR,7]
2935 PNT3
2936 LDB [POINT 8,SADDR+1,31]
2937 PNT3
2938 LDB [POINT 8,SADDR+1,23]
2939 PNT3
2940 PSP
2941 MOVEI 1,.PRIOU
2942 SETO 2,
2943 MOVE 3,[220101,,0]
2944 SKIPE USER
2945 ODTIM
2946 003503' 260 17 0 00 006071' RTN]
2947 003504' 037 00 0 00 006120' TMSGC <Error: >
2948 003505' 260 17 0 00 000000* GO TSTPNT ; print test number
2949 003506' 200 00 0 00 006266' MOVE SCOSW ; get switches
2950 003507' 603 00 0 00 000200 TLNE TXTINH ; short printout desired?
2951 003510' 254 00 0 00 003535' JRST ERSHRT ; yes - go handle
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 70
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0835
2952
2953 ; Regular format error header
2954
2955 003511' 037 00 0 00 006123' ERNRML: TMSGC <Error PC = >
2956 003512' 550 00 0 17 777772 HRRZ -6(P) ; get adr where SCOPE was called
2957 003513' 274 00 0 00 000000* SUB TSTOFF ; normalize to relocatable address
2958 003514' 037 16 0 00 000003 PNTOCS ; print it
2959 003515' 037 00 0 00 006126' TMSG <'>
2960 003516' 336 00 0 00 000703* SKIPN TSTREP ; pass 1?
2961 003517' 254 00 0 00 003524' JRST ERNRM0 ; yes - don't print pass #
2962 003520' 037 00 0 00 006127' TMSG < Pass >
2963 003521' 200 00 0 00 003516* MOVE TSTREP ; get pass count
2964 003522' 350 00 0 00 000000 AOS
2965 003523' 037 15 0 00 000000 PNTDEC ; print it
2966 003524' 037 00 0 00 006131' ERNRM0: TMSG < Switches = >
2967 003525' 200 00 0 00 006266' MOVE SCOSW ; get switches
2968 003526' 037 13 0 00 000000 PNTHW ; print
2969 003527' 335 00 0 00 000000* SKIPGE UVERSN ; using operational microcode?
2970 003530' 263 17 0 00 000000 RTN ; no - exit
2971 003531' 037 00 0 00 006134' TMSG < Ucode version > ; yes - print out the version
2972 003532' 200 00 0 00 003527* MOVE UVERSN ; get version number
2973 003533' 037 16 0 00 000003 PNTOCS ; print it
2974 003534' 263 17 0 00 000000 RTN ; exit
2975
2976 ; Short format error header
2977
2978 003535' 037 00 0 00 006140' ERSHRT: TMSG < Error PC >
2979 003536' 550 00 0 17 777772 HRRZ -6(P) ; pick up error PC
2980 003537' 274 00 0 00 003513* SUB TSTOFF ; normalize to relocatable address
2981 003540' 037 16 0 00 000003 PNTOCS ; print the error PC
2982 003541' 037 00 0 00 006126' TMSG <'>
2983 003542' 336 00 0 00 003521* SKIPN TSTREP ; pass 1?
2984 003543' 254 00 0 00 003550' JRST ERSHR0 ; yes - don't print pass #
2985 003544' 037 00 0 00 006127' TMSG < Pass >
2986 003545' 200 00 0 00 003542* MOVE TSTREP ; get pass count
2987 003546' 350 00 0 00 000000 AOS
2988 003547' 037 15 0 00 000000 PNTDEC ; print it
2989 003550' 037 00 0 00 006143' ERSHR0: TMSG < SW >
2990 003551' 200 00 0 00 006266' MOVE SCOSW ; get switches
2991 003552' 037 13 0 00 000000 PNTHW ; print
2992 003553' 335 00 0 00 003532* SKIPGE UVERSN ; using operational microcode?
2993 003554' 263 17 0 00 000000 RTN ; no - exit
2994 003555' 037 00 0 00 006145' TMSG < uVER > ; yes - print out the version
2995 003556' 200 00 0 00 003553* MOVE UVERSN ; get version number
2996 003557' 037 16 0 00 000003 PNTOCS ; print it
2997 003560' 263 17 0 00 000000 RTN ; exit
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 71
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0836
2998
2999 ;#********************************************************************
3000 ; ERPNT - Print error description based on error descriptor table
3001 ;#********************************************************************
3002
3003 003561' 202 01 0 00 006252' ERPNT: MOVEM 1,ERDES# ; save addr of error descriptor table
3004 003562' 336 01 1 00 006252' ERPN0: SKIPN 1,@ERDES ; get entry - zero?
3005 003563' 263 17 0 00 000000 RTN ; yes - exit
3006
3007 003564' 350 00 0 00 006252' AOS ERDES ; update to point at next one
3008 003565' 135 02 0 00 006147' LDB 2,[POINT 3,1,2] ; get entry type
3009 GO @[ERPNE ; yes - dispatch
3010 ERPNM ; handle message
3011 ERPNC ; handle call
3012 ERPNG ; handle goto
3013 ERPNE ; out of range
3014 ERPNE ; out of range
3015 ERPNE ; out of range
3016 003566' 260 17 1 02 006150' ERPNE](2) ; out of range
3017 003567' 607 01 0 00 010000 TLNN 1,(LAST) ; last entry?
3018 003570' 254 00 0 00 003562' JRST ERPN0 ; no - get next entry
3019 003571' 263 17 0 00 000000 RTN ; yes - return
3020
3021 ; Error (entry type out of range)
3022
3023 003572' 037 00 0 00 006160' ERPNE: TMSGC <? Error descriptor entry type out of range>
3024 003573' 263 17 0 00 000000 RTN ; return
3025
3026 ; Handle message
3027
3028 003574' 200 00 0 00 006266' ERPNM: MOVE SCOSW ; get switches
3029 003575' 603 00 0 00 000200 TLNE TXTINH ; text inhibit set?
3030 PJRST [TLNN 1,(TXYES) ; yes - print it?
3031 JRST .+1 ; no - exit
3032 PCRL ; yes - print it
3033 PNTMSG @1 ; and return
3034 003576' 254 00 0 00 006171' RTN]
3035 003577' 607 00 0 00 000200 TLNN TXTINH ; text inhibit set?
3036 PJRST [TLNN 1,(TXNOT) ; no - print it?
3037 RTN ; no - return
3038 PCRL ; yes - print it
3039 PNTMSG @1 ; and return
3040 003600' 254 00 0 00 006176' RTN]
3041 003601' 263 17 0 00 000000 RTN ; return
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page 72
DFNIAU MAC 6-Aug-83 09:31 Scope Looping And Error Reporting Routine SEQ 0837
3042
3043 ; Handle goto
3044
3045 003602' 552 02 0 00 006252' ERPNG: HRRZM 2,ERDES ; update table address
3046 003603' 263 17 0 00 000000 RTN ; exit
3047
3048 ; Handle call
3049
3050 003604' 200 00 0 00 006266' ERPNC: MOVE SCOSW ; get switches
3051 003605' 603 00 0 00 000200 TLNE TXTINH ; text inhibit set?
3052 JRST [TLNN 1,(TXYES) ; yes - call routine?
3053 JRST .+1 ; no - exit
3054 003606' 254 00 0 00 006203' JRST ERPNCG] ; yes - call routine
3055 003607' 607 00 0 00 000200 TLNN TXTINH ; text inhibit set?
3056 PJRST [TLNN 1,(TXNOT) ; no - call routine?
3057 RTN ; no - return
3058 003610' 254 00 0 00 006206' JRST ERPNCG] ; yes - call routine
3059 003611' 263 17 0 00 000000 RTN ; return
3060 003612' 261 17 0 00 000000 ERPNCG: RPUT (0,1,2,3,4,5) ; save some AC's
3061
3062 003620' 260 17 1 00 000001 GO @1 ; call the routine
3063 003621' 262 17 0 00 000005 RGET (5,4,3,2,1,0) ; restore AC's
3064
3065 003627' 263 17 0 00 000000 RTN ; exit
3066
3067 ; Miscellaneous (used for tests that have an execute table)
3068
3069 003630' 000000 000000 SCOOFF: 0 ; error offset
3070
3071
3072 ;#********************************************************************
3073 ; End Stmt for DFNIAU.MAC module
3074 ;#********************************************************************
3075
3076 XLIST
3077
NO ERRORS DETECTED
PROGRAM BREAK IS 006275
CPU TIME USED 00:12.134
80P CORE USED
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page S-1
DFNIAU MAC 6-Aug-83 09:31 SYMBOL TABLE SEQ 0838
ABUFF 006246' DROPDV 037240 000002 FSARGX 003236' PCRL2F 037040 030243
ALTCHH 000031' ent EDEBUG 003502' ext FSKIPC 001130' PCRLF 037040 030242
ALTCHK 007000 000000 ERCAL 320740 000000 int GENFLG 006256' PDEC 006000 000000
ALTCHX 000042' ERDES 006252' GENREP 006257' PDEC0 000431'
ALTF 006004' ext ERFLG 000015 GENTYP 006260' PDECF0 000457'
ALTMGO 030063 ERHDR 003500' GET 262740 000000 PDECFS 000467'
ARGFLG 003052' int ERNRM0 003524' GETLOG 002505' ext PDECSS 000441'
ARGUM 003051' int ERNRML 003511' GO 260740 000000 PFORCE 037040 000026
BUFCOM 001163' ent ERPN0 003562' HALTF 104000 000170 int PJRST 254000 000000
BUFG0 001216' ERPNC 003604' INHMSG 100000 spd PNT2 037100 000000
BUFG1 001227' ERPNCG 003612' INITM 006261' PNT3 037140 000000
BUFG2 001236' ERPNE 003572' ITRCH1 030104 PNTCHF 037500 000001
BUFGEN 001172' ent ERPNG 003602' JEN 254500 000000 PNTCIF 037040 000000
BUFGX 001246' ERPNM 003574' KLFLG 030041 PNTDCF 037640 000001
BUFGXY 001260' ERPNT 003561' LASAR0 003110' PNTDEC 037640 000000
BUFGXZ 001262' ERRHLT 037600 000004 LASAR1 003114' PNTDS 037700 000000
CADDR 001057' ext ERRPC 030052 LASARA 003120' PNTDSF 037700 000001
CFIBF 104000 000100 ERSHR0 003550' LASARG 003077' ent PNTHW 037540 000000
CHKAR0 003064' ERSHRT 003535' LASARX 003116' PNTHWF 037540 000001
CHKARA 003073' ERSTOP 002000 spd LAST 010000 000000 spd PNTMSF 037040 000000
CHKARG 003053' ent EXT10 001012' LCHAR 006262' int PNTMSG 037000 000000
CHKARX 003072' EXTX 001014' LOGPNT 002506' ext PNTOCF 037740 000003
CHKARY 003070' FEOL 003325' LOOPER 004000 spd PNTOCS 037700 000003
CHRIN 001016' FEOL0 003326' MAXPAT 000127 spd PNTSXF 037040 000002
CHRINS 001023' FEOLX 003332' MAXTIM 000652' int PPDEC 000422' ent
CHRINX 001035' FFF 002520' ext MBCN 000016 PPDECF 000450' ent
CLRBFI 051440 000000 FGETA 001114' MDEBUG 003347' ext PSDN 000105' ent
CLRBUF 000045' ent FGETA0 001115' MONTI0 000530' PSDNF 000113'
CLS10 000775' FGETAE 001126' MONTI1 000533' PSP 037000 000040
CLSX 000777' FGETD 001136' MONTIM 000521' ent PSTAM0 000671'
CLZFF 104000 000034 int FGETD0 001142' MONTYP 030516 PSTAMP 000655' ent
CONSW 030046 FGETD1 001157' ODTIM 104000 000220 int PSTAMX 000707'
CONSWW 006247' FGETDE 001160' OLDRAN 006263' PTIME 000543' ent
CONVS0 000006' FGETW 001047' ent P 000017 PTIMEF 000551'
CONVS1 000022' FGETWE 001110' PALERS 001000 spd PUT 261740 000000
CONVSE 000017' FILLFP 000115 spd PARSER 002472' ent RADLSC 030264
CONVSP 000027' FILLVP 000127 spd PAT 000014 RANDBS 030022
CONVSS 006250' FINCM0 003146' PATADR 001472' RDCSR 002477' ext
CONVSX 000000' ent FINCMC 003165' PATBUF 001333' ent RESET 104000 000147 int
CORECT 002521' FINCMD 003141' ent PATC8A 001534' RST10 000760'
CURTIM 000651' int FINCMX 003175' PATCN2 004137' spd RSTX 000762'
CWORDL 004076' ext FINECH 001031' ext PATCN3 004140' spd RTN 263740 000000
CWORDN 006251' FINPUT 003136' ext PATCN4 004141' spd RUNALL 010000 spd
CWORDR 004101' ext FINSIX 006253' PATCN6 001565' RUNTM0 000567'
DATM0 001301' FIOFF 003124' ent PATCN7 001554' RUNTM1 000571'
DATM1 001307' FOARG 003243' ent PATCN8 001517' RUNTM2 000620'
DATMES 001273' FOARG0 003251' PATFO1 001501' RUNTME 000557' ent
DATMX 001326' FOARGC 003303' PATFON 001475' RUNTMX 000642'
DEBTIM 000653' int FOARGX 003317' PATFZ1 001512' SADDR 006065' ext
DEBUG2 001000 spd FOFLAG 006254' PATFZE 001505' SAVSWW 006264'
DECERR 002767' FORPNT 006255' int PATPNT 001575' ent SCOOFF 003630' int
DECLIS 002773' FREAD 037300 000004 PATRA1 001466' SCOP0 003363'
DECYN 002755' ent FSARG 003202' PATRAN 001463' SCOP1 003366'
DING 010000 spd FSARG0 003207' PBELL 037040 000007 SCOP2 003371'
DISMS 104000 000167 int FSARGC 003226' PCRL 037000 030242 SCOP3 003401'
.MAIN MACRO %53A(1152) 20:09 24-Sep-84 Page S-2
DFNIAU MAC 6-Aug-83 09:31 SYMBOL TABLE SEQ 0839
SCOP4 003413' XX 006272' .PNTDC 000202' ent
SCOPC 006265' XXT 006273' .PNTDL 000262' ent
SCOPE1 003334' ent XYZ 006274' .PNTDP 000342' ent
SCOPX1 003424' ZU 000000' .PNTOC 000121' ent
SCOPX2 003450' $CHRIN 030232 .PNTP0 000362'
SCOPX3 003460' $SVUPC 030114 .PNTP1 000366'
SCOPXX 003443' $SVUUO 030113 .PRIOU 000101 sin
SCOSW 006266' int $TTCHR 030231 .RESET 000751' ent
SPATAB 000163' $TWCNT 030225 .RSWIT 002334' int
SPREP2 003344' ext $TYPNB 030233 .SARG 002631' ent
STCLOK 000476' ent .CGOT 002560' int .SARG0 002644'
STCU 000510' .CLOSE 000763' ent .SARG1 002646'
STCX 000514' .COMM 002534' ent .SARGA 002671'
SWCHPT 002356' ent .COMM0 002541' .SARX1 002663'
SWCOM 002365' ent .COMM1 002551' .SARX2 002662'
SWCOM0 002404' .COMM2 002565' .SLEFT 002043'
SWCOMP 002447' .COMM3 002577' .SLF1 002052'
SWCOMT 002424' .COMM4 002607' .SLF2 002063'
SWCOMX 002420' .COMM5 002615' .SLF3 002067'
SWITCH 037400 000002 .COMM6 002622' .SLF4 002070'
SWITT 001764' ent .CTBL 002563' .SLF5 002075'
SWPSWW 006267' .CTYP 002561' .SLF6 002130'
SWRGT 001771' int .DARG 002776' ent .SLFX 002134'
TAKFIL 003130' ext .DARG0 003011' .SRG2 002153'
TBSDFL 001517' ext .DARG1 003013' .SRG3 002164'
TFMFLG 001520' ext .DARGA 003037' .SRG4 002167'
TIME 104000 000014 int .DARX1 003031' .SRG5 002170'
TMRST1 000517' .DARX2 003030' .SRG6 002177'
TMRUN1 000647' .DELA0 000733' .SRG6A 002225'
TPAT 004152' ext .DELA1 000740' .SRG6B 002231'
TSTNUM 000672' ext .DELAX 000742' .SRG7 002241'
TSTOFF 003537' ext .DELAY 000716' ent .SRGX 002245'
TSTPC 000000 ext .EXIT 001001' ent .SRIGT 002144'
TSTPNT 003505' ext .FHSLF 400000 sin .SWCH0 001742'
TSTREP 003545' ext .ISWT 001772' ent .SWCH1 001752'
TSTSUB 003364' ext .ISWT2 001775' .SWCHP 001725' ent
TTALTM 037340 000003 .ISWT6 002006' .SWIN 002255'
TTICNV 037240 000003 .ISWT7 002007' .SWIN0 002263'
TTIOCT 037140 000003 .ISWT8 002011' .SWPNT 002032'
TTNBRF 030510 .ISWTB 002013' .SWTXT 002040'
TTSIXB 037400 000003 .ISWTX 002014'
TTYINP 037440 000003 .ISWTY 002024'
TTYY0 000065' .ISWTZ 002027'
TTYY1 000067' .LSWIT 002300' int
TTYYES 000061' ent .LSWTN 002316'
TXNOT 040000 000000 spd .OARG 002702' ent
TXTINH 000200 spd .OARG0 002715'
TXYES 020000 000000 spd .OARG1 002717'
UDEBUG 003345' ext .OARGA 002743'
USER 030037 .OARX1 002735'
USTIM 000654' int .OARX2 002734'
UVERSN 003556' ext .PNTD0 000222'
VARPAT 006270' .PNTD1 000226'
VPATRN 000116 spd .PNTD2 000302'
WRDERR 006271' int .PNTD3 000306'
ABUFF 998# 998 1095 1982# 1982
ALTCHH 10 117# SEQ 0840
ALTCHX 120 123 127#
ALTF 48# 2103 2192 2311 2401 2447 2849 2875 2890 2898
ALTMGO 129 2103 2106 2155 2192 2195 2245 2311 2314 2364 2399 2404 2431 2445
2450 2474
ARGFLG 38 2110 2135 2138 2199 2225 2228 2318 2344 2347 2386# 2399 2445
ARGUM 38 2131 2216 2278 2335 2385#
BUFCOM 27 979#
BUFG0 1007# 1019
BUFG1 1006 1027#
BUFG2 1037# 1049
BUFGEN 27 986#
BUFGX 1020 1053#
BUFGXY 1056 1058 1063#
BUFGXZ 1054 1065#
CADDR 47# 49# 875 880
CHKAR0 2411# 2423
CHKARA 2403 2419 2431#
CHKARG 37 2397#
CHKARX 2400 2410 2425 2430#
CHKARY 2414 2426 2428#
CHRIN 828# 830 881 917 929 947
CHRINS 839# 2509 2529 2559 2579 2608 2640 2665
CHRINX 841 850#
CLRBUF 9 136# 1647 1715 1758 1779
CLS10 782 787#
CLSX 786 789#
CONSW 1502 1560 1851 1892
CONSWW 1529# 1529 1549 1558 1615 1622 1637 1659 1661 1663 1665 1680 1687 1705
1733 1735 1737 1739
CONVS0 80# 88
CONVS1 81 98#
CONVSE 84 92#
CONVSP 78 80 104#
CONVSS 76# 76 77
CONVSX 10 74#
CORECT 1983 1987#
CURTIM 15 608 668#
CWORDL 47# 876 887 890 894
CWORDN 1096# 1096
CWORDR 47# 877 897 900 903
DATM0 1077 1078#
DATM1 1085 1090#
DATMES 1014 1044 1074#
DATMX 1083 1086 1108#
DEBTIM 15 605 670# 724 728
DEBUG2 2909
DECERR 2282 2286#
DECLIS 2279 2290#
DECYN 37 2276#
DING 2843
EDEBUG 47# 2923
ERDES 3003# 3003 3004 3007 3045
ERFLG 2787 2793 2795 2804 2858 2908 2910 SEQ 0841
ERHDR 2834 2921#
ERNRM0 2961 2966#
ERNRML 2955#
ERPN0 3004# 3018
ERPNC 3011 3050#
ERPNCG 3054 3058 3060#
ERPNE 3009 3013 3014 3015 3016 3023#
ERPNG 3012 3045#
ERPNM 3010 3028#
ERPNT 2837 3003#
ERRPC 2808 2811 2865 2867 2880
ERSHR0 2984 2989#
ERSHRT 2951 2978#
ERSTOP 2846
EXT10 809 816#
EXTX 814 819#
FEOL 2409 2452 2664#
FEOL0 2665# 2668
FEOLX 2666 2669#
FFF 53# 1964 1977 1985
FGETA 878 916#
FGETA0 917# 922
FGETAE 918 924 926# 930
FGETD 885 888 891 898 901 923 943#
FGETD0 947# 959
FGETD1 950 952 960#
FGETDE 948 955 961#
FGETW 23 873#
FGETWE 879 882 886 889 892 899 902 905#
FILLFP 1199#
FILLVP 1227#
FINCM0 2509# 2523
FINCMC 2512 2514 2516 2527#
FINCMD 23 2503#
FINCMX 2510 2540#
FINECH 49# 845
FINPUT 49# 857 2115 2204 2323 2408 2451 2482 2492
FINSIX 2505# 2505 2507 2532 2555 2557 2582
FIOFF 37 2482# 2540 2590 2653
FOARG 23 2205 2324 2603#
FOARG0 2608# 2619 2633
FOARGC 2611 2613 2615 2637#
FOARGX 2609 2622 2626 2653#
FOFLAG 2607# 2607 2617 2632 2644
FORPNT 15 554# 554 561 626 628 631 633 639 641 643 645 651 653
655 657
FSARG 2116 2553#
FSARG0 2559# 2573
FSARGC 2562 2564 2566 2577#
FSARGX 2560 2590#
FSKIPC 920 929# 934
GENFLG 980# 980 986 1010 1012 1040 1042 1053
GENREP 981# 981 983 1057 1076 1082 SEQ 0842
GENTYP 987# 987
GETLOG 53# 1974
INHMSG 2832
INITM 503# 503 538# 538 539# 539 540# 540
ITRCH1 1997
KLFLG 1976
LASAR0 2454# 2465
LASAR1 2457 2468 2470#
LASARA 2449 2474#
LASARG 37 2144 2234 2353 2443#
LASARX 2446 2453 2461 2467 2472#
LAST 3017
LCHAR 15 680# 680 705 2877 2878 2903 2904
LOGPNT 53# 1975
LOOPER 2856
MAXPAT 1231#
MAXTIM 15 669#
MBCN 2925
MDEBUG 47# 2794
MONTI0 530 535#
MONTI1 534 538#
MONTIM 14 504 528# 596
MONTYP 141 143 529 754 781 808
OLDRAN 1236# 1236 1241
P 101 174 188 197 213 214 260 261 307 308 354 355 831 843
844 904 925 960 1064 1759 1760 1761 1770 1780 1781 1876 2038 2076
2083 2084 2142 2146 2150 2151 2166 2232 2236 2240 2241 2256 2284 2285
2351 2355 2359 2360 2373 2418 2430 2472 2473 2533 2583 2646 2799 2835
2897 2913 2914 2956 2979
PALERS 2826
PARSER 37 1963#
PAT 988 991 1005 1007 1029 1065
PATADR 1213 1246#
PATBUF 27 1007 1029 1121# 1199 1205 1224 1227 1231
PATC8A 1281 1292#
PATCN2 1217# 1221
PATCN3 1218# 1222
PATCN4 1219# 1223
PATCN6 1223 1326#
PATCN7 1222 1314#
PATCN8 1221 1278#
PATFO1 1214 1257#
PATFON 1214 1252#
PATFZ1 1215 1270#
PATFZE 1215 1264#
PATPNT 27 1339#
PATRA1 1212 1239#
PATRAN 1212 1235#
PDEC0 403# 410
PDECF0 442# 449
PDECFS 441 449#
PDECSS 402 410#
PPDEC 10 398# SEQ 0843
PPDECF 10 437#
PSDN 10 186#
PSDNF 195#
PSTAM0 682 684 690#
PSTAMP 14 678# 2905
PSTAMX 686 705#
PTIME 14 552#
PTIMEF 559# 698
RADLSC 403 405 442 444
RANDBS 1239
RDCSR 53# 1968
RST10 755 759#
RSTX 758 761#
RUNALL 2907
RUNTM0 593 596#
RUNTM1 595 601#
RUNTM2 622 638#
RUNTME 14 555 562 587# 723 727
RUNTMX 660#
SADDR 48# 2928 2930 2932 2934 2936 2938
SAVSWW 1528# 1528 1562
SCOOFF 43 2813 2819 3069#
SCOP0 2809 2819#
SCOP1 2825#
SCOP2 2814 2821 2831#
SCOP3 2827 2833 2842#
SCOP4 2804 2847 2855#
SCOPC 2800# 2800 2810 2864 2879
SCOPE1 42 2766#
SCOPX1 2858 2872#
SCOPX2 2874 2876 2889 2895#
SCOPX3 2891 2903#
SCOPXX 2857 2866 2868 2887#
SCOSW 43 2783# 2783 2825 2831 2842 2845 2855 2906 2949 2967 2990 3028 3050
SPATAB 226 235# 290 340 384
SPREP2 47# 2788
STCLOK 14 493#
STCU 496 503#
STCX 502 507#
SWCHPT 32 1849#
SWCOM 32 1863#
SWCOM0 1869 1890#
SWCOMP 1865 1930#
SWCOMT 1866 1908#
SWCOMX 1886 1902#
SWITT 32 1440 1443 1502# 1527 1548 1561 1890 1896 2782
SWPSWW 1533# 1533 1564# 1564
SWRGT 33 1505 1508# 1559 1893
TAKFIL 49# 851 854 2486 2489
TBSDFL 49# 1278
TFMFLG 49# 1008 1038 1253 1265 1279
TMRST1 501 506 511# 602
TMRUN1 594 597 601 666# SEQ 0844
TPAT 49# 1225
TSTNUM 48# 691
TSTOFF 48# 2957 2980
TSTPC 48#
TSTPNT 48# 2948
TSTREP 48# 700 2960 2963 2983 2986
TSTSUB 48# 693 2812 2820
TTNBRF 2217 2336 2420 2462 2637
TTYY0 161# 165 172
TTYY1 163# 166
TTYYES 9 158# 1577
TXNOT 3036 3056
TXTINH 2950 3029 3035 3051 3055
TXYES 3030 3052
UDEBUG 47# 2792
USER 136 495 592 716 752 777 804 1503 1534 1543 1867 1963 2848 2850
2944
USTIM 15 606 671#
UVERSN 47# 2969 2972 2992 2995
VARPAT 1030# 1030 1037
VPATRN 1005 1205#
WRDERR 28 979 1055# 1055 1060 1063 1078
XX 128# 128 215# 215 262# 262 309# 309 356# 356
XXT 2161# 2161 2251# 2251 2368# 2368 2412# 2412 2455# 2455
XYZ 1981# 1981
ZU 60#
$CHRIN 118
$SVUPC 210 229 257 294 304 341 351 388 400 406 427 439 445 466
716 739 2766 2883 2897 2913
$SVUUO 125 210 220 231 257 270 277 284 296 304 317 324 331 343
351 364 371 378 390 400 401 408 429 439 440 447 468 716
721 734 741 2767 2883 2897 2913
$TTCHR 2127 2136 2164 2218 2226 2254 2337 2345 2371 2415 2421 2458 2463 2527
2577 2638
$TWCNT 164 2162 2252 2369 2413 2456
$TYPNB 2263 2380
.CGOT 38 2034 2043#
.CLOSE 19 777#
.COMM 37 2014# 2280
.COMM0 2021# 2023
.COMM1 2024 2034#
.COMM2 2022 2058#
.COMM3 2066# 2073
.COMM4 2068 2074#
.COMM5 2070 2078#
.COMM6 2062 2081#
.CTBL 2048# 2063 2065
.CTYP 2016 2045# 2064
.DARG 37 2309#
.DARG0 2330# 2339
.DARG1 2326 2335# 2381
.DARGA 2331 2368#
.DARX1 2313 2325 2354 2356 2358 2364# 2374 2376 2379 SEQ 0845
.DARX2 2319 2340 2360# 2370
.DELA0 726# 729
.DELA1 717 734#
.DELAX 730 739#
.DELAY 14 714#
.EXIT 19 804#
.FHSLF 535 783 811
.ISWT 32 1521#
.ISWT2 1527#
.ISWT6 1539#
.ISWT7 1535 1543#
.ISWT8 1548#
.ISWTB 1544 1553#
.ISWTX 1558#
.ISWTY 1563 1566#
.ISWTZ 1565 1569#
.LSWIT 33 1642 1788#
.LSWTN 1636 1803#
.OARG 37 2190#
.OARG0 2211# 2220
.OARG1 2207 2216# 2264
.OARGA 2212 2251#
.OARX1 2194 2206 2235 2237 2239 2245# 2257 2259 2262
.OARX2 2200 2221 2241# 2253
.PNTD0 265# 268
.PNTD1 266 269#
.PNTD2 312# 315
.PNTD3 313 316#
.PNTDC 10 255#
.PNTDL 10 302#
.PNTDP 10 349#
.PNTOC 10 208#
.PNTP0 359# 362
.PNTP1 360 363#
.PRIOU 2941
.RESET 19 752#
.RSWIT 33 1699 1710 1725 1825#
.SARG 37 2101#
.SARG0 2122# 2129
.SARG1 2118 2127# 2173
.SARGA 2123 2161#
.SARX1 2105 2117 2145 2147 2149 2155# 2167 2169 2172
.SARX2 2111 2130 2151# 2163
.SLEFT 1539 1612#
.SLF1 1615# 1621
.SLF2 1620 1625#
.SLF3 1629# 1654
.SLF4 1630# 1649 1662 1666
.SLF5 1636# 1658
.SLF6 1656 1663#
.SLFX 1623 1634 1652 1668#
.SRG2 1680# 1686
.SRG3 1685 1690# SEQ 0846
.SRG4 1693#
.SRG5 1694# 1700 1717 1736 1740
.SRG6 1702# 1723 1727 1732
.SRG6A 1724# 1726
.SRG6B 1722 1729#
.SRG7 1730 1737#
.SRGX 1688 1698 1720 1742#
.SRIGT 1553 1677#
.SWCH0 1445# 1491
.SWCH1 1446 1489#
.SWCHP 32 1434#
.SWIN 1619 1684 1756#
.SWIN0 1768# 1778
.SWPNT 1523 1575#
.SWTXT 1579 1582#
ALTCHK 164 2123 2212 2331 2412 2455
CFIBF 144 SEQ 0847
CLRBFI 142
CLZFF 784
DISMS 735
DROPDV 779
ERCAL 537 757 785
ERRHLT 2851
FMSG 162 196 450 451 452 453 454 455 456 457 458 459 460 461
462 463 464 465 632 644 656 695 697 699 1442 1452 1453 1454
1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468
1470 1471 1472 1473 1474 1475 1476 1478 1479 1480 1481 1618 1639 1641
1683 1707 1709 1875 1877 1878 1879 1880 1881 1882 1883 1884 1930 1931
1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945
1946 1947 1948
FMSGC 690 850 1436 1449 1530 1566 1576 1873 1894 1970 1971 2485
FMSGCD 1984 1987 2171 2261 2281 2378 2428 2470
FMSGD 703 856 1885 1899 1901 2491
FREAD 828 840
GET 92 94 99 101 124 127 128 145 147 175 177 192 201 215
229 231 262 294 296 309 341 343 356 388 390 406 408 427
429 445 447 466 468 507 509 544 556 563 613 660 662 706
708 739 741 789 819 847 858 905 907 926 961 963 1065 1067
1108 1110 1303 1309 1493 1495 1569 1571 1668 1670 1742 1744 1854 1902
1904 1995 1996 2028 2030 2036 2038 2074 2076 2078 2080 2081 2083 2155
2157 2161 2245 2247 2251 2286 2288 2364 2366 2368 2412 2431 2433 2455
2474 2476 2493 2534 2536 2542 2544 2584 2586 2592 2594 2647 2649 2655
2657 2669 2881 2883 2895 2897 2911 2913 3063 3065
GO 273 280 320 327 367 374 504 555 562 596 698 723 727 878
881 885 888 891 898 901 917 920 923 929 947 1013 1014 1043
1044 1212 1213 1214 1215 1221 1222 1223 1440 1443 1523 1527 1539 1548
1553 1561 1577 1619 1647 1684 1715 1758 1779 1890 1896 1964 1968 1974
1975 1977 1985 2022 2116 2144 2205 2234 2280 2324 2353 2409 2452 2509
2529 2540 2559 2579 2590 2608 2640 2653 2665 2782 2788 2834 2837 2905
2924 2948 3009 3062
HALTF 812
JEN 1997
ODTIM 2945
PBELL 2844
PCRL 1097 2104 2193 2312 2402 2448 3032 3038
PCRL2F 1627 1691 1765
PCRLF 1492 1532 1568 1616 1625 1650 1681 1718 1762 1771
PDEC 1098
PFORCE 1575 2921
PJRST 1758 1765 1770 3030 3036 3056
PNT2 2926
PNT3 2929 2931 2933 2935 2937 2939
PNTCHF 846
PNTCIF 200 853 2488
PNTDCF 199 627 640 652 702
PNTDEC 190 292 337 386 629 642 654 1061 2965 2988
PNTDS 404
PNTDSF 443
PNTHW 1101 1104 2968 2991
PNTHWF 1441 1531 1567 1852 1973 SEQ 0848
PNTMSF 162 196 450 451 452 453 454 455 456 457 458 459 460 461
462 463 464 465 632 644 656 690 695 697 699 703 850 856
1436 1442 1449 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462
1463 1464 1465 1466 1467 1468 1470 1471 1472 1473 1474 1475 1476 1478
1479 1480 1481 1530 1566 1576 1618 1626 1639 1641 1683 1690 1707 1709
1873 1875 1877 1878 1879 1880 1881 1882 1883 1884 1885 1894 1899 1901
1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943
1944 1945 1946 1947 1948 1970 1971 1984 1987 2171 2261 2281 2378 2428
2470 2485 2491
PNTMSG 187 191 236 237 238 239 240 241 242 243 244 245 246 247
248 249 269 275 282 316 322 329 363 369 376 411 412 413
414 415 416 417 418 419 420 421 422 423 424 425 426 634
646 658 1059 1062 1092 1093 1099 1102 1339 1340 1341 1342 1343 1344
1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358
1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372
1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386
1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400
1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414
1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1579 1644
1712 1850 1853 2838 2922 2924 2927 2947 2955 2959 2962 2966 2971 2978
2982 2985 2989 2994 3023 3033 3039
PNTOCF 692 696 1617 1682
PNTOCS 228 2958 2973 2981 2996
PNTSXF 852 855 1643 1711 2487 2490
PSP 2940
PUT 74 76 117 138 140 158 160 186 195 208 210 212 255 257
259 302 304 306 349 351 353 398 400 437 439 493 495 528
552 559 587 589 678 680 714 716 780 807 839 873 875 916
943 945 989 991 1074 1076 1292 1434 1436 1521 1523 1612 1614 1677
1679 1849 1863 1865 1965 1967 2014 2016 2058 2060 2101 2103 2190 2192
2276 2278 2309 2311 2397 2399 2443 2445 2484 2503 2505 2553 2555 2603
2605 2664 2766 2767 2768 2770 3060 3062
RESET 756
RGET 92 99 145 175 229 294 341 388 406 427 445 466 507 613
660 706 739 905 961 1065 1108 1493 1569 1668 1742 1902 2028 2036
2074 2078 2081 2155 2245 2286 2364 2431 2474 2534 2542 2584 2592 2647
2655 2881 2895 2911 3063
RPUT 74 138 158 208 255 302 349 398 437 493 587 678 714 873
943 989 1074 1434 1521 1612 1677 1863 1965 2014 2058 2101 2190 2276
2309 2397 2443 2503 2553 2603 2768 3060
RTN 94 102 137 147 177 193 202 231 276 283 296 323 330 343
370 377 390 408 429 447 468 509 537 545 557 564 614 662
708 741 753 757 761 778 785 790 805 820 829 832 848 859
907 927 933 963 988 1015 1045 1067 1110 1237 1242 1248 1255 1260
1268 1274 1290 1304 1310 1322 1333 1495 1506 1571 1578 1580 1670 1744
1763 1766 1772 1782 1855 1904 2030 2039 2077 2080 2085 2157 2247 2288
2366 2433 2476 2483 2494 2531 2536 2544 2581 2586 2594 2642 2649 2657
2670 2883 2899 2915 2946 2970 2974 2993 2997 3005 3019 3024 3034 3037
3040 3041 3046 3057 3059 3065
SWITCH 1504
TIME 536
TMSG 187 191 236 237 238 239 240 241 242 243 244 245 246 247
248 249 269 275 282 316 322 329 363 369 376 411 412 413 SEQ 0849
414 415 416 417 418 419 420 421 422 423 424 425 426 634
646 658 1062 1099 1102 1339 1340 1341 1342 1343 1344 1345 1346 1347
1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361
1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375
1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389
1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403
1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417
1418 1419 1420 1421 1422 1423 1424 1425 1426 1644 1712 1850 2927 2959
2962 2966 2971 2978 2982 2985 2989 2994
TMSGC 1059 1092 1093 1853 2922 2924 2947 2955 3023
TMSGCD 2838
TTALTM 2872 2887
TTICNV 2330 2411 2454
TTIOCT 2211
TTSIXB 163 2122
TTYINP 1645 1713 1756 1776
LINK symbol map of DFNIA version (2) page 1
Produced by LINK version 5A(1775) on 24-Sep-84 at 20:10:11 SEQ 0850
Low segment starts at 0 ends at 212664 length 212665 = 139P
75 words free in Low segment
324 Global symbols loaded, therefore min. hash size is 361
Start address is 30000, located in program DFNIA
*************
JOBDAT-INITIAL-SYMBOLS
Zero length module
*************
DFNIA from XTRA:DFNIAT.REL created by MACRO on 24-Sep-84 at 19:59:38
Low segment starts at 140 ends at 30740 length 30601 (octal), 12673. (decimal)
*************
DFNIA from DSK:DFNIA1.REL created by MACRO on 24-Sep-84 at 20:01:38
Low segment starts at 30741 ends at 165222 length 134262 (octal), 47282. (decimal)
ALTF 165104 Global Relocatable BPACK 65733 Entry Absolute
BPACKN 65731 Entry Absolute BUFF 115613 Global Absolute
CADDR 35604 Global Absolute CALPAR 42551 Entry Absolute
CHKINT 66516 Entry Absolute CHKRQV 67151 Entry Absolute
CHKRSP 67100 Entry Absolute CMDOPC 70164 Entry Absolute
CNTPNT 67575 Entry Absolute CONPNT 43073 Entry Absolute
CONTBL 43151 Global Absolute CONVIR 66652 Entry Absolute
CSRENG 42627 Entry Absolute CSRPNT 42605 Entry Absolute
CWORDL 35605 Global Absolute CWORDR 35606 Global Absolute
DDEBUG 165112 Global Relocatable DDUMP 37533 Global Absolute
DISMS 104000000167 Global Absolute DRCRAM 36263 Entry Absolute
DSPRIN 33706 Global Absolute DWCRAM 36231 Entry Absolute
EDEBUG 165117 Global Relocatable FINECH 165121 Global Relocatable
FINPUT 165122 Global Relocatable GETJI 104000000507 Global Absolute
GETQUE 66766 Entry Absolute GTAD 104000000227 Global Absolute
INSQUE 66703 Entry Absolute IPRINT 41302 Entry Absolute
LDEBUG 165127 Global Relocatable MCAT17 115356 Global Absolute
MDEBUG 165133 Global Relocatable MLNUM 165134 Global Relocatable
MLOADN 64353 Entry Absolute MLOADY 64355 Entry Absolute
MTABLE 115320 Global Absolute MVPNT 64536 Entry Absolute
NEWENT 165143 Global Relocatable NUMENT 66650 Global Absolute
OPCPNT 70134 Entry Absolute PACK4T 67677 Entry Absolute
PACKET 72114 Global Absolute PARFLG 33670 Global Absolute
PCB 72000 Global Absolute PGMNAM 30600 Global Absolute
PMODE 115611 Global Absolute PNTRSP 42227 Entry Absolute
PPAKC 67436 Entry Absolute PPAKF 67500 Entry Absolute
PPAKR 67466 Entry Absolute PPCB 70747 Entry Absolute
PPCBD 71023 Entry Absolute PQUEUE 67305 Entry Absolute
PTABLE 105000 Global Absolute PTTFQ 105070 Global Absolute
PUTQUE 67022 Entry Absolute RDADDR 65672 Entry Absolute
RQAFLG 165166 Global Relocatable RSPONS 73000 Global Absolute
LINK symbol map of DFNIA version (2) page 2
DFNIA SEQ 0851
RSPQUE 165170 Entry Relocatable RUPDAT 43511 Entry Absolute
RWAIT 66476 Entry Absolute SADDR 33704 Global Absolute
SETDSA 42324 Entry Absolute SETENA 42264 Entry Absolute
SPEAR2 165206 Global Relocatable SPREP2 115421 Global Absolute
STARCV 43676 Global Absolute START 30611 Entry Absolute
STARTA 30722 Entry Absolute STASNT 43665 Global Absolute
SUPDAT 43461 Entry Absolute SYERR 104000000527 Global Absolute
TAKFIL 31561 Global Absolute TAMC 65725 Global Absolute
TBSDFL 65712 Global Absolute TBYTE 65720 Global Absolute
TDEST 65715 Global Absolute TFLOAD 43715 Entry Absolute
TFMFLG 65711 Global Absolute TH4000 65726 Global Absolute
TIDLE 65646 Entry Absolute TLOAD 64666 Entry Absolute
TPAT 65722 Global Absolute TPCB 64711 Entry Absolute
TPDFLG 65714 Global Absolute TPRMSC 65727 Global Absolute
TPTTVL 65717 Global Absolute TRACE 42350 Entry Absolute
TREGD 65724 Global Absolute TREGN 65723 Global Absolute
TRETRY 65730 Global Absolute TRSFLG 65713 Global Absolute
TSLOAD 165211 Global Relocatable TSTEND 42406 Entry Absolute
TSTFLG 115601 Global Absolute TSTMSK 115602 Global Absolute
TSTNAM 32120 Global Absolute TSTNUM 115576 Global Absolute
TSTOFF 115606 Global Absolute TSTPC 115600 Global Absolute
TSTPNT 42411 Entry Absolute TSTREP 115603 Global Absolute
TSTSUB 115577 Global Absolute TSTTAB 32037 Global Absolute
TWORD 65721 Global Absolute TXADDL 165215 Global Relocatable
UDEBUG 165216 Global Relocatable UVERSN 165217 Global Relocatable
.RREXP 4 Global Absolute Suppressed
*************
.MAIN from DSK:DFNIA2.REL created by MACRO on 24-Sep-84 at 20:08:01
Low segment starts at 165223 ends at 170435 length 3213 (octal), 1675. (decimal)
MPRINT 170031 Entry Relocatable MSTART 170020 Entry Relocatable
MWAIT 167761 Entry Relocatable SAVCOD 170060 Global Relocatable
SAVCSR 170055 Global Relocatable SAVEBU 170057 Global Relocatable
SAVLAR 170056 Global Relocatable T2M 165731 Entry Relocatable
T3M 167324 Entry Relocatable TST1 165223 Entry Relocatable
TST2 165700 Entry Relocatable TST3 167246 Entry Relocatable
*************
.MAIN from DSK:DFNIA3.REL created by MACRO on 24-Sep-84 at 20:08:37
Low segment starts at 170436 ends at 200552 length 10115 (octal), 4173. (decimal)
CRCOFF 172376 Global Relocatable CRCSAV 172375 Global Relocatable
CRCTAB 172377 Global Relocatable PDUMP 176734 Entry Relocatable
TST10 171320 Entry Relocatable TST11 171561 Entry Relocatable
TST12 172043 Entry Relocatable TST13 172741 Entry Relocatable
TST14 173232 Entry Relocatable TST15 173523 Entry Relocatable
TST16 173753 Entry Relocatable TST17 174210 Entry Relocatable
TST20 174443 Entry Relocatable TST21 174710 Entry Relocatable
TST22 175157 Entry Relocatable TST23 175414 Entry Relocatable
TST24 175651 Entry Relocatable TST25 176077 Entry Relocatable
TST26 176320 Entry Relocatable TST27 176336 Entry Relocatable
LINK symbol map of DFNIA version (2) page 3
.MAIN SEQ 0852
TST4 170436 Entry Relocatable TST5 170543 Entry Relocatable
TST6 170763 Entry Relocatable TST7 171140 Entry Relocatable
*************
.MAIN from DSK:DFNIAI.REL created by MACRO on 24-Sep-84 at 20:09:03
Low segment starts at 200553 ends at 204367 length 3615 (octal), 1933. (decimal)
AADDR 201205 Global Relocatable CBASE 202145 Global Relocatable
CCWPNT 202425 Entry Relocatable CHINIT 202152 Entry Relocatable
CHKCSR 201100 Entry Relocatable CLREBU 201064 Entry Relocatable
DEVREL 202670 Entry Relocatable DEVREQ 202725 Entry Relocatable
DSETUP 202547 Entry Relocatable EADDR 201204 Global Relocatable
ENABLE 203165 Entry Relocatable EPCAP 104000000151 Global Absolute
EPTJMP 202143 Global Relocatable ERCAL 320740000000 Global Absolute
ERESET 200742 Entry Relocatable ERSTR 104000000011 Global Absolute
FFF 203205 Entry Relocatable GETLOG 202364 Entry Relocatable
HAVIPA 203072 Global Relocatable ICWA0 202133 Global Relocatable
INITPD 201315 Entry Relocatable INITPI 201272 Entry Relocatable
INTAPR 201737 Global Relocatable INTCON 201713 Global Relocatable
INTCSR 202033 Global Relocatable INTEND 202103 Global Relocatable
INTNUM 201642 Global Relocatable INTPC 201643 Global Relocatable
INTTIM 201763 Global Relocatable INTTYP 201667 Global Relocatable
INTUSE 202007 Global Relocatable IPACLR 201025 Entry Relocatable
IPASRT 201117 Entry Relocatable IPASST 201206 Entry Relocatable
IPASTP 201151 Entry Relocatable ISTOP 200751 Entry Relocatable
LDCRAM 200610 Entry Relocatable LDCSR 200563 Entry Relocatable
LDEBUF 200553 Entry Relocatable LDRAR 200574 Entry Relocatable
LOCDON 203136 Global Relocatable LOCPHY 203101 Entry Relocatable
LOGBUF 202146 Global Relocatable LOGPNT 202446 Entry Relocatable
PISYOF 201347 Entry Relocatable PISYON 201352 Entry Relocatable
RDCRAM 200670 Entry Relocatable RDCSR 200633 Entry Relocatable
RDEBUF 200623 Entry Relocatable RDLAR 200657 Entry Relocatable
REL 202712 Entry Relocatable REQ1 202751 Entry Relocatable
REQ2 202761 Entry Relocatable RPCAP 104000000150 Global Absolute
SDATA 201203 Global Relocatable SETEBU 201032 Entry Relocatable
SETLAR 201047 Entry Relocatable SETVEC 201355 Entry Relocatable
SLAST 201202 Global Relocatable SNARKF 204366 Global Relocatable
SNEXT 201201 Global Relocatable USRIO 104000000310 Global Absolute
USRIOF 203157 Entry Relocatable USRION 203137 Entry Relocatable
.CONI 200701 Entry Relocatable .CONO 200711 Entry Relocatable
.DATAI 200722 Entry Relocatable .DATAO 200732 Entry Relocatable
.FHSLF 400000 Global Absolute Suppressed .INPNT 202104 Entry Relocatable
.INWD1 202131 Global Relocatable .INWD2 202132 Global Relocatable
.PIOFF 201321 Entry Relocatable .PION 201333 Entry Relocatable
*************
.MAIN from DSK:DFNIAU.REL created by MACRO on 24-Sep-84 at 20:09:32
Low segment starts at 204370 ends at 212664 length 6275 (octal), 3261. (decimal)
ALTCHH 204421 Entry Relocatable ARGFLG 207442 Global Relocatable
ARGUM 207441 Global Relocatable BUFCOM 205553 Entry Relocatable
BUFGEN 205562 Entry Relocatable CHKARG 207443 Entry Relocatable
LINK symbol map of DFNIA version (2) page 4
.MAIN SEQ 0853
CLRBUF 204435 Entry Relocatable CLZFF 104000000034 Global Absolute
CONVSX 204370 Entry Relocatable CURTIM 205241 Global Relocatable
DEBTIM 205243 Global Relocatable DECYN 207345 Entry Relocatable
FGETW 205437 Entry Relocatable FINCMD 207531 Entry Relocatable
FIOFF 207514 Entry Relocatable FOARG 207633 Entry Relocatable
FORPNT 212645 Global Relocatable HALTF 104000000170 Global Absolute
LASARG 207467 Entry Relocatable LCHAR 212652 Global Relocatable
MAXTIM 205242 Global Relocatable MONTIM 205111 Entry Relocatable
ODTIM 104000000220 Global Absolute PARSER 207062 Entry Relocatable
PATBUF 205723 Entry Relocatable PATPNT 206165 Entry Relocatable
PPDEC 205012 Entry Relocatable PPDECF 205040 Entry Relocatable
PSDN 204475 Entry Relocatable PSTAMP 205245 Entry Relocatable
PTIME 205133 Entry Relocatable RESET 104000000147 Global Absolute
RUNTME 205147 Entry Relocatable SCOOFF 210220 Global Relocatable
SCOPE1 207724 Entry Relocatable SCOSW 212656 Global Relocatable
STCLOK 205066 Entry Relocatable SWCHPT 206746 Entry Relocatable
SWCOM 206755 Entry Relocatable SWITT 206354 Entry Relocatable
SWRGT 206361 Global Relocatable TIME 104000000014 Global Absolute
TTYYES 204451 Entry Relocatable USTIM 205244 Global Relocatable
WRDERR 212661 Global Relocatable .CGOT 207150 Global Relocatable
.CLOSE 205353 Entry Relocatable .COMM 207124 Entry Relocatable
.DARG 207366 Entry Relocatable .DELAY 205306 Entry Relocatable
.EXIT 205371 Entry Relocatable .ISWT 206362 Entry Relocatable
.LSWIT 206670 Global Relocatable .OARG 207272 Entry Relocatable
.PNTDC 204572 Entry Relocatable .PNTDL 204652 Entry Relocatable
.PNTDP 204732 Entry Relocatable .PNTOC 204511 Entry Relocatable
.PRIOU 101 Global Absolute Suppressed .RESET 205341 Entry Relocatable
.RSWIT 206724 Global Relocatable .SARG 207221 Entry Relocatable
.SWCHP 206315 Entry Relocatable
*************
Index to LINK symbol map of DFNIA version (2) page 5
SEQ 0854
Name Page Name Page Name Page Name Page
DFNIA 1 .MAIN 2 .MAIN 3 .MAIN 3
DFNIA 1 .MAIN 2
[End of LINK map of DFNIA]