• Please review our updated Terms and Rules here

SITS once again runs on PDP-11/45

Joined
Oct 4, 2021
Messages
23
Location
Silver Spring, MD
Greetings!

I'd like to announce a project to restore the MIT Small Incompatible Timesharing System (SITS), which is a port (of sorts) to the PDP-11 of the venerable ITS for PDP-10. Historically, SITS was the development platform for the original MIT LOGO environment. You can read some history about the system here:

https://gunkies.org/wiki/SITS

This week I got SITS to boot for the first time on my PDP-11/45. This is possibly the second 11/45 to run SITS, ever.


Skip to about 5:25 if you want to see the boot process itself, which starts with Unibone configuration. There are several rounds of booting shown in the video because SITS crashes after attempting to start the user programs LOGO and DDT. These programs require the floating point processor, which my machine does not have. SITS was not known for its stability!

SITS apparently only ever ran on one PDP-11/45, but was later ported to the LSI-11. It is very picky about hardware configuration. If you don't have exactly the correct amount of memory installed, 216 kilobytes, it won't start! Additionally, SITS expects to have the custom MIT vector and graphics displays that are required by LOGO, even though these aren't used during the boot process.

Lars Brinkhoff and I have been trying to restore SITS from archival tapes collected by SITS's lead developer, Ron Lebel. Here's where you can find these archives (they are a bit disorganized):

https://github.com/larsbrinkhoff/mit-logo-and-sits-raw-files

After Lars implemented the missing devices on simh, we were able to boot SITS on simh. We can run simple LOGO programs, use the DDT debugger, and use various applications:

https://gunkies.org/wiki/Installing_SITS_on_SIMH
https://github.com/larsbrinkhoff/sits/tree/lars/new

I decided that a reasonable next step would be to attempt to boot SITS on my PDP-11/45. Once again, the missing hardware was a definite impediment, but the Unibone solves that problem! The exact memory required is easily supplied by using the "stock" Unibone, for instance.

Although SITS checks for the presence of various unusual devices, it doesn't actually attempt to use them during the boot process. Therefore, you can simply implement stubs in the Unibone: devices that respond to the appropriate memory addresses but don't do anything else. My working code tree is a fork of Joerg Hoppe's QUnibone repo:

https://github.com/kb1dds/qunibone/tree/mit-sits-devices

My version of the Unibone demo program provides the necessary stub devices. If you're interested I can provide the command scripts, etc.

I'm now working to turn the stubs into fully working emulated devices. While the MIT custom raster and vector graphics devices may be of only niche interest, the other device that SITS requires is the venerable DH(V)11 asynchronous serial interface. That too is stubbed at the moment, but I suspect folks might actually find that useful once I get it working. I'm envisioning that the Unibone might connect the emulated serial lines to network sockets, so that instead of running innumerable cables, you can simply TELNET into the Unibone.

Enjoy!
Michael
 
An update on SITS archaeology, for those interested...

I was wondering how SITS allocates memory across processes, and how the memory-resident RUG debugger works. The documentation for RUG states that it is a swapping debugger, and will load/unload itself as needed from a protected copy on disk. While single stepping a large program this way is possible, it is not fast. However, since RUG plays an important role in the boot process for SITS, it seemed a worthwhile exercise to investigate how and when it is actually resident.

I previously reported the use of a Unibone to provide (almost) realtime memory snapshots, and the use of an electrophone to capture audio from the CPU cabinet. Along with a little detective work, you can see some clear indicators of program behaviors!


The short story is that RUG does swap itself into memory at odd (and perhaps unexpected) times, and various other interesting things of note occur!

Enjoy!
Michael
 
Back
Top