An emulator I worked on for a few days, making it in JS was a mistake and I might have to remake this in C or C++.
It is still incomplete and is missing a bunch of instructions, the biggest ones being bitwise and division.
PDP's architecture is beautiful, implementing it is not though.
I compiled an old version of gcc to target pdp so it can run C programs(I cheated and made the JS directly load the C instead of doing that part in assembly)
I might have chosen a little bit too old though, also compiling with any kind of optimizations seems to break things.