Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/documentation/kdpsrv.doc
There are no other files named kdpsrv.doc in the archive.


                           KDPSRV

     KDPSRV  is  the  TOPS-20  monitor   module   (for   the
DECSYSTEM-2020)  which  drives  the  KMC/DUP  communications
lines.  Its main function  is to transfer  messages  between
NSPSRV and the KMC/DUP lines.  Some of the
DDCMP handling is done by the COMIOP-DUP microcode  in  the
KMC11;   the  rest is done in KDPSRV. In addition KDPSRV
performs some control functions for the KMC/DUP's such as
loading the microcode.  


Initialization

     The initialization  routine  KDPINI  is  called  during
system startup.  Its task is to establish the addressability
of the KMC and the DUP's on the unibus and load the KMC11
microcode. Note that the KMC microcode is loaded from a buffer
at COMIOP in KDPSRV at system startup, but the NCP command
LOAD CONTROLLER loads the KMC microcode from a file.


Interrupt Service

     KMCVCA and  KMCVCB  are  the  KMC11  input  and  output
interrupt routines;  they are called via the standard PDP-11
vectored interrupt.  Their addresses are established  during
the execution of KDPINI.


DDCMP

     The following routines are called to  process  incoming
DDCMP messages:

     1.  RCVDAT - Data Message

     2.  RCVACK - ACK

     3.  RCVNAK - NAK

     4.  RCVREP - REP

     5.  RCVKRD - RESET

     6.  RCVSTR - START

     7.  RCVSTK - STACK

The following routines are called to process outgoing  DDCMP
messages:

     1.  XSTART - START

     2.  XMTACK - ACK

     3.  XMTNAK - NAK
                                                      Page 2


     4.  XMTDAT - Data Messgage



Once a Second

     The routine KDPCHK is called once a second to check the
state of the lines.  It does this by checking the line timer
which can  be  either  monitoring  the  time  between  START
messages  or  monitoring  the  time  between  REP  messages.
First, if the timer is not running nothing needs to be done;
if  it  is  running  it is updated.  Second, if updating the
timer does not result in a timeout nothing further needs  to
be  done;  if updating does result in a timeout the state of
the line is checked and the appropriate action is taken.   A
line  can  be in one of five states:  1) KMC not running, 2)
maintenance mode, 3) sending STARTs, 4) sent STACK,  and  5)
running.


NSPSRV Interface

     Two KDPSRV routines are directly  called  from  NSPSRV.
KDPTSK  is  called from NSPSRV's background task NSPTSK;  it
tells NSPSRV about lines coming up or going down.  If a line
has  gone  down  it  calls  DEDMCB, the NSPSRV routine which
closes all logical links to an MCB which  has  died.   If  a
lines  has come up it calls NODINI, the NSPSRV routine which
builds and sends a node initialization message.

     DCNMSO is the routine called by NSPSRV when  it  has  a
message  to go out over the line.  (Note:  The label of this
routine is the same as the  DTESRV  routine  called  on  the
DECSYSTEM-2040/50/60.) Its task is to check the availability
of the line and place the message on the line's DDCMP output
message queue.


BOOT JSYS

     The BOOT JSYS is found in KDPSRV in 2020 monitors. It is
the  executor of the following KMC11 functions:


	 BTINI		0 = ENTER MOP MODE
	 BTLSB		1 = LOAD SECONDARY BOOTSTRAP
	 BTSMP		2 = SEND MOP MESSAGE
	 BTERR		3 = DUMP MEMORY
	 BTIPR		4 = INITIALIZE PROTOCOL
	 BTTPR		5 = TERMINATE PROTOCOL
	 BTSTS		6 = RETURN STATUS
	 BTRMP		10 = READ MOP MESSAGE
	 BTKML		11 = LOAD KMC11
	 BTKMD		12 = DUMP KMC11
	 BTRLC		13 = RETURN LINE COUNTS
	 BTCLI		14 = CONVERT LINE-ID TO PORT NUMBER
	 BTCPN		15 = CONVERT PORT NUMBER TO LINE-ID
	 BTSTA		16 = SET TERMINAL STATE (ACTIVE/IDLE
	 BTSSP		17 = SET START PRIORITY
	 BTSTP		20 = SET TERMINAL PRIORITY
	 BTSDD		21 = SEND DDCMP MESSAGE
	 BTRDD		22 = RECEIVE DDCMP
	 BTCHN		23 = ASSIGN SOFTWARE INTERRUPT CHANNEL
	 BTSLS		24 = SET LINE SERVICE TYPE