Better pulse type checking and passing. IRQ handler Style updated