Jonathan Engdahl wrote:
<snip>
   Pentium
CPU's can't be microprogrammed, unless your Intel.  Even microcode
 updates cannot replace the basic instruction set. 
 That's not what I'm saying. The Pentium is probably not microprogrammed
 anyhow, at least for the majority of instructions. They probably have a
 microcoded front end for the messy stuff, like context switching.
 I'm adding one more level of abstraction -- microcoding on the microcoded
 machine, so to speak. Like the Mini PLC-2. 
 
An assembly-level program running on a Pentium, technically speaking, is not
microcode.
   If you write a
program in Pentium assembly code to run PDP-11
 instructions, you
 have just written an 'emulator', even if it does not run under windows. 
 Yes, a microcoded machine is one kind of emulator. Every microcoded
 architecture is an emulation. The underlying micromachine bears little
 resemblance to the machine that the user sees. It's a nice distinction, and
 not razor sharp. I would say that an "emulator" runs under an OS on a
 machine that is still running windows, NT, Linux, or whatever. A microcoded
 machine runs barefooted on the hardware, over which it has exclusive
 control. Whether that hardware itself is microcoded makes no difference. 
 
An emulator does not require an operating system.  An emulator is simply a
program that emulates another machine, however its implemented.
   But an writing
such an emulator is not 'microprogramming'. 
 It is so. I don't know of any rule that says that the micromachine has to
 have a particular type of architecture, or that it can't be an off-the-shelf
 machine, rather than a collection of AMD 29xx parts. 
 
By definition, a microprogram runs directly at the hardware level.  A Pentium is
a microprogramed processor, so an assembly level program running on a
microprogrammed machine cannot really be called a microprogram.
  You can argue that hardware is software, or that
software is hardware. It's
 all logic. The distinction is pretty academic. 
Exactly these are terms with fairly well defined meanings!
  What I am saying is that it would be possible to
re-create almost any
 classic architecture using much the same techniques used back in the 70's to
 create the original machines. Instead of designing a custom micromachine,
 you just go down to the corner store, buy a Pentium IV machine, erase the
 hard drive, and throw away the disks. Now, on another machine, sit down and
 write the "microcode" in x86 assembly language, load it on a floppy, and
 boot the Pentium IV, which now becomes a PDP-11, 1130, CDC, or whatever. If
 you copy a disk image of the target OS to the IDE hard drive, it will boot
 and run just like the original machine.
 
I understand the concept, its called emulation.  My only issue here is the
terminology, not the merit of the concept.