Google
 

Trailing-Edge - PDP-10 Archives - BB-M836C-BM - tools/rmtcon/rmtcon.seq
There are 3 other files named rmtcon.seq in the archive. Click here to see a list.
                                Date: 11 Jul 85  22:25:37
                                 Charge Number:V20-05113                                                                   SEQ 0001

                                    Revision "0.2" of
                   Diagnostic Engineering Functional Specification for
                                   NI Services Program

                                         RMTCON
   Revisions:

   Rev 0.1      26-Sep-83 By John R. Kirchoff
   Rev 0.2      17-Oct-84 By Gary Papazian
   Overview of the Diagnostic Product                               Page ii
   Table of Contents                                              11 Jul 85                                                SEQ 0002


                              Table of Contents
                                                                       Page
                                                                       ----

           1.0     OVERVIEW OF DIAGNOSTIC PRODUCT . . . . . . . . . . . 1
           1.1       Scope of this document . . . . . . . . . . . . . . 1
           1.2       General program description  . . . . . . . . . . . 1
           1.3       Users and Uses . . . . . . . . . . . . . . . . . . 1
           1.4       Pre-requisite software . . . . . . . . . . . . . . 1

           2.0     PRODUCT GOALS/NON-GOALS  . . . . . . . . . . . . . . 2

           2.1       Performance goals  . . . . . . . . . . . . . . . . 2
           2.1.1       Program size . . . . . . . . . . . . . . . . . . 2
           2.1.2       Program run time . . . . . . . . . . . . . . . . 2
           2.1.3       Exec mode capability . . . . . . . . . . . . . . 2
           2.1.4       User mode capability . . . . . . . . . . . . . . 2
           2.1.5       Fault Detection  . . . . . . . . . . . . . . . . 2
           2.1.6       Fault isolation  . . . . . . . . . . . . . . . . 2
           2.1.7       General user interface philosophy  . . . . . . . 3
           2.1.8       Program documentation  . . . . . . . . . . . . . 3

           2.2       Compatibility goals  . . . . . . . . . . . . . . . 3
           2.2.1       CPU family . . . . . . . . . . . . . . . . . . . 3
           2.2.2       Standard diagnostic support software . . . . . . 3
           2.2.3       Operating systems (TOPS-10)  . . . . . . . . . . 3
           2.2.4       Operating systems (TOPS-20)  . . . . . . . . . . 4
           2.2.5       Spear  . . . . . . . . . . . . . . . . . . . . . 4

           2.3       Failsoft goals . . . . . . . . . . . . . . . . . . 4
           2.3.1       CPU/Memory failures  . . . . . . . . . . . . . . 4
           2.3.2       Power fail/restart . . . . . . . . . . . . . . . 4

           2.4       Restrictions . . . . . . . . . . . . . . . . . . . 4
           2.4.1       User mode privileges . . . . . . . . . . . . . . 4
           2.4.2       User mode priority interrupts  . . . . . . . . . 4

           2.5       Non-Goals  . . . . . . . . . . . . . . . . . . . . 5

           3.0     REQUIREMENTS . . . . . . . . . . . . . . . . . . . . 6
           3.1       Run time requirements  . . . . . . . . . . . . . . 6
           3.2       Development environment requirements . . . . . . . 6
           3.3       Evaluation system  . . . . . . . . . . . . . . . . 6

           4.0     PROGRAM INTERFACES . . . . . . . . . . . . . . . . . 7
           4.1       Diagnostic software interfaces . . . . . . . . . . 7
           4.2       Operating system interfaces (TOPS-10)  . . . . . . 7
           4.3       Operating system interfaces (TOPS-20)  . . . . . . 7

           5.0     COMMANDS . . . . . . . . . . . . . . . . . . . . . . 8

           6.0     FUNCTIONAL DESCRIPTION . . . . . . . . . . . . . .  10
           6.1       Relationship To Other Components . . . . . . . .  10
           6.2       NI Services Program  . . . . . . . . . . . . . .  11
           6.3       PLUTO Console Carrier Server . . . . . . . . . .  12
   Overview of the Diagnostic Product                            Page iii
   Table of Contents                                            11 Jul 85                                                  SEQ 0003


           6.4       Console Carrier Protocol . . . . . . . . . . . .  12
           6.4.1       Message Flow Within The CC Protocol  . . . . .  13
           6.4.2       Characteristics And Uses Of The Protocol . . .  14
           6.5       Remote Console Reservation . . . . . . . . . . .  16
           6.5.1       Reservation States . . . . . . . . . . . . . .  16
           6.5.2       Reservation Details  . . . . . . . . . . . . .  17
           6.5.3       Console Carrier exists - but console in use  .  18
           6.5.4       Console Carrier exists - Console not reserved   18
           6.5.5       Console Carrier exists - we own the console  .  19
           6.5.6       Console Carrier code does not exist  . . . . .  20
           6.6       Remote Console Operation . . . . . . . . . . . .  23

           7.0     ERROR REPORTING PHILOSOPHY . . . . . . . . . . . .  24
           7.1       Reporting to SPEAR . . . . . . . . . . . . . . .  24

           8.0     OPEN ISSUES  . . . . . . . . . . . . . . . . . . .  25

           9.0     SCHEDULE . . . . . . . . . . . . . . . . . . . . .  25

           10.0    BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . .  26

           11.0    GLOSSARY . . . . . . . . . . . . . . . . . . . . .  27

           12.0    REVISION HISTORY . . . . . . . . . . . . . . . . .  27

           13.0    ALGORITHMS . . . . . . . . . . . . . . . . . . . .  28
           13.1      NI Services Program algorithm  . . . . . . . . .  28
           13.2      Normal Command Processing algorithm  . . . . . .  28
           13.3      Reserve Remote Console algorithm . . . . . . . .  29
           13.4      Release Remote Console algorithm . . . . . . . .  29
           13.5      Load Server Code algorithm . . . . . . . . . . .  30
           13.6      Multi-block Load algorithm . . . . . . . . . . .  31
   Overview of the Diagnostic Product                                Page 1
   OVERVIEW OF DIAGNOSTIC PRODUCT                                 11 Jul 85                                                SEQ 0004


   1.0  OVERVIEW OF DIAGNOSTIC PRODUCT

       1.1  Scope of this document

       This document describes the functional definition,  design  details,
       testing  requirements  and  schedule  for  the  "NI Services Program
       [DFNIC] of the TOPS-20 implementation of  the  TOPS-20/PLUTO.   This
       program  implements  the  console carrier requestor portion (CCR) of
       the NI based system.  This document will be updated whenever changes
       are necessitated in these areas.



       1.2  General program description

       The NI Services Program is a user mode only Program  that  will  run
       under  the  TOPS-20  Operating  System  (Release  6.1 or newer).  In
       simple terms  the  NI  Services  Program  is  basically  a  terminal
       interface  between  TOPS-20(host) and a remote program which resides
       in a PLUTO(node) on the NI.  This Program will have the  ability  to
       cause  a  Diagnostic  or  a Utility program in the remote node to be
       loaded and executed.  It will also be able to communicate  with  the
       remote  program while it is running and may take status or terminate
       its operation.

       Command and Response Packets are  passed  between  the  NI  Services
       Program  and the PLUTO Console Carrier Server Task using the Console
       Carrier Protocol and the NI Remote Console Interface provided by the
       LLMOP% JSYS.



       1.3  Users and Uses

       Field Service will use this Program to  run  remote  diagnostic  and
       utility programs on NI nodes.



       1.4  Pre-requisite software


        o  TOPS-20 Operating System with the LLMOP% JSYS implemented.
   Overview of the Diagnostic Product                                Page 2
   PRODUCT GOALS/NON-GOALS                                        11 Jul 85                                                SEQ 0005


   2.0  PRODUCT GOALS/NON-GOALS

       2.1  Performance goals

       To be able to execute, with a high  degree  of  predictability,  the
       commands  received  by  the  user  on  a terminal and relay messages
       effectively from the remote program.



       2.1.1  Program size

       The NI Services Program should  not  be  more  than  10k,  including
       buffer storage.



       2.1.2  Program run time

       Run time in the traditional sense does not apply.  This  program  is
       used as a terminal interface between TOPS-20 and a remote NI node.



       2.1.3  Exec mode capability

       The NI Services Program will not run in Exec Mode.



       2.1.4  User mode capability

       The user will need Wheel, Operator or Maintenance priviledges to run
       this Program.



       2.1.5  Fault Detection

       The NI  Services  Program  will  not  have  any  of  its  own  Fault
       Detection.   Any  error  detected  by  the  remote  program  will be
       displayed for the User to see.  A JSYS failure will be displayed  on
       the users terminal like all other TOPS-20 programs.



       2.1.6  Fault isolation

       The NI Services Program has no built in isolation  capability.   Any
       Functional  Fault  Detected  will  be passed back to the user by the
       remote program for analysis and reporting.
   Overview of the Diagnostic Product                                Page 3
   PRODUCT GOALS/NON-GOALS                                        11 Jul 85                                                SEQ 0006


       2.1.7  General user interface philosophy

       The  NI  Services  Program  will  use  TOPS-20  style  Parsing   and
       Recognition.



       2.1.8  Program documentation

       Excerpts from this Functional Specification will be incorporated  in
       the  final Program documentation.  The Program Documentation will be
       in conformance to the Diagnostic Q.A.  Manual.



       2.2  Compatibility goals

       The NI Services Program will support the manditory functionality  as
       defined  in  the "A PLUTO IMPLEMTATION OF A CONSOLE CARRIER SERVER",
       3-Mar-82 by Paul Weiss.



       2.2.1  CPU family

       The NI Services Program is a user Program and is  Monitor  dependent
       rather  than Hardware dependent.  It will run on any KL10 Model B 36
       bit CPU provided the Monitor is a TOPS-20 Monitor that supports  the
       NI.



       2.2.2  Standard diagnostic support software

       The NI Services Program will not use any of the Standard  Diagnostic
       Support  Software.   It  will  be  a  self contained program with an
       ".EXE" extension.



       2.2.3  Operating systems (TOPS-10)

       There is no planned TOPS-10 support for the NI Services Program.  If
       in  the  future  it  is  decided to have the NI Services Program run
       under TOPS-10, it will be done as a separate project.   The  TOPS-10
       effort  will  be  minimized  by organizing the Software in a modular
       fashion.
   Overview of the Diagnostic Product                                Page 4
   PRODUCT GOALS/NON-GOALS                                        11 Jul 85                                                SEQ 0007


       2.2.4  Operating systems (TOPS-20)

       The NI Services Program will  run  under  TOPS-20  release  6.1  and
       newer.



       2.2.5  Spear

       The NI Services Program will be upward compatible with  versions  of
       SPEAR after TOPS-20 release 6.1 and newer.



       2.3  Failsoft goals

       2.3.1  CPU/Memory failures

       The NI Services Program will be aborted by the Operating System.



       2.3.2  Power fail/restart

       The Ni Services Program will have to be restarted by the  user  when
       the System is reloaded.



       2.4  Restrictions

       The NI Services Program will only work  under  a  TOPS-20  Operating
       System  and  communication will only be with a PLUTO node located on
       the NI.



       2.4.1  User mode privileges

       The LLMOP% JSYS requires Wheel, Operator or Maintenence priviledges.
       This means that the directory the user is logged on to must have the
       above priviledges.



       2.4.2  User mode priority interrupts

       The NI Services Program will not use any Hardware  Interrupts.   The
       Software Interrupt System will be used.
   Overview of the Diagnostic Product                                Page 5
   PRODUCT GOALS/NON-GOALS                                        11 Jul 85                                                SEQ 0008


       2.5  Non-Goals


        o  The Ni Services Program will not do error retries.

        o  The NI Services Program will provide no exec mode support.

        o  The NI Services Program will provide no TOPS-10 support as  part
           of this Project.
   Overview of the Diagnostic Product                                Page 6
   REQUIREMENTS                                                   11 Jul 85                                                SEQ 0009


   3.0  REQUIREMENTS

       3.1  Run time requirements


        o  A TOPS-20 Timesharing Monitor needs to be running.

        o  Adequate user priviledges.

        o  An NI (ETHERNET) Network

        o  A PLUTO, that has Console Carrier Server support.




       3.2  Development environment requirements

       The hardware requirements needed to test  the  NI  Services  Program
       are:

        o  A KL10 system that has a KLNI and a PLUTO is required.

        o  One Pluto system with a UNA.

        o  Two host systems residing on the NI.


       The NI Services Program must be tested with the PLUTO console server
       in   each  of  the  three  possible  states  described  below  under
       Reservation States.

       The NI Services Program must be tested with the PLUTO  at  micro-odt
       level  and  with  the  PLUTO  based  diagnostics package to test the
       normal processing of commands.



       3.3  Evaluation system

       Engineering, Manufacturing and CSSE are expected to make  their  own
       arrangements as to the availability of hardware for their Diagnostic
       evaluation.
   Overview of the Diagnostic Product                                Page 7
   PROGRAM INTERFACES                                             11 Jul 85                                                SEQ 0010


   4.0  PROGRAM INTERFACES

       4.1  Diagnostic software interfaces

       Not Applicable



       4.2  Operating system interfaces (TOPS-10)

       Not Supported



       4.3  Operating system interfaces (TOPS-20)

       The programming interface will be  with  the  Monitor.   Packets  of
       information  will be sent and recieved using Monitor Calls that will
       be supported in TOPS-20 Release 6.1 and newer.
   Overview of the Diagnostic Product                                Page 8
   COMMANDS                                                       11 Jul 85                                                SEQ 0011


   5.0  COMMANDS

       The commands available to the user of the NI Services Program are:

           HELP

           ENABLE/DISABLE
       |           Debug
                   Spear-Reporting
                   Output-Logging (to) <file-spec>
       |           Trace


           IDENTIFY (node) <node-address>

       |   DISPLAY-ADDRESS <of>
       |           All
       |           Local-node
       |           Remote-nodes-on-network

       |   READ-COUNTERS <node>

       |   REDEFINE

       |   CONNECT (port) <number>

       |   CONNECT (node) <node-address>


           SHOW
       |           All
       |           Debug
       |           Logging
       |           Spear-reporting
       |           Trace


           QUIT
       |   EXIT

           Control-C
           Control-Y
       |   Control-D
       |   Control-B

       The HELP command will list information about the other commands  and
       their options

       The ENABLE command is used to enable or  "turn-on"  certain  program
       features.

       The DISABLE command is used to disable or "turn-off" certain program
       features.
   Overview of the Diagnostic Product                                Page 9
   COMMANDS                                                       11 Jul 85                                                SEQ 0012


|      The IDENTIFY command will cause the program to perform a REQUEST  ID
|      to  the  address specified as part of the command and will print the
|      SYS-ID information obtained from that address.
|  
|      The DISPLAY-ADDRESS command displays the address of the  local  node
|      and/or all the remote nodes on the network.
|  
|      The READ-COUNTERS command will read the counters  of  the  specified
|      node.
|  
|      The REDEFINE command  will  enable  the  user  to  change  the  exit
|      character to exit from the remote mode.
|  
|      The CONNECT command actually connects the  user's  terminal  to  the
|      PLUTO console terminal to transfer characters back and forth between
|      the two.  A "control-D" typed by the user will disconnect the user's
|      terminal  from  this  mode and return the user's terminal to command
|      mode.  A "control-B" typed on the user's terminal will cause a BREAK
|      to be sent to the the PLUTO.

       The SHOW command is used to display the  current  state  of  various
       options and control flags in use by the program.
|  
|      The QUIT and EXIT commands will return the user  to  TOPS20  monitor
|      level.   It  will Deselect a selected NODE properly before returning
|      to the monitor and close the logging file if it was in use.
|  
|      A CONTROL-D typed while in the Remote Terminal  mode  will  cause  a
|      disconnect from the remote mode and put the user back to the command
|      level.
|  
|      Two CONTROL-C's typed while the program is in command or remote mode
|      will always put the user back to TOPS20 monitor level.

       A CONTROL-Y typed while the program is in any  mode  will  cause  an
       immediate  return  to  TOPS20  monitor  level.  The monitor CONTINUE
       command will then resume operation from the interrupted point.
   Overview of the Diagnostic Product                               Page 10
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0013


   6.0  FUNCTIONAL DESCRIPTION

       The PLUTO hardware does not include  a  physical  console  terminal.
       Instead,  a  facility has been designed whereby a terminal on a host
       node can be connected logically to  the  console  interface  on  the
       PLUTO and hence act as its console.

       The standard PLUTO Server software will not use the console at  all,
       but  there  are  occasions  where this facility will be useful.  For
       example,  diagnostics  will  use  this   facility   extensively   to
       communicate  with  the  user  running  the diagnostic - this enables
       diagnostics that currently exist to be used without being rewritten.
       Also,  the  11/24  PLUTO  processor  includes  micro-ODT, and so the
       remote console facility may be used to control or  debug  a  failing
       node,  much  in the same way that a standard 11/24 may be controlled
       via its own console terminal.



       6.1  Relationship To Other Components


         Terminal
            |
            |
            V
         +-----+  LLMOP%  +---------+   NI    +-------+  ASYNC  +-------+
         | NIS |<-------->| TOPS-20 |<------->| PLUTO |<------->| PLUTO |
         +-----+          +---------+  (MOP)  |  UNA  | Console | 11/24 |
            |                                 |  CCS  |         +-------+
            |            +----------+         +-------+
            +----------->| Volatile |
                         | Data     |     NIS = NI Services Program
                         | Base     |     CCS = Console Carrier Server
                         +----------+
   Overview of the Diagnostic Product                               Page 11
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0014


       6.2  NI Services Program

       The NI Services Program will  communicate  with  the  PLUTO  console
       carrier  server  (CCS)  which  resides  on  a target node to provide
       remote access to normal PLUTO console  services.   The  NI  Services
       Program  will  provide  the  user  interface to communicate with the
       remote console.  This program communicates via the LLMOP%  interface
       with  the  TOPS-20 monitor which in turn communicates with the PLUTO
       console carrier server on a target node.  It is a  requirement  that
       the  user  be  a  privileged user in order to invoke the NI Services
       Program and communicate with the PLUTO console carrier server.

       There are two pieces of software that implement the  remote  console
       facility.   The  NI Services Program on a TOPS20 host implements the
       Console Carrier protocol and transfers characters transmitted across
       the  NI  to and from a physical terminal on the host.  The PLUTO UNA
       code that implements this facility is known as the  Console  Carrier
       Server.

       The PLUTO remote console is a resource, and as such  is  subject  to
       contention  between multiple requesting hosts.  There is a mechanism
       to  resolve  conflicts   in   using   the   remote   console,   viz.
       'reservation'  of  the  console.  The requestor has to 'reserve' the
       console before it may be used to transfer characters,  and  normally
       the  requestor  'releases'  the  remote console when it is no longer
       required.

       There is  a  timeout  associated  with  reservation  of  the  remote
       console;   the  requestor  must  communicate  with  the server often
       enough so that the reservation timer does  not  complete  and  hence
       cause  the  remote  console  to be released from the requestor.  The
       value of the reservation timer is of  the  order  of  minutes;   its
       exact value will be determined later.

       Having reserved the PLUTO's remote console  facility  and  confirmed
       that the reservation was successful, the NI Services Program may now
       initiate  communication  to  and  from  the  PLUTO  remote  console.
       Normally  this  would  involve  communications with a real terminal,
       taking characters typed by the user on the real terminal and passing
       them  to  the  remote  console and taking characters from the remote
       console and displaying them on the users real terminal.

       There is a requirement to provide an escape convention, so that  the
       terminal user may effect the following features:

       1.  Exit from  the  REMOTE  TERMINAL  portion  of  the  NI  Services
           Program.

       2.  Emulate an input break condition, as though the user had hit the
           break  key  on a local 11/24 console.  This will force the PLUTO
           processor into its micro-ODT, making available all the  features
           that   micro-ODT  permits,  ie.   examining  memory,  depositing
           memory, resetting the machine etc.
   Overview of the Diagnostic Product                               Page 12
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0015


       3.  Pass characters through that would otherwise be  interpreted  by
           the hosts terminal driver, for example ^C.


       As previously described, the requestor program  should  ensure  that
       there  is  communications  with the server often enough to avoid the
       reservation timer in the server  expiring  and  forcing  the  remote
       console  back in the unreserved state.  The Console Carrier protocol
       includes the ability to send 'null' messages so  that  communication
       can  still  occur  between  a  functioning  requestor and the server
       without passing any data.

       When the terminal user has finished with  the  remote  console,  the
       requestor should relinquish control.  The remote console facility is
       now available to other requestors.



       6.3  PLUTO Console Carrier Server

       The PLUTO console carrier server is  being  supplied  by  the  PLUTO
       server base.



       6.4  Console Carrier Protocol

       The Console Carrier (CC) protocol is, as its name implies,  a  means
       of transporting ("carrying") the information flow between a computer
       console and that console's usually human user,  in  a  situation  in
       which  the  user's  terminal  is attached to a system other than the
       system of interest.  The information is typically streams  of  ASCII
       characters,  though  that is not a requirement of the protocol.  The
       physical console serving as a paradigm  for  the  model  is  not  an
       "old-fashioned"  console  with  a  switch  register, boot, continue,
       examine, address, and deposit switches, but rather an ASCII console.
       Such  a  console  is  a distinguished terminal.  It can be used as a
       normal terminal I/O device until a particular sequence of characters
       is input by the human, after which point it has all the capabilities
       of the old-fashioned console.

       The objects of interest in the protocol are a  requestor  module,  a
       server module (the objects which speak the protocol) and a requestor
       user process and server user process.  Typically the latter two will
       be  a  human using the remote console, and the target system's ASCII
       console, respectively.  The requestor and  server  protocol  modules
       occupy levels III through VI in the ISO model:  they make direct use
       of a data link layer (DDCMP or NI  Data  Link),  under  which  is  a
       physical  link  layer  (RS232-C or Ethernet Physical Link).  The end
       users make direct use of the CC Requestor and Server.

       The Console Carrier protocol is a simple half-duplex polled protocol
       designed  to  provide  some  degree  of end-to-end (or user-to-user)
       communication without the overhead of DECnet logical  links.   These
       sections  will  discuss  the  operation  of the protocol in terms of
   Overview of the Diagnostic Product                               Page 13
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0016


       message interchanges, the services the protocol  affords,  and  what
       the  costs are for supplying those services in such an "inexpensive"
       manner.  The description will be informal;  the protocol is formally
       defined in the DNA Low-level Maintenance Operations Spec.



       6.4.1  Message Flow Within The CC Protocol

       The protocol is  comprised  of  six  different  types  of  messages:
       Request  System  ID,  System  ID,  Reserve Console, Release Console,
       Console Command and Poll, and Console Response and  Acknowledgement.
       The  procedure  which  a  Console Requestor must follow to reserve a
       remote console is:

       1.  Ask the remote system for a System ID message, and receive  that
           message.

       2.  Note that the remote system has a remote console, and  that  the
           console  is  not  reserved.  These two pieces of information are
           included in the system ID message.

       3.  Assuming that the remote system has an unreserved console,  send
           that remote system a Reserve Console message.

       4.  Again ask the remote system for a System ID message by means  of
           a  Request  System ID message.  If the requestor system has been
           successful in reserving  the  remote  console,  the  requestor's
           address  will  appear  as  the  console  owner  in the System ID
           message.


       If the remote system does not have  a  remote  console,  it  may  be
       possible  to "put a console on the system".  This is not part of the
       CC  protocol,  but  is   rather   a   function   of   a   particular
       implementation.   For  instance, it will be seen later in this paper
       that the CC server for a Pluto implementation runs on the CPU aboard
       the  Pluto's  UNA,  not  on  the Pluto's CPU.  This CC server can be
       down-line loaded into the UNA, at which time the remote system  will
       "have" a console.

       After reserving the remote console, the requestor must maintain that
       reservation  by  sending Console Commands and Polls at some interval
       less than the console's reservation timer.  (The  magnitude  of  the
       timer is contained, again, within the System ID message.)

       After the point at which the console is successfully  reserved,  the
       communication  consists  of  an  arbitrarily  long series of Console
       Commands   and   Polls,   answered   by   Console   Responses    and
       Acknowledgements.  Any messages may have null data;  the protocol is
       concerned only with the  correct  state  changes.   This  dialog  is
       driven  by  the Requestor, which is responsible for issuing commands
       and polling for  responses  from  the  Server.   The  Server  cannot
       independently return a response.  Therefore, the Requestor must know
       when and how often it must poll a response in  order  to  prevent  a
   Overview of the Diagnostic Product                               Page 14
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0017


       buffer  overrun at the Server.  The association of Requestor-defined
       command data to Server-returned response data is made  in  the  user
       layer   above   the  CC  protocol.   The  communications  path  thus
       established between Requestor  User  and  Server  User  will  remain
       intact  until the console is explicitly given up by the Requestor by
       means of a Release Console message, or until  the  interval  between
       Console  Commands  and  Polls  exceeds  the  Console  Server-defined
       reservation timer.  The protocol state is reflected unchanged by the
       Console   Server.   The  burden  of  recognizing  an  unsynchronized
       protocol rests on the requestor.  To resynchronize the protocol, the
       requestor must release, then re-reserve the console.



       6.4.2  Characteristics And Uses Of The Protocol

       A user process within a DECnet  network  (or  other  modern  layered
       protocol  network)  has  available certain services which allow that
       user to believe that there exists a direct,  exclusive,  error  free
       communication  path  between him/herself and some physically distant
       analogous user process.  Of course, neither of the "users"  need  be
       human,  and  the  physical  distance  may  vary by several orders of
       magnitude, but in all cases, a model of two users "conversing"  over
       an  I/O channel (telephone line, "pipe") is a useful one.  Such user
       processes have the following expectations of an end-to-end protocol:

       1.  That the pipe  will  hide  the  imperfections  of  the  physical
           medium;  that is, they expect the path to be error-free.

       2.  That everything entering at one end will come out the  other  in
           the  same  order;   that is, they expect guaranteed delivery and
           sequentiality.

       3.  That no other user's traffic will be interjected into their data
           stream, and that the data that they input will be delivered only
           to the partner process.

       4.  The initiating process expects that, if an attempted  connection
           succeeds,  that  connection will be made only to the object with
           which it is specifically interested in communicating.

       5.  Both processes expect a degree of  flow  control  sufficient  to
           protect  themselves  and  the  network  from  congestion  and/or
           overrun.


       The CC protocol addresses all of these problems except the first  by
       the  expedient  of ignoring them:  it is entirely the concern of the
       user processes to see that they get done.  The first, the error-free
       path, is assumed to be supplied by the data link layer protocol.

       Delivery is not guaranteed:  if a requestor doesn't poll the  server
       as  fast  as  the  server generates responses, response data will be
       lost.  If the requestor generates commands faster than the server or
       the  server  user  process is able to process them, commands will be
   Overview of the Diagnostic Product                               Page 15
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0018


       lost, or the association of response to command will become skewed.

       Access  to  the  PLUTO  Console  Carrier  Server  is  controlled  by
       requiring  that  the  value of the "verification" field in a Reserve
       Console message match the verification field which is stored in  the
       PLUTO  UNA.   How the verification field value in the PLUTO UNA gets
       set is yet to be defined.  Access to  the  CC  requestor  module  is
       neither  specified  nor  controlled  by  the protocol.  (However, CC
       requestors will typically be implemented on larger, more  controlled
       systems.)

       Because the protocol assumes no layers between  itself  and  a  user
       layer,  and  because it demands no particular proof of identity from
       its users, the server user process is that process which happens  to
       be  interested  in  being the server user.  Control of the access to
       the console by a requestor user is within the protocol:  a requestor
       sends  the console server a request to reserve the console, and then
       asks the console  to  send  a  system  ID.   If  the  requestor  has
       successfully  reserved the console, the requestor's own address will
       appear in the ID message as  the  console  user.   A  requestor  may
       explicitly  release  a reserved console.  In addition, a reservation
       timer, the magnitude of which is indicated in the system ID message,
       determines  how  long  the  requestor  may  remain idle (not sending
       commands  or  polling  for  data)  before  its  ownership  will   be
       rescinded.   (The magnitude of this timer is not yet defined;  it is
       thought to  be  of  the  order  of  minutes.)  This  value  will  be
       hard-coded into the Console Carrier Server microcode.

       Flow  control  is  very  rudimentary:   only  one  message  may   be
       outstanding  at  any  one  time;  to return response data requires a
       command/poll.  Lost response data is reported by the CC server.  The
       protocol  state  is  kept  as  a one-bit sequence number.  The first
       command from the requestor  has  a  sequence  number  of  one.   The
       protocol  state  of  the  requestor may be thought of as the message
       number of the current command/poll that it is  currently  attempting
       to get across.  The protocol state of the server may be thoght of as
       the message number of the last correctly received  command/poll.   A
       change  in  state  implies  an  ACK, and is accompanied by (possibly
       null) command data or response data.  Command/polls  with  no  state
       changes and no data are used by the Console Requestor to NAK Console
       Responses.  The Console Server has the ability to indicate  that  it
       has  dropped  (or  lost,  or  scrambled)  a Console Command, and the
       ability to piggyback Console Response data  on  that  NAK.   Such  a
       response  might  be better called a WAK (wait/acknowledgement), with
       the semantic meaning:  "I've received your command,  but  no  action
       will   be   taken  on  it.   Please  retransmit  the  command,  and,
       incidently, here is some response data."

       All of this should be taken to mean that this protocol assumes  that
       the  requestor user process has the intelligence of a human, that in
       fact the requestor user process is a human.  Although the preceeding
       traits seem to describe a terrible protocol, they are, in fact, very
       much the same traits exhibited by  a  real  ASCII  console  terminal
       connected to a computer system in which one may be interested.  That
       terminal may be attached by some process of no interest, it  may  be
   Overview of the Diagnostic Product                               Page 16
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0019


       too slow to output the information from the process without dropping
       characters, it may be  typing  out  the  uncoordinated  interspersed
       outputs  of  several  processes,  it  may  be a terminal on a "dead"
       machine, etc.  In such a case, the human user would either make some
       sense  of  the scrambled mess presented to him/her, or would put the
       terminal into console mode and reboot the system, perhaps using  the
       console  emulator  to  try  to figure the system's state first.  (Of
       course, it will frequently be the case that the terminal will afford
       the user exactly the desired capabilities.)



       6.5  Remote Console Reservation

       The user must specify the target node with which the user wishes  to
       communicate.   The required input to the NI Services Program will be
       a node id (ie.  either  node  name  or  node  address).   The  other
       parameters are optional.  If not specified in the command line, they
       must be specified in the Ni Services data base.  If specified in the
       command  line,  they  override the parameters set in the NI Services
       data base.  The syntax for the command line input is:

       |   RMTCON> CONNECT port-id

       |   RMTCON> CONNECT node-id


       If the connection  is  established  with  the  specified  node,  the
       following message will be displayed on the user's terminal:
       |   To Disconnect & return to command mode, type a single control-D
|  
|      Typing one or several  carrage  returns  will  then  result  in  the
|      following prompt to be displayed on the user's terminal:
       |   Local>

       The user can now begin communications as a remote terminal.

       In order for the NI Services Program to communicate  with  a  remote
       node,  the  SERVICE  CIRCUIT, HARDWARE ADDRESS, and SERVICE PASSWORD
       must be specified in either the command line or  the  volatile  data
       base.   The  names  of  the  files  containing the special secondary
       loader and the micro-code will be hardwired into the program image.



       6.5.1  Reservation States

       The PLUTO console carrier server may be in one of three states  when
       the user wishes to reserve the console:

       1.  The PLUTO console carrier server is loaded and unreserved.

       2.  The PLUTO console carrier server is loaded and reserved.
   Overview of the Diagnostic Product                               Page 17
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0020


       3.  The PLUTO console carrier server is not loaded.


       If the PLUTO console carrier server is loaded and unreserved, the NI
       Services  Program  will  reserve  it.   At this point, the user will
       enter commands as if he were physically located at a  console.   The
       commands  will  be  transmitted by the requestor to the server.  The
       appropriate response will  be  transmitted  by  the  server  to  the
       requestor.  The requestor will display this information to the user.
       If the PLUTO console carrier server is loaded and reserved, an error
       message will be displayed to the user on the issuing terminal.

       If the PLUTO console carrier server is  not  loaded,  the  requestor
       will  load  the  server.   It  may be necessary for the requestor to
       identify the target node via the  48-bit  hardware  address  if  the
       target node is not known to the network.  Once the server is loaded,
       the requestor will attempt to reserve the  console  and  proceed  as
       above.



       6.5.2  Reservation Details

       The PLUTO UNA code that implements the Console Carrier protocol  may
       or  may  not  be resident in the PLUTO UNA.  Thus the requestor must
       check whether the Console Carrier code is present in the  PLUTO  UNA
       and if necessary load the appropriate server code into the PLUTO UNA
       via the NI.

       The target PLUTO may be responding to one of two 48bit NI addresses,
       depending  on the state of the PLUTO UNA.  Thus the requestor should
       attempt to communicate  with  both  the  PLUTO  48bit  hardware  UNA
       address  and  the PLUTO 48bit Phase IV UNA address and use whichever
       one that responds in subsequent messages.

       In its initial state, the  PLUTO  UNA  will  respond  to  its  48bit
       hardware  UNA  address.   When the PLUTO Server software initializes
       the UNA for a phase IV node, it changes the  UNA  address  to  be  a
       Phase  IV  48bit  address.   The Phase IV 48bit address is formed by
       appending the 16bit Phase IV node number to a fixed 32bit value.

       The following sections describe the different situations  which  may
       occur  when  the  requestor  tries  to connect to the remote console
       facility.  The requestor sends the initial request,  to  both  48bit
       addresses if necessary, as follows:

           REQUEST ID :
                   CODE = 15
                   RECEIPT NUMBER = requestors identification


       We will now see the possible responses  to  this  request,  and  the
       actions that may be taken by the requestor in each case.
   Overview of the Diagnostic Product                               Page 18
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0021


       6.5.3  Console Carrier exists - but console in use

       In this case, the Console Carrier code  has  been  loaded  into  the
       PLUTO  UNA  previously, but at the moment, another host has reserved
       the console, so that it is unavailable to us.

       The format of the reply is:

           SYSTEM ID :
                   CODE = 7
                   RECEIPT NUMBER = matches value sent in REQUEST ID
                   OTHER INFO :
                           MAINTENANCE VERSION = 3.0.0     
                           FUNCTIONS = at least console carrier
                           CONSOLE USER = non-zero 48bit Phase IV address
                                           which does not match our address
                           RESERVATION TIMER =     (value to be determined)
                           CONSOLE COMMAND SIZE =  (value to be determined)
                           CONSOLE RESPONSE SIZE = (value to be determined)
                           HARDWARE ADDRESS = 48bit hardware UNA address
                           DEVICE = 1              (ie. UNA)


       In this case, console carrier is known to be present as the 'console
       carrier'  bit is set in the FUNCTIONS field - other bits will be set
       in this field depending on the current state of the PLUTO UNA.   The
       console  is  reserved  by  some  user  as  CONSOLE USER is non zero.
       However the host is not the  current  user  of  the  remote  console
       feature  as  the  value of this field does not match the hosts 48bit
       Phase IV address.

       In this case, the host is unable to reserve the console.  There  are
       two  options  at  this point:  either wait a while and try again, or
       return an error message to the user who is  requesting  the  console
       service for the PLUTO.



       6.5.4  Console Carrier exists - Console not reserved

       In this case, the Console Carrier code has  been  previously  loaded
       into  the PLUTO UNA, but at the moment there is no requestor who has
       reserved the console.

       The reply looks like:

           SYSTEM ID :
                   CODE = 7
                   RECEIPT NUMBER = matches value sent in REQUEST ID
                   OTHER INFO :
                           MAINTENANCE VERSION = 3.0.0     
                           FUNCTIONS = at least console carrier
                           CONSOLE USER = 0        (ie. not reserved)
                           RESERVATION TIMER =     (value to be determined)
                           CONSOLE COMMAND SIZE =  (value to be determined)
   Overview of the Diagnostic Product                               Page 19
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0022


                           CONSOLE RESPONSE SIZE = (value to be determined)
                           HARDWARE ADDRESS = 48bit hardware UNA address
                           DEVICE = 1              (ie. UNA)


       Here we see that the Console Carrier code is running, as the console
       carrier  bit is set in the FUNCTIONS byte.  However, CONSOLE USER is
       0 meaning that there is  no  current  host  that  has  reserved  the
       console.

       We may now attempt to reserve the console, as follows:

           RESERVE CONSOLE :
                   CODE = 13


       This will attempt to reserve the remote console  for  our  exclusive
       use.   However it is possible that another user is trying to reserve
       the console, and managed to do so before we were able to.  There  is
       also  a  possibility  that  the Console Carrier in the PLUTO UNA has
       been disabled before we were able to reserve the console.   Thus  we
       need  to  check  whether we did indeed manage to reserve the console
       successfully.

       We now issue another REQUEST ID message, and depending on the reply,
       we  will  find  that we own the console, or that some other host has
       reserved the console before us, or that Console Carrier is no longer
       operational in the PLUTO, and will therefore have to be reloaded.



       6.5.5  Console Carrier exists - we own the console

       Assuming that we have tried  to  reserve  the  console,  as  in  the
       previous  case,  then  we  would  normally expect this reply when we
       issue the second REQUEST ID.  In  this  case,  we  have  managed  to
       successfully  reserve  the  PLUTO  console  carrier  server  and may
       proceed to use the remote console feature.

       It is also possible that due to some error, the console believes  we
       own it, but we were not aware that we own it.  This case is an error
       as there can only be one user of the Console  Carrier  request  code
       for  a  given PLUTO at any time.  In this case, the requestor should
       issue a warning message, then release  the  console  via  a  RELEASE
       CONSOLE  message and then attempt to reserve the console again via a
       RESERVE CONSOLE message.

       The format of the reply is:

           SYSTEM ID :
                   CODE = 7
                   RECEIPT NUMBER = matches value sent in REQUEST ID
                   OTHER INFO :
                           MAINTENANCE VERSION = 3.0.0     
                           FUNCTIONS = at least console carrier
   Overview of the Diagnostic Product                               Page 20
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0023


                           CONSOLE USER = non-zero 48bit Phase IV address
                                           which matches our address
                           RESERVATION TIMER =     (value to be determined)
                           CONSOLE COMMAND SIZE =  (value to be determined)
                           CONSOLE RESPONSE SIZE = (value to be determined)
                           HARDWARE ADDRESS = 48bit hardware UNA address
                           DEVICE = 1              (ie. UNA)


       The console carrier code is present, as determined by the bit set in
       the  FUNCTIONS field, and we are designated as the console requestor
       as the CONSOLE USER is set to be our 48bit Phase IV address.  We may
       now  use the console carrier server and communicate between the host
       terminal and the DL on the PLUTO.



       6.5.6  Console Carrier code does not exist

       Either there has never been any console carrier  code  operating  in
       the  PLUTO, or else it had previously been loaded but has since been
       disabled.

       The reply in this case looks like:

           SYSTEM ID :
                   CODE = 7
                   RECEIPT NUMBER = matches value sent in REQUEST ID
                   OTHER INFO :
                           MAINTENANCE VERSION = 3.0.0
                           FUNCTIONS = does not include console carrier
                           HARDWARE ADDRESS = 48bit UNA hardware address
                           DEVICE = 1              (ie. UNA)



       In this case, the FUNCTIONS  field  does  not  include  the  console
       carrier  bit, so there is no running PLUTO Console Carrier server on
       the PLUTO's UNA.  Therefore we must load the  console  carrier  code
       into the UNA.  This is accomplished by sending a BOOT message to the
       PLUTO indicating that we wish to load the communications  processor,
       ie.  the UNA, rather than the PLUTO itself.

       The message format is:

           BOOT :
                   CODE = 6
                   VERIFICATION = 8 bytes of password
                   PROCESSOR = 1           (ie. communications processor)
                   CONTROL :
                           BOOT SERVER = 1         (ie. requesting system)
                           BOOT DEVICE = 0         (ie. system default)
                   DEVICE ID = 0           (ie. irrelevant)
                   SOFTWARE ID = -1        (ie. system image)
   Overview of the Diagnostic Product                               Page 21
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0024


       As in the case of loading a PLUTO from a host,  the  password  field
       may  be  set  up  in the PLUTO UNA as 8 octets of zero, or it may be
       non-zero.  The  requestor  should  attempt  this  message  twice  if
       necessary,  once  with  the  normal  password,  and  once  with  the
       VERIFICATION field consisting of 8 octets of  zeros.   Only  one  of
       these  requests  will be responded to.  Note that the SOFTWARE ID is
       always -1;  "diagnostic" is not supported when trying  to  boot  the
       communications processor (ie.  the UNA).

       The reply to the BOOT message will be a REQUEST PROGRAM, which is  a
       request  for  the host to load the appropriate secondary loader into
       the PLUTO UNA.  The format of the request is as follows:

           REQUEST PROGRAM :
                   CODE = 8
                   DEVICE TYPE = 1         (ie. UNA)
                   FORMAT VERSION = 1
                   PROGRAM TYPE = 0        (ie. secondary loader)
                   SOFTWARE ID = -1        (ie. system image)
                   OTHER INFO :
                           MAINTENANCE VERSION = 3.0.0
                           FUNCTIONS = dependant on current UNA state
                           ...         the rest of this section depends on
                                       the current UNA state


       The secondary loader that the host responds with is not the same  as
       would  be  sent  for  a  load  of the complete node.  This secondary
       loader is a loader which will load an image into the PLUTO  UNA  WCS
       rather  than the PLUTO memory.  The secondary loader is contained in
       a file PLUTOWL.SYS on the PLUTO directory.

       The host sends the secondary loader in a single message as follows:
           
           MEMORY LOAD WITH TRANSFER ADDRESS :
                   CODE = 0
                   LOAD NUMBER = 0
                   LOAD ADDRESS =          (value to be determined)
                   IMAGE DATA = data from PLUTOWL.SYS
                   TRANSFER ADDRESS =      (value to be determined)


       The PLUTO WCS secondary loader now runs and requests the  PLUTO  WCS
       code  to  be  loaded,  ie.   the  console  carrier server code.  The
       message is as follows:

           REQUEST PROGRAM :
                   CODE = 8
                   DEVICE TYPE = 1         (ie. UNA)
                   FORMAT VERSION = 1
                   PROGRAM TYPE = 2        (ie. system)
                   SOFTWARE ID = -1        (ie. loading standard software)
                   OTHER INFO :
                           MAINTENANCE VERSION = 3.0.0
                           FUNCTIONS = dependant on current UNA state
   Overview of the Diagnostic Product                               Page 22
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0025


                           ...         the rest of this section depends on
                                       the current state of the UNA


       The host will now load down the PLUTO console  carrier  server  code
       into  the  PLUTO  UNA  WCS.   This  is a multiblock load.  The PLUTO
       console carrier server code is in the file PLUTOCC.SYS on the  PLUTO
       directory.

       The host sends the following message:

           MEMORY LOAD :
                   CODE = 2
                   LOAD NUMBER = starts at zero
                   LOAD ADDRESS = starting address to load this segment
                   IMAGE DATA = data to be loaded into the UNA's WCS


       The exact method for determining LOAD ADDRESS and  IMAGE  DATA  from
       the  file  PLUTOCC.SYS  will  be  determined  later.   The PLUTO UNA
       secondary loader will reply with a message in the following form:

           REQUEST MEMORY LOAD :
                   CODE = 10
                   LOAD NUMBER = number of next segment to load
                   ERROR = 0, if the last segment received correctly
                           1, if the last segment received was in error


       The sequence of MEMORY LOAD and REQUEST MEMORY LOAD is  repeated  as
       often as necessary to complete the load of the PLUTO console carrier
       server.  The load is terminated with a message of the form:

           PARAMETER LOAD WITH TRANSFER ADDRESS :
                   CODE = 20
                   LOAD NUMBER = matches the last REQUEST MEMORY LOAD value
                   PARAMETERS :
                           0               (ie. no parameters)
                   TRANSFER ADDRESS = starting address of Console Carrier server


       The actual value for TRANSFER ADDRESS will be determined later.

       At this stage the PLUTO console carrier server is loaded and running
       in  the  PLUTO UNA WCS.  The host should now issue a RESERVE CONSOLE
       request to attempt to get exclusive access  to  the  remote  console
       facility.  The format of the message is as follows:

           RESERVE CONSOLE :
                   CODE = 13


       The possible responses to the RESERVE CONSOLE message are  explained
       in a previous section.
   Overview of the Diagnostic Product                               Page 23
   FUNCTIONAL DESCRIPTION                                         11 Jul 85                                                SEQ 0026


       6.6  Remote Console Operation

       Once the remote  console  is  reserved,  a  timer  routine  will  be
       executed once per second.  The timer routine will transmit a console
       command and poll message to the server with any data which has  been
       typed  in by the user since the last transmit.  If any response data
       is received from the server, this data  will  be  displayed  on  the
       user's  terminal  exactly  as  it was received from the server.  The
       reservation timer for the server  must  be  specified  in  units  of
       seconds.   Since  the  requestor is polling at one second intervals,
       there is no problem with satisfying the requirement that the  server
       must be polled within the time specified by its reservation timer.
   Overview of the Diagnostic Product                               Page 24
   ERROR REPORTING PHILOSOPHY                                     11 Jul 85                                                SEQ 0027


   7.0  ERROR REPORTING PHILOSOPHY


        o  Report back to the user on functional errors.

        o  Hardware errors will be detected and  logged  by  the  Operating
           System.




       7.1  Reporting to SPEAR

       The following information will be logged into the System  Error  Log
       for SPEAR use.

        o  The current time when the remote console is reserved.

        o  The current time when the remote console is released.

        o  Port number/Node number.
   Overview of the Diagnostic Product                               Page 25
   OPEN ISSUES                                                    11 Jul 85                                                SEQ 0028


   8.0  OPEN ISSUES

   There must be some special character which will be  used  to  specify  a
   'BREAK' command in order to get the attention of micro-odt.  [Control-B]

   There must also be some special character to exit console carrier  mode.
   [Control-X]

   These  special  characters  should  be   agreed   upon   by   all   host
   implementations  (VMS  and TOPS).  At this point, there has not been any
   agreement on the details in these areas.

   The manner in which circuits  over  the  UNA  are  modelled  in  network
   management  has  not been defined as yet.  For DDCMP circuits, the owner
   is changed to the appropriate module (ex.  LOOPER)  and  the  state  and
   sub-state  of  the  circuit  is  set  according  to  the  operation (ex.
   on-looping).  There is currently no  definition  of  the  model  of  UNA
   circuits  which specifies that this information will be kept or how this
   information  will  be  passed  to  network  management  if  it  will  be
   collected.



   9.0  SCHEDULE


      Milestone            Target Date
      ---------            -----------

   1. Functional Spec      6 May 83
      Complete

   2. Design/Code          1 July 83
      Complete

   3. Begin Debug          5 July 83

   4. Complete Debug       15 July 83

   5. Documentation        29 July 83
      Complete

   6. Evaluation           5 Aug 83
      Complete

   7. Completed            12 Aug 83
   Overview of the Diagnostic Product                               Page 26
   BIBLIOGRAPHY                                                   11 Jul 85                                                SEQ 0029


   10.0  BIBLIOGRAPHY


        o  Diagnostic Engineering Project Plan For Support of the  Ethernet
           Port (KLNI) on KL10.
           Frank Gatulis / January 13,1983

        o  NI Node Product Architecture Specification

           / March 24,1982

        o  Digital Network Architecture - Low Level Maintenance  Operations
           Architectural Specification
           Bob Stewart, Ken Chapman / April 20,1982

        o  A PLUTO Implementation of a Console Carrier Server
           Paul Weiss / March 3,1982
   Overview of the Diagnostic Product                               Page 27
   GLOSSARY                                                       11 Jul 85                                                SEQ 0030


   11.0  GLOSSARY


            o  CCR    Console Carrier Requestor, (the NI Services Program)

            o  CCS    Console Carrier Server

            o  FCS    First Customer Ship

            o  KLNI   KL10 NI Ethernet Adapter

            o  N/A    Not Applicable

            o  NI     Network Interconnect (ETHERNET)

            o  PLUTO  Communications Controller

            o  RCS    Remote Console Service

            o  SCS    Systems Communications Services

            o  SPEAR  Standard Package for Error Analysis and Reporting

            o  TBD    To Be Determined

            o  UUT    Unit Under Test




   12.0  REVISION HISTORY

           Revision 0.1
           May 3, 1983
           John R.  Kirchoff
           The first mailing of this document.
   Overview of the Diagnostic Product                               Page 28
   ALGORITHMS                                                     11 Jul 85                                                SEQ 0031


   13.0  ALGORITHMS

   13.1  NI Services Program algorithm


           MODULE NIS
               Get node to connect to
               Check for required parameters in data base
               IF user is privileged THEN
                   Open circuit
                   IF NI circuit THEN
                       Set characteristics
                   ENDIF
                   CALL Reserve_console
                   IF success then
                       Clear exit_flag
                       WHILE exit_flag not set DO
                           CALL process_command
                       ENDWHILE
                       Call release_console
                   ENDIF
                   Close circuit
               ELSE
                   Display error messge
               ENDIF
           EXIT




   13.2  Normal Command Processing algorithm


           ROUTINE process_command
               WHILE exit not set DO
                   Complement message number
                   IF timer expired or character received THEN
                       IF character received = exit character THEN
                           Set exit
                       ELSE
                           Transmit console command and poll message
                           Display response if any
                       ENDIF
                   ELSE
                       Wait
                   ENDIF
   Overview of the Diagnostic Product                               Page 29
   ALGORITHMS                                                     11 Jul 85                                                SEQ 0032


   13.3  Reserve Remote Console algorithm


           ROUTINE reserve_console
               Clear error
               CALL transmit(request_id)[receive system id message]
               IF CCS not loaded THEN
                   CALL load_server
               ELSEIF CCS reserved by other node THEN
                   Display error message
                   Set error
               ELSEIF CCS reserved by local node THEN
                   CALL release_console
               ENDIF
               IF no error THEN
                   Retry = 0
                   Clear fatal_error
                   WHILE retry < 5 and not fatal_error and not success DO
                       IF no error THEN
                           CALL transmit(reserve_console)
                           CALL transmit(request_id)
                           IF reservation not successful THEN
                               IF not loaded THEN
                                   CALL load_server
                               ELSE
                                   Set fatal_error
                                   Display error message
                               ENDIF
                           ELSE
                               Get reservation timer from system id message
                               Message_number = 0
                               Set success
                           ENDIF
                      ENDIF
                   ENDWHILE
               ENDIF
           RETURN




   13.4  Release Remote Console algorithm


           ROUTINE release_console
               CALL transmit(release_console)
           RETURN
   Overview of the Diagnostic Product                               Page 30
   ALGORITHMS                                                     11 Jul 85                                                SEQ 0033


   13.5  Load Server Code algorithm


           ROUTINE load
               Transmit boot message - no service password
               IF no reply THEN
                   Transmit boot message - include service password
                   IF no reply THEN Set fatal error
               ENDIF
               WHILE no fatal error DO
                   Set secondary comm loader flag
                   WHILE no error and more to load DO
                       Open image and check for proper format
                       IF improper format THEN
                           Set file error
                       ELSE
                           Get start address, length, and transfer address
                           IF loading secondary comm loader THEN
                               Read entire image
                               Transmit memory load with transfer address
                           ELSE
                               Call multi-block load
                               Set retry counter to 0
                               WHILE no error and request memory load
                                              and req segment = load number DO
                                   Transmit memory load with transfer address
                                   IF no error and request memory load
                                               and req segment = load number
                                               and retry counter < 5 THEN
                                       Increment retry counter
                                   ELSE
                                       Increment load segment number
                                   ENDIF
                               ENDWHILE
                           ENDIF
                       ENDIF
                       IF no error THEN
                           Close file being loaded
                           IF loading server image THEN
                               IF request memory and segment = load number THEN
                                   Indicate no more to load
                               ELSE
                                   Set line protocol error
                               ENDIF
                           ELSE
                               IF request program received THEN
                                   Set file to load from Program Request
                               ELSE
                                   Set line protocol error
                               ENDIF
                           ENDIF
                       ENDIF
                   ENDWHILE
               ENDWHILE
           RETURN
   Overview of the Diagnostic Product                               Page 31
   ALGORITHMS                                                     11 Jul 85                                                SEQ 0034


   13.6  Multi-block Load algorithm


            ROUTINE multi-block_load
               Set Load Segment number to 0
               Set Requested Segment number to 0
               WHILE no error and more to load DO
                   Read a segment of memory from file
                   Set retry count to 0
                   WHILE no error and Requested Segment = Load Segment DO
                       Transmit Memory Load Message
                       IF no error THEN
                           IF Request Memory Load received THEN
                               Set Requested Segment number from message
                               IF Requested Segment = Load Segment THEN
                                   IF Retry count less than 5 THEN
                                       Increment retry count
                                   ELSE
                                       Set Line Communication error
                                   ENDIF
                               ELSE
                                   IF Req Segment .ne. Load Segment+1 THEN
                                       Set Line Protocol error
                                   ENDIF
                               ENDIF
                           ELSE
                               Set Line Protocol error
                           ENDIF
                       ENDIF
                   ENDWHILE
               Increment Load Segment number
               ENDWHILE
           RETURN
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 1             
                                                                                                                           SEQ 0035




















				   DOCUMENT
				**************
				  RMTCON LST
				**************

















		    COPYRIGHT 1985
		    DIGITAL EQUIPMENT CORPORATION
		    MAYNARD, MASS. 01754
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 2             
                                                                                                                           SEQ 0036

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


	1	

	51	*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE

	57	COMMAND PARSING TABLES

	164	TOP LEVEL PARSER

	205	CONNECT PORT/NODE COMMAND

	268	ENABLE COMMAND

	302	DISABLE COMMAND

	339	REDEFINE COMMAND

	382	HELP COMMAND

	418	REQUEST ID COMMAND

	448	SET PASSWORD

	468	READ COUNTERS COMMAND

	492	DISPLAY COMMAND

	545	SHOW COMMAND

	1	RMTCNM

	57	INITIAL START UP

	116	REMOTE TERMINAL OPERATION

	240	TERMINAL INPUT INTERRUPT HANDLER

	293	RCSND INTERRUPT HANDLER

	343	RCPOL INTERRUPT HANDLER

	447	SAVE/RESTORE TERMINAL PARAMETERS

	503	REMOTE TERMINAL STORAGE
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 3             
                                                                                                                           SEQ 0037

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


	535	INTERRUPT CHANNEL & LEVEL TABLES

	587	RCRID SUBROUTINE

	657	RCRCT SUBROUTINE

	726	RCRBT SUBROUTINE

	801	RCRPY SUBROUTINE

	873	RCRSV SUBROUTINE

	941	RCREL SUBROUTINE

	1005	RCSND SUBROUTINE

	1093	RCPOL SUBROUTINE

	1170	RCABT SUBROUTINE

	1222	RCSTS SUBROUTINE

	1308	RCADR SUBROUTINE

	1369	LLMOP SUBROUTINE

	1407	RDSTIM SUBROUTINE

	1455	HEX SUBROUTINE

	1527	REJUS SUBROUTINE

	1578	PWSWAP SUBROUTINE

	1617	PRINT 12 DIGIT HEX NUMBER SUBROUTINE

	1664	ASCIZ A 12 DIGIT HEX NUMBER SUBROUTINE

	1746	SPEAR SUBROUTINES

	1861	RESERVE CONSOLE

	2259	RELEASE CONSOLE
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 4             
                                                                                                                           SEQ 0038

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


	2406	SHOW ALL NODE ADDRESSES ON NETWORK

	2499	REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES

	3331	DEBUG TABLE FOR PRINTING SYS-ID INFO

	3477	READ COUNTERS REPORTING

	3679	READ COUNTER BYTES & PRINT

	3703	DEBUG TABLE FOR PRINTING READ COUNTERS INFORMATION

	3784	STATUS FLAG REPORTING

	3846	SPEAR REPORTING SUBROUTINES

	4057	GENERAL STORAGE
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 5             
                                                                                                                           SEQ 0039
		*****************************************************************
	1	RMTCON
		*****************************************************************

		*****************************************************************
	51	*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE
		*****************************************************************

		*****************************************************************
	57	COMMAND PARSING TABLES
		*****************************************************************

		*****************************************************************
	164	TOP LEVEL PARSER
		*****************************************************************

		*****************************************************************
	205	CONNECT PORT/NODE COMMAND
		*****************************************************************

		*****************************************************************
	268	ENABLE COMMAND
		*****************************************************************

		*****************************************************************
	302	DISABLE COMMAND
		*****************************************************************

		*****************************************************************
	339	REDEFINE COMMAND
		*****************************************************************

		*****************************************************************
	382	HELP COMMAND
		*****************************************************************

		*****************************************************************
	418	REQUEST ID COMMAND
		*****************************************************************
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 6             
                                                                                                                           SEQ 0040
		*****************************************************************
	448	SET PASSWORD
		*****************************************************************

		*****************************************************************
	468	READ COUNTERS COMMAND
		*****************************************************************

		*****************************************************************
	492	DISPLAY COMMAND
		*****************************************************************

		*****************************************************************
	545	SHOW COMMAND
		*****************************************************************

		568	 QUIT command - Exit this program (NI SERVER) & return to system monitor.

		*****************************************************************
	1	RMTCNM
		*****************************************************************

		*****************************************************************
	57	INITIAL START UP
		*****************************************************************

		*****************************************************************
	116	REMOTE TERMINAL OPERATION
		*****************************************************************

		*****************************************************************
	240	TERMINAL INPUT INTERRUPT HANDLER
		*****************************************************************

		*****************************************************************
	293	RCSND INTERRUPT HANDLER
		*****************************************************************

		*****************************************************************
	343	RCPOL INTERRUPT HANDLER
		*****************************************************************
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 7             
                                                                                                                           SEQ 0041
		*****************************************************************
	447	SAVE/RESTORE TERMINAL PARAMETERS
		*****************************************************************

		*****************************************************************
	503	REMOTE TERMINAL STORAGE
		*****************************************************************

		*****************************************************************
	535	INTERRUPT CHANNEL & LEVEL TABLES
		*****************************************************************

		*****************************************************************
	587	RCRID SUBROUTINE
		*****************************************************************

		589	 RCRID subroutine

		*****************************************************************
	657	RCRCT SUBROUTINE
		*****************************************************************

		659	 RCRCT subroutine

		*****************************************************************
	726	RCRBT SUBROUTINE
		*****************************************************************

		728	 RCRBT subroutine 

		*****************************************************************
	801	RCRPY SUBROUTINE
		*****************************************************************

		803	 RCRPY subroutine

		*****************************************************************
	873	RCRSV SUBROUTINE
		*****************************************************************

		875	 RCRSV subroutine
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 8             
                                                                                                                           SEQ 0042
		*****************************************************************
	941	RCREL SUBROUTINE
		*****************************************************************

		943	 RCREL subroutine

		*****************************************************************
	1005	RCSND SUBROUTINE
		*****************************************************************

		1007	 RCSND subroutine - SEND CONSOLE COMMAND

		*****************************************************************
	1093	RCPOL SUBROUTINE
		*****************************************************************

		1095	 RCPOL subroutine - CONSOLE RESPONSE POLL

		*****************************************************************
	1170	RCABT SUBROUTINE
		*****************************************************************

		1172	 RCABT subroutine - ABORT OUTSTANDING REMOTE CONSOLE REQUEST.

		*****************************************************************
	1222	RCSTS SUBROUTINE
		*****************************************************************

		1224	 RCSTS - OBTAIN REMOTE CONSOLE REQUEST STATUS

		*****************************************************************
	1308	RCADR SUBROUTINE
		*****************************************************************

		1310	 RCADR subroutine - READ LOCAL ADDRESS

		*****************************************************************
	1369	LLMOP SUBROUTINE
		*****************************************************************
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 9             
                                                                                                                           SEQ 0043
		*****************************************************************
	1407	RDSTIM SUBROUTINE
		*****************************************************************

		1409	 Rdstim subroutine

		1432	 OTIME subroutine

		*****************************************************************
	1455	HEX SUBROUTINE
		*****************************************************************

		1457	 HEX subroutine

		*****************************************************************
	1527	REJUS SUBROUTINE
		*****************************************************************

		1529	 REJUS  subroutine

		*****************************************************************
	1578	PWSWAP SUBROUTINE
		*****************************************************************

		1580	 PWSWAP  subroutine

		*****************************************************************
	1617	PRINT 12 DIGIT HEX NUMBER SUBROUTINE
		*****************************************************************

		1619	 PRHEX prints a 12 digit hex node address.

		*****************************************************************
	1664	ASCIZ A 12 DIGIT HEX NUMBER SUBROUTINE
		*****************************************************************

		1666	 UHEX subroutine

		*****************************************************************
	1746	SPEAR SUBROUTINES
		*****************************************************************
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 10            
                                                                                                                           SEQ 0044
		*****************************************************************
	1861	RESERVE CONSOLE
		*****************************************************************

		*****************************************************************
	2259	RELEASE CONSOLE
		*****************************************************************

		*****************************************************************
	2406	SHOW ALL NODE ADDRESSES ON NETWORK
		*****************************************************************

		2408	  SALLAD subroutine	Called from SALLNO (Show all Nodes) in RMTCNP

		*****************************************************************
	2499	REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES
		*****************************************************************

		2501	 RRID subroutine     Called from REQU (Req-ID command) in RMTCNP.

		*****************************************************************
	3331	DEBUG TABLE FOR PRINTING SYS-ID INFO
		*****************************************************************

		*****************************************************************
	3477	READ COUNTERS REPORTING
		*****************************************************************

		*****************************************************************
	3679	READ COUNTER BYTES & PRINT
		*****************************************************************

		*****************************************************************
	3703	DEBUG TABLE FOR PRINTING READ COUNTERS INFORMATION
		*****************************************************************

		*****************************************************************
	3784	STATUS FLAG REPORTING
		*****************************************************************

		3786	 RDFLGS Subroutine - Come here after doing "GO RCSTS"
RMTCON LST                                                              DECDOC VER  00.24   11-JUL-85 22:25:49   PAGE 11            
                                                                                                                           SEQ 0045
		*****************************************************************
	3846	SPEAR REPORTING SUBROUTINES
		*****************************************************************

		*****************************************************************
	4057	GENERAL STORAGE
		*****************************************************************

		4059	  General Program Storage 
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 1
RMTCNT	MAC	10-Jun-85 15:17		RMTCON                                                                             SEQ 0046

     1					SUBTTL	RMTCON
     2
     3			000000		DECVER==0
     4			000001		MCNVER==1
     5
     6
     7						XLIST
     8						LIST
     9						LALL
    10
    11					NAME	\MCNVER,\DECVER^
    12
    13					TITLE	RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0^
    14
    15					; ****************************************************************
    16					; This "NI SERVER" runs under "TOPS20" only.			 !
    17					; ****************************************************************
    18
    19					;"COPYRIGHT 1984"
    20					;"LARGE SYSTEMS DIAGNOSTICS GROUP"
    21					;"DIGITAL EQUIPMENT CORPORATION"
    22					;"MARLBORO, MASS. 01752"
    23
    24					;"GARY PAPAZIAN"
    25
    26	000137					LOC	137
    27	000137	000001	000000		MCNVER,,DECVER
    28	000000'					RELOC
    29
    30						NOSYM
    31					SEARCH	KCUNV,MONSYM,MACSYM,UUOSYM
    32						SALL
    33
    34			000000		DEBUG==0				;No debug area
    35			000000		EXCASB==0				;No exec mode
    36			000001		USRASB==1				;User mode
    37			000000		MEMMAP==0
    38			000001		PGMEND==1
    39			400000		IPAG=400000
    40
    41					.REQUIRE	RMTCNP
    42					.REQUIRE	RMTCNM
    43
    44					; **************************
    45					; * Externals and internals *
    46					; **************************
    47
    48					INTERN	IPAG,DECVER,MCNVER
    49					EXTERN	PGMNAM,START,STARTA
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 2
RMTCNT	MAC	10-Jun-85 15:17		RMTCON                                                                             SEQ 0047

    50
    51					SUBTTL	*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE
    52
    53					EXTERN	START,STARTA,PGMNAM,MODCHK,SUBINI
    54			000000		DDTLNK=:0				;Ddt linkage address (no ddt)
    55
    56					; ************************************************************
    57					; Program starting addresses
    58					; These addresses call various special start routines and or options
    59					; Normal start address is 140 all others are special.
    60					; ************************************************************
    61
    62	000000'	254 00 0 00 000000*	BEGIN::	JRST	MODCHK			;Mode check starting address
    63
    64	000001'	254 00 0 00 000000*	$START::JRST	START			;Stand-alone start
    65
    66	000002'	254 00 0 00 000001'	DIAGMN::JRST	$START			;Diagnostic monitor start
    67
    68	000003'	254 00 0 00 000001'	SYSEXR::JRST	$START			;System exerciser start
    69
    70						IFNDEF	SADR1,<SADR1=BEGIN>
    71	000004'	254 00 0 00 000000'	SFSTRT::JRST	SADR1			;Special feature start
    72
    73						IFNDEF	SADR2,<SADR2=BEGIN>
    74	000005'	254 00 0 00 000000'	PFSTRT::JRST	SADR2			;Power fail restart
    75
    76						IFNDEF	SADR3,<SADR3=BEGIN>
    77	000006'	254 00 0 00 000000'	REENTR::JRST	SADR3			;Reenter start
    78
    79	000007'	254 00 0 00 000001'	DDTSRT::JRST	$START			;Ddt start
    80
    81	000010'	254 00 0 00 000000*	SBINIT::JRST	SUBINI			;Pmgint linkage
    82
    83	000011'	000000	000000		RETURN::0				;Return address storage
    84
    85	000012'	000000	000001		ITRCNT::1				;Program iterations
    86
    87						IFNDEF	ABTADR,<ABTADR=0>
    88	000013'	000000	000000		ABORT::	ABTADR				;Abort routine address
    89
    90						IFNDEF	TLTADR,<TLTADR=0>
    91	000014'	000000	000000		TOTALS::TLTADR				;Totals routine address
    92
    93	000015'	000000	000000			0				;Reserved
    94	000016'	000000	000000			0
    95	000017'	000000	000000			0
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 2
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0048

    96
    97					; ************************************************************
    98					; Special program dispatch addresses
    99					; ************************************************************
   100
   101	000020'	037 01 0 00 000003 	BEGEND::ENDPASS				;End of pass
   102	000021'	254 00 0 00 000000*	$BEND1::JRST	STARTA			;Keep running program
   103	000022'	037 02 0 00 000003 	$BEND2::EOPROG				;End of program - no return
   104
   105	000023'	350 00 0 17 000000 	CPOPJ1::AOS	(P)			;Skip return
   106	000024'	263 17 0 00 000000 	CPOPJ::	RTN				;Non-skip regular return
   107
   108					; ************************************************************
   109					; Program fixed parameter area
   110					; ************************************************************
   111
   112						IFNDEF	PAREA1,<PAREA1=0>
   113	000025'	000000	000000		RANDBS::PAREA1				;Random base number
   114	000026'	000000000000#		P%NAME::PGMNAM				;Pointer to programs name
   115	000027'	000001	000000		P%VER::	MCNVER,,DECVER			;Mcn & dec version level
   116	000030'	000000	000000		$EMODE::EXCASB				;Exec allowed if -1
   117	000031'	000000	000001		$UMODE::USRASB				;User allowed if -1
   118	000032'	000000	000000		$MMAP::	MEMMAP				;Allow memory rtns if -1
   119
   120					; ************************************************************
   121					; Uuo dispatch table
   122					; ************************************************************
   123						XLIST
   124						LIST
   125
   126	000033'	000161'	000161'		U%DTBL::LUUO1,,U%ERR
   127	000034'	000161'	000161'			LUUO3,,LUUO2
   128	000035'	000161'	000161'			LUUO5,,LUUO4
   129	000036'	000161'	000161'			LUUO7,,LUUO6
   130	000037'	000161'	000161'			LUUO11,,LUUO10
   131	000040'	000161'	000161'			LUUO13,,LUUO12
   132	000041'	000161'	000161'			LUUO15,,LUUO14
   133	000042'	000161'	000161'			LUUO17,,LUUO16
   134	000043'	000161'	000161'			LUUO21,,LUUO20
   135	000044'	000161'	000161'			LUUO23,,LUUO22
   136	000045'	000161'	000161'			LUUO25,,LUUO24
   137	000046'	000161'	000161'			LUUO27,,LUUO26
   138	000047'	000161'	000161'			LUUO31,,LUUO30
   139	000050'	000161'	000161'			LUUO33,,LUUO32
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 3
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0049

   140
   141					; ************************************************************
   142					; 'Comnd' command parsing parameters
   143					; ************************************************************
   144
   145	000051'	014000	000000		INIT::	014000,,000000			;.Cmini - 'comnd' initialization
   146	000052'	000000	000000			0
   147	000053'	010000	000000		CFM::	010000,,000000			;.Cmcfm - 'comnd' confirm
   148	000054'	000000	000000			0
   149
   150					; ************************************************************
   151					; Program variable parameter area
   152					; ************************************************************
   153
   154	000055'	000000	000000		USER::	0				;0 = Exec, -1 = user mode flag
   155	000056'	000000	000000		MONTYP::0				;0 = Tops10, -1 = tops20
   156	000057'	000000	000000		MONFLG::0				;Diag monitor special user flag
   157	000060'	000000	000000		MONCTL::0				;Diag mon/sys exr flag
   158	000061'	000000	000000		MONTEN::0				;-1= Loaded by 10
   159	000062'	000000	000000		SERNBR::0				;Processor serial number
   160	000063'	000000	000000		CONSW::	0				;Console switch settings
   161	000064'	000000	000000		PASCNT::0				;Program pass count
   162	000065'	000000	000000		RUNFLG::0				;Program run flag
   163	000066'	000000	000000		TESTPC::0				;Subtest pc
   164	000067'	000000	000000		TESTNBR::0				;Subtest number
   165	000070'	000000	000000		CLOCKF::0				;Clock ticked flag
   166	000071'	000000	000000		CLKCNT::0				;Clock tick counter
   167	000072'	000000	000000		TIMERF::0				;Interval timer ticked flag
   168	000073'	000000	000000		TMRCNT::0				;Interval timer tick counter
   169	000074'	000000	000000		PVPAGI::0				;If n=0, override "INHPAG" switch action
   170	000075'	000000	000000		CSHFLG::0				;Allow cache if 0
   171	000076'	000000	000000		CSHMEM::0				;Cache memory segments if zero
   172	000077'	000000	000000		$ONETM::0				;Subroutine initialization flag
   173	000100'	000000	000000		PG%END::0				;If n=0, xct'd by 'eopuuo' before ending prog
   174	000101'	000000	000000		S%TOGGLE::0				;If n=0, use c(consw) for switches
   175	000102'	000000	000000		SWPTAB::0				;0 = No prompt, adr = adr of sixbit prompt table
   176
   177	000103'	000000	000000		CC%FLG::0				;Control-c flag
   178	000104'	000000	000000		CY%FLG::0				;Control-y flag
   179	000105'	000000	000000		CD%FLG::0				;Control-d flag
   180	000106'	000000	000000		CC%PRE::0				;^C check pre-routine
   181	000107'	000000	000000		CC%POST::0				;^C check post-routine
   182	000110'	000000	000000		CY%PRE::0				;^Y pre-routine
   183	000111'	000000	000000		CY%POST::0				;^Y post-routine
   184	000112'	000000	000000		CY%ACT::0				;^Y activated flag
   185	000113'	000000	000000		C%PSTK::0				;Saved parser stack pointer
   186	000114'	000000	000000		C%CCADR::0				;^C transfer address
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 4
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0050

   187
   188					; ************************************************************
   189					; Error handler parameters
   190					; ************************************************************
   191
   192	000115'	000000	000000		ERRPC::	0				;Error pc
   193	000116'	000000	000000		ERRNBR::0				;Error [test#,,error#]
   194	000117'	000000	000000		ERRTLS::0				;Error totals
   195	000120'	000000	000000		ERMORE::0				;Additional error handler linkage
   196	000121'	000000	000000		REPTU::	0				;Repeat uuo iterations
   197	000122'	000000	000000		SCOPE::	0				;Error handler scope loop flag
   198	000123'	000000	000000		E%LUUO::0				;Error luuo
   199	000124'	000000	000000		E%ERPC::0				;Error pc
   200	000125'	000000	000000		E%FMT::	0				;Error format, 0=pc, -1=#
   201	000126'	000000	000000		E%ERFLG::0				;Error flag, -1=use repeat ac's
   202	000127'	000000	000000		E%CORFL::0				; " CORRECT FLAG
   203	000130'	000000	000000		E%COREC::0				; " CORRECT DATA
   204	000131'	000000	000000		E%ACTFL::0				; " ACTUAL FLAG
   205	000132'	000000	000000		E%ACTUL::0				; " ACTUAL DATA
   206	000133'	000000	000000		E%DISCR::0				; " DISCREPENCY DATA
   207	000134'	000000	000000		E%ERH1::0				;If n=0, xct'd at start of %eruuo
   208	000135'	000000	000000		E%ERH2::0				;If n=0, xct'd at end of %eruuo
   209	000136'	000000	000000		E%ERH3::0				;If n=0, xct'd after "PC" of %eruuo
   210
   211					; ************************************************************
   212					; Processor interrupt control storage
   213					; ************************************************************
   214
   215	000137'	000000	000000		ITRCH1::0				;Pc & flags of current interrupt
   216	000140'	000000	000000			0
   217	000141'	000000	000000			0				;New pc and flags
   218	000142'	000000	000000			0
   219
   220	000143'	000000	000000		I%AC0::	0				;Interrupt saved ac0
   221	000144'	000000	000000		I%SVPI::0				;Interrupt saved pi
   222	000145'	000000	000000		I%SVAPR::0				;Interrupt saved apr
   223
   224	000146'	000000	000000		I%ITRX::0				;Additional interrupt linkage
   225	000147'	000000	000000		I%ITRY::0				; "
   226	000150'	000000	000000		I%PWRX::0				;Additional power fail linkage
   227	000151'	000000	000000		I%PWRY::0				; "
   228
   229	000152'	000000	000000		I%LEVTAB::0				;Tops-20 software interrupt levtab address
   230	000153'	000000	000000		I%CHNTAB::0				;Tops-20 software interrupt chntab address
   231	000154'					BLOCK	3			;Unused (was old i%lxpc)
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 5
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0051

   232
   233					; ************************************************************
   234					; Uuo control
   235					; ************************************************************
   236
   237	000157'	000000	000000		U%USRTN::0				;Additional users uuo routine
   238	000160'	000000	000000		U%RTX::	0				;Additional uuo linkage
   239	000161'	000000	000000		U%ERR::	0				;Inited as (jrst $uoerx)
   240	000162'	000000	000000		U%SVUUO::0				;Current users uuo
   241	000163'	000000	000000		U%SVUPC::0				;Pc of current users uuo
   242	000164'	000000	000000		U%UUO::	0				;If n=0, xct'd at start of $uortn
   243	000165'	000000	000000		M%MUUO::0				;If n=0, xct'd at start of muuoer
   244
   245					; ************************************************************
   246					; Memory managment storage
   247					; ************************************************************
   248
   249	000166'	000000	000000		MAPNEW::0				;Memory mapping control flag, -1 = 32m mapping
   250	000167'	000000	000000		MEMTOT::0				;Total memory size in k (1024.)
   251	000170'	000000	000000		MEMLOW::0				;Lowest usable memory
   252	000171'				MEMSIZ::BLOCK ^D41			;Memory segment pointer table
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 6
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0052

   253
   254					; ************************************************************
   255					; Print control storage
   256					; ************************************************************
   257
   258	000242'	000000	000000		P%FLAG::0				;Print flag, -1 while in print routine
   259	000243'	000000	000000		P%ENABLE::0				;Print enable, -cnt of allowed output lines
   260
   261	000244'	000000	000000		P%FORCE::0				;Set for forced printout
   262	000245'	000000	000000		P%FRCALL::0				;Print force all override
   263	000246'	000000	000000		P%FCRLF::0				;Print free cr/lf flag (at column 80)
   264	000247'	000000	000000		P%OPTR::0				;Byte pointer for output buffer
   265	000250'	000000	000000		P%OUTP::0				;Starting address of output buffer
   266	000251'	000000	000000		P%LFGO::0				;Continue after line feed
   267	000252'	000000	000000		P%NOTYP::0				;Prevent terminal output
   268	000253'	000000	000000		P%XOFF::0				;Xoff flag
   269	000254'	000000	000000		P%SAV::	0				;Print temporary save word
   270	000255'	000000	000000		P%PNT::	0				;Print misc control flag
   271	000256'	000000	000000		P%CARCT::0				;Print character position count
   272	000257'	000000	000000		P%DISF::0				;Print disabled flag
   273	000260'	000000	000000		P%INHIBIT::0				;Print inhibit (control-o)
   274	000261'	000000	000000		P%TINH::0				;Inhibit print input checks
   275	000262'	000000	000000		P%SPACE::0				;Print space control
   276	000263'	000000	000000		P%TABF::0				;Tab conversion flag
   277	000264'	000000	000000		P%DVOFF::0				;Logical device inited flag
   278
   279	000265'	000000	000000		P%RADIX::0				;Decimal print radix (^d10)
   280	000266'	000000	000000		P%RADLC::0				;Decimal print leading char (space)
   281	000267'	000000	000000		P%RADCNT::0				;Decimal print leading char count (^d10)
   282
   283	000270'	000000	000000		P%PAX1::0				;If n=0, xct'd after printing cr/lf
   284	000271'	000000	000000		P%UERR::0				;If n=0, xct'd at end of user mode error
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 7
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0053

   285
   286					; ************************************************************
   287					; Typein control storage
   288					; ************************************************************
   289
   290	000272'	000000	000000		T%TWAIT::0				;Type-in wait time
   291	000273'	000000	000000		T%TIMW::0				;Time waited
   292	000274'	000000	000000		T%CHAR::0				;Actual typed in char
   293	000275'	000000	000000		T%CHRIN::0				;Upper cased & parity stripped char
   294	000276'	000000	000000		T%NUMB::0				;Typed in number
   295	000277'	000000	000000		T%DIGIT::0				;-1 If any digit typed
   296	000300'	000000	000000		T%NEG::	0				;Negate flag
   297	000301'	000000	000000		T%CNV::	0				;Decimal convert flag
   298
   299	000302'	000000	000000		T%CDADR::0				;Control-d dispatch address
   300
   301	000303'	000000	000000		T%IPTR::0				;Typein input byte pointer
   302	000304'	000000	000000		T%INP::	0				;Address of typein input buffer
   303
   304	000305'	000000	000000		T%TAX1::0				;If n=0, xct'd at start of altmode switch call
   305	000306'	000000	000000		T%TAX2::0				;If n=0, xct'd at end of altmode switch call
   306
   307	000307'	000000	000000		T%TAX3::0				;If n=0, xct'd at end of altmode ^d
   308
   309					; ************************************************************
   310					; User mode output file information
   311					; ************************************************************
   312
   313	000310'	000000	000000		P%DSKF::0				;Print on the disk
   314	000311'	000000	000000		P%T20::	0				;Print tops-20 file name style
   315	000312'	000000	000000		P%T20P::0				;Print tops-20 pointer to file name
   316	000313'	000000	000000		P%DJFN::0				;Print tops-20 logical device jfn
   317	000314'				P%OHDR::BLOCK	3			;Logical file output buffer header
   318	000317'	000000	000000		P%OUTNM::0				;File name
   319	000320'	000000	000000		P%OUTEX::0				;File name extension
   320	000321'					BLOCK	2
RMTCON DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 8
RELOC	KCM	22-Apr-83 09:26		*RELOC* [KC10] RELOCATABLE CONTROL AND DISPATCH STORAGE                            SEQ 0054

   321
   322					; ************************************************************
   323					; Power fail ac save storage
   324					; ************************************************************
   325
   326	000323'				POWER::	BLOCK	^D16
   327
   328					; ************************************************************
   329					; Pushdown list control information
   330					; ************************************************************
   331
   332	000343'	000000	000000		$PSHER::0				;Inited as (jrst psherr)
   333	000344'	000000	000000		PLIST::	0				;Base pointer (plist-pliste,,plist)
   334	000345'				PLISTS::BLOCK	200
   335	000545'	000000	000000		PLISTE::0				;End of pushdown list
   336
   337					; ************************************************************
   338					; Special future expansion room
   339					; ************************************************************
   340
   341	000546'	000000	000000		$ATOM::	0				;Adr of command atom buffer
   342	000547'	000000	000000		$GTJFNB::0				;Adr of file name block
   343	000550'	000000	000000		$IPAG::	0				;Adr of input page
   344
   345	000551'	000000	000000		T%TERM::0				;Terminal type
   346	000552'	000000	000000		T%TWD::	0				;Terminal width
   347	000553'	000000	000000		T%TLEN::0				;Terminal length
   348
   349	000554'	000000	000000		C%FIRST::0				;If n=0, xct'd before first parse
   350
   351	000555'	000000	000000		U%SVPC::0				;Pc of luuo
   352
   353	000556'	000000	000000		I%L1FL::0				;Tops-20 level 1 interrupt flags
   354	000557'	000000	000000		I%L1PC::0				;Tops-20 level 1 interrupt pc
   355
   356	000560'	000000	000000		I%L2FL::0				;Tops-20 level 2 interrupt flags
   357	000561'	000000	000000		I%L2PC::0				;Tops-20 level 2 interrupt pc
   358
   359	000562'	000000	000000		I%L3FL::0				;Tops-20 level 3 interrupt flags
   360	000563'	000000	000000		I%L3PC::0				;Tops-20 level 3 interrupt pc
   361
   362					; ************************************************************
   363					; End of fixed storage
   364					; ************************************************************
   365
   366	000564'	000000	000000		ENDFIX::0				;End of fixed storage
   367
   368						END

NO ERRORS DETECTED

PROGRAM BREAK IS 000565
CPU TIME USED 00:03.024

127P CORE USED
ABORT	    88#
ABTADR	    87	    88                                                                                                     SEQ 0055
BEGEND	   101#
BEGIN	    62#
C%CCAD	   186#
C%FIRS	   349#
C%PSTK	   185#
CC%FLG	   177#
CC%POS	   181#
CC%PRE	   180#
CD%FLG	   179#
CFM	   147#
CLKCNT	   166#
CLOCKF	   165#
CONSW	   160#
CPOPJ	   106#
CPOPJ1	   105#
CSHFLG	   170#
CSHMEM	   171#
CY%ACT	   184#
CY%FLG	   178#
CY%POS	   183#
CY%PRE	   182#
DDTLNK	    54#
DDTSRT	    79#
DEBUG	    34#
DECVER	     3#	    11	    27	    48	   115
DIAGMN	    66#
E%ACTF	   204#
E%ACTU	   205#
E%CORE	   203#
E%CORF	   202#
E%DISC	   206#
E%ERFL	   201#
E%ERH1	   207#
E%ERH2	   208#
E%ERH3	   209#
E%ERPC	   199#
E%FMT	   200#
E%LUUO	   198#
ENDFIX	   366#
ERMORE	   195#
ERRNBR	   193#
ERRPC	   192#
ERRTLS	   194#
EXCASB	    35#	   116
I%AC0	   220#
I%CHNT	   230#
I%ITRX	   224#
I%ITRY	   225#
I%L1FL	   353#
I%L1PC	   354#
I%L2FL	   356#
I%L2PC	   357#
I%L3FL	   359#                                                                                                            SEQ 0056
I%L3PC	   360#
I%LEVT	   229#
I%PWRX	   226#
I%PWRY	   227#
I%SVAP	   222#
I%SVPI	   221#
INIT	   145#
IPAG	    39#	    48
ITRCH1	   215#
ITRCNT	    85#
LUUO1	   124	   124#	   126
LUUO10	   124	   124#	   130
LUUO11	   124	   124#	   130
LUUO12	   124	   124#	   131
LUUO13	   124	   124#	   131
LUUO14	   124	   124#	   132
LUUO15	   124	   124#	   132
LUUO16	   124	   124#	   133
LUUO17	   124	   124#	   133
LUUO2	   124	   124#	   127
LUUO20	   124	   124#	   134
LUUO21	   124	   124#	   134
LUUO22	   124	   124#	   135
LUUO23	   124	   124#	   135
LUUO24	   124	   124#	   136
LUUO25	   124	   124#	   136
LUUO26	   124	   124#	   137
LUUO27	   124	   124#	   137
LUUO3	   124	   124#	   127
LUUO30	   124	   124#	   138
LUUO31	   124	   124#	   138
LUUO32	   124	   124#	   139
LUUO33	   124	   124#	   139
LUUO4	   124	   124#	   128
LUUO5	   124	   124#	   128
LUUO6	   124	   124#	   129
LUUO7	   124	   124#	   129
M%MUUO	   243#
MAPNEW	   249#
MCNVER	     4#	    11	    27	    48	   115
MEMLOW	   251#
MEMMAP	    37#	   118
MEMSIZ	   252#
MEMTOT	   250#
MODCHK	    53#	    62
MONCTL	   157#
MONFLG	   156#
MONTEN	   158#
MONTYP	   155#
P	   105
P%CARC	   271#
P%DISF	   272#
P%DJFN	   316#                                                                                                            SEQ 0057
P%DSKF	   313#
P%DVOF	   277#
P%ENAB	   259#
P%FCRL	   263#
P%FLAG	   258#
P%FORC	   261#
P%FRCA	   262#
P%INHI	   273#
P%LFGO	   266#
P%NAME	   114#
P%NOTY	   267#
P%OHDR	   317#
P%OPTR	   264#
P%OUTE	   319#
P%OUTN	   318#
P%OUTP	   265#
P%PAX1	   283#
P%PNT	   270#
P%RADC	   281#
P%RADI	   279#
P%RADL	   280#
P%SAV	   269#
P%SPAC	   275#
P%T20	   314#
P%T20P	   315#
P%TABF	   276#
P%TINH	   274#
P%UERR	   284#
P%VER	   115#
P%XOFF	   268#
PAREA1	   112	   113
PASCNT	   161#
PFSTRT	    74#
PG%END	   173#
PGMEND	    38#
PGMNAM	    49#	    53#	   114
PLIST	   333#
PLISTE	   335#
PLISTS	   334#
POWER	   326#
PVPAGI	   169#
RANDBS	   113#
REENTR	    77#
REPTU	   196#
RETURN	    83#
RUNFLG	   162#
S%TOGG	   174#
SADR1	    70	    71
SADR2	    73	    74
SADR3	    76	    77
SBINIT	    81#
SCOPE	   197#
SERNBR	   159#                                                                                                            SEQ 0058
SFSTRT	    71#
START	    49#	    53#	    64
STARTA	    49#	    53#	   102
SUBINI	    53#	    81
SWPTAB	   175#
SYSEXR	    68#
T%CDAD	   299#
T%CHAR	   292#
T%CHRI	   293#
T%CNV	   297#
T%DIGI	   295#
T%INP	   302#
T%IPTR	   301#
T%NEG	   296#
T%NUMB	   294#
T%TAX1	   304#
T%TAX2	   305#
T%TAX3	   307#
T%TERM	   345#
T%TIMW	   291#
T%TLEN	   347#
T%TWAI	   290#
T%TWD	   346#
TESTNB	   164#
TESTPC	   163#
TIMERF	   167#
TLTADR	    90	    91
TMRCNT	   168#
TOTALS	    91#
U%DTBL	   126#
U%ERR	   124	   126	   239#
U%RTX	   238#
U%SVPC	   351#
U%SVUP	   241#
U%SVUU	   240#
U%USRT	   237#
U%UUO	   242#
USER	   154#
USRASB	    36#	   117
$ATOM	   341#
$BEND1	   102#
$BEND2	   103#
$EMODE	   116#
$GTJFN	   342#
$IPAG	   343#
$MMAP	   118#
$ONETM	   172#
$PSHER	   332#
$START	    64#	    66	    68	    79
$UMODE	   117#
ENDPAS	   101
EOPROG	   103                                                                                                             SEQ 0059
NAME	     8#	    11
RTN	   106
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 1
RMTCNP	MAC	10-Jun-85 15:18	                                                                                           SEQ 0060

     1
     2			000000		DECVER==0
     3			000001		MCNVER==1
     4
     5
     6						XLIST
     7						LIST
     8						LALL
     9
    10					NAME	\MCNVER,\DECVER^
    11
    12					TITLE	RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0^
    13
    14					; ****************************************************************
    15					; This "NI SERVER" runs under "TOPS20" only.			 !
    16					; ****************************************************************
    17
    18					;COPYRIGHT 1985
    19					;LARGE SYSTEMS DIAGNOSTICS GROUP
    20					;DIGITAL EQUIPMENT CORPORATION
    21					;MARLBORO, MASS. 01752
    22
    23					;GARY PAPAZIAN
    24
    25					SEARCH	KCUNV,MONSYM,MACSYM,UUOSYM
    26
    27						NOSYM
    28						SALL
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 2
RMTCNP	MAC	10-Jun-85 15:18	                                                                                           SEQ 0061

    29
    30					;Parse.Mac user interface
    31
    32						INTERN	DISABL,ENABLE
    33						INTERN	HELP,PGMHDR,PGMNAM,PGNAME,PROMPT,.QUIT
    34						INTERN	CONECT,SHOW,MAINCM
    35
    36						EXTERN	$ATOM,CFM,CONSW,PRTNBR,TARADH,TARADL,PRHEX,HEX
    37						EXTERN	DBGFLG,LOGFLG,TRCFLG,P%CARC,SBINIT
    38						EXTERN	SPRFLG,T%TWD,TTEXIT,$REMOTE,CTRSTR
    39						EXTERN	START,STARTA,C$QUIT,IPAG,I%L2FL,I%L3FL,I%L1FL
    40						EXTERN	INTAKE,ECHOF,CMFILE,CSB,DIAT20,GTJDEV,GTJDIR
    41						EXTERN	GTJEXT,GTJFIL,GTJFLG,$CCL,RRID,SPR1,SPR4
    42						EXTERN	RESCON,RELCON,RRCT,RCADR,SALLAD,NODSEL
    43						EXTERN	PWFLG,PWORDH,PWORDL
    44
    45					;Data push list definitions
    46
    47			000016			DP=16				;Define dp as data list pointer
    48
    49					DEFINE	PUSHD	(ARG),<			;Push data on data stack
    50						IRP	ARG
    51					<	PUSH	DP,ARG>>
    52
    53					DEFINE	POPD	(ARG),<			;Pop data from data stack
    54						IRP	ARG
    55					<	POP	DP,ARG>>
    56
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 3
RMTCNP	MAC	10-Jun-85 15:18		COMMAND PARSING TABLES                                                             SEQ 0062

    57					SUBTTL	COMMAND PARSING TABLES
    58					;#***********************************************************************
    59					; CMTAB cmd,addr	cmd  = keyword to parse for
    60					;			addr = dispatch address or return value (data)
    61					;#***********************************************************************
    62					;This is the top level command table.
    63
    64	000000'	000014	000014			SCMTAB	MAINCM			;Start command table, top level
    65	000001'	000462'	000101'			CMTAB	CONNECT,CONECT		;Connect (to node/port) command
    66	000002'	000464'	000177'			CMTAB	DISABLE,DISABL		;Disable spear, logging, trace, debug
    67	000003'	000466'	000364'			CMTAB	DISPLAY,DISPLA		;Display spear, log, trace, debug flags
    68	000004'	000470'	000151'			CMTAB	ENABLE,ENABLE		;Enable spear, logging, trace, debug
    69	000005'	000472'	000446'			CMTAB	EXIT,.QUIT		;Command to exit i.E. Quit
    70	000006'	000473'	000263'			CMTAB	HELP,HELP		;Help command
    71	000007'	000474'	000314'			CMTAB	IDENTIFY,REQU		;Request id command
    72	000010'	000476'	000446'			CMTAB	QUIT,.QUIT		;Quit, exit to kcmon
    73	000011'	000477'	000350'			CMTAB	READ-COUNTERS,RDCTRS	;Read counters
    74	000012'	000502'	000226'			CMTAB	REDEFINE,REDEFINE	;Redefine remote tty switch char
    75	000013'	000504'	000336'			CMTAB	SET-PASSWORD,SETPW	;Set password
    76	000014'	000507'	000433'			CMTAB	SHOW,SHOW		;Show local/remote/all node addresses
    77						ECMTAB				;End command table, top level
    78
    79					;This table is used with the 'ENABLE and DISABLE' command.
    80
    81	000015'	000004	000004			SCMTAB	ENATAB			;Start of enable command table
    82	000016'	000510'	000001			CMTAB	DEBUG,1			;Enable debug
    83	000017'	000512'	000002			CMTAB	LOGGING,2		;Enable logging command
    84	000020'	000514'	000003			CMTAB	SPEAR-REPORTING,3	;Enable spear command
    85	000021'	000520'	000004			CMTAB	TRACE,4			;Enable program trace
    86						ECMTAB				;End of enable command table
    87
    88					;These tables are used with the 'CONNECT' command.
    89
    90	000022'	000002	000002			SCMTAB	CONTAB
    91	000023'	000522'	000000			CMTAB	NODE,0			;12 digit hex
    92	000024'	000523'	000001			CMTAB	PORT,1			;0,1,2,3
    93						ECMTAB
    94
    95	000025'	000004	000004			SCMTAB	PRTTAB			;Port 0,1,2,3
    96	000026'	000524'	000000			CMTAB	0,0
    97	000027'	000525'	000001			CMTAB	1,1
    98	000030'	000526'	000002			CMTAB	2,2
    99	000031'	000527'	000003			CMTAB	3,3
   100						ECMTAB
   101
   102					;This table is used with the 'DISPLAY' command
   103
   104	000032'	000005	000005			SCMTAB	DISTAB			;Start of display-address table
   105	000033'	000530'	000000			CMTAB	ALL,0			;Display state of all
   106	000034'	000510'	000001			CMTAB	DEBUG,1			;Display state of debug
   107	000035'	000512'	000002			CMTAB	LOGGING,2		;Display state of logging
   108	000036'	000514'	000003			CMTAB	SPEAR-REPORTING,3	;Display state of spear
   109	000037'	000520'	000004			CMTAB	TRACE,4			;Display state of trace
   110						ECMTAB				;End of display address command table
   111
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 4
RMTCNP	MAC	10-Jun-85 15:18		COMMAND PARSING TABLES                                                             SEQ 0063

   112
   113					; **************************************************************************
   114					; *     Top level command parser  (see COMND JSYS for field/format defs)   *
   115					; **************************************************************************
   116
   117					;The macro used to build the command descriptor block is (cmddb.) And has the
   118					;Following format (type,flags,data,help,default,additional command data block),
   119					;The type field will contain the command function code, the function codes are:
   120					;
   121					;  .Cmkey= 0    ;keyword		.Cmusr= 12   ;user name
   122					;  .Cmnum= 1    ;number			.Cmcma= 13   ;comma
   123					;  .Cmnoi= 2    ;guide (noise) word	.Cmini= 14   ;init line
   124					;  .Cmswi= 3    ;switch			.Cmdev= 16   ;device name
   125					;  .Cmifi= 4    ;input file		.Cmtxt= 17   ;text to action char
   126					;  .Cmofi= 5    ;output file		.Cmqst= 21   ;quoted string
   127					;  .Cmfil= 6    ;general filespec	.Cmuqs= 22   ;unquoted string
   128					;  .Cmfld= 7    ;arbitrary field	.Cmtok= 23   ;token
   129					;  .Cmcfm= 10   ;confirm		.Cmnux= 24   ;number delimited
   130					;  .Cmdir= 11   ;directory name                      ; by non-digit
   131					;
   132					;The flag field will contain one of the following flags or will be represented
   133					;By two commas (,,), this indicates to the macro that this field is blank.
   134					;The flags are:
   135					;		Cm%hpp		;help pointer is present
   136					;		Cm%dpp		;default pointer is present
   137					;		Cm%sdh		;suppress default help message
   138					;
   139					;The data field is dependent on the command function, see tops20 monitor call
   140					;Manual commd jsys v544.  This field may be omitted by using two commas (,,).
   141					;
   142					;The help field points to a message to be printed if the question mark (?)
   143					;Is typed.  This field may be omitted by using two commas (,,).
   144					;
   145					;The default field is pointer to a string to be used if the escape is the first
   146					;Character to be typed.  This field may be omitted by using two commas (,,).
   147					;
   148					;The alternate command block is a pointer to a command block to be parsed if
   149					;The parse failed in the first command block.  This field may be omited.
   150					;
   151					;The function field is always used but not all other fields are necessarily
   152					;Used.  If a field to the right is to be used, the unused fields separating
   153					;The fields must be represented by two commas (,,).
   154					;
   155					;KCUNV.MAC uses the COMND JSYS in the following manner:
   156					;
   157					;	CMD	[CMDDB.(TYPE,FLAGS,DATA,etc)],<text>
   158					;
   159					;Where CMD, CMDDB., <text> are KCUNV functions
   160					;and (type,flags,data,etc) are COMND JSYS fields.
   161					;
   162					;See JSYS, KCMON.MEM, KCUNV,KCSUB, MONSYM, MACSYM, UUOSYM
   163
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 5
RMTCNP	MAC	10-Jun-85 15:18		TOP LEVEL PARSER                                                                   SEQ 0064

   164					SUBTTL	TOP LEVEL PARSER
   165
   166	000040'				PGMNAM:	ASCIZ/
   167	000040'	015 012 075 055 075 	=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   168	000041'	055 075 055 075 055 
   169	000042'	075 055 075 055 075 
   170	000043'	055 075 055 075 055 
   171	000044'	075 055 075 055 075 
   172	000045'	055 075 055 075 055 
   173	000046'	075 055 075 055 075 
   174	000047'	055 075 055 075 055 
   175	000050'	075 055 075 055 075 
   176	000051'	055 075 015 012 174 	| DECSYSTEM 20 NETWORK INTERCONNECT SERVER  |
   177	000052'	040 104 105 103 123 
   178	000053'	131 123 124 105 115 
   179	000054'	040 062 060 040 116 
   180	000055'	105 124 127 117 122 
   181	000056'	113 040 111 116 124 
   182	000057'	105 122 103 117 116 
   183	000060'	116 105 103 124 040 
   184	000061'	123 105 122 126 105 
   185	000062'	122 040 040 174 015 
   186	000063'	012 075 055 075 055 	=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
   187	000064'	075 055 075 055 075 
   188	000065'	055 075 055 075 055 
   189	000066'	075 055 075 055 075 
   190	000067'	055 075 055 075 055 
   191	000070'	075 055 075 055 075 
   192	000071'	055 075 055 075 055 
   193	000072'	075 055 075 055 075 
   194	000073'	055 075 055 075 055 
   195	000074'	075 015 012 000 000 	/
   196
   197	000075'				PGMHDR:	ASCIZ/
   198	000075'	015 012 000 000 000 	/
   199
   200	000076'	62 55 64 43 57 56 	PGNAME:	SIXBIT	/RMTCON/			;Program name
   201
   202	000077'	122 115 124 103 117 	PROMPT:	ASCIZ/RMTCON> /			;Program prompt for top level
   203	000100'	116 076 040 000 000 
   204
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 6
RMTCNP	MAC	10-Jun-85 15:18		CONNECT PORT/NODE COMMAND                                                          SEQ 0065

   205					SUBTTL	CONNECT PORT/NODE COMMAND
   206					; ***********************************************************************
   207					; 1. CONNECT PORT inputs a port number (0-3) & stores it in PRTNBR which
   208					;    is used as the CHANNEL-ID in LLMOP argument blocks.
   209					;
   210					; 2. CONNECT NODE inputs a 12 digit hex number (no spaces allowed) & stores
   211					;    it in TARADH & TARADL which is used as the destination address in the
   212					;    RESERVE CONSOLE argument block & other LLMOP's.
   213					; ***********************************************************************
   214
   215	000101'	400 01 0 00 000000 	CONECT:	CMD	[CMDDB.(.CMKEY,,CONTAB)]
   216	000102'	201 02 0 00 000531'
   217	000103'	037600	000001
   218
   219	000104'	550 01 0 02 000000 		HRRZ	AC1,(AC2)
   220	000105'	254 00 1 01 000106'		JRST	@$CON(AC1)		;Dispatch to port or node
   221
   222	000106'	000000	000122'		$CON:	.CONN
   223	000107'	000000	000110'			.CONP
   224
   225	000110'	201 01 0 00 000533'	.CONP:	GUIDE	<NUMBER>		;Port
   226	000111'	201 02 0 00 000537'
   227	000112'	037600	000001
   228
   229	000113'	400 01 0 00 000000 		CMD	[CMDDB.(.CMKEY,,PRTTAB)]
   230	000114'	201 02 0 00 000541'
   231	000115'	037600	000001
   232
   233	000116'	550 01 0 02 000000 		HRRZ	AC1,(AC2)		;Get port number
   234	000117'	202 01 0 00 000000*		MOVEM	AC1,PRTNBR		;Save
   235	000120'	037 15 0 00 000001 		CMDCFM
   236	000121'	263 17 0 00 000000 		RTN
   237
   238	000122'	201 01 0 00 000543'	.CONN:	GUIDE	<ADDRESS>		;node
   239	000123'	201 02 0 00 000547'
   240	000124'	037600	000001
   241
   242	000125'	400 01 0 00 000000 		CMD	[CMDDB.(.CMFLD,,,<12 DIGIT HEX ADDRESS>)]
   243	000126'	201 02 0 00 000556'
   244	000127'	037600	000001
   245
   246	000130'	260 17 0 00 000000*		GO	HEX			;Input hex digits
   247	000131'	302 04 0 00 000014 		CAIE	AC4,^D12		;12 Digits ?
   248	000132'	260 17 0 00 000564'		CMDERR	<WRONG FORMAT>		; No,report error
   249	000133'	037 15 0 00 000001 		CMDCFM
   250
   251	000134'	202 10 0 00 000000*		MOVEM	AC10,TARADH		;Put node number and entry bit in table
   252	000135'	202 11 0 00 000000*		MOVEM	AC11,TARADL
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 7
RMTCNP	MAC	10-Jun-85 15:18		CONNECT PORT/NODE COMMAND                                                          SEQ 0066

   253
   254	000136'	260 17 0 00 000000*		GO	RESCON			;Go reserve (conect) node
   255	000137'	254 00 0 00 000150'		 JRST	.CONNX			; Cannot reserve, exit
   256
   257	000140'	037 01 0 00 000566'		PMSG	<T[O [D[ISCONNECT & RETURN TO COMMAND MODE, TYPE A SINGLE CONTROL->
   258	000141'	200 00 0 00 000000*		MOVE	TTEXIT
   259	000142'	271 00 0 00 000100 		ADDI	100
   260	000143'	037 12 0 00 000000 		PNTCHR
   261	000144'	332 00 0 00 000000*		SKIPE	DBGFLG			;Debug mode?
   262	000145'	037 01 0 00 000601'		 PMSG	<^L[OCAL ->		; Yes
   263	000146'	037 03 0 00 000001 		PCRLF
   264	000147'	260 17 0 00 000000*		GO	$REMOTE			;Do RCSEND & RCPOLL's (in RMTCNM)
   265
   266	000150'	263 17 0 00 000000 	.CONNX:	RTN
   267
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 8
RMTCNP	MAC	10-Jun-85 15:18		ENABLE COMMAND                                                                     SEQ 0067

   268					SUBTTL	ENABLE COMMAND
   269					;#***********************************************************************
   270					; Enable debug, logging, spear or trace
   271					;#***********************************************************************
   272
   273	000151'	400 01 0 00 000000 	ENABLE:	CMD	[CMDDB.(.CMKEY,,ENATAB)]
   274	000152'	201 02 0 00 000603'
   275	000153'	037600	000001
   276
   277	000154'	550 01 0 02 000000 		HRRZ	AC1,(AC2)		;Set up to go to proper enable routine
   278	000155'	037 15 0 00 000001 		CMDCFM
   279	000156'	254 00 1 01 000157'		JRST	@$ENA(AC1)
   280
   281	000157'	000 00 0 00 000000 	$ENA:	Z
   282	000160'	000000	000164'			EN.DBG				;1
   283	000161'	000000	000166'			EN.LOG				;2
   284	000162'	000000	000173'			EN.SPEAR			;3
   285	000163'	000000	000175'			EN.TRACE			;4
   286
   287	000164'	476 00 0 00 000144*	EN.DBG:	SETOM	DBGFLG			;Enable debug
   288	000165'	263 17 0 00 000000 		RTN
   289
   290	000166'	200 00 0 00 000000*	EN.LOG:	MOVE	AC0,CONSW		;Get console switches
   291	000167'	661 00 0 00 000040 		TLO	AC0,SW.LOG		;Set the log switch
   292	000170'	202 00 0 00 000166*	        MOVEM	AC0,CONSW		;Save the console switches
   293	000171'	476 00 0 00 000000*		SETOM	LOGFLG			;Set enable logging word
   294	000172'	263 17 0 00 000000 		RTN
   295
   296	000173'	476 00 0 00 000000*	EN.SPEAR:SETOM	SPRFLG			;Enable spear
   297	000174'	263 17 0 00 000000 		RTN
   298
   299	000175'	476 00 0 00 000000*	EN.TRACE:SETOM	TRCFLG			;Enable trace
   300	000176'	263 17 0 00 000000 		RTN
   301
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 9
RMTCNP	MAC	10-Jun-85 15:18		DISABLE COMMAND                                                                    SEQ 0068

   302					SUBTTL	DISABLE COMMAND
   303					;#***********************************************************************
   304					; Disable debug, logging, spear or trace
   305					;#***********************************************************************
   306
   307	000177'	400 01 0 00 000000 	DISABL:	CMD	[CMDDB.(.CMKEY,,ENATAB)]
   308	000200'	201 02 0 00 000603'
   309	000201'	037600	000001
   310
   311	000202'	550 01 0 02 000000 		HRRZ	AC1,(AC2)		;Set up to go to proper enable routine
   312	000203'	037 15 0 00 000001 		CMDCFM
   313	000204'	254 00 1 01 000205'		JRST	@$DIS(AC1)
   314
   315	000205'	000 00 0 00 000000 	$DIS:	Z
   316	000206'	000000	000212'			DA.DBG				;1
   317	000207'	000000	000214'			DA.LOG				;2
   318	000210'	000000	000222'			DA.SPEAR			;3
   319	000211'	000000	000224'			DA.TRACE			;4
   320
   321	000212'	402 00 0 00 000164*	DA.DBG:	SETZM	DBGFLG			;Disable debug
   322	000213'	263 17 0 00 000000 		RTN
   323
   324	000214'	200 00 0 00 000170*	DA.LOG:	MOVE	AC0,CONSW		;Get console switches
   325	000215'	621 00 0 00 000040 		TLZ	AC0,SW.LOG		;Clear the log switch
   326	000216'	202 00 0 00 000214*	        MOVEM	AC0,CONSW		;Save the console switches
   327	000217'	402 00 0 00 000171*		SETZM	LOGFLG			;Clear enable logging word
   328
   329	000220'	037 05 0 00 000003 		DROPDV				;Close the device
   330	000221'	263 17 0 00 000000 		RTN
   331
   332	000222'	402 00 0 00 000173*	DA.SPEAR:SETZM	SPRFLG			;Disable spear
   333	000223'	263 17 0 00 000000 		RTN
   334
   335	000224'	402 00 0 00 000175*	DA.TRACE:SETZM	TRCFLG			;Disable trace
   336	000225'	263 17 0 00 000000 		RTN
   337
   338
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 10
RMTCNP	MAC	10-Jun-85 15:18		REDEFINE COMMAND                                                                   SEQ 0069

   339					SUBTTL	REDEFINE COMMAND
   340					;#***************************************************************************
   341					;Redefine the "EXIT CHAR" to be any of those listed below.
   342					;note, the entire word "CONTROL" must be entered.
   343					;#***************************************************************************
   344
   345	000226'	201 01 0 00 000605'	REDEFINE:GUIDE	<TTY EXIT CHARACTER>
   346	000227'	201 02 0 00 000613'
   347	000230'	037600	000001
   348
   349	000231'	201 01 0 00 000615'		CMD	[CMDDB.(.CMKEY,,.TSWC,,,CFM)],<NOT A VALID SWITCH CHARACTER>
   350	000232'	201 02 0 00 000623'
   351	000233'	037600	000001
   352	000234'	306 03 0 00 000000*		CAIN	AC3,CFM
   353	000235'	254 00 0 00 000255'		JRST	REDEF1			;Cr only
   354
   355	000236'	550 06 0 02 000000 		HRRZ	AC6,(AC2)		;Get char
   356
   357	000237'	037 15 0 00 000001 		CMDCFM
   358
   359	000240'	202 06 0 00 000141*		MOVEM	AC6,TTEXIT		;Set it up
   360	000241'	263 17 0 00 000000 		RTN
   361
   362	000242'	000012	000012			SCMTAB	.TSWC
   363	000243'	000625'	000001			CMTAB	CONTROL-A,"A"-100
   364	000244'	000627'	000004			CMTAB	CONTROL-D,"D"-100
   365	000245'	000631'	000005			CMTAB	CONTROL-E,"E"-100
   366	000246'	000633'	000006			CMTAB	CONTROL-F,"F"-100
   367	000247'	000635'	000016			CMTAB	CONTROL-N,"N"-100
   368	000250'	000637'	000020			CMTAB	CONTROL-P,"P"-100
   369	000251'	000641'	000026			CMTAB	CONTROL-V,"V"-100
   370	000252'	000643'	000027			CMTAB	CONTROL-W,"W"-100
   371	000253'	000645'	000030			CMTAB	CONTROL-X,"X"-100
   372	000254'	000647'	000032			CMTAB	CONTROL-Z,"Z"-100
   373						ECMTAB
   374
   375	000255'	037 01 0 00 000651'	REDEF1:	PMSG	<TTY E[XIT CHARACTER = CONTROL->
   376	000256'	200 00 0 00 000240*		MOVE	TTEXIT
   377	000257'	271 00 0 00 000100 		ADDI	100
   378	000260'	037 12 0 00 000000 		PNTCHR
   379	000261'	037 03 0 00 000001 		PCRLF
   380	000262'	263 17 0 00 000000 		RTN
   381
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 11
RMTCNP	MAC	10-Jun-85 15:18		HELP COMMAND                                                                       SEQ 0070

   382					SUBTTL	HELP COMMAND
   383					;#***********************************************************************
   384					; To assist user in the options available
   385					;#***********************************************************************
   386
   387	000263'	201 01 0 00 000657'	HELP:	GUIDE	<ABOUT A COMMAND, (* FOR ALL)>
   388	000264'	201 02 0 00 000667'
   389	000265'	037600	000001
   390
   391	000266'	400 01 0 00 000000 		CMD	[CMDDB.(.CMTXT)]
   392	000267'	201 02 0 00 000671'
   393	000270'	037600	000001
   394
   395	000271'	200 06 0 00 000673'		MOVE	AC6,[POINT 7,HLPBUF]	;Get pointer to help buffer
   396	000272'	201 07 1 00 000000*		MOVEI	AC7,@$ATOM		;Get the address of the atom buffer
   397	000273'	200 01 0 00 000674'		MOVE	AC1,[POINT 7,(AC7)]	;Get pointer to atom buffer
   398
   399	000274'	134 00 0 00 000001 		ILDB	AC0,AC1			;Get first character
   400	000275'	136 00 0 00 000006 		IDPB	AC0,AC6			;Put it in help buffer
   401	000276'	326 00 0 00 000274'		JUMPN	AC0,.-2			;Do till null
   402
   403	000277'	037 15 0 00 000001 		CMDCFM
   404
   405	000300'	201 00 0 00 000305'		MOVEI	AC0,HLPFIL		;Get pointer to help file
   406	000301'	201 01 0 00 000307'		MOVEI	AC1,HLPBUF		;Get pointer to help buffer
   407	000302'	037 16 0 00 000004 		FHELP				;Go provide requested help
   408
   409	000303'	037 15 0 00 000004 		FRESET				;Reset the help file
   410
   411	000304'	263 17 0 00 000000 		RTN
   412
   413	000305'	62 55 64 43 57 56 	HLPFIL:	SIXBIT	/RMTCON/			;Name of help file
   414	000306'	50 54 60 00 00 00 		SIXBIT	/HLP/			;Extension of help file
   415
   416	000307'				HLPBUF:	BLOCK	^D5			;Buffer for help request
   417
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 12
RMTCNP	MAC	10-Jun-85 15:18		REQUEST ID COMMAND                                                                 SEQ 0071

   418					SUBTTL	REQUEST ID COMMAND
   419					;#***********************************************************************
   420					;Enter via "IDENTIFY" (addr) Command.
   421					;Node does not have to be selected (reserved).
   422					;The req id will return info (status) on desired node.
   423					;#***********************************************************************
   424
   425	000314'	201 01 0 00 000675'	REQU:	GUIDE	<NODE>
   426	000315'	201 02 0 00 000700'
   427	000316'	037600	000001
   428
   429	000317'	400 01 0 00 000000 		CMD	[CMDDB.(.CMFLD,,,<12 DIGIT HEX ADDRESS>)]
   430	000320'	201 02 0 00 000556'
   431	000321'	037600	000001
   432
   433	000322'	260 17 0 00 000130*		GO	HEX			;Input hex digits
   434	000323'	302 04 0 00 000014 		CAIE	AC4,^D12		;12 Digits ?
   435	000324'	260 17 0 00 000564'		CMDERR	<WRONG FORMAT>		; No,report error
   436	000325'	037 15 0 00 000001 		CMDCFM
   437
   438	000326'	200 00 0 00 000224*		MOVE	AC0,TRCFLG		;See what flag is
   439	000327'	322 00 0 00 000332'		JUMPE	AC0,REQU1		;If zero, force a trace then clear it
   440	000330'	260 17 0 00 000000*		GO	RRID			;Do Req-ID for this node
   441	000331'	254 00 0 00 000335'		JRST	REQUX
   442
   443	000332'	476 00 0 00 000326*	REQU1:	SETOM	TRCFLG			;Force trace
   444	000333'	260 17 0 00 000330*		GO	RRID			;Do request id for this node
   445	000334'	402 00 0 00 000332*		SETZM	TRCFLG			;Clear trace
   446	000335'	263 17 0 00 000000 	REQUX:	RTN
   447
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 13
RMTCNP	MAC	10-Jun-85 15:18		SET PASSWORD                                                                       SEQ 0072

   448					SUBTTL	SET PASSWORD
   449					;#************************************************************************
   450					;Enter via "SET-PASSWORD"  command.
   451					;Take up to 16 hex digits & store in PWORDH/L.
   452					;The Password is used in RCRBT & RCRSV
   453					;#************************************************************************
   454
   455	000336'	400 01 0 00 000000 	SETPW:	CMD	[CMDDB.(.CMFLD,,,<UP TO 16 HEX DIGITS>)]
   456	000337'	201 02 0 00 000706'
   457	000340'	037600	000001
   458
   459	000341'	476 00 0 00 000000*		SETOM	PWFLG			;Doing password flag
   460	000342'	260 17 0 00 000322*		GO	HEX			;Input hex digits
   461	000343'	037 15 0 00 000001 		CMDCFM
   462	000344'	202 10 0 00 000000*		MOVEM	AC10,PWORDH		;Hi = bytes 7,6,5,4,z
   463	000345'	202 11 0 00 000000*		MOVEM	AC11,PWORDL		;Lo = bytes 3,2,1,0,z
   464	000346'	402 00 0 00 000341*		SETZM	PWFLG			;Done
   465	000347'	263 17 0 00 000000 		RTN
   466
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 14
RMTCNP	MAC	10-Jun-85 15:18		SET PASSWORD                                                                       SEQ 0073

   467
   468					SUBTTL	READ COUNTERS COMMAND
   469					;#*************************************************************************
   470					;Enter via "READ-COUNTERS" (addr) Command.
   471					;Node does not have to be selected (reserved).
   472					;The counter information will be returned on the desired node.
   473					;#*************************************************************************
   474
   475	000350'	201 01 0 00 000675'	RDCTRS:	GUIDE	<NODE>
   476	000351'	201 02 0 00 000700'
   477	000352'	037600	000001
   478
   479	000353'	400 01 0 00 000000 		CMD	[CMDDB.(.CMFLD,,,<12 DIGIT HEX ADDRESS>)]
   480	000354'	201 02 0 00 000556'
   481	000355'	037600	000001
   482
   483	000356'	260 17 0 00 000342*		GO	HEX			;Input hex digits
   484	000357'	302 04 0 00 000014 		CAIE	AC4,^D12		;12 Digits ?
   485	000360'	260 17 0 00 000564'		CMDERR	<WRONG FORMAT>		; No,report error
   486
   487	000361'	037 15 0 00 000001 		CMDCFM
   488
   489	000362'	260 17 0 00 000000*		GO	RRCT			;Do read counters for this node
   490	000363'	263 17 0 00 000000 		RTN
   491
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 15
RMTCNP	MAC	10-Jun-85 15:18		DISPLAY COMMAND                                                                    SEQ 0074

   492					SUBTTL	DISPLAY COMMAND
   493					;#****************************************************************************
   494					;Display state (enabled/disabled) of debug, logging, spear reporting & trace.
   495					;#****************************************************************************
   496
   497	000364'	201 01 0 00 000711'	DISPLA:	GUIDE	<CURRENT STATE OF>	;Noise word for show command
   498	000365'	201 02 0 00 000717'
   499	000366'	037600	000001
   500
   501	000367'	400 01 0 00 000000 		CMD	[CMDDB.(.CMKEY,,DISTAB)]
   502	000370'	201 02 0 00 000721'
   503	000371'	037600	000001
   504
   505	000372'	550 01 0 02 000000 		HRRZ	AC1,(AC2)
   506	000373'	037 15 0 00 000001 		CMDCFM
   507	000374'	254 00 1 01 000375'		JRST	@$DISP(AC1)		;Go display it
   508
   509	000375'	000000	000402'		$DISP:	.$ALL				;0
   510	000376'	000000	000414'			.D$DBG				;1
   511	000377'	000000	000407'			.D$LOG				;2
   512	000400'	000000	000421'			.D$SPE				;3
   513	000401'	000000	000426'			.D$TRC				;4
   514
   515	000402'	260 17 0 00 000414'	.$ALL:	GO	.D$DBG			;Display debug
   516	000403'	260 17 0 00 000407'		GO	.D$LOG			;Display logging
   517	000404'	260 17 0 00 000421'		GO	.D$SPE			;Display spear
   518	000405'	260 17 0 00 000426'		GO	.D$TRC			;Display trace
   519	000406'	263 17 0 00 000000 		RTN
   520
   521	000407'	336 00 0 00 000217*	.D$LOG:	SKIPN	LOGFLG			;Is logging enabled ?
   522	000410'	037 01 0 00 000723'		PMSG	<L[OGGING IS DISABLED^>
   523	000411'	332 00 0 00 000407*		SKIPE	LOGFLG
   524	000412'	037 01 0 00 000727'		PMSG	<L[OGGING IS ENABLED^>
   525	000413'	263 17 0 00 000000 		RTN
   526
   527	000414'	336 00 0 00 000212*	.D$DBG:	SKIPN	DBGFLG			;Is debug enabled ?
   528	000415'	037 01 0 00 000733'		PMSG	<P[ROGRAM [DEBUG[ IS DISABLED^>
   529	000416'	332 00 0 00 000414*		SKIPE	DBGFLG
   530	000417'	037 01 0 00 000740'		PMSG	<P[ROGRAM [DEBUG[ IS ENABLED^>
   531	000420'	263 17 0 00 000000 		RTN
   532
   533	000421'	336 00 0 00 000222*	.D$SPE:	SKIPN	SPRFLG			;Is spear enabled ?
   534	000422'	037 01 0 00 000745'		PMSG	<R[EPORTS TO [SPEAR [ARE DISABLED^>
   535	000423'	332 00 0 00 000421*		SKIPE	SPRFLG
   536	000424'	037 01 0 00 000753'		PMSG	<R[EPORTS TO [SPEAR [ARE ENABLED^>
   537	000425'	263 17 0 00 000000 		RTN
   538
   539	000426'	336 00 0 00 000334*	.D$TRC:	SKIPN	TRCFLG			;Is trace enabled ?
   540	000427'	037 01 0 00 000761'		PMSG	<P[ROGRAM [TRACE [IS DISABLED^>
   541	000430'	332 00 0 00 000426*		SKIPE	TRCFLG
   542	000431'	037 01 0 00 000766'		PMSG	<P[ROGRAM [TRACE [IS ENABLED^>
   543	000432'	263 17 0 00 000000 		RTN
   544
RMTCNP DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 16
RMTCNP	MAC	10-Jun-85 15:18		SHOW COMMAND                                                                       SEQ 0075

   545					SUBTTL	SHOW COMMAND
   546					;#*****************************************************************************
   547					; Show the LOCAL node & all remote node addresses on network.
   548					;#*****************************************************************************
   549
   550	000433'	201 01 0 00 000773'	SHOW:	GUIDE	<NODE ADDRESSES ON NETWORK>
   551	000434'	201 02 0 00 001003'
   552	000435'	037600	000001
   553	000436'	037 15 0 00 000001 		CMDCFM
   554										; LOCAL node address
   555	000437'	200 00 0 00 000430*		MOVE	AC0,TRCFLG		;Save TRACE flag
   556	000440'	476 00 0 00 000437*		SETOM	TRCFLG			;Force TRACE
   557	000441'	260 17 0 00 000000*		GO	RCADR			;Do the LLMOP to read local node addr
   558	000442'	600 00 0 00 000000 		 NOP				; error return
   559	000443'	202 00 0 00 000440*		MOVEM	AC0,TRCFLG		;Restore TRACE
   560
   561	000444'	260 17 0 00 000000*		GO	SALLAD			;All REMOTE NODE addresses on network
   562	000445'	263 17 0 00 000000 		RTN
   563
   564
   565
   566
   567					;#**************************************************************************
   568					;* QUIT command - Exit this program (NI SERVER) & return to system monitor.
   569					;#**************************************************************************
   570
   571	000446'	201 01 0 00 001005'	.QUIT:	GUIDE	<TO MONITOR>		;Noise word for quit command
   572	000447'	201 02 0 00 001012'
   573	000450'	037600	000001
   574	000451'	037 15 0 00 000001 		CMDCFM				;Expect a carriage return here
   575
   576	000452'	260 17 0 00 000000*		GO	CTRSTR			;Restore controlling terminal
   577
   578	000453'	260 17 0 00 000000*		GO	SPR4			;Go make a spear entry for this
   579										; Diagnostic exit
   580	000454'	200 00 0 00 000216*		MOVE	AC0,CONSW		;Get console switches
   581	000455'	621 00 0 00 000040 		TLZ	AC0,SW.LOG		;Clear the log switch
   582	000456'	202 00 0 00 000454*	        MOVEM	AC0,CONSW		;Save the console switches
   583	000457'	402 00 0 00 000411*		SETZM	LOGFLG			;Clear enable logging word
   584	000460'	037 05 0 00 000003 		DROPDV				;Close the device
   585	000461'	254 00 1 00 000000*		JRST	@C$QUIT			;Quit through kcsub
   586
   587						END

NO ERRORS DETECTED

PROGRAM BREAK IS 001014
CPU TIME USED 00:02.682

130P CORE USED
AC0	   290	   291	   292	   324	   325	   326	   399	   400	   401	   405	   438	   439	   555	   559
	   580	   581	   582                                                                                             SEQ 0076
AC1	   215	   219	   220	   225	   229	   233	   234	   238	   242	   248	   273	   277	   279	   307
	   311	   313	   345	   349	   387	   391	   397	   399	   406	   425	   429	   435	   455	   475
	   479	   485	   497	   501	   505	   507	   550	   571
AC10	   251	   462
AC11	   252	   463
AC2	   216	   219	   226	   230	   233	   239	   243	   274	   277	   308	   311	   346	   350	   355
	   388	   392	   426	   430	   456	   476	   480	   498	   502	   505	   551	   572
AC3	   352
AC4	   247	   434	   484
AC6	   355	   359	   395	   400
AC7	   396	   397
C$QUIT	    39#	   585
CFM	    36#	   350	   352
CM%HPP	   243	   430	   456	   480
CMFILE	    40#
CONECT	    34	    65	   215#
CONSW	    36#	   290	   292	   324	   326	   580	   582
CONTAB	    90#	    93	   216
CSB	    40#
CTRSTR	    38#	   576
DA.DBG	   316	   321#
DA.LOG	   317	   324#
DA.SPE	   318	   332#
DA.TRA	   319	   335#
DBGFLG	    37#	   261	   287	   321	   527	   529
DECVER	     2#	    10
DIAT20	    40#
DISABL	    32	    66	   307#
DISPLA	    67	   497#
DISTAB	   104#	   110	   502
DP	    47#
ECHOF	    40#
EN.DBG	   282	   287#
EN.LOG	   283	   290#
EN.SPE	   284	   296#
EN.TRA	   285	   299#
ENABLE	    32	    68	   273#
ENATAB	    81#	    86	   274	   308
GTJDEV	    40#
GTJDIR	    40#
GTJEXT	    41#
GTJFIL	    41#
GTJFLG	    41#
HELP	    33	    70	   387#
HEX	    36#	   246	   433	   460	   483
HLPBUF	   395	   406	   416#
HLPFIL	   405	   413#
I%L1FL	    39#
I%L2FL	    39#
I%L3FL	    39#
INTAKE	    40#
IPAG	    39#
L..TSW	   362	   373#                                                                                                    SEQ 0077
L.CONT	    90	    93#
L.DIST	   104	   110#
L.ENAT	    81	    86#
L.MAIN	    64	    77#
L.PRTT	    95	   100#
LOGFLG	    37#	   293	   327	   521	   523	   583
MAINCM	    34	    64#	    77
MCNVER	     3#	    10
NODSEL	    42#
P%CARC	    37#
PGMHDR	    33	   197#
PGMNAM	    33	   166#
PGNAME	    33	   200#
PRHEX	    36#
PROMPT	    33	   202#
PRTNBR	    36#	   234
PRTTAB	    95#	   100	   230
PWFLG	    43#	   459	   464
PWORDH	    43#	   462
PWORDL	    43#	   463
RCADR	    42#	   557
RDCTRS	    73	   475#
REDEF1	   353	   375#
REDEFI	    74	   345#
RELCON	    42#
REQU	    71	   425#
REQU1	   439	   443#
REQUX	   441	   446#
RESCON	    42#	   254
RRCT	    42#	   489
RRID	    41#	   440	   444
SALLAD	    42#	   561
SBINIT	    37#
SETPW	    75	   455#
SHOW	    34	    76	   550#
SPR1	    41#
SPR4	    41#	   578
SPRFLG	    38#	   296	   332	   533	   535
START	    39#
STARTA	    39#
SW.LOG	   291	   325	   581
T%TWD	    38#
TARADH	    36#	   251
TARADL	    36#	   252
TRCFLG	    37#	   299	   335	   438	   443	   445	   539	   541	   555	   556	   559
TTEXIT	    38#	   258	   359	   376
$ATOM	    36#	   396
$CCL	    41#
$CON	   220	   222#
$DIS	   313	   315#
$DISP	   507	   509#
$ENA	   279	   281#
$REMOT	    38#	   264                                                                                                     SEQ 0078
.$ALL	   509	   515#
..XX	   216#	   216	   226#	   226	   230#	   230	   239#	   239	   243#	   243	   274#	   274	   308#	   308
	   346#	   346	   350#	   350	   388#	   388	   392#	   392	   426#	   426	   430#	   430	   456#	   456
	   476#	   476	   480#	   480	   498#	   498	   502#	   502	   551#	   551	   572#	   572
.CMFLD	   243	   430	   456	   480
.CMKEY	   216	   230	   274	   308	   350	   502
.CMNOI	   226	   239	   346	   388	   426	   476	   498	   551	   572
.CMTXT	   392
.CONN	   222	   238#
.CONNX	   255	   266#
.CONP	   223	   225#
.D$DBG	   510	   515	   527#
.D$LOG	   511	   516	   521#
.D$SPE	   512	   517	   533#
.D$TRC	   513	   518	   539#
.QUIT	    33	    69	    72	   571#
.TSWC	   350	   362#	   373
CMD	   215	   225	   229	   238	   242	   273	   307	   345	   349	   387	   391	   425	   429	   455
	   475	   479	   497	   501	   550	   571                                                                     SEQ 0079
CMDCFM	   235	   249	   278	   312	   357	   403	   436	   461	   487	   506	   553	   574
CMDDB.	   216	   226	   230	   239	   243	   274	   308	   346	   350	   388	   392	   426	   430	   456
	   476	   480	   498	   502	   551	   572
CMDERR	   248	   435	   485
CMTAB	    65	    66	    67	    68	    69	    70	    71	    72	    73	    74	    75	    76	    82	    83
	    84	    85	    91	    92	    96	    97	    98	    99	   105	   106	   107	   108	   109	   363
	   364	   365	   366	   367	   368	   369	   370	   371	   372
DROPDV	   329	   584
ECMTAB	    65#	    77	    82#	    86	    91#	    93	    96#	   100	   105#	   110	   363#	   373
FHELP	   407
FRESET	   409
GO	   246	   248	   254	   264	   433	   435	   440	   444	   460	   483	   485	   489	   515	   516
	   517	   518	   557	   561	   576	   578
GUIDE	   225	   238	   345	   387	   425	   475	   497	   550	   571
NAME	     7#	    10
NOP	   558
PCRLF	   263	   379
PMSG	   257	   262	   375	   522	   524	   528	   530	   534	   536	   540	   542
PNTCHR	   260	   378
POPD	    53#
PSIXM	   257	   262	   375	   522	   524	   528	   530	   534	   536	   540	   542
PUSHD	    49#
RTN	   236	   266	   288	   294	   297	   300	   322	   330	   333	   336	   360	   380	   411	   446
	   465	   490	   519	   525	   531	   537	   543	   562
SCMTAB	    64	    81	    90	    95	   104	   362
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 1
RMTCNM	MAC	10-Jun-85 15:20		RMTCNM                                                                             SEQ 0080

     1					SUBTTL	RMTCNM
     2
     3			000000		DECVER==0
     4			000001		MCNVER==1
     5
     6
     7						XLIST
     8						LIST
     9						LALL
    10
    11					NAME	\MCNVER,\DECVER^
    12
    13					TITLE	RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0^
    14
    15					;#**********************************************************************
    16					; This "NI SERVER" runs under "TOPS20" only.
    17					;#**********************************************************************
    18
    19					;COPYRIGHT 1985
    20					;LARGE SYSTEMS DIAGNOSTICS GROUP
    21					;DIGITAL EQUIPMENT CORPORATION
    22					;MARLBORO, MASS. 01752
    23
    24					;GARY PAPAZIAN
    25
    26						NOSYM
    27					SEARCH	KCUNV,MONSYM,MACSYM,UUOSYM
    28						SALL
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 2
RMTCNM	MAC	10-Jun-85 15:20		RMTCNM                                                                             SEQ 0081

    29
    30					INTERN	LOGFLG,SPRFLG,TRCFLG,DBGFLG,RRID,SPR1,SPR4
    31					INTERN	HEX,PRHEX,PRTNBR,TARADH,TARADL,TTEXIT,$REMOTE,CTRSTR
    32					INTERN	RESCON,RELCON,RRCT,RCADR,SALLAD,NODSEL
    33					INTERN	PWFLG,PWORDH,PWORDL
    34
    35					EXTERN	TESTPC,ATOM,C$QUIT,CONSW,P%T20,P%T20P,C%FIRST,START
    36					EXTERN	P%DJFN
    37
    38					;Note: Z:<CUSP10>PARAM.KLM contains equates such as CR, XON, XOFF etc.
    39
    40					;Data stack definitions
    41
    42			000016			DP=16				;Define dp as data stack pointer
    43
    44					DEFINE	PUSHD	(ARG),<			;Push data on data stack
    45						IRP	ARG
    46					<	PUSH	DP,ARG>>
    47
    48					DEFINE	POPD	(ARG),<			;Pop data from data stack
    49						IRP	ARG
    50					<	POP	DP,ARG>>
    51
    52		320740	000025'		OPDEF	ERJSYS	[ERCAL	$ERJSYS]	;Jsys error reporter
    53
    54
    55			003720		BUFSIZ=^D2000				;Max Command/Response buffer size
    56
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 3
RMTCNM	MAC	10-Jun-85 15:20		INITIAL START UP                                                                   SEQ 0082

    57					SUBTTL	INITIAL START UP
    58					;#****************************************************************************
    59					;  Set up "C%FIRST" so that kcsub will execute "INITIA" code before prompting.
    60					;#****************************************************************************
    61
    62	000000'	200 00 0 00 015642'	SETUP:	MOVE	AC0,[GO	INITIA]		;Get initialization address
    63	000001'	202 00 0 00 000000*		MOVEM	AC0,C%FIRST		;Store it where kcsub can find it
    64	000002'	254 00 0 00 000000*		JRST	START			;Do the initialization
    65
    66					; This code is executed in startup before prompting occurs.
    67
    68	000003'	200 16 0 00 015643'	INITIA:	MOVE	DP,[IOWD STKLEN,DSTK]	;Set up the data stack pointer
    69
    70	000004'	332 00 0 00 015073'		SKIPE	ONETIM			;Skip if first through this code
    71	000005'	254 00 0 00 000012'		 JRST	INPEX			; Not first time
    72	000006'	476 00 0 00 015073'		SETOM	ONETIM			;Mark that this code is executed
    73	000007'	476 00 0 00 000000*		SETOM	P%T20
    74	000010'	201 00 0 00 000020'		MOVEI	AC0,LOGNAM		;Get address of the logname to use
    75	000011'	202 00 0 00 000000*		MOVEM	AC0,P%T20P		;Save it
    76
    77	000012'	037 01 0 00 015644'	INPEX:	PMSG	<F[OR HELP, TYPE "[HELP" [AFTER THE PROGRAM PROMPT^>
    78	000013'	260 17 0 00 000373'		GO	CTSAVE			;Save controlling terminal parameters
    79	000014'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Process handle
    80	000015'	200 02 0 00 015655'		MOVE	AC2,[1B<.TICTI>]	;Enable all type-in
    81	000016'	104 00 0 00 000174 		STIW				;Set Terminal Interrupt Word to
    82	000017'	263 17 0 00 000000 		RTN				; allow ^C exit at any time to monitor
    83
    84	000020'	104 123 113 072 122 	LOGNAM:	ASCIZ/DSK:REMOTE.LOG/
    85	000021'	105 115 117 124 105 
    86	000022'	056 114 117 107 000 
    87
    88			015656'		T=SIXBTZ<NI SERVER>
    89
    90	000023'	000000	000000		PWFLG:	0				;When set, "HEX" will rejustify for
    91										;PASSWORD & not for ADDRESS
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 4
RMTCNM	MAC	10-Jun-85 15:20		INITIAL START UP                                                                   SEQ 0083

    92
    93					;#**********************************************************************
    94					; If data stack push down overflow occurs, program will come here.
    95					;#**********************************************************************
    96
    97	000024'	037200	015660'		DSERR:	FATALP	<^DATA STACK PUSH DOWN LIST OVERFLOW^>
    98
    99	000025'	037 01 0 00 015667'	$ERJSYS:	PMSG	<^? JSYS E[RROR AT >
   100	000026'	262 17 0 00 000000 		GETIT	AC0
   101	000027'	037 06 0 00 000000 		PNT6
   102	000030'	037 01 0 00 015673'		PMSG	< - >
   103
   104	000031'	561 01 0 00 000000*		HRROI	AC1,ATOM
   105	000032'	525 02 0 00 400000 		HRLOI	AC2,.FHSLF		;Get system error string
   106	000033'	400 03 0 00 000000 		SETZ	AC3,
   107	000034'	104 00 0 00 000011 		ERSTR
   108	000035'	104 00 0 00 000170 		 HALTF
   109	000036'	104 00 0 00 000170 		 HALTF
   110
   111	000037'	037 00 0 00 000031*		PNTMSG	ATOM
   112	000040'	037 03 0 00 000001 		PCRLF
   113	000041'	104 00 0 00 000170 		HALTF
   114	000042'	254 00 0 00 000002*		JRST	START
   115
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 5
RMTCNM	MAC	10-Jun-85 15:20		REMOTE TERMINAL OPERATION                                                          SEQ 0084

   116					SUBTTL	REMOTE TERMINAL OPERATION
   117					;#****************************************************************************
   118					; $REMOTE subroutine - Entered from "CONNECT" in RMTCNP.
   119					;#****************************************************************************
   120
   121	000043'	402 00 0 00 000452'	$REMOTE:SETZM	IBUFCT			;Init terminal input buffer char ctr
   122	000044'	402 00 0 00 000453'		SETZM	OBUFCT			;Init terminal output buffer char ctr
   123
   124	000045'	402 00 0 00 000454'		SETZM	TTIBUF			;Clear buffers (helps debug)
   125	000046'	200 01 0 00 015674'		MOVE	AC1,[TTIBUF,,TTIBUF+1]	;Source,,Dest
   126	000047'	251 01 0 00 010313'		BLT	AC1,TABLEN
   127
   128	000050'	402 00 0 00 000441'		SETZM	XOFFLG			;XOFF flag
   129	000051'	402 00 0 00 000442'		SETZM	BRKFLG			;BREAK flag
   130	000052'	402 00 0 00 000443'		SETZM	CHRFLG			;Character received flag
   131	000053'	402 00 0 00 000444'		SETZM	TIMINT			;Timer interrupt
   132	000054'	402 00 0 00 000445'		SETZM	EXTFLG			;Exit character received flag
   133	000055'	402 00 0 00 000446'		SETZM	MNOFLG			;Msg number flag used in RCSND & RCPOL
   134	000056'	402 00 0 00 015324'		SETZM	CMDPND			;Command pending flag
   135
   136	000057'	260 17 0 00 000415'		GO	INITIM			;Initialize reservation timer
   137
   138					; SETUP TERMINAL
   139					;#**************************
   140
   141	000060'	201 01 0 00 777777 	REM1:	MOVEI	AC1,.CTTRM		;Specified termimal
   142	000061'	104 00 0 00 000107 		RFMOD				; read its JFN mode word
   143	000062'	202 02 0 00 000437'		MOVEM	AC2,TTMOD		; & save it (restored in REMX)
   144	000063'	620 02 0 00 004300 		TRZ	AC2,1B24!3B29		;change to: 7 bit in/out, echos off,
   145										; no format control, no translation
   146	000064'	104 00 0 00 000110 		SFMOD				;Set program related modes for
   147										; specified terminal
   148	000065'	201 01 0 00 400000 	REM3:	MOVEI	AC1,.FHSLF		;Process handle
   149	000066'	104 00 0 00 000173 		RTIW				;Read terminal interrupt word
   150	000067'	202 02 0 00 000440'		MOVEM	AC2,TTIWD		; & save it (restored in REMX)
   151	000070'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Process handle
   152	000071'	200 02 0 00 015655'		MOVE	AC2,[1B<.TICTI>]	;All type in
   153	000072'	104 00 0 00 000174 		STIW				;Set modified terminal interr word
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 6
RMTCNM	MAC	10-Jun-85 15:20		REMOTE TERMINAL OPERATION                                                          SEQ 0085

   154
   155					; SETUP INTERRUPTS
   156					;#***********************
   157
   158	000073'	201 01 0 00 400000 	REM6:	MOVEI	AC1,.FHSLF		;Current process handle
   159	000074'	200 02 0 00 015675'		MOVE	AC2,[LEVTAB,,CHNTAB]	;interrupt tables
   160	000075'	104 00 0 00 000125 		SIR				;Set chan & priority level table addr
   161										; for current process
   162	000076'	104 00 0 00 000126 		EIR				;Enable interrupt system
   163
   164	000077'	200 01 0 00 015676'		MOVE	AC1,[.TICTI,,2]		;Assign terminal intr for ALL TYPE-IN
   165	000100'	104 00 0 00 000137 		ATI				; for chan 2
   166
   167	000101'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Current process handle
   168	000102'	200 02 0 00 015677'		MOVE	AC2,[17B3]		;Chan 0,1,2,3
   169	000103'	104 00 0 00 000131 		AIC				;Activate specified channels only
   170
   171					;#*************************************************************************
   172					; Loop & wait for characters from TTY input
   173					;#*************************************************************************
   174
   175	000104'	200 05 0 00 015700'		MOVE	AC5,[POINT 8,TTIBUF]	;Init input buffer pointer
   176
   177	000105'	332 00 0 00 000443'	LOOP:	SKIPE	CHRFLG			;Have a char?
   178	000106'	254 00 0 00 000114'		 JRST	LOOP1			; yes, process it
   179	000107'	336 00 0 00 000444'		SKIPN	TIMINT			;Reservation timer up yet?
   180	000110'	254 00 0 00 000105'		 JRST	LOOP			; No, try all over
   181	000111'	332 00 0 00 015065'		SKIPE	TRCFLG			;Yes, force RCPOLL
   182	000112'	037 01 0 00 015701'		 PMSG	<^S[ENDING NULL [RCSEND [TO FORCE [RCPOLL [TO NOT LOOSE CONNECTION^>
   183	000113'	254 00 0 00 000117'		JRST	LOOP2
   184
   185	000114'	402 00 0 00 000443'	LOOP1:	SETZM	CHRFLG
   186	000115'	332 00 0 00 000445'		SKIPE	EXTFLG			;Was it "EXIT CHAR"?
   187	000116'	254 00 0 00 000136'		 JRST	LOOPX			; Yes, restore all & return
   188
   189	000117'	332 00 0 00 015324'	LOOP2:	SKIPE	CMDPND			;No, command pending?
   190	000120'	254 00 0 00 000105'		 JRST	LOOP			; Yes, RCSEND denied
   191
   192	000121'	350 00 0 00 000446'		AOS	MNOFLG			;Complement msg number
   193	000122'	476 00 0 00 015324'		SETOM	CMDPND			;Set command pending
   194	000123'	402 00 0 00 000444'		SETZM	TIMINT
   195	000124'	260 17 0 00 000415'		GO	INITIM			;Initialize reservation timer
   196
   197									; *** MUST TRANSACT ***
   198
   199	000125'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Invoke RCSEND: Current process handle
   200	000126'	200 02 0 00 015715'		MOVE	AC2,[1B0]		;Channel 0
   201	000127'	104 00 0 00 000132 		IIC				;Initiate interrupt on chan 0 (RCSEND)
   202
   203	000130'	336 00 0 00 015070'		SKIPN	DBGFLG			;Debug?
   204	000131'	254 00 0 00 000105'		 JRST	LOOP			; no, repeat all
   205	000132'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Invoke RCPOLL: Current process handle
   206	000133'	200 02 0 00 015716'		MOVE	AC2,[1B1]		;Channel 1
   207	000134'	104 00 0 00 000132 		IIC				;Initiate interrupt on chan 1 (RCPOLL)
   208	000135'	254 00 0 00 000105'		JRST	LOOP			;Repeat all
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 7
RMTCNM	MAC	10-Jun-85 15:20		REMOTE TERMINAL OPERATION                                                          SEQ 0086

   209
   210					; We got EXIT CHAR...reset stuff & go back to command mode
   211					;#*********************************************************
   212
   213	000136'	260 17 0 00 012627'	LOOPX:	GO	RELCON			;Release console
   214	000137'	600 00 0 00 000000 		 NOP				; Unsucessful release
   215	000140'	200 01 0 00 015717'		MOVE	AC1,[.TICTI]		;Clear interrupts
   216	000141'	104 00 0 00 000140 		DTI				;De-assign all type-in
   217
   218	000142'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF
   219	000143'	200 02 0 00 015677'		MOVE	AC2,[17B3]
   220	000144'	104 00 0 00 000133 		DIC				;De-activate chan 0,1,2,3
   221	000145'	104 00 0 00 000130 		DIR				;Disable system
   222	000146'	104 00 0 00 000141 		CIS				;Clear interrupt system
   223
   224					; RESTORE TERMINAL
   225					;#************************
   226
   227	000147'	201 01 0 00 777777 	LOOPX1:	MOVEI	AC1,.CTTRM		; Specified terminal
   228	000150'	200 02 0 00 000437'		MOVE	AC2,TTMOD		; get orig JFN mode word
   229	000151'	104 00 0 00 000110 		SFMOD				; restore program related modes
   230	000152'	104 00 0 00 000217 		STPAR				; restore device  related modes
   231
   232	000153'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Process handle
   233	000154'	200 02 0 00 000440'		MOVE 	AC2,TTIWD		;Get orig terminal interr word
   234	000155'	104 00 0 00 000174 		STIW				; & restore orig terminal int word
   235
   236	000156'	037 03 0 00 000001 		PCRLF
   237
   238	000157'	263 17 0 00 000000 		RTN				; & return to Parser in RMTCNP
   239
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 8
RMTCNM	MAC	10-Jun-85 15:20		TERMINAL INPUT INTERRUPT HANDLER                                                   SEQ 0087

   240					SUBTTL	TERMINAL INPUT INTERRUPT HANDLER
   241					;#***************************************************************************
   242					;Input chars from the TTY & set various flags depending on character.
   243					;Other routines/interrupt handlers will key off the flags.
   244					;Put all other chars into TTIBUF.
   245					; (See P.2-59 TOPS-20 MONITOR CALLS REFERENCE MANUAL)
   246					;#***************************************************************************
   247
   248	000160'	261 17 0 00 000001 	TTYINP:	PUTIT	<AC1,AC0>		;Save some ac's
   249	000161'	261 17 0 00 000000 
   250	000162'	201 01 0 00 777777 	TTIN7:	MOVEI	AC1,.CTTRM		;TTY source designation
   251	000163'	104 00 0 00 000102 		SIBE				;TTY input buffer empty?
   252	000164'	254 00 0 00 000166'		 JRST	TTIN2			; no, get character
   253	000165'	254 00 0 00 000222'		JRST	TTINX			;yes, dismiss interrupt
   254
   255	000166'	104 00 0 00 000073 	TTIN2:	PBIN				;Get character from terminal
   256	000167'	312 01 0 00 015071'		CAME	AC1,TTEXIT		;Match exit character ?
   257	000170'	254 00 0 00 000174'		 JRST	TTIN1			; no, continue
   258	000171'	476 00 0 00 000445'		SETOM	EXTFLG			;Yes, set flag for use in $REMOTE
   259	000172'	476 00 0 00 000443'		SETOM	CHRFLG
   260	000173'	254 00 0 00 000222'		JRST	TTINX			;& exit
   261
   262	000174'	302 01 0 00 000002 	TTIN1:	CAIE	AC1,"B"-100		;Control-B ?
   263	000175'	254 00 0 00 000201'		 JRST	TTIN6
   264	000176'	476 00 0 00 000442'		SETOM	BRKFLG			;Yes, set flag for use in RCSND
   265	000177'	476 00 0 00 000443'		SETOM	CHRFLG
   266	000200'	254 00 0 00 000222'		JRST	TTINX
   267
   268	000201'	302 01 0 00 000023 	TTIN6:	CAIE	AC1,XOFF		;XOFF ?
   269	000202'	254 00 0 00 000205'		 JRST	TTIN3
   270	000203'	476 00 0 00 000441'		SETOM	XOFFLG			;Yes, stop output
   271	000204'	254 00 0 00 000222'		JRST	TTINX
   272
   273	000205'	302 01 0 00 000021 	TTIN3:	CAIE	AC1,XON			;Xon ?
   274	000206'	254 00 0 00 000211'		 JRST	TTIN5
   275	000207'	402 00 0 00 000441'		SETZM	XOFFLG			;Yes, allow output
   276	000210'	254 00 0 00 000222'		JRST	TTINX
   277
   278	000211'	200 00 0 00 000452'	TTIN5:	MOVE	AC0,IBUFCT		;Get terminal input pointers
   279	000212'	317 00 0 00 010314'		CAMG	AC0,CBUFSZ		;Pointer beyond buff size?
   280	000213'	254 00 0 00 000216'		 JRST	TTIN4			; no
   281	000214'	037 01 0 00 015720'		PMSG	<^WARNING...INPUT BUFFER POINTER BEYOND BUFF LENGTH^>
   282	000215'	254 00 0 00 000222'		JRST	TTINX
   283
   284	000216'	136 01 0 00 000005 	TTIN4:	IDPB	AC1,AC5			;Deposit byte in TTIBUF
   285	000217'	350 00 0 00 000452'		AOS	IBUFCT			;bump pointer
   286	000220'	476 00 0 00 000443'		SETOM	CHRFLG
   287	000221'	254 00 0 00 000162'		JRST	TTIN7			;see if tty buffer empty
   288
   289	000222'	262 17 0 00 000000 	TTINX:	GETIT	<AC0,AC1>		;Restore ac's
   290	000223'	262 17 0 00 000001 
   291	000224'	104 00 0 00 000136 		DEBRK				;dismiss interrupt
   292
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 9
RMTCNM	MAC	10-Jun-85 15:20		RCSND INTERRUPT HANDLER                                                            SEQ 0088

   293					SUBTTL	RCSND INTERRUPT HANDLER
   294					;#*****************************************************************************
   295					; Take chars from the input buffer (TTIBUF) & pass them to PLUTO
   296					; via the RCSND LLMOP.
   297					; RCSND sets the argument block (RCSNDB+.LMREQ) to interrupt when RCPOL arrives
   298					;#*****************************************************************************
   299
   300	000225'	261 17 0 00 000001 	RCSEND:	PUTIT	<AC1,AC0>		;Save some ac's
   301	000226'	261 17 0 00 000000 
   302	000227'	336 00 0 00 015070'		SKIPN	DBGFLG			;Debug?
   303	000230'	254 00 0 00 000245'		 JRST	RCS4			; no
   304
   305	000231'	200 05 0 00 015700'		MOVE	AC5,[POINT 8,TTIBUF]	;Yes, fake it!
   306	000232'	200 06 0 00 015731'		MOVE	AC6,[POINT 8,TTOBUF]
   307
   308	000233'	200 00 0 00 000452'		MOVE	AC0,IBUFCT
   309	000234'	202 00 0 00 000453'		MOVEM	AC0,OBUFCT		;For later use by RCPOLL
   310
   311	000235'	336 00 0 00 000452'		SKIPN	IBUFCT			;Any input?
   312	000236'	254 00 0 00 000256'		 JRST	RCSX			; no, dismiss interrupt
   313
   314	000237'	134 00 0 00 000005 	RCS2:	ILDB	AC0,AC5			;Yes, put TTIBUF char in ac0
   315	000240'	136 00 0 00 000006 		IDPB	AC0,AC6			;then to TTOBUF
   316
   317	000241'	372 00 0 00 000452'		SOSE	IBUFCT			;any chars left?
   318	000242'	254 00 0 00 000237'		 JRST	RCS2			; yes, do again
   319
   320	000243'	200 05 0 00 015700'		MOVE	AC5,[POINT 8,TTIBUF]	;No, init input buffer pointer
   321	000244'	254 00 0 00 000256'		JRST	RCSX			; & dismiss interrupt
   322
   323	000245'	200 00 0 00 015700'	RCS4:	MOVE	AC0,[POINT 8,TTIBUF]
   324	000246'	200 01 0 00 000452'		MOVE	AC1,IBUFCT
   325	000247'	261 16 0 00 000000 		PUSHD	<AC0,AC1>		;Buffer ptr & Byte Count for RCSND
   326	000250'	261 16 0 00 000001 
   327	000251'	260 17 0 00 010744'		GO	RCSND			;Do Send Console Command jsys
   328	000252'	254 00 0 00 000261'		 JRST	RCS6			; Jsys error return
   329	000253'	262 16 0 00 015072'		POPD	SREQN			;Save req # (not used)
   330
   331	000254'	402 00 0 00 000452'		SETZM	IBUFCT			;re-init byte counter
   332	000255'	200 05 0 00 015700'		MOVE	AC5,[POINT 8,TTIBUF]	; & init input buffer pointer
   333
   334	000256'	262 17 0 00 000000 	RCSX:	GETIT	<AC0,AC1>		;Restore ac's
   335	000257'	262 17 0 00 000001 
   336	000260'	104 00 0 00 000136 		DEBRK				;dismiss interrupt
   337
   338
   339	000261'	037 01 0 00 015732'	RCS6:	PMSG	<^.RCSND JSYS F[AILURE - ^>
   340	000262'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   341	000263'	254 00 0 00 000256'		JRST	RCSX			;dismiss interrupt
   342
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 10
RMTCNM	MAC	10-Jun-85 15:20		RCPOL INTERRUPT HANDLER                                                            SEQ 0089

   343					SUBTTL	RCPOL INTERRUPT HANDLER
   344					;#**************************************************************************
   345					; Do RCPOL, put response into output buffer (TTOBUF) & display it.
   346					;#**************************************************************************
   347
   348	000264'	261 17 0 00 000002 	RCPOLL:	PUTIT	<AC2,AC1,AC0>		;Save some ac's
   349	000265'	261 17 0 00 000001 
   350	000266'	261 17 0 00 000000 
   351	000267'	336 00 0 00 015070'		SKIPN	DBGFLG			;Debug?
   352	000270'	254 00 0 00 000273'		 JRST	RCP7			; no
   353	000271'	402 00 0 00 015324'		SETZM	CMDPND			;Yes, clear flag
   354	000272'	254 00 0 00 000334'		JRST	RCP5			; & skip RCPOLL
   355
   356	000273'	336 00 0 00 015324'	RCP7:	SKIPN	CMDPND			;Command pending?
   357	000274'	254 00 0 00 000356'		 JRST	RCPX			; No, unrecognized request...exit
   358
   359	000275'	200 00 0 00 015731'		MOVE	AC0,[POINT 8,TTOBUF]	;Yes
   360	000276'	200 01 0 00 010315'		MOVE	AC1,RBUFSZ		;Response buffer size
   361	000277'	261 16 0 00 000000 		PUSHD	<AC0,AC1>		;Buff ptr & useable buff len for RCPOL
   362	000300'	261 16 0 00 000001 
   363	000301'	260 17 0 00 011030'		GO	RCPOL			;Do Console Response Poll jsys
   364	000302'	254 00 0 00 000362'		 JRST	RCP2			; jsys error return
   365	000303'	200 00 0 00 011076'		MOVE	AC0,RCPOLB+.LMCID	;Get flags
   366
   367	000304'	200 01 0 00 000446'		MOVE	AC1,MNOFLG		;Get Msg # flag
   368	000305'	606 01 0 00 000001 		TRNN	AC1,1B35		;Skip if should test for LM%MNO = 1
   369	000306'	254 00 0 00 000312'		 JRST	RCP1			; else test for LM%MNO = 0
   370
   371	000307'	607 00 0 00 000001 		TLNN	AC0,(LM%MNO)
   372	000310'	254 00 0 00 000330'		 JRST	RCP6			;Invoke RCSEND again (must transact)
   373	000311'	254 00 0 00 000314'		JRST	RCP3
   374
   375	000312'	603 00 0 00 000001 	RCP1:	TLNE	AC0,(LM%MNO)
   376	000313'	254 00 0 00 000330'		 JRST	RCP6			;Invoke RCSEND again (must transact)
   377
   378	000314'	402 00 0 00 015324'	RCP3:	SETZM	CMDPND			;Clear command pending
   379	000315'	603 00 0 00 000002 		TLNE	AC0,(LM%CDL)
   380	000316'	037 01 0 00 015737'		 PMSG	<^RCPOL S[TATUS - [C[OMMAND [D[ATA [L[OST^>
   381	000317'	603 00 0 00 000004 		TLNE	AC0,(LM%RDO)
   382	000320'	037 01 0 00 015746'		 PMSG	<^RCPOL S[TATUS - [R[ESPONSE [D[ATA [L[OST^>
   383	000321'	603 00 0 00 002000 		TLNE	AC0,(LM%RDL)
   384	000322'	037 01 0 00 015756'		 PMSG	<^RCPOL S[TATUS - [R[ECEIVE [D[ATA [L[OST^>
   385	000323'	554 00 0 00 011102'		HLRZ	AC0,RCPOLB+.LMRBL	;Get returned message length
   386	000324'	202 00 0 00 000453'		MOVEM	AC0,OBUFCT		; & put in output buff char count
   387
   388	000325'	313 00 0 00 010315'		CAMLE	AC0,RBUFSZ		;Pointer beyond buffer size?
   389						 PMSG	<^WARNING...RCPOLL RET MSG LEN GREATER THAN AVAIL RESP BUFF SIZE...PGM MAY B
   390	000326'	037 01 0 00 015765'	E OVERLAID^>
   391	000327'	254 00 0 00 000334'		JRST	RCP5
   392									; *** MUST TRANSACT ***
   393
   394	000330'	201 01 0 00 400000 	RCP6:	MOVEI	AC1,.FHSLF		;Repeat RCSEND
   395	000331'	200 02 0 00 015715'		MOVE	AC2,[1B0]		; on channel 0
   396	000332'	104 00 0 00 000132 		IIC				;Initiate Interrupt
   397	000333'	254 00 0 00 000356'		JRST	RCPX			; & exit
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 11
RMTCNM	MAC	10-Jun-85 15:20		RCPOL INTERRUPT HANDLER                                                            SEQ 0090

   398
   399					;#****************************************************************************
   400					; Display TTOBUF
   401					;#****************************************************************************
   402
   403	000334'	200 06 0 00 015731'	RCP5:	MOVE	AC6,[POINT 8,TTOBUF]	;Init output buffer pointer
   404
   405	000335'	201 01 0 00 000101 	RCP4:	MOVEI	AC1,.PRIOU		;Do actual display
   406	000336'	104 00 0 00 000175 		SOBF				;Is output buffer full? (def by .PRIOU)
   407	000337'	334 00 0 00 000000 		SKIPA				;No
   408	000340'	254 00 0 00 000335'		 JRST	RCP4			; Yes, have to wait
   409
   410	000341'	375 00 0 00 000453'		SOSGE	OBUFCT			;Decr & see if any chars to display?
   411	000342'	254 00 0 00 000356'		 JRST	RCPX			; no, exit
   412	000343'	134 01 0 00 000006 		ILDB	AC1,AC6			;Yes, put char in ac1
   413	000344'	322 01 0 00 000335'		JUMPE	AC1,RCP4		;Ignore nulls
   414
   415	000345'	332 00 0 00 000441'		SKIPE	XOFFLG			;XOFF set?
   416	000346'	254 00 0 00 000345'		 JRST	.-1			; yes, loop until cleared by TTYINP
   417										; (priority 1)
   418	000347'	104 00 0 00 000074 		PBOUT				;No, print (ac1) on users terminal
   419
   420	000350'	200 02 0 00 000001 		MOVE	AC2,AC1			;Byte to output
   421	000351'	200 01 0 00 000000*		MOVE	AC1,P%DJFN		;Dest designation
   422	000352'	332 00 0 00 015066'		SKIPE	LOGFLG
   423	000353'	104 00 0 00 000051 		BOUT				;Put in log (def by P%DJFN)
   424	000354'	320 17 0 00 000365'		 ERCAL	TTBERR
   425	000355'	254 00 0 00 000335'		JRST	RCP4			;Do next char
   426
   427	000356'	262 17 0 00 000000 	RCPX:	GETIT	<AC0,AC1,AC2>		;Restore ac's
   428	000357'	262 17 0 00 000001 
   429	000360'	262 17 0 00 000002 
   430	000361'	104 00 0 00 000136 		DEBRK				;dismiss interrupt
   431
   432
   433	000362'	037 01 0 00 016004'	RCP2:	PMSG	<^.RCPOL JSYS F[AILURE - ^>
   434	000363'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   435	000364'	254 00 0 00 000356'		JRST	RCPX			;dismiss interrupt
   436
   437
   438					TTBERR:	TMSG	<
   439					LOG OUTPUT ERROR - LOGGING STOPPED
   440	000365'	561 01 0 00 016011'	>
   441	000366'	104 00 0 00 000076 
   442	000367'	402 00 0 00 015066'		SETZM	LOGFLG
   443	000370'	402 00 0 00 000000*		SETZM	CONSW
   444	000371'	037 05 0 00 000003 		DROPDV
   445	000372'	263 17 0 00 000000 		RTN
   446
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 12
RMTCNM	MAC	10-Jun-85 15:20		SAVE/RESTORE TERMINAL PARAMETERS                                                   SEQ 0091

   447					SUBTTL	SAVE/RESTORE TERMINAL PARAMETERS
   448					;#************************************************************************
   449
   450					;Save original controlling terminal parameters
   451					;Called from beginning of RMTCNM
   452
   453	000373'	201 01 0 00 777777 	CTSAVE:	MOVEI	AC1,.CTTRM		;get specified terminal
   454	000374'	104 00 0 00 000107 		RFMOD				;get its JFN mode word
   455	000375'	320 17 0 00 000025'		 ERJSYS
   456	000376'	202 02 0 00 000434'		MOVEM	AC2,CTMOD		; & save it for restore below
   457
   458	000377'	104 00 0 00 000112 		RFCOC				;get control char output (cont words)
   459	000400'	320 17 0 00 000025'		 ERJSYS
   460	000401'	124 02 0 00 000435'		DMOVEM	AC2,CTCOC		; & save 'em for restore below
   461	000402'	263 17 0 00 000000 		RTN
   462
   463					;Restore original controlling terminal parameters
   464					;Called from "QUIT" in RMTCNP
   465
   466	000403'	201 01 0 00 777777 	CTRSTR:	MOVEI	AC1,.CTTRM		;get specified terminal
   467	000404'	200 02 0 00 000434'		MOVE	AC2,CTMOD		;get saved JFN mode word
   468	000405'	104 00 0 00 000110 		SFMOD				; restore orig program related modes
   469	000406'	104 00 0 00 000217 		STPAR				; restore orig device  related modes
   470
   471	000407'	120 02 0 00 000435'		DMOVE	AC2,CTCOC		;get saved control char output
   472	000410'	104 00 0 00 000113 		SFCOC				; restore orig back
   473	000411'	263 17 0 00 000000 		RTN
   474
   475
   476					; TIMER INTERRUPT HANDLER
   477					;#**************************************************************************
   478
   479	000412'	350 00 0 00 000444'	ETIME:	AOS	TIMINT			;Set reservation time up flag
   480	000413'	260 17 0 00 000415'		GO	INITIM			;Init reservation timer
   481	000414'	104 00 0 00 000136 		DEBRK				;Dismiss interrupt
   482
   483
   484					; INITIALIZE RESERVATION TIMER
   485					;#****************************************************************************
   486
   487	000415'	261 17 0 00 000003 	INITIM:	PUTIT	<AC3,AC2,AC1>		;Save some ac's
   488	000416'	261 17 0 00 000002 
   489	000417'	261 17 0 00 000001 
   490	000420'	200 01 0 00 016021'		MOVE	AC1,[.FHSLF,,.TIMAL]	;Process handle,,reset timer interrupt
   491	000421'	104 00 0 00 000522 		TIMER
   492	000422'	037 01 0 00 016022'		 PMSG	<^ERROR IN TIMER JSYS^>
   493	000423'	200 01 0 00 016026'		MOVE	AC1,[.FHSLF,,.TIMEL]	;Process handle,,do elapsed time
   494	000424'	200 02 0 00 000447'		MOVE	AC2,RESTIM		;Reservation timer from SYS-ID (RESCON)
   495	000425'	201 03 0 00 000003 		MOVEI	AC3,3			;Interrupt on channel 3
   496	000426'	104 00 0 00 000522 		TIMER				;Invoke timer jsys
   497	000427'	037 01 0 00 016022'		 PMSG	<^ERROR IN TIMER JSYS^>
   498	000430'	262 17 0 00 000001 		GETIT	<AC1,AC2,AC3>		;Restore ac's
   499	000431'	262 17 0 00 000002 
   500	000432'	262 17 0 00 000003 
   501	000433'	263 17 0 00 000000 		RTN
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 13
RMTCNM	MAC	10-Jun-85 15:20		SAVE/RESTORE TERMINAL PARAMETERS                                                   SEQ 0092

   502
   503					SUBTTL	REMOTE TERMINAL STORAGE
   504					;#*************************************************************************
   505
   506	000434'	000000	000000		CTMOD:	0				;Controlling terminal parameters
   507	000435'	000000	000000		CTCOC:	0				;Controlling terminal coc
   508	000436'	000000	000000			0				; "
   509	000437'	000000	000000		TTMOD:	0				;Terminal parameters
   510	000440'	000000	000000		TTIWD:	0				;Terminal interrupt word
   511
   512	000441'	000000	000000		XOFFLG:	0				;Xoff flag. enabled = -1
   513	000442'	000000	000000		BRKFLG:	0				;Break flag. enabled = -1
   514	000443'	000000	000000		CHRFLG:	0				;Received character flag
   515	000444'	000000	000000		TIMINT:	0				;Timer interrupt counter
   516	000445'	000000	000000		EXTFLG:	0				;Received exit character flag
   517	000446'	000000	000000		MNOFLG:	0				;Message Number flag
   518										;Alternate between 0 & 1 in RCSND
   519										;Should receive same sense in RCPOL
   520	000447'	000000	000000		RESTIM:	0				;Reservation timer from SYS-ID (RESCON)
   521
   522	000450'	000000	000000		TO$FORK:0				;Terminal output fork handle
   523	000451'	000000	000000		NI$FORK:0				;"NI" Fork handle
   524
   525	000452'	000000	000000		IBUFCT:	0				;Terminal input buffer char counter
   526	000453'	000000	000000		OBUFCT:	0				;Terminal output buffer char counter
   527
   528	000454'				TTIBUF:	BLOCK	BUFSIZ			;Terminal input buffer (command buffer)
   529	004374'				TTOBUF:	BLOCK	BUFSIZ			;Terminal output buffer (response buff)
   530			010313'		TABLEN= .-1				;Table length
   531
   532	010314'	000000	000620		CBUFSZ:	^D400				;Default values...will be modified
   533	010315'	000000	001750		RBUFSZ:	^D1000				; in RESCON
   534
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 14
RMTCNM	MAC	10-Jun-85 15:20		INTERRUPT CHANNEL & LEVEL TABLES                                                   SEQ 0093

   535					SUBTTL	INTERRUPT CHANNEL & LEVEL TABLES
   536					;#****************************************************************************
   537
   538	010316'	000001	000225'		CHNTAB:	1,,RCSEND			;Chan 0 priority 1,,service routine
   539	010317'	000003	000264'			3,,RCPOLL			;Chan 1 priority 3
   540	010320'	000002	000160'			2,,TTYINP			;Chan 2 priority 2
   541	010321'	000003	000412'			3,,ETIME			;Chan 3 priority 3
   542						REPEAT ^D32,<0>			;Zero rest of table
   543	010322'	000000	000000
   544	010323'	000000	000000
   545	010324'	000000	000000
   546	010325'	000000	000000
   547	010326'	000000	000000
   548	010327'	000000	000000
   549	010330'	000000	000000
   550	010331'	000000	000000
   551	010332'	000000	000000
   552	010333'	000000	000000
   553	010334'	000000	000000
   554	010335'	000000	000000
   555	010336'	000000	000000
   556	010337'	000000	000000
   557	010340'	000000	000000
   558	010341'	000000	000000
   559	010342'	000000	000000
   560	010343'	000000	000000
   561	010344'	000000	000000
   562	010345'	000000	000000
   563	010346'	000000	000000
   564	010347'	000000	000000
   565	010350'	000000	000000
   566	010351'	000000	000000
   567	010352'	000000	000000
   568	010353'	000000	000000
   569	010354'	000000	000000
   570	010355'	000000	000000
   571	010356'	000000	000000
   572	010357'	000000	000000
   573	010360'	000000	000000
   574	010361'	000000	000000
   575
   576	010362'	000000	010365'		LEVTAB:	0,,PCSND			;Addr to save PC for priority lev 1
   577	010363'	000000	010367'			0,,PCTTY			;  ditto for lev 2
   578	010364'	000000	010371'			0,,PCPOLL			;  ditto for lev 3
   579
   580	010365'	000000	000000		PCSND:	0				;Ret addr for lev 1 - RCSEND
   581	010366'	000000	000000			0				; use 2 words for possible ext address
   582	010367'	000000	000000		PCTTY:	0				;Ret addr for lev 2 - TTYINP
   583	010370'	000000	000000			0
   584	010371'	000000	000000		PCPOLL:	0				;Ret addr for lev 3 - RCPOLL & ETIME
   585	010372'	000000	000000			0
   586
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 15
RMTCNM	MAC	10-Jun-85 15:20		RCRID SUBROUTINE                                                                   SEQ 0094

   587					SUBTTL	RCRID SUBROUTINE
   588					;#*************************************************************************
   589					;* RCRID subroutine
   590					;  
   591					; Send a Request Identity LLMOP to the dest address node on the Ethernet.
   592					;
   593					; Return +1 if a jsys error occurs.
   594					; Return +2 if successful...the data stack will contain the Request Number
   595					;			     for later .RCRPY/.RCABT/.RCSTS calls.
   596					;#**********************************************************************
   597
   598	010373'	261 17 0 00 000002 	RCRID:	PUTIT	<AC2,AC1,AC0>		;Save some acs
   599	010374'	261 17 0 00 000001 
   600	010375'	261 17 0 00 000000 
   601					;Fill .rcrid jsys arg block
   602
   603	010376'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
   604	010377'	202 00 0 00 010435'		MOVEM	RCRIDB+.LMCID
   605
   606	010400'	120 00 0 00 015046'		DMOVE	AC0,NODADH		;Put hi/lo dest addr in
   607	010401'	124 00 0 00 010436'		DMOVEM	AC0,RCRIDB+.LMDST	; jsys arg block
   608
   609	010402'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   610	010403'	254 00 0 00 010411'		 JRST	RCRID1			; No
   611
   612					;Print the node address 
   613
   614	010404'	037 01 0 00 016027'		PMSG	<R[EQUESTING [ID[ OF NODE ADDRESS: >
   615	010405'	261 16 0 00 015046'		PUSHD	<NODADH>	 	;Push hex digits 1-8
   616	010406'	261 16 0 00 015047'		PUSHD	<NODADL> 		;Push hex digits 9-12
   617	010407'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
   618	010410'	037 03 0 00 000001 		PCRLF
   619
   620	010411'	201 01 0 00 000006 	RCRID1:	MOVEI	AC1,.RCRID		;Get function code
   621	010412'	201 02 0 00 010435'		MOVEI	AC2,RCRIDB		;Set up pointer to .Rcrid jsys block
   622	010413'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
   623	010414'	254 00 0 00 010432'		 JRST	RCRID4			;Error return
   624	010415'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 16
RMTCNM	MAC	10-Jun-85 15:20		RCRID SUBROUTINE                                                                   SEQ 0095

   625
   626	010416'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   627	010417'	254 00 0 00 010424'		 JRST	RCRID2			; No
   628
   629	010420'	037 01 0 00 016035'		PMSG	<.....R[EQUEST # >
   630	010421'	550 00 0 00 010440'		HRRZ	AC0,RCRIDB+.LMREQ	;Get request number
   631	010422'	037 15 0 00 000000 		PNTDEC
   632	010423'	037 03 0 00 000001 		PCRLF
   633
   634	010424'	550 00 0 00 010440'	RCRID2:	HRRZ	AC0,RCRIDB+.LMREQ
   635	010425'	261 16 0 00 000000 		PUSHD	<AC0>			;Push Req # on data stack
   636
   637	010426'	262 17 0 00 000000 	RCRID3:	GETIT	<AC0,AC1,AC2>		;Restore acs
   638	010427'	262 17 0 00 000001 
   639	010430'	262 17 0 00 000002 
   640	010431'	263 17 0 00 000000 		RTN
   641
   642					;Jsys failure comes here
   643
   644	010432'	037 01 0 00 016040'	RCRID4:	PMSG	<^.RCRID JSYS F[AILURE - ^>
   645	010433'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   646	010434'	254 00 0 00 010426'		JRST	RCRID3			;Take jsys error return
   647
   648					;.Rcrid jsys argument block
   649
   650	010435'	000000	000000		RCRIDB:	0				;Channel id (port number)
   651	010436'	000000	000000			0				;Dest addr (hi = byte 0,1,2,3,z)
   652	010437'	000000	000000			0				;Dest addr (lo = byte 4,5,z,z,z)
   653	010440'	000000	000000			0				;Int chan #,,Request number ret by jsys
   654										;Int chan #...0 = no interrupt
   655										;Req # for .RCRPY/.RCABT/.RCSTS
   656
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 17
RMTCNM	MAC	10-Jun-85 15:20		RCRCT SUBROUTINE                                                                   SEQ 0096

   657					SUBTTL	RCRCT SUBROUTINE
   658					;#*************************************************************************
   659					;* RCRCT subroutine
   660					;  
   661					;  Send a Read Counters LLMOP to the dest address node on the Ethernet.
   662					;
   663					;  Return +1 if a jsys error occurs.
   664					;  Return +2 if successful...the data stack will contain the Request Number
   665					;			     for later .RCRPY/.RCABT/.RCSTS calls.
   666					;#**********************************************************************
   667
   668	010441'	261 17 0 00 000002 	RCRCT:	PUTIT	<AC2,AC1,AC0>		;Save some acs
   669	010442'	261 17 0 00 000001 
   670	010443'	261 17 0 00 000000 
   671					;Fill .rcrct jsys arg block
   672
   673	010444'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
   674	010445'	202 00 0 00 010503'		MOVEM	RCRCTB+.LMCID
   675
   676	010446'	120 00 0 00 015046'		DMOVE	AC0,NODADH		;Put hi/lo dest addr in
   677	010447'	124 00 0 00 010504'		DMOVEM	AC0,RCRCTB+.LMDST	; jsys arg block
   678
   679	010450'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   680	010451'	254 00 0 00 010457'		 JRST	RCRCT1			; No
   681
   682					;Print the node address 
   683
   684	010452'	037 01 0 00 016045'		PMSG	<R[EADING [C[OUNTERS OF NODE ADDRESS: >
   685	010453'	261 16 0 00 015046'		PUSHD	<NODADH>	 	;Push hex digits 1-8
   686	010454'	261 16 0 00 015047'		PUSHD	<NODADL> 		;Push hex digits 9-12
   687	010455'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
   688	010456'	037 03 0 00 000001 		PCRLF
   689
   690	010457'	201 01 0 00 000007 	RCRCT1:	MOVEI	AC1,.RCRCT		;Get function code
   691	010460'	201 02 0 00 010503'		MOVEI	AC2,RCRCTB		;Set up pointer to .rcrct jsys block
   692	010461'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
   693	010462'	254 00 0 00 010500'		 JRST	RCRCT4			;Error return
   694	010463'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 18
RMTCNM	MAC	10-Jun-85 15:20		RCRCT SUBROUTINE                                                                   SEQ 0097

   695
   696	010464'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   697	010465'	254 00 0 00 010472'		 JRST	RCRCT2			; No
   698
   699	010466'	037 01 0 00 016035'		PMSG	<.....R[EQUEST # >
   700	010467'	550 00 0 00 010506'		HRRZ	AC0,RCRCTB+.LMREQ	;Get request number
   701	010470'	037 15 0 00 000000 		PNTDEC
   702	010471'	037 03 0 00 000001 		PCRLF
   703
   704	010472'	550 00 0 00 010506'	RCRCT2:	HRRZ	AC0,RCRCTB+.LMREQ
   705	010473'	261 16 0 00 000000 		PUSHD	<AC0>			;Push Req # on data stack
   706
   707	010474'	262 17 0 00 000000 	RCRCT3:	GETIT	<AC0,AC1,AC2>		;Restore acs
   708	010475'	262 17 0 00 000001 
   709	010476'	262 17 0 00 000002 
   710	010477'	263 17 0 00 000000 		RTN
   711
   712					;Jsys failure comes here
   713
   714	010500'	037 01 0 00 016054'	RCRCT4:	PMSG	<^.RCRCT JSYS F[AILURE - ^>
   715	010501'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   716	010502'	254 00 0 00 010474'		JRST	RCRCT3			;Take jsys error return
   717
   718					;.rcrct jsys argument block
   719
   720	010503'	000000	000000		RCRCTB:	0				;Channel id (port number)
   721	010504'	000000	000000			0				;Dest addr (hi = byte 0,1,2,3,z)
   722	010505'	000000	000000			0				;Dest addr (lo = byte 4,5,z,z,z)
   723	010506'	000000	000000			0				;Int chan #,,Request number ret by jsys
   724										;Int chan #...0 = no interrupt
   725										;Req # for .RCRPY/.RCABT/.RCSTS
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 19
RMTCNM	MAC	10-Jun-85 15:20		RCRBT SUBROUTINE                                                                   SEQ 0098

   726					SUBTTL	RCRBT SUBROUTINE
   727					;#*************************************************************************
   728					;* RCRBT subroutine 
   729					;  
   730					;  Send a Remote Boot LLMOP to the dest address node on the Ethernet
   731					;  to load Console Carrier ucode into PLUTO
   732					;  
   733					;  Return +1 if a jsys error occurs.
   734					;  Return +2 if successful
   735					;#**********************************************************************
   736
   737	010507'	261 17 0 00 000002 	RCRBT:	PUTIT	<AC2,AC1,AC0>		;Save some acs
   738	010510'	261 17 0 00 000001 
   739	010511'	261 17 0 00 000000 
   740					;Fill .rcrbt jsys arg block
   741
   742	010512'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
   743	010513'	202 00 0 00 010550'		MOVEM	RCRBTB+.LMCID
   744
   745	010514'	120 00 0 00 015042'		DMOVE	AC0,TARADH		;Put hi/lo dest addr in
   746	010515'	124 00 0 00 010551'		DMOVEM	AC0,RCRBTB+.LMDST	; jsys arg block
   747
   748	010516'	120 00 0 00 015052'		DMOVE	AC0,PWORDH		;Put password in
   749	010517'	124 00 0 00 010553'		DMOVEM	RCRBTB+.LMPWD		; jsys arg block
   750
   751	010520'	200 00 0 00 016061'		MOVE	AC0,[1B35]		;Put control info - boot comm proc
   752	010521'	202 00 0 00 010555'		MOVEM	AC0,RCRBTB+.LMCIF	; in jsys arg block
   753
   754	010522'	402 00 0 00 010556'		SETZM	RCRBTB+.LMDID		;Device ID
   755
   756	010523'	200 00 0 00 016062'		MOVE	AC0,[POINT 8,RBTSID]	;Put pointer to Software ID
   757	010524'	202 00 0 00 010557'		MOVEM	AC0,RCRBTB+.LMSID	; in jsys arg block
   758
   759	010525'	336 00 0 00 015065'		SKIPN	TRCFLG			;Trace enabled ?
   760	010526'	254 00 0 00 010534'		 JRST	RCRBT1			; No
   761
   762					;Print the node address 
   763
   764	010527'	037 01 0 00 016063'		PMSG	<B[OOT [I[SSUED TO [TARGET NODE ADDRESS: >
   765	010530'	261 16 0 00 015042'		PUSHD	<TARADH>	 	;Push hex digits 1-8
   766	010531'	261 16 0 00 015043'		PUSHD	<TARADL> 		;Push hex digits 9-12
   767	010532'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
   768	010533'	037 03 0 00 000001 		PCRLF
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 20
RMTCNM	MAC	10-Jun-85 15:20		RCRBT SUBROUTINE                                                                   SEQ 0099

   769
   770	010534'	201 01 0 00 000011 	RCRBT1:	MOVEI	AC1,.RCRBT		;Get function code
   771	010535'	201 02 0 00 010550'		MOVEI	AC2,RCRBTB		;Set up pointer to .RCRBT jsys block
   772	010536'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
   773	010537'	254 00 0 00 010545'		 JRST	RCRBT4			;Error return
   774	010540'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
   775
   776	010541'	262 17 0 00 000000 	RCRBT3:	GETIT	<AC0,AC1,AC2>		;Restore acs
   777	010542'	262 17 0 00 000001 
   778	010543'	262 17 0 00 000002 
   779	010544'	263 17 0 00 000000 		RTN
   780
   781					;Jsys failure comes here
   782
   783	010545'	037 01 0 00 016072'	RCRBT4:	PMSG	<^.RCRBT JSYS F[AILURE - ^>
   784	010546'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   785	010547'	254 00 0 00 010541'		JRST	RCRBT3			;Take jsys error return
   786
   787					;.RCRBT jsys argument block
   788
   789	010550'	000000	000000		RCRBTB:	0				;Channel id (port number)
   790	010551'	000000	000000			0				;Dest addr (hi = byte 0,1,2,3,z)
   791	010552'	000000	000000			0				;Dest addr (lo = byte 4,5,z,z,z)
   792	010553'	000000	000000			0				;PLUTO password (hi bytes 7,6,5,4,z)
   793	010554'	000000	000000			0				;PLUTO password (lo bytes 3,2,1,0,z)
   794	010555'	000000	000000			0				;Control information
   795	010556'	000000	000000			0				;Pointer to Device-id
   796	010557'	000000	000000			0				;Pointer to Software-id
   797
   798	010560'	000000	000000		RBTDID:	0				;8 bit byte string for Device   ID
   799	010561'	776000	000000		RBTSID:	377B7				; "     "     "    "   Software ID
   800
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 21
RMTCNM	MAC	10-Jun-85 15:20		RCRPY SUBROUTINE                                                                   SEQ 0100

   801					SUBTTL	RCRPY SUBROUTINE
   802					;#****************************************************************************
   803					;* RCRPY subroutine
   804					;
   805					;  Do REMOTE CONSOLE REPLY to a REQUEST-ID or READ COUNTERS LLMOP.
   806					;  
   807					;  1. Push the Request Number on the data stack (from .RCRID/.RCRCT).
   808					;  2. Call this routine via "GO RCRPY".
   809					;  3. Return +1 If a jsys error occured.
   810					;     Return +2 If successful.
   811					;  4. If successful, RCRPYB+.LMRBL will contain the Remote Console Buffer
   812					;     Message Length returned by the jsys.
   813					;#****************************************************************************
   814
   815	010562'	261 17 0 00 000002 	RCRPY:	PUTIT	<AC2,AC1,AC0>		;Save some acs
   816	010563'	261 17 0 00 000001 
   817	010564'	261 17 0 00 000000 
   818					;Fill .rcrpy jsys arg block
   819
   820	010565'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
   821	010566'	202 00 0 00 010624'		MOVEM	RCRPYB+.LMCID
   822
   823	010567'	262 16 0 00 010627'		POPD	<RCRPYB+.LMREQ>		;Req # from .RCRID/.RCRCT
   824
   825	010570'	200 00 0 00 010315'		MOVE	AC0,RBUFSZ		;Get response buffer size
   826	010571'	202 00 0 00 010630'		MOVEM	AC0,RCRPYB+.LMRBL	; Put in .Rcrpy jsys block
   827
   828	010572'	200 00 0 00 015731'		MOVE	AC0,[POINT 8,TTOBUF]	;Get console output buffer ptr
   829	010573'	202 00 0 00 010631'		MOVEM	AC0,RCRPYB+.LMRBP	; Put in .Rcrpy jsys block
   830
   831	010574'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   832	010575'	254 00 0 00 010602'		 JRST	RCRPY1			; No
   833
   834	010576'	037 01 0 00 016077'		PMSG	<^ R[EAD [CONSOLE REPLY [FOR REQUEST # >
   835	010577'	200 00 0 00 010627'		MOVE	AC0,RCRPYB+.LMREQ	;Get request number
   836	010600'	037 15 0 00 000000 		PNTDEC
   837	010601'	037 03 0 00 000001 		PCRLF
   838
   839	010602'	201 01 0 00 000012 	RCRPY1:	MOVEI	AC1,.RCRPY		;Get function code
   840	010603'	201 02 0 00 010624'		MOVEI	AC2,RCRPYB		;Set up pointer to .Rcrpy jsys block
   841	010604'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
   842	010605'	254 00 0 00 010621'		 JRST	RCRPY4			;Jsys error return
   843	010606'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 22
RMTCNM	MAC	10-Jun-85 15:20		RCRPY SUBROUTINE                                                                   SEQ 0101

   844
   845	010607'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   846	010610'	254 00 0 00 010615'		 JRST	RCRPY3			; No
   847
   848	010611'	037 01 0 00 016106'		PMSG	<.....R[ETURNED MESSAGE LENGTH = >
   849	010612'	554 00 0 00 010630'		HLRZ	AC0,RCRPYB+.LMRBL 	;Get message length
   850	010613'	037 15 0 00 000000 		PNTDEC
   851	010614'	037 03 0 00 000001 		PCRLF
   852
   853	010615'	262 17 0 00 000000 	RCRPY3:	GETIT	<AC0,AC1,AC2>		;Restore acs
   854	010616'	262 17 0 00 000001 
   855	010617'	262 17 0 00 000002 
   856	010620'	263 17 0 00 000000 		RTN
   857
   858					;Jsys failure comes here
   859
   860	010621'	037 01 0 00 016114'	RCRPY4:	PMSG	<^.RCRPY JSYS F[AILURE - ^>
   861	010622'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   862	010623'	254 00 0 00 010615'		JRST	RCRPY3			;Take jsys error return
   863
   864					;.Rcrpy jsys argument block
   865
   866	010624'	000000	000000		RCRPYB:	0				;Channel-id (port number)
   867	010625'	000000	000000			0				;Source addr ret from BCAST/MCAST
   868	010626'	000000	000000			0				;  "     "
   869	010627'	000000	000000			0				;Request # from .RCRID/.RCRCT jsys ret.
   870	010630'	000000	000000			0				;Ret msg len,,Response Buffer Length
   871	010631'	000000	000000			0				;Response Buffer Pointer
   872
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 23
RMTCNM	MAC	10-Jun-85 15:20		RCRSV SUBROUTINE                                                                   SEQ 0102

   873					SUBTTL	RCRSV SUBROUTINE
   874					;#*****************************************************************************
   875					;* RCRSV subroutine
   876					;
   877					;  Send a RESERVE REMOTE CONSOLE LLMOP to the dest address node on the Ethernet
   878					;  
   879					;  Return +1 if a jsys error occurs.
   880					;  Return +2 if successful.
   881					;#*****************************************************************************
   882
   883	010632'	261 17 0 00 000002 	RCRSV:	PUTIT	<AC2,AC1,AC0>		;Save some acs
   884	010633'	261 17 0 00 000001 
   885	010634'	261 17 0 00 000000 
   886					;Fill .rcrsv jsys arg block
   887
   888	010635'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
   889	010636'	202 00 0 00 010674'		MOVEM	RCRSVB+.LMCID
   890
   891	010637'	120 00 0 00 015042'		DMOVE	AC0,TARADH		;Put hi/lo dest addr in
   892	010640'	124 00 0 00 010675'		DMOVEM	AC0,RCRSVB+.LMDST	; jsys arg block
   893
   894	010641'	120 00 0 00 015052'		DMOVE	AC0,PWORDH		;Get password, hi/lo bytes
   895	010642'	124 00 0 00 010677'		DMOVEM	RCRSVB+.LMPWD
   896
   897	010643'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   898	010644'	254 00 0 00 010652'		 JRST	RCRSV1			; No
   899
   900					;Print the node address 
   901
   902	010645'	037 01 0 00 016121'		PMSG	<R[ESERVING [R[EMOTE [C[ONSOLE OF TARGET NODE ADDRESS: >
   903	010646'	261 16 0 00 015042'		PUSHD	<TARADH>	 	;Push hex digits 1-8
   904	010647'	261 16 0 00 015043'		PUSHD	<TARADL> 		;Push hex digits 9-12
   905	010650'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
   906	010651'	037 03 0 00 000001 		PCRLF
   907
   908	010652'	201 01 0 00 000013 	RCRSV1:	MOVEI	AC1,.RCRSV		;Get function code
   909	010653'	201 02 0 00 010674'		MOVEI	AC2,RCRSVB		;Set up pointer to .Rcrsv jsys block
   910	010654'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
   911	010655'	254 00 0 00 010671'		 JRST	RCRSV4			;Error return
   912	010656'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 24
RMTCNM	MAC	10-Jun-85 15:20		RCRSV SUBROUTINE                                                                   SEQ 0103

   913
   914	010657'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   915	010660'	254 00 0 00 010665'		 JRST	RCRSV3			; No
   916
   917	010661'	037 01 0 00 016133'		PMSG	<.....P[ORT [ID # >
   918	010662'	200 00 0 00 010674'		MOVE	AC0,RCRSVB+.LMCID	;Get port id number
   919	010663'	037 15 0 00 000000 		PNTDEC
   920	010664'	037 03 0 00 000001 		PCRLF
   921
   922	010665'	262 17 0 00 000000 	RCRSV3:	GETIT	<AC0,AC1,AC2>		;Restore acs
   923	010666'	262 17 0 00 000001 
   924	010667'	262 17 0 00 000002 
   925	010670'	263 17 0 00 000000 		RTN
   926
   927					;Jsys failure comes here
   928
   929	010671'	037 01 0 00 016136'	RCRSV4:	PMSG	<^.RCRSV JSYS F[AILURE - ^>
   930	010672'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   931	010673'	254 00 0 00 010665'		JRST	RCRSV3			;Take jsys error return
   932
   933					;.Rcrsv jsys argument block
   934
   935	010674'	000000	000000		RCRSVB:	0				;Channel id (Port #)
   936	010675'	000000	000000			0				;Dest addr (hi = byte 0,1,2,3,z)
   937	010676'	000000	000000			0				;Dest addr (lo = byte 4,5,z,z,z)
   938	010677'	000000	000000			0				;PLUTO password (hi = bytes 7,6,5,4,z)
   939	010700'	000000	000000			0				;PLUTO password (lo = bytes 3,2,1,0,z)
   940
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 25
RMTCNM	MAC	10-Jun-85 15:20		RCREL SUBROUTINE                                                                   SEQ 0104

   941					SUBTTL	RCREL SUBROUTINE
   942					;#*****************************************************************************
   943					;* RCREL subroutine
   944					;
   945					;  Send a RELEASE REMOTE CONSOLE LLMOP to the dest address node on the Ethernet
   946					;
   947					;  Return +1 if a jsys error occurs.
   948					;  Return +2 if successful
   949					;#*****************************************************************************
   950
   951	010701'	261 17 0 00 000002 	RCREL:	PUTIT	<AC2,AC1,AC0>		;Save some acs
   952	010702'	261 17 0 00 000001 
   953	010703'	261 17 0 00 000000 
   954					;Fill .rcrel jsys arg block
   955
   956	010704'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
   957	010705'	202 00 0 00 010741'		MOVEM	RCRELB+.LMCID
   958
   959	010706'	120 00 0 00 015042'		DMOVE	AC0,TARADH		;Put hi/lo dest addr in
   960	010707'	124 00 0 00 010742'		DMOVEM	AC0,RCRELB+.LMDST	; jsys arg block
   961
   962	010710'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   963	010711'	254 00 0 00 010652'		 JRST	RCRSV1			; No
   964
   965					;Print the node address 
   966
   967	010712'	037 01 0 00 016143'		PMSG	<R[ELEASING [R[EMOTE [C[ONSOLE OF TARGET NODE ADDRESS: >
   968	010713'	261 16 0 00 015042'		PUSHD	<TARADH>	 	;Push hex digits 1-8
   969	010714'	261 16 0 00 015043'		PUSHD	<TARADL> 		;Push hex digits 9-12
   970	010715'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
   971	010716'	037 03 0 00 000001 		PCRLF
   972
   973	010717'	201 01 0 00 000014 	RCREL1:	MOVEI	AC1,.RCREL		;Get function code
   974	010720'	201 02 0 00 010741'		MOVEI	AC2,RCRELB		;Set up pointer to .Rcrel jsys block
   975	010721'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
   976	010722'	254 00 0 00 010736'		 JRST	RCREL4			;Error return
   977	010723'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 26
RMTCNM	MAC	10-Jun-85 15:20		RCREL SUBROUTINE                                                                   SEQ 0105

   978
   979	010724'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
   980	010725'	254 00 0 00 010732'		 JRST	RCREL3			; No
   981
   982	010726'	037 01 0 00 016133'		PMSG	<.....P[ORT [ID # >
   983	010727'	200 00 0 00 010741'		MOVE	AC0,RCRELB+.LMCID	;Get port id number
   984	010730'	037 15 0 00 000000 		PNTDEC
   985	010731'	037 03 0 00 000001 		PCRLF
   986
   987	010732'	262 17 0 00 000000 	RCREL3:	GETIT	<AC0,AC1,AC2>		;Restore acs
   988	010733'	262 17 0 00 000001 
   989	010734'	262 17 0 00 000002 
   990	010735'	263 17 0 00 000000 		RTN
   991
   992					;Jsys failure comes here
   993
   994	010736'	037 01 0 00 016155'	RCREL4:	PMSG	<^.RCREL JSYS F[AILURE - ^>
   995	010737'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
   996	010740'	254 00 0 00 010732'		JRST	RCREL3			;Take jsys error return
   997
   998					;.Rcrel jsys argument block
   999
  1000	010741'	000000	000000		RCRELB:	0				;Channel-id (Port #)
  1001	010742'	000000	000000			0				;Dest addr (hi = byte 0,1,2,3,z)
  1002	010743'	000000	000000			0				;Dest addr (lo = byte 4,5,z,z,z)
  1003
  1004
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 27
RMTCNM	MAC	10-Jun-85 15:20		RCSND SUBROUTINE                                                                   SEQ 0106

  1005					SUBTTL	RCSND SUBROUTINE
  1006					;#**********************************************************************
  1007					;* RCSND subroutine - SEND CONSOLE COMMAND
  1008					;  
  1009					;  This function sends ASCII console command data to the remote console
  1010					;  & polls for response data. With no command data, this function may be
  1011					;  used to poll for more response data without sending a command.
  1012					;
  1013					;  1. Put the Response Buffer Ptr & Response Buffer Length on the data stack.
  1014					;  2. Call this routine via "GO RCSND". 
  1015					;  3. Return +1 if a jsys error occurs.
  1016					;     Return +2 if successful...The data stack will contain the Request Number
  1017					;     for later .RCPOL/.RCABT/.RCSTS calls.
  1018					;#**********************************************************************
  1019
  1020	010744'	261 17 0 00 000002 	RCSND:	PUTIT	<AC2,AC1,AC0>		;Save some acs
  1021	010745'	261 17 0 00 000001 
  1022	010746'	261 17 0 00 000000 
  1023					;Fill .rcsnd jsys arg block
  1024
  1025	010747'	200 00 0 00 015041'		MOVE	PRTNBR			;get selected port number
  1026	010750'	332 00 0 00 000442'		SKIPE	BRKFLG			;command break flag set?
  1027	010751'	661 00 0 00 000002 		 TLO	AC0,(LM%CBF)		; yes, set B1 for arg block
  1028	010752'	661 00 0 00 000001 		TLO	AC0,(LM%MNO)		;assume flag = 1 for now
  1029	010753'	200 01 0 00 000446'		MOVE	AC1,MNOFLG		;get message number flag
  1030	010754'	606 01 0 00 000001 		TRNN	AC1,1B35		;skip if = 1
  1031	010755'	621 00 0 00 000001 		 TLZ	AC0,(LM%MNO)		; else we assumed wrong
  1032	010756'	202 00 0 00 011022'		MOVEM	RCSNDB+.LMCID		;put in arg block
  1033	010757'	402 00 0 00 000442'		SETZM	BRKFLG			;clear flag for next time
  1034
  1035	010760'	120 00 0 00 015042'		DMOVE	AC0,TARADH		;Put hi/lo dest addr in
  1036	010761'	124 00 0 00 011023'		DMOVEM	AC0,RCSNDB+.LMDST	; jsys arg block
  1037
  1038	010762'	400 00 0 00 000000 		SETZ	AC0,			;Assign interrupt channel (AIC) &
  1039	010763'	661 00 0 00 400001 		TLO	AC0,(LM%AIC ! 1B17)	; response (RCPOLL) to interr on chan 1
  1040	010764'	202 00 0 00 011025'		MOVEM	AC0,RCSNDB+.LMREQ	; & put in jsys arg block
  1041
  1042	010765'	262 16 0 00 011026'		POPD	<RCSNDB+.LMRBL,RCSNDB+.LMRBP>
  1043	010766'	262 16 0 00 011027'
  1044	010767'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1045	010770'	254 00 0 00 010776'		 JRST	RCSND1			; No
  1046
  1047					;Print the target node address 
  1048
  1049	010771'	037 01 0 00 016162'		PMSG	<S[ENDING TO [R[EMOTE [C[ONSOLE OF TARGET NODE ADDRESS: >
  1050	010772'	261 16 0 00 015042'		PUSHD	<TARADH>	 	;Push hex digits 1-8
  1051	010773'	261 16 0 00 015043'		PUSHD	<TARADL> 		;Push hex digits 9-12
  1052	010774'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
  1053	010775'	037 03 0 00 000001 		PCRLF
  1054
  1055	010776'	201 01 0 00 000015 	RCSND1:	MOVEI	AC1,.RCSND		;Get function code
  1056	010777'	201 02 0 00 011022'		MOVEI	AC2,RCSNDB		;Set up pointer to .Rcsnd jsys block
  1057	011000'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
  1058	011001'	254 00 0 00 011017'		 JRST	RCSND4			;Error return
  1059	011002'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 28
RMTCNM	MAC	10-Jun-85 15:20		RCSND SUBROUTINE                                                                   SEQ 0107

  1060
  1061	011003'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1062	011004'	254 00 0 00 011011'		 JRST	RCSND2			; No
  1063
  1064	011005'	037 01 0 00 016035'		PMSG	<.....R[EQUEST # >
  1065	011006'	550 00 0 00 011025'		HRRZ	AC0,RCSNDB+.LMREQ	;Get request number
  1066	011007'	037 15 0 00 000000 		PNTDEC
  1067	011010'	037 03 0 00 000001 		PCRLF
  1068
  1069	011011'	550 00 0 00 011025'	RCSND2:	HRRZ	AC0,RCSNDB+.LMREQ
  1070	011012'	261 16 0 00 000000 		PUSHD	<AC0>			;Push Req # on data stack
  1071
  1072	011013'	262 17 0 00 000000 	RCSND3:	GETIT	<AC0,AC1,AC2>		;Restore acs
  1073	011014'	262 17 0 00 000001 
  1074	011015'	262 17 0 00 000002 
  1075	011016'	263 17 0 00 000000 		RTN
  1076
  1077					;Jsys failure comes here
  1078
  1079	011017'	037 01 0 00 015732'	RCSND4:	PMSG	<^.RCSND JSYS F[AILURE - ^>
  1080	011020'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
  1081	011021'	254 00 0 00 011013'		JRST	RCSND3			;Take jsys error return
  1082
  1083					;.Rcsnd jsys argument block
  1084
  1085	011022'	000000	000000		RCSNDB:	0				;Cmd break flag,,Chan-id (port #)
  1086	011023'	000000	000000			0				;Dest addr (hi = byte 0,1,2,3,z)
  1087	011024'	000000	000000			0				;Dest addr (lo = byte 4,5,z,z,z)
  1088	011025'	000000	000000			0				;Int chan #,,Req # ret by jsys
  1089										 ;Int chan #... 0 = no interrupt
  1090										 ;req # for .RCPOL/.RCABT/.RCSTS calls
  1091	011026'	000000	000000			0				;Response Buffer Length
  1092	011027'	000000	000000			0				;Response Buffer Pointer
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 29
RMTCNM	MAC	10-Jun-85 15:20		RCPOL SUBROUTINE                                                                   SEQ 0108

  1093					SUBTTL	RCPOL SUBROUTINE
  1094					;#**********************************************************************
  1095					;* RCPOL subroutine - CONSOLE RESPONSE POLL
  1096					;
  1097					;  This function polls for completion of the SEND CONSOLE COMMAND fuction.
  1098					;  
  1099					;  1. Put the Response Buffer Ptr & Response Buffer Length on the data stack.
  1100					;  2. Call this routine via "GO RCPOL". 
  1101					;  3. Return +1 if a jsys error occurs.
  1102					;     Return +2 if successful.
  1103					;  4. Upon successful ret, RCPOLB+.LMRBL will contain the Remote Console Buffer
  1104					;     Message Length returned by the jsys.
  1105					;#**********************************************************************
  1106
  1107	011030'	261 17 0 00 000002 	RCPOL:	PUTIT	<AC2,AC1,AC0>		;Save some acs
  1108	011031'	261 17 0 00 000001 
  1109	011032'	261 17 0 00 000000 
  1110					;Fill .rcpol jsys arg block
  1111
  1112	011033'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
  1113	011034'	202 00 0 00 011076'		MOVEM	RCPOLB+.LMCID
  1114
  1115	011035'	550 00 0 00 011025'		HRRZ	RCSNDB+.LMREQ		;Req # from .RCSND
  1116	011036'	552 00 0 00 011101'		HRRZM	RCPOLB+.LMREQ		; to .RCPOL jsys block
  1117
  1118	011037'	262 16 0 00 011102'		POPD	<RCPOLB+.LMRBL,RCPOLB+.LMRBP>
  1119	011040'	262 16 0 00 011103'
  1120	011041'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1121	011042'	254 00 0 00 011050'		 JRST	RCPOL1			; No
  1122
  1123					;Print the target node address 
  1124
  1125	011043'	037 01 0 00 016174'		PMSG	<P[OLLING [R[EMOTE [C[ONSOLE OF TARGET NODE ADDRESS: >
  1126	011044'	261 16 0 00 015042'		PUSHD	<TARADH>	 	;Push hex digits 1-8
  1127	011045'	261 16 0 00 015043'		PUSHD	<TARADL> 		;Push hex digits 9-12
  1128	011046'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
  1129	011047'	037 03 0 00 000001 		PCRLF
  1130
  1131	011050'	201 01 0 00 000016 	RCPOL1:	MOVEI	AC1,.RCPOL		;Get function code
  1132	011051'	201 02 0 00 011076'		MOVEI	AC2,RCPOLB		;Set up pointer to .Rcpol jsys block
  1133	011052'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
  1134	011053'	254 00 0 00 011073'		 JRST	RCPOL4			;Error return
  1135	011054'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 30
RMTCNM	MAC	10-Jun-85 15:20		RCPOL SUBROUTINE                                                                   SEQ 0109

  1136
  1137	011055'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1138	011056'	254 00 0 00 011067'		 JRST	RCPOL3			; No
  1139
  1140	011057'	037 01 0 00 016035'		PMSG	<.....R[EQUEST # >
  1141	011060'	550 00 0 00 011101'		HRRZ	AC0,RCPOLB+.LMREQ	;Get request number
  1142	011061'	037 15 0 00 000000 		PNTDEC
  1143	011062'	037 03 0 00 000001 		PCRLF
  1144
  1145	011063'	037 01 0 00 016106'		PMSG	<.....R[ETURNED MESSAGE LENGTH = >
  1146	011064'	554 00 0 00 011102'		HLRZ	AC0,RCPOLB+.LMRBL 	;Get message length
  1147	011065'	037 15 0 00 000000 		PNTDEC
  1148	011066'	037 03 0 00 000001 		PCRLF
  1149
  1150	011067'	262 17 0 00 000000 	RCPOL3:	GETIT	<AC0,AC1,AC2>		;Restore acs
  1151	011070'	262 17 0 00 000001 
  1152	011071'	262 17 0 00 000002 
  1153	011072'	263 17 0 00 000000 		RTN
  1154
  1155					;Jsys failure comes here
  1156
  1157	011073'	037 01 0 00 016004'	RCPOL4:	PMSG	<^.RCPOL JSYS F[AILURE - ^>
  1158	011074'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
  1159	011075'	254 00 0 00 011067'		JRST	RCPOL3			;Take jsys error return
  1160
  1161					;.Rcpol jsys argument block
  1162
  1163	011076'	000000	000000		RCPOLB:	0				;Ret Data Lost Flags,,Chan-id (port #)
  1164	011077'	000000	000000			0				;not used
  1165	011100'	000000	000000			0				;not used
  1166	011101'	000000	000000			0				;Request # from .RCSND jsys ret.
  1167	011102'	000000	000000			0				;Ret msg len,,Response Buffer Length
  1168	011103'	000000	000000			0				;Response Buffer Pointer
  1169
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 31
RMTCNM	MAC	10-Jun-85 15:20		RCABT SUBROUTINE                                                                   SEQ 0110

  1170					SUBTTL	RCABT SUBROUTINE
  1171					;#***************************************************************************
  1172					;* RCABT subroutine - ABORT OUTSTANDING REMOTE CONSOLE REQUEST.
  1173					;
  1174					;  1. Push the Request Number on the data stack (from .RCRID/.RCRCT/.RCSND)
  1175					;  2. Call this routine via "GO RCABT"
  1176					;  3. Return +1 If a jsys error occured.
  1177					;     Return +2 If successful.
  1178					;#***************************************************************************
  1179
  1180	011104'	261 17 0 00 000002 	RCABT:	PUTIT	<AC2,AC1,AC0>		;Save some ac's
  1181	011105'	261 17 0 00 000001 
  1182	011106'	261 17 0 00 000000 
  1183					;Fill .rcabt jsys arg block
  1184
  1185	011107'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
  1186	011110'	202 00 0 00 011134'		MOVEM	RCABTB+.LMCID
  1187
  1188	011111'	262 16 0 00 011137'		POPD	<RCABTB+.LMREQ>		;Put Req # in jsys arg block
  1189	
  1190	011112'	201 01 0 00 000020 		MOVEI	AC1,.RCABT		;Get function code
  1191	011113'	201 02 0 00 011134'		MOVEI	AC2,RCABTB		;Set up pointer to .RCABT jsys block
  1192	011114'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
  1193	011115'	254 00 0 00 011131'		 JRST	RCABT4			;Error return
  1194	011116'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
  1195
  1196	011117'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1197	011120'	254 00 0 00 011125'		 JRST	RCABT3			; No
  1198
  1199	011121'	037 01 0 00 016205'		PMSG	<^A[BORTED [R[EQUEST # >
  1200	011122'	200 00 0 00 011137'		MOVE	AC0,RCABTB+.LMREQ	;Get request number
  1201	011123'	037 15 0 00 000000 		PNTDEC
  1202	011124'	037 03 0 00 000001 		PCRLF
  1203
  1204	011125'	262 17 0 00 000000 	RCABT3:	GETIT	<AC0,AC1,AC2>		;Restore acs
  1205	011126'	262 17 0 00 000001 
  1206	011127'	262 17 0 00 000002 
  1207	011130'	263 17 0 00 000000 		RTN
  1208
  1209					;Jsys failure comes here
  1210
  1211	011131'	037 01 0 00 016211'	RCABT4:	PMSG	<^.RCABT JSYS F[AILURE - ^>
  1212	011132'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
  1213	011133'	254 00 0 00 011125'		JRST	RCABT3			;Take jsys error return
  1214
  1215					;.rcabt jsys argument block
  1216
  1217	011134'	000000	000000		RCABTB:	0				;Channel-id
  1218	011135'	000000	000000			0				;Not used
  1219	011136'	000000	000000			0				;Not used
  1220	011137'	000000	000000			0				;Req # from .RCRID/.RCRCT/.RCSND
  1221
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 32
RMTCNM	MAC	10-Jun-85 15:20		RCSTS SUBROUTINE                                                                   SEQ 0111

  1222					SUBTTL	RCSTS SUBROUTINE
  1223					;#**********************************************************************
  1224					;* RCSTS - OBTAIN REMOTE CONSOLE REQUEST STATUS
  1225					;  
  1226					;  1. Put request number on the data stack from .RCRID/.RCRCT/.RCSND
  1227					;  2. Call this routine via "GO RCSTS". 
  1228					;  3. Return +1 If a jsys error occured.
  1229					;     Return +2 If successful
  1230					;  4. Upon successful return from the jsys, RCSTSB+.LMSTF will contain
  1231					;     the status from the previous request.
  1232					;#**********************************************************************
  1233
  1234	011140'	261 17 0 00 000002 	RCSTS:	PUTIT	<AC2,AC0>		;Save some ac's
  1235	011141'	261 17 0 00 000000 
  1236					;Fill .rcsts jsys arg block
  1237
  1238	011142'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
  1239	011143'	202 00 0 00 011222'		MOVEM	RCSTSB+.LMCID
  1240
  1241	011144'	262 16 0 00 011225'		POPD	RCSTSB+.LMREQ		;Request number to .Rcsts jsys block
  1242
  1243	011145'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1244	011146'	254 00 0 00 011153'		 JRST	RCSTS1			; No
  1245
  1246	011147'	037 01 0 00 016216'		PMSG	<C[HECKING REQUEST # >
  1247	011150'	200 00 0 00 011225'		MOVE	AC0,RCSTSB+.LMREQ	;Get request number
  1248	011151'	037 15 0 00 000000 		PNTDEC
  1249	011152'	037 03 0 00 000001 		PCRLF
  1250
  1251	011153'	201 01 0 00 000021 	RCSTS1:	MOVEI	AC1,.RCSTS		;Get function code
  1252	011154'	201 02 0 00 011222'		MOVEI	AC2,RCSTSB		;Set up pointer to .Rcsts jsys block
  1253	011155'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
  1254	011156'	254 00 0 00 011217'		 JRST	RCSTS4			;Error return
  1255	011157'	350 00 0 17 777776 		AOS	-2(P)			;Bump return address for success return
  1256
  1257	011160'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1258	011161'	254 00 0 00 011214'		 JRST	RCSTS3			; No
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 33
RMTCNM	MAC	10-Jun-85 15:20		RCSTS SUBROUTINE                                                                   SEQ 0112

  1259
  1260	011162'	037 01 0 00 016222'		PMSG	<.....S[TATUS = >
  1261	011163'	200 00 0 00 011223'		MOVE	AC0,RCSTSB+.LMSTF	;Get request status
  1262	011164'	037 15 0 00 000000 		PNTDEC				; & print it
  1263
  1264	011165'	200 00 0 00 011223'		MOVE	AC0,RCSTSB+.LMSTF	;Get again
  1265	011166'	302 00 0 00 000000 		CAIE	AC0,.LMPND		;Pending?
  1266	011167'	254 00 0 00 011172'		 JRST	RCSTS5			; no
  1267	011170'	037 01 0 00 016225'		PMSG	< = P[ENDING>
  1268	011171'	254 00 0 00 011213'		JRST	RCSTS2
  1269
  1270	011172'	302 00 0 00 000001 	RCSTS5:	CAIE	AC0,.LMSUC		;Success?
  1271	011173'	254 00 0 00 011176'		 JRST	RCSTS6			; no
  1272	011174'	037 01 0 00 016227'		PMSG	< = S[UCCESS>
  1273	011175'	254 00 0 00 011213'		JRST	RCSTS2
  1274
  1275	011176'	302 00 0 00 000002 	RCSTS6:	CAIE	AC0,.LMABT		;Aborted?
  1276	011177'	254 00 0 00 011202'		 JRST	RCSTS7			; no
  1277	011200'	037 01 0 00 016231'		PMSG	< = A[BORTED>
  1278	011201'	254 00 0 00 011213'		JRST	RCSTS2
  1279
  1280	011202'	302 00 0 00 000003 	RCSTS7:	CAIE	AC0,.LMTXF		;Transmit failed?
  1281	011203'	254 00 0 00 011206'		 JRST	RCSTS8			; no
  1282	011204'	037 01 0 00 016233'		PMSG	< = T[RANSMIT [F[AILED>
  1283	011205'	254 00 0 00 011213'		JRST	RCSTS2
  1284
  1285	011206'	302 00 0 00 000004 	RCSTS8:	CAIE	AC0,.LMCCE		;Channel communication error?
  1286	011207'	254 00 0 00 011212'		 JRST	RCSTS9			; no
  1287	011210'	037 01 0 00 016237'		PMSG	< = C[HANNEL [C[OMMUNICATION [E[RROR>
  1288	011211'	254 00 0 00 011213'		JRST	RCSTS2
  1289
  1290	011212'	037 01 0 00 016245'	RCSTS9:	PMSG	< = U[NKNOWN [S[TATUS [T[YPE>
  1291	011213'	037 03 0 00 000001 	RCSTS2:	PCRLF
  1292
  1293	011214'	262 17 0 00 000000 	RCSTS3:	GETIT	<AC0,AC2>		;Restore AC's
  1294	011215'	262 17 0 00 000002 
  1295	011216'	263 17 0 00 000000 		RTN
  1296
  1297	011217'	037 01 0 00 016252'	RCSTS4:	PMSG	<^.RCSTS JSYS F[AILURE - ^>
  1298	011220'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
  1299	011221'	254 00 0 00 011214'		JRST	RCSTS3			;Take jsys error return
  1300
  1301					;.Rcsts jsys argument block
  1302
  1303	011222'	000000	000000		RCSTSB:	0				;Channel-id
  1304	011223'	000000	000000			0				;Status flags upon jsys return
  1305	011224'	000000	000000			0				;Channel status upon jsys return
  1306	011225'	000000	000000			0				;Req # from .RCRID/.RCRCT/.RCSND
  1307
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 34
RMTCNM	MAC	10-Jun-85 15:20		RCADR SUBROUTINE                                                                   SEQ 0113

  1308					SUBTTL	RCADR SUBROUTINE
  1309					;#***************************************************************************
  1310					;* RCADR subroutine - READ LOCAL ADDRESS
  1311					;
  1312					;  1. Call this routine via "GO RCADR"
  1313					;  2. Return +1 If a jsys error occured.
  1314					;     Return +2 If successful.
  1315					;  3. Return is immediate.
  1316					;     Hardware & physical address will appear in the argument block upon
  1317					;     successful return & the physical address stored in LOCADH/L.
  1318					;#***************************************************************************
  1319
  1320	011226'	261 17 0 00 000002 	RCADR:	PUTIT	<AC2,AC1,AC0>		;Save some ac's
  1321	011227'	261 17 0 00 000001 
  1322	011230'	261 17 0 00 000000 
  1323	011231'	200 00 0 00 015041'		MOVE	PRTNBR			;Selected port number
  1324	011232'	202 00 0 00 011265'		MOVEM	RCADRB+.LMCID
  1325
  1326	011233'	201 01 0 00 000022 		MOVEI	AC1,.RCADR		;Get function code
  1327	011234'	201 02 0 00 011265'		MOVEI	AC2,RCADRB		;Set up pointer to .rcadr arg block
  1328	011235'	260 17 0 00 011272'		GO	$LLMOP			;Do "LLMOP"
  1329	011236'	254 00 0 00 011262'		 JRST	RCADR4			;Error return
  1330	011237'	350 00 0 17 777775 		AOS	-3(P)			;Bump return address for success return
  1331
  1332	011240'	120 00 0 00 011270'		DMOVE	AC0,RCADRB+.LMPYA	;Put returned physical addr in LOCADH/L
  1333	011241'	124 00 0 00 015044'		DMOVEM	AC0,LOCADH
  1334
  1335	011242'	336 00 0 00 015065'		SKIPN	TRCFLG			;Trace enabled ?
  1336	011243'	254 00 0 00 011256'		 JRST	RCADR3			; No
  1337
  1338	011244'	037 01 0 00 016257'		PMSG	<L[OCAL [P[HYSICAL [A[DDRESS = >
  1339	011245'	261 16 0 00 015044'		PUSHD	<LOCADH,LOCADL>
  1340	011246'	261 16 0 00 015045'
  1341	011247'	260 17 0 00 011460'		GO	PRHEX
  1342	011250'	037 03 0 00 000001 		PCRLF
  1343
  1344	011251'	037 01 0 00 016265'		PMSG	<L[OCAL [H[ARDWARE [A[DDRESS = >
  1345	011252'	261 16 0 00 011266'		PUSHD	<RCADRB+.LMHWA,RCADRB+.LMHWA+1>
  1346	011253'	261 16 0 00 011267'
  1347	011254'	260 17 0 00 011460'		GO	PRHEX
  1348	011255'	037 03 0 00 000001 		PCRLF
  1349
  1350	011256'	262 17 0 00 000000 	RCADR3:	GETIT	<AC0,AC1,AC2>		;Restore acs
  1351	011257'	262 17 0 00 000001 
  1352	011260'	262 17 0 00 000002 
  1353	011261'	263 17 0 00 000000 		RTN
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 35
RMTCNM	MAC	10-Jun-85 15:20		RCADR SUBROUTINE                                                                   SEQ 0114

  1354
  1355					;Jsys failure comes here
  1356
  1357	011262'	037 01 0 00 016273'	RCADR4:	PMSG	<^.RCADR JSYS F[AILURE - ^>
  1358	011263'	260 17 0 00 011641'		GO	FJSYS			;Go report jsys error
  1359	011264'	254 00 0 00 011256'		JRST	RCADR3			;Take jsys error return
  1360
  1361					;.RCADR jsys argument block
  1362
  1363	011265'	000000	000000		RCADRB:	0					;Channel-id
  1364	011266'	044321	263600			44321,,263600	;hex 1-8,z  (for debug)	;Ret local hardware addr
  1365	011267'	465360	000000			465360,,0	;hex 9-C,z (for debug)	;  "	    "      "      "
  1366	011270'	044321	263600			44321,,263600	;for debug		;Ret local physical addr
  1367	011271'	465360	000000			465360,,0	;for debug		;  "        "      "      "
  1368
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 36
RMTCNM	MAC	10-Jun-85 15:20		LLMOP SUBROUTINE                                                                   SEQ 0115

  1369					SUBTTL	LLMOP SUBROUTINE
  1370					;#**************************************************************************
  1371					; This subroutine does the actual LLMOP% JSYS.
  1372					; 
  1373					; Enter with AC1 = function code
  1374					;	     AC2 = address of arg block
  1375					; If DEBUG is enabled, simulate the LLMOP.
  1376					; Return +1 if jsys error
  1377					; Return +2 if successful
  1378					;#***************************************************************************
  1379
  1380	011272'	332 00 0 00 015070'	$LLMOP:	SKIPE	DBGFLG			;Do real or fake ?
  1381	011273'	254 00 0 00 011277'		 JRST	$LLM5			; Simulate "LLMOP" for debug
  1382
  1383	011274'	104 00 0 00 000624 		LLMOP%				;Do "LLMOP" jsys
  1384	011275'	320 16 0 00 011315'		 ERJMP	$LLM3			;Failed
  1385	011276'	254 00 0 00 011314'		JRST	$LLM2			;Passed
  1386
  1387	011277'	302 01 0 00 000021 	$LLM5:	CAIE	AC1,.RCSTS		;Doing "OBTAIN STATUS" ?
  1388	011300'	254 00 0 00 011304'		 JRST	$LLM4			; no
  1389
  1390	011301'	201 02 0 00 000001 		MOVEI	AC2,.LMSUC		;Yes, set success bit
  1391	011302'	202 02 0 00 011223'		MOVEM	AC2,RCSTSB+.LMSTF	; Make successful
  1392	011303'	254 00 0 00 011314'		JRST	$LLM2			; Exit
  1393
  1394	011304'	302 01 0 00 000006 	$LLM4:	CAIE	AC1,.RCRID		;Doing "REQUEST-ID" ?	
  1395	011305'	254 00 0 00 011310'		 JRST	$LLM1			; no
  1396	011306'	350 00 0 00 010440'		AOS	RCRIDB+.LMREQ		;Yes, fake by increment request number
  1397	011307'	254 00 0 00 011314'		 JRST	$LLM2			; Exit
  1398
  1399	011310'	302 01 0 00 000012 	$LLM1:	CAIE	AC1,.RCRPY		;Doing "READ REMOTE CONSOLE REPLY" ?
  1400	011311'	254 00 0 00 011314'		 JRST	$LLM2			; no
  1401	011312'	201 02 0 00 000144 		MOVEI	AC2,^D100		;Yes, get ret message length in bytes
  1402	011313'	506 02 0 00 010630'		HRLM	AC2,RCRPYB+.LMRBL	;Put in .Rcrpy jsys block
  1403
  1404	011314'	350 00 0 17 000000 	$LLM2:	AOS	(P)			;Skip return if ok
  1405	011315'	263 17 0 00 000000 	$LLM3:	RTN
  1406
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 37
RMTCNM	MAC	10-Jun-85 15:20		RDSTIM SUBROUTINE                                                                  SEQ 0116

  1407					SUBTTL	RDSTIM SUBROUTINE
  1408					;#**********************************************************************
  1409					;* Rdstim subroutine
  1410					;
  1411					;  Read the current time since last time system was restarted.
  1412					;  Save that value and calculate and save a value of time 5 seconds later.
  1413					;#**********************************************************************
  1414
  1415	011316'	261 17 0 00 000001 	RDSTIM:	PUTIT	<AC1,AC2>		;Save some acs
  1416	011317'	261 17 0 00 000002 
  1417
  1418	011320'	104 00 0 00 000014 		TIME				;Do time jsys
  1419	011321'	202 01 0 00 015054'		MOVEM	AC1,TIMST		;Save it
  1420
  1421	011322'	271 01 0 00 011610 		ADDI	AC1,^D5000		;Add 5 seconds to the current time
  1422
  1423	011323'	332 00 0 00 015065'		SKIPE	TRCFLG			;Tracing enabled ?
  1424	011324'	271 01 0 00 165140 		 ADDI	AC1,^D<1000*60>		; Yes, 60 seconds more for typeouts
  1425
  1426	011325'	202 01 0 00 015055'		MOVEM	AC1,TIMEND		;Save it	
  1427	011326'	262 17 0 00 000002 		GETIT	<AC2,AC1>		;Restore acs
  1428	011327'	262 17 0 00 000001 
  1429	011330'	263 17 0 00 000000 		RTN
  1430
  1431					;#**********************************************************************
  1432					;* OTIME subroutine
  1433					;
  1434					;  This subroutine reads the current time and compares that value with
  1435					;  TIMEND that was calculated in the RDSTIM  subroutine.
  1436					;  This is used to determine if 5 seconds has elapsed since calling
  1437					;  the RDSTIM subroutine.
  1438					;  
  1439					;  Return +1 if time exceeded
  1440					;  Return +2 if time not exceeded.
  1441					;#**********************************************************************
  1442
  1443	011331'	261 17 0 00 000001 	OTIME:	PUTIT	<AC1,AC2>		;Save some acs
  1444	011332'	261 17 0 00 000002 
  1445
  1446	011333'	104 00 0 00 000014 		TIME				;Do time jsys
  1447
  1448	011334'	317 01 0 00 015055'		CAMG	AC1,TIMEND		;Has current time exceeded timend ?
  1449	011335'	350 00 0 17 777776 		 AOS	-2(P)			; No, bump for skip return
  1450
  1451	011336'	262 17 0 00 000002 		GETIT	<AC2,AC1>		;Restore acs
  1452	011337'	262 17 0 00 000001 
  1453	011340'	263 17 0 00 000000 		RTN
  1454
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 38
RMTCNM	MAC	10-Jun-85 15:20		HEX SUBROUTINE                                                                     SEQ 0117

  1455					SUBTTL	HEX SUBROUTINE
  1456					;#**********************************************************************
  1457					;* HEX subroutine
  1458					;
  1459					;  This subroutine is called from SELECT, DESELECT, REQ-ID & READ COUNTERS
  1460					;  from DNISP to read in a 12 digit hex node address.
  1461					;  When inputting the 12 digit address the digits will be in the form:
  1462					;  
  1463					;  AC10 = Hi addr = z,z,z,z,z,z,1,2,3     ==>  rejust to: 1,2,3,4,5,6,7,8,z 
  1464					;  AC11 = Lo addr = 4,5,6,7,8,9,10,11,12  ==>  rejust to: 9,10,11,12,z,z,z,z,z
  1465					;
  1466					;  The bytes will then be in the form:	Hi = 0,1,2,3,z
  1467					;					Lo = 4,5,z,z,z
  1468					;
  1469					;  This subroutine is also called to read in a 16 digit PASSWORD from RMTCNP
  1470					;  When inputting the 16 digit password, the digits will be in the form:
  1471					;
  1472					;  AC10 = Hi = z,z,1,2,3,4,5,6,7	==> rejust to: 1,2,3,4,5,6,7,8,z
  1473					;  AC11 = Lo = 8,9,10,11,12,13,14,15,16 ==> rejust to: 9,10,11,12,13,14,15,16,z
  1474					;
  1475					;  PWSWAP will then re-arrange the digits to be:
  1476					;
  1477					;  AC10 = Hi = 15,16,13,14,11,12,9,10,z	 =  bytes 7,6,5,4,z
  1478					;  AC11 = Lo = 7,8,5,6,3,4,1,2,z         =  bytes 3,2,1,0,z
  1479					;
  1480					;  Hyphens will be ignored.
  1481					;  Any other non hex digit will cause this subroutine to exit.
  1482					;#**********************************************************************
  1483
  1484	011341'	403 10 0 00 000011 	HEX:	SETZB	AC10,AC11		;Clear ac10 and ac11 
  1485	011342'	402 00 0 00 000004 		SETZM	AC4			;Set digit count to 0
  1486	011343'	200 05 0 00 016300'		MOVE	AC5,[POINT 7,ATOM]	;Set up byte pointer atom buffer
  1487
  1488	011344'	134 00 0 00 000005 	HEXA:	ILDB	AC0,AC5			;Read in a char
  1489	011345'	322 00 0 00 011372'		JUMPE	AC0,HEXC		; 0 = end of field, rejustify it
  1490	011346'	301 00 0 00 000060 		CAIL	AC0,60			;Less than a 0 ?
  1491	011347'	303 00 0 00 000071 		CAILE	AC0,71			;Greater than a 9 ?
  1492	011350'	254 00 0 00 011355'		 JRST	HEXD			; Yes check for a-f
  1493
  1494	011351'	275 00 0 00 000060 		SUBI	AC0,60			;No, so convert char to hex
  1495
  1496	011352'	245 10 0 00 000004 	HEXB:	ROTC	AC10,4			;Left 4 places (combined ac10/11)
  1497	011353'	270 11 0 00 000000 		ADD	AC11,AC0		;Add new number to ac11
  1498	011354'	344 04 0 00 011344'		AOJA	AC4,HEXA		;Bump digit counter and go get next
  1499
  1500	011355'	301 00 0 00 000101 	HEXD:	CAIL	AC0,"A"			;Less than an "A"
  1501	011356'	303 00 0 00 000106 		CAILE	AC0,"F"			;Greater than an "F"
  1502	011357'	254 00 0 00 011362'		 JRST	HEXE			; Yes, see if lower case characters
  1503	011360'	275 00 0 00 000067 		SUBI	AC0,67			;Convert char into hex number
  1504	011361'	254 00 0 00 011352'		JRST	HEXB			;Pack it into the hex node number
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 39
RMTCNM	MAC	10-Jun-85 15:20		HEX SUBROUTINE                                                                     SEQ 0118

  1505
  1506	011362'	301 00 0 00 000141 	HEXE:	CAIL	AC0,"A"+40		;Less than an a
  1507	011363'	303 00 0 00 000146 		CAILE	AC0,"F"+40		;Greater than an f
  1508	011364'	254 00 0 00 011367'		 JRST	HEXG			; Yes, see if hyphen
  1509	011365'	275 00 0 00 000127 		SUBI	AC0,40+67		;Make lower case into hex
  1510	011366'	254 00 0 00 011352'		JRST	HEXB			;Pack it into the hex node number
  1511
  1512	011367'	302 00 0 00 000055 	HEXG:	CAIE	AC0,"-"			;hyphen?
  1513	011370'	254 00 0 00 011401'		 JRST	HEXX			; no, error...exit
  1514	011371'	254 00 0 00 011344'		JRST	HEXA			;yes, ignore & input next char
  1515
  1516	011372'	336 00 0 00 000023'	HEXC:	SKIPN	PWFLG			;Doing PASSWORD?
  1517	011373'	254 00 0 00 011400'		 JRST	HEXF			; No, do ADDRESS
  1518	011374'	245 10 0 00 000004 		ROTC	AC10,4			;Yes, left 4 places combined
  1519	011375'	241 10 0 00 000004 		ROT	AC10,4
  1520	011376'	260 17 0 00 011434'		GO	PWSWAP			;Swap password bytes around
  1521	011377'	254 00 0 00 011401'		JRST	HEXX			;Exit
  1522
  1523	011400'	260 17 0 00 011402'	HEXF:	GO	REJUS			;Rejustify address
  1524
  1525	011401'	263 17 0 00 000000 	HEXX:	RTN
  1526
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 40
RMTCNM	MAC	10-Jun-85 15:20		REJUS SUBROUTINE                                                                   SEQ 0119

  1527					SUBTTL	REJUS SUBROUTINE
  1528					;#**********************************************************************
  1529					;* REJUS  subroutine
  1530					;
  1531					;  Rejustifies a node address to the standard format used by 
  1532					;  LLMOP jsys's arg block.
  1533					;
  1534					;  1. Enter with the Hi address in AC10
  1535					;		   & Lo address in AC11
  1536					;  2. Call this subroutine via GO REJUS.
  1537					;  
  1538					;  Upon return, AC10 & AC11 will be in the following format:
  1539					;
  1540					;  AC10 = Hi addr = x,x,x,x,x,x,1,2,3     ==>  rejust to: 1,2,3,4,5,6,7,8,z 
  1541					;  AC11 = Lo addr = 4,5,6,7,8,9,10,11,12  ==>  rejust to: 9,10,11,12,z,z,z,z,z
  1542					;#**********************************************************************
  1543
  1544	011402'	261 17 0 00 000003 	REJUS:	PUTIT	<AC3,AC2,AC1>		;Save some ac's 
  1545	011403'	261 17 0 00 000002 
  1546	011404'	261 17 0 00 000001 
  1547	011405'	402 00 0 00 000001 		SETZM	AC1			;Clear ac1
  1548	011406'	135 02 0 00 016301'		LDB	AC2,[POINT 8,AC11,^D27]	;Get hex digits 9 and 10
  1549	011407'	137 02 0 00 016302'		DPB	AC2,[POINT 8,AC1,7]	;Put it in ac1  
  1550
  1551	011410'	135 02 0 00 016303'		LDB	AC2,[POINT 8,AC11,^D35]	;Get hex digits 11 and 12
  1552	011411'	137 02 0 00 016304'		DPB	AC2,[POINT 8,AC1,^D15]	;Put it in ac1  
  1553	011412'	202 01 0 00 000003 		MOVEM	AC1,AC3			;Store rejustified lo address
  1554
  1555	011413'	402 00 0 00 000001 		SETZM	AC1			;Clear ac1
  1556	011414'	135 02 0 00 016305'		LDB	AC2,[POINT 8,AC10,^D31] ;Get hex digits 1 and 2
  1557	011415'	137 02 0 00 016302'		DPB	AC2,[POINT 8,AC1,7]	;Put them in ac1
  1558
  1559	011416'	135 02 0 00 016306'		LDB	AC2,[POINT 4,AC10,^D35] ;Get hex digit 3
  1560	011417'	137 02 0 00 016307'		DPB	AC2,[POINT 4,AC1,^D11]	;Put it in ac1  
  1561
  1562	011420'	135 02 0 00 016310'		LDB	AC2,[POINT 4,AC11,^D3]  ;Get hex digit 4
  1563	011421'	137 02 0 00 016311'		DPB	AC2,[POINT 4,AC1,^D15]	;Put it in ac1  
  1564
  1565	011422'	135 02 0 00 016312'		LDB	AC2,[POINT 8,AC11,^D11] ;Get hex digits 5 and 6
  1566	011423'	137 02 0 00 016313'		DPB	AC2,[POINT 8,AC1,^D23]	 ;Put it in ac1  
  1567
  1568	011424'	135 02 0 00 016314'		LDB	AC2,[POINT 8,AC11,^D19] ;Get hex digits 7 and 8
  1569	011425'	137 02 0 00 016315'		DPB	AC2,[POINT 8,AC1,^D31]	;Put it in ac1  
  1570
  1571	011426'	202 01 0 00 000010 		MOVEM	AC1,AC10		;Put rejustified Hi addr back in AC10
  1572	011427'	202 03 0 00 000011 		MOVEM	AC3,AC11		;Put rejustified Lo addr back in AC11
  1573
  1574	011430'	262 17 0 00 000001 		GETIT	<AC1,AC2,AC3>		;Restore the ac's 
  1575	011431'	262 17 0 00 000002 
  1576	011432'	262 17 0 00 000003 
  1577	011433'	263 17 0 00 000000 		RTN
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 41
RMTCNM	MAC	10-Jun-85 15:20		PWSWAP SUBROUTINE                                                                  SEQ 0120

  1578					SUBTTL	PWSWAP SUBROUTINE
  1579					;#**********************************************************************
  1580					;* PWSWAP  subroutine
  1581					;
  1582					;  Swaps the password bytes as shown below:
  1583					;
  1584					;  1. Enter with the Hi password in AC10
  1585					;		   & Lo password in AC11
  1586					;
  1587					;  2. Call this subroutine via GO PWSWAP
  1588					;  
  1589					;  Upon return, AC10 & AC11 will be in the following format:
  1590					;
  1591					;  AC10 = Hi bytes = 0,1,2,3,z	==>  rejust to: 7,6,5,4,z
  1592					;  AC11 = Lo bytes = 4,5,6,7,z	==>  rejust to: 3,2,1,0,z
  1593					;#**********************************************************************
  1594
  1595	011434'	403 00 0 00 000001 	PWSWAP:	SETZB	AC0,AC1
  1596	011435'	200 06 0 00 016316'		MOVE	AC6,[POINT 8,AC10]	;Set byte pointer
  1597
  1598	011436'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 0
  1599	011437'	137 05 0 00 016315'		DPB	AC5,[POINT 8,AC1,31]	; & put in AC1
  1600	011440'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 1
  1601	011441'	137 05 0 00 016313'		DPB	AC5,[POINT 8,AC1,23]	; & put in AC1
  1602	011442'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 2
  1603	011443'	137 05 0 00 016304'		DPB	AC5,[POINT 8,AC1,15]	; & put in AC1
  1604	011444'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 3
  1605	011445'	137 05 0 00 016302'		DPB	AC5,[POINT 8,AC1,7]	; & put in AC1
  1606	011446'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 4
  1607	011447'	137 05 0 00 016317'		DPB	AC5,[POINT 8,AC0,31]	; & put in AC0
  1608	011450'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 5
  1609	011451'	137 05 0 00 016320'		DPB	AC5,[POINT 8,AC0,23]	; & put in AC0
  1610	011452'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 6
  1611	011453'	137 05 0 00 016321'		DPB	AC5,[POINT 8,AC0,15]	; & put in AC0
  1612	011454'	134 05 0 00 000006 		ILDB	AC5,AC6			;Get byte 7
  1613	011455'	137 05 0 00 016322'		DPB	AC5,[POINT 8,AC0,7]	; & put in AC0
  1614
  1615	011456'	120 10 0 00 000000 		DMOVE	AC10,AC0		;AC0,1 to AC10,11
  1616	011457'	263 17 0 00 000000 		RTN
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 42
RMTCNM	MAC	10-Jun-85 15:20		PRINT 12 DIGIT HEX NUMBER SUBROUTINE                                               SEQ 0121

  1617					SUBTTL	PRINT 12 DIGIT HEX NUMBER SUBROUTINE
  1618					;#**********************************************************************
  1619					;* PRHEX prints a 12 digit hex node address.
  1620					;
  1621					;  1. Put the Hi address (hex digits 1 - 8)
  1622					;     followed by the Lo address (hex digits 9 - 12) on the data stack.
  1623					;  2. Call this subroutine by "GO PRHEX".
  1624					;  3. A hyphen will be printed between every 2 hex digits.
  1625					;#**********************************************************************
  1626
  1627	011460'	261 17 0 00 000000 	PRHEX:	PUTIT	<AC0,AC1,AC3,AC4,AC5>	;Save acs
  1628	011461'	261 17 0 00 000001 
  1629	011462'	261 17 0 00 000003 
  1630	011463'	261 17 0 00 000004 
  1631	011464'	261 17 0 00 000005 
  1632
  1633	011465'	262 16 0 00 000004 		POPD	<AC4,AC3>		;Get lo,hi hex addr
  1634	011466'	262 16 0 00 000003 
  1635	011467'	201 05 0 00 000014 		MOVEI	AC5,^D12		;Initialize 12 digits to type
  1636	011470'	241 03 0 00 777774 		ROT	AC3,-^D4		;Right justify Hi address
  1637	011471'	400 01 0 00 000000 		SETZ	AC1,			;Char counter for hyphens
  1638
  1639	011472'	245 03 0 00 000004 	PRHEXA:	ROTC	AC3,^D4			;Put digit to be printed at far left
  1640	011473'	135 00 0 00 016323'		LDB	AC0,[POINT 4,AC3,3]	;Copy hex digit to ac0
  1641	011474'	271 00 0 00 000060 		ADDI	AC0,60			;Make an ascii character
  1642
  1643	011475'	303 00 0 00 000071 		CAILE	AC0,"9"			;Less than a "9" ?
  1644	011476'	271 00 0 00 000007 		 ADDI	AC0,7			; No, add 7 more to get a-f
  1645
  1646	011477'	037 12 0 00 000000 		PNTCHR				;Print the hex digit
  1647	011500'	340 01 0 00 000000 		AOJ	AC1,			;Bump char ctr
  1648	011501'	302 01 0 00 000002 		CAIE	AC1,2			;2nd char?
  1649	011502'	254 00 0 00 011510'		 JRST	PRHEXB			; No
  1650	011503'	306 05 0 00 000001 		CAIN	AC5,1			;Last char?
  1651	011504'	254 00 0 00 011510'		 JRST	PRHEXB			; Yes
  1652	011505'	201 00 0 00 000055 		MOVEI	AC0,"-"			;Yes, print hyphen
  1653	011506'	037 12 0 00 000000 		PNTCHR
  1654	011507'	400 01 0 00 000000 		SETZ	AC1,			;Reset ctr
  1655	011510'	367 05 0 00 011472'	PRHEXB:	SOJG	AC5,PRHEXA		;Do next digit
  1656
  1657	011511'	262 17 0 00 000005 		GETIT	<AC5,AC4,AC3,AC1,AC0>	;Restore acs
  1658	011512'	262 17 0 00 000004 
  1659	011513'	262 17 0 00 000003 
  1660	011514'	262 17 0 00 000001 
  1661	011515'	262 17 0 00 000000 
  1662	011516'	263 17 0 00 000000 		RTN
  1663
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 43
RMTCNM	MAC	10-Jun-85 15:20		ASCIZ A 12 DIGIT HEX NUMBER SUBROUTINE                                             SEQ 0122

  1664					SUBTTL	ASCIZ A 12 DIGIT HEX NUMBER SUBROUTINE
  1665					;#**********************************************************************
  1666					;* UHEX subroutine
  1667					;
  1668					;  1. Asciz a 12 digit hex node address & put the 3 words on the data stack.
  1669					;  2  Put the hi address (hex digits 1,2,3).
  1670					;  3. Put the lo address (hex digits 4 thru 12) on the data stack.
  1671					;  4. Call this subroutine by "GO UHEX".
  1672					;  5. To remove the data do "POPD <X,Y,Z>
  1673					;     WHERE "X" IS ASCII DIGITS 1,2,3,4,5,
  1674					;           "Y" Is ascii digits 6,7,8,9,10
  1675					;	    "Z" is asciz digits 11,12 .
  1676					;#**********************************************************************
  1677
  1678	011517'	261 17 0 00 000000 	UHEX:	PUTIT	<AC0,AC1,AC3,AC4,AC5>	;Save acs
  1679	011520'	261 17 0 00 000001 
  1680	011521'	261 17 0 00 000003 
  1681	011522'	261 17 0 00 000004 
  1682	011523'	261 17 0 00 000005 
  1683	011524'	262 16 0 00 000004 		POPD	<AC4,AC3>		;Get hex word from data stack
  1684	011525'	262 16 0 00 000003 
  1685	011526'	201 05 0 00 000014 		MOVEI	AC5,^D12		;Initialize 12 digits to type
  1686	011527'	245 03 0 00 777764 		ROTC	AC3,-^D12		;Rotate 3 digits out of ac3
  1687	011530'	200 01 0 00 016324'		MOVE	AC1,[POINT 7,UHEXB]	;Get initial byte pointer
  1688
  1689	011531'	245 03 0 00 000004 	UHEXA:	ROTC	AC3,^D4			;Rotate digit into ac3
  1690	011532'	135 00 0 00 016325'		LDB	AC0,[POINT 4,AC3,35]	;Copy hex digit to ac0
  1691	011533'	271 00 0 00 000060 		ADDI	AC0,60			;Make an ascii character
  1692	011534'	303 00 0 00 000071 		CAILE	AC0,"9"			;Less than a "9" ?
  1693	011535'	271 00 0 00 000007 		 ADDI	AC0,7			; No, add 7 more to get a-f
  1694	011536'	136 00 0 00 000001 		IDPB	AC0,AC1			;Save the hex digit
  1695	011537'	367 05 0 00 011531'		SOJG	AC5,UHEXA		;Do next digit
  1696
  1697	011540'	261 16 0 00 011553'		PUSHD	<UHEXB+2,UHEXB+1,UHEXB>	;Put asciz'd node name on data stack
  1698	011541'	261 16 0 00 011552'
  1699	011542'	261 16 0 00 011551'
  1700	011543'	262 17 0 00 000005 		GETIT	<AC5,AC4,AC3,AC1,AC0>	;Restore acs
  1701	011544'	262 17 0 00 000004 
  1702	011545'	262 17 0 00 000003 
  1703	011546'	262 17 0 00 000001 
  1704	011547'	262 17 0 00 000000 
  1705	011550'	263 17 0 00 000000 		RTN
  1706
  1707	011551'				UHEXB:	BLOCK	3			;Storage for asciz'd node name
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 44
RMTCNM	MAC	10-Jun-85 15:20		ASCIZ A 12 DIGIT HEX NUMBER SUBROUTINE                                             SEQ 0123

  1708
  1709					;#**********************************************************************
  1710					; Wait1 waits 250 milli seconds
  1711					;#**********************************************************************
  1712
  1713	011554'	261 17 0 00 000001 	WAIT1:	PUTIT	AC1			;Save ac1
  1714	011555'	336 00 0 00 015065'		SKIPN	TRCFLG			;Tracing enabled ?
  1715	011556'	254 00 0 00 011561'		 JRST	WAIT1A			; No
  1716
  1717	011557'	201 01 0 00 000372 		MOVEI	AC1,^D250		;Setup for 250 milli seconds
  1718	011560'	104 00 0 00 000167 		DISMS				;Dismiss process for 250 milli seconds
  1719
  1720	011561'	262 17 0 00 000001 	WAIT1A:	GETIT	AC1			;Restore ac1
  1721	011562'	263 17 0 00 000000 		RTN
  1722
  1723
  1724
  1725
  1726
  1727
  1728					;#**********************************************************************
  1729					;  Some ERROR and ERROR1 calls use the following subroutines as
  1730					;  Additional  error print routines.
  1731					;#**********************************************************************
  1732
  1733	011563'	037 01 0 00 016326'	ER01:	PMSG	<^T[HE [TARGET NODE[ ADDRESS IS >
  1734	011564'	261 16 0 00 015042'		PUSHD	<TARADH>		;Push hex digits 1-8
  1735	011565'	261 16 0 00 015043'		PUSHD	<TARADL>	 	;Push hex digits 9-12
  1736	011566'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
  1737	011567'	037 03 0 00 000001 		PCRLF
  1738
  1739	011570'	037 01 0 00 016334'		PMSG	<^T[HE [NODE [ADDRESS FOR [REQ-ID & READ COUNTERS [IS >
  1740	011571'	261 16 0 00 015046'		PUSHD	<NODADH>		;Push hex digits 1-8
  1741	011572'	261 16 0 00 015047'		PUSHD	<NODADL>	 	;Push hex digits 9-12
  1742	011573'	260 17 0 00 011460'		GO	PRHEX			;Print the hex node address
  1743	011574'	037 03 0 00 000001 		PCRLF
  1744	011575'	263 17 0 00 000000 		RTN
  1745
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 45
RMTCNM	MAC	10-Jun-85 15:20		SPEAR SUBROUTINES                                                                  SEQ 0124

  1746					SUBTTL	SPEAR SUBROUTINES
  1747					;#**********************************************************************
  1748					; SPRS subroutine:
  1749					;
  1750					;  1. Reads the current date and time into location "SPRSX"
  1751					;  2. Reads the current spear entry packet count into location "SCNTS".
  1752					;#**********************************************************************
  1753
  1754	011576'	336 00 0 00 015067'	SPRS:	SKIPN	SPRFLG			;Skip if spear reporting is enabled
  1755	011577'	263 17 0 00 000000 		 RTN				; Return to code that called this code
  1756
  1757	011600'	261 17 0 00 000001 		PUTIT	<AC1>			;Save an ac 
  1758	011601'	260 17 0 00 011611'		GO	SPRP			;Go read spear entry packet count
  1759	011602'	262 16 0 00 011607'		POPD	<SCNTS>			;Save current spear count in "SCNTS"
  1760
  1761	011603'	104 00 0 00 000227 		GTAD				;Get time and day 
  1762	011604'	202 01 0 00 011610'		MOVEM	AC1,SPRSX		;Save time and day
  1763	011605'	262 17 0 00 000001 		GETIT	<AC1>			;Restore ac 
  1764	011606'	263 17 0 00 000000 		RTN				;Return to code that called this code
  1765
  1766	011607'	000000	000000		SCNTS:	0				;Spear error entry count 
  1767	011610'	000000	000000		SPRSX:	0				;Start date and time stored here
  1768
  1769					;#**********************************************************************
  1770					; SPRP subroutine
  1771					;
  1772					;  Read the current spear packet count, and put the value on
  1773					;  The data stack.
  1774					;  If the jsys fails, a message is typed and a fatal error occurs.
  1775					;  Call this subroutine via "GO SPRP".
  1776					;  When this subroutine returns, the current
  1777					;  Spear packet count is on the data stack.
  1778					;  To get the count, use "POPD <X>, 
  1779					;  Where "X" is the location you want the spear packet count to go to.
  1780					;#**********************************************************************
  1781
  1782	011611'	261 17 0 00 000001 	SPRP:	PUTIT	<AC1>			;Save an ac
  1783	011612'	200 01 0 00 016345'		MOVE	AC1,[XWD -2,SPRPB]	;Set up pointer
  1784	011613'	332 00 0 00 015070'		SKIPE	DBGFLG			;Bypass if debugging
  1785	011614'	254 00 0 00 011617'		 JRST	SPRPA
  1786
  1787	011615'	104 00 0 00 000530 		DIAG				;Do diag jsys
  1788	011616'	037200	016346'			FATALP	<^DIAG JSYS FAILED IN SPRP SUBROUTINE.^>
  1789
  1790	011617'	262 17 0 00 000001 	SPRPA:	GETIT	<AC1>			;Restore ac
  1791	011620'	261 16 0 00 011623'		PUSHD	<SPRPC>			;Put current spear count on data stack
  1792	011621'	263 17 0 00 000000 		RTN
  1793
  1794	011622'	000000	000110		SPRPB:	.DGRSC				;Read spear packet count 
  1795	011623'	000 00 0 00 000000 	SPRPC:	Z				;Jsys writes spear packet count here
  1796
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 46
RMTCNM	MAC	10-Jun-85 15:20		SPEAR SUBROUTINES                                                                  SEQ 0125

  1797
  1798					;#**********************************************************************
  1799					; SPRE subroutine:
  1800					;
  1801					;  1. Reads the current date and time into location "SPRSE"
  1802					;  2. Reads the current spear entry packet count into location "SCNTE".
  1803					;  3. Does a skip return if the spear entry packet count is different than 
  1804					;     When subroutine sprs was executed.
  1805					;
  1806					;  Subroutine "SPRS", which reads the current spear packet entry count must be
  1807					;  Executed before this subroutine.
  1808					;#**********************************************************************
  1809
  1810	011624'	336 00 0 00 015067'	SPRE:	SKIPN	SPRFLG			;Skip if spear reporting is enabled
  1811	011625'	263 17 0 00 000000 		 RTN
  1812
  1813	011626'	261 16 0 00 000001 		PUSHD	<AC1>			;Save an ac 
  1814	011627'	104 00 0 00 000227 		GTAD				;Get time and day 
  1815	011630'	202 01 0 00 011640'		MOVEM	AC1,SPRSE		;Save time and day
  1816
  1817	011631'	260 17 0 00 011611'		GO	SPRP			;Go read spear entry packet count
  1818	011632'	262 16 0 00 000001 		POPD	<AC1>			;Get current spear count
  1819
  1820	011633'	312 01 0 00 011607'		CAME	AC1,SCNTS		;Skip if count the same as when started
  1821	011634'	350 00 0 17 000000 		AOS	(P)			;Skip return. Error return. 
  1822
  1823	011635'	262 16 0 00 000001 		POPD	<AC1>			;Restore ac 
  1824	011636'	263 17 0 00 000000 		RTN
  1825
  1826	011637'	000000	000000		SCNTE:	0				;Spear error entry count 
  1827	011640'	000000	000000		SPRSE:	0				;Start date and time stored here
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 47
RMTCNM	MAC	10-Jun-85 15:20		SPEAR SUBROUTINES                                                                  SEQ 0126

  1828
  1829					;#**********************************************************************
  1830					; FJSYS subroutine
  1831					;
  1832					;  Reports a jsys failure.
  1833					;  The monitor error message is stored in buffer fjsybf and then printed.
  1834					;#**********************************************************************
  1835
  1836	011641'	261 17 0 00 000003 	FJSYS:	PUTIT	<AC3,AC2,AC1,AC0> 	;Save some acs
  1837	011642'	261 17 0 00 000002 
  1838	011643'	261 17 0 00 000001 
  1839	011644'	261 17 0 00 000000 
  1840	011645'	402 00 0 00 011665'		SETZM	FJSYBF			;Zero first word of buffer
  1841	011646'	201 01 0 00 400000 		MOVEI	AC1,.FHSLF		;Get the process handle
  1842	011647'	104 00 0 00 000012 		GETER				;Return with ac2 = (.Fhslf,,error code)
  1843	011650'	320 16 0 00 016355'		 ERJMP	[RTN]			;
  1844
  1845	011651'	561 01 0 00 011665'		HRROI	AC1,FJSYBF		;Get a pointer to store error text 
  1846	011652'	515 03 0 00 777014 		HRLZI	AC3,-^D500		;Set 500 byte limit on size of string
  1847	011653'	104 00 0 00 000011 		ERSTR				;Get the last jsys error string
  1848	011654'	320 16 0 00 016355'		 ERJMP	[RTN]			;Undefined error
  1849	011655'	320 16 0 00 016355'		 ERJMP	[RTN]			;Too large a string
  1850
  1851	011656'	037 00 0 00 011665'		PNTMSG	FJSYBF			;Print the monitor message
  1852	011657'	037 03 0 00 000001 		PCRLF
  1853	011660'	262 17 0 00 000000 		GETIT	<AC0,AC1,AC2,AC3> 	;Restore acs
  1854	011661'	262 17 0 00 000001 
  1855	011662'	262 17 0 00 000002 
  1856	011663'	262 17 0 00 000003 
  1857	011664'	263 17 0 00 000000 		RTN
  1858
  1859	011665'				FJSYBF:	BLOCK	^D201			;Storage for monitor error text
  1860
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 48
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0127

  1861					SUBTTL	RESERVE CONSOLE
  1862					;#**************************************************************************
  1863					;  1. Do Read Local address jsys & put the physical address in LOCADH/L.
  1864					;  2. Do a REQ-ID & put the SYS-ID into TTOBUF.
  1865					;  3. If FUNCTION indicates no "console carrier", boot via "NICE" protocol
  1866					;     & re-enter again.
  1867					;  4. If FUNCTION indicates "console carrier" & "not reserved", do 
  1868					;     a RESERVE CONSOLE jsys & re-enter again.
  1869					;  5. If FUNCTION indicates "console carrier" & "reserved", read the
  1870					;     CONSOLE USER & check that it's our "local-address".
  1871					;  6. Check that the HARDWARE ADDRESS returned in SYS-ID is the desired
  1872					;     "target" node address.
  1873					;  7. Check that the CONSOLE COMMAND SIZE & CONSOLE RESPONSE SIZE returned
  1874					;     in SYS-ID is consistent with buffer sizes allotted in the program.
  1875					;  8. Read the Reservation Timer, reduce it by 2 secs & store it in RESTIM.
  1876					;     To be used by LOOP to send RCPOLL's so that we dont timeout
  1877					;     & loose connection
  1878					;
  1879					;  Return+1 if unsuccessful
  1880					;  Return+2 if successful
  1881					;#***************************************************************************
  1882
  1883	012176'	261 17 0 00 000007 	RESCON:	PUTIT	<AC7,AC6,AC5,AC4,AC3,AC2,AC1,AC0>	;Save some ac's
  1884	012177'	261 17 0 00 000006 
  1885	012200'	261 17 0 00 000005 
  1886	012201'	261 17 0 00 000004 
  1887	012202'	261 17 0 00 000003 
  1888	012203'	261 17 0 00 000002 
  1889	012204'	261 17 0 00 000001 
  1890	012205'	261 17 0 00 000000 
  1891	012206'	402 00 0 00 015322'		SETZM	RBTCTR			;Clear remote boot counter
  1892	012207'	260 17 0 00 011226'		GO	RCADR			;Read local hardware & physical addr
  1893	012210'	254 00 0 00 012616'		 JRST	RESX			; & put physical addr in LOCADH/L
  1894
  1895	012211'	402 00 0 00 015321'		SETZM	PASCT			;For debug
  1896
  1897	012212'	336 00 0 00 015070'	RES1:	SKIPN	DBGFLG			;Debug?
  1898	012213'	254 00 0 00 012237'		 JRST	RES1D			;No
  1899
  1900	012214'	332 00 0 00 015321'		SKIPE	PASCT			;1'st pass?
  1901	012215'	254 00 0 00 012224'		 JRST	RES9			; no
  1902
  1903	012216'	201 00 0 00 000177 		MOVEI	AC0,177			;Yes, clear "RESERVED" in FUNCTION
  1904	012217'	202 00 0 00 014136'		MOVEM	AC0,REQT1
  1905
  1906	012220'	201 03 0 00 000005 		MOVEI	AC3,5			;Clear "CONSOLE USER" in SYS-ID
  1907	012221'	402 00 0 03 014143'		SETZM	REQT2(AC3)
  1908	012222'	365 03 0 00 012221'		SOJGE	AC3,.-1
  1909	012223'	254 00 0 00 012235'		JRST	RES4
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 49
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0128

  1910
  1911	012224'	201 00 0 00 000377 	RES9:	MOVEI	AC0,377			;Set "RESERVED" in FUNCTION
  1912	012225'	202 00 0 00 014136'		MOVEM	AC0,REQT1
  1913
  1914	012226'	201 03 0 00 000006 		MOVEI	AC3,6			;Set "CONSOLE USER" in SYS-ID to
  1915	012227'	400 04 0 00 000000 		SETZ	AC4,			; 123456789ABC
  1916	012230'	200 05 0 00 016356'		MOVE	AC5,[POINT 8,SLOCH]
  1917	012231'	200 06 0 00 016357'		MOVE	AC6,[POINT 36,REQT2]
  1918	012232'	134 04 0 00 000005 	RES9A:	ILDB	AC4,AC5			;Get SLOCH/L
  1919	012233'	136 04 0 00 000006 		IDPB	AC4,AC6			; & put it in REQT2
  1920	012234'	367 03 0 00 012232'		SOJG	AC3,RES9A		; repeat 6 times
  1921
  1922	012235'	200 00 0 00 016360'	RES4:	MOVE	AC0,[RTEND-REQTAB]	;Get table byte count
  1923	012236'	506 00 0 00 010630'		HRLM	AC0,RCRPYB+.LMRBL	; & fake the ret msg len
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 50
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0129

  1924
  1925					; Do a REQ-ID & put the SYS-ID into TTOBUF
  1926
  1927	012237'	260 17 0 00 013067'	RES1D:	GO	RRID
  1928
  1929					; Reset pointer to look for FUNCTION (info type 2)
  1930					; If no "console carrier", boot via RCRBT & re-enter again.
  1931					; If "console carrier" & "not reserved", do RESERVE CONSOLE & re-enter again.
  1932
  1933	012240'	200 02 0 00 015731'		MOVE	AC2,[POINT 8,TTOBUF]	;Set buffer ptr
  1934	012241'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  1935
  1936	012242'	322 07 0 00 012253'	RES1A:	JUMPE	AC7,RES10		;Exit if byte count = 0
  1937	012243'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  1938	012244'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  1939	012245'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  1940	012246'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  1941
  1942	012247'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  1943	012250'	254 00 0 00 012255'		 JRST	RES1B			; No, see if FUNCTION
  1944	012251'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  1945	012252'	366 07 0 00 012242'		SOJN	AC7,RES1A		;Try next info type if byte count not 0
  1946	012253'	037 01 0 00 016362'	RES10:	PMSG	<^C[ANNOT FIND [FUNCTION [IN [SYS-ID, E[XITING^>
  1947	012254'	254 00 0 00 012616'		JRST	RESX
  1948
  1949	012255'	306 01 0 00 000002 	RES1B:	CAIN	AC1,2			;Is it FUNCTION?
  1950	012256'	254 00 0 00 012265'		 JRST	RES1C			; yes
  1951										; no, go to next info type
  1952	012257'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  1953	012260'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  1954	012261'	133 00 0 00 000002 	RES11:	IBP	AC2			;Skip over data
  1955	012262'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  1956	012263'	367 00 0 00 012261'		SOJG	AC0,RES11		;Done?
  1957	012264'	254 00 0 00 012242'		JRST	RES1A			;Yes, try over
  1958
  1959	012265'	134 01 0 00 000002 	RES1C:	ILDB	AC1,AC2			;Go get the length
  1960	012266'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  1961	012267'	254 00 0 00 012275'		JRST	RES2			; Yes
  1962
  1963	012270'	037 01 0 00 016372'		PMSG	<^ F[UNCTION [I[NFO LENGTH IN ERROR, SHOULD BE 2, WAS >
  1964	012271'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  1965	012272'	037 15 0 00 000000 		PNTDEC				;Print ac0 and exit
  1966	012273'	037 03 0 00 000001 		PCRLF
  1967	012274'	254 00 0 00 012616'		JRST	RESX
  1968
  1969	012275'	134 01 0 00 000002 	RES2:	ILDB	AC1,AC2			;Get the data for lo byte
  1970
  1971	012276'	606 01 0 00 000040 		TRNN	AC1,1B30		;Console Carrier set?
  1972	012277'	254 00 0 00 012575'		 JRST	RES8			; No,I have to issue RCRBT
  1973	012300'	602 01 0 00 000200 		TRNE	AC1,1B28		;Console Reservation set?
  1974	012301'	254 00 0 00 012306'		 JRST	RES2A			; Yes, see by who
  1975	012302'	260 17 0 00 010632'		GO	RCRSV			;No, do Reserve Console Jsys
  1976	012303'	254 00 0 00 012616'		 JRST	RESX			; Jsys error return...exit
  1977	012304'	350 00 0 00 015321'		AOS	PASCT			;For debug
  1978	012305'	254 00 0 00 012212'		JRST	RES1			;See if we got it
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 51
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0130

  1979
  1980					;Reset pointer to look for CONSOLE USER (info type 3)
  1981					; & check to see if it is our "local address".
  1982
  1983	012306'	200 02 0 00 015731'	RES2A:	MOVE	AC2,[POINT 8,TTOBUF]	;Set buffer ptr
  1984	012307'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  1985
  1986	012310'	322 07 0 00 012321'	RES2B:	JUMPE	AC7,RES12		;Exit if byte count = 0
  1987	012311'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  1988	012312'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  1989	012313'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  1990	012314'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  1991
  1992	012315'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  1993	012316'	254 00 0 00 012323'		 JRST	RES2C			; No, see if CONSOLE USER
  1994	012317'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  1995	012320'	366 07 0 00 012310'		SOJN	AC7,RES2B		;Try next info type if byte count not 0
  1996	012321'	037 01 0 00 016403'	RES12:	PMSG	<^C[ANNOT FIND [CONSOLE USER [IN [SYS-ID, E[XITING^>
  1997	012322'	254 00 0 00 012616'		JRST	RESX
  1998
  1999	012323'	306 01 0 00 000003 	RES2C:	CAIN	AC1,3			;Is it CONSOLE USER?
  2000	012324'	254 00 0 00 012333'		 JRST	RES2D			; yes
  2001										; no, go to next info type
  2002	012325'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  2003	012326'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2004	012327'	133 00 0 00 000002 	RES13:	IBP	AC2			;Skip over data
  2005	012330'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2006	012331'	367 00 0 00 012327'		SOJG	AC0,RES13		;Done?
  2007	012332'	254 00 0 00 012310'		JRST	RES2B			;Yes, try over
  2008
  2009	012333'	134 01 0 00 000002 	RES2D:	ILDB	AC1,AC2			;Go get the length
  2010	012334'	306 01 0 00 000006 		CAIN	AC1,6			;Is it 6 ?
  2011	012335'	254 00 0 00 012343'		 JRST	RES3			; Yes, see if it's me
  2012
  2013	012336'	037 01 0 00 016414'		PMSG	<^ C[ONSOLE [U[SER [I[NFO LENGTH IN ERROR, SHOULD BE 6, WAS >
  2014	012337'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2015	012340'	037 15 0 00 000000 		PNTDEC				;Print ac0
  2016	012341'	037 03 0 00 000001 		PCRLF
  2017	012342'	254 00 0 00 012616'		JRST	RESX			; and exit
  2018
  2019	012343'	202 02 0 00 015060'	RES3:	MOVEM	AC2,TEMP1		;save pointer for error printout
  2020
  2021	012344'	201 03 0 00 000006 		MOVEI	AC3,6			;Compare 6 bytes to see if it's us
  2022	012345'	200 06 0 00 016426'		MOVE	AC6,[POINT 8,LOCADH]	;Set byte pointer
  2023	012346'	134 00 0 00 000002 	RES5:	ILDB	AC0,AC2			;Get console user address byte 0-5
  2024	012347'	134 01 0 00 000006 		ILDB	AC1,AC6			;Get local   node address byte 0-5
  2025
  2026	012350'	312 00 0 00 000001 		CAME	AC0,AC1			;Same?
  2027	012351'	254 00 0 00 012554'		 JRST	RES7			; No, console not avail... exit
  2028	012352'	367 03 0 00 012346'		SOJG	AC3,RES5		; Yes, repeat
  2029
  2030	012353'	332 00 0 00 015065'		SKIPE	TRCFLG			;Trace on?
  2031	012354'	037 01 0 00 016427'		 PMSG	<^C[ONSOLE [R[ESERVATION [S[UCCESSFUL^>	; Yes
  2032	012355'	476 00 0 00 015323'		SETOM	NODSEL			;Set node selected flag
  2033	012356'	350 00 0 17 777770 		AOS	-10(P)			;Do ret+2
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 52
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0131

  2034
  2035
  2036					; Reset pointer to look for RESERVATION TIMER (info type 4)
  2037					; Reduce it by 2 & store it in RESTIM.
  2038					; If Reservation Timer not in SYS-ID, default to 10 sec.
  2039
  2040	012357'	200 02 0 00 015731'		MOVE	AC2,[POINT 8,TTOBUF]	;Set buffer ptr
  2041	012360'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  2042
  2043	012361'	322 07 0 00 012372'	RES6:	JUMPE	AC7,RES6A		;Exit if byte count = 0
  2044	012362'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  2045	012363'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  2046	012364'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  2047	012365'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  2048
  2049	012366'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  2050	012367'	254 00 0 00 012376'		 JRST	RES6B			; No, see if RESERVATION TIMER
  2051	012370'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  2052	012371'	366 07 0 00 012361'		SOJN	AC7,RES6		;Try next info type if byte count not 0
  2053	012372'	037 01 0 00 016436'	RES6A:	PMSG	<^C[ANNOT FIND [RESERVATION TIMER [IN [SYS-ID, E[XITING^>
  2054	012373'	201 00 0 00 010000 		MOVEI	AC0,10000
  2055	012374'	202 00 0 00 000447'		MOVEM	AC0,RESTIM		;Default to 10 sec
  2056	012375'	254 00 0 00 012616'		JRST	RESX
  2057
  2058	012376'	306 01 0 00 000004 	RES6B:	CAIN	AC1,4			;Is it RESERVATION TIMER?
  2059	012377'	254 00 0 00 012406'		 JRST	RES6D			; yes
  2060										; no, go to next info type
  2061	012400'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  2062	012401'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2063	012402'	133 00 0 00 000002 	RES6C:	IBP	AC2			;Skip over data
  2064	012403'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2065	012404'	367 00 0 00 012402'		SOJG	AC0,RES6C		;Done?
  2066	012405'	254 00 0 00 012361'		JRST	RES6			;Yes, try over
  2067
  2068	012406'	134 01 0 00 000002 	RES6D:	ILDB	AC1,AC2			;Go get the length
  2069	012407'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2070	012410'	254 00 0 00 012416'		JRST	RES6E			; Yes
  2071
  2072	012411'	037 01 0 00 016450'		PMSG	<^ R[ESERVATION [T[IMER [I[NFO LENGTH IN ERROR, SHOULD BE 2, WAS >
  2073	012412'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  2074	012413'	037 15 0 00 000000 		PNTDEC				;Print ac0 and exit
  2075	012414'	037 03 0 00 000001 		PCRLF
  2076	012415'	254 00 0 00 012616'		JRST	RESX
  2077
  2078	012416'	134 01 0 00 000002 	RES6E:	ILDB	AC1,AC2			;Get the data for lo byte
  2079	012417'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2080	012420'	303 01 0 00 000002 		CAILE	AC1,2			;More than 2 sec?
  2081	012421'	275 01 0 00 000002 		 SUBI	AC1,2			; Yes, decr by 2 sec
  2082					;;;	IMULI	AC1,^D1000		;Get it in ms (NOP for now)
  2083					;;;mult by 1000 causes too long time between data transmissions
  2084	012422'	202 01 0 00 000447'		MOVEM	AC1,RESTIM		; & store it
  2085
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 53
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0132

  2086
  2087					;Reset pointer to look for CONSOLE COMMAND SIZE (info type 5)
  2088
  2089	012423'	200 02 0 00 015731'		MOVE	AC2,[POINT 8,TTOBUF]	;Set buffer ptr
  2090	012424'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  2091
  2092	012425'	322 07 0 00 012436'	RES20B:	JUMPE	AC7,RES16		;Exit if byte count = 0
  2093	012426'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  2094	012427'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  2095	012430'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  2096	012431'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  2097
  2098	012432'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  2099	012433'	254 00 0 00 012440'		 JRST	RES20C			;No, see if CONSOLE CMD SIZE
  2100	012434'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  2101	012435'	366 07 0 00 012425'		SOJN	AC7,RES20B		;Try next info type if byte count not 0
  2102	012436'	037 01 0 00 016463'	RES16:	PMSG	<^C[ANNOT FIND [CONSOLE COMMAND SIZE [IN [SYS-ID, E[XITING^>
  2103	012437'	254 00 0 00 012616'		JRST	RESX
  2104
  2105	012440'	306 01 0 00 000005 	RES20C:	CAIN	AC1,5			;Is it CONSOLE COMMAND SIZE?
  2106	012441'	254 00 0 00 012450'		 JRST	RES20D			; yes
  2107										; no, go to next info type
  2108	012442'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  2109	012443'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2110	012444'	133 00 0 00 000002 	RES17:	IBP	AC2			;Skip over data
  2111	012445'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2112	012446'	367 00 0 00 012444'		SOJG	AC0,RES17		;Done?
  2113	012447'	254 00 0 00 012425'		JRST	RES20B			;Yes, try over
  2114
  2115	012450'	134 01 0 00 000002 	RES20D:	ILDB	AC1,AC2			;Go get the length
  2116	012451'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2117	012452'	254 00 0 00 012460'		 JRST	RES20E			; Yes, get size
  2118
  2119	012453'	037 01 0 00 016475'		PMSG	<^ C[ONSOLE [C[OMMAND [S[IZE [I[NFO LENGTH IN ERROR, SHOULD BE 2, WAS >
  2120	012454'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2121	012455'	037 15 0 00 000000 		PNTDEC				;Print ac0
  2122	012456'	037 03 0 00 000001 		PCRLF
  2123	012457'	254 00 0 00 012616'		JRST	RESX			; and exit
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 54
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0133

  2124
  2125					;Modify CBUFSZ so that it is always less than Console Command Size
  2126					;Check to see that CBUFSZ is less than the max allotted buffer size BUFSIZ.
  2127
  2128	012460'	134 01 0 00 000002 	RES20E:	ILDB	AC1,AC2			;Get lo byte of console command size
  2129	012461'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get hi byte
  2130	012462'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	;Construct console command size in AC1
  2131	012463'	360 01 0 00 000000 		SOJ	AC1,			;Decrement by 1
  2132	012464'	202 01 0 00 010314'		MOVEM	AC1,CBUFSZ		;Modify size
  2133
  2134	012465'	307 01 0 00 003720 		CAIG	AC1,BUFSIZ		;CBUFSZ > BUFSIZ ?
  2135	012466'	254 00 0 00 012477'		 JRST	RES20A			; No, continue
  2136	012467'	037 01 0 00 016511'		PMSG	<^W[ARNING...[CBUFSZ [GREATER THAN [BUFSIZ^>
  2137	012470'	037 01 0 00 016521'		PMSG	<^CBUFSZ = >
  2138	012471'	200 00 0 00 010314'		MOVE	AC0,CBUFSZ
  2139	012472'	037 15 0 00 000000 		PNTDEC
  2140
  2141	012473'	037 01 0 00 016523'		PMSG	<^BUFSIZ = >
  2142	012474'	201 00 0 00 003720 		MOVEI	AC0,BUFSIZ
  2143	012475'	037 15 0 00 000000 		PNTDEC
  2144	012476'	037 03 0 00 000001 		PCRLF
  2145
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 55
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0134

  2146
  2147					;Reset pointer to look for CONSOLE RESPONSE SIZE (info type 6)
  2148
  2149	012477'	200 02 0 00 015731'	RES20A:	MOVE	AC2,[POINT 8,TTOBUF]	;Set buffer ptr
  2150	012500'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  2151
  2152	012501'	322 07 0 00 012512'	RES30B:	JUMPE	AC7,RES18		;Exit if byte count = 0
  2153	012502'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  2154	012503'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  2155	012504'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  2156	012505'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  2157
  2158	012506'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  2159	012507'	254 00 0 00 012514'		 JRST	RES30C			;No, see if CONSOLE RESP SIZE
  2160	012510'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  2161	012511'	366 07 0 00 012501'		SOJN	AC7,RES30B		;Try next info type if byte count not 0
  2162	012512'	037 01 0 00 016525'	RES18:	PMSG	<^C[ANNOT FIND [CONSOLE RESPONSE SIZE [IN [SYS-ID, E[XITING^>
  2163	012513'	254 00 0 00 012616'		JRST	RESX
  2164
  2165	012514'	306 01 0 00 000006 	RES30C:	CAIN	AC1,6			;Is it CONSOLE RESPONSE SIZE?
  2166	012515'	254 00 0 00 012524'		 JRST	RES30D			; yes
  2167										; no, go to next info type
  2168	012516'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  2169	012517'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2170	012520'	133 00 0 00 000002 	RES19:	IBP	AC2			;Skip over data
  2171	012521'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2172	012522'	367 00 0 00 012520'		SOJG	AC0,RES19		;Done?
  2173	012523'	254 00 0 00 012501'		JRST	RES30B			;Yes, try over
  2174
  2175	012524'	134 01 0 00 000002 	RES30D:	ILDB	AC1,AC2			;Go get the length
  2176	012525'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2177	012526'	254 00 0 00 012534'		 JRST	RES30E			; Yes, get size
  2178
  2179	012527'	037 01 0 00 016537'		PMSG	<^ C[ONSOLE [R[ESPONSE [S[IZE [I[NFO LENGTH IN ERROR, SHOULD BE 2, WAS >
  2180	012530'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2181	012531'	037 15 0 00 000000 		PNTDEC				;Print ac0
  2182	012532'	037 03 0 00 000001 		PCRLF
  2183	012533'	254 00 0 00 012616'		JRST	RESX			; and exit
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 56
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0135

  2184
  2185					;Modify RBUFSZ so that it is always greater than Console Response Size
  2186					;Check to see that RBUFSZ is less than the max allotted buffer size BUFSIZ.
  2187
  2188	012534'	134 01 0 00 000002 	RES30E:	ILDB	AC1,AC2			;Get lo byte of CONSOLE RESPONSE SIZE
  2189	012535'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get hi byte
  2190	012536'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct CONSOLE COMMAND SIZE in AC1
  2191	012537'	340 01 0 00 000000 		AOJ	AC1,			;Make larger by 1
  2192	012540'	202 01 0 00 010315'		MOVEM	AC1,RBUFSZ		; & modify size
  2193
  2194	012541'	307 01 0 00 003720 		CAIG	AC1,BUFSIZ		;RBUFSZ > BUFSIZ ?
  2195	012542'	254 00 0 00 012616'		 JRST	RESX			; no, continue
  2196	012543'	037 01 0 00 016553'		PMSG	<^W[ARNING...[RBUFSZ [GREATER THAN [BUFSIZ^>
  2197
  2198	012544'	037 01 0 00 016563'		PMSG	<^RBUFSZ = >
  2199	012545'	200 00 0 00 010315'		MOVE	AC0,RBUFSZ
  2200	012546'	037 15 0 00 000000 		PNTDEC
  2201
  2202	012547'	037 01 0 00 016523'		PMSG	<^BUFSIZ = >
  2203	012550'	201 00 0 00 003720 		MOVEI	AC0,BUFSIZ
  2204	012551'	037 15 0 00 000000 		PNTDEC
  2205	012552'	037 03 0 00 000001 		PCRLF
  2206	012553'	254 00 0 00 012616'		JRST	RESX			;Exit
  2207
  2208	012554'	037 01 0 00 016565'	RES7:	PMSG	<C[ONSOLE [N[OT [A[VAILABLE [F[OR [R[ESERVATION^>
  2209
  2210	012555'	200 02 0 00 015060'		MOVE	AC2,TEMP1		;restore pointer
  2211	012556'	201 03 0 00 000006 		MOVEI	AC3,6			;for 6 bytes
  2212	012557'	200 05 0 00 016575'		MOVE	AC5,[POINT 8,AC0]	;set up pointer
  2213
  2214	012560'	037 01 0 00 016576'		PMSG	<^   C[ONSOLE [U[SER     >
  2215	012561'	134 04 0 00 000002 	RES7A:	ILDB	AC4,AC2			;get byte
  2216	012562'	136 04 0 00 000005 		IDPB	AC4,AC5			;set up pointer
  2217	012563'	367 03 0 00 012561'		SOJG	AC3,RES7A		;done?
  2218	012564'	261 16 0 00 000000 		PUSHD	<AC0,AC1>
  2219	012565'	261 16 0 00 000001 
  2220	012566'	260 17 0 00 011460'		GO	PRHEX
  2221
  2222	012567'	037 01 0 00 016603'		PMSG	<^   L[OCAL [A[DDRESS    >	;yes
  2223	012570'	261 16 0 00 015044'		PUSHD	<LOCADH,LOCADL>
  2224	012571'	261 16 0 00 015045'
  2225	012572'	260 17 0 00 011460'		GO	PRHEX			;print it
  2226	012573'	037 03 0 00 000001 		PCRLF
  2227	012574'	254 00 0 00 012616'		JRST	RESX
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 57
RMTCNM	MAC	10-Jun-85 15:20		RESERVE CONSOLE                                                                    SEQ 0136

  2228
  2229	012575'	200 00 0 00 015322'	RES8:	MOVE	AC0,RBTCTR		; *** DO REMOTE BOOT ***
  2230	012576'	327 00 0 00 012603'		JUMPG	AC0,RES8A		;Do remote boot only once
  2231
  2232	012577'	332 00 0 00 015065'		SKIPE	TRCFLG			;Skip if no trace
  2233	012600'	037 01 0 00 016610'		 PMSG	<^C[ONSOLE [C[ARRIER NOT SET...TRYING [RCRBT^>
  2234	012601'	260 17 0 00 010507'		GO	RCRBT			;Do remote boot
  2235	012602'	254 00 0 00 012616'		 JRST	RESX			; error return
  2236
  2237	012603'	332 00 0 00 015065'	RES8A:	SKIPE	TRCFLG			;Skip if no trace
  2238	012604'	037 01 0 00 016620'		 PMSG	<^W[AITING 5 SECONDS...^>
  2239	012605'	201 01 0 00 011610 		MOVEI	AC1,^D5000		;Wait 5 sec
  2240	012606'	104 00 0 00 000167 		DISMS
  2241
  2242	012607'	350 00 0 00 015322'		AOS	RBTCTR
  2243	012610'	200 00 0 00 015322'		MOVE	AC0,RBTCTR
  2244	012611'	302 00 0 00 000014 		CAIE	AC0,^D12		;60 sec up?
  2245	012612'	254 00 0 00 012212'		 JRST	RES1			; no, try all over again
  2246	012613'	037 01 0 00 016624'		PMSG	<^RCRBT [CANNOT SET [C[ONSOLE [C[ARRIER AFTER 60 SEC...>
  2247	012614'	037 01 0 00 016636'		PMSG	<^C[ONSOLE [R[ESERVATION UNSUCCESSFUL...EXITING^>
  2248	012615'	037 01 0 00 016646'		PMSG	<^H[AS PASSWORD BEEN SET BY [SET PASSWORD [COMMAND?^>
  2249
  2250	012616'	262 17 0 00 000000 	RESX:	GETIT	<AC0,AC1,AC2,AC3,AC4,AC5,AC6,AC7>
  2251	012617'	262 17 0 00 000001 
  2252	012620'	262 17 0 00 000002 
  2253	012621'	262 17 0 00 000003 
  2254	012622'	262 17 0 00 000004 
  2255	012623'	262 17 0 00 000005 
  2256	012624'	262 17 0 00 000006 
  2257	012625'	262 17 0 00 000007 
  2258	012626'	263 17 0 00 000000 		RTN
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 58
RMTCNM	MAC	10-Jun-85 15:20		RELEASE CONSOLE                                                                    SEQ 0137

  2259					SUBTTL	RELEASE CONSOLE
  2260					;#**************************************************************************
  2261					;  1. Do a REQ-ID & read the SYS-ID "function" & "console user".
  2262					;  2. If FUNCTION indicates "not reserved", do a Return+2 exit.
  2263					;  3. If FUNCTION indicates "reserved", read the CONSOLE USER & check if
  2264					;     it's reserved by us.
  2265					;  4. If it's reserved by us, do a RELEASE CONSOLE Jsys & re-enter again.
  2266					;  5. If it's reserved by another user, exit.
  2267					;  6. Return+1 if unsuccessful
  2268					;     Return+2 if successful
  2269					;#***************************************************************************
  2270
  2271	012627'	261 17 0 00 000007 	RELCON:	PUTIT	<AC7,AC6,AC5,AC4,AC3,AC2,AC1,AC0>	;Save some ac's
  2272	012630'	261 17 0 00 000006 
  2273	012631'	261 17 0 00 000005 
  2274	012632'	261 17 0 00 000004 
  2275	012633'	261 17 0 00 000003 
  2276	012634'	261 17 0 00 000002 
  2277	012635'	261 17 0 00 000001 
  2278	012636'	261 17 0 00 000000 
  2279	012637'	260 17 0 00 013067'	REL1:	GO	RRID			;Do Req-ID & put Sys-ID to TTOBUF
  2280
  2281					;Reset pointer to look for FUNCTION (info type 2)
  2282
  2283	012640'	200 02 0 00 015731'		MOVE	AC2,[POINT 8,TTOBUF]	;Look for FUNCTION
  2284	012641'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  2285
  2286	012642'	322 07 0 00 012653'	REL1A:	JUMPE	AC7,REL10		;Exit if byte count = 0
  2287	012643'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  2288	012644'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  2289	012645'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  2290	012646'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  2291
  2292	012647'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  2293	012650'	254 00 0 00 012655'		 JRST	REL1B			;No, see if FUNCTION
  2294	012651'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  2295	012652'	366 07 0 00 012642'		SOJN	AC7,REL1A		;Try next info type if byte count not 0
  2296	012653'	037 01 0 00 016657'	REL10:	PMSG	<^C[ANNOT FIND [FUNCTION [IN [SYS-ID, E[XITING>
  2297	012654'	254 00 0 00 012766'		JRST	RELX
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 59
RMTCNM	MAC	10-Jun-85 15:20		RELEASE CONSOLE                                                                    SEQ 0138

  2298
  2299	012655'	306 01 0 00 000002 	REL1B:	CAIN	AC1,2			;Is it FUNCTION?
  2300	012656'	254 00 0 00 012665'		 JRST	REL1C			; yes
  2301										; no, go to next info type
  2302	012657'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  2303	012660'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2304	012661'	133 00 0 00 000002 	REL11:	IBP	AC2			;Skip over data
  2305	012662'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2306	012663'	367 00 0 00 012661'		SOJG	AC0,REL11		;Done?
  2307	012664'	254 00 0 00 012642'		JRST	REL1A			;Yes, try over
  2308
  2309	012665'	134 01 0 00 000002 	REL1C:	ILDB	AC1,AC2			;Go get the length
  2310	012666'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2311	012667'	254 00 0 00 012674'		JRST	REL2			; Yes
  2312
  2313	012670'	037 01 0 00 016667'		PMSG	<^ F[UNCTION [I[NFO LENGTH IN ERROR, IT SHOULD BE 2, IT WAS >
  2314	012671'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  2315	012672'	037 15 0 00 000000 		PNTDEC				;Print ac0 and exit
  2316	012673'	254 00 0 00 012765'		JRST	REL9
  2317
  2318	012674'	134 01 0 00 000002 	REL2:	ILDB	AC1,AC2			;Get the data for lo byte
  2319
  2320	012675'	602 01 0 00 000200 		TRNE	AC1,1B28		;Console Reservation set?
  2321	012676'	254 00 0 00 012706'		 JRST	REL2A			; Yes, see by who
  2322
  2323	012677'	402 00 0 00 015042'		SETZM	TARADH			;clear target addr
  2324	012700'	402 00 0 00 015043'		SETZM	TARADL
  2325
  2326	012701'	332 00 0 00 015065'		SKIPE	TRCFLG			;Trace on?
  2327	012702'	037 01 0 00 016701'		 PMSG	<^C[ONSOLE [R[ELEASE [S[UCCESSFUL^>	; Yes
  2328	012703'	402 00 0 00 015323'		SETZM	NODSEL			;Clear node selected flag
  2329	012704'	350 00 0 17 777770 		AOS	-10(P)			;Do ret+2
  2330	012705'	254 00 0 00 012766'		JRST	RELX
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 60
RMTCNM	MAC	10-Jun-85 15:20		RELEASE CONSOLE                                                                    SEQ 0139

  2331
  2332					;Reset pointer to look for CONSOLE USER (info type 3)
  2333
  2334	012706'	200 02 0 00 015731'	REL2A:	MOVE	AC2,[POINT 8,TTOBUF]	;Look for CONSOLE USER
  2335	012707'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Get SYS-ID byte count
  2336
  2337	012710'	322 07 0 00 012721'	REL2B:	JUMPE	AC7,REL12		;Exit if byte count = 0
  2338	012711'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE lo byte in AC1
  2339	012712'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE hi byte in AC0
  2340	012713'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  2341	012714'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  2342
  2343	012715'	302 01 0 00 000000 		CAIE	AC1,0			;Info type = 0? (padding)
  2344	012716'	254 00 0 00 012723'		 JRST	REL2C			;No, see if CONSOLE USER
  2345	012717'	133 00 0 00 000002 		IBP	AC2			;Yes, jump over msg length
  2346	012720'	366 07 0 00 012310'		SOJN	AC7,RES2B		;Try next info type if byte count not 0
  2347	012721'	037 01 0 00 016707'	REL12:	PMSG	<^C[ANNOT FIND [CONSOLE USER [IN [SYS-ID, E[XITING>
  2348	012722'	254 00 0 00 012765'		JRST	REL9
  2349
  2350	012723'	306 01 0 00 000003 	REL2C:	CAIN	AC1,3			;Is it CONSOLE USER?
  2351	012724'	254 00 0 00 012733'		 JRST	REL2D			; yes
  2352										; no, go to next info type
  2353	012725'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get data length
  2354	012726'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2355	012727'	133 00 0 00 000002 	REL13:	IBP	AC2			;Skip over data
  2356	012730'	360 07 0 00 000000 		SOJ	AC7,			;Decr byte count
  2357	012731'	367 00 0 00 012727'		SOJG	AC0,REL13		;Done?
  2358	012732'	254 00 0 00 012710'		JRST	REL2B			;Yes, try over
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 61
RMTCNM	MAC	10-Jun-85 15:20		RELEASE CONSOLE                                                                    SEQ 0140

  2359
  2360	012733'	134 01 0 00 000002 	REL2D:	ILDB	AC1,AC2			;Go get the length
  2361	012734'	306 01 0 00 000006 		CAIN	AC1,6			;Is it 6 ?
  2362	012735'	254 00 0 00 012742'		 JRST	REL3			; Yes, see if it's me
  2363
  2364	012736'	037 01 0 00 016720'		PMSG	<^ C[ONSOLE [U[SER [I[NFO LENGTH IN ERROR, IT SHOULD BE 6, IT WAS >
  2365	012737'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2366	012740'	037 15 0 00 000000 		PNTDEC				;Print ac0
  2367	012741'	254 00 0 00 012765'		JRST	REL9			; and exit
  2368
  2369	012742'	201 03 0 00 000006 	REL3:	MOVEI	AC3,6			;Compare 6 bytes to see if it's us
  2370	012743'	200 06 0 00 016426'		MOVE	AC6,[POINT 8,LOCADH]	;Set byte pointer
  2371	012744'	134 00 0 00 000002 	REL5:	ILDB	AC0,AC2			;Get console user byte 0-5
  2372	012745'	134 01 0 00 000006 		ILDB	AC1,AC6			;Get node address byte 0-5
  2373
  2374	012746'	312 00 0 00 000001 		CAME	AC0,AC1			;Same?
  2375	012747'	254 00 0 00 012763'		 JRST	REL4			; No, exit
  2376	012750'	367 03 0 00 012744'		SOJG	AC3,REL5		; Yes, repeat
  2377
  2378	012751'	260 17 0 00 010701'		GO	RCREL			;Do RELEASE CONSOLE jsys
  2379	012752'	254 00 0 00 012765'		 JRST	REL9			; Error return
  2380
  2381	012753'	336 00 0 00 015070'		SKIPN	DBGFLG			;Debug?
  2382	012754'	254 00 0 00 012637'		 JRST	REL1			; No
  2383	012755'	201 00 0 00 000177 		MOVEI	AC0,177			;Clear "RESERVED" in FUNCTION
  2384	012756'	202 00 0 00 014136'		MOVEM	AC0,REQT1
  2385
  2386	012757'	201 03 0 00 000005 		MOVEI	AC3,5			;Clear "CONSOLE USER" in SYS-ID
  2387	012760'	402 00 0 03 014143'		SETZM	REQT2(AC3)
  2388	012761'	365 03 0 00 012760'		SOJGE	AC3,.-1
  2389	012762'	254 00 0 00 012637'		JRST REL1			;See if released
  2390
  2391	012763'	037 01 0 00 016733'	REL4:	PMSG	<^C[ONSOLE ALREADY RESERVED BY ANOTHER USER^>
  2392	012764'	254 00 0 00 012766'		JRST	RELX
  2393
  2394	012765'	037 01 0 00 016743'	REL9:	PMSG	<^C[ANNOT [R[ELEASE [R[EMOTE [C[ONSOLE>
  2395	012766'	037 03 0 00 000001 	RELX:	PCRLF
  2396	012767'	262 17 0 00 000000 		GETIT	<AC0,AC1,AC2,AC3,AC4,AC5,AC6,AC7>
  2397	012770'	262 17 0 00 000001 
  2398	012771'	262 17 0 00 000002 
  2399	012772'	262 17 0 00 000003 
  2400	012773'	262 17 0 00 000004 
  2401	012774'	262 17 0 00 000005 
  2402	012775'	262 17 0 00 000006 
  2403	012776'	262 17 0 00 000007 
  2404	012777'	263 17 0 00 000000 		RTN
  2405
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 62
RMTCNM	MAC	10-Jun-85 15:20		SHOW ALL NODE ADDRESSES ON NETWORK                                                 SEQ 0141

  2406					SUBTTL	SHOW ALL NODE ADDRESSES ON NETWORK
  2407					;#***************************************************************************
  2408					;*  SALLAD subroutine	Called from SALLNO (Show all Nodes) in RMTCNP
  2409					;
  2410					;  1. Set NODADH/L for BROADCAST: FF-FF-FF-FF-FF-FF (SKIP OVER THIS FOR NOW)
  2411					;  2. Send Request-ID to receive all broadcast replys (SYS-ID's)
  2412					;  3. Display all Source Address's from the READ REPLY argument block.
  2413					;  4. Test the "More Reply Flag" in word 0 of the arg block.
  2414					;      & if set, do another READ REPLY & repeat.
  2415					;  5. Repeat all the above for MULTICAST ADDRESSES: AB-00-00-02-00-00
  2416					;#***************************************************************************
  2417
  2418	013000'	402 00 0 00 015321'	SALLAD:	SETZM	PASCT			;Dont do BCAST for now
  2419	013001'	254 00 0 00 013050'		JRST	SAD5
  2420
  2421	013002'	037 01 0 00 016752'		PMSG	<^P[HYSICAL ADDRESSES OF ALL NODES RESPONDING TO [BROADCAST:^>
  2422	013003'	037 03 0 00 000001 		PCRLF
  2423
  2424	013004'	402 00 0 00 015321'		SETZM	PASCT
  2425	013005'	120 00 0 00 015325'		DMOVE	AC0,BCASTH		;Set up NODADH/L for RCRID
  2426	013006'	124 00 0 00 015046'		DMOVEM	AC0,NODADH
  2427
  2428					;Do Request-Id jsys
  2429
  2430	013007'	260 17 0 00 010373'	SAD1:	GO	RCRID			;Do REQ-ID
  2431	013010'	254 00 0 00 013060'		 JRST	SADX			; Jsys error return
  2432
  2433	013011'	262 16 0 00 015072'		POPD	SREQN			;Save request #
  2434	013012'	260 17 0 00 011316'		GO	RDSTIM			; & read current time
  2435
  2436					;Do Read Status jsys
  2437
  2438	013013'	261 16 0 00 015072'	SAD2:	PUSHD	SREQN			;Push saved request number
  2439	013014'	260 17 0 00 011140'		GO	RCSTS			;Do READ STATUS
  2440	013015'	254 00 0 00 013060'		 JRST	SADX			; Jsys error return
  2441
  2442	013016'	260 17 0 00 014563'		GO	RDFLGS			;Read status flags
  2443	013017'	254 00 0 00 013050'		 JRST	SAD5			; Ret+1 Error or timeout return
  2444	013020'	254 00 0 00 013013'		 JRST	SAD2			; Ret+2 Still pending, read again
  2445	013021'	600 00 0 00 000000 		 NOP				; Ret+3 Successful
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 63
RMTCNM	MAC	10-Jun-85 15:20		SHOW ALL NODE ADDRESSES ON NETWORK                                                 SEQ 0142

  2446
  2447					;Do Read Remote Console Reply for SYS-ID
  2448
  2449	013022'	400 02 0 00 000000 		SETZ	AC2,			;For debug
  2450
  2451	013023'	261 16 0 00 015072'	SAD3:	PUSHD	SREQN			;Get Req #
  2452	013024'	260 17 0 00 010562'		GO	RCRPY			;Do READ REPLY (SYS-ID)
  2453	013025'	254 00 0 00 013060'		 JRST	SADX			; Jsys error return
  2454
  2455	013026'	037 01 0 00 016765'		PMSG	<  >
  2456
  2457	013027'	336 00 0 00 015070'		SKIPN	DBGFLG			;Debug?
  2458	013030'	254 00 0 00 013041'		 JRST	SAD4			; no
  2459
  2460	013031'	120 00 0 02 013061'		DMOVE	AC0,TABL(AC2)		;Yes, get fake addresses
  2461	013032'	124 00 0 00 010625'		DMOVEM	AC0,RCRPYB+.LMSRC	; & stick it in arg block
  2462
  2463	013033'	271 02 0 00 000002 		ADDI	AC2,2			;Bump table index
  2464	013034'	200 00 0 00 010624'		MOVE	AC0,RCRPYB+.LMCID
  2465	013035'	661 00 0 00 400000 		TLO	AC0,(LM%MRF)		;Set "More Reply Flag"
  2466	013036'	306 02 0 00 000006 		CAIN	AC2,6
  2467	013037'	621 00 0 00 400000 		TLZ	AC0,(LM%MRF)		;Unless all 3 node addresses displayed
  2468	013040'	202 00 0 00 010624'		MOVEM	AC0,RCRPYB+.LMCID	; & stick it in arg block
  2469
  2470	013041'	261 16 0 00 010625'	SAD4:	PUSHD	<RCRPYB+.LMSRC,RCRPYB+.LMSRC+1>	;Get returned source address
  2471	013042'	261 16 0 00 010626'
  2472	013043'	260 17 0 00 011460'		GO	PRHEX
  2473	013044'	037 03 0 00 000001 		PCRLF
  2474
  2475	013045'	200 00 0 00 010624'		MOVE	AC0,RCRPYB+.LMCID	;Get flag
  2476	013046'	603 00 0 00 400000 		TLNE	AC0,(LM%MRF)		;More Reply Flag set?
  2477	013047'	254 00 0 00 013023'		 JRST	SAD3			; Yes, do again
  2478
  2479	013050'	332 00 0 00 015321'	SAD5:	SKIPE	PASCT			;No, done MCAST yet?
  2480	013051'	254 00 0 00 013060'		 JRST	SADX			; Yes, exit
  2481
  2482	013052'	037 01 0 00 016766'		PMSG	<^P[HYSICAL ADDRESSES OF ALL NODES RESPONDING TO [MCAST:^>
  2483	013053'	037 03 0 00 000001 		PCRLF
  2484
  2485	013054'	120 00 0 00 015327'		DMOVE	AC0,MCASTH
  2486	013055'	124 00 0 00 015046'		DMOVEM	AC0,NODADH
  2487	013056'	350 00 0 00 015321'		AOS	PASCT
  2488	013057'	254 00 0 00 013007'		JRST	SAD1			;Do again for MCAST
  2489
  2490	013060'	263 17 0 00 000000 	SADX:	RTN
  2491
  2492	013061'	123456	123460		TABL:	123456,,123460			;debug BCAST/MCAST Address 1
  2493	013062'	654324	000000			654324,,0
  2494	013063'	123123	456460			123123,,456460			;Address 2
  2495	013064'	234234	000000			234234,,0
  2496	013065'	654654	765760			654654,,765760			;Address 3
  2497	013066'	213244	000000			213244,,0
  2498
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 64
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0143

  2499					SUBTTL	REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES
  2500					;#***************************************************************************
  2501					;* RRID subroutine     Called from REQU (Req-ID command) in RMTCNP.
  2502					;
  2503					;  Sends a REQ-ID message to the selected node and reports SYS-ID returned.
  2504					;  The hi/lo address are in AC10/11 resp. from GO HEX & are saved in
  2505					;  NODADH/NODADL resp.
  2506					;
  2507					;  The byte format for the request id message returned:
  2508					;
  2509					;  B1,B2,B3,B4,B5,B6 =    destination address
  2510					;  B7,B8,B9,B10,B11,B12 = source address (physical)
  2511					;  B13 =		  protocol type 07 = code
  2512					;  B14 =		  0		   = reserved
  2513					;  B15,B16 =		  receipt number (3rd and 4th bytes of received
  2514					;			  Request id message)
  2515					;
  2516					;  The information that the the request id mechanism returns is:
  2517					;
  2518					;  B18	 + 1st byte = information type
  2519					;	   2nd byte = information length, value = x
  2520					;	   x   bytes = specified bytes of information value
  2521					;
  2522					;	Where:
  2523					;
  2524					;  Info  Info     Info
  2525					;  Type	length	description
  2526					;
  2527					;  1	3	MAINTENANCE: version ver:3  eco:0  user eco:0
  2528					;  2	2	FUNCTIONS: bit 0=loop, bit1=dump, bit2=primary loader, bit3=
  2529					;		 Multi-block loader, bit4=boot, bit5=console carrier, bit6=
  2530					;		 Data link counters, bit7=console carrier reservation
  2531					;  3	6	CONSOLE USER: system address of the system that has the console
  2532					;		 Reserved.
  2533					;  4	2	RESERVATION TIMER: the maximum value, in seconds, of the timer
  2534					;		 Used to clear unused console reservations.
  2535					;  5	2	CONSOLE COMMAND SIZE: the maximum size of the console command
  2536					;		 Buffer.
  2537					;  6	2	CONSOLE RESONSE SIZE: the maximum size of the console response
  2538					;		 Buffer.
  2539					;  7	6	HARDWARE ADDRESS, contents of physical address rom on nia link
  2540					;		 Module.
  2541					;  8    10	SYSTEM TIME: the segmented system time.
  2542					;#**********************************************************************
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 65
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0144

  2543
  2544					;#****************************************************************************
  2545					;  100	    1	COMMUNICATION DEVICE:
  2546					;		 0 = Dp, dp11-da	 1 = una, deuna
  2547					;		 2 = Du, du11-da	 3 = cna	 
  2548					;		 4 = dl, dl11-c/e/wa	 5 = qna
  2549					;		 6 = Dq, dq11-da	 7 = ci, computer interconnect interf.
  2550					;		 8 = da, da11-b or -al	 9 = pcl, pcl11-b
  2551					;		 10= Dup, dup11-da	 12= dmc, dmc11-da/ar,-ma/al or -fa/ar
  2552					;		 14= Dn, dn11-ba	 16= dlv, dlv11-e
  2553					;		 18= Dmp,		 20= dte20, dte20
  2554					;		 22= Dv, dv11-aa/ba	 24= dz, dz11-a or -b
  2555					;		 28= Kdp, kmc11/dup11-da 30= kdz, kmc11/dz11-a
  2556					;		 32= Kl, kl8-j		 34= dmv, dmv11
  2557					;		 36= Dpv, dpv11		 38= dmf, dmf-32
  2558					;		 40= Dmr, dmr11-aa	 42= kmy, kms11-px
  2559					;		 44= Kmx, kms11-bd/be
  2560					;  101-199 I-16	COMMUNICATION DEVICE RELATED:
  2561					;  200	  C-17	SOFTWARE ID:
  2562					;		 0 = No software id
  2563					;		 >0= The length of the id field
  2564					;		 -1= Standard operating system
  2565					;		 -2= Maintenance system
  2566					;  201-299 I-16	SOFTWARE ID RELATED: a specific sofware id. Present only if
  2567					;		   Form >0. Interpretation is specific to the receiving system.
  2568					;  300	    1	SYSTEM PROCESSOR: 1= pdp-11, 2= pluto
  2569					;  301-399 I-16	SYSTEM PROCESSOR RELATED: information specific to the
  2570					;		 Particular system processor.
  2571					;  400	    1	DATA LINK TYPE: 1= ETHERNET, 2= DDCMP, 3=LAPB
  2572					;  401	    2	DATA LINK BUFFER SIZE: default = 262
  2573					;  402-499 I-16	DATA LINK RELATED: information specific to the
  2574					;		 Particular data link.
  2575					;
  2576					;  All unknown types are reported as such and no further processing is done.
  2577					;#**************************************************************************
  2578
  2579	013067'	261 17 0 00 000011 	RRID:	PUTIT	<AC11,AC10,AC7,AC4,AC3,AC2,AC1,AC0> ;Save some acs
  2580	013070'	261 17 0 00 000010 
  2581	013071'	261 17 0 00 000007 
  2582	013072'	261 17 0 00 000004 
  2583	013073'	261 17 0 00 000003 
  2584	013074'	261 17 0 00 000002 
  2585	013075'	261 17 0 00 000001 
  2586	013076'	261 17 0 00 000000 
  2587	013077'	202 10 0 00 015046'		MOVEM	AC10,NODADH		;Save hi hex address (from GO HEX)
  2588	013100'	202 11 0 00 015047'		MOVEM	AC11,NODADL		;Save lo hex address
  2589
  2590					;Do Request-Id jsys
  2591
  2592	013101'	260 17 0 00 010373'		GO	RCRID			;Do REQ-ID
  2593	013102'	254 00 0 00 014075'		 JRST	RRIDX			; Jsys error return
  2594
  2595	013103'	262 16 0 00 015072'		POPD	SREQN			;Save request #
  2596	013104'	260 17 0 00 011316'		GO	RDSTIM			; & read current time
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 66
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0145

  2597
  2598					;Do Read Status jsys
  2599
  2600	013105'	261 16 0 00 015072'	RRIH:	PUSHD	SREQN			;Push saved request number
  2601	013106'	260 17 0 00 011140'		GO	RCSTS			;Do READ STATUS
  2602	013107'	254 00 0 00 014075'		 JRST	RRIDX			; Jsys error return
  2603
  2604	013110'	260 17 0 00 014563'		GO	RDFLGS			;Read status flags
  2605	013111'	254 00 0 00 014075'		 JRST	RRIDX			; Ret+1 Error or timeout return
  2606	013112'	254 00 0 00 013105'		 JRST	RRIH			; Ret+2 Still pending, read again
  2607	013113'	600 00 0 00 000000 		 NOP				; Ret+3 Successful
  2608
  2609					;Do Read Remote Console Reply for SYS-ID
  2610
  2611	013114'	261 16 0 00 015072'		PUSHD	SREQN			;Get Req #
  2612	013115'	260 17 0 00 010562'		GO	RCRPY			;Do READ REPLY (SYS-ID)
  2613	013116'	254 00 0 00 014075'		 JRST	RRIDX			; Jsys error return
  2614
  2615	013117'	336 00 0 00 015065'		SKIPN	TRCFLG			;Trace enabled?
  2616	013120'	254 00 0 00 013130'		 JRST	RRIH2			; No
  2617
  2618	013121'	037 01 0 00 017000'		PMSG	<^R[EQUEST [ID[ FOR NODE ADDRESS:]>
  2619	013122'	261 16 0 00 015046'		PUSHD	<NODADH,NODADL>
  2620	013123'	261 16 0 00 015047'
  2621	013124'	260 17 0 00 011460'		GO	PRHEX
  2622	013125'	037 03 0 00 000001 		PCRLF
  2623
  2624	013126'	200 02 0 00 015731'		MOVE	AC2,[POINT 8,TTOBUF]	;Set output buffer pointer to 1'st
  2625	013127'	554 07 0 00 010630'		HLRZ	AC7,RCRPYB+.LMRBL	;Function byte & get SYS-ID byte count
  2626
  2627	013130'	336 00 0 00 015070'	RRIH2:	SKIPN	DBGFLG			;Debug ?
  2628	013131'	254 00 0 00 013152'		 JRST	RRIDA			; No
  2629
  2630	013132'	120 00 0 00 015050'		DMOVE	AC0,SLOCH		;Make LOCAL ADDR = 123456789ABC
  2631	013133'	124 00 0 00 015044'		DMOVEM	AC0,LOCADH
  2632
  2633	013134'	201 03 0 00 000006 		MOVEI	AC3,6			;Make sys-id HRDWR ADDR = NODADH/L
  2634	013135'	400 04 0 00 000000 		SETZ	AC4,
  2635	013136'	200 05 0 00 017006'		MOVE	AC5,[POINT 8,NODADH]
  2636	013137'	200 06 0 00 017007'		MOVE	AC6,[POINT 36,REQT3]
  2637	013140'	134 04 0 00 000005 	RRIH3:	ILDB	AC4,AC5			;Get NODADH/L
  2638	013141'	136 04 0 00 000006 		IDPB	AC4,AC6			; put it in REQT3
  2639	013142'	367 03 0 00 013140'		SOJG	AC3,RRIH3		; repeat 6 times
  2640
  2641	013143'	200 06 0 00 015731'		MOVE	AC6,[POINT 8,TTOBUF]	;Yes
  2642	013144'	400 03 0 00 000000 		SETZ	AC3,
  2643
  2644	013145'	200 00 0 03 014125'	RRIH1:	MOVE	AC0,REQTAB(AC3)		;Deposit fake debug data in TTOBUF
  2645	013146'	136 00 0 00 000006 		IDPB	AC0,AC6
  2646	013147'	302 03 0 00 000200 		CAIE	AC3,200
  2647	013150'	344 03 0 00 013145'		 AOJA	AC3,RRIH1
  2648
  2649	013151'	200 07 0 00 016360'		MOVE	AC7,[RTEND-REQTAB]	;Fake the byte count
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 67
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0146

  2650
  2651					;  Dispatch to a particular information type routine.
  2652
  2653	013152'	336 00 0 00 015065'	RRIDA:	SKIPN	TRCFLG			;Trace enabled?
  2654	013153'	254 00 0 00 014075'		 JRST	RRIDX			; no, exit
  2655
  2656	013154'	322 07 0 00 014075'		JUMPE	AC7,RRIDX		;Exit if byte count = 0
  2657	013155'	134 01 0 00 000002 		ILDB	AC1,AC2			;Put 1'st INFO TYPE byte in AC1
  2658	013156'	134 00 0 00 000002 		ILDB	AC0,AC2			;Put 2'nd INFO TYPE byte in AC0
  2659	013157'	137 00 0 00 016361'		DPB	AC0,[POINT 8,AC1,35-8]	; Construct the info type word
  2660	013160'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  2661
  2662	013161'	302 01 0 00 000000 		CAIE	AC1,0			;INFO TYPE = 0 ?  (padding)
  2663	013162'	254 00 0 00 013166'		 JRST	RRA1			; No, see what it is
  2664	013163'	133 00 0 00 000002 		IBP	AC2			;Yes, skip over zero data length
  2665	013164'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  2666	013165'	254 00 0 00 013152'		JRST	RRIDA			;& try again
  2667
  2668	013166'	306 01 0 00 000001 	RRA1:	CAIN	AC1,^D1			;Is it maintenance ?
  2669	013167'	254 00 0 00 013243'		 JRST	RI1			; Yes
  2670	013170'	306 01 0 00 000002 		CAIN	AC1,^D2			;Is it functions ?
  2671	013171'	254 00 0 00 013266'		 JRST	RI2			; Yes
  2672	013172'	306 01 0 00 000003 		CAIN	AC1,^D3			;Is it console user ?
  2673	013173'	254 00 0 00 013324'		 JRST	RI3			; Yes
  2674	013174'	306 01 0 00 000004 		CAIN	AC1,^D4			;Is it reservation timer ?
  2675	013175'	254 00 0 00 013356'		 JRST	RI4			; Yes
  2676	013176'	306 01 0 00 000005 		CAIN	AC1,^D5			;Is it console command size ?
  2677	013177'	254 00 0 00 013374'		 JRST	RI5			; Yes
  2678	013200'	306 01 0 00 000006 		CAIN	AC1,^D6			;Is it console response size ?
  2679	013201'	254 00 0 00 013412'		 JRST	RI6			; Yes
  2680	013202'	306 01 0 00 000007 		CAIN	AC1,^D7			;Is it hardware address ?
  2681	013203'	254 00 0 00 013430'		 JRST	RI7			; Yes
  2682	013204'	306 01 0 00 000010 		CAIN	AC1,^D8			;Is it system time ?
  2683	013205'	254 00 0 00 013452'		 JRST	RI8			; Yes
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 68
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0147

  2684
  2685	013206'	306 01 0 00 000144 		CAIN	AC1,^D100		;Is it communication device ?
  2686	013207'	254 00 0 00 013512'		 JRST	RI100			; Yes
  2687	013210'	305 01 0 00 000145 		CAIGE	AC1,^D101		;Is it communication device related ?
  2688	013211'	254 00 0 00 013214'		 JRST	RRA2			; No
  2689	013212'	307 01 0 00 000307 		CAIG	AC1,^D199
  2690	013213'	254 00 0 00 013616'		 JRST	RI101			; Yes
  2691	013214'	306 01 0 00 000310 	RRA2:	CAIN	AC1,^D200		;Is it software id ?
  2692	013215'	254 00 0 00 013644'		 JRST	RI200			; Yes
  2693	013216'	305 01 0 00 000311 		CAIGE	AC1,^D201		;Is it software id related ?
  2694	013217'	254 00 0 00 013222'		 JRST	RRA3			; No
  2695	013220'	307 01 0 00 000453 		CAIG	AC1,^D299
  2696	013221'	254 00 0 00 013703'		 JRST	RI201			; Yes
  2697	013222'	306 01 0 00 000454 	RRA3:	CAIN	AC1,^D300		;Is it system processor ?
  2698	013223'	254 00 0 00 013731'		 JRST	RI300			; Yes
  2699	013224'	305 01 0 00 000455 		CAIGE	AC1,^D301		;Is it system processor related ?
  2700	013225'	254 00 0 00 013230'		 JRST	RRA4			; No
  2701	013226'	307 01 0 00 000617 		CAIG	AC1,^D399
  2702	013227'	254 00 0 00 013753'		 JRST	RI301			; Yes
  2703	013230'	306 01 0 00 000620 	RRA4:	CAIN	AC1,^D400		;Is it data link type ?
  2704	013231'	254 00 0 00 014001'		 JRST	RI400			; Yes
  2705	013232'	306 01 0 00 000621 		CAIN	AC1,^D401		;Is it data link buffer size ?
  2706	013233'	254 00 0 00 014025'		 JRST	RI401			; Yes
  2707	013234'	305 01 0 00 000622 		CAIGE	AC1,^D402		;Is it data link type related ?
  2708	013235'	254 00 0 00 013240'		 JRST	RRA5			; No
  2709	013236'	307 01 0 00 000763 		CAIG	AC1,^D499
  2710	013237'	254 00 0 00 014043'		 JRST	RI402			; Yes
  2711
  2712					; If the code got here, it must be unknown information type !
  2713
  2714	013240'	037 01 0 00 017010'	RRA5:	PMSG	<^U[NKNOWN SYSTEM TYPE CODE: >
  2715	013241'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy ac1 
  2716	013242'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 69
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0148

  2717
  2718					;  Type 1, length 3 = maintenance:
  2719					; Value = ver:, eco:, user eco:
  2720
  2721	013243'	037 01 0 00 017015'	RI1:	PMSG	<M[AINTENANCE>
  2722	013244'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2723	013245'	306 01 0 00 000003 		CAIN	AC1,3			;Is it 3 ?
  2724	013246'	254 00 0 00 013252'		 JRST	RI1A			; Yes
  2725
  2726	013247'	037 01 0 00 017020'		PMSG	<^I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 3, IT WAS >
  2727	013250'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  2728	013251'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2729
  2730	013252'	037 01 0 00 017032'	RI1A:	PMSG	<]VER:]]>
  2731	013253'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data
  2732	013254'	037 15 0 00 000000 		PNTDEC				;Print it
  2733
  2734	013255'	037 01 0 00 017034'		PMSG	<^]]ECO:]]>
  2735	013256'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data
  2736	013257'	037 15 0 00 000000 		PNTDEC				;Print it
  2737
  2738	013260'	037 01 0 00 017036'		PMSG	<^]]U[SER [ECO:]>
  2739	013261'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data
  2740	013262'	037 15 0 00 000000 		PNTDEC				;Print it
  2741	013263'	037 03 0 00 000001 		PCRLF
  2742	013264'	275 07 0 00 000004 		SUBI	AC7,4			;Decrement byte count
  2743	013265'	254 00 0 00 013152'		JRST	RRIDA
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 70
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0149

  2744
  2745					;  Type 2, length 2 = functions:
  2746					; Bit 0=loop, bit1=dump, bit2=primary loader, bit3= multi-block loader,
  2747					; Bit4=boot, bit5=console carrier, bit6= data link counters,
  2748					; Bit7=console carrier reservation
  2749
  2750	013266'	037 01 0 00 017041'	RI2:	PMSG	<F[UNCTIONS SUPPORTED:>
  2751	013267'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2752	013270'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2753	013271'	254 00 0 00 013275'		 JRST	RI2A			; Yes
  2754
  2755	013272'	037 01 0 00 017045'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 2, IT WAS >
  2756	013273'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  2757	013274'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2758
  2759	013275'	134 01 0 00 000002 	RI2A:	ILDB	AC1,AC2			;Get the data for lo byte
  2760	013276'	602 01 0 00 000001 		TRNE	AC1,1B35		;Loop ?
  2761	013277'	037 01 0 00 017057'		PMSG	<^]]]]L[OOP>		; Yes
  2762
  2763	013300'	602 01 0 00 000002 		TRNE	AC1,1B34		;Dump ?
  2764	013301'	037 01 0 00 017061'		PMSG	<^]]]]D[UMP>		; Yes
  2765
  2766	013302'	602 01 0 00 000004 		TRNE	AC1,1B33		;Primary loader ?
  2767	013303'	037 01 0 00 017063'		PMSG	<^]]]]P[RIMARY [L[OADER>	; Yes
  2768
  2769	013304'	602 01 0 00 000010 		TRNE	AC1,1B32		;Multi-block loader ?
  2770	013305'	037 01 0 00 017067'		PMSG	<^]]]]M[ULTI-[B[LOCK [L[OADER>	; Yes
  2771
  2772	013306'	602 01 0 00 000020 		TRNE	AC1,1B31		;Boot ?
  2773	013307'	037 01 0 00 017074'		PMSG	<^]]]]B[OOT>		; Yes
  2774
  2775	013310'	602 01 0 00 000040 		TRNE	AC1,1B30		;Console carrier ?
  2776	013311'	037 01 0 00 017076'		PMSG	<^]]]]C[ONSOLE [C[ARRIER>	;Yes
  2777
  2778	013312'	602 01 0 00 000100 		TRNE	AC1,1B29		;Data link counters ?
  2779	013313'	037 01 0 00 017102'		PMSG	<^]]]]D[ATA [L[INK [C[OUNTERS>	; Yes
  2780
  2781	013314'	602 01 0 00 000200 		TRNE	AC1,1B28		;Console carrier reservation ?
  2782	013315'	037 01 0 00 017107'		PMSG	<^]]]]C[ONSOLE [C[ARRIER [R[ESERVATION> ; Yes
  2783
  2784	013316'	037 01 0 00 017116'		PMSG	<^^ 0[THER FUNCTIONS:]]>
  2785	013317'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data for hi byte
  2786	013320'	037 02 0 00 000001 		PNTOCS
  2787	013321'	037 03 0 00 000001 		PCRLF
  2788	013322'	275 07 0 00 000003 		SUBI	AC7,3			;Decrement byte count
  2789	013323'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 71
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0150

  2790
  2791					;  Type 3, length 6 = console user:
  2792					; System address of the system that has the console reserved.
  2793
  2794	013324'	037 01 0 00 017122'	RI3:	PMSG	<C[ONSOLE USER:]]]>
  2795	013325'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2796	013326'	306 01 0 00 000006 		CAIN	AC1,6			;Is it 6 ?
  2797	013327'	254 00 0 00 013333'		 JRST	RI3A			; Yes
  2798
  2799	013330'	037 01 0 00 017125'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 6, IT WAS >
  2800	013331'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2801	013332'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2802
  2803	013333'	201 03 0 00 000006 	RI3A:	MOVEI	AC3,6			;Get a 6
  2804	013334'	200 05 0 00 016575'		MOVE	AC5,[POINT 8,AC0]	;Set up byte pointer
  2805
  2806	013335'	134 04 0 00 000002 	RI3B:	ILDB	AC4,AC2			;Get the data for a byte
  2807	013336'	136 04 0 00 000005 		IDPB	AC4,AC5			;Load up ac0, ac1	
  2808	013337'	367 03 0 00 013335'		SOJG	AC3,RI3B		;Repeat for 6 bytes
  2809	013340'	620 00 0 00 000017 		TRZ	AC0,17			;Clear unused bits 32-35
  2810	013341'	620 01 0 00 000017 		TRZ	AC1,17
  2811	013342'	302 00 0 00 000000 		CAIE	AC0,0			;Zero?
  2812	013343'	254 00 0 00 013350'		 JRST	RI3C			; No, print node number
  2813	013344'	302 01 0 00 000000 		CAIE	AC1,0			;Also zero?
  2814	013345'	254 00 0 00 013350'		 JRST	RI3C			; No, print node number
  2815	013346'	037 01 0 00 017137'		PMSG	<N[ONE^>		;Yes
  2816	013347'	254 00 0 00 013354'		JRST	RI3D
  2817
  2818	013350'	261 16 0 00 000000 	RI3C:	PUSHD	<AC0,AC1>
  2819	013351'	261 16 0 00 000001 
  2820	013352'	260 17 0 00 011460'		GO	PRHEX
  2821	013353'	037 03 0 00 000001 		PCRLF
  2822	013354'	275 07 0 00 000007 	RI3D:	SUBI	AC7,7			;Decrement byte count
  2823	013355'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
  2824
  2825					;  Type 4, length 2 = reservation timer:
  2826					; The maximum value, in seconds, of the timer used to clear unused
  2827					; Console reservations.
  2828
  2829	013356'	037 01 0 00 017141'	RI4:	PMSG	<R[ESERVATION TIMER:]]>
  2830	013357'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2831	013360'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2832	013361'	254 00 0 00 013365'		 JRST	RI4A			; Yes
  2833
  2834	013362'	037 01 0 00 017045'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 2, IT WAS >
  2835	013363'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2836	013364'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2837
  2838	013365'	134 00 0 00 000002 	RI4A:	ILDB	AC0,AC2			;Get the data for lo byte
  2839	013366'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for hi byte
  2840	013367'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify hi byte to ac0
  2841	013370'	037 15 0 00 000000 		PNTDEC				;Print it
  2842	013371'	037 01 0 00 017146'		PMSG	<. S[ECONDS^>
  2843	013372'	275 07 0 00 000003 		SUBI	AC7,3			;Decrement byte count
  2844	013373'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 72
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0151

  2845
  2846					;  Type 5, length 2 = console command size:
  2847					; The maximum size of the console command buffer.
  2848
  2849	013374'	037 01 0 00 017150'	RI5:	PMSG	<C[ONSOLE COMMAND SIZE:]]>
  2850	013375'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2851	013376'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2852	013377'	254 00 0 00 013403'		 JRST	RI5A			; Yes
  2853
  2854	013400'	037 01 0 00 017045'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 2, IT WAS >
  2855	013401'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  2856	013402'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2857
  2858	013403'	134 00 0 00 000002 	RI5A:	ILDB	AC0,AC2			;Get the data for lo byte
  2859	013404'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for hi byte
  2860	013405'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify hi byte to ac0
  2861	013406'	037 15 0 00 000000 		PNTDEC				;Print it
  2862	013407'	037 01 0 00 017155'		PMSG	<. B[YTES^>
  2863	013410'	275 07 0 00 000003 		SUBI	AC7,3			;Decrement byte count
  2864	013411'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
  2865
  2866					;  Type 6, length 2 = console response size:
  2867					; The maximum size of the console response buffer.
  2868
  2869	013412'	037 01 0 00 017157'	RI6:	PMSG	<C[ONSOLE RESPONSE SIZE:]]>
  2870	013413'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2871	013414'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  2872	013415'	254 00 0 00 013421'		 JRST	RI6A			; Yes
  2873
  2874	013416'	037 01 0 00 017045'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 2, IT WAS >
  2875	013417'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2876	013420'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2877
  2878	013421'	134 00 0 00 000002 	RI6A:	ILDB	AC0,AC2			;Get the data for lo byte
  2879	013422'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for hi byte
  2880	013423'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify hi byte to ac0
  2881	013424'	037 15 0 00 000000 		PNTDEC				;Print it
  2882	013425'	037 01 0 00 017155'		PMSG	<. B[YTES^>
  2883	013426'	275 07 0 00 000003 		SUBI	AC7,3			;Decrement byte count
  2884	013427'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 73
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0152

  2885
  2886					;  Type 7, length 6 = hardware address:
  2887					; Contents of physical address rom on nia link module.
  2888
  2889	013430'	037 01 0 00 017164'	RI7:	PMSG	<H[ARDWARE ADDRESS:]]>
  2890	013431'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2891	013432'	306 01 0 00 000006 		CAIN	AC1,6			;Is it 6 ?
  2892	013433'	254 00 0 00 013437'		 JRST	RI7A			; Yes
  2893
  2894	013434'	037 01 0 00 017125'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 6, IT WAS >
  2895	013435'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2896	013436'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2897
  2898	013437'	201 03 0 00 000006 	RI7A:	MOVEI	AC3,6			;Get a 6
  2899	013440'	200 05 0 00 016575'		MOVE	AC5,[POINT 8,AC0]	;Set up byte pointer
  2900
  2901	013441'	134 04 0 00 000002 	RI7B:	ILDB	AC4,AC2			;Get the data for a byte
  2902	013442'	136 04 0 00 000005 		IDPB	AC4,AC5			;Load ac0, ac1
  2903	013443'	367 03 0 00 013441'		SOJG	AC3,RI7B		;Repeat for 6 bytes
  2904	013444'	261 16 0 00 000000 		PUSHD	<AC0,AC1>
  2905	013445'	261 16 0 00 000001 
  2906	013446'	260 17 0 00 011460'		GO	PRHEX
  2907	013447'	037 03 0 00 000001 		PCRLF
  2908	013450'	275 07 0 00 000007 		SUBI	AC7,7			;Decrement byte count
  2909	013451'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 74
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0153

  2910
  2911					;  Type 8, length 10 = system time:
  2912					; Segmented binary system time
  2913
  2914	013452'	037 01 0 00 017170'	RI8:	PMSG	<S[YSTEM TIME:]]]>
  2915	013453'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2916	013454'	306 01 0 00 000012 		CAIN	AC1,^D10		;Is it 10 ?
  2917	013455'	254 00 0 00 013461'		 JRST	RI8A			; Yes
  2918
  2919	013456'	037 01 0 00 017173'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 10, IT WAS >
  2920	013457'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2921	013460'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2922
  2923	013461'	134 00 0 00 000002 	RI8A:	ILDB	AC0,AC2			;Get century	(19)
  2924	013462'	037 15 0 00 000000 		PNTDEC
  2925	013463'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get year	(84)
  2926	013464'	037 15 0 00 000000 		PNTDEC
  2927	013465'	037 01 0 00 017033'		PMSG	<]>
  2928
  2929	013466'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get month	(2)
  2930	013467'	037 15 0 00 000000 		PNTDEC
  2931	013470'	037 01 0 00 017205'		PMSG	</>
  2932	013471'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get day	(7)
  2933	013472'	037 15 0 00 000000 		PNTDEC
  2934	013473'	037 01 0 00 017033'		PMSG	<]>
  2935
  2936	013474'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get hour	(5)
  2937	013475'	037 15 0 00 000000 		PNTDEC
  2938	013476'	037 01 0 00 017206'		PMSG	<:>
  2939	013477'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get min	(30)
  2940	013500'	037 15 0 00 000000 		PNTDEC
  2941	013501'	037 01 0 00 017206'		PMSG	<:>
  2942	013502'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get sec	(20)
  2943	013503'	037 15 0 00 000000 		PNTDEC
  2944	013504'	037 03 0 00 000001 		PCRLF
  2945
  2946	013505'	133 00 0 00 000002 		IBP	AC2			;Skip over rest
  2947	013506'	133 00 0 00 000002 		IBP	AC2
  2948	013507'	133 00 0 00 000002 		IBP	AC2
  2949	013510'	275 07 0 00 000013 		SUBI	AC7,13			;Decrement byte count
  2950	013511'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 75
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0154

  2951
  2952					;  Type 100, length 1 = communication device:
  2953					; Where data is:
  2954					;	 0 = Dp, dp11-da	 1 = una, una
  2955					;	 2 = Du, du11-da	 3 = cna
  2956					;	 4 = dl, dl11-c or -e	 5 = qna
  2957					;	 6 = Dq, dq11-da	 7 = ci
  2958					;	 8 = da, da11-b or -al	 9 = pcl, pcl11-b
  2959					;	 10= Dup, dup11-da	 12= dmc, dmc11-da/ar,-ma/al or -fa/ar
  2960					;	 14= Dn, dn11-ba	 16= dlv, dlv11-e
  2961					;	 18= Dmp,		 20= dte20, dte20
  2962					;	 22= Dv, dv11-aa/ba	 24= dz, dz11-a or -b
  2963					;	 28= Kdp, kmc11/dup11-da 30= kdz, kmc11/dz11-a
  2964					;	 32= Kl, kl8-j		 34= dmv, dmv11
  2965					;	 36= Dpv, dpv11		 38= dmf,
  2966					;	 40= Dmr,		 42= kmy, kms11-px
  2967					;	 44= Kmx, kmx11-bd/be
  2968
  2969	013512'	037 01 0 00 017207'	RI100:	PMSG	<C[OMMUNICATION DEVICE:]]>
  2970	013513'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  2971	013514'	306 01 0 00 000001 		CAIN	AC1,1			;Is it 1 ?
  2972	013515'	254 00 0 00 013521'		 JRST	RI100A			; Yes
  2973
  2974	013516'	037 01 0 00 017214'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 1, IT WAS >
  2975	013517'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2976	013520'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  2977
  2978	013521'	134 01 0 00 000002 	RI100A:	ILDB	AC1,AC2			;Get the data
  2979	013522'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the byte
  2980	013523'	037 15 0 00 000000 		PNTDEC				;Print it
  2981	013524'	037 01 0 00 017226'		PMSG	<. >
  2982
  2983	013525'	306 01 0 00 000000 		CAIN	AC1,^D0			;Dp ?
  2984	013526'	037 01 0 00 017227'		 PMSG	<DP>			; Yes
  2985	013527'	306 01 0 00 000001 		CAIN	AC1,^D1			;Una ?
  2986	013530'	037 01 0 00 017230'		 PMSG	<UNA>			; Yes
  2987	013531'	306 01 0 00 000002 		CAIN	AC1,^D2			;Du ?
  2988	013532'	037 01 0 00 017231'		 PMSG	<DU>			; Yes
  2989	013533'	306 01 0 00 000003 		CAIN	AC1,^D3			;Cna ?
  2990	013534'	037 01 0 00 017232'		 PMSG	<CNA>			; Yes
  2991	013535'	306 01 0 00 000004 		CAIN	AC1,^D4			;Dl ?
  2992	013536'	037 01 0 00 017233'		 PMSG	<DL>			; Yes
  2993	013537'	306 01 0 00 000005 		CAIN	AC1,^D5			;Qna ?
  2994	013540'	037 01 0 00 017234'		 PMSG	<QNA>			; Yes
  2995	013541'	306 01 0 00 000006 		CAIN	AC1,^D6			;Dq ?
  2996	013542'	037 01 0 00 017235'		 PMSG	<DQ>			; Yes
  2997	013543'	306 01 0 00 000007 		CAIN	AC1,^D7			;Ci ?
  2998	013544'	037 01 0 00 017236'		 PMSG	<CI>			; Yes
  2999	013545'	306 01 0 00 000010 		CAIN	AC1,^D8			;Da ?
  3000	013546'	037 01 0 00 017237'		 PMSG	<DA>			; Yes
  3001	013547'	306 01 0 00 000011 		CAIN	AC1,^D9			;Pcl ?
  3002	013550'	037 01 0 00 017240'		 PMSG	<PCL>			; Yes
  3003	013551'	306 01 0 00 000012 		CAIN	AC1,^D10		;Dup ?
  3004	013552'	037 01 0 00 017241'		 PMSG	<DUP>			; Yes
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 76
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0155

  3005	013553'	306 01 0 00 000014 		CAIN	AC1,^D12		;Dmc ?
  3006	013554'	037 01 0 00 017242'		 PMSG	<DMC>			; Yes
  3007	013555'	306 01 0 00 000016 		CAIN	AC1,^D14		;Dn ?
  3008	013556'	037 01 0 00 017243'		 PMSG	<DN>			; Yes
  3009	013557'	306 01 0 00 000020 		CAIN	AC1,^D16		;Dlv ?
  3010	013560'	037 01 0 00 017244'		 PMSG	<DLV>			; Yes
  3011	013561'	306 01 0 00 000022 		CAIN	AC1,^D18		;Dmp ?
  3012	013562'	037 01 0 00 017245'		 PMSG	<DMP>			; Yes
  3013	013563'	306 01 0 00 000024 		CAIN	AC1,^D20		;Dte20 ?
  3014	013564'	037 01 0 00 017246'		 PMSG	<DTE20>			; Yes
  3015	013565'	306 01 0 00 000026 		CAIN	AC1,^D22		;Dv ?
  3016	013566'	037 01 0 00 017247'		 PMSG	<DV>			; Yes
  3017	013567'	306 01 0 00 000030 		CAIN	AC1,^D24		;Dz ?
  3018	013570'	037 01 0 00 017250'		 PMSG	<DZ>			; Yes
  3019	013571'	306 01 0 00 000034 		CAIN	AC1,^D28		;Kdp ?
  3020	013572'	037 01 0 00 017251'		 PMSG	<KDP>			; Yes
  3021	013573'	306 01 0 00 000036 		CAIN	AC1,^D30		;Kdz ?
  3022	013574'	037 01 0 00 017252'		 PMSG	<KDZ>			; Yes
  3023	013575'	306 01 0 00 000040 		CAIN	AC1,^D32		;Kl ?
  3024	013576'	037 01 0 00 017253'		 PMSG	<KL>			; Yes
  3025	013577'	306 01 0 00 000042 		CAIN	AC1,^D34		;Dmv ?
  3026	013600'	037 01 0 00 017254'		 PMSG	<DMV>			; Yes
  3027	013601'	306 01 0 00 000044 		CAIN	AC1,^D36		;Dpv ?
  3028	013602'	037 01 0 00 017255'		 PMSG	<DPV>			; Yes
  3029	013603'	306 01 0 00 000046 		CAIN	AC1,^D38		;Dmf ?
  3030	013604'	037 01 0 00 017256'		 PMSG	<DMF>			; Yes
  3031	013605'	306 01 0 00 000050 		CAIN	AC1,^D40		;Dmr ?
  3032	013606'	037 01 0 00 017257'		 PMSG	<DMR>			; Yes
  3033	013607'	306 01 0 00 000052 		CAIN	AC1,^D42		;Kmy ?
  3034	013610'	037 01 0 00 017260'		 PMSG	<KMY>			; Yes
  3035	013611'	306 01 0 00 000054 		CAIN	AC1,^D44		;Kmx ?
  3036	013612'	037 01 0 00 017261'		 PMSG	<KMX>			; yes
  3037	013613'	037 03 0 00 000001 		PCRLF
  3038	013614'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  3039	013615'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 77
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0156

  3040
  3041					;  Type 101-199, length I-16 = communication device related:
  3042
  3043	013616'	037 01 0 00 017262'	RI101:	PMSG	<C[OMM. DEVICE RELATED VALUE:]>
  3044	013617'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the information type number
  3045	013620'	037 15 0 00 000000 		PNTDEC				;Print it
  3046	013621'	037 00 0 00 000056 		PNTCI	"."
  3047
  3048	013622'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3049	013623'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3050	013624'	307 01 0 00 000000 		CAIG	AC1,0			;Greater than 0 ?
  3051	013625'	254 00 0 00 013630'		 JRST	RI101A			; No. Error.
  3052
  3053	013626'	307 01 0 00 000020 		CAIG	AC1,^D16		;Greater than 16 ?
  3054	013627'	254 00 0 00 013633'		 JRST	RI101B			; No
  3055
  3056	013630'	037 01 0 00 017267'	RI101A:	PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE BETWEEN 1 AND 16, IT WAS >
  3057	013631'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3058	013632'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3059
  3060	013633'	037 01 0 00 017303'	RI101B:	PMSG	<^ I[NFORMATION:]]]>
  3061	013634'	334 00 0 00 000000 		SKIPA
  3062	013635'	037 01 0 00 017307'	RI101C:	PMSG	<, >
  3063	013636'	134 00 0 00 000002 		ILDB	AC0,AC2			;Go get data
  3064	013637'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3065	013640'	037 02 0 00 000001 		PNTOCS				;Print it
  3066	013641'	367 01 0 00 013635'		SOJG	AC1,RI101C		;Print until no more data
  3067	013642'	037 03 0 00 000001 		PCRLF
  3068	013643'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 78
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0157

  3069
  3070					;  Type 200, length C-17 = software id:
  3071					;	0 = No software id	 	>0= the length of the info field
  3072					;      -1= Standard operating system    -2= maintenance system
  3073
  3074	013644'	037 01 0 00 017310'	RI200:	PMSG	<S[OFTWARE [ID:]]]>
  3075	013645'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3076	013646'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3077	013647'	302 01 0 00 000000 		CAIE	AC1,0			;Is it 0 ?
  3078	013650'	254 00 0 00 013653'		 JRST	RI200A			; No
  3079	013651'	037 01 0 00 017313'		PMSG	<NO S[OFTWARE [ID>	; Yes
  3080	013652'	254 00 0 00 013701'		JRST	RI200Z
  3081
  3082	013653'	302 01 0 00 000377 	RI200A:	CAIE	AC1,377			;Is it 377 (-1) ?
  3083	013654'	254 00 0 00 013657'		 JRST	RI200B			; No
  3084	013655'	037 01 0 00 017316'		PMSG	<S[TANDARD OPERATING SYSTEM> ; Yes
  3085	013656'	254 00 0 00 013701'		JRST	RI200Z
  3086
  3087	013657'	302 01 0 00 000376 	RI200B:	CAIE	AC1,376			;Is it 376 (-2) ?
  3088	013660'	254 00 0 00 013663'		 JRST	RI200C			; No
  3089	013661'	037 01 0 00 017323'		PMSG	<M[AINTENANCE SYSTEM>	; Yes
  3090	013662'	254 00 0 00 013701'		JRST	RI200Z
  3091
  3092	013663'	307 01 0 00 000000 	RI200C:	CAIG	AC1,0			;> 0 ?
  3093	013664'	254 00 0 00 013667'		 JRST	RI200D			; No. Error
  3094	013665'	307 01 0 00 000021 		CAIG	AC1,^D17		;> 17 ?
  3095	013666'	254 00 0 00 013672'		JRST	RI200E			; No.
  3096
  3097	013667'	037 01 0 00 017327'	RI200D:	PMSG	<^ E[RROR - LENGTH FIELD NOT BETWEEN 1 AND 17, IT WAS >
  3098	013670'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3099	013671'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3100
  3101	013672'	037 01 0 00 017340'	RI200E:	PMSG	<^ I[NFORMATION: >
  3102	013673'	334 00 0 00 000000 		SKIPA
  3103	013674'	037 01 0 00 017307'	RI200F:	PMSG	<, >
  3104	013675'	134 00 0 00 000002 		ILDB	AC0,AC2			;Go get data
  3105	013676'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3106	013677'	037 02 0 00 000001 		PNTOCS				;Print it
  3107	013700'	367 01 0 00 013674'		SOJG	AC1,RI200F		;Print until no more data
  3108
  3109	013701'	037 03 0 00 000001 	RI200Z:	PCRLF
  3110	013702'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 79
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0158

  3111
  3112					;  Type 201-299, length I-16 = software id related:
  3113					; A specific software id. Present only if form >0. Interpretation is
  3114					; Specific to the receiving system.
  3115
  3116	013703'	037 01 0 00 017343'	RI201:	PMSG	<S[OFTWARE [ID[ RELATED VALUE:]>
  3117	013704'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the information type
  3118	013705'	037 15 0 00 000000 		PNTDEC				;Print it
  3119	013706'	037 01 0 00 016354'		PMSG	<.^>
  3120
  3121	013707'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3122	013710'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3123	013711'	307 01 0 00 000000 		CAIG	AC1,0			;Greater than 0 ?
  3124	013712'	254 00 0 00 013715'		 JRST	RI201A			; No. Error.
  3125	013713'	307 01 0 00 000020 		CAIG	AC1,^D16		;Greater than 16 ?
  3126	013714'	254 00 0 00 013720'		 JRST	RI201B			; No
  3127
  3128	013715'	037 01 0 00 017267'	RI201A:	PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE BETWEEN 1 AND 16, IT WAS >
  3129	013716'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3130	013717'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3131
  3132	013720'	037 01 0 00 017351'	RI201B:	PMSG	< I[NFORMATION:]]]>
  3133	013721'	334 00 0 00 000000 		SKIPA
  3134	013722'	037 01 0 00 017307'	RI201C:	PMSG	<, >
  3135	013723'	134 00 0 00 000002 		ILDB	AC0,AC2			;Go get data
  3136	013724'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3137	013725'	037 02 0 00 000001 		PNTOCS				;Print it
  3138	013726'	367 01 0 00 013722'		SOJG	AC1,RI201C		;Print until no more data
  3139
  3140	013727'	037 03 0 00 000001 		PCRLF
  3141	013730'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 80
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0159

  3142
  3143					;  Type 300, length 1 = system processor:
  3144					; 1= Pdp-11, 2= pluto
  3145
  3146	013731'	037 01 0 00 017354'	RI300:	PMSG	<S[YSTEM [P[ROCESSOR:]]>
  3147	013732'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3148	013733'	306 01 0 00 000001 		CAIN	AC1,1			;Is it 1 ?
  3149	013734'	254 00 0 00 013740'		 JRST	RI300A			; Yes
  3150	013735'	037 01 0 00 017214'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 1, IT WAS >
  3151	013736'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3152	013737'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3153
  3154	013740'	134 01 0 00 000002 	RI300A:	ILDB	AC1,AC2			;Get the data
  3155	013741'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the type
  3156	013742'	037 15 0 00 000000 		PNTDEC				;Print it
  3157	013743'	037 01 0 00 017226'		PMSG	<. >
  3158
  3159	013744'	306 01 0 00 000001 		CAIN	AC1,^D1			;Pdp-11 ?
  3160	013745'	037 01 0 00 017360'		PMSG	<PDP-11>		; Yes
  3161	013746'	306 01 0 00 000002 		CAIN	AC1,^D2			;Pluto ?
  3162	013747'	037 01 0 00 017362'		 PMSG	<PLUTO>			; Yes
  3163	013750'	037 03 0 00 000001 		PCRLF
  3164	013751'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  3165	013752'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 81
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0160

  3166
  3167					; Type 301-399, length I-16, = system processor related:
  3168					; Information specific to the particular system processor.
  3169
  3170	013753'	037 01 0 00 017363'	RI301:	PMSG	<S[YSTEM [P[ROCESSOR RELATED VALUE:]>
  3171	013754'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the type #
  3172	013755'	037 15 0 00 000000 		PNTDEC				;Print which one
  3173	013756'	037 01 0 00 016354'		PMSG	<.^>
  3174
  3175	013757'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3176	013760'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3177	013761'	307 01 0 00 000000 		CAIG	AC1,0			;Greater than 0 ?
  3178	013762'	254 00 0 00 013765'		 JRST	RI301A			; No. Error.
  3179	013763'	307 01 0 00 000020 		CAIG	AC1,^D16		;Greater than 16 ?
  3180	013764'	254 00 0 00 013770'		 JRST	RI301B			; No
  3181	013765'	037 01 0 00 017267'	RI301A:	PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE BETWEEN 1 AND 16, IT WAS >
  3182	013766'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3183	013767'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3184
  3185	013770'	037 01 0 00 017351'	RI301B:	PMSG	< I[NFORMATION:]]]>
  3186	013771'	334 00 0 00 000000 		SKIPA
  3187	013772'	037 01 0 00 017307'	RI301C:	PMSG	<, >
  3188	013773'	134 00 0 00 000002 		ILDB	AC0,AC2			;Go get data
  3189	013774'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3190	013775'	037 02 0 00 000001 		PNTOCS				;Print it
  3191	013776'	367 01 0 00 013772'		SOJG	AC1,RI301C		;Print until no more data
  3192
  3193	013777'	037 03 0 00 000001 		PCRLF
  3194	014000'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 82
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0161

  3195
  3196					;  Type 400, length 1 = data link type:
  3197					; 1= Ethernet, 2= ddcmp, 3=lapb
  3198
  3199	014001'	037 01 0 00 017371'	RI400:	PMSG	<D[ATA [L[INK TYPE:]]]>
  3200	014002'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3201	014003'	306 01 0 00 000001 		CAIN	AC1,1			;Is it 1 ?
  3202	014004'	254 00 0 00 014010'		 JRST	RI400A			; Yes
  3203	014005'	037 01 0 00 017214'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 1, IT WAS >
  3204	014006'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3205	014007'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3206
  3207	014010'	134 01 0 00 000002 	RI400A:	ILDB	AC1,AC2			;Get the data
  3208	014011'	200 00 0 00 000001 		MOVE	AC0,AC1			;Retrieve the byte
  3209	014012'	037 15 0 00 000000 		PNTDEC				;Print it
  3210	014013'	037 01 0 00 017226'		PMSG	<. >
  3211
  3212	014014'	306 01 0 00 000001 		CAIN	AC1,^D1			;Ethernet ?
  3213	014015'	037 01 0 00 017375'		 PMSG	<ETHERNET>		; Yes
  3214	014016'	306 01 0 00 000002 		CAIN	AC1,^D2			;Ddcmp ?
  3215	014017'	037 01 0 00 017377'		 PMSG	<DDCMP>			; Yes
  3216	014020'	306 01 0 00 000003 		CAIN	AC1,^D3			;Lapb ?
  3217	014021'	037 01 0 00 017400'		 PMSG	<LAPB>			; Yes
  3218	014022'	037 03 0 00 000001 		PCRLF
  3219	014023'	275 07 0 00 000002 		SUBI	AC7,2			;Decrement byte count
  3220	014024'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
  3221
  3222
  3223					;  Type 401, length 2 = data link buffer size
  3224					; default = 262
  3225
  3226	014025'	037 01 0 00 017401'	RI401:	PMSG	<D[ATA LINK BUFFER SIZE:]]>
  3227	014026'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3228	014027'	306 01 0 00 000002 		CAIN	AC1,2			;Is it 2 ?
  3229	014030'	254 00 0 00 014034'		 JRST	RI401A			; Yes
  3230	014031'	037 01 0 00 017045'		PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE 2, IT WAS >
  3231	014032'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length
  3232	014033'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3233
  3234	014034'	134 00 0 00 000002 	RI401A:	ILDB	AC0,AC2			;Get the data for lo byte
  3235	014035'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for hi byte
  3236	014036'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify hi byte to ac0
  3237	014037'	037 15 0 00 000000 		PNTDEC				;Print it
  3238	014040'	037 01 0 00 017155'		PMSG	<. B[YTES^>
  3239	014041'	275 07 0 00 000003 		SUBI	AC7,3			;Decrement byte count
  3240	014042'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 83
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0162

  3241
  3242					;  Type 402-499, length I-16 = data link related:
  3243					; Information specific to the particular data link.
  3244
  3245	014043'	037 01 0 00 017406'	RI402:	PMSG	<D[ATA [L[INK RELATED VALUE:]>
  3246	014044'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the type #
  3247	014045'	037 15 0 00 000000 		PNTDEC				;Print which one
  3248	014046'	037 01 0 00 016354'		PMSG	<.^>
  3249
  3250	014047'	134 01 0 00 000002 		ILDB	AC1,AC2			;Go get the length
  3251	014050'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3252	014051'	307 01 0 00 000000 		CAIG	AC1,0			;Greater than 0 ?
  3253	014052'	254 00 0 00 014055'		 JRST	RI402A			; No. Error.
  3254	014053'	307 01 0 00 000020 		CAIG	AC1,^D16		;Greater than 16 ?
  3255	014054'	254 00 0 00 014060'		 JRST	RI402B			; No
  3256	014055'	037 01 0 00 017267'	RI402A:	PMSG	<^ I[NFORMATION LENGTH IN ERROR, IT SHOULD BE BETWEEN 1 AND 16, IT WAS >
  3257	014056'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy the length  
  3258	014057'	254 00 0 00 014071'		JRST	RI997			;Print ac0 and exit
  3259
  3260	014060'	037 01 0 00 017351'	RI402B:	PMSG	< I[NFORMATION:]]]>
  3261	014061'	334 00 0 00 000000 		SKIPA
  3262	014062'	037 01 0 00 017307'	RI402C:	PMSG	<, >
  3263	014063'	134 00 0 00 000002 		ILDB	AC0,AC2			;Go get data
  3264	014064'	360 07 0 00 000000 		SOJ	AC7,			;Decrement byte count
  3265	014065'	037 02 0 00 000001 		PNTOCS				;Print it
  3266	014066'	367 01 0 00 014062'		SOJG	AC1,RI402C		;Print until no more data
  3267
  3268	014067'	037 03 0 00 000001 		PCRLF
  3269	014070'	254 00 0 00 013152'		JRST	RRIDA			;Go do next info type 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 84
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0163

  3270
  3271					;#**********************************************************************
  3272					;  The following is jrst to when either the length field of type is 
  3273					;  Incorrect or a data field is not what was expected. This is
  3274					;  Considered an error, and further reporting of system id information
  3275					;  Would be futile.
  3276					;  Any additions or changes to the system id message in future hardware
  3277					;  May cause this to occur.
  3278					;#**********************************************************************
  3279
  3280	014071'	037 15 0 00 000000 	RI997:	PNTDEC				;Print what it is
  3281	014072'	037 00 0 00 000056 		PNTCI	"."
  3282
  3283	014073'	037 01 0 00 017413'		PMSG	<^S[YSTEM [ID[ FORMAT OR DATA IS UNKNOWN!^>
  3284	014074'	037 01 0 00 017422'		PMSG	<N[O FURTHER REPORTING WILL BE DONE FOR THIS NODE!^>
  3285
  3286					; The following is the common return for this subroutine. 
  3287
  3288	014075'	262 17 0 00 000000 	RRIDX:	GETIT	<AC0,AC1,AC2,AC3,AC4,AC7,AC10,AC11> ;Restore acs
  3289	014076'	262 17 0 00 000001 
  3290	014077'	262 17 0 00 000002 
  3291	014100'	262 17 0 00 000003 
  3292	014101'	262 17 0 00 000004 
  3293	014102'	262 17 0 00 000007 
  3294	014103'	262 17 0 00 000010 
  3295	014104'	262 17 0 00 000011 
  3296	014105'	263 17 0 00 000000 		RTN
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 85
RMTCNM	MAC	10-Jun-85 15:20		REQUEST ID DECODING AND REPORTING OF MESSAGE SUBROUTINES                           SEQ 0164

  3297
  3298					;#**********************************************************************
  3299					;  RIZ subroutine
  3300					; 
  3301					; The following takes a right justified eight bit byte from the data
  3302					; Stack and prints the two hex digits.
  3303					; The first digit printed is in bits 28-31 and the
  3304					; Second digit printed is in bits 32-35.
  3305					; To use this routine put the byte on the data stack by using
  3306					; "PUSHD <X>" Where x is the source address of the data byte,
  3307					; Then use "GO RIZ" to call this subroutine.
  3308					;#**********************************************************************
  3309
  3310	014106'	261 17 0 00 000000 	RIZ:	PUTIT	<AC0>			;Save ac0
  3311
  3312	014107'	262 16 0 00 000000 		POPD	<AC0>			;Get the byte
  3313	014110'	261 16 0 00 000000 		PUSHD	<AC0>			;Save the byte again
  3314
  3315	014111'	242 00 0 00 777774 		LSH	AC0,-4			;Justify hi hex digit
  3316	014112'	260 17 0 00 014117'		GO	RIZ1			;Go print it
  3317
  3318	014113'	262 16 0 00 000000 		POPD	<AC0>			;Get the byte again
  3319	014114'	260 17 0 00 014117'		GO	RIZ1			;Go print it
  3320
  3321	014115'	262 17 0 00 000000 		GETIT	<AC0>			;Restore the original ac0
  3322	014116'	263 17 0 00 000000 		RTN
  3323
  3324	014117'	405 00 0 00 000017 	RIZ1:	ANDI	AC0,17
  3325	014120'	271 00 0 00 000060 		ADDI	AC0,60			;Make an ascii character
  3326	014121'	303 00 0 00 000071 		CAILE	AC0,"9"			;Less than a "9" ?
  3327	014122'	271 00 0 00 000007 		 ADDI	AC0,7			; No, add 7 more to get a-f
  3328	014123'	037 12 0 00 000000 		PNTCHR				;Print the hex digit
  3329	014124'	263 17 0 00 000000 		RTN
  3330
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 86
RMTCNM	MAC	10-Jun-85 15:20		DEBUG TABLE FOR PRINTING SYS-ID INFO                                               SEQ 0165

  3331					SUBTTL	DEBUG TABLE FOR PRINTING SYS-ID INFO
  3332					;#****************************************************************************
  3333					;Fake SYS-ID information
  3334					;
  3335					; This tests the previous printout routine if DEBUG is enabled.
  3336					; For debug:	LOCAL ADDRESS    = 123456789ABC
  3337					;		CONSOLE USER     = 123456789ABC (hex)
  3338					;		HARDWARE ADDRESS = NODADH/L
  3339					;
  3340					;Format
  3341					;	Info type   - 2 bytes
  3342					;	Info length - 1 byte, value = x
  3343					;	Info values - x bytes (lo byte to hi bytes)
  3344					;#***********************************************************************
  3345
  3346	014125'	000000	000001		REQTAB:	1		;Info type = Maintenance version
  3347	014126'	000000	000000			0		;Info type
  3348	014127'	000000	000003			3		;Info length = 3 bytes
  3349	014130'	000000	000004			4		;Info value, version
  3350	014131'	000000	000005			5		;Info value, eco
  3351	014132'	000000	000006			6		;Info value, user eco
  3352
  3353	014133'	000000	000002			2		;Functions
  3354	014134'	000000	000000			0
  3355	014135'	000000	000002			2
  3356	014136'	000000	000177		REQT1:	177		;177 = not reserved, 377 = reserved
  3357	014137'	000000	000123			123
  3358
  3359	014140'	000000	000003			3		;Console user
  3360	014141'	000000	000000			0
  3361	014142'	000000	000006			6
  3362	014143'	000000	000000		REQT2:	0		;For debug, LOCADH/L is set to 123456789ABC in RRID.
  3363	014144'	000000	000000			0		;  CONSOLE USER will be set to 123456789ABC in RESCON
  3364	014145'	000000	000000			0		; & cleared in RELCON.
  3365	014146'	000000	000000			0
  3366	014147'	000000	000000			0
  3367	014150'	000000	000000			0
  3368
  3369	014151'	000000	000004			4		;Reservation timer
  3370	014152'	000000	000000			0
  3371	014153'	000000	000002			2
  3372	014154'	000000	000010			10		;lo byte, default to 10 sec
  3373	014155'	000000	000000			0		;hi byte
  3374
  3375	014156'	000000	000005			5		;Console command size
  3376	014157'	000000	000000			0
  3377	014160'	000000	000002			2
  3378	014161'	000000	000111			111		;lo
  3379	014162'	000000	000000			0		;hi
  3380
  3381	014163'	000000	000006			6		;Console response size
  3382	014164'	000000	000000			0
  3383	014165'	000000	000002			2
  3384	014166'	000000	000333			333		;lo
  3385	014167'	000000	000000			0		;hi
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 87
RMTCNM	MAC	10-Jun-85 15:20		DEBUG TABLE FOR PRINTING SYS-ID INFO                                               SEQ 0166

  3386
  3387	014170'	000000	000007			7		;Hardware address
  3388	014171'	000000	000000			0
  3389	014172'	000000	000006			6
  3390	014173'	000000	000000		REQT3:	0		; make same as NODADH/L in RRID
  3391	014174'	000000	000000			0
  3392	014175'	000000	000000			0
  3393	014176'	000000	000000			0
  3394	014177'	000000	000000			0
  3395	014200'	000000	000000			0
  3396
  3397	014201'	000000	000010			^D8		;System time
  3398	014202'	000000	000000			0
  3399	014203'	000000	000012			^D10
  3400	014204'	000000	000023			^D19
  3401	014205'	000000	000124			^D84
  3402	014206'	000000	000002			2
  3403	014207'	000000	000007			7
  3404	014210'	000000	000005			5
  3405	014211'	000000	000036			^D30
  3406	014212'	000000	000024			^D20
  3407	014213'	000000	000000			0
  3408	014214'	000000	000000			0
  3409	014215'	000000	000000			0
  3410
  3411	014216'	000000	000144			^D100		;Communication device
  3412	014217'	000000	000000			0
  3413	014220'	000000	000001			1
  3414	014221'	000000	000014			^D12
  3415
  3416	014222'	000000	000216			^D142		;Communication device related
  3417	014223'	000000	000000			0
  3418	014224'	000000	000012			^D10
  3419	014225'	000000	000001			1
  3420	014226'	000000	000002			2
  3421	014227'	000000	000003			3
  3422	014230'	000000	000004			4
  3423	014231'	000000	000005			5
  3424	014232'	000000	000006			6
  3425	014233'	000000	000007			7
  3426	014234'	000000	000010			10
  3427	014235'	000000	000011			11
  3428	014236'	000000	000012			12
  3429
  3430	014237'	000000	000310			^D200		;Software id
  3431	014240'	000000	000000			0
  3432	014241'	000000	000376			-2&377
  3433
  3434	014242'	000000	000323			^D211		;Software related
  3435	014243'	000000	000000			0
  3436	014244'	000000	000004			4
  3437	014245'	000000	000111			111
  3438	014246'	000000	000222			222
  3439	014247'	000000	000333			333
  3440	014250'	000000	000123			123
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 87-1
RMTCNM	MAC	10-Jun-85 15:20		DEBUG TABLE FOR PRINTING SYS-ID INFO                                               SEQ 0167

  3441
  3442	014251'	000000	000054			54		;^D300	;system processor
  3443	014252'	000000	000001			1
  3444	014253'	000000	000001			1
  3445	014254'	000000	000002			2
  3446
  3447	014255'	000000	000217			217		;^D399	;system processor related
  3448	014256'	000000	000001			1
  3449	014257'	000000	000003			3
  3450	014260'	000000	000001			1
  3451	014261'	000000	000002			2
  3452	014262'	000000	000003			3
  3453
  3454	014263'	000000	000220			220		;^D400	;data link
  3455	014264'	000000	000001			1
  3456	014265'	000000	000001			1
  3457	014266'	000000	000003			3
  3458
  3459
  3460	014267'	000000	000221			221		;^D401	;data link buffer size
  3461	014270'	000000	000001			1
  3462	014271'	000000	000002			2
  3463	014272'	000000	000321			321
  3464	014273'	000000	000456			456
  3465
  3466	014274'	000000	000302			302		;^D450	;data link related
  3467	014275'	000000	000001			1
  3468	014276'	000000	000002			2
  3469	014277'	000000	000321			321
  3470	014300'	000000	000321			321
  3471	
  3472	014301'	000000	000000		RTEND:	0
  3473	014302'	000000	000000			0
  3474	014303'	000000	000000			0
  3475	014304'	000000	000000			0		;EOF
  3476
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 88
RMTCNM	MAC	10-Jun-85 15:20		READ COUNTERS REPORTING                                                            SEQ 0168

  3477					SUBTTL	READ COUNTERS REPORTING
  3478					;#**********************************************************************
  3479					; RRCT Subroutine
  3480					;
  3481					;This routine will read the counters which are in the following format:
  3482					;
  3483					; byte		counter
  3484					; length	value
  3485					; ------	-------
  3486					;  2		Seconds since last zeroed
  3487					;  4		Bytes received
  3488					;  4		Bytes sent
  3489					;  4		Frames received
  3490					;  4		Frames sent
  3491					;  4		Multicast bytes received
  3492					;  4		Multicast frames received
  3493					;  4		Frames sent, initially deferred
  3494					;  4		Frames sent, single collision
  3495					;  4		Frames sent, multiple collision
  3496					;  2		Send failure
  3497					;  2		Send failure reason bitmap
  3498					;
  3499					;			Bit	Reason
  3500					;			---	------
  3501					;			0	Excessive collisions
  3502					;			1	Carrier check failed
  3503					;			2	Short circuit
  3504					;			3	Open circuit
  3505					;			4	Frame too long
  3506					;			5	Remote failure to defer
  3507					;
  3508					;  2		Receive failure
  3509					;  2		Receive failure reason bitmap
  3510					;
  3511					;			Bit	Reason
  3512					;			---	------
  3513					;			0	Block check error
  3514					;			1	Framing error
  3515					;			2	Frame too long
  3516					;
  3517					;  2		Unrecognized frame destination
  3518					;  2		Data overrun
  3519					;  2		System buffer unavailable
  3520					;  2		User buffer unavailable
  3521					;
  3522					;#**********************************************************************
  3523
  3524	014305'	261 17 0 00 000011 	RRCT:	PUTIT	<AC11,AC10,AC4,AC3,AC2,AC1,AC0> ;Save some acs
  3525	014306'	261 17 0 00 000010 
  3526	014307'	261 17 0 00 000004 
  3527	014310'	261 17 0 00 000003 
  3528	014311'	261 17 0 00 000002 
  3529	014312'	261 17 0 00 000001 
  3530	014313'	261 17 0 00 000000 
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 89
RMTCNM	MAC	10-Jun-85 15:20		READ COUNTERS REPORTING                                                            SEQ 0169

  3531	014314'	202 10 0 00 015046'		MOVEM	AC10,NODADH		;Save hi hex address (from GO HEX)
  3532	014315'	202 11 0 00 015047'		MOVEM	AC11,NODADL		;Save lo hex address
  3533
  3534					;Do Read Counters jsys
  3535
  3536	014316'	260 17 0 00 010441'		GO	RCRCT			;Do Read Counters
  3537	014317'	254 00 0 00 014451'		 JRST	RRCTX			; Jsys error return
  3538
  3539	014320'	262 16 0 00 015072'		POPD	SREQN			;Save request #
  3540	014321'	260 17 0 00 011316'		GO	RDSTIM			; & read current time
  3541
  3542					;Do Read Status jsys
  3543
  3544	014322'	261 16 0 00 015072'	RRCT1:	PUSHD	SREQN			;Push saved request number
  3545	014323'	260 17 0 00 011140'		GO	RCSTS			;Do READ STATUS
  3546	014324'	254 00 0 00 014451'		 JRST	RRCTX			; Jsys error return
  3547
  3548	014325'	260 17 0 00 014563'		GO	RDFLGS			;Read status flags
  3549	014326'	254 00 0 00 014451'		 JRST	RRCTX			; Ret+1 Error or timeout return
  3550	014327'	254 00 0 00 014322'		 JRST	RRCT1			; Ret+2 Still pending, read again
  3551	014330'	600 00 0 00 000000 		 NOP				; Ret+3 Successful
  3552
  3553					;Do Read Remote Console Reply for READ COUNTERS
  3554
  3555	014331'	261 16 0 00 015072'		PUSHD	SREQN			;Get Req #
  3556	014332'	260 17 0 00 010562'		GO	RCRPY			;Do READ REPLY (counters)
  3557	014333'	254 00 0 00 014451'		 JRST	RRCTX			; Jsys error return
  3558
  3559	014334'	037 01 0 00 017433'		PMSG	<^R[EAD [C[OUNTERS FOR NODE ADDRESS:]>
  3560	014335'	261 16 0 00 015046'		PUSHD	<NODADH,NODADL>
  3561	014336'	261 16 0 00 015047'
  3562	014337'	260 17 0 00 011460'		GO	PRHEX
  3563	014340'	037 03 0 00 000001 		PCRLF
  3564
  3565	014341'	200 02 0 00 015731'		MOVE	AC2,[POINT 8,TTOBUF]	;Set output buffer pointer
  3566
  3567	014342'	336 00 0 00 015070'		SKIPN	DBGFLG			;Debug ?
  3568	014343'	254 00 0 00 014352'		 JRST	RRCT3			; No
  3569
  3570	014344'	200 06 0 00 015731'		MOVE	AC6,[POINT 8,TTOBUF]	;Yes, set output buffer byte pointer
  3571	014345'	400 03 0 00 000000 		SETZ	AC3,
  3572
  3573	014346'	200 00 0 03 014475'	RRCT2:	MOVE	AC0,CTRTAB(AC3)		;Deposit fake debug data in TTOBUF
  3574	014347'	136 00 0 00 000006 		IDPB	AC0,AC6
  3575	014350'	302 03 0 00 000100 		CAIE	AC3,100
  3576	014351'	344 03 0 00 014346'		 AOJA	AC3,RRCT2
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 90
RMTCNM	MAC	10-Jun-85 15:20		READ COUNTERS REPORTING                                                            SEQ 0170

  3577
  3578					;Printout all counters
  3579
  3580	014352'	037 01 0 00 017442'	RRCT3:	PMSG	<S[ECONDS SINCE LAST ZEROED:]>
  3581	014353'	400 03 0 00 000000 		SETZ	AC3,			;Read 2 bytes
  3582	014354'	260 17 0 00 014461'		GO	PNTNUM			;Get bytes & print
  3583
  3584	014355'	037 01 0 00 017447'		PMSG	<B[YTES RECEIVED:]]]>
  3585	014356'	474 03 0 00 000000 		SETO	AC3,			;Read 4 bytes
  3586	014357'	260 17 0 00 014461'		GO	PNTNUM			;Get bytes & print
  3587
  3588	014360'	037 01 0 00 017453'		PMSG	<B[YTES SENT:]]]>
  3589	014361'	260 17 0 00 014461'		GO	PNTNUM
  3590
  3591	014362'	037 01 0 00 017456'		PMSG	<F[RAMES RECEIVED:]]>
  3592	014363'	260 17 0 00 014461'		GO	PNTNUM
  3593
  3594	014364'	037 01 0 00 017462'		PMSG	<F[RAMES SENT:]]]>
  3595	014365'	260 17 0 00 014461'		GO	PNTNUM
  3596
  3597	014366'	037 01 0 00 017465'		PMSG	<M[ULTICAST BYTES RECEIVED:]>
  3598	014367'	260 17 0 00 014461'		GO	PNTNUM
  3599
  3600	014370'	037 01 0 00 017472'		PMSG	<M[ULTICAST FRAMES RECEIVED:]>
  3601	014371'	260 17 0 00 014461'		GO	PNTNUM
  3602
  3603	014372'	037 01 0 00 017477'		PMSG	<F[RAMES SENT, INITIALLY DEFERRED:>
  3604	014373'	260 17 0 00 014461'		GO	PNTNUM
  3605
  3606	014374'	037 01 0 00 017505'		PMSG	<F[RAMES SENT, SINGLE COLLISION:]>
  3607	014375'	260 17 0 00 014461'		GO	PNTNUM
  3608
  3609	014376'	037 01 0 00 017513'		PMSG	<F[RAMES SENT, MULTIPLE COLLISION:>
  3610	014377'	260 17 0 00 014461'		GO	PNTNUM
  3611
  3612	014400'	037 01 0 00 017521'		PMSG	<S[END FAILURE:]]]>
  3613	014401'	400 03 0 00 000000 		SETZ	AC3,			;Read 2 bytes
  3614	014402'	260 17 0 00 014461'		GO	PNTNUM
  3615
  3616	014403'	037 01 0 00 017524'		PMSG	<S[END FAILURE REASON BITMAP:^>
  3617	014404'	400 00 0 00 000000 		SETZ	AC0,
  3618	014405'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data for lo byte
  3619	014406'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for hi byte
  3620	014407'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify it to ac0
  3621
  3622	014410'	602 00 0 00 000001 		TRNE	AC0,1B35		;Exessive collisions ?
  3623	014411'	037 01 0 00 017531'		 PMSG	<]]]]E[XCESSIVE COLLISIONS^> ; Yes
  3624
  3625	014412'	602 00 0 00 000002 		TRNE	AC0,1B34		;Carrier check failed ?
  3626	014413'	037 01 0 00 017536'		 PMSG	<]]]]C[ARRIER CHECK FAILED^> ; Yes
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 91
RMTCNM	MAC	10-Jun-85 15:20		READ COUNTERS REPORTING                                                            SEQ 0171

  3627
  3628	014414'	602 00 0 00 000004 		TRNE	AC0,1B33		;Short circuit ?
  3629	014415'	037 01 0 00 017543'		 PMSG	<]]]]S[HORT CIRCUIT^>	; Yes
  3630
  3631	014416'	602 00 0 00 000010 		TRNE	AC0,1B32		;Open circuit ?
  3632	014417'	037 01 0 00 017547'		 PMSG	<]]]]O[PEN CIRCUIT^>	; Yes
  3633
  3634	014420'	602 00 0 00 000020 		TRNE	AC0,1B31		;Frame too long ?
  3635	014421'	037 01 0 00 017553'		 PMSG	<]]]]F[RAME TOO LONG^>	; Yes
  3636
  3637	014422'	602 00 0 00 000040 		TRNE	AC0,1B30		;Remote failure to defer ?
  3638	014423'	037 01 0 00 017557'		 PMSG	<]]]]R[EMOTE FAILURE TO DEFER^> ;Yes
  3639
  3640	014424'	037 01 0 00 017564'		PMSG	<R[ECEIVE FAILURE:]]>
  3641	014425'	260 17 0 00 014461'		GO	PNTNUM
  3642
  3643	014426'	037 01 0 00 017570'		PMSG	<R[ECEIVE FAILURE REASON BITMAP:^>
  3644	014427'	400 00 0 00 000000 		SETZ	AC0,
  3645	014430'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data for lo byte
  3646	014431'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for hi byte
  3647	014432'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify it to ac0
  3648
  3649	014433'	602 00 0 00 000001 		TRNE	AC0,1B35		;Block check error ?
  3650	014434'	037 01 0 00 017576'		 PMSG	<]]]]B[LOCK CHECK ERROR^> ; Yes
  3651
  3652	014435'	602 00 0 00 000002 		TRNE	AC0,1B34		;Framing error ?
  3653	014436'	037 01 0 00 017602'		 PMSG	<]]]]F[RAMING ERROR^>	; Yes
  3654
  3655	014437'	602 00 0 00 000004 		TRNE	AC0,1B33		;Frame too short ?
  3656	014440'	037 01 0 00 017606'		 PMSG	<]]]]F[RAME TOO SHORT^>	; Yes
  3657
  3658	014441'	037 01 0 00 017612'		PMSG	<U[NRECOGNIZED FRAME DESTINATION:]>
  3659	014442'	260 17 0 00 014461'		GO	PNTNUM
  3660
  3661	014443'	037 01 0 00 017620'		PMSG	<D[ATA OVERRUN:]]]>
  3662	014444'	260 17 0 00 014461'		GO	PNTNUM
  3663
  3664	014445'	037 01 0 00 017623'		PMSG	<S[YSTEM BUFFER UNAVAILABLE:]>
  3665	014446'	260 17 0 00 014461'		GO	PNTNUM
  3666
  3667	014447'	037 01 0 00 017630'		PMSG	<U[SER BUFFER UNAVAILABLE:]>
  3668	014450'	260 17 0 00 014461'		GO	PNTNUM
  3669
  3670	014451'	262 17 0 00 000000 	RRCTX:	GETIT	<AC0,AC1,AC2,AC3,AC4,AC10,AC11>	;Restore ac's
  3671	014452'	262 17 0 00 000001 
  3672	014453'	262 17 0 00 000002 
  3673	014454'	262 17 0 00 000003 
  3674	014455'	262 17 0 00 000004 
  3675	014456'	262 17 0 00 000010 
  3676	014457'	262 17 0 00 000011 
  3677	014460'	263 17 0 00 000000 		RTN
  3678
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 92
RMTCNM	MAC	10-Jun-85 15:20		READ COUNTER BYTES & PRINT                                                         SEQ 0172

  3679					SUBTTL	READ COUNTER BYTES & PRINT
  3680					;#*********************************************************************
  3681					; Enter with AC2 pointing to the correct byte in TTOBUF
  3682					;	     AC3 = 0  to take 2 bytes from TTOBUF
  3683					;	     AC3 = -1 to take 4 bytes from TTOBUF
  3684					;
  3685					; Assemble the bytes in AC0 & print it.
  3686					;#***********************************************************************
  3687
  3688	014461'	400 00 0 00 000000 	PNTNUM:	SETZ	AC0,
  3689	014462'	134 00 0 00 000002 		ILDB	AC0,AC2			;Get the data for lo byte
  3690	014463'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for 2'nd byte
  3691	014464'	137 01 0 00 017145'		DPB	AC1,[POINT 8,AC0,35-8]	;Justify it to ac0
  3692	014465'	322 03 0 00 014472'		JUMPE	AC3,PN1			;Jump if only need 2 bytes
  3693
  3694	014466'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for 3'rd byte
  3695	014467'	137 01 0 00 017635'		DPB	AC1,[POINT 8,AC0,35-16]	;Justify it to ac0
  3696	014470'	134 01 0 00 000002 		ILDB	AC1,AC2			;Get the data for 4'th byte
  3697	014471'	137 01 0 00 017636'		DPB	AC1,[POINT 8,AC0,35-24]	;Justify it to ac0
  3698
  3699	014472'	037 15 0 00 000000 	PN1:	PNTDEC				;Print it
  3700	014473'	037 03 0 00 000001 		PCRLF
  3701	014474'	263 17 0 00 000000 		RTN
  3702
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 93
RMTCNM	MAC	10-Jun-85 15:20		DEBUG TABLE FOR PRINTING READ COUNTERS INFORMATION                                 SEQ 0173

  3703					SUBTTL	DEBUG TABLE FOR PRINTING READ COUNTERS INFORMATION
  3704					;#**************************************************************************
  3705					; Dummy READ COUNTERS information
  3706					;
  3707					; This is a test of the previous printout routine to be used if the
  3708					; debug EXIT is enabled.
  3709					; Bytes are in the order of low to high
  3710					;#**************************************************************************
  3711
  3712	014475'	000000	000010		CTRTAB:	10		;Seconds since last zeroed	(lo byte)
  3713	014476'	000000	000000			0		;				(hi byte)
  3714
  3715	014477'	000000	000012			12		;Bytes received
  3716	014500'	000000	000000			0
  3717	014501'	000000	000000			0
  3718	014502'	000000	000000			0
  3719
  3720	014503'	000000	000014			14		;Bytes sent
  3721	014504'	000000	000000			0
  3722	014505'	000000	000000			0
  3723	014506'	000000	000000			0
  3724
  3725	014507'	000000	000016			16		;Frames received
  3726	014510'	000000	000000			0
  3727	014511'	000000	000000			0
  3728	014512'	000000	000000			0
  3729
  3730	014513'	000000	000020			20		;Frames sent
  3731	014514'	000000	000000			0
  3732	014515'	000000	000000			0
  3733	014516'	000000	000000			0
  3734
  3735	014517'	000000	000022			22		;Multicast bytes received
  3736	014520'	000000	000000			0
  3737	014521'	000000	000000			0
  3738	014522'	000000	000000			0
  3739
  3740	014523'	000000	000024			24		;Multicast frames received
  3741	014524'	000000	000000			0
  3742	014525'	000000	000000			0
  3743	014526'	000000	000000			0
  3744
  3745	014527'	000000	000026			26		;Frames sent, initially deferred
  3746	014530'	000000	000000			0
  3747	014531'	000000	000000			0
  3748	014532'	000000	000000			0
  3749
  3750	014533'	000000	000030			30		;Frames sent, single collision
  3751	014534'	000000	000000			0
  3752	014535'	000000	000000			0
  3753	014536'	000000	000000			0
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 94
RMTCNM	MAC	10-Jun-85 15:20		DEBUG TABLE FOR PRINTING READ COUNTERS INFORMATION                                 SEQ 0174

  3754
  3755	014537'	000000	000032			32		;Frames sent, multiple collision
  3756	014540'	000000	000000			0
  3757	014541'	000000	000000			0
  3758	014542'	000000	000000			0
  3759
  3760	014543'	000000	000034			34		;Send failure
  3761	014544'	000000	000000			0
  3762
  3763	014545'	000000	000377			377		;Send failure reason bitmap
  3764	014546'	000000	000000			0
  3765
  3766	014547'	000000	000036			36		;Receive failure
  3767	014550'	000000	000000			0
  3768
  3769	014551'	000000	000377			377		;Receive failure reason bitmap
  3770	014552'	000000	000000			0
  3771
  3772	014553'	000000	000040			40		;Unrecognized frame destination
  3773	014554'	000000	000000			0
  3774
  3775	014555'	000000	000042			42		;Data overrun
  3776	014556'	000000	000000			0
  3777
  3778	014557'	000000	000044			44		;System buffer unavailable
  3779	014560'	000000	000000			0
  3780
  3781	014561'	000000	000046			46		;User buffer unavailable
  3782	014562'	000000	000000			0
  3783
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 95
RMTCNM	MAC	10-Jun-85 15:20		STATUS FLAG REPORTING                                                              SEQ 0175

  3784					SUBTTL	STATUS FLAG REPORTING
  3785					;#**********************************************************************
  3786					;* RDFLGS Subroutine - Come here after doing "GO RCSTS"
  3787					;
  3788					;  Enter with STATUS in AC1
  3789					;  Return +1 if error or timeout
  3790					;  Return +2 if status pending & time not up.
  3791					;  Return +3 if successful
  3792					;#**********************************************************************
  3793
  3794	014563'	550 01 0 00 011223'	RDFLGS:	HRRZ	AC1,RCSTSB+.LMSTF	;Get status from check status jsys
  3795	014564'	302 01 0 00 000000 		CAIE	AC1,.LMPND		;Request pending ?
  3796	014565'	254 00 0 00 014573'		 JRST	RDFL1			; No, check the other flags
  3797
  3798					;The request is pending. See if 5 seconds have elapsed since the
  3799					; Operation was started. If it has, report it. If not read the status again.
  3800
  3801	014566'	260 17 0 00 011331'		GO	OTIME			;See if 5 seconds have elapsed
  3802	014567'	334 00 0 00 000000 		SKIPA				;Error - time has elapsed
  3803	014570'	254 00 0 00 014624'		JRST	RDFL2			; Ret+2, to read status again
  3804	014571'	037 01 0 00 017637'		PMSG	<^STATUS [MESSAGE NOT RETURNED WITHIN 5 SECONDS^>
  3805	014572'	254 00 0 00 014616'		JRST	RDFL5
  3806
  3807	014573'	302 01 0 00 000002 	RDFL1:	CAIE	AC1,.LMABT		;Aborted ?
  3808	014574'	254 00 0 00 014576'		 JRST	RDFL6			; No
  3809						ERROR1	(0,0,0,REQUEST ABORTED,^_
  3810	014575'	036 00 0 00 017660'	REQUEST ID MESSAGE WAS ABORTED,ER01)
  3811
  3812	014576'	302 01 0 00 000003 	RDFL6:	CAIE	AC1,.LMTXF		;Transmit failed ?
  3813	014577'	254 00 0 00 014601'		 JRST	RDFL7			; No
  3814						ERROR1	(0,0,0,TRANSMIT FAILED,^_
  3815	014600'	036 00 0 00 017673'	TRANSMIT FAILURE OCCURED,ER01)
  3816
  3817	014601'	302 01 0 00 000004 	RDFL7:	CAIE	AC1,.LMCCE		;Channel communication error ?
  3818	014602'	254 00 0 00 014604'		 JRST	RDFL8			; No
  3819						ERROR1	(0,0,0,CHANNEL COMMUNICATION ERROR,^_
  3820	014603'	036 00 0 00 017711'	CHANNEL COMMUNICATION ERROR OCCURED,ER01)
  3821
  3822	014604'	307 01 0 00 000004 	RDFL8:	CAIG	AC1,.LMCCE		;Unknown status type ?
  3823	014605'	254 00 0 00 014614'		 JRST	RDFL4			; No
  3824	014606'	037 01 0 00 017714'		PMSG	<^U[NKNOWN STATUS CODE RETURNED FROM^[REMOTE CONSOLE CHECK STATUS JSYS.>
  3825	014607'	037 01 0 00 017730'		PMSG	<^R[ETURNED CODE = >
  3826	014610'	200 00 0 00 000001 		MOVE	AC0,AC1			;Copy status	
  3827	014611'	037 02 0 00 000001 		PNTOCS				;Print the status
  3828	014612'	037 03 0 00 000001 		PCRLF
  3829	014613'	037 04 0 00 000003 		FATAL
  3830
  3831	014614'	306 01 0 00 000001 	RDFL4:	CAIN	AC1,.LMSUC		;Successful ?
  3832	014615'	254 00 0 00 014623'		 JRST	RDFL3			; Yes, ret+3
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 96
RMTCNM	MAC	10-Jun-85 15:20		STATUS FLAG REPORTING                                                              SEQ 0176

  3833
  3834					;Do Abort Outstanding command
  3835
  3836	014616'	261 16 0 00 015072'	RDFL5:	PUSHD	SREQN			;Get Req#
  3837	014617'	260 17 0 00 011104'		GO	RCABT			;Do ABORT
  3838	014620'	254 00 0 00 014625'		 JRST	RDFLX			; Jsys error return
  3839	014621'	037 01 0 00 017734'		PMSG	<^A[BORTING [A[FTER [U[NSUCCESSFUL [READ STATUS^>
  3840	014622'	254 00 0 00 014625'		JRST	RDFLX
  3841
  3842	014623'	350 00 0 17 000000 	RDFL3:	AOS	(P)			;Do return +3
  3843	014624'	350 00 0 17 000000 	RDFL2:	AOS	(P)			;Do return +2
  3844	014625'	263 17 0 00 000000 	RDFLX:	RTN				;Do return +1
  3845
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 97
RMTCNM	MAC	10-Jun-85 15:20		SPEAR REPORTING SUBROUTINES                                                        SEQ 0177

  3846					SUBTTL	SPEAR REPORTING SUBROUTINES
  3847					;#**********************************************************************
  3848					; SPR1 - print initial spear report 'diagnostic started'
  3849					;
  3850					;  This subroutine makes a "DIAGNOSTIC STARTED" spear report.
  3851					;  It determines if it should be made by looking at "SPRFLG" and "SPEAR1".
  3852					;  "SPEAR1" Is initially loaded as 0.
  3853					;  When a  "DIAGNOSTIC STARTED" spear report is made it is set to -1.
  3854					;  "SPRFLG" Is is a flag word that is toggled by the commands
  3855					;  Enable/disable spear-reporting.
  3856					;#**********************************************************************
  3857
  3858	014626'	261 17 0 00 000002 	SPR1:	PUTIT	<AC2,AC1,AC0>		;Save some ac's
  3859	014627'	261 17 0 00 000001 
  3860	014630'	261 17 0 00 000000 
  3861	014631'	332 00 0 00 015067'		SKIPE	SPRFLG			;Spear reporting enabled ?
  3862	014632'	332 00 0 00 015056'		SKIPE	SPEAR1			;Diagnostic started spear entry made ?
  3863	014633'	254 00 0 00 014645'		 JRST	SPR1X			;Bypass spear report
  3864
  3865					; Get ppn and build entry / get time and insert it
  3866
  3867	014634'	260 17 0 00 015022'		GO	GETPP			;Get user's ppn
  3868	014635'	262 16 0 00 014661'		POPD	<SENT10+8>		;Save in spear entry block
  3869	014636'	104 00 0 00 000227 		GTAD				;Get time and day
  3870	014637'	202 01 0 00 014656'		MOVEM	AC1,SENT10+5		;Save it
  3871
  3872					; Make the entry
  3873
  3874	014640'	201 01 0 00 014651'		MOVEI	AC1,SENT10		;Get address of argument block
  3875	014641'	201 02 0 00 000012 		MOVEI	AC2,^D10		;Get length
  3876	014642'	336 00 0 00 015070'		SKIPN	DBGFLG
  3877	014643'	104 00 0 00 000527 		SYERR				;Write to syserr file
  3878
  3879	014644'	476 00 0 00 015056'		SETOM	SPEAR1			;Set 'spear initial msg done' flag
  3880	014645'	262 17 0 00 000000 	SPR1X:	GETIT	<AC0,AC1,AC2>		;Restore ac's
  3881	014646'	262 17 0 00 000001 
  3882	014647'	262 17 0 00 000002 
  3883	014650'	263 17 0 00 000000 		RTN
  3884
  3885					; Spear entry block 10
  3886
  3887	014651'	250000	000000		SENT10:	250000,,0			;Event type
  3888	014652'	000000	000000			0				;Zero
  3889	014653'	000000	000000			0				;Zero
  3890	014654'	000000	000000			0				;Zero
  3891	014655'	000000	020002			20002				;Time of occurence block
  3892	014656'	000000	000000			0				;Time
  3893	014657'	004010	000000			4010,,0				;4 Words, type 10 code
  3894	014660'	62 55 64 43 57 56 		SIXBIT	/RMTCON/			;Diagnostic name
  3895	014661'	000001	000000			MCNVER,,DECVER			;Diagnostic version
  3896	014662'	000000	000000			0				;User ppn
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 98
RMTCNM	MAC	10-Jun-85 15:20		SPEAR REPORTING SUBROUTINES                                                        SEQ 0178

  3897
  3898					;#**********************************************************************
  3899					; SPR2 - makes either:
  3900					;
  3901					;   1. An error spear report.
  3902					;   2. A successful completion spear report.
  3903					;   3. Or a spear packet count incremented spear report
  3904					;      (The spear queue entry count changed during execution of an ni packet).
  3905					;
  3906					;  Put a word on the data stack via "PUSHD <X>" where x is:
  3907					;  1. A 0 for a successful completion spear report.
  3908					;  2. For an error spear report: a postive number where bits 1-35
  3909					;     Contains the address of an asciz message.
  3910					;  3. For a spear packet count incremented spear report:
  3911					;      A negative number where bit 0 is the negative sign and
  3912					;     Bits 1-35 contains the address of an asciz message.
  3913					;#**********************************************************************
  3914
  3915	014663'	262 16 0 00 014720'	SPR2:	POPD	<SPR2D>			;Get the code word.
  3916	014664'	261 17 0 00 000000 		PUTIT	<AC0,AC1,AC2,AC3,AC4>	;Save some ac's
  3917	014665'	261 17 0 00 000001 
  3918	014666'	261 17 0 00 000002 
  3919	014667'	261 17 0 00 000003 
  3920	014670'	261 17 0 00 000004 
  3921
  3922					; First check if spear reporting is enabled and that we haven't
  3923					; Exceeded the spear error reporting threshold.
  3924				
  3925	014671'	336 00 0 00 015067'		SKIPN	SPRFLG			;Spear reporting enabled ?
  3926	014672'	254 00 0 00 014712'		 JRST	SPR2X			; It isn't. Exit this subroutine
  3927
  3928	014673'	200 00 0 00 015057'		MOVE	AC0,SPRCNT		;Get the # of error spear entries made
  3929	014674'	313 00 0 00 015641'		CAMLE	AC0,SERTH#		;Have we exceeded spear threshold ?
  3930	014675'	254 00 0 00 014712'		 JRST	SPR2X			; Yes. Exit this subroutine.
  3931
  3932					; Initialize entry
  3933
  3934	014676'	402 00 0 00 014730'		SETZM	SENT11+7		;Clear test name
  3935	014677'	402 00 0 00 014731'		SETZM	SENT11+8		;Clear test description length
  3936	014700'	201 02 0 00 000003 		MOVEI	AC2,3			;Set block length to 3 words
  3937	014701'	137 02 0 00 017744'		DPB	AC2,[POINT 9,SEN11L,35]	;Save length
  3938
  3939					; Make the spear entry
  3940
  3941	014702'	104 00 0 00 000227 	SPR2E:	GTAD				;Get time and day
  3942	014703'	202 01 0 00 014726'		MOVEM	AC1,SENT11+5		;Save it
  3943	014704'	135 02 0 00 017744'		LDB	AC2,[POINT 9,SEN11L,35]	;Get length
  3944	014705'	271 02 0 00 000006 		ADDI	AC2,6			;Calculate total block length
  3945	014706'	201 01 0 00 014721'		MOVEI	AC1,SENT11		;Get address of argument block
  3946	014707'	336 00 0 00 015070'		SKIPN	DBGFLG
  3947	014710'	104 00 0 00 000527 		SYERR				;Write to syserr file
  3948
  3949	014711'	350 00 0 00 015057'		AOS	SPRCNT			;Increment spear error entries made
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 99
RMTCNM	MAC	10-Jun-85 15:20		SPEAR REPORTING SUBROUTINES                                                        SEQ 0179

  3950
  3951	014712'	262 17 0 00 000004 	SPR2X:	GETIT	<AC4,AC3,AC2,AC1,AC0>	;Restore ac's
  3952	014713'	262 17 0 00 000003 
  3953	014714'	262 17 0 00 000002 
  3954	014715'	262 17 0 00 000001 
  3955	014716'	262 17 0 00 000000 
  3956	014717'	263 17 0 00 000000 		RTN
  3957
  3958	014720'	000000	000000		SPR2D:	0				;Code word stored here
  3959
  3960					; Spear entry block 11
  3961
  3962	014721'	250000	000000		SENT11:	250000,,0			;Event type
  3963	014722'	000000	000000			0				;Zero
  3964	014723'	000000	000000			0				;Zero
  3965	014724'	000000	000000			0				;Zero
  3966	014725'	000000	020002			20002				;Time of occurence block
  3967	014726'	000000	000000			0				;Time
  3968	014727'	000011	000000		SEN11L:	11,,0				;Type 11 code
  3969	014730'	000000	000000			0				;Failing test name
  3970	014731'	000000	000000			0				;Failing test description length
  3971	014732'					BLOCK	^D20			;Ascii test description
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 100
RMTCNM	MAC	10-Jun-85 15:20		SPEAR REPORTING SUBROUTINES                                                        SEQ 0180

  3972
  3973					;#**********************************************************************
  3974					; SPR3 subroutine
  3975					;
  3976					;  Used to make a spear entry when the spear queue entry
  3977					;  Number has changed but no error was detected by the diagnostic.
  3978					;#**********************************************************************
  3979
  3980	014756'	261 17 0 00 000000 	SPR3:	PUTIT	<AC0>			;Save an ac
  3981
  3982	014757'	201 00 0 00 014765'		MOVEI	AC0,SPR3E		;Get address of asciz message
  3983	014760'	661 00 0 00 400000 		TLO	AC0,(1B0)		;Set bit 0
  3984	014761'	261 16 0 00 000000 		PUSHD	<AC0>			;Put the address on the data stack
  3985	014762'	260 17 0 00 014663'		GO	SPR2			;Call spear error reporter subroutine
  3986
  3987	014763'	262 17 0 00 000000 		GETIT	<AC0>			;Restore ac
  3988	014764'	263 17 0 00 000000 		RTN
  3989
  3990	014765'				SPR3E:	ASCIZ/
  3991	014765'	015 012 124 110 105 	THE SPEAR QUEUE ENTRY COUNTER HAS CHANGED DURING EXECUTION OF THIS TEST.
  3992	014766'	040 123 120 105 101 
  3993	014767'	122 040 121 125 105 
  3994	014770'	125 105 040 105 116 
  3995	014771'	124 122 131 040 103 
  3996	014772'	117 125 116 124 105 
  3997	014773'	122 040 110 101 123 
  3998	014774'	040 103 110 101 116 
  3999	014775'	107 105 104 040 104 
  4000	014776'	125 122 111 116 107 
  4001	014777'	040 105 130 105 103 
  4002	015000'	125 124 111 117 116 
  4003	015001'	040 117 106 040 124 
  4004	015002'	110 111 123 040 124 
  4005	015003'	105 123 124 056 015 
  4006	015004'	012 116 117 040 105 	NO ERROR WAS DETECTED BY THIS TEST.
  4007	015005'	122 122 117 122 040 
  4008	015006'	127 101 123 040 104 
  4009	015007'	105 124 105 103 124 
  4010	015010'	105 104 040 102 131 
  4011	015011'	040 124 110 111 123 
  4012	015012'	040 124 105 123 124 
  4013	015013'	056 015 012 000 000 	/
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 101
RMTCNM	MAC	10-Jun-85 15:20		SPEAR REPORTING SUBROUTINES                                                        SEQ 0181

  4014
  4015					;#**********************************************************************
  4016					; SPR4 subroutine
  4017					;
  4018					;  Used to make a successful completion spear report.
  4019					;#**********************************************************************
  4020
  4021	015014'	261 17 0 00 000000 	SPR4:	PUTIT	<AC0>			;Save an ac
  4022
  4023	015015'	402 00 0 00 000000 		SETZM	AC0			;Get a 0 word
  4024	015016'	261 16 0 00 000000 		PUSHD	<AC0>			;Put the zero on the data stack
  4025	015017'	260 17 0 00 014663'		GO	SPR2			;Call spear error reporter subroutine
  4026
  4027	015020'	262 17 0 00 000000 		GETIT	<AC0>			;Restore ac
  4028	015021'	263 17 0 00 000000 		RTN
  4029
  4030					;#**********************************************************************
  4031					; GETPP - find out ppn number
  4032					;
  4033					;  This subroutine will return with the ppn on the data stack.
  4034					;  To get the ppn after this subroutine returns,
  4035					;  Use  "POPD <X>" where "X" is the location you want the ppn to go to.
  4036					;#**********************************************************************
  4037
  4038	015022'	261 17 0 00 000001 	GETPP:	PUTIT	<AC1,AC2,AC3>		;Save some ac's
  4039	015023'	261 17 0 00 000002 
  4040	015024'	261 17 0 00 000003 
  4041	015025'	476 00 0 00 000001 		SETOM	AC1			;Indicate current job
  4042	015026'	200 02 0 00 017745'		MOVE	AC2,[-1,,AC1]		;Place 1 word into ac1
  4043	015027'	201 03 0 00 000003 		MOVEI	AC3,3			;Point to connected directory number
  4044
  4045	015030'	104 00 0 00 000507 		GETJI				;Get job information
  4046	015031'	334 00 0 00 000000 		SKIPA				;Error 
  4047	015032'	254 00 0 00 015034'		JRST	GETPP1			;Good return
  4048
  4049	015033'	402 00 0 00 000001 		SETZM	AC1			;Error - just clear ac1
  4050
  4051	015034'	261 16 0 00 000001 	GETPP1:	PUSHD	<AC1>			;Put ppn on data stack
  4052	015035'	262 17 0 00 000003 		GETIT	<AC3,AC2,AC1>		;Restore ac's
  4053	015036'	262 17 0 00 000002 
  4054	015037'	262 17 0 00 000001 
  4055	015040'	263 17 0 00 000000 		RTN
  4056
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 102
RMTCNM	MAC	10-Jun-85 15:20		GENERAL STORAGE                                                                    SEQ 0182

  4057					SUBTTL	GENERAL STORAGE
  4058					;#**********************************************************************
  4059					;*  General Program Storage 
  4060					;#**********************************************************************
  4061
  4062	015041'	000000	000000		PRTNBR:	0				;Storage for selected port number
  4063
  4064	015042'	000000	000000		TARADH:	0				;Hi address for TARGET NODE
  4065	015043'	000000	000000		TARADL:	0				;Lo
  4066
  4067	015044'	000000	000000		LOCADH:	0				;Hi address for LOCAL NODE
  4068	015045'	000000	000000		LOCADL:	0				;Lo
  4069
  4070	015046'	000000	000000		NODADH:	0				;Hi hex NODE address for REQ-ID cmd 
  4071	015047'	000000	000000		NODADL:	0				;Lo   & READ-COUNTERS command
  4072
  4073	015050'	044321	263600		SLOCH:	44321,,263600			;For debug, set LOCADH = 1-8,z hex
  4074	015051'	465360	000000		SLOCL:	465360,,0			;		LOCADL = 9-C,z hex in RRID
  4075
  4076	015052'	000000	000000		PWORDH:	0				;Hi hex password verification code
  4077	015053'	000000	000000		PWORDL:	0				;Lo
  4078
  4079	015054'	000000	000000		TIMST:	0				;Start time of an event
  4080	015055'	000000	000000		TIMEND:	0				;End time, contents of TIMST +5 seconds
  4081
  4082	015056'	000000	000000		SPEAR1:	0				;Used as a flag for determining whether
  4083										; To make a diagnostic started spear
  4084										; Entry. Initially 0, make spear entry
  4085	015057'	000000	000000		SPRCNT:	0				;Holds the number of spear entries made
  4086
  4087	015060'	000000	000000		TEMP1:	0				;Temporary storage
  4088	015061'	000000	000000		TEMP2:	0
  4089	015062'	000000	000000		TEMP3:	0
  4090	015063'	000000	000000		TEMP4:	0
  4091	015064'	000000	000000		TEMP5:	0
  4092
  4093	015065'	000000	000000		TRCFLG:	0				;Trace enabled flag = -1
  4094	015066'	000000	000000		LOGFLG:	0				;Logging enabled = -1
  4095	015067'	000000	000000		SPRFLG:	0				;Spear enabled = -1
  4096	015070'	000000	000000		DBGFLG:	0				;Debug enabled flag = -1
  4097	015071'	000000	000004		TTEXIT:	"D"-100				;TTY "exit" character
  4098										;Default to "Control-D" to Disconnect
  4099	015072'	000000	000000		SREQN:	0				;Save Request number
  4100
  4101	015073'	000000	000000		ONETIM:	0				;0 At initial start up, -1 otherwise 
  4102	015074'				UNAME:	BLOCK	^D20			;Storage for user name
  4103
RMTCNM DECSYSTEM KL10 NETWORK INTERCONNECT SERVER, VERSION 1.0	MACRO %53B(1242) 22:24 11-Jul-85 Page 103
RMTCNM	MAC	10-Jun-85 15:20		GENERAL STORAGE                                                                    SEQ 0183

  4104  
  4105	015120'	254 00 0 00 000024'	DSTKER:	JRST	DSERR		;Data stack error trap
  4106
  4107	015121'				DSTK:	BLOCK	200		;Data stack pushdown list
  4108			000200		STKLEN= .-DSTK
  4109
  4110	015321'	000000	000000		PASCT:	0			;Pass count
  4111	015322'	000000	000000		RBTCTR:	0			;Remote boot counter
  4112	015323'	000000	000000		NODSEL:	0			;Node selected flag
  4113	015324'	000000	000000		CMDPND:	0			;Command pending flag
  4114
  4115	015325'	777777	777760		BCASTH:	777777,,777760		;BCAST address used in DALLAD  (byte 0,1,2,3,z)
  4116	015326'	777774	000000		BCASTL:	777774,,0		;FF-FF-FF-FF-FF-FF	       (byte 4,5,z,z,z)
  4117
  4118	015327'	526000	000040		MCASTH:	526000,,40		;MCAST address used in DALLAD  (byte 0,1,2,3,z)
  4119	015330'	000000	000000		MCASTL:	0			;AB-00-00-02-00-00	       (byte 4,5,z,z,z)
  4120
  4121	015331'				PATCH:	BLOCK ^D200		;My DDT patch area 
  4122
  4123		254000	000000'			END	JRST SETUP

NO ERRORS DETECTED

PROGRAM BREAK IS 017746
CPU TIME USED 00:15.792

138P CORE USED
AC0	    62	    63	    74	    75	   100	   249	   278	   279	   289	   301	   308	   309	   314	   315
	   323	   325	   334	   350	   359	   361	   365	   371	   375	   379	   381	   383	   385	   386     SEQ 0184
	   388	   427	   600	   606	   607	   630	   634	   635	   637	   670	   676	   677	   700	   704
	   705	   707	   739	   745	   746	   748	   751	   752	   756	   757	   776	   817	   825	   826
	   828	   829	   835	   849	   853	   885	   891	   892	   894	   918	   922	   953	   959	   960
	   983	   987	  1022	  1027	  1028	  1031	  1035	  1036	  1038	  1039	  1040	  1065	  1069	  1070
	  1072	  1109	  1141	  1146	  1150	  1182	  1200	  1204	  1235	  1247	  1261	  1264	  1265	  1270
	  1275	  1280	  1285	  1293	  1322	  1332	  1333	  1350	  1488	  1489	  1490	  1491	  1494	  1497
	  1500	  1501	  1503	  1506	  1507	  1509	  1512	  1595	  1607	  1609	  1611	  1613	  1615	  1627
	  1640	  1641	  1643	  1644	  1652	  1661	  1678	  1690	  1691	  1692	  1693	  1694	  1704	  1839
	  1853	  1890	  1903	  1904	  1911	  1912	  1922	  1923	  1938	  1939	  1952	  1956	  1964	  1988
	  1989	  2002	  2006	  2014	  2023	  2026	  2045	  2046	  2054	  2055	  2061	  2065	  2073	  2094
	  2095	  2108	  2112	  2120	  2129	  2130	  2138	  2142	  2154	  2155	  2168	  2172	  2180	  2189
	  2190	  2199	  2203	  2212	  2218	  2229	  2230	  2243	  2244	  2250	  2278	  2288	  2289	  2302
	  2306	  2314	  2339	  2340	  2353	  2357	  2365	  2371	  2374	  2383	  2384	  2396	  2425	  2426
	  2460	  2461	  2464	  2465	  2467	  2468	  2475	  2476	  2485	  2486	  2586	  2630	  2631	  2644
	  2645	  2658	  2659	  2715	  2727	  2731	  2735	  2739	  2756	  2785	  2800	  2804	  2809	  2811
	  2818	  2835	  2838	  2840	  2855	  2858	  2860	  2875	  2878	  2880	  2895	  2899	  2904	  2920
	  2923	  2925	  2929	  2932	  2936	  2939	  2942	  2975	  2979	  3044	  3057	  3063	  3098	  3104
	  3117	  3129	  3135	  3151	  3155	  3171	  3182	  3188	  3204	  3208	  3231	  3234	  3236	  3246
	  3257	  3263	  3288	  3310	  3312	  3313	  3315	  3318	  3321	  3324	  3325	  3326	  3327	  3530
	  3573	  3574	  3617	  3618	  3620	  3622	  3625	  3628	  3631	  3634	  3637	  3644	  3645	  3647
	  3649	  3652	  3655	  3670	  3688	  3689	  3691	  3695	  3697	  3826	  3860	  3880	  3916	  3928
	  3929	  3955	  3980	  3982	  3983	  3984	  3987	  4021	  4023	  4024	  4027
AC1	    79	   104	   125	   126	   141	   148	   151	   158	   164	   167	   199	   205	   215	   218
	   227	   232	   248	   250	   256	   262	   268	   273	   284	   290	   300	   324	   326	   335
	   349	   360	   362	   367	   368	   394	   405	   412	   413	   420	   421	   428	   453	   466
	   489	   490	   493	   498	   599	   620	   638	   669	   690	   708	   738	   770	   777	   816
	   839	   854	   884	   908	   923	   952	   973	   988	  1021	  1029	  1030	  1055	  1073	  1108
	  1131	  1151	  1181	  1190	  1205	  1251	  1321	  1326	  1351	  1387	  1394	  1399	  1415	  1419
	  1421	  1424	  1426	  1428	  1443	  1448	  1452	  1546	  1547	  1549	  1552	  1553	  1555	  1557
	  1560	  1563	  1566	  1569	  1571	  1574	  1595	  1599	  1601	  1603	  1605	  1628	  1637	  1647
	  1648	  1654	  1660	  1679	  1687	  1694	  1703	  1713	  1717	  1720	  1757	  1762	  1763	  1782
	  1783	  1790	  1813	  1815	  1818	  1820	  1823	  1838	  1841	  1845	  1854	  1889	  1937	  1939
	  1942	  1949	  1959	  1960	  1964	  1969	  1971	  1973	  1987	  1989	  1992	  1999	  2009	  2010
	  2014	  2024	  2026	  2044	  2046	  2049	  2058	  2068	  2069	  2073	  2078	  2080	  2081	  2084
	  2093	  2095	  2098	  2105	  2115	  2116	  2120	  2128	  2130	  2131	  2132	  2134	  2153	  2155
	  2158	  2165	  2175	  2176	  2180	  2188	  2190	  2191	  2192	  2194	  2219	  2239	  2251	  2277
	  2287	  2289	  2292	  2299	  2309	  2310	  2314	  2318	  2320	  2338	  2340	  2343	  2350	  2360
	  2361	  2365	  2372	  2374	  2397	  2585	  2657	  2659	  2662	  2668	  2670	  2672	  2674	  2676
	  2678	  2680	  2682	  2685	  2687	  2689	  2691	  2693	  2695	  2697	  2699	  2701	  2703	  2705
	  2707	  2709	  2715	  2722	  2723	  2727	  2751	  2752	  2756	  2759	  2760	  2763	  2766	  2769
	  2772	  2775	  2778	  2781	  2795	  2796	  2800	  2810	  2813	  2819	  2830	  2831	  2835	  2839
	  2840	  2850	  2851	  2855	  2859	  2860	  2870	  2871	  2875	  2879	  2880	  2890	  2891	  2895
	  2905	  2915	  2916	  2920	  2970	  2971	  2975	  2978	  2979	  2983	  2985	  2987	  2989	  2991
	  2993	  2995	  2997	  2999	  3001	  3003	  3005	  3007	  3009	  3011	  3013	  3015	  3017	  3019
	  3021	  3023	  3025	  3027	  3029	  3031	  3033	  3035	  3044	  3048	  3050	  3053	  3057	  3066
	  3075	  3077	  3082	  3087	  3092	  3094	  3098	  3107	  3117	  3121	  3123	  3125	  3129	  3138
	  3147	  3148	  3151	  3154	  3155	  3159	  3161	  3171	  3175	  3177	  3179	  3182	  3191	  3200
	  3201	  3204	  3207	  3208	  3212	  3214	  3216	  3227	  3228	  3231	  3235	  3236	  3246	  3250
	  3252	  3254	  3257	  3266	  3289	  3529	  3619	  3620	  3646	  3647	  3671	  3690	  3691	  3694
	  3695	  3696	  3697	  3794	  3795	  3807	  3812	  3817	  3822	  3826	  3831	  3859	  3870	  3874
	  3881	  3917	  3942	  3945	  3954	  4038	  4041	  4042	  4049	  4051	  4054
AC10	  1484	  1496	  1518	  1519	  1556	  1559	  1571	  1596	  1615	  2580	  2587	  3294	  3525	  3531
	  3675                                                                                                             SEQ 0185
AC11	  1484	  1497	  1548	  1551	  1562	  1565	  1568	  1572	  2579	  2588	  3295	  3524	  3532	  3676
AC2	    80	   105	   143	   144	   150	   152	   159	   168	   200	   206	   219	   228	   233	   348
	   395	   420	   429	   456	   460	   467	   471	   488	   494	   499	   598	   621	   639	   668
	   691	   709	   737	   771	   778	   815	   840	   855	   883	   909	   924	   951	   974	   989
	  1020	  1056	  1074	  1107	  1132	  1152	  1180	  1191	  1206	  1234	  1252	  1294	  1320	  1327
	  1352	  1390	  1391	  1401	  1402	  1416	  1427	  1444	  1451	  1545	  1548	  1549	  1551	  1552
	  1556	  1557	  1559	  1560	  1562	  1563	  1565	  1566	  1568	  1569	  1575	  1837	  1855	  1888
	  1933	  1937	  1938	  1944	  1952	  1954	  1959	  1969	  1983	  1987	  1988	  1994	  2002	  2004
	  2009	  2019	  2023	  2040	  2044	  2045	  2051	  2061	  2063	  2068	  2078	  2089	  2093	  2094
	  2100	  2108	  2110	  2115	  2128	  2129	  2149	  2153	  2154	  2160	  2168	  2170	  2175	  2188
	  2189	  2210	  2215	  2252	  2276	  2283	  2287	  2288	  2294	  2302	  2304	  2309	  2318	  2334
	  2338	  2339	  2345	  2353	  2355	  2360	  2371	  2398	  2449	  2460	  2463	  2466	  2584	  2624
	  2657	  2658	  2664	  2722	  2731	  2735	  2739	  2751	  2759	  2785	  2795	  2806	  2830	  2838
	  2839	  2850	  2858	  2859	  2870	  2878	  2879	  2890	  2901	  2915	  2923	  2925	  2929	  2932
	  2936	  2939	  2942	  2946	  2947	  2948	  2970	  2978	  3048	  3063	  3075	  3104	  3121	  3135
	  3147	  3154	  3175	  3188	  3200	  3207	  3227	  3234	  3235	  3250	  3263	  3290	  3528	  3565
	  3618	  3619	  3645	  3646	  3672	  3689	  3690	  3694	  3696	  3858	  3875	  3882	  3918	  3936
	  3937	  3943	  3944	  3953	  4039	  4042	  4053
AC3	   106	   487	   495	   500	  1544	  1553	  1572	  1576	  1629	  1634	  1636	  1639	  1640	  1659
	  1680	  1684	  1686	  1689	  1690	  1702	  1836	  1846	  1856	  1887	  1906	  1907	  1908	  1914
	  1920	  2021	  2028	  2211	  2217	  2253	  2275	  2369	  2376	  2386	  2387	  2388	  2399	  2583
	  2633	  2639	  2642	  2644	  2646	  2647	  2803	  2808	  2898	  2903	  3291	  3527	  3571	  3573
	  3575	  3576	  3581	  3585	  3613	  3673	  3692	  3919	  3952	  4040	  4043	  4052
AC4	  1485	  1498	  1630	  1633	  1658	  1681	  1683	  1701	  1886	  1915	  1918	  1919	  2215	  2216
	  2254	  2274	  2400	  2582	  2634	  2637	  2638	  2806	  2807	  2901	  2902	  3292	  3526	  3674
	  3920	  3951
AC5	   175	   284	   305	   314	   320	   332	  1486	  1488	  1598	  1599	  1600	  1601	  1602	  1603
	  1604	  1605	  1606	  1607	  1608	  1609	  1610	  1611	  1612	  1613	  1631	  1635	  1650	  1655
	  1657	  1682	  1685	  1695	  1700	  1885	  1916	  1918	  2212	  2216	  2255	  2273	  2401	  2635
	  2637	  2804	  2807	  2899	  2902
AC6	   306	   315	   403	   412	  1596	  1598	  1600	  1602	  1604	  1606	  1608	  1610	  1612	  1884
	  1917	  1919	  2022	  2024	  2256	  2272	  2370	  2372	  2402	  2636	  2638	  2641	  2645	  3570
	  3574
AC7	  1883	  1934	  1936	  1940	  1945	  1953	  1955	  1984	  1986	  1990	  1995	  2003	  2005	  2041
	  2043	  2047	  2052	  2062	  2064	  2079	  2090	  2092	  2096	  2101	  2109	  2111	  2150	  2152
	  2156	  2161	  2169	  2171	  2257	  2271	  2284	  2286	  2290	  2295	  2303	  2305	  2335	  2337
	  2341	  2346	  2354	  2356	  2403	  2581	  2625	  2649	  2656	  2660	  2665	  2742	  2788	  2822
	  2843	  2863	  2883	  2908	  2949	  3038	  3049	  3064	  3076	  3105	  3122	  3136	  3164	  3176
	  3189	  3219	  3239	  3251	  3264	  3293
ATOM	    35#	   104	   111	  1486
BCASTH	  2425	  4115#
BCASTL	  4116#
BRKFLG	   129	   264	   513#	  1026	  1033
BUFSIZ	    55#	   528	   529	  2134	  2142	  2194	  2203
C$QUIT	    35#
C%FIRS	    35#	    63
CBUFSZ	   279	   532#	  2132	  2138
CHNTAB	   159	   538#
CHRFLG	   130	   177	   185	   259	   265	   286	   514#
CMDPND	   134	   189	   193	   353	   356	   378	  4113#
CONSW	    35#	   443
CTCOC	   460	   471	   507#
CTMOD	   456	   467	   506#                                                                                            SEQ 0186
CTRSTR	    31	   466#
CTRTAB	  3573	  3712#
CTSAVE	    78	   453#
DBGFLG	    30	   203	   302	   351	  1380	  1784	  1897	  2381	  2457	  2627	  3567	  3876	  3946	  4096#
DECVER	     3#	    11	  3895
DP	    42#	    68	   325	   326	   329	   361	   362	   615	   616	   635	   685	   686	   705	   765
	   766	   823	   903	   904	   968	   969	  1042	  1043	  1050	  1051	  1070	  1118	  1119	  1126
	  1127	  1188	  1241	  1339	  1340	  1345	  1346	  1633	  1634	  1683	  1684	  1697	  1698	  1699
	  1734	  1735	  1740	  1741	  1759	  1791	  1813	  1818	  1823	  2218	  2219	  2223	  2224	  2433
	  2438	  2451	  2470	  2471	  2595	  2600	  2611	  2619	  2620	  2818	  2819	  2904	  2905	  3312
	  3313	  3318	  3539	  3544	  3555	  3560	  3561	  3836	  3868	  3915	  3984	  4024	  4051
DSERR	    97#	  4105
DSTK	    68	  4107#	  4108
DSTKER	  4105#
ER01	  1733#	  3810	  3815	  3820
ETIME	   479#	   541
EXTFLG	   132	   186	   258	   516#
FJSYBF	  1840	  1845	  1851	  1859#
FJSYS	   340	   434	   645	   715	   784	   861	   930	   995	  1080	  1158	  1212	  1298	  1358	  1836#
GETPP	  3867	  4038#
GETPP1	  4047	  4051#
HEX	    31	  1484#
HEXA	  1488#	  1498	  1514
HEXB	  1496#	  1504	  1510
HEXC	  1489	  1516#
HEXD	  1492	  1500#
HEXE	  1502	  1506#
HEXF	  1517	  1523#
HEXG	  1508	  1512#
HEXX	  1513	  1521	  1525#
IBUFCT	   121	   278	   285	   308	   311	   317	   324	   331	   525#
INITIA	    62	    68#
INITIM	   136	   195	   480	   487#
INPEX	    71	    77#
LEVTAB	   159	   576#
LM%AIC	  1039
LM%CBF	  1027
LM%CDL	   379
LM%MNO	   371	   375	  1028	  1031
LM%MRF	  2465	  2467	  2476
LM%RDL	   383
LM%RDO	   381
LOCADH	  1333	  1339	  2022	  2223	  2370	  2631	  4067#
LOCADL	  1340	  2224	  4068#
LOGFLG	    30	   422	   442	  4094#
LOGNAM	    74	    84#
LOOP	   177#	   180	   190	   204	   208
LOOP1	   178	   185#
LOOP2	   183	   189#
LOOPX	   187	   213#
LOOPX1	   227#
MCASTH	  2485	  4118#
MCASTL	  4119#                                                                                                            SEQ 0187
MCNVER	     4#	    11	  3895
MNOFLG	   133	   192	   367	   517#	  1029
NI$FOR	   523#
NODADH	   606	   615	   676	   685	  1740	  2426	  2486	  2587	  2619	  2635	  3531	  3560	  4070#
NODADL	   616	   686	  1741	  2588	  2620	  3532	  3561	  4071#
NODSEL	    32	  2032	  2328	  4112#
OBUFCT	   122	   309	   386	   410	   526#
ONETIM	    70	    72	  4101#
OTIME	  1443#	  3801
P	   100	   248	   249	   289	   290	   300	   301	   334	   335	   348	   349	   350	   427	   428
	   429	   487	   488	   489	   498	   499	   500	   598	   599	   600	   624	   637	   638	   639
	   668	   669	   670	   694	   707	   708	   709	   737	   738	   739	   774	   776	   777	   778
	   815	   816	   817	   843	   853	   854	   855	   883	   884	   885	   912	   922	   923	   924
	   951	   952	   953	   977	   987	   988	   989	  1020	  1021	  1022	  1059	  1072	  1073	  1074
	  1107	  1108	  1109	  1135	  1150	  1151	  1152	  1180	  1181	  1182	  1194	  1204	  1205	  1206
	  1234	  1235	  1255	  1293	  1294	  1320	  1321	  1322	  1330	  1350	  1351	  1352	  1404	  1415
	  1416	  1427	  1428	  1443	  1444	  1449	  1451	  1452	  1544	  1545	  1546	  1574	  1575	  1576
	  1627	  1628	  1629	  1630	  1631	  1657	  1658	  1659	  1660	  1661	  1678	  1679	  1680	  1681
	  1682	  1700	  1701	  1702	  1703	  1704	  1713	  1720	  1757	  1763	  1782	  1790	  1821	  1836
	  1837	  1838	  1839	  1853	  1854	  1855	  1856	  1883	  1884	  1885	  1886	  1887	  1888	  1889
	  1890	  2033	  2250	  2251	  2252	  2253	  2254	  2255	  2256	  2257	  2271	  2272	  2273	  2274
	  2275	  2276	  2277	  2278	  2329	  2396	  2397	  2398	  2399	  2400	  2401	  2402	  2403	  2579
	  2580	  2581	  2582	  2583	  2584	  2585	  2586	  3288	  3289	  3290	  3291	  3292	  3293	  3294
	  3295	  3310	  3321	  3524	  3525	  3526	  3527	  3528	  3529	  3530	  3670	  3671	  3672	  3673
	  3674	  3675	  3676	  3842	  3843	  3858	  3859	  3860	  3880	  3881	  3882	  3916	  3917	  3918
	  3919	  3920	  3951	  3952	  3953	  3954	  3955	  3980	  3987	  4021	  4027	  4038	  4039	  4040
	  4052	  4053	  4054
P%DJFN	    36#	   421
P%T20	    35#	    73
P%T20P	    35#	    75
PASCT	  1895	  1900	  1977	  2418	  2424	  2479	  2487	  4110#
PATCH	  4121#
PCPOLL	   578	   584#
PCSND	   576	   580#
PCTTY	   577	   582#
PN1	  3692	  3699#
PNTNUM	  3582	  3586	  3589	  3592	  3595	  3598	  3601	  3604	  3607	  3610	  3614	  3641	  3659	  3662
	  3665	  3668	  3688#
PRHEX	    31	   617	   687	   767	   905	   970	  1052	  1128	  1341	  1347	  1627#	  1736	  1742	  2220
	  2225	  2472	  2621	  2820	  2906	  3562
PRHEXA	  1639#	  1655
PRHEXB	  1649	  1651	  1655#
PRTNBR	    31	   603	   673	   742	   820	   888	   956	  1025	  1112	  1185	  1238	  1323	  4062#
PWFLG	    33	    90#	  1516
PWORDH	    33	   748	   894	  4076#
PWORDL	    33	  4077#
PWSWAP	  1520	  1595#
RBTCTR	  1891	  2229	  2242	  2243	  4111#
RBTDID	   798#
RBTSID	   756	   799#
RBUFSZ	   360	   388	   533#	   825	  2192	  2199
RCABT	  1180#	  3837
RCABT3	  1197	  1204#	  1213                                                                                             SEQ 0188
RCABT4	  1193	  1211#
RCABTB	  1186	  1188	  1191	  1200	  1217#
RCADR	    32	  1320#	  1892
RCADR3	  1336	  1350#	  1359
RCADR4	  1329	  1357#
RCADRB	  1324	  1327	  1332	  1345	  1346	  1363#
RCP1	   369	   375#
RCP2	   364	   433#
RCP3	   373	   378#
RCP4	   405#	   408	   413	   425
RCP5	   354	   391	   403#
RCP6	   372	   376	   394#
RCP7	   352	   356#
RCPOL	   363	  1107#
RCPOL1	  1121	  1131#
RCPOL3	  1138	  1150#	  1159
RCPOL4	  1134	  1157#
RCPOLB	   365	   385	  1113	  1116	  1118	  1119	  1132	  1141	  1146	  1163#
RCPOLL	   348#	   539
RCPX	   357	   397	   411	   427#	   435
RCRBT	   737#	  2234
RCRBT1	   760	   770#
RCRBT3	   776#	   785
RCRBT4	   773	   783#
RCRBTB	   743	   746	   749	   752	   754	   757	   771	   789#
RCRCT	   668#	  3536
RCRCT1	   680	   690#
RCRCT2	   697	   704#
RCRCT3	   707#	   716
RCRCT4	   693	   714#
RCRCTB	   674	   677	   691	   700	   704	   720#
RCREL	   951#	  2378
RCREL1	   973#
RCREL3	   980	   987#	   996
RCREL4	   976	   994#
RCRELB	   957	   960	   974	   983	  1000#
RCRID	   598#	  2430	  2592
RCRID1	   610	   620#
RCRID2	   627	   634#
RCRID3	   637#	   646
RCRID4	   623	   644#
RCRIDB	   604	   607	   621	   630	   634	   650#	  1396
RCRPY	   815#	  2452	  2612	  3556
RCRPY1	   832	   839#
RCRPY3	   846	   853#	   862
RCRPY4	   842	   860#
RCRPYB	   821	   823	   826	   829	   835	   840	   849	   866#	  1402	  1923	  1934	  1984	  2041	  2090
	  2150	  2284	  2335	  2461	  2464	  2468	  2470	  2471	  2475	  2625
RCRSV	   883#	  1975
RCRSV1	   898	   908#	   963
RCRSV3	   915	   922#	   931
RCRSV4	   911	   929#
RCRSVB	   889	   892	   895	   909	   918	   935#                                                                    SEQ 0189
RCS2	   314#	   318
RCS4	   303	   323#
RCS6	   328	   339#
RCSEND	   300#	   538
RCSND	   327	  1020#
RCSND1	  1045	  1055#
RCSND2	  1062	  1069#
RCSND3	  1072#	  1081
RCSND4	  1058	  1079#
RCSNDB	  1032	  1036	  1040	  1042	  1043	  1056	  1065	  1069	  1085#	  1115
RCSTS	  1234#	  2439	  2601	  3545
RCSTS1	  1244	  1251#
RCSTS2	  1268	  1273	  1278	  1283	  1288	  1291#
RCSTS3	  1258	  1293#	  1299
RCSTS4	  1254	  1297#
RCSTS5	  1266	  1270#
RCSTS6	  1271	  1275#
RCSTS7	  1276	  1280#
RCSTS8	  1281	  1285#
RCSTS9	  1286	  1290#
RCSTSB	  1239	  1241	  1247	  1252	  1261	  1264	  1303#	  1391	  3794
RCSX	   312	   321	   334#	   341
RDFL1	  3796	  3807#
RDFL2	  3803	  3843#
RDFL3	  3832	  3842#
RDFL4	  3823	  3831#
RDFL5	  3805	  3836#
RDFL6	  3808	  3812#
RDFL7	  3813	  3817#
RDFL8	  3818	  3822#
RDFLGS	  2442	  2604	  3548	  3794#
RDFLX	  3838	  3840	  3844#
RDSTIM	  1415#	  2434	  2596	  3540
REJUS	  1523	  1544#
REL1	  2279#	  2382	  2389
REL10	  2286	  2296#
REL11	  2304#	  2306
REL12	  2337	  2347#
REL13	  2355#	  2357
REL1A	  2286#	  2295	  2307
REL1B	  2293	  2299#
REL1C	  2300	  2309#
REL2	  2311	  2318#
REL2A	  2321	  2334#
REL2B	  2337#	  2358
REL2C	  2344	  2350#
REL2D	  2351	  2360#
REL3	  2362	  2369#
REL4	  2375	  2391#
REL5	  2371#	  2376
REL9	  2316	  2348	  2367	  2379	  2394#
RELCON	    32	   213	  2271#
RELX	  2297	  2330	  2392	  2395#                                                                                    SEQ 0190
REM1	   141#
REM3	   148#
REM6	   158#
REQT1	  1904	  1912	  2384	  3356#
REQT2	  1907	  1917	  2387	  3362#
REQT3	  2636	  3390#
REQTAB	  1922	  2644	  2649	  3346#
RES1	  1897#	  1978	  2245
RES10	  1936	  1946#
RES11	  1954#	  1956
RES12	  1986	  1996#
RES13	  2004#	  2006
RES16	  2092	  2102#
RES17	  2110#	  2112
RES18	  2152	  2162#
RES19	  2170#	  2172
RES1A	  1936#	  1945	  1957
RES1B	  1943	  1949#
RES1C	  1950	  1959#
RES1D	  1898	  1927#
RES2	  1961	  1969#
RES20A	  2135	  2149#
RES20B	  2092#	  2101	  2113
RES20C	  2099	  2105#
RES20D	  2106	  2115#
RES20E	  2117	  2128#
RES2A	  1974	  1983#
RES2B	  1986#	  1995	  2007	  2346
RES2C	  1993	  1999#
RES2D	  2000	  2009#
RES3	  2011	  2019#
RES30B	  2152#	  2161	  2173
RES30C	  2159	  2165#
RES30D	  2166	  2175#
RES30E	  2177	  2188#
RES4	  1909	  1922#
RES5	  2023#	  2028
RES6	  2043#	  2052	  2066
RES6A	  2043	  2053#
RES6B	  2050	  2058#
RES6C	  2063#	  2065
RES6D	  2059	  2068#
RES6E	  2070	  2078#
RES7	  2027	  2208#
RES7A	  2215#	  2217
RES8	  1972	  2229#
RES8A	  2230	  2237#
RES9	  1901	  1911#
RES9A	  1918#	  1920
RESCON	    32	  1883#
RESTIM	   494	   520#	  2055	  2084
RESX	  1893	  1947	  1967	  1976	  1997	  2017	  2056	  2076	  2103	  2123	  2163	  2183	  2195	  2206
	  2227	  2235	  2250#                                                                                            SEQ 0191
RI1	  2669	  2721#
RI100	  2686	  2969#
RI100A	  2972	  2978#
RI101	  2690	  3043#
RI101A	  3051	  3056#
RI101B	  3054	  3060#
RI101C	  3062#	  3066
RI1A	  2724	  2730#
RI2	  2671	  2750#
RI200	  2692	  3074#
RI200A	  3078	  3082#
RI200B	  3083	  3087#
RI200C	  3088	  3092#
RI200D	  3093	  3097#
RI200E	  3095	  3101#
RI200F	  3103#	  3107
RI200Z	  3080	  3085	  3090	  3109#
RI201	  2696	  3116#
RI201A	  3124	  3128#
RI201B	  3126	  3132#
RI201C	  3134#	  3138
RI2A	  2753	  2759#
RI3	  2673	  2794#
RI300	  2698	  3146#
RI300A	  3149	  3154#
RI301	  2702	  3170#
RI301A	  3178	  3181#
RI301B	  3180	  3185#
RI301C	  3187#	  3191
RI3A	  2797	  2803#
RI3B	  2806#	  2808
RI3C	  2812	  2814	  2818#
RI3D	  2816	  2822#
RI4	  2675	  2829#
RI400	  2704	  3199#
RI400A	  3202	  3207#
RI401	  2706	  3226#
RI401A	  3229	  3234#
RI402	  2710	  3245#
RI402A	  3253	  3256#
RI402B	  3255	  3260#
RI402C	  3262#	  3266
RI4A	  2832	  2838#
RI5	  2677	  2849#
RI5A	  2852	  2858#
RI6	  2679	  2869#
RI6A	  2872	  2878#
RI7	  2681	  2889#
RI7A	  2892	  2898#
RI7B	  2901#	  2903
RI8	  2683	  2914#
RI8A	  2917	  2923#
RI997	  2716	  2728	  2757	  2801	  2836	  2856	  2876	  2896	  2921	  2976	  3058	  3099	  3130	  3152     SEQ 0192
	  3183	  3205	  3232	  3258	  3280#
RIZ	  3310#
RIZ1	  3316	  3319	  3324#
RRA1	  2663	  2668#
RRA2	  2688	  2691#
RRA3	  2694	  2697#
RRA4	  2700	  2703#
RRA5	  2708	  2714#
RRCT	    32	  3524#
RRCT1	  3544#	  3550
RRCT2	  3573#	  3576
RRCT3	  3568	  3580#
RRCTX	  3537	  3546	  3549	  3557	  3670#
RRID	    30	  1927	  2279	  2579#
RRIDA	  2628	  2653#	  2666	  2743	  2789	  2823	  2844	  2864	  2884	  2909	  2950	  3039	  3068	  3110
	  3141	  3165	  3194	  3220	  3240	  3269
RRIDX	  2593	  2602	  2605	  2613	  2654	  2656	  3288#
RRIH	  2600#	  2606
RRIH1	  2644#	  2647
RRIH2	  2616	  2627#
RRIH3	  2637#	  2639
RTEND	  1922	  2649	  3472#
SAD1	  2430#	  2488
SAD2	  2438#	  2444
SAD3	  2451#	  2477
SAD4	  2458	  2470#
SAD5	  2419	  2443	  2479#
SADX	  2431	  2440	  2453	  2480	  2490#
SALLAD	    32	  2418#
SCNTE	  1826#
SCNTS	  1759	  1766#	  1820
SEN11L	  3937	  3943	  3968#
SENT10	  3868	  3870	  3874	  3887#
SENT11	  3934	  3935	  3942	  3945	  3962#
SERTH	  3929#	  3929
SETUP	    62#	  4123
SLOCH	  1916	  2630	  4073#
SLOCL	  4074#
SPEAR1	  3862	  3879	  4082#
SPR1	    30	  3858#
SPR1X	  3863	  3880#
SPR2	  3915#	  3985	  4025
SPR2D	  3915	  3958#
SPR2E	  3941#
SPR2X	  3926	  3930	  3951#
SPR3	  3980#
SPR3E	  3982	  3990#
SPR4	    30	  4021#
SPRCNT	  3928	  3949	  4085#
SPRE	  1810#
SPRFLG	    30	  1754	  1810	  3861	  3925	  4095#
SPRP	  1758	  1782#	  1817
SPRPA	  1785	  1790#                                                                                                    SEQ 0193
SPRPB	  1783	  1794#
SPRPC	  1791	  1795#
SPRS	  1754#
SPRSE	  1815	  1827#
SPRSX	  1762	  1767#
SREQN	   329	  2433	  2438	  2451	  2595	  2600	  2611	  3539	  3544	  3555	  3836	  4099#
START	    35#	    64	   114
STKLEN	    68	  4108#
T	    88#	  3810	  3815	  3820
TABL	  2460	  2492#
TABLEN	   126	   530#
TARADH	    31	   745	   765	   891	   903	   959	   968	  1035	  1050	  1126	  1734	  2323	  4064#
TARADL	    31	   766	   904	   969	  1051	  1127	  1735	  2324	  4065#
TEMP1	  2019	  2210	  4087#
TEMP2	  4088#
TEMP3	  4089#
TEMP4	  4090#
TEMP5	  4091#
TESTPC	    35#
TIMEND	  1426	  1448	  4080#
TIMINT	   131	   179	   194	   479	   515#
TIMST	  1419	  4079#
TO$FOR	   522#
TRCFLG	    30	   181	   609	   626	   679	   696	   759	   831	   845	   897	   914	   962	   979	  1044
	  1061	  1120	  1137	  1196	  1243	  1257	  1335	  1423	  1714	  2030	  2232	  2237	  2326	  2615
	  2653	  4093#
TTBERR	   424	   438#
TTEXIT	    31	   256	  4097#
TTIBUF	   124	   125	   175	   305	   320	   323	   332	   528#
TTIN1	   257	   262#
TTIN2	   252	   255#
TTIN3	   269	   273#
TTIN4	   280	   284#
TTIN5	   274	   278#
TTIN6	   263	   268#
TTIN7	   250#	   287
TTINX	   253	   260	   266	   271	   276	   282	   289#
TTIWD	   150	   233	   510#
TTMOD	   143	   228	   509#
TTOBUF	   306	   359	   403	   529#	   828	  1933	  1983	  2040	  2089	  2149	  2283	  2334	  2624	  2641
	  3565	  3570
TTYINP	   248#	   540
UHEX	  1678#
UHEXA	  1689#	  1695
UHEXB	  1687	  1697	  1698	  1699	  1707#
UNAME	  4102#
WAIT1	  1713#
WAIT1A	  1715	  1720#
XOFF	   268
XOFFLG	   128	   270	   275	   415	   512#
XON	   273
$ERJSY	    52	    99#
$LLM1	  1395	  1399#                                                                                                    SEQ 0194
$LLM2	  1385	  1392	  1397	  1400	  1404#
$LLM3	  1384	  1405#
$LLM4	  1388	  1394#
$LLM5	  1381	  1387#
$LLMOP	   622	   692	   772	   841	   910	   975	  1057	  1133	  1192	  1253	  1328	  1380#
$REMOT	    31	   121#
.AC1	   440
.CTTRM	   141	   227	   250	   453	   466
.DGRSC	  1794
.FHSLF	    79	   105	   148	   151	   158	   167	   199	   205	   218	   232	   394	   490	   493	  1841
.LMABT	  1275	  3807
.LMCCE	  1285	  3817	  3822
.LMCID	   365	   604	   674	   743	   821	   889	   918	   957	   983	  1032	  1113	  1186	  1239	  1324
	  2464	  2468	  2475
.LMCIF	   752
.LMDID	   754
.LMDST	   607	   677	   746	   892	   960	  1036
.LMHWA	  1345	  1346
.LMPND	  1265	  3795
.LMPWD	   749	   895
.LMPYA	  1332
.LMRBL	   385	   826	   849	  1042	  1118	  1146	  1402	  1923	  1934	  1984	  2041	  2090	  2150	  2284
	  2335	  2625
.LMRBP	   829	  1043	  1119
.LMREQ	   630	   634	   700	   704	   823	   835	  1040	  1065	  1069	  1115	  1116	  1141	  1188	  1200
	  1241	  1247	  1396
.LMSID	   757
.LMSRC	  2461	  2470	  2471
.LMSTF	  1261	  1264	  1391	  3794
.LMSUC	  1270	  1390	  3831
.LMTXF	  1280	  3812
.PRIOU	   405
.RCABT	  1190
.RCADR	  1326
.RCPOL	  1131
.RCRBT	   770
.RCRCT	   690
.RCREL	   973
.RCRID	   620	  1394
.RCRPY	   839	  1399
.RCRSV	   908
.RCSND	  1055
.RCSTS	  1251	  1387
.TICTI	    80	   152	   164	   215
.TIMAL	   490
.TIMEL	   493
AIC	   169
ATI	   165                                                                                                             SEQ 0195
BOUT	   423
CIS	   222
DEBRK	   291	   336	   430	   481
DIAG	  1787
DIC	   220
DIR	   221
DISMS	  1718	  2240
DROPDV	   444
DTI	   216
EIR	   162
ERCAL	    52	   424
ERJMP	  1384	  1843	  1848	  1849
ERJSYS	    52#	   455	   459
ERROR1	  3809	  3814	  3819
ERSTR	   107	  1847
ERUUO	  3810	  3815	  3820
FATAL	  3829
FATALP	    97	  1788
GETER	  1842
GETIT	   100	   289	   334	   427	   498	   637	   707	   776	   853	   922	   987	  1072	  1150	  1204
	  1293	  1350	  1427	  1451	  1574	  1657	  1700	  1720	  1763	  1790	  1853	  2250	  2396	  3288
	  3321	  3670	  3880	  3951	  3987	  4027	  4052
GETJI	  4045
GO	    62	    78	   136	   195	   213	   327	   340	   363	   434	   480	   617	   622	   645	   687
	   692	   715	   767	   772	   784	   841	   861	   905	   910	   930	   970	   975	   995	  1052
	  1057	  1080	  1128	  1133	  1158	  1192	  1212	  1253	  1298	  1328	  1341	  1347	  1358	  1520
	  1523	  1736	  1742	  1758	  1817	  1892	  1927	  1975	  2220	  2225	  2234	  2279	  2378	  2430
	  2434	  2439	  2442	  2452	  2472	  2592	  2596	  2601	  2604	  2612	  2621	  2820	  2906	  3316
	  3319	  3536	  3540	  3545	  3548	  3556	  3562	  3582	  3586	  3589	  3592	  3595	  3598	  3601
	  3604	  3607	  3610	  3614	  3641	  3659	  3662	  3665	  3668	  3801	  3837	  3867	  3985	  4025
GTAD	  1761	  1814	  3869	  3941
HALTF	   108	   109	   113
IIC	   201	   207	   396
LLMOP%	  1383
NAME	     8#	    11
NOP	   214	  2445	  2607	  3551
PBIN	   255
PBOUT	   418
PCRLF	   112	   236	   618	   632	   688	   702	   768	   837	   851	   906	   920	   971	   985	  1053
	  1067	  1129	  1143	  1148	  1202	  1249	  1291	  1342	  1348	  1737	  1743	  1852	  1966	  2016
	  2075	  2122	  2144	  2182	  2205	  2226	  2395	  2422	  2473	  2483	  2622	  2741	  2787	  2821
	  2907	  2944	  3037	  3067	  3109	  3140	  3163	  3193	  3218	  3268	  3563	  3700	  3828
PMSG	    77	    99	   102	   182	   281	   339	   380	   382	   384	   389	   433	   492	   497	   614
	   629	   644	   684	   699	   714	   764	   783	   834	   848	   860	   902	   917	   929	   967
	   982	   994	  1049	  1064	  1079	  1125	  1140	  1145	  1157	  1199	  1211	  1246	  1260	  1267
	  1272	  1277	  1282	  1287	  1290	  1297	  1338	  1344	  1357	  1733	  1739	  1946	  1963	  1996
	  2013	  2031	  2053	  2072	  2102	  2119	  2136	  2137	  2141	  2162	  2179	  2196	  2198	  2202
	  2208	  2214	  2222	  2233	  2238	  2246	  2247	  2248	  2296	  2313	  2327	  2347	  2364	  2391
	  2394	  2421	  2455	  2482	  2618	  2714	  2721	  2726	  2730	  2734	  2738	  2750	  2755	  2761
	  2764	  2767	  2770	  2773	  2776	  2779	  2782	  2784	  2794	  2799	  2815	  2829	  2834	  2842
	  2849	  2854	  2862	  2869	  2874	  2882	  2889	  2894	  2914	  2919	  2927	  2931	  2934	  2938
	  2941	  2969	  2974	  2981	  2984	  2986	  2988	  2990	  2992	  2994	  2996	  2998	  3000	  3002
	  3004	  3006	  3008	  3010	  3012	  3014	  3016	  3018	  3020	  3022	  3024	  3026	  3028	  3030     SEQ 0196
	  3032	  3034	  3036	  3043	  3056	  3060	  3062	  3074	  3079	  3084	  3089	  3097	  3101	  3103
	  3116	  3119	  3128	  3132	  3134	  3146	  3150	  3157	  3160	  3162	  3170	  3173	  3181	  3185
	  3187	  3199	  3203	  3210	  3213	  3215	  3217	  3226	  3230	  3238	  3245	  3248	  3256	  3260
	  3262	  3283	  3284	  3559	  3580	  3584	  3588	  3591	  3594	  3597	  3600	  3603	  3606	  3609
	  3612	  3616	  3623	  3626	  3629	  3632	  3635	  3638	  3640	  3643	  3650	  3653	  3656	  3658
	  3661	  3664	  3667	  3804	  3824	  3825	  3839
PNT6	   101
PNTCHR	  1646	  1653	  3328
PNTCI	  3046	  3281
PNTDEC	   631	   701	   836	   850	   919	   984	  1066	  1142	  1147	  1201	  1248	  1262	  1965	  2015
	  2074	  2121	  2139	  2143	  2181	  2200	  2204	  2315	  2366	  2732	  2736	  2740	  2841	  2861
	  2881	  2924	  2926	  2930	  2933	  2937	  2940	  2943	  2980	  3045	  3118	  3156	  3172	  3209
	  3237	  3247	  3280	  3699
PNTMSG	   111	  1851
PNTOCS	  2786	  3065	  3106	  3137	  3190	  3265	  3827
POPD	    48#	   329	   823	  1042	  1118	  1188	  1241	  1633	  1683	  1759	  1818	  1823	  2433	  2595
	  3312	  3318	  3539	  3868	  3915
PSIXM	    77	    99	   102	   182	   281	   339	   380	   382	   384	   390	   433	   492	   497	   614
	   629	   644	   684	   699	   714	   764	   783	   834	   848	   860	   902	   917	   929	   967
	   982	   994	  1049	  1064	  1079	  1125	  1140	  1145	  1157	  1199	  1211	  1246	  1260	  1267
	  1272	  1277	  1282	  1287	  1290	  1297	  1338	  1344	  1357	  1733	  1739	  1946	  1963	  1996
	  2013	  2031	  2053	  2072	  2102	  2119	  2136	  2137	  2141	  2162	  2179	  2196	  2198	  2202
	  2208	  2214	  2222	  2233	  2238	  2246	  2247	  2248	  2296	  2313	  2327	  2347	  2364	  2391
	  2394	  2421	  2455	  2482	  2618	  2714	  2721	  2726	  2730	  2734	  2738	  2750	  2755	  2761
	  2764	  2767	  2770	  2773	  2776	  2779	  2782	  2784	  2794	  2799	  2815	  2829	  2834	  2842
	  2849	  2854	  2862	  2869	  2874	  2882	  2889	  2894	  2914	  2919	  2927	  2931	  2934	  2938
	  2941	  2969	  2974	  2981	  2984	  2986	  2988	  2990	  2992	  2994	  2996	  2998	  3000	  3002
	  3004	  3006	  3008	  3010	  3012	  3014	  3016	  3018	  3020	  3022	  3024	  3026	  3028	  3030
	  3032	  3034	  3036	  3043	  3056	  3060	  3062	  3074	  3079	  3084	  3089	  3097	  3101	  3103
	  3116	  3119	  3128	  3132	  3134	  3146	  3150	  3157	  3160	  3162	  3170	  3173	  3181	  3185
	  3187	  3199	  3203	  3210	  3213	  3215	  3217	  3226	  3230	  3238	  3245	  3248	  3256	  3260
	  3262	  3283	  3284	  3559	  3580	  3584	  3588	  3591	  3594	  3597	  3600	  3603	  3606	  3609
	  3612	  3616	  3623	  3626	  3629	  3632	  3635	  3638	  3640	  3643	  3650	  3653	  3656	  3658
	  3661	  3664	  3667	  3804	  3824	  3825	  3839
PSOUT	   441
PUSHD	    44#	   325	   361	   615	   616	   635	   685	   686	   705	   765	   766	   903	   904	   968
	   969	  1050	  1051	  1070	  1126	  1127	  1339	  1345	  1697	  1734	  1735	  1740	  1741	  1791
	  1813	  2218	  2223	  2438	  2451	  2470	  2600	  2611	  2619	  2818	  2904	  3313	  3544	  3555
	  3560	  3836	  3984	  4024	  4051
PUTIT	   248	   300	   348	   487	   598	   668	   737	   815	   883	   951	  1020	  1107	  1180	  1234
	  1320	  1415	  1443	  1544	  1627	  1678	  1713	  1757	  1782	  1836	  1883	  2271	  2579	  3310
	  3524	  3858	  3916	  3980	  4021	  4038
RFCOC	   458
RFMOD	   142	   454
RTIW	   149
RTN	    82	   238	   445	   461	   473	   501	   640	   710	   779	   856	   925	   990	  1075	  1153
	  1207	  1295	  1353	  1405	  1429	  1453	  1525	  1577	  1616	  1662	  1705	  1721	  1744	  1755
	  1764	  1792	  1811	  1824	  1843	  1848	  1849	  1857	  2258	  2404	  2490	  3296	  3322	  3329
	  3677	  3701	  3844	  3883	  3956	  3988	  4028	  4055
SFCOC	   472
SFMOD	   146	   229	   468
SIBE	   251
SIR	   160                                                                                                             SEQ 0197
SIXBTZ	    88
SOBF	   406
STIW	    81	   153	   234
STPAR	   230	   469
SYERR	  3877	  3947
TIME	  1418	  1446
TIMER	   491	   496
TMSG	   438