Home

Awesome

Incompatible Timesharing System

CI Build Status

About ITS

ITS, the Incompatible Timesharing System, is an operating system for the PDP-10 computer family. It was created by hackers at MIT in the 1960s. The MIT site was shut down in 1990, but enthusiasts continue to operate ITS systems to this day.

Some notable ITS features:

There is a mailing list for discussion about ITS. Go to http://its.victor.se/mailman/listinfo/its-hackers_its.victor.se for more information.

About this project

This repository contains source code, tools, and scripts to build an ITS system from scratch.

The goals are:

The build currently runs on the SIMH and KLH10 emulators. Of course, we'd be delighted to test this on a real KS10.

Building

To build ITS with this repository, you need some tools installed; see the table below. Ensure all submodules are checked out, and then type make EMULATOR=simh, make EMULATOR=pdp10-ka, make EMULATOR=pdp10-kl, make EMULATOR=pdp10-ks, or make EMULATOR=klh10. This will leave built files in the out directory, some of which are disk images with ITS installed.

EmulatorDependencies
klh10git, c compiler, make, expect, curses, autoconf
simhgit, c compiler, make, expect, curses, autoconf, sdl2
pdp10-kagit, c compiler, make, expect, curses, autoconf, sdl2, sdl2-image, sdl2-net, gtk3
pdp10-klgit, c compiler, make, expect, curses, autoconf, sdl2, sdl2-image, gtk3
pdp10-ksgit, c compiler, make, expect, curses, autoconf, sdl2

Usage

To start ITS, type ./start. If you see KLH10#, type go and Enter. If you see the DSKDMP prompt, type its, press Enter, and then <kbd>ESC</kbd><kbd>G</kbd>. If you use the pdp10-kl emulator there is no prompt and you need to type <kbd>ESC</kbd><kbd>L</kbd> ITS, press Enter, and then <kbd>ESC</kbd><kbd>G</kbd>. Eventually, you will see SYSTEM JOB USING THIS CONSOLE. You are now ready to log in, so type <kbd>CTRL</kbd><kbd>Z</kbd>. See doc/DDT.md for a list of useful commands.

Alternatively to logging in directly in the system console window, which will always be displaying daemon messages, you may prefer to use a seperate terminal session for logging in. To do this just run telnet localhost <port> from another shell window and press <kbd>CTRL</kbd><kbd>Z</kbd> to log in there. The port should be determined as per this list:

PortTypeEmulator
10000TK10pdp10-ka
10002Datapoint kludgepdp10-ka
10003Morton boxpdp10-ka
10004DZ11simh, pdp10-ks
10007DTE2pdp10-kl
10008DL10(pdp10-kl in the future?)

To shut down ITS, type :lock and then 5down. Log yourself out to avoid the 5 minute grace period: type :logout. When ITS writes SHUTDOWN COMPLETE, it's safe to stop the emulator. Press <kbd>CTRL</kbd><kbd>\</kbd> to escape to the simulator command prompt and quit to close it. If you had a separate telnet user session running you can similary press <kbd>CTRL</kbd><kbd>[</kbd> and then exit telnet.

ITS can optionally use some additional peripheral devices. To attach a simulated GT40 graphics terminal, type ./start gt40. If you run the KA10 emulator, you can use the Knight TV raster display by typing ./start tv11 tvcon. On a TV, type <kbd>F1</kbd> instead of <kbd>CTRL</kbd><kbd>Z</kbd>.

Here is an overview of the repository:

Terminal Emulators

Several emulators for terminals and peripheral processors are built along with ITS. They can be started conveniently with the start script, or separately. Not all terminal emulators are set up to work with all PDP-10 emulators by default.

NameDescriptionTypeklh10pdp10-kapdp10-klpdp10-kssimh
type340Type 340vectornoyesnonono
gt40GT40 PDP-11vectornoyesnoyesyes
imlacImlac PDS-1vectornoyesnonono
simh_imlacImlac PDS-1vectornoyesnonono
tv11Knight TV PDP-11cpunoyesnonono
tvconKnight TV consolerasternoyesnonono
datapointDatapoint 3300textnoyesnonono
vt52VT52textnoyesyesyesyes
tekTektronix 4010vectornoyesyesnono

Documentation

See the doc subdirectory for documentation.

There are some short introductions for beginners:

A list of known ITS machines.

How ITS is built.

Applications

Some major applications:

There is a detailed list of all installed programs.