This is a modified version of a PDP11/40 emulation at https://github.com/Isysxp/PDP11-on-the-M5-Core
This app requires an ESP32 processor with at least 8Mb of PSRAM.
The current build is targeted for the ESP32S3 Dev Module clones eg: ESP32 S3 DevKitC 1 ESP32 S3 WROOM1 N16R8 Development Board.
This provides a complete PDP11/24 (22 bit adressing + FPU) with an OS on a quite a small module.
Ultrix 3.1 is quite a sizeable OS to cram onto a single RL02. However, most of the commons apps are installed including vi, c and F77.
The build enviroment is for the current Arduino IDE V 2.3.1 or the VisualMicro plugin for Visual Studio.
The critical libraries required are:
ESPTelnetStream (https://github.com/LennartHennigs/ESPTelnet)
and Espressif Arduino-esp32 (https://github.com/espressif/arduino-esp32) V 2.0.17.
Disk images: I have included a 'reasonably' complete build of Ultrix 3.1 on an emulated RL02 drive in the data directory.
This can be loaded into the Flash File System as a FAT image. The upload tool can be found
in either Arduino IDE 1.8 or via the VisualMicro plugin for Visual Studio and by default uploads the contents of the data directory as above.
You will probably need to find and install the mkfatfs untility see: https://github.com/labplus-cn/mkfatfs/releases.
The app provides 1 telnet stream linked to a DL11 serial port mapped at 2 Unibus addresses: 0775610 and 0776500 Vector:0300.
This has been sysgened into the Ultrix kernel as a remote TTY.
(Do not try to use both at once!)
Change the SSID and Password in ESP_Telnet.cpp to match your router.
The root login does not need a password. There is a user account niss1 PW:dodk5133 ... contains example programmes.
Ian Schofield April 2024
Note: Select ESP32 Dev Module with config:
CDC on boot: disabled
Flash size: 16Mb
PSRAM: OPI PSRAM
USB mode: Hardware CDC and JTAG
Upload mode: UART0
Partition scheme: 16M flash (2MB app / 12.5MB FATFS)
Please use ESP-IDF release 3.1.3. In addition, you will need to change the c standard in C:\Users\\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.3\platform.txt
from -std=gnu++11 to -std=gnu++17 to allow for template objects.
NB: Change the SSID and Password in ESP_Telnet.cpp to match your router.
NNNNNB: I strongly suggest you read up about Ultrix 3.1. This was the last of the none split I/D PDP11 operating systems.
Also, you will need to solder a bridge on the top of the board marked 'RGB' then when the blue LED flashes you can rest assured that your flash is being trashed!!!!
Ian Schofield March 2025