Abstract: Engine ignition is timed for each ignition cycle from a reference pulse corresponding to the time a piston in a particular one of the cylinders of the engine is at its upper dead-center point. This pulse is utilized to reset a counter that counts a series of pulses corresponding to each 1.degree. of revolution of the crankshaft. The output of the counter is furnished to an evaluation circuit in which there is wired logic for the basic ignition timing and additional logic to take account of engine operating conditions, such as engine speed, engine temperature and intake manifold pressure. In an engine requiring unsymmetrical ignition timing, a pulse for each revolution of the cam shaft is utilized in an additional logic circuit to control a timing shift for alternate revolutions of the crankshaft. The pulses produced by the evaluation circuit are furnished to an ignition pulse generation circuit, which provides ignition pulses to the ignition system.