buffered serial communication using IRQs