The mic009.txt data file.  This Mic-1 program illustrates a conditional
jump and a write to memory.  More importantly, it shows how to compute
the difference ac = e - d.  This file is the same as mic008.txt except
that register e contains a different value, giving a different choice
when deciding whether to do the jump.

6 microinstructions:

A   C
M   O    A        M  M        E
U   N    L    S   B  A  R  W  N     C        B        A          ADDR
X   D    U    H   R  R  D  R  C

0  0 0  1 1  0 0  0  0  0  0  1  0 0 0 1  0 0 0 0  1 1 0 1  0 0 0 0 0 0 0 0
0  0 0  0 0  0 0  0  0  0  0  1  0 0 0 1  0 0 0 1  1 1 1 0  0 0 0 0 0 0 0 0
0  0 1  0 0  0 0  0  0  0  0  1  0 0 0 1  0 0 0 1  0 1 1 0  0 0 0 0 0 1 0 0
0  0 0  0 0  0 0  0  0  0  0  1  0 0 0 1  0 0 0 1  1 1 1 1  0 0 0 0 0 0 0 0
0  0 0  1 0  0 0  1  1  0  1  0  0 0 0 0  1 0 1 0  0 0 0 1  0 0 0 0 0 0 0 0
0  0 0  1 0  0 0  0  0  0  1  0  0 0 0 0  0 0 0 0  0 0 0 0  0 0 0 0 0 0 0 0

0 Mac-1 instructions

0 data items for main memory

Register values:

PC  AC  SP  IR  TIR  0  +1  -1  AMASK  SMASK  A   B  C  D  E   F

0   0   69  0   0    0   1  -1  4095   255    42  0  0  8  12  6

The MAL form of the above microinstructions follows:

0:	ac := inv(d);                       (inverse is 1's complement, boolean not)
1:	ac := ac + e;
2:	ac := ac + 1; if n then goto 4;     (n means N Flag of 1 set by ALU output)
3:	ac := ac + f;
4:	mar := a; mbr := ac; wr;
5:	wr;

Note that we have computed the desired difference as follows:
	ac = e - d = e + inv(d) + 1
since in 2's complement arithmetic subtracting something is done by adding the 1's
complement (boolean not) and then adding 1.

The simulator loads registers a, d, e, and f as shown above.  The value in a is the
location to write the answer to.  Since e - d = 12 - 8 = 4, the conditional jump
should NOT be done, so that line 3 is executed.

End of the mic009.txt data file.
