Yet another PDP-11 simulator?
Posted: 21 Aug 2026, 14:33

Yet another PDP-11 simulator?
My renewed interest in the PDP-11 – I worked extensively with PDP-11 systems as a systems programmer in the 1970s and 1980's – was sparked by the PiDP-11, a replica of a PDP-11/70 console. I would love to own and operate a real PDP-11 but buying and maintaining such a system was (and is) beyond my reach. Instead, I aimed to obtain a simulator that would give me the feeling of owning my own PDP-11, without requiring a substantial investment in expensive and increasingly scarce hardware. By purchasing a PiPDP-11, I might be able to achieve that goal. I bought a kit and assembled it, only to find that the console did not function like a real one. For instance, the PiDP-11 could not be booted by loading an address and then starting the CPU. One of the reasons for this was the lack of original bootROM code in simh, the PDP-11 simulator with which the PiDP-11 is equipped.
To achieve my goal of being able to operate a ‘real’ PDP-11, I joined the simh project and added the missing functionality to the simulator. Gradually however, I had to conclude that this was an impractical way to achieve my goal. To begin with, my goal and that of simh – or OpenSimh, as the open-source version is now called – were not aligned. OpenSimh’s aim is “merely” to run the original PDP-11 software, but this does not include, for example, the user interface, the boot ROMs or the ability to run the original PDP-11 diagnostics. On top of that, I had my doubts about the code quality of OpenSimh and was not enthusiastic about the culture within the project. OpenSimh is written in C, and my suggestion to include C++ code was, shall we say, not received with enthusiasm, whilst one of my secondary objectives was – and remains – to keep my software engineering knowledge up to date and expand it, whilst writing high-quality code.
I looked for alternative PDP-11 simulators that met my requirements and preferences: a complete simulation of all PDP-11 models, including the behaviour of the front panels, open source and written in C or, preferably, C++. It turned out that no such simulator existed, but during that search I came across lsi-11, a PDP-11/03 simulator written in C, but in object-oriented style. I was surprised to find that it was possible to write a simulator with relatively so few lines of code. The design appealed to me; for example, there was a basic implementation of ODT, so that you felt as though you were sitting at the terminal of a real LSI-11. That was exactly the experience I was looking for! That was the moment I decided to start developing sim-11.
I decided – and the licence allowed for this – to use this simulator as a model for my own. At first, I rewrote the code in C++, but gradually I replaced all the original code and rewrote the ODT implementation to create an accurate as possible version. I expanded the simulator with new devices, different CPU's and a Memory Management Unit, along with everything else needed to simulate a complete PDP-11 system, and that is how sim-11 came into being.
Initially, I developed the simulator for use on Windows and Linux, but building and installing sim-11 on those systems proved to be a difficult hurdle for potential users of a simulator. To make it easier to use, I explored the possibility of building sim-11 as a WebAssembly so that it could be run in a browser. As I only use SDL2 for the user interface, this proved to be fairly straightforward. Then I built sim-11.net around this, making the simulator much more accessible and, hopefully, allowing me to share my fascination with the PDP-11 with other users.