#MCell 4.20
#GAME Rules table
#RULE 1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,0,3,3,3,3,3,3,3,3,3,
#RULE 0,3,1,1,3,3,3,3,3,3
#BOARD 400x200
#WRAP 0
#CCOLORS 4
#D Design by Nyles Heise (nylesheise@yahoo.com).  Previous multipliers
#D by Nick Gardner and Karl Scherer.
#D 
#D This is 32-bit by 32-bit binary muliplier producing a 64 bit product.
#D Two versions are given.  The compact version is crammed into the
#D minimum area I could get to (you may be able to do better).  The
#D expanded version has the component separated and labeled, to give a
#D better view of what's going on.
#D 
#D A is the multiplicand, 252 cells.  B is the multiplier, 124 cells.
#D C is the product, 256 cells in the expanded version.  FA is a single
#D full adder.  Gate is used to gate the bits of A into FA when the
#D corresponding bit of B was on.  Also turns off the B bit after it
#D has been used.  Clock tells Gate when to look at B. It's a fill-empty
#D ring counter, 128 cells and a period of 252 cycles.
#D The first partial result appears in the expanded verion in C after
#D 205 cycles, next in another 256, and so on.  Final product in a total
#D of 8141 cycles.  8116 is the compact verion, some bits always in the FA.
#D 
#D The design uses 4-tick logic elements.  6-tick takes 50% more space for
#D the loops and 50% more overall time.  All the normal logic elements
#D are available in 4-tick (OR, XOR, AND, INVERT, R-S LATCH, T LATCH).
#D The 4-tick INVERTER is shown bottom left.  Note it takes less area than
#D 6-tick.
#D 
#L .C6.3C.3C.C3.3C.3C.3C.3C.3C9.CC6.3C.3C..C3.C..3C..CC..CC..3C$C.C.3C.C
#L 3.C3.CC..C5.C.C3.C5.C9.C.C.3C.C3.C3.C.C.C.C3.C4.C3.C.C.C$3C5.CC..CC..
#L 3C.CC4.C.3C.CC4.C9.CC6.CC..CC..3C.C.C..CC3.C3.C..3C$C.C.3C.C3.C5.C.C5.
#L C3.C.C5.C9.C.C.3C.C3.C3.C.C.C.C3.C..C3.C5.C$C.C5.3C.C5.C.3C3.C.CC..3C
#L 3.C9.CC6.3C.C3.C.C..C..3C..3C.3C3.C3$.C6.CC..3C.3C.3C.3C.3C.3C.3C.3C.
#L 3C.3C.3C.3C.3C.3C.3C$C.C.3C.C.C.C3.C3.C3.C3.C3.C3.C3.C3.C3.C5.C.C3.C3.
#L C3.C$C7.C.C.CC..CC..CC..CC..CC..CC..CC..CC..CC..CC4.C.CC..CC..CC..CC$C
#L .C.3C.C.C.C3.C3.C3.C3.C3.C3.C3.C3.C3.C5.C.C3.C3.C3.C$.C6.CC..C3.C3.C3.
#L C3.C3.C3.C3.C3.C3.C5.C.C3.C3.C3.C4$91.23C$90.C23.C$90.C..21C$90.C.C$
#L 90.C..31C$3C.C3.C.CC3.C..C3.C.CC..3C.CC56.C33.C$C4.C.C..C.C.C.C.CC..C.
#L C.C.C3.C.C55.C..31C$CC4.C3.CC..3C.C.C.C.C.C.CC..C.C55.C.C$C4.C.C..C3.C
#L .C.C..CC.C.C.C3.C.C55.C..BACCBACCBA6CBACCBACCBACCBAC$3C.C3.C.C3.C.C.C
#L 3.C.CC..3C.CC56.C33.C$90.C..5CABCCABCCAB10CAB4C$90.C.C$90.C..4CBACCBA
#L CCBA6CBA6CBAC$90.C33.C$91.3CABCCABCCAB10CABCCABCCAB$93.C$93.C5.C3.C5.
#L 3C..C$93.C4.C.C.C.C6.C..C$61.3C..C10.CC3.C..3C.3C.C4.3C.C.C.CC..CC..C$
#L 61.C3.C.C8.C4.C.C..C..C3.C4.C.C.C.C6.C..C$24.C3.C5.C3.3C20.CC..3C8.C.
#L CC.3C..C..CC..C4.C.C..C5.3C.3C$23.C.C.C.C4.C5.C20.C3.C.C8.C.C..C.C..C
#L ..C3.C$23.C3.C.C.CC.3C..CC20.C3.C.C9.CC..C.C..C..3C.C$23.C.C.C.C4.C.C
#L 3.C52.C$24.C3.C5.3C.3C21.C.C3.C.12C.10C$58.6C.A4C12.C$10.31C16.C4.C.B
#L 3.C.C10.3C..C11.CC..3C..C6.C$9.C47.C3.C5.C3.C10.C..A.C10.C.C3.C..C5.C.
#L C$10.31C16.C3.C4.C..CC10.4CAB11.CC3.CC..C..CC.C.C$41.16C4.C3.C..C11.C.
#L C4.A10.C.C3.C..C5.C.C$10.31C17.C..C..C3.C11.C3.CC..CC.A6.CC..3C.3C5.C$
#L 9.C47.C.C.3C4.C12.C.C..C3.CAB$10.31C16.C.C..C3.C..C12.3C.C.C..A.CAB.CA
#L BCCAB6CABCCABCCABCCABCC$41.C15.C.C..7C12.C.A3.4C5.C29.A$10.31C16.C.C.C
#L 4.C3.A11.B5.C6.B3.18CBA6CB$9.C47.C.C.C.C.CC.CB.C9.3C..CC7.A..C$10.31C
#L 16.C..5C..CC.C11.C..B.C.BC..B.C3.11CABCCAB10C$41.C15.C3.A.C.C..3C12.CA
#L 3.A..ABBC31.A$10.31C16.C3.B4.C..C21.B.B.C3.CCBA6CBA14CB$9.C47.C..C.A4.
#L C.C13.ACCBA3C4.C..C$10.48C3.C..3C..C12.B12.C.C$57.CC4.C5.C11.C14.C$59.
#L C..3C.C.3C9.C$58.3C..C.3C.C8.A.A$57.C.C.CC.C.C..B7.C.BAC$57.C10.A.C7.C
#L .A.C$58.10C.C12.C$82.C16.C..C4.C3.C..C..C$82.C15.C.C.C3.C.C.C.C.C.C$
#L 82.C15.C3.C3.C.C.C3.CC$82.C15.C.C.C3.C.C.C.C.C.C$82.C16.C..3C..C3.C..C
#L ..C$82.C$82.C11.CBACCBACCBACCBACCBA3CBACCBA3.A$82.C5.ACCBAC28.C.C.B$
#L 82.C..ABB7.ABCCABCCABCCABCCABCCABCCA..4C$82.C.C..C6.C25.B..C..B$83.CC.
#L C.C6.CBACCBACCBACCBACCBACCBAC..4C.A$84.CA3.A29.C3.A..C$86.BCC.BCCABCCA
#L BCCABCCABCCABCCABCCAB5.BC5$9.3C.C.CC3.CC.3C3.CC3.C..CC..3C.C..C..C5.CC
#L ..CC3.C..CC..C.C..C3.3C5.CC3.C..3C4.C..C.C..C..C3.3C..CC$9.C3.C.C.C.C
#L 4.C4.C.C.C.C.C.C..C..C.C.C.C5.C.C.C.C.C.C.C.C.C.C.C.C3.C8.C.C.C.C5.C.C
#L .C.C.C.C.C3.C3.C$9.CC..C.CC3.CC..C4.CC..3C.CC3.C..C.3C.C5.CC..CC..C.C.
#L C.C.C.C.C5.C7.C..C.C.CC4.C4.C..C3.C3.CC3.CC$9.C3.C.C.C3.C..C4.C3.C.C.C
#L .C..C..C.C.C.C5.C3.C.C.C.C.C.C.C.C.C.C3.C6.C3.C.C3.C3.C.C..C..C.C.C3.C
#L 5.C$9.C3.C.C.C.CC3.C4.C3.C.C.C.C..C..C.C.C.3C3.C3.C.C..C..CC3.C3.C4.C
#L 6.3C..C..CC5.C3.C3.C..3C.3C.CC4$9.3C.C.C.3C.C3.C3.3C.C.C.3C.CC..C.C42.
#L CC..3C.C6.C..C.C..C..C3.3C..CC$10.C..C.C.C3.CC..C3.C3.C.C.C3.C.C.C.C
#L 44.C.C3.C5.C.C.C.C.C.C.C3.C3.C$10.C..3C.CC..C.C.C3.CC..C.C.CC..CC3.C
#L 44.C..CC..3C3.C4.C..C3.C3.CC3.CC$10.C..C.C.C3.C..CC3.C3.C.C.C3.C.C..C
#L 43.C5.C.C.C3.C.C..C..C.C.C3.C5.C$10.C..C.C.3C.C3.C3.3C..C..3C.C.C..C
#L 43.3C.CC..3C4.C3.C3.C..3C.3C.CC4$9.3C.C.C3.C..C..C5.CC..CC3.C..CC..C.C
#L ..C3.3C32.C..C.C3.C4.C..C.C..C..C3.3C..CC$9.C3.C.CC..C.C.C.C5.C.C.C.C.
#L C.C.C.C.C.C.C.C3.C32.C.C.C.CC..C3.C.C.C.C.C.C.C3.C3.C$9.CC..C.C.C.C.3C
#L .C5.CC..CC..C.C.C.C.C.C.C5.C33.C..C.3C.C3.C4.C..C3.C3.CC3.CC$9.C3.C.C
#L ..CC.C.C.C5.C3.C.C.C.C.C.C.C.C.C.C3.C32.C.C.C..C..C3.C.C..C..C.C.C3.C
#L 5.C$9.C3.C.C3.C.C.C.3C3.C3.C.C..C..CC3.C3.C4.C33.C..C..C..C4.C3.C3.C..
#L 3C.3C.CC10$.C3.C..C3.C.CC3.C3.C..3C$C.C.C.C.CC.CC.C.C.C.C.C.C..C$C3.C.
#L C.C.C.C.CC..3C.C4.C$C.C.C.C.C3.C.C3.C.C.C.C..C$.C3.C..C3.C.C3.C.C..C3.
#L C4$10.23C.C.C3.C.4C.10C.42C$9.C23.3C.A4C4.C10.C42.C$10.21C3.C.B3.C.C..
#L 3C..C3.3C..41C$31.C.C5.C3.C..C..A.C.C4.C$10.21C..C4.C..CC..4CAB3.3C..
#L 32CBACCBACCB$9.C23.C3.C..C3.C.C4.A5.C42.A$10.17C3.C..C..C3.C3.C3.CC..
#L CC.A..ABCCABCCAB10CABCCABCCABCCAB6C..C$27.C.C.C.3C4.C4.C.C..C3.CAB41.A
#L .C$10.17C..C.C..C3.C..C4.3C.C.C..A.CAB.CABCCAB6CABCCABCCABCCABCCAB4C..
#L B.C$9.C19.C.C..7C4.C.A3.4C5.C35.C.C.C$10.17C..C.C.C4.C3.A3.B5.C6.B..A
#L 30CBAC..C.C$27.C.C.C.C.C.CC.CB.C.3C..CC7.A.B36.C.C$10.17C..C..5C..CC.C
#L 3.C..B.C.BC..B.C..CCAB10CAB6C4.CBACCBA3C..B$9.C19.C3.A.C.C..3C4.CA3.A
#L ..ABBC25.C..C12.A$10.16C3.C3.B4.C..C13.B.B.8CBA6CBA7C4.AB8C..C$26.C..C
#L ..C.A4.C.C5.ACCBA3C43.C.C$10.16C..CC3.C..3C..C4.B9.BACCBA3CBACCBACCBA
#L CCBACCBAC3.C3.BACCBAC..B$9.C17.C.CC4.C5.C3.C4.CCBACC28.C.C.A.C9.A$10.
#L 15C..C3.C..3C.C.3C.C..CAA7.CABCCABCCABCCABCCABCCABCC..4B3.CAB4C..C$25.
#L C.C..3C..C.3C.C..A.C..B6.C25.A..C..A9.C.C$10.15C..C.C.C.CC.C.C..B.CACC
#L .C.C6.BACCBACCBACCBACCBACCBACC..B3C.C..BA5C..B$9.C17.C.C10.A.C.A.CC3.C
#L 29.B3.C..C.C9.A$10.17C3.10C.C6.ABC.ABCCABCCABCCABCCABCCABCCABCCA5.AB3.
#L 5CABCC4$9.3C.C.C3.C..C..C5.CC..CC3.C..CC..C.C..C3.3C8.C..C.C.C5.C..C.C
#L ..C..C3.3C..CC$9.C3.C.CC..C.C.C.C5.C.C.C.C.C.C.C.C.C.C.C.C3.C8.C.C.C.C
#L .C4.C.C.C.C.C.C.C3.C3.C$9.CC..C.C.C.C.3C.C5.CC..CC..C.C.C.C.C.C.C5.C9.
#L C..C.C.3C..C4.C..C3.C3.CC3.CC$9.C3.C.C..CC.C.C.C5.C3.C.C.C.C.C.C.C.C.C
#L .C3.C8.C.C.C.C.C.C..C.C..C..C.C.C3.C5.C$9.C3.C.C3.C.C.C.3C3.C3.C.C..C
#L ..CC3.C3.C4.C9.C..C.C.3C3.C3.C3.C..3C.3C.CC