Complete pdf of original project. TODO: re-create and test original program on up to date compiler