137 lines
4.8 KiB
Text
137 lines
4.8 KiB
Text
IMP DEMONSTRATION
|
|
-----------------
|
|
|
|
This directory contains a version of the IMP firmware, ca 1973, and some simh
|
|
command files to help you run it. These command files define a three IMP
|
|
network consisting of IMP nodes #2, 3 and 4.
|
|
|
|
* IMP 2 has a single virtual modem line which connects to IMP 3.
|
|
|
|
* IMP 3 has two modem lines, one connects to IMP 2 and the other to IMP 4.
|
|
|
|
* IMP 4 has a single modem line, connected to IMP 3.
|
|
|
|
A picture is worth a thousand words -
|
|
|
|
IMP 2 <-------> IMP 3 <-------> IMP 4
|
|
modem modem
|
|
|
|
The interesting thing to notice about this arrangement is that there is no
|
|
path between IMP 2 and IMP 4. Any messages between those two machines must
|
|
pass thru IMP 3. Sounds simple, but for that to work requires all IMPs to
|
|
discover their adjacent nodes, find out the neighbors of their neighbors, build
|
|
routing tables, and then figure out the path to a remote node.
|
|
|
|
|
|
SETUP
|
|
-----
|
|
|
|
Assuming you've already built the H316 simulator with IMP support, open three
|
|
terminal windows and run on instance of H316 in each.
|
|
|
|
Window #1 -> H316 imp2.cmd
|
|
|
|
Window #2 -> H316 imp3.cmd
|
|
|
|
Window #3 -> H316 imp4.cmd
|
|
|
|
These command files will configure the hardware, load the IMP firmware,
|
|
set the IMP node numbers, and establish the modem connections. These command
|
|
files DO NOT actually start the simulation, however, so after you've loaded
|
|
all three IMPs, revisit each of the three windows and type "GO".
|
|
|
|
Initially you should see a message like this in all three windows
|
|
|
|
DBG(737742)> WDT LIGHTS: changed to 177400
|
|
|
|
This message refers to the status of the lights on the IMP's display panel -
|
|
177400 means all lights are on. After about 30 seconds (yes, 30 seconds!)
|
|
you'll see this message on IMP 2 and 4
|
|
|
|
DBG(19558711)> WDT LIGHTS: changed to 077400
|
|
|
|
and these on IMP 3
|
|
|
|
DBG(15492720)> WDT LIGHTS: changed to 077400
|
|
DBG(17096499)> WDT LIGHTS: changed to 037400
|
|
|
|
This means IMP 2 and 3 have turned off the light corresponding to modem line 1.
|
|
The IMP designers used these lights to indicate problems or errors, so a light
|
|
off means that all is well. IMP 2 and 3 have just told you that their modem
|
|
line #1 is UP. Remember that IMP 3 has two modems, so we see two lights turn
|
|
off there.
|
|
|
|
BTW, the time it takes for the IMP lines to come up is controlled by
|
|
intentional delays in the IMP firmware and is driven by the RTC. simh simulates
|
|
the RTC in real, wall clock, time, and the delay you see here is comparable to
|
|
the delay you'd see on real IMP hardware. IT HAS NOTHING TO DO WITH THE SPEED
|
|
OF THE PC RUNNING THE SIMULATION!
|
|
|
|
You may also see the message
|
|
|
|
HI1 - UNRECOVERABLE I/O ERROR!
|
|
|
|
on any or all of the IMPs. This occurs because no host mainframe is connected
|
|
to the IMP. This is harmless, at least for the purposes of this demonstration,
|
|
and may be ignored.
|
|
|
|
|
|
NOW WHAT ?
|
|
----------
|
|
|
|
Now that you've got your three IMP network running, what can you do with it?
|
|
Well, the IMPs had a very simple DDT like command language. Typing "0/" will
|
|
display the contents of location 0 -
|
|
|
|
0/ 0
|
|
|
|
The "C" command was used to "cross patch" the terminal on your IMP to another
|
|
IMP. For example, typing "2C" on IMP 4
|
|
|
|
2C
|
|
|
|
will connect the console keyboard on IMP 4 to the console printer on IMP 2.
|
|
Anything you type on IMP 4 will now be echoed on IMP 2 - try it... In the
|
|
Olden Days ARPAnet sites would use this facility to communicate, operator to
|
|
operator.
|
|
|
|
By adding 100 (octal) to the destination node, you can cross patch to DDT.
|
|
For example, typing "102C" on IMP 4 will cross patch that TTY to DDT, not the
|
|
operator, on IMP 2. This allowed guys at BBN and the NCC to debug IMP problems
|
|
remotely.
|
|
|
|
|
|
FILES INCLUDED
|
|
--------------
|
|
|
|
The files included in this software kit are -
|
|
|
|
00readme.txt - this file
|
|
impcode.cmd - simh script to load the IMP firmware
|
|
c-listing-ps.txt - assembly listing of the IMP firmware
|
|
impconfig.cmd - simh script for common IMP configuration
|
|
imp2.cmd - IMP node #2 specific configuration
|
|
imp3.cmd - IMP node #3 specific configuration
|
|
imp4.cmd - IMP node #4 specific configuration
|
|
imploop.cmd - IMP single line loopback test
|
|
imploop4.cmd - IMP 4 line loopback test
|
|
mdmtest1.cmd - simh modem simulation test, part 1
|
|
mdmtest2.cmd - simh modem simulation test, part 2
|
|
testrtc.cmd - simh RTC simulation test
|
|
|
|
|
|
MORE READING
|
|
------------
|
|
|
|
Dave Walden's website,
|
|
|
|
http://www.walden-family.com/bbn/
|
|
|
|
has a wealth of BBN papers, proposals, reports, journals, and other material.
|
|
There is an entire section devoted to ARPAnet and IMP related content.
|
|
|
|
|
|
Bob Armstrong
|
|
bob@jfcl.com
|
|
30-Nov-2013 / updated 20-Mar-2022
|
|
|