A modem includes modem circuitry and modem software that is executed by a
processor. When the modem circuitry detects that the modem software is
nonfunctional, it enters an on-hook state to prevent blocking of a
coupled telephone line. A nonfunctional state of the modem software is
detected when the modem software ceases to interact with the modem
circuitry in an expected manner. In a first operation, the nonfunctional
state is determined when the modem software does not reset a count down
timer in the modem circuitry before the count down timer reaches a
termination value. In a second operation, the nonfunctional state is
determined when the modem software does not access the modem circuitry
before the count down timer reaches the termination value. In a third
operation, the nonfunctional state is determined when the modem software
ceases writing transmit data to DMA memory.