GetBit command would be simple. I would do the same as i did in C which was just wait for a Low or TRIGGER on low then count up until its high then calculate how long it took by reading the count variable. You should know how to do this already lol
My code is exactly the same as yours Jason. I'm just having fun trying to make it a bit tighter, cleaner, simpler, and more elegant using assembler (my specialty, grin)...
To do SIRC in as background wouldnt be hard with my code. All you have to do is setup a interrupt and have it do the same code as in my "GetSIRC" function. Once you copy my code to the interrupt then you should be able to collect data like that. Just remove the first wait for low. Since it will interrupt on low anyway.