The HP palmtop BIOS installs a special Int 07h handler on power-up. Certain DOS applications do not use the equipment check (see Int 11h on page 3-87) to determine whether or not a numeric coprocessor is present. Instead they execute certain numeric coprocessor initialization instructions and examine the outputs to determine whether or not the processor is present. Because of the configuration of the embedded 80186 CPU core in the palmtop computer, this will cause ESC Interrupts (Int 07h) to be generated. Without the benefit of the default Int 07h handler supplied by the BIOS such applications will "hang". The default handler "decodes" numeric coprocessor instructions, causing them to be skipped. The handler distinguishes between software generated "Int 07's" and those generated by recognition of an ESC opcode by the 80186 processor.
In the case that the Int 07h was generated by encountering a numeric floating point instruction, the instruction offset pushed onto the stack by the invocation of the Int 07h will point at the floating point instruction, that is, the ip will not have been advanced. A simple IRET therefore results in an infinite loop. The task of the Int 07h handler is to decode the length of the floating point instruction (pointed at by the segment/offset on the stack), and adjust the instruction pointer offset so that the IRET will point at the following instruction. This "skipping" of floating point instructions is generally all that is necessary for application programs that test for the presence of a numeric coprocessor in this manner to successfully determine that one is not present.