<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    It's a heavy lift & overkill, but GCC (gas) can be made to
    cross-compile for/from any reasonable machine.  That gives you a
    complete toolset - but it's a lot of work.<br>
    <br>
    If it were my project, I'd define some macros in MACRO-11 to create
    a cross-assembler, as IIRC Whirlwind has 16 bit wordsize.  MACRO-11
    has a reasonable set of operators and macro pseudo-ops.  Define the
    Whirlwind instructions as macros, and you're all set.  People have
    done this for early micros - it's not quite native and can be a bit
    awkward - but it works and can be put together with minimal effort. 
    <br>
    <br>
    You can output absolute binary from the assembler - or link/task
    build if you want psects or libraries.  But with the small memory
    size, MACRO will do.<br>
    <br>
    If you want 32-bit words, there's always MACRO-32 - pretty much the
    same macro capabilities.<br>
    <br>
    For a host, you can use a simh PDP-11 or VAX - whatever you're
    comfortable with.<br>
    <br>
    Disassemblers - it's pretty easy to write a trivial one.  It gets
    complicated if you want to tease out subroutines, create a symbol
    table & data.  But with only 2KW - a simple dump (e.g. address +
    octal + instruction decode  + text decode in fixed columns) probably
    suffices.  An editor (like emacs) that will do rectangular cut and
    paste is likely less trouble than creating a fancy disassembler. 
    (Again, due to the small memory and word size.)<br>
    <br>
    You can invest arbitrary amounts of time to create better tools;
    worthwhile for larger machines, but I would go for 'good enough' for
    something as small and simple as Whirlwind...<br>
    <br>
    <div class="moz-cite-prefix">On 05-Sep-17 20:54, Bob Supnik wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:473efbd9-2ab8-3c98-585d-fe504b2ac9a4@supnik.org">Guy is
      looking to build a Whirlwind simulator, eventually.
      <br>
      <br>
      I don't know of any assemblers like that. All the cross-assemblers
      I've seen are purpose built, nowadays mostly in Python.
      <br>
      <br>
      <br>
      -------- Forwarded Message --------
      <br>
      Subject:     retargetable assembler
      <br>
      Date:     Fri, 1 Sep 2017 10:38:08 -0400
      <br>
      From:     Guy Fedorkow <a class="moz-txt-link-rfc2396E" href="mailto:guy.fedorkow@gmail.com"><guy.fedorkow@gmail.com></a>
      <br>
      To:     Bob Supnik <a class="moz-txt-link-rfc2396E" href="mailto:bob@supnik.org"><bob@supnik.org></a>
      <br>
      <br>
      <br>
      <br>
      hi Bob,
      <br>
        I'm continuing to explore the Whirlwind world, one tiny step at
      a time.
      <br>
        I thought I'd look around for retargetable cross-assemblers and
      <br>
      disassemblers that might work with the machine's instruction
      set...
      <br>
      this must come up in the simh world...  do you have a favorite
      package?
      <br>
      <br>
        Thanks
      <br>
      /guy fedorkow
      <br>
      <br>
      <br>
      _______________________________________________
      <br>
      Simh mailing list
      <br>
      <a class="moz-txt-link-abbreviated" href="mailto:Simh@trailing-edge.com">Simh@trailing-edge.com</a>
      <br>
      <a class="moz-txt-link-freetext" href="http://mailman.trailing-edge.com/mailman/listinfo/simh">http://mailman.trailing-edge.com/mailman/listinfo/simh</a>
      <br>
    </blockquote>
    <br>
  </body>
</html>