<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 23-Mar-20 15:29, Eric Smith wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFrGgTQDzM8jZPw4rkaPcmDr3U+HVH3uDs-au+uGcpCbc6Tt5A@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Mon, Mar 23, 2020 at 1:01
            PM Timothe Litt <<a href="mailto:litt@ieee.org"
              moz-do-not-send="true">litt@ieee.org</a>> wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>The PDP-11s, like the 11/05 were ttl, the CPU ALU was
              something like 74181 4 bit slices.  I don't count them as
              "real" microcoded machines for some reason - perhaps
              because the ucode was all ROM, and IIRC there was no
              assembler for it.  <br>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>All PDP-11 models except the original KA11 CPU used in
            the PDP-11/20 were microcoded. There were microassemblers
            for many of the models, but for most models the
            microassemblers never were provided to customers, and were
            probably not readily available even inside DEC. </div>
        </div>
      </div>
    </blockquote>
    <p>I didn't see them, but that wasn't my world.  I do remember that
      printouts of the ROMs were in some of the printsets.  And some of
      the people I talked with said that the ROMS were hand generated. 
      For some value of "hand".  Anyhow, right or wrong, I thought of
      those microcodes more like PLA equations than "microcode" as used
      in the KL, IBM, and other systems where there was significant
      flexibility.</p>
    <blockquote type="cite"
cite="mid:CAFrGgTQDzM8jZPw4rkaPcmDr3U+HVH3uDs-au+uGcpCbc6Tt5A@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div>Later, general-purpose microassemblers were used, such as
            MICRO and MICRO2. (It appears to me that there were two
            different DEC microassemblers that both used the name
            MICRO2; the one from LCG appears to be significantly
            different than the one used for VAXen.)<br>
          </div>
          <div><br>
          </div>
        </div>
      </div>
    </blockquote>
    <p>Micro came first, developed by Tim Leonard for the KL-10 in
      PDP-10 assembler.  It introduced the constraint syntax,
      comma-separated fields, defaults, / for contents (like DDT) and
      most of the pseudo-ops.  It knows about two simultaneous control
      stores - U and D.  (You need that when one contains a dispatch
      address in another.)  It was also used for the KS10.<br>
    </p>
    <p>Meantime, Micro2 started as a clone re-written in BLISS for the
      VAX.  It uses somewhat different syntax, handles more simultaneous
      control stores, generally more flexible.</p>
    <p>I don't recall there being a second LCG-developed Micro2 -
      however, we did use Micro2 for Jupiter (IIRC) and the VAX 9000
      (for sure).  (Not sure about the 8600; I didn't have much to do
      with it.)  It is possible that it forked - at times and for some
      tools there was cooperation between the CAD groups.  At other
      times, not so much.  DECsim went back and forth.  Microcode tools
      tended to be frozen early in a project - too much risk of breakage
      by changing them (including taking latest updates) mid-stream. 
      Micro2 definitely kept evolving.  You may have seen such a frozen
      snapshot.<br>
    </p>
    <blockquote type="cite"
cite="mid:CAFrGgTQDzM8jZPw4rkaPcmDr3U+HVH3uDs-au+uGcpCbc6Tt5A@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div>The 11/03 (AKA LSI-11) and the 11/60 were the only PDP-11
            models for which DEC actually "supported" customer-written
            microcode, for small values of "support": a WCS,
            microassembler, and microcoding documentation were sold, but
            beyond that you were on your own.</div>
        </div>
      </div>
    </blockquote>
    <p>Yup - I'd add "reluctantly" to "sold".  Wasn't there a WCS option
      for the 11/34?  Memory fails..</p>
    <blockquote type="cite"
cite="mid:CAFrGgTQDzM8jZPw4rkaPcmDr3U+HVH3uDs-au+uGcpCbc6Tt5A@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div> The 11/03 and 11/60 had sufficiently general hardware
            data paths to make custom microcoding worthwhile; for most
            other PDP-11 models the data paths were very limited,
            reducing the utility that a WCS would have provided. That's
            why the aftermarket WCS option for the PDP-11/40 also added
            additional hardware such as a field extractor and a hardware
            stack, with the microword width increased by 24 bits to
            control the addtional hardware.<br>
          </div>
          <div><br>
          </div>
        </div>
      </div>
    </blockquote>
    <p>I'm not sure what the market was for WCS - at that time, attached
      FP boxes (e.g. Floating Point Systems) were in vogue, and probably
      provided better acceleration for most purposes.  For real-time,
      the PDP-11 pretty much kept up with the outside world.  You could
      maybe eliminate some bus traffic/memory references - but in
      development time and cost of moving to the next generation, it
      never seemed like a win.  Plus there was a mystique about ucode -
      the tight coupling to hardware took some rare talent to actually
      make it work.<br>
    </p>
    <p><br>
    </p>
  </body>
</html>