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