1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-13 07:19:57 +00:00
PDP-10.its/doc/minits/-how-t.21
2018-11-25 20:59:17 +01:00

463 lines
16 KiB
Plaintext
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

How to Build a Terminal Concentrator
I'm writing this because I found out the hard way that most of this
information isn't stored anywhere. Hopefully you will have an easier
time of it than I did. Please add new information if you think that
it is relevant, or correct/update what is already here.
The document is broken up into sections and subsections by asterisks
in the left hand column. The number of asterisks indicates the
section level, that is, one asterisk is a section, two a subsection,
etc. This conforms with the conventions of Outline Mode in GNU Emacs,
which you can use to easily read this.
There is also abbreviated information about MINITS in:
<DCP.MINITS>MINITS-DOC.TXT
and about boot-proms in: <DCP.MINITS>ETHER-PROM-DOC.TXT.
Updated 6/23/86.
* What do you need?
** I found that I needed the following parts:
Qty Manufacturer Part Description
--- ------------ ---- -----------
1 DEC BA11-NL Processor Box
1 DEC KDF11-AC LSI-11/23 CPU (M8186)
1 DEC MXV11-AA 8Kb Multifunction Module (M8047-AA)
1 DEC MSV11-ED 64Kb RAM Module (M8045-D)
n DEC DLV11-J Asynchronous Serial Interface (M8043)
n DEC D315 Distribution Panel
1 Interlan NI2010A Ethernet QBUS Interface
1 3Com 3C100 Ethernet Transceiver
1 Interlan(?) (???) Cable to connect above two items
2 DEC (???) QBUS Grant Continuity boards
2 (many) 2716 2Kb EPROM
Notes:
*** I'm not sure about the part number for the LSI-11/23 box. I read
that off the back of the box that I have.
*** The Distribution Panel mentioned above is a cute frob that
connects all four serial ports of the DLV11-J to four RS232
connectors. There are other ways of accomplishing the same effect,
e.g. you may wish to build your own panel in which case all you need
is the connectors for either end and some ribbon cable.
*** The cable used to connect the Ethernet interface to its
transceiver may actually come with the Interlan board -- I got one
that was lying around so I don't really know. Also there is an
extension cable which you may need if the concentrator will be more
than 10 feet from the transceiver.
*** The QBUS Grant Continuity boards are normally supplied with the
Interlan card, but can also be obtained from DEC. The DEC cards will
need to have about a centimeter trimmed off the end since they are
slightly too long to fit with the Ethernet board.
** In addition to the hardware above, you will need the following
books to configure the various boards:
DEC EB-20912-20 Microcomputers and Memories 1982
DEC EB-23144-18 Microcomputer Interfaces Handbook 1983-84
* Configuring the hardware
** CPU card
This is easy -- most of the standard configuration is what you want.
You should change these jumpers:
*** Remove W4. This enables the use of the Line Time Clock, called by
DEC in their literature the `BEVENT signal'.
*** Remove W5 and Install W6. This selects `Power-up Mode 2, Execute
Boot'. This will cause the machine to go to address (octal) 173000.
** RAM card
Select a starting address of 0, which will make the RAM card fill the
entire 16-bit address space. The board comes factory configured to
prevent the selection of Bank 7 addresses (in the range 160000 to
177777, octal). You should leave it configured that way.
** Ethernet Interface
This is normally configured (by the factory) to CSR = 164000 and
Vector = 340. This is a perfectly good setting, using the modified
addressing scheme for DLV11-J's given below.
** MXV11-A
This board contains some RAM, some ROM, and two serial ports, which
must be configured.
*** The MXV11-A normally comes with its two serial channels configured
as follows:
Channel 0: CSR = 176500, Vector = 300, Baud rate = 38400.
Channel 1: CSR = 177560, Vector = 060, Baud rate = 9600.
Both channels come set up for eight data bits, one stop bit, and no
parity. All of these settings are OK, except for the baud rate on
channel 0, which you will probably want to change to 9600. You should
also disable the Break generation on channel 1 by removing the jumper
which the factory puts there.
Having made all of these changes, both of these ports should be usable
as ordinary ports on the terminal concentrator.
*** The RAM jumpers should be set up as:
J30 to J33
J31 to J33
J32 to J33
which selects a starting address of 0.
*** The ROM jumpers should be set up as:
J22 to J21
J29 to J15
J37 to J33
J36 to J38
J39 to J40
which selects 2716 type PROMS, and the 173000 to 173777 addressing
range (i.e. boot PROM).
The last jumper is extremely strange. Look at the board, component
side up, with the contact fingers down. Immediately to the right of
the upper right corner of the right-hand ROM socket is a vertical row
of five horizontal resistors. The fourth from the top should be a
zero-ohm resistor (it is really a wire, but DEC is using a resistor
for some reason). Remove this resistor/wire, and connect a wire from
where the right-hand lead of the resistor was to J34.
The net effect of all of these jumpers is that the two ROMs will cover
the address space between 170000 and 177777, with the even addresses
going to the right-hand ROM socket and the odd addresses going to the
left-hand ROM socket.
** DLV11-J card(s)
These cards require the following configuration:
*** You must set the CSR (control/status register) address and Vector
address of each card.
*** You must tie the jumpers C1 and C2 to zero, thus disabling the use
of channel 3 as the console channel.
*** You must remove the Break Operation Jumper, which causes special
actions when the Break key is hit on channel 3.
*** You should set the baud rate of each channel to 9600 if it isn't
already done (my boards came configured that way even though the
manual says that channel 3 comes set to 300).
*** You should guarantee that the word format jumpers (E, D, S, and P)
for each channel are set up for eight data bits, one stop bit, and no
parity (this is the factory default).
The addressing of the boards has generally been done very haphazardly,
as far as I can tell. Here is what appears to be the de facto CSR and
vector addresses used by people who set up terminal concentrators:
Card # CSR Vector
------ --- ------
1 176400 140
2 176440 200
3 176700 300
4 176740 340
There are some disadvantages to this addressing scheme. In
particular, the MXV11-A has a serial line on it that can only be given
a CSR address in {176500, 176510, ..., 176530} and a vector address in
{300, 310, ..., 370}. Also, the Interlan Ethernet card comes with a
factory default vector of 340. For these reasons, and after
consulting DEC's standard CSR and Vector address tables, it seems like
the following are good ranges to use:
CSR
---
175640-176470 (52 lines)
176540-176770 (20 lines)
177300-177530 (20 lines)
Vector
------
140-270 (12 lines)
400-770 (32 lines)
There seems to be more than enough room here to stuff a concentrator
box full of DLV11-J cards, so here is an alternative addressing scheme
that takes advantage of this:
Card # CSR Vector
------ --- ------
1 175640 140
2 175700 200
3 175740 240
4 176000 400
5 176040 440
6 176100 500
7 176140 540
8 176200 600
9 176240 640
* Setting up the software
** The first thing you have to do is get a Chaos address. To do this
you must know the subnet that you are going to put the concentrator
on. The chaos address is a 16-bit number whose MS byte is the subnet
number, and whose LS byte is the host number. You will have to search
through the file
MC: SYSNET; HSTMIT >
to find a host number which isn't already used. Once you have picked
a new address, MAKE SURE that it does not conflict with any other
address by searching (e.g. with EMACS) through the entire file for
that number.
Also, if you are using the LCS network, you should know that there is
a DIFFERENT HOST TABLE, which contains additional hosts. You must not
conflict with hosts in either table! See the LCS network people to
get one of these allocated -- you cannot get at the host table
yourself.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++ If you aren't sure what you're doing, get a network wizard to
++++ help you out -- if you screw up this file many people will be
++++ unhappy with you.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
** Next, you must build a new entry in the file
OZ:OZ:<DCP.MINITS.S>CONFIG.PALX
which is most easily done by copying the entry of a concentrator that
is similar to the one you're building, and then editing it to match
your specific hardware configuration. The new system that you make
should be the highest numbered system, and it should appear after all
the other numbered systems.
There are two other entries which you must make:
*** At the very beginning of the file is a list mapping system numbers
to concentrator names.
*** Somewhat after that is a bunch of conditionalizations which look
like:
.
.
.
.iif z system-34, pdp11==23
.iif z system-35, pdp11==23
.iif z system-36, pdp11==23
.
.
.
you should make an appropriate entry here, which would be just like
the above except that it would have your system number. All this says
is that you are using an LSI-11/23 processor.
The following page is the entry that I made as an example.
.sbttl System 144: NE43-4A-HUB
.if z system-144
.title AI Lab NE43-4A-HUB
.host. <AI Lab NE43-4A-HUB>
brdtim==-1 ;don't answer broadcast requests for the time
memtop==160000 ;top of usable memory
bootad=173000 ;bootstrap
dbugad=173002 ;debug routine
defdev np,pktncp,<>
ilanv2==-1
defdev il,interl,<
;;; ilan vec,csr ,chaddr
ilan 340,164000,015113 ;factory settings
>
defdev eth,ethncp,<>
defdev dl,dl11,<
;;; dl vec,csr ,typ,baud.,qsize,where
;;; MXV11
dl 060,177560,gaa,9600.,<NE43-4A-HUB port 1>
dl 300,176500,gaa,9600.,<NE43-4A-HUB port 2>
;;; DLV11-J #1
dl 140,175640,gaa,9600.,<NE43-4A-HUB line 3>
dl 150,175650,gaa,9600.,<NE43-4A-HUB line 4>
dl 160,175660,gaa,9600.,<NE43-4A-HUB line 5>
dl 170,175670,gaa,9600.,<NE43-4A-HUB line 6>
;;; DLV11-J #2
dl 200,175700,gaa,9600.,<NE43-4A-HUB line 7>
dl 210,175710,gaa,9600.,<NE43-4A-HUB line 8>
dl 220,175720,gaa,9600.,<NE43-4A-HUB line 9>
dl 230,175730,gaa,9600.,<NE43-4A-HUB line 10>
>
defdev chs,chsncp,<
;;; chsncp maxsubnet,maxconnections
chsncp 172, 30
>
.endc system 144
** You should now make two control files
OZ:OZ:<DCP.MINITS.E>foo.CTL
OZ:OZ:<DCP.MINITS.E>foo.INSTALL
where foo is constructed from the name of your concentrator in a
reasonable way and does not conflict with existing names. For
example, NE43-4A-HUB becomes NE434A.
Again, the way to make these control files is to copy those for an
existing concentrator and modify them. In foo.CTL you will need to
change the name of the binary output file to foo.PBIN and the number
given should be your new system number. In foo.INSTALL you will
need to change the number in each file to be your new Chaos address.
** Next, you should edit each of the files
OZ:SYSTEM:11LOAD.FILES
REAGAN:>PDP-11>11LOAD.FILES
ZERMATT:>PDP-11>11LOAD.FILES
to have a new entry. This entry will tell OZ and MC what binary file
is associated with your Chaos address. The format of the entry is
easy to grok from looking at other entries. There is another of these
files on EE, but I haven't found out where yet.
** Build the binary file as follows:
*** Connect to OZ:<DCP.MINITS.E>
*** Type
SUBMIT foo.CTL
this starts up a background job which will assemble your binary file.
When it finishes, it will leave two files, foo.PBIN and foo.LOG ,
in that directory. Look near the end of foo.LOG and you should see
the message
2 Errors Detected
If any other number of errors occurs something is wrong and you should
get a wizard.
*** Once you have successfully assembled your binary file, type
TAKE foo.INSTALL
which will send the new binary to MC and EE.
* Generating the boot PROMs
** On OZ, do
PALX <DCP.MINITS.BOOT-PROM>BOOTIL
This will assemble a new boot PROM program for you, leaving it in the
file BOOTIL BIN in your HSNAME (that is, your home directory). It
will ask you the following questions (the answers that I gave are in
parentheses):
What CSR address (0, meaning 164000)
What Chaos address (15113)
What set of downloading hosts (0, meaning MIT)
What start address (0, for an I/O page boot rom)
Power-up/boot support for 11/34 (0, meaning no)
LSI-11/23 PLUS boot PROM kludge (0, meaning no)
Start of temporary data storage (150000)
** On a Lisp Machine with a prom programmer attached and the prom-programmer
facility enabled do
(load "oz:ps:<dcp.minits.boot-prom>prom")
(27burn)
The program will ask you what starting address to use, and you should
reply 3000 (which it will suggest as a good value). Then it will ask
you for confirmation. When done, it returns NIL.
More info on prom programming is in SYS:FACILITIES;PROMP.DOC
** Finally you have the boot PROMs, which should be inserted into the
sockets on the MXV11-A card. Looking at the component side of the
card, with the contact fingers at the bottom, the B00 PROM should be
inserted in the right-hand socket, with the notch upwards. The B08
PROM goes in the left-hand socket.
* Assembling the hardware
The only trick about this is that the QBUS has a daisy-chained
interrupt grant line on the bus which requires that the cards be
inserted in adjacent slots on the bus. The QBUS Grant Continuity
cards that are in the parts list above are required because the
Interlan Ethernet card takes up four bus slots while only plugging
into two of them.
Here is a plausible way to plug the cards in:
CPU -- upper left hand corner
Memory -- upper right hand corner
Grant Continuity cards -- immediately below the CPU and Memory cards,
on the left hand side of each bus slot, with the contacts down.
Ethernet card -- immediately below the Grant Continuity cards.
MXV11 -- below the Ethernet card in the right hand slot.
DLV11-J(s) -- continuing down the bus: to left of MXV11, below MXV11,
below first DLV11, below second DLV11, etc. This is a right-to-left,
top-to-bottom order.
* Booting and possible problems
To boot the concentrator, you need to connect it to power and the
Ethernet, and then turn it on. The switches marked "Power", "LTC",
and "Halt Enable" should all be in the up position, then toggle the
"Boot" switch up to boot. The "transmit" light on the Ethernet card
should flicker once or twice as it sends out Request For Connection
packets, and then there should be a steady stream of "transmit" and
"receive" packets as MINITS gets loaded. Finally, your terminal
should display a message indicating that the boot has completed.
Some possible problems:
** You are transmitting but not receiving, so MINITS can't be loaded.
Check on MC using :PEEK to see if your RFC is being received. This
can be determined using the K command in PEEK. You should see a
connection named ___nnn 11LOAD RFCRCV with your Chaos address. If
this is so, then you may have a Chaos address for the wrong subnet.
Also, if you have tried to swap Ethernet cards, you should know that
the various Ethernet bridges actually cache information relating Chaos
to Ether addresses, so that it may be trying to contact your old Ether
card. You will need to boot the bridges if this is the problem, or
else get a new Chaos address and recompile everything from scratch. A
similar effect might be caused by having a conflicting host number, in
which case the packets addressed to you might be sent to the other
host instead.
** MINITS boots but you can't make connections. If you can do finger
from MINITS, but not SUPDUP or TELNET, probably your line time clock
is not working. This could be for two reasons: First, your backplane
might be broken. But far more likely you didn't remove W4 on the
processor board (like me), which gives the same effect. Try that to
find out. Otherwise, use a scope to look at the BEVNT L pin on the
bus, which is documented in Chapter 9 of the Microcomputers and
Memories handbook.