paulnank / nankervis-pdp10-js

DECsystem-10 (PDP-10 KI10) Emulator in Javascript
https://skn.noip.me/pdp10/pdp10.html
57 stars 0 forks source link

ITS support #2

Open larsbrinkhoff opened 2 years ago

larsbrinkhoff commented 2 years ago

Hello,

I wonder if updating the emulator to run ITS would be under consideration?

ITS never ran on a KI10, but it did run on modified KA10 machines. The addition of a virtual memory pager and accompanying instructions might possibly be intrusive. On the peripheral side, ITS would need a DEC RP10 disk controller, or the custom one-off Systems Concepts DC10. Terminal controllers were also custom made at MIT. (Beyond this bare-bones configuration there are many other hardware devices to provide the full ITS UX.)

I'm not sure when, or if, I or anyone else would have time to work on this. At this point I'm mostly reaching out to see if it would be an option at all.

paulnank commented 2 years ago

Nothing is impossible!

I imagine from your comments that the correct way of doing an ITS version would be to construct a KA10 version of the emulator with the necessary "hardware" modifications to support ITS. This would have a KA10 front panel etc, and be based on the existing emulator but would essentially become a new emulator.

I am not familiar with ITS but I have stumbled on enough PDP-10 documentation by now to know that every PDP-6/PDP-10 model and operating system has it's own low level nuances which makes them all slightly incompatible with each other. That of course makes it just a bit harder to do any generalized approach. :-(

Possibly the best way to get started would be to add any necessary peripherals to the existing emulator to test them first - provided that the I/O and interrupt mechanisms are compatible. But most of the core instruction stuff shouldn't be a problem.

Might have to do some reading...

larsbrinkhoff commented 2 years ago

The KA10 and KI10 are close enough that I think it wouldn't have to be an entirely new emulator. @rcornwell's SIMH-based suite has PDP-6, KA10, KI10, KL10 A and B all in the same code (and KS10 closing in), albeit with some sprinklings of #ifdef. I think it would be fair to say the hardware models and operating system incompatibilities can be dealt with in a reasonably clean way.

I wasn't suggesting you do this work; I mostly wanted to probe whether it would be a possibility or no-go. But if you are interested I can provide ample information about ITS, both software and hardware peculiarities.

rcornwell commented 2 years ago

The KA10 and KI10 are not that close. Also the ITS mods make KA10 a bit difficult. Going from KA10 to KI10 was a bit of a challenge. The major difference is the KI10 has traps where as the KA10 does not. I am impressed that you went for a KI10 rather then a KA10.