MIX(1)                                                     MIX(1)

     NAME
          mix - MIX assembler and emulator

     SYNOPSIS
          games/mix [ -g ] [ file ... ]

     DESCRIPTION
          Mix is an assembler and emulator for Donald Knuth's ficti-
          tious MIX architecture. The command assembles the named
          MIXAL files into memory and then presents a command prompt
          to control an emulated MIX machine. The -g option causes the
          emulator immediately to run a complete assembled MIX program
          and exits when the emulator halts.

          The following commands are accepted:

          addr[(a:b)]
               Print the value at addr. An optional field specifica-
               tion is given by (a:b).

          a [< file]
               Start the MIXAL assembler. The assembler will begin
               assembling at the address after the last assembled
               instruction. If no file is given, the assembler will
               accept instructions from the console.

          b addr
               Set or unset a breakpoint at addr.

          c    Resets the MIX machine to a fresh state by clearing all
               memory and registers.

          d addr
               Disassemble the instruction at addr.

          o addr
               Print the alphanumeric MIX word at addr.

          o(addr, d)
               Print d alphanumeric mix words starting at addr.

          r*[(a:b)]
               Print the value in register r* where * is one of a, x,
               ax, j, or 1-6. An optional field specification is given
               by (a:b).

          s    Step through one instruction of the emulated MIX
               machine.

          g    Start the emulated MIX machine at the instruction

     MIX(1)                                                     MIX(1)

               specified by the END pseudo-instruction.

          x    Quit the emulator/assembler.

          The addr field of the above instructions must be an integer
          between 0 and 3999 inclusive. A number-sign (#) or an aster-
          isk (*) at the beginning of a line starts a comment which
          extends to the end of the line.

     SOURCE
          /sys/src/games/mix

     SEE ALSO
          Donald Knuth, ``The Art of Computer Programming'', Volume 1. Section 1.3

          /sys/src/games/mix/examples

     BUGS
          As opposed to Knuth's specification, the ALF pseudo-
          instruction takes as argument five MIX characters surrounded
          by quotation marks.  Unresolved forward references are
          assembled to 0 instead of to a location determined by the
          END psuedo-instruction.

          The magnetic tapes and drum units are not implemented.

          Comments are handled as described above and not exactly as
          Knuth specifies.