MARS(6)                     (5/20/84)                     MARS(6)

          mars - memory array redcode simulator

          mars [-dfhmp] [-cqs<value>] file1 file2 ...

          Mars is a simulator for the Redcode machine specified by Dr.
          Kee Dewdney in the "Computer Recreations" column in the May
          1984 issue of Scientific American. The command line contains
          any arguments followed by a list of object code file names.
          The easiest way to create an object file is to use the
          redcode(6) command to a assemble the object file from a red-
          code source file.

          An object file contains three header lines indicating the
          name of the program, the length of the program, and the off-
          set from the beginning of the starting location.  Here is a
          sample redcode object file, for the Dwarf program:

               name dwarf
               length 4
               start 1

          The instruction format is an 11 digit decimal string, as

               0    1    2-5  6    7-10
               |opcode |mode1 |arg1     |mode2    |arg2     |

          Options allow for tracing execution, for graphically dis-
          playing the progress of each program, and for analyzing and
          dumping memory before and after execution.  For example, the
          following command:

               mars -s1234 -f -c20000 dwarf.obj gemini.obj imp.obj

          specifies that imp, dwarf, and gemini are to be run
          together, with a fullscreen display for 20000 cycles using a
          random number seed of 1234.

     MARS(6)                     (5/20/84)                     MARS(6)

          -cN  cycles option, determines the maximum number of cycles
               for this run.  The default is 10000.

          -d   debug option, causes the execution to be traced in
               excrutiating detail.

          -f   fullscreen option, causes the execution to be displayed
               graphically on any terminal supported by curses(3).

          -h   holes option, causes a description of memory usage to
               be printed after execution terminates.

          -m   memory dump option, causes memory to be dumped before
               and after execution terminates.

          -p   procedure dump option, similar to -m option, except
               only memory near each program counter is dumped.

          -qN  quit option, indicates the minimum number of programs
               required to be alive.  For example, if -q3 is speci-
               fied, execution terminates as soon as there are fewer
               than three programs still alive.  -q1 specifies that
               execution continues as long as any program is alive.
               The default is to quit when there is but one program
               still running.

          -sN  random seed option, specifies a random seed for this
               run.  The default is 0 (i.e.  a random seed based on
               the time).


          None known.

          20-May-84 Michael Mauldin (mlm) at CMU