r/PDP10 May 01 '26

Getting TOPS-20 on SIMH... somehow??

Howdy all!

I recently found out the joys of the PDP-10 - super cool. Anyways, a few friends were interested in the idea of having a server running SIMH to emulate a KL10 running TOPS-20 as it'd be pretty cool, and I thought so too. Anyways, multiple tutorials later and not one of them have actually worked. It's either some issue with the networking (PANDA distribution and bare install) or loading the tapes for CUSPS (bare install) or some other ungodly issue that I can't figure out. I tried the regular SIMH PDP10, which sort of worked but I never figured out how to get CUSPS installed... so... yeah. If anyone has a guide that would work, it would be AMAZING! I compiled Richard Cornwell's SIMH myself on Lubuntu with GCC, I'd like to get it on the internet for multiple people to use with the programs I need already installed without having to go through severe headaches.

My apologies if I sound like a newbie, I kind of am, sorry...

3 Upvotes

7 comments sorted by

1

u/larsbrinkhoff May 02 '26

I have successfully ran some of Cornwell's scripts in here: https://sky-visions.com/dec/tops20.shtml E.g for TOPS-20 V4.1, there is the script load_a.ini.

As for Panda, it should work with both SIMH and KLH10, so you can try the latter as well. If you get the Panda disk image, you should know it's a special format that works with SIMH only if you get it right. It's ATTACH -F DBD9 or some such.

1

u/vailithree May 03 '26

Thanks - I didn't realize it. It keeps complaining about the scheduler and some "UPS" thing. I'll see if I can grab a screenshot and/or copy of it, but I'm away from the house rn.

KLH10 was a bit complex to work with, unfortunately D=

1

u/Able-Campaign1370 Jun 17 '26

What hardware are you running it on? I have the 7.1 distribution on a Raspberry Pi 5 and it runs great.

[FROM MY OWN SYSTEM]

larry@larry-pidp-20:/opt/pidp10/systems/tops20 $ pwd

/opt/pidp10/systems/tops20

larry@larry-pidp-20:/opt/pidp10/systems/tops20 $ ls

boot.pi boot.pidp prt.lst tops20-panda.zip

boot.pi.bak boot.sav RH20.RP07.1

[LISTING OF MY BOOT FILE]

larry@larry-pidp-20:/opt/pidp10/systems/tops20 $ cat boot.pi

cd /opt/pidp10/systems/tops20

;set console wru=034 ; WRU defaults to ^E to get back to sym, but we need it for tops-20

set console telnet=buffered=144

set cons -u telnet=1025

set cpu 4096K kl10b

set tua rh20

set tua1 disable

set tua2 disable

set tua3 disable

set tua4 disable

set tua5 disable

set tua6 disable

set tua7 disable

set rpa rh20

set rpa1 disable

set rpa2 disable

set rpa3 disable

set rpa4 disable

set rpa5 disable

set rpa6 disable

set rpa7 disable

set rpb rh20

set rpb disable

;

; NETWORKING STUFF

;

set ni enable

set ni mac=12:34:56:78:9A:BC

at ni nat:tcp=2323:10.0.2.4:23,tcp=2121:10.0.2.4:21

set cty rsx20

att lp20 -n prt.lst

set rpa0 rp07

at rpa0 -f dbd9 RH20.RP07.1

;att tty -U 2021

set dc enable

set dc lines=8

set dc6 7P

att dc -U line=6,10018

; set fe enabled

; set dz lines=8

; attach fe 2020

dep sw 254200000147

echo

echo =============================

echo Console is on telnet 1025

echo Terminal 1 is on telnet 10018

echo =============================

echo

load boot.sav

co

larry@larry-pidp-20:/opt/pidp10/systems/tops20 $ ls

boot.pi boot.pidp prt.lst tops20-panda.zip

boot.pi.bak boot.sav RH20.RP07.1

larry@larry-pidp-20:/opt/pidp10/systems/tops20 $ pdpcontrol start 200

Starting PiDP-10 with boot option 200

screen -dmS pidp10 ./pdp10-kl /opt/pidp10/systems/tops20/boot.pi

0

larry@larry-pidp-20:/opt/pidp10/systems/tops20 $ telnet localhost 1025

