sim-11 - A PDP-11 simulator

A simulator replicating the behaviour of PDP-11 hardware as faithfully as possible

The PDP-11

The PDP-11 was a series of computers introduced in 1970 by Digital Equipment Corporation. At a time when computers were still large, expensive machines, used mainly by big organizations, the PDP-11 made computing more accessible to universities, laboratories, and smaller businesses.

What made the PDP-11 special was its elegant and practical design. It used a 16-bit architecture, which was powerful for its time, and had a very clean and flexible instruction set—essentially the “language” the computer understands.

The PDP-11 was a series of computers introduced in 1970 by Digital Equipment Corporation. At a time when computers were still large, expensive machines, used mainly by big organizations, the PDP-11 made computing more accessible to universities, laboratories, and smaller businesses.

What made the PDP-11 special was its elegant and practical design. It used a 16-bit architecture, which was powerful for its time, and had a very clean and flexible instruction set—essentially the “language” the computer understands. This made it easier for programmers to write software and for engineers to design hardware around it.

The PDP-11 was also highly modular. You could build a system with just the components you needed, such as processors, memory, and disk drives, all connected via a shared communication system called the Unibus or the later Qbus. This flexibility helped it become widely used in many different environments, from scientific research to industrial control systems.

Perhaps its biggest legacy is its influence on modern computing. The PDP-11 inspired the design of later computers and even programming languages like C, as well as early versions of the Unix operating system.

In short, the PDP-11 was not just a successful computer—it helped shape the way computers are designed and programmed today.

sim-11

sim-11 is a simulator designed to replicate the behaviour of a PDP-11 as faithfully and realistically as possible, including buttons and indicators. This means that the simulator must be operated in exactly the same way as a real system.

sim-11 is a simulator designed to replicate the behaviour of a PDP-11 as faithfully and realistically as possible, including buttons and indicators. This means that the simulator must be operated in exactly the same way as a real system. For the system to operate the correct buttons must be pressed and the correct commands must be entered on the terminal. The simulator contains the original boot ROMs, allowing it to operate in the same way as an original PDP-11.

The later PDP-11 models featured a built-in ODT for accessing and modifying memory and registers and starting and stopping the processor. The sim-11 PDP-11/03, 11/23(+) and 11/24 simulators also provide this functionality. Finally, sim-11 attempts to simulate the hardware as faithfully as possible so that the original diagnostics also function.

The simulator currently supports the 11/03, 11/20, 11/23, 11/23+ and 11/24 models with RL01/RL02 and RK05 disks. More models and devices are in development. The simulators run in a regular web browser and can be launched with a single click. Each simulator has a precisely defined configuration and includes instructions on how to use it. Try it for yourself by clicking on one of the simulator links.

Give it a go!

Try for yourself to boot a vintage PDP-11 system! This website provides a number of pre-configured, simulated PDP-11 systems which can be run by a click on one of the "Start simulator" buttons

Try for yourself to boot a vintage PDP-11 system! This website provides a number of pre-configured, simulated PDP-11 systems which can be run by a click on one of the "Start simulator" buttons on this page.

sim-11 can also be run as a native Windows or Linux application. These native versions can be fully configured using the supported modules and devices. All relevant settings, such as bus address, vector, power-up mode, and console response are configurable. See the provided configuration files for a description of supported devices and options.

As the systems are freely configurable this also implies that it is possible to compose a non-functional system! Some knowledge of PDP-11 hardware and settings is required to create a working system. Both Qbus (11/03, 11/23(+)) and Unibus systems (11/20, 11/24) are available. The Qbus systems support RL01/02 disks, the Unibus systems support RK05 disks.

The application can be downloaded from https://github.com/friesga/sim-11

Running a simulator

When you start a simulator, a page with three windows opens. The window at the left shows the front of the machine, the window at the top right provides a description of the machine and the

When you start a simulator, a page with three windows opens. The window at the left shows the front of the machine, the window at the top right provides a description of the machine and the window at the bottom right is the terminal. Now, initially the machine seems dead but don't worry, that is as expected. Remember, the simulator emulates the hardware as faithfully as possible so the first thing you have to do is power it up.

