added software interrupt support