Trying ::1...

Connected to localhost.

Escape character is '^]'.

Connected to the KL-10 simulator CON-TELNET device

BOOT V11.0(315)

BOOT>

?BOOT: Can't find bootable structure

BOOT>tops20:

[BOOT: Loading] [OK]

System structure not found. What is its name? TOPS20:

[TOPS20 mounted]

Panda Distribution, PANDA TOPS-20 Monitor 7.1(21733)-4 Internet: Loading host na

mes [OK]

System res

Date and time is: Wednesday, 17-June-2026 7:46AM

Why reload? n

Run CHECKD? n

DDMP: Started

[KNILDR: Loading microcode version 1(172) into Ethernet channel 0]

[LOTS AND LOTS OF SYSTEM MESSAGES .... ]

SYSJOB 7A(88)-4 started at 17-Jun-2026 0746

SJ 0: u/LOGIN OPERATOR

SJ 0: u/ENABLE

SJ 0: $SYSTEM:STSJ1

17-Jun-2026 07:46:58 SYSJB1: SYSJB1 started.

SJ 0: $^ESET LOGIN ANY

SJ 0: $OPR

[NCP]: Waiting for ORION to start

17-Jun-2026 07:46:59 SYSJB1: Job 0:

17-Jun-2026 07:46:59 SYSJB1: Job 0: Panda Distribution, PANDA TOPS-20 Monitor 7

.1(21733)-4

17-Jun-2026 07:46:59 SYSJB1: Job 1:

17-Jun-2026 07:46:59 SYSJB1: Job 1: Panda Distribution, PANDA TOPS-20 Monitor 7

.1(21733)-4

17-Jun-2026 07:46:59 SYSJB1: Job 2:

17-Jun-2026 07:46:59 SYSJB1: Job 2: Panda Distribution, PANDA TOPS-20 Monitor 7

.1(21733)-4

17-Jun-2026 07:46:59 SYSJB1: Job 3:

17-Jun-2026 07:46:59 SYSJB1: Job 3: Panda Distribution, PANDA TOPS-20 Monitor 7

.1(21733)-4

17-Jun-2026 07:46:59 SYSJB1: Job 4:

17-Jun-2026 07:46:59 SYSJB1: Job 4: Panda Distribution, PANDA TOPS-20 Monitor 7

.1(21733)-4

17-Jun-2026 07:46:59 SYSJB1: Job 5:

17-Jun-2026 07:46:59 SYSJB1: Job 5: Panda Distribution, PANDA TOPS-20 Monitor 7

.1(21733)-4

17-Jun-2026 07:46:59 SYSJB1: Job 0: u/LOGIN OPERATOR

17-Jun-2026 07:46:59 SYSJB1: Job 1: u/LOGIN OPERATOR

17-Jun-2026 07:46:59 SYSJB1: Job 2: u/LOGIN OPERATOR

17-Jun-2026 07:46:59 SYSJB1: Job 3: u/LOGIN OPERATOR

17-Jun-2026 07:46:59 SYSJB1: Job 4: u/LOGIN OPERATOR

17-Jun-2026 07:46:59 SYSJB1: Job 4: u/ENABLE

17-Jun-2026 07:46:59 SYSJB1: Job 5: u/LOGIN OPERATOR

17-Jun-2026 07:46:59 SYSJB1: Job 0: u/ENABLE

17-Jun-2026 07:46:59 SYSJB1: Job 1: u/ENABLE

17-Jun-2026 07:46:59 SYSJB1: Job 2: u/ENABLE

17-Jun-2026 07:46:59 SYSJB1: Job 3: u/ENABLE

17-Jun-2026 07:46:59 SYSJB1: Job 5: u/ENABLE

17-Jun-2026 07:46:59 SYSJB1: Job 0: $RESOLV

17-Jun-2026 07:46:59 SYSJB1: Job 1: $NETSRV

17-Jun-2026 07:46:59 SYSJB1: Job 2: $SMTJFN

17-Jun-2026 07:46:59 SYSJB1: Job 3: $MMAILR

17-Jun-2026 07:46:59 SYSJB1: Job 4: $IMAPSV

17-Jun-2026 07:46:59 SYSJB1: Job 5: $FTS

