All IOblix devices, the com ports and the lpt ports install a level 6
insterrupt handler. So when you get an interrupt from one of your com ports
all handlers (4 x comintr() and 2 x lptintr()) might be called until the
first confirmed having handled the interrupt.
Which means when the lpt-handlers are before the com-handlers in the isr
queue, they will be called first and might cause a crash when something bad
happens (ok, this doesn't explain your success with printf in comintr).
I wouldn't have any way to test an lpt port, anyhow.
I guess nobody ever tested it. I found a message from Ignatios in the
cvs-log where he wrote that IOblix lpt is untested. But I think he tested
the serial port without panics.
Any ideas?