MICOS: A microprogrammable computer simulator