That's very good.I can print to screen before the while loop if I don't re-enable interrupts.
I meant to attach them to your post so they can be reviewed.What do you mean to attach them?
Don't you use software interrupts for system calls ? You can use the INT 0xnn instruction with interrupts disabled. Remember if you do this you need to modify the DPL to ring 3 in the in the type field of the IDT entry for the software interrupt so that you can call it. This is easy to forget.Use a software interrupt without enabling interrupts? what do you mean?
I suggest you put a printf and a while (1) loop in your interrupt handler until you confirm you can get back into the kernel.
Do you have 2 stacks ?
Don't worry about other things yet. It will make sense as you implement it.