Timing and speed issues with pin change interrupt based routines - Arduino slow?

To save me having to try to comprehend all this stuff:

void EOC0() {
  EOC_flag[0] = ON;
}

void EOC1() {
 EOC_flag[1] = ON;
}

Can you just tell me what sort of thing is supposed to happen when you detect a transition? Do you need to detect both ways? (high->low and low->high)?

Basically, are you just turning on a bit somewhere else (like, another port)?

there are actually 12 input pulses that may fire at rates of up to 500Hz asychronously

What processor is this? You are using 12 input pins here, and you are doing what with the remaining ones?

That pin-change stuff looks wordy to me, I think we can do that in less cycles.