Better handle IRQs and handle halts