Problems in latest PiDP-11 Software?

110 views
Skip to first unread message

steve...@gmail.com

unread,
Apr 28, 2026, 3:26:22 PMApr 28
to [PiDP-11]

All,
I just updated one of my Pi-3b+ PiDP-11/70s to the latest software including 64-bit Trixie and the SIMH software now in the Github repository. I'm seeing these following issues:

1) Unix v4 does not run. During startup, the SIMH output says:

boot.ini-11> set dh en
Non-existent device
boot.ini-12> att dh 4444
Non-existent device


Doing show devices in SIMH shows that the PiDP-11 version does not include DH. Can a different device be used instead of DH? DC? DL? DZ?

2) The desktop icons for VT-52, Teletype, and Tektronix only say, for example, "Invalid desktop entry file: '/home/pi/Desktop/vt52.desktop' when clicked.

3) If the PiDP-11/70 is down (e.g., SIMH has been EXIT-ed), desktop pidp11control is clicked, and I select the start PiDP-11 option, it doesn't actually start.


-- steve

Ashlin Inwood

unread,
Apr 28, 2026, 9:54:04 PMApr 28
to [PiDP-11]
What version of simh are you using? Where did you get it?

Also, as far as I know, Unixv4 will only run on the 11/40 and 11/45. So, what CPU do you have simh set to use?
It may have been ported to the 11/70, but I have not heard of that being done yet.

Where did you get your copy of Unixv4?

I have also tried to get Simh and Unixv4 to use true UARTs, but Simh was giving me issues.

Steve Tockey

unread,
Apr 29, 2026, 3:01:39 PMApr 29
to Ashlin Inwood, [PiDP-11]

Essentially responding to everyone above (thanks):

"What version of simh are you using? Where did you get it?"

I'm using the version that's in the PiDP-11 Github repository as described in the assembly instructions:


Specifically,

cd /opt
sudo git clone https://github.com/obsolescence/pidp11
/opt/pidp11/install/install.sh


"Where did you get your copy of Unixv4?"

Same place, it's been incorporated into the current distribution per Oscar's latest newsletter.

"I think the correct device mnemonic there would be "vh"...." and "You need to use DC11s or DL11s"

I've tried, but I haven't been successful. It's clearly more than just changing the device name in the boot.ini script alone. For one, the bus address of the device CSR needs to be the same as what's hard-coded into the Unixv4 source code. I tried using the default DH11 CSR address but that didn't work. Same could be true for the interrupt vector, if it's not floating. Further, while DC11 and DL11 could be functionally equivalent to DH11, there is a need that the CSR be bit-wise identical. Any difference in CSR bit assignments would make them incompatible at the Unix device driver level.

"Also, as far as I know, Unixv4 will only run on the 11/40 and 11/45. So, what CPU do you have simh set to use?
It may have been ported to the 11/70, but I have not heard of that being done yet."

It's set to 11/70, otherwise (I think) you lose the blinkenlights. Not being the expert in the PDP-11 line, isn't the 11/70 a superset of 11/40 and 11/45? Said another way, aren't 11/40 and 11/45 proper subsets of the 11/70?

Anyway, the bottom line is that the as-released Unixv4 included in the current PiDP-11/70 software release doesn't appear to actually work as-is. If someone can figure out how to tweak the boot.ini file in a way that does make it work, it would be appreciated--particularly if the current distribution could also be updated.


Thanks again,

-- steve




--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-11/6e09583a-87f7-48d9-8341-58dd43708a6fn%40googlegroups.com.

Clem Cole

unread,
Apr 29, 2026, 5:52:53 PMApr 29
to Steve Tockey, Ashlin Inwood, [PiDP-11]
I think a lesson in DEC's Asynchronous Serial Port devices for the PDP-11 family: function and naming, then how OpenSIMH >>current<< supports them and how the line up with different versions of UNIX for a PDP-11 target might be helpful here.

