The electrical circuit is very straightforward for a mazda mx5. I use a 4N32 optocoupler with a pull-up resistor on the input side anode, that is connected to the tach wire with a protection diode thrown in for good measure. The MX5 has a switched-earth type tach signal, for cars with coil-negative style tach signals you need a different circuit.
Just have a look at the megasquirt (msefi.com) manuals, there is a whole manual dedicated to tach circuits and such for most types of cars.
My tach code is just an adapted version of the motorcycle tach someone here on the forum made, which keeps track of time between 10 pulses if I remember correctly. I used it because it has a running average filter that I thought would be useful back when my testsetup was very noisy. Does have a problem that it has some awkward behaviour when RPM drops to zero (it keeps outputting the last nonzero value until it's arrays are empty), but it was actually not a bad thing for the shiftlight.
BTW, you the guy that created the multidisplay project? Your nickname rings a bell.