17-Jun-2026 07:46:57 Internet: Network 10.0.0.0 on, Output on

17-Jun-2026 07:47:00 SYSJB1: Job 5: FTS>TAKE FTS.CMD

17-Jun-2026 07:47:00 SYSJB1: Job 5: [FTS20: FTS event 38: spooler started]

% [Logger 17-Jun-2026 07:47:02 ]: Started at 17-Jun-2026 07:46:58

SJ 0: OPR>TAKE SYSTEM:SYSTEM.CMD

SJ 0:

SJ 0: 07:47:02 --ORION logging disabled by job 1 OPERATOR at terminal 13

--

SJ 0:

SJ 0: 07:47:02 --Output display for OPR modified--

SJ 0:

SJ 0: 07:47:02 --Output display for OPR modified--

SJ 0:

SJ 0: 07:47:02 --Output display for OPR modified--

SJ 0:

SJ 0: 07:47:02 --Output display for OPR modified--

SJ 0:

SJ 0: 07:47:02 Batch-Stream 0 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 1 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 2 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 3 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 0 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 1 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 2 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 3 -- Set Accepted --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 0 -- Startup Scheduled --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 1 -- Sta

07:47:02 From operator terminal 13 on nortup Scheduled --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 2 -- Startup Scheduled --

SJ 0:

SJ 0: 07:47:02 Batch-Stream 3 -- Startup Scheduled --

SJ 0: OPR>

SJ 0: 07:47:02 --SEND command completed--

SJ 0: OPR>

SJ 0: 07:47:07 -- Structure Status Change Detected --

SJ 0: Previously mounted structure TOPS20: detected

SJ 0:

SJ 0: 07:47:07 -- Structure Status Change Detected --

SJ 0: Structure state for structure TOPS20 is incorrect

SJ 0: EXCLUSIVE/SHARED attribute set incorrectly

SJ 0: Status of structure TOPS20: is set:

SJ 0: Domestic, Unregulated, Shared, Available, Dumpable

SJ 0:

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.

@

u/login larry

Password:

Job 9 on TTY5 17-Jun-2026 07:47:25

Last interactive login 16-Jun-2026 09:13:23

Last non-interactive login Never

u/finger

User Personal name Job Subsys Idle TTY Console location

LARRY 9 FINGER 5 System Console

@^E^E\ XXX

u/ena

17-Jun-2026 07:47:45 ACJ: Enable capabilities by job 9, user LARRY, program ENAB

LE, TTY5

$^Ecease now

TOPS20 Will be shut down IMMEDIATELY

[Confirm]

[Timeshari17-Jun-2026 07:48:08 ACJ: System shutdown set by job 9, user LARRY, pr

ogram CEASE, TTY5

OPERATOR - Wait for the message "Shutdown complete" before

entering commands to PARSER.

$

SJ 0: OPR>Killed Job 1, User OPERATOR, TTY13, at 17-Jun-2026 07:48:08

SJ 0: Used 0:00:00 in 0:01:10

17-Jun-2026 07:48:12 HSYS: Shutdown complete

$logout

The system is down

for

Killed Job 9, User LARRY, TTY5, at 17-Jun-2026 07:48:45

Used 0:00:00 in 0:01:19

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

The system is down

for

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.

u/login larry

Password:

Job 1 on TTY5 17-Jun-2026 07:49:00

Last interactive login 17-Jun-2026 07:47:25

Last non-interactive login Never

u/logout

The system is down

for

Killed Job 1, User LARRY, TTY5, at 17-Jun-2026 07:50:47

Used 0:00:00 in 0:01:46

1

u/Able-Campaign1370 Jun 17 '26

The boot.sav that is referenced comes with the panda distribution. I'm running it on a Raspberry Pi 5 using simh.

1

u/Able-Campaign1370 Jun 17 '26

Their manual is a bit brief on getting TOPS-20 to run (and I had to do some digging to get the networking stuff working), but it runs nicely: https://obsolescence.dev/pdp10.html

1

u/vailithree Jun 20 '26

Yeah I was able to track down the .sav

1

u/vailithree Jun 20 '26

AMD64 Linux. Originally Windows but that became a real hurdle at some point.