This summer a group of us worked together to resurrect the original ARPAnet IMP software, and I’m now happy to say that the IMP lives again in simulation. It’s possible to run the original IMP software on a modified version of the H316 simh and to set up a virtual network of simulated IMPs talking to each other. IMP to IMP connections, which would have originally been carried over leased telephone lines, are tunneled over IP. As far as we can tell, everything works pretty much as it did in the early 1970s. IMPs are able to exchange routing information, console to console communications, network statistics, and they would carry host traffic if there were hosts on the network. The hooks are in there to allow simh to support the IMP side of the 1822 host interface, and the next step would be to recover the OS for an ARPAnet era host and then extend the corresponding simulator to talk to the IMP simulation.
42 lines
1.1 KiB
Batchfile
42 lines
1.1 KiB
Batchfile
; This is a super simple simh script to test the IMP RTC and verify that it is
|
|
; incrementing at the correct 100us interval. It simply waits for the clock
|
|
; count to overflow (which takes 65535 * 100us or about 6.5 seconds) and then
|
|
; repeats for a total of 10 iterations. If all is well, this loop should take
|
|
; pretty close to 65 seconds to complete.
|
|
;
|
|
; RLA [15-Jun-13]
|
|
echo
|
|
echo SIMH IMP RTC INTERVAL CALIBRATION TEST
|
|
|
|
; Turn on the RTC (this requires extended interrupt support)
|
|
set cpu extint=16
|
|
set rtc enabled
|
|
|
|
; Turn the clock on (OCP 40 ==> CLKON) ...
|
|
d 1000 030040
|
|
|
|
; Loop reading the clock register until it becomes negative ...
|
|
d 1001 131040
|
|
d -m 1002 HLT
|
|
d -m 1003 SMI
|
|
d -m 1004 JMP 1001
|
|
|
|
; Loop reading the clock register until it becomes positive again ...
|
|
d 1005 131040
|
|
d -m 1006 HLT
|
|
d -m 1007 SPL
|
|
d -m 1010 JMP 1005
|
|
|
|
; And repeat the above for ten iterations ...
|
|
d -m 1011 IRS 1015
|
|
d -m 1012 JMP 1001
|
|
d -m 1013 HLT
|
|
d -m 1014 0
|
|
d -m 1015 177766
|
|
|
|
; That's it...
|
|
d p 1000
|
|
echo Start your stopwatch and at the same moment type "GO".
|
|
echo The program should halt in exactly 65 seconds ...
|
|
|
|
|