Skip to content

aap/pdp11

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
November 22, 2022 19:30
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
January 24, 2019 13:26
August 19, 2022 15:15
January 24, 2019 13:57
August 19, 2022 15:15
August 20, 2019 21:17
August 19, 2022 15:15
March 31, 2020 14:49
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
August 19, 2022 15:15
February 26, 2023 19:08
February 26, 2023 19:08
February 26, 2023 19:08
February 26, 2023 19:08
February 26, 2023 19:08
January 24, 2019 13:57
August 19, 2022 15:15
August 19, 2022 15:15

This repo contains the source code for my PDP-11 emulation endeavours.

Contents

  • a PDP-11/05 cpu (KD11B) implemented from the microcode listing, but not emulating the actual microcode. Passing ZKAAA-ZKAMA. This is based on the code I wrote for the Knight TV emulation
  • a PDP-11/20 cpu (KA11) as a modified KD11B. Not implemented from the schematics (yet?). Passing ZKAAA-ZKAMA.
  • a PDP-11/40 cpu (KD11A) implemented from the microcode and schematics, but not emulating the actual microcode. With KJ11 and KT11.
  • a PDP-11/40 cpu running actual microcode. It needs a PiDP-11 panel and since as of now it is about 4-5x too slow on a raspi3 it is not finished.
  • the beginnings of a PDP-11/45 (KB11A) cpu. Implemented from the schematics and running the microcode. This machine is a beast so it doesn't do a whole lot at all yet.
  • KL11 console
  • KW11 line clock
  • KE11 extended arithmetic unit implemented from the algorithm explanation in the manual. Not tested terribly well.
  • simple memory

Plan

What I'd like is accurate emulation of the early PDP-11 cpus, i.e. 11/05, 11/20, 11/40, 11/45, 11/70, and at least the most important peripherals. For the 11/45 and /70 (KB11 based) I want microcode emulation to drive a PiDP-11 panel super duper accurately. For the other machines microcode emulation would be interesting as well but it's not quite as important to me.

Another goal is to have these work on an actual Unibus with Jörg Hoppe's Unibone. In fact, the 11/20 was made to work in a couple of hours when we noticed we had implemented almost the same unibus interface and could just hook up my code as a unibone device.

Notes

The style in which I've written the KA11 and KD11B is a bit idiosyncratic. The idea was to try and see how compact the code could be. I have to say I like it but apologize if you don't.

To-do

  • implement DATIP correctly (currently done for KD11A and B)
  • introduce #ifdef UNIBONE so we can maintain the code in one repo