Unibus
  • DC11 - https://gunkies.org/wiki/DC11_asynchronous_serial_line_interface - single-port UART, both input and output used programmed I/O (with separate receive and transmit interrupts); no buffering.
  • DL11/KL11 - https://gunkies.org/wiki/DL11_asynchronous_serial_line_interface - single port UART, came in 5 versions, -A through -E, . The DL11 has 2 device registers on the receive side (one Control and Status Register - CSR - and one data buffer register), and similarly 2 on the transmit side. Each DL11 has two interrupt vectors - again, one receive, and one transmit.  Also, remember that the KL11 is the name of the console serial port interface. It came first, and the later DL11's were made to look like it to the software.  All versions of the PDP-11 family have at least one KL11, either in the original MSI TTL implementation, in the later DL11 replacement, or in the on-die version of the final LSI-based chip PDP-11.
  • DH11/DM11 -  https://gunkies.org/wiki/DH11_asynchronous_serial_line_interface. 16 separate UARTs, Output used DMA (with each line having its own buffer pointer and count); on input, a 64-character FIFO buffer in an attempt to make overruns unlikely.
    • DM11 - https://gunkies.org/wiki/DM11-BB_Modem_Control_Optionpaired with DH11 to allow its 16 ports to be connected to modems. It could be set to interrupt the CPU when a modem control line (Ring, Carrier, etc) changed state.  For each DH11, you need an optional DM11 to support the traditional EIA RS-232C wires that connect to a modem.
  • DZ11 - https://gunkies.org/wiki/DZ11_asynchronous_serial_line_interface - 8-port serial line card, using programmed I/O.  A 64-slot, shared input FIFO, and EIA RS-232C were supported for modem control.
  • DHU11 - https://gunkies.org/wiki/DHU11_asynchronous_serial_line_interface - 16-port replacement product for the DH11/DM11 combo. It is not exactly identical to the DH11 programmatically, but it has the same basic capabilities and some enhancements, such as a 256-slot input FIFO and combining all modem control functions into a single device.

QBus
Date of Introduction:
  • KL11 - 1970
  • DL11 - 1971 [program compatible]
  • DC11 - 1971
  • DH11 - 1972
  • DLV11 - 1975
  • DZ11 - 1977
  • DZV11 - 1978
  • DHV11 - 1983
  • DHU11 - 1984
  • DHQ11- 1987

OpenSIMH:
  • DCI/DCO - in simh: help dci  - PDP-11 simulator supports up to sixteen additional DC11 terminal interfaces.  The additional terminals consist of two independent devices, DCI and DCO.  The entire set is modeled as a terminal multiplexer, with DCI as the master controller.  The additional terminals perform input and output through Telnet sessions connected to a user-specified port.  The number of lines is specified with a SET command.
  • DLI/DLO - in simh: help dl - The DLI/DLO implements up to 16 KL11/DL11 terminal lines. The default number of lines is 16.
  • VH - simh: help vh - (Unibus CPUS) -- The DHU11 is a 16-line terminal multiplexer for Unibus systems.  Up to 4 DHU11's are supported.
    • (Qbus CPUS) DHQ11 Terminal Multiplexer (VH) - The DHQ11 is a programmable asynchronous terminal multiplexer.  It has two programming modes: DHV11 and DHU11.  By default, the DHV11 mode is selected, though the DHU11 mode is recommended for applications that can support it.  The VH controller may be adjusted on a per-controller basis as follows:
         sim> SET VHn DHU               use the DHU programming mode
         sim> SET VHn DHV               use the DHV programming mode
  • DZ - simh: help DZ - (Unibus CPUs)  The DZ11 is a 8 line terminal multiplexor.  Up to 32 DZ11's (256 lines) are supported. (Qbus CPUS) The DZV11 is a 4 line terminal multiplexor.  Up to 32 DZV11's (128 lines) are supported.
  • DH - simh: help DH - DH-11, asynchronous serial line interface.  This is a very recent addition and the DM11 is not emulated.   With early UNIX you will need to configure Ken Thompson's fake dm11 code when you build your kernel, as the UNIX DH11 drivers assume that a DM11 is present [they were The Phone Company.  So of course you attached modems to the serial ports].

Research UNIX Releases and dates:

PDP-7 Era
  • Version 0 (1969): The initial "primitive" version written by Ken Thompson in assembly language.

PDP-11 Era
  • 1st Edition (Nov 3, 1971): The first version to run on the PDP-11 (specifically the 11/20), introducing the hierarchical file system and fork().
  • 2nd Edition (Jun 12, 1972): Added the first C compiler and reached a total of 10 installations.
  • 3rd Edition (Feb 1973): Introduced pipes and divided commands between /bin and /usr/bin.
  • 4th Edition (Nov 1973): The first version with a kernel rewritten in C, making the system truly portable.
  • 5th Edition (Jun 1974): Licensed to educational institutions; introduced the sticky bit and find.
  • 6th Edition (May 1975): The first version widely available outside Bell Labs and the basis for the first BSD versions.
  • 7th Edition (Jan 1979): The last version to see widespread external distribution; introduced the Bourne shell, awk, and make.

