On 11/15/19 20:53, Paul Koning wrote:
I wonder if the UDA50 microcode can be found.
That's a bitslice (2901 ALUs plus 2910 branch controller) which presumably would be
pretty easy to emulate in a small FPGA.
If it used Am2901 series parts, I wonder if it used Am2908s too for the
bus drivers.? We used those on our wirewrap prototype (they saved I/O
pins to the FPGA which was important at the time) but planned to go to
all DS8641s for the real thing (a 324 pin BGA package has a *lot* of I/O
pins and I've used most of them).? I guess it would be easy enough to
replicate the function of Am2908s inside the FGPA though.
Anyway, the difficult part of using the actual microcode from the UDA50
is going to be the other side of the device.? The interface to the disk
drive of the day is not going to look anything at all like an SD card.?
Not sure it'd be worth trying to fake out that interface unless yo had
some strong reason for wanting to run that microcode.
I once saw a bit of the source code. It was very
strange because it had two opcodes per line, one for the ALU and one for the branch
controller. Since the condition codes took a cycle to get to the branch controller, you
might see weird stuff like this (paraphrased, I don't remember the actual opcodes):
CLR R0 ; BNE label
which takes some getting used to if you're a conventional sequential programmer.
Richie Lary of PDP-8 fame did part of that microcode.
When I started getting more into this micro-coding stuff, Noel pointed
me to a book called Principles of Firmware Engineering in Microprogram
Control by Michael Andrews.? Interesting stuff and he presents several
designs that make this clear separation between the control portion of
your micro-instructions and the sequencing portion.