The mic025.txt data file.  Contains a Mic-1 program that pushes onto the stack the result
of right shifting the number found in main memory location 40 by the number of bits
specified by the number found in memory location 41.  The 40 and 41 are preloaded into
registers a and b respectively.  This solution is based on that done by Ryan Pistorius.

10 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 0  0 0  0  1  1  0  0  0 0 0 0  1 0 1 0  0 0 0 0  0 0 0 0 0 0 0 0
0  0 0  1 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
1  0 0  1 0  0 0  0  1  1  0  1  1 1 0 0  1 0 1 1  0 0 0 0  0 0 0 0 0 0 0 0
0  0 0  1 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
1  0 0  1 0  0 0  0  0  0  0  1  1 1 0 1  0 0 0 0  0 0 0 0  0 0 0 0 0 0 0 0
0  0 1  0 0  0 0  0  0  0  0  1  1 1 0 1  0 1 1 1  1 1 0 1  0 0 0 0 0 1 1 1
0  1 1  1 0  0 1  0  0  0  0  1  1 1 0 0  0 0 0 0  1 1 0 0  0 0 0 0 0 1 0 1
0  0 0  0 0  0 0  0  0  0  0  1  0 0 1 0  0 0 1 0  0 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  0 0 1 0  1 1 0 0  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

2 data items for main memory:

-13108
5

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   40  41 0  0  0  0

The MAL form of the above microinstructions follows:

0:	mar := a; rd;
1:	rd;
2:	c := mbr; mar := b; rd;
3:	rd;
4:	d := mbr;
5:	d := d + (-1); if n then goto 7;
6:	c := rshift(c); goto 5;
7:      sp := sp + (-1);
8:	mar := sp; mbr := c; wr;
9:	wr;

End of the mic025.txt data file.

