Restoring IMP - why so hard?

I have had a passing interest in IMP, until the Web Site was lost, in porting it to a home brew
cpu. Do to hardware issues,delaying things for years I have just finished a 20 bit cpu expanded from a 16 bit test cpu. Most of my problems was a 25 ns glitch on the +5 volts.

It is still possible to port IMP to a word based computer?
Why is so hard to get IMP to rebuild the older versions?
Can imp be ported to the PI versions of the PDP-1,PDP11,PDP10? and the PDP8 for extra points.:slight_smile:

I know you’re aware of the recent topic Bootstrapping EMAS-3 for S/370-XA (and a new Edinburgh IMP compiler) - is that the IMP you mean?

1 Like

Yes. In the 70’s a few good people seemed to crank out an new language or port in days,on bare metal
but now it takes years, the latest software and a AI or two for a similar port from layman’s view,
and I wonder what changed over the years?

1 Like

@oldben I’ve been improving an IMP compiler that targets Linux/Windows11 PC’s. Look at IMP2026 on github.
An IMP compiler usually has 3 passes/stages.
Pass1 converts IMP source to an intermediate code (iCode) in an .icd file.
Pass2 reads the iCode (.icd file) and generates Intel 32 bit code as a binary file format file (a .IBJ file).
Pass3 software reads the .IBJ file and converts the object stream to either a file in ELF or COFF format.

The idea was you create your own pass2 to generate your desired target ISA instructions.
The iCode instructions and IBJ file format are documented in my siliconsam github repositories.
There are various utilities to analyse the icd and ibj files.

I’m hoping to acquire a Motorola 68010 setup shortly, so will be slowly implementing a pass2 for that instruction set.

I hope you find a good platform. I have seen a few 68000 projects on the web, but they all
use CP/M. Did not Edinburgh have in house 68000 machine?

They did indeed from what I’m told.
My main contact with IMP was a Ferranti Electronics when Lattice Logic (a spin off from Edinburgh University) were converting their CMOS design suite to support the Ferranti ULA’s.
I wrote the IMP code to implement the internal ULA cell routing.
Loved IMP-77 as it reminded me of ALGO-60 I used at ICL West Gorton.

Yes, the so-called Fred machines, which I did use, a little, during my time there:

(link to a pdf with detailed history within, mentions EMAS and IMP)

Edit: see also previously