Class 1: FCS Checking

All HDLC frames end in a 2 byte CRC Frame Check Sequence (FCS). The modem calculates the CRC of the packet and compares it with the value of the FCS received to determine if the packet was received correctly. According to the T30 specification the received FCS is passed on to the communications software at the end of the frame, followed by an OK or an error message. The software can theoretically ignore the FCS, as the modem checks it before reporting OK.

In reality, modems handle the FCS and status reporting differently. Some modems act according to the specification, some pass an invalid FCS, some do not pass on the FCS, and some report errors even on good packets.

Windows 95 fax requires the modem to supply a valid FCS bytes, or no FCS bytes. If the modem supplies incorrect FCS bytes, fax will still work in most cases. However, for the Non-Standard Facilities (NSF, or NSX) frames, inclusion of the additional bytes can cause the frame to be rejected. The NSF functions are written to assume that 2 FCS bytes are appended to the data and removes them before parsing the NSF frames. If parsing fails, it adds the removed bytes back on and attempts to parse again. If this fails, then the NSF frame is considered invalid. The net effect of this is that BFT capability does not work for this modem.

The fix for this problem requires a Windows 95 QFE fix for components AWFXIO32.DLL and AWCL1_32.DLL (Version 4.0.0.951). This problem will be fixed in NT-SUR and in the next version of Windows 9x.