Jean-Marc Bourguet's PDP-10 Page

The PDP-10 is a 36 bit computer build by DEC. Multiple models where build from 1967 to 1986 by DEC and for a long time after by others (in 1997 Paul Allen bought such a clone). The PDP-10 where present in the early Arpanet and Internet (the tenex mode in the man page of ftp make reference to a PDP-10 OS, ancestor of TOPS-20).

Now there are also simulators for PDP-10 and these simulators are able to run the PDP-10 OS (TOPS-10, TOPS-20, ITS) as DEC has made available a Personal License (36 bit.org, local copy) for PDP-10 software.

I've used a PDP-10 running TOPS-20 in 1986-1987 (that's the computer on which I've used emacs for the first time), and it amused me to set up a simulator (I've taken the Panda distribution). In this page, I intend to provide some starter information for using TOPS-20. To get an account on a TOPS-20 system or setup your simulator, see the external links.

All corrections, suggestions and comments are welcome. Most of the information is also present in the TOPS-20 documentation (this is on bitsavers, they are bandwidth limited but have mirrors; on the Panda distribution -- and I assume on most TOPS-20 systems --, it is also present in the <documentation> directory), but in a form which may be less understandable for people knowning Unix or less conveniently arranged. The rest comes mainly from various places accessible through the external links and a little experimentation.

TOPS-20 Documentation

I've put some html arround DEC manuals as present in <DOCUMENTATION>:

TOPS-20 User's Guide

TOPS-20 Command Reference Manual

TOPS-20 Monitor Calls User's Guide

TOPS-20 starter

It is better to use xterm as terminal emulator as in my experience it is far more compatible with VT100 that gnome or KDE terminal emulators.

The monitor is what unix call the kernel.

A structure is what unix call a file system.

A logical name is a restricted form environment variables, referencing files and directories.

The file LOGIN.CMD in your directory is executed when you log in. You'll probably want to put at least

set terminal vt100
in it so that you get a minimal command line edition.

Accounts may have privileges (operator, wheel, administrator, ...). Even if you have given you some privileges, they are disabled when you login. You have to enable them with the

enable
command. To disable them back, just issue
disable

An account is a directory which doesn't have the file-only property.

Directories have quotas. The default quotas are low by today's standards, you may want to set them to infinity. Don't forget to change both the permanent and working quota. Another quota you may want to change, is the one controlling the number of allowed subdirectories (by default, you can't create subdirectories).

Creating and modifying directories is made with the build or ^Ecreate command (^E is for CONTROL-E, yes privilegied commands in TOPS-20 have a control character in their names). I don't know what's the difference between the two (a guess: they started with ^Ecreate and added build after, when there was a need for normal users to create directories).

Using tapes to copy files from the Emulated PDP-10

When the emulator is running:

^\
KLH10> devmount mta0 commands.tap create
Mount requested: "commands.tap"
KLH10> [mta0: Tape offline]

KLH10> cont
Continuing KN10 at loc 01142476...
@copy COMMANDS.MEM.1 MTA0:
 COMMANDS.MEM.1 => MTA0:COMMANDS [OK]

Then under Linux:

$ extractTape -E -f commands.tap commands.raw
$ wfconv -ct < commands.raw > commands.txt

And you have under commands.txt a readable text file.

extractTape is part of the tapetools availble in the programs section of this site.

Using Kermit to transfer files with an emulated PDP-10

The procedures outlined here works for pure ASCII files with CR LF ending. See the TOPS-20 chapter of the Kermit manual for information about how binary files are handled.

Through the console

$ kermit
(/home/jm/) C-Kermit>set host /pty klt20
(/home/jm/) C-Kermit>connect
.
.
.
^C
 Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4

This system is for the use of authorized users only.  Usage of
this system may be monitored and recorded by system personnel.

Anyone using this system expressly consents to such monitoring
and is advised that if such monitoring reveals possible
evidence of criminal activity, system personnel may provide the
evidence from such monitoring to law enforcement officials.

@login jmb XXX
@

Note that both kermit and KLH use ^\ as escape caracter. With this procedure, it is kermit (on linux) which get a first hand at it. To send the ^\ to KLH, you have to send it twice.

Through telnet

This is working with the Panda distribution as well as with an account at PDPPlanet.

$ kermit
(/home/jm/) C-Kermit> telnet tops20 
 DNS Lookup...  Trying 192.168.1.7...  Reverse DNS Lookup... Failed.
Connecting to host tops20.maison.bourguet.org:23
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

 Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4

This system is for the use of authorized users only.  Usage of
this system may be monitored and recorded by system personnel.

Anyone using this system expressly consents to such monitoring
and is advised that if such monitoring reveals possible
evidence of criminal activity, system personnel may provide the
evidence from such monitoring to law enforcement officials.

@login jmb XXX
@

Sending a file from TOPS-20

@kermit send foo.ext

Receiving a file in TOPS-20

@kermit receive
^\c
(/home/jm/) C-Kermit>send bar.ext
(/home/jm/) C-Kermit>connect
@

External links

Here are some links on other sites with PDP-10 stuff. The list doesn't want to be complete, just to provide a good starting point for further information.

Internal links

Bob Clements posted some images about DEC and asked if someone could put them on a higher-bandwidith site. I've put them here.

Trailing Edge had a scan of some PDP related documents. They are still available on bitsavers, here is an index.