Tony Duell wrote:
That very much depends on the CPU. If the CPU is many
chips (not a single
package) with microcode in PROMs, there's nothing to stop you desoldering
said PROMs and reading them out. I've done that, then written a
disassembler for the microode instructions and worked out what was going on.
True, but you don't find CPU's made of discrete logic these days, so it
makes it very difficult to get at the microcode.
And some CPUs, the PERQ being probably the most common
example, load
their microcode from disk at power-on. In which case you might even get a
mcirocode assembler and disassember as standard OS tools. If not, you can
write them.
This is one machine I've been wishing for, for quite some time.
Were
there any emulators of these? Are there enough docs, schematics and
copies of the software online somewhere? Would be sad to lose this
machine to the ravages of time.
This is rather a higher level tham I was considering
it. I was thinking
more along the lines of 'Decoder U55 decodes the 3-bit field consisting
of micorocode bits 23-25. Output 4 of this decoder enables OR gate U27c
which passes the delayed clock to the clock input of the D-type U71a.
This stores the carry output of the ALU, and acts as a carry flag'
Yes, I do often consider CPUs at that level
Wow. You da man! ;-)
The problem is that most books describe the simple
parts (gates,
flip-flops), then the final result (CPU, at the level of 'fetch an
instruction, decode it, increment PC'), but miss out the bit in between.
Exactly how you can link up gates and FFs to make a CPU.
[...]
I do recall that my college book on computer architectures actually went
into this detail. I'll go and dig it up if I still have it if you'd
like to know its title.
The PERQ has no ROM in the memory map (and no, there
is no frontpanel
where you toggle in a boot loader by hand). What there is is a little
microcode PROM that overlays the bottom part of the microcode RAM. This
PROM contains enough microode to read the boot sector from disk into the
mcirocode store (said boot sector of course contains microcode), that
then reads in some more microcode, which reads in the OS into user RAM.
Sweet! Reminds me of the Xerox Star where it uses an 8085 to load code
into a custom made bit-sliced microcoded CPU, and even allows individual
applications to roll their own microcode...