To boot the system you'll also have to spin op the boot drive. This takes some time and you'll have to wait for the READY light to come on before you are able to use the drive. Instructions on how to boot the system are provided in the description window. If you have any questions or run into any issues, please let me know!

Diagnostics

As part of the mission to reproduce the actual functional behaviour of a system, sim-11 also has to execute the original diagnostic software (XXDP) that was used to verify the correct functioning of new or faulty PDP-11 machines. A fault-free execution of these diagnostics is not trivial as e.g. it often depends on the execution speed of instructions and timing of devices. To this end sim-11 maintains an internal simulator clock, based on the actual instruction timing.

As part of the mission to reproduce the actual functional behaviour of a system, sim-11 also has to execute the original diagnostic software (XXDP) that was used to verify the correct functioning of new or faulty PDP-11 machines. A fault-free execution of these diagnostics is not trivial as e.g. it often depends on the execution speed of instructions and timing of devices. To this end sim-11 maintains an internal simulator clock, based on the actual instruction timing. This ensures that timing loops are executed according to diagnostic recuirements.

As en example, the RL01 drive of the 11/03 simulator is loaded with an original XXDP pack with diagnostics for the system. The tab "Diagnostics" in the description window lists the applicable diagnostics for that system.

PDP-11/20 running DOS/BATCH

The PDP-11/20 was the first PDP-11 system, introduced in June 1970. The 11/20 essentially was a 16-bit system. This simulator is running the DOS/BATCH operating system. DOS/BATCH is a single-user job-based operating system introduced in 1970 together with the PDP-11/20.

Start simulator

ODT on a PDP-11/03

The PDP-11/03 was introduced in 1975 and was the first system using the QBus. The 11/03 was first known as the LSI-11 (Large Scale Integration) and was DEC's first microprocessor based PDP-11.

The 11/03 includes an extensive built-in ODT (Octal Debugging Technique) which replaces replaces the front panel console of earlier models. ODT provides users with an interface for examining and modifying memory and registers, as well as controlling the execution of the processor.

Start simulator

Octal notation

The PDP-11 used octal notation (base-8) as its natural way of representing addresses and data. This choice was not arbitrary: the machine is fundamentally built around 16-bit words

The PDP-11 used octal notation (base-8) as its natural way of representing addresses and data. This choice was not arbitrary: the machine is fundamentally built around 16-bit words, and octal aligns neatly with that structure. Each octal digit represents exactly three binary bits, so a 16-bit value fits conveniently into six octal digits (since 6 × 3 = 18 bits, with the top two bits unused or zero). This makes octal far more readable than raw binary, while still mapping cleanly onto the hardware.

In octal, the digits run from 0 to 7. Counting proceeds as follows: after 7 comes 10 (which equals decimal 8), then 11, 12, and so on. For example, the octal value 177777 corresponds to the maximum 16-bit value (all bits set), while 000000 represents zero. Addresses and data are typically written with leading zeros to maintain a fixed width, which helps when reading memory dumps or registers.

On a PDP-11 console — such as the front panel of early models or in terminal-based ODT (Octal Debugging Technique) — users interact directly in octal. When examining or depositing memory, you enter values like:
● @001000 to reference an address
● 123456 as a data word

The console expects all numeric input in octal unless explicitly documented otherwise. This means that entering “10” does not mean decimal ten, but octal ten (decimal eight). Mistakes here can easily lead to confusion, especially when interpreting addresses or instruction opcodes.

Understanding octal is therefore essential when working with the PDP-11: it is not just a display convention, but a direct reflection of how the machine’s binary architecture is organized and operated.

Licensing issues

The use of operating systems for the PDP-11, such as RSX-11M and RSTS, required a license from Digital Equipment Corporation (DEC). In 1994 DEC sold the licence rights (upto certain versions)

The use of operating systems for the PDP-11, such as RSX-11M and RSTS, required a license from Digital Equipment Corporation (DEC). In 1994 DEC sold the licence rights (upto certain versions) of RSX-11M and RSTS to Mentec. (see en.wikipedia.org/wiki/Mentec). That company went bankrupt, with the licence rights passing into the hands of a company called XX2247 LLC. That company has since gone bankrupt as well, leaving it unclear who currently holds those licence rights.

