Learning C by making a PIC simulator.