VAX Era (and Late Research)
  • UNIX/32V (1978): A direct 32-bit port of the 7th Edition to the DEC VAX-11/780.
  • 8th Edition (Feb 1985): Incorporated 4.1cBSD features like sockets and Berkeley DB; used internally at Bell Labs.
  • 9th Edition (Sep 1986): Incorporated 4.3BSD code and featured a generalized version of Streams IPC.
  • 10th Edition (Oct 1989): The final Research Unix; introduced tools that became part of Plan 9, such as the rc shell.


Berkeley Software Distributions for the PDP-11 and dates:

BSD
  • BSD (March 1978) The Berkeley (UNIX) Software Distribution from the EECS Department's Industrial Liaison's Office (we call this 1BSD make things clear here, but its reall name is BSD)
Early 2BSD Releases
  • 2BSD (May 1979): The initial release of the "Second Distribution," primarily a set of software add-ons (like vi and csh) for Version 6 or 7 Unix rather than a standalone operating system.
  • 2.8BSD (July 1981): This version included the first significant kernel modifications for the PDP-11. A maintenance update, 2.8.1BSD, followed in 1982 with performance fixes for Version 7 Unix.

Later 2BSD (Full Operating Systems)
  • 2.9BSD (1983): The first 2BSD release to function as a complete operating system (a modified Version 7 Unix). It incorporated code from the VAX-based 4.1cBSD, including a TCP/IP stack.
  • 2.10BSD (July 1987): A significant update that brought much of 4.3BSD's functionality back to the PDP-11.
  • 2.10.1BSD (January 1989): A refinement of 2.10BSD that introduced networking improvements.
  • 2.11BSD (March 14, 1991): The final major Berkeley distribution for the 16-bit architecture. It was based on 4.3BSD and required "split Instruction and Data" (I&D) space to run.

Ongoing Maintenance (2.11BSD Steven Shutlz leads, but it is still maintained by volunteers such as myself)
  • Patch 431 (April 2000): A long-term stable snapshot often used for modern retro-computing projects.
  • Patch 499 (January 14, 2026): Maintenance continues to this day with new fixes and updates

Implications when running a simulator and historic software, such as the different UNIX versions:
  1. Early to mid-70s Unibus-based PDP-11 provided a KL11, and then N DC11s, then later DL11s and DH11s. 
  2. Early Qbus (a.k.a. LSI 11/03,4,5) all used a DLV11 for their consoles and could not support a terminal mux until the DZV11 
  3. When running a simulation, you need to match the hardware that DEC supported at the time with the hardware the UNIX implementation knows about.
    • A "stock" Research Unix, such as V3 - V6, can not simulate on anything but a unibus machine, and not all of them are supported, and the serial controllers are limited to the KL/DL, the DC, and the DH [and must have Ken's DM11 fakeout dm linked into the kernel]
    • So if you try to run something like a stock V4 or V5 with an emulated PDP-11/70, but with OpenSIMH support for VH or DZ enabled, Simh will gladly enable them, but the kernel will not see those devices.
    • Similarly, since the OpenSIMH support for the DH11 is now in the current versions (albeit without the matching DM11 support), if you try to configure a DH on an earlier version of SIMH (such as Oscar's original version), simh will give you an error.
    • Or if you take a real distribution tape for V7, the DZ is not supported.   That said, a dz.c driver for V7 is easily made available, and most SIMH kits include it
    • The DHU, DHQ, and DHV devices are very late in UNIX's life cycle.   Drivers for them were donated back to the 2BSD folks, and certainly, by "modern" 2.11BSD kits, you will find support.
    • The same is true for the CPUs.   The core research editions listed above were never run on QBUS-based PDP-11 CPUs, and while they are mostly compatible, there are often very small differences that will be exposed.  i.e., if you take a 'stock' V7 tape, while it works fine on any early Unibus or Massbus-based system, if you try it on something like a Simh emulation of an 11/83 or 11/92, don't expect it to work

Hopefully, this will help people a little.
Best wishes,
Clem


oscarv

unread,
Apr 29, 2026, 9:38:27 PMApr 29
to [PiDP-11]
Steve,

Huh! That is worrying. I will look into this tomorrow, it is too late at night right now.

Kind regards, and thanks for reporting!

Oscar.

Reply all
Reply to author
Forward
0 new messages