Timing is done with two simple tables. The RPM table has 10 data points in equal positions from idle to maximum RPM. The idle speed and maximum, are chosen depending on engine requirements. At each RPM point in table, a corresponding timing value is set. The ECU measures RPM, and in a linear fashion, interpolates values in between the data points. The timing based on vacuum is similar.