the end, dozens of versions of XMODEM emerged. WXModem WXmodem, short for "Windowed Xmodem", is a variant of XMODEM developed by Peter Boswell in 1986 for use on high-latency lines, specifically public X.25 systems and PC Pursuit. These have latencies that are far higher than the plain-old telephone service, which leads to very poor efficiency in XMODEM. Additionally, these networks often use control characters for flow control and other tasks, notably XON/XOFF will stop the data flow. Finally, in the case of an error that required a resend, it was sometimes difficult to know whether a SOH was a packet indicator or more noise. WXmodem adapted XMODEM-CRC to address these problems. One change was to escape a small set of control characters: DLE, XON, XOFF and SYN. These were escaped by inserting a DLE in front of them, and then modifying the character by XORing it with 64. In theory, this meant the packet might be as long as 264 bytes if it originally consisted entirely of characters that required escaping. These inserted and modified characters are not part of the CRC calculation, they are removed and converted at the receiving end before calculating the CRC. Additionally, all packets were prefixed with a SYN character, which meant the packet lead-in was SYNSOH, reducing the chance that a stray SOH would be confused for a packet header in various error cases. An unescaped SYN found in the body of a packet was an error. The major change in WXMODEM is the use of a sliding window to improve throughput on high-latency links. To do so, the ACK messages were followed by the packet number they were ACKing or NAKing. The receiver does not have to ACK every packet; it is allowed to ACK any number between one and four packets. An ACK with the fourth packet sequence number is assumed to ACK all four packets. An error causes a NAK to be sent immediately, with all packets from that number and after being re-sent. Requiring an ACK every four packets makes the system work like it has a packet size of 512 bytes, but in the case of an error, typically only requires 128 bytes to be re-sent. Moreover, it reduces the amount of data flowing in the reverse direction by four times. This is of little interest in the typical modem's full duplex operation, but is important in half duplex