Meanwhile, DEC was acquired by Compaq, which in turn was acquired by HP, after which that company was split into HP Inc and Hewlett Packard Enterprise, leaving it once again unclear where the licence rights for the newer versions have ended up.

The current situation regarding the formal acquisition of licences is therefore extremely unclear. Although the formal status of licences for the use of operating systems such as RSX-11M and RSTS has not been settled, it's unikely that any company or individual would be concerned about the unauthorised use of software that is no longer used commercially. Today the software is solely of interest to hobbyists and historians interested in the functionality and architecture of the software. However, should any company or individual believe that the use of RSX-11M on this site constitutes a violation of his or her rights, please make yourself known. This could clarify the licensing situation for not just this site, but for all hobbyists using PDP-11 operating systems.

Contact

Issues, remarks and compliments are welcomed! Although great care has been taken to provide an as accurate as possible simulator, there is always the possibility that issues may arise

Issues, remarks and compliments are welcomed! Although great care has been taken to provide an as accurate as possible simulator, there is always the possibility that issues may arise; after all, the simulator is a complex software system consisting of tens of thousands lines of code. Please report issues via the sim-11 GitHub repository github.com/friesga/sim-11.

I would also be interested in hearing about any differences between the behaviour of the original hardware and that of the simulator. I can be contacted via e-mail at ln.liamnpk.liam.@seirf.soj

RSX-11M SYSGEN on a 11/23

This PDP-11/23 is equiped with dual RL01 disk drives on which two RSX11-M V3.2 distribution packs are mounted. The distribution kit includes a SYSGEN utility that allows users to create a custom RSX-11M system tailored to the specific hardware configuration and requirements.

Try to perform a SYSGEN and get a working RSX-11M system up and running! This requires a good understanding of PDP-11 hardware and the RSX-11M operating system.

Start simulator

Credits

Many thanks to Henk Gooijen for the use of photo's of his awesome PDP-11 collection (see pdp-11.nl) on this site and the opportunity to assess the exact behaviour of MicroODT as implemented on the PDP-11/03.

Behind sim-11

For some years now I've been working on sim-11, as an alternative to other open source and commercial PDP-11 simulators. The simulator runs on multiple platforms: Windows and Linux and as of recently also in a webbrowser.

In the seventies I learned programming in C and assembler (MACRO-11) on PDP-11 systems. In my first job as a systems programmer I wrote drivers and other systems software for RSX11-M and got a deeper understanding of the PDP-11 architecture.

For some years now I've been working on sim-11, as an alternative to other open source and commercial PDP-11 simulators. The simulator runs on multiple platforms: Windows and Linux and as of recently also in a webbrowser.

In the seventies I learned programming in C and assembler (MACRO-11) on PDP-11 systems. In my first job as a systems programmer I wrote drivers and other systems software for RSX11-M and got a deeper understanding of the PDP-11 architecture. I became familiar with its console and used it regularly to boot systems and debug code. I loved the machine and got a bit disappointed when the VAX with its CISC architecture was introduced. I moved on to perform systems programming on Unix systems and from there proceeded to other jobs and different roles in information technology, but I always kept a fond memory of my time working with PDP-11 systems.

Some years back my interest in the PDP-11 revived when I learned about the PiDP-11 and the simh project. I became familiar with the openSimh project and tried to contribute but came to the conclusion that my goals were not inline with those of that (really great) project. So I decided to develop my own PDP-11 simulator instead.

I see myself as a professional software developer, wanting to write software in a modern programming language (C++), using a domain driven architecture. I take pride in writing clean and understandable code.

My motivation for writing sim-11 is twofold: I want to be proficient as software developer and I'm fascinated by the idea of having my own virtual PDP-11 system on a desktop, with an emphasis on realism and technical accuracy. And I have to admit: a bit of nostalgia is in the mix too.

I hope this project will keep the memory of the great PDP-11 systems alive and will aid in a better understanding of computer history.

Jos Fries