Misplaced Pages

XMODEM

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program . It allowed users to transmit files between their computers when both sides used MODEM. Keith Petersen made a minor update to always turn on "quiet mode", and called the result XMODEM.

#16983

90-409: XMODEM, like most file transfer protocols, breaks up the original data into a series of " packets " that are sent to the receiver, along with additional information allowing the receiver to determine whether that packet was correctly received. If an error is detected, the receiver requests that the packet be re-sent. A string of bad packets causes the transfer to abort. XMODEM became extremely popular in

180-430: A < SOH > character, a "block number" from 1-255, and the "inverse" block number—255 minus the block number. Block numbering starts with 1 for the first block sent, not 0. The header was followed by the 128 bytes of data, and then a single-byte checksum . The checksum was the sum of all 128 data bytes in the packet modulo 256. The complete packet was thus 132 bytes long, containing 128 bytes of payload data , for

270-501: A TCP segment is carried in one or more IP packets , which are each carried in one or more Ethernet frames . The basis of the packet concept is the postal letter: the header is like the envelope, the payload is the entire content inside the envelope, and the footer would be your signature at the bottom. Network design can achieve two major results by using packets: error detection and multiple host addressing . Communications protocols use various conventions for distinguishing

360-517: A byte level. A packet may contain any of the following components: IP packets are composed of a header and payload. The header consists of fixed and optional fields. The payload appears immediately after the header. An IP packet has no trailer. However, an IP packet is often carried as the payload inside an Ethernet frame, which has its own header and trailer. Per the end-to-end principle , IP networks do not provide guarantees of delivery, non-duplication, or in-order delivery of packets. However, it

450-544: A subcarrier alongside the sound carrier. This means that the FM or AM regular mono sound carrier is left alone for reception by monaural receivers. The NICAM packet (except for the header) is scrambled with a nine-bit pseudo-random bit-generator before transmission. Making the NICAM bitstream look more like white noise is important because this reduces signal patterning on adjacent TV channels. Osborne 1 The Osborne 1

540-442: A "traditional" XMODEM transfer. Unfortunately, this attempt at backward compatibility had a downside. Since it was possible that the initial C character would be lost or corrupted, it could not be assumed that the receiver did not support XMODEM-CRC if the first attempt to trigger the transfer failed. The receiver thus tried to start the transfer three times with C , waiting three seconds between each attempt. This meant that if

630-503: A 12" GM-12 external monitor. The processor, memory, floppy controller, PIA, ACIA and EPROMs are interconnected with standard TTL devices. The Osborne 1 has bank switched memory. Unusual for a system based on the Z80, all I/O is memory mapped, and the Z80 I/O instructions are only used to select memory banks. Bank 1 is "normal" mode, where user programs run; this includes a 4 KB area at

720-523: A dossier type folder and came on two 5 1 ⁄ 4 " diskettes.). Compiled and MBASIC interpreted versions of Colossal Cave Adventure are available for the Osborne. Some type-in games use the Osborne's character-mode graphics. InfoWorld reported that Osborne's booth at the April 1981 West Coast Computer Faire "was packed for the entire show". Some attendees praised the computer, while others said that

810-461: A front panel socket. OCC also sold the POWR-PAC inverter that allows running an Osborne from a 12 volt car cigarette lighter . Early models (tan case) are wired for 120 V or 240 V only. Later models (blue case, AKA Osborne 1A/1B, shipping after May 1982) can be switched by the user to run on either 120 V or 230 V, 50 or 60 Hz. There is no internal fan; a hatch at the top of

900-533: A hole in the case; any IEEE-488 or printer cable has to be modified for the Osborne. The diskette drives installed in the Osborne 1 are Siemens FDD 100-5s (MPI drives were also used later), which were actually manufactured in California by GSI, a drive manufacturer that the German firm had purchased. They utilize a custom controller board that Osborne produced, which among other things has a single connector for

990-476: A large bundle of software that was almost equivalent in value to the machine itself, a practice adopted by other CP/M computer vendors. Competitors quickly appeared, such as the Kaypro II . The Osborne 1 was developed by Adam Osborne and designed by Lee Felsenstein , first announced in early 1981. Osborne, an author of computer books decided that he wanted to break the price of computers. The computer's design

SECTION 10

#1732797673017

1080-473: A magazine for Osborne users. The company initially had ten prototypes produced, as described in an email by Felstenstein: I can confirm that this is one of the first ten prototype units built, known as the "metal case" units. I don't think they had serial numbers. The cases were made by Galgon Industries in Hayward, California but their quote for production was prohibitive, so work immediately commenced on

1170-406: A new XMODEM standard. However, Ward Christensen refused to do this, as it was precisely the lack of these features, and the associated coding needed to support them, which led to XMODEM's widespread use. As he explained: Another problem with XMODEM was that it required the transfer to be user-driven rather than automated. Typically this meant the user would navigate on the sender's system to select

1260-510: A non-aware XMODEM implementation, this data would simply be ignored while it waited for the SOH to arrive, so the characters would not be echoed and the implementation could fall back to conventional XMODEM. With "aware" software, the file name could be used to save the file locally. Transfers could continue with another <NAK> , each file is saved under the name being sent to the receiver. Jerry Pournelle in 1983 described MODEM7 as "probably

1350-469: A number of common modifications into his YMODEM protocol, but poor implementation led to a further fracturing before they were re-unified by his later ZMODEM protocol. ZMODEM became very popular, but never completely replaced XMODEM in the BBS market. The original XMODEM used a 128-byte data packet, the basic block size used on CP/M floppy disks . The packet was prefixed by a simple 3-byte header containing

1440-519: A second-source of the Western Digital 1793 . The parallel port is connected through a memory-mapped Motorola MC6821 Peripheral Interface Adapter (PIA) which allows the port to be fully bidirectional; the Osborne manuals state that the port implemented the IEEE-488 interface bus but this is rarely used. The parallel port uses a card-edge connector etched on the main board, exposed through

1530-469: A spacecraft instrument is transmitted using one or more packets. Packetized elementary stream (PES) is a specification associated with the MPEG-2 standard that allows an elementary stream to be divided into packets. The elementary stream is packetized by encapsulating sequential data bytes from the elementary stream between PES packet headers. A typical method of transmitting elementary stream data from

1620-508: 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 ACK ing or NAK ing. The receiver does not have to ACK every packet; it

1710-456: A tendency of overheating. The video system uses part of the main memory and TTL logic to provide video and sync to an internal 5-inch monochrome monitor. The same signals are provided on a card-edge connector for an external monitor; both internal and external monitor display the same video format. The internal monitor is specified as 3.55" horizontal, and 2.63" vertical making the actual viewing size even smaller at 4.42". Osborne also provided

1800-444: A total channel efficiency of about 97%. The file was marked "complete" with a < EOT > character sent after the last block. This character was not in a packet, but sent alone as a single byte. Since the file length was not sent as part of the protocol, the last packet was padded out with a "known character" that could be dropped. In the original specification, this defaulted to <SUB> or 26 decimal, which CP/M used as

1890-457: A video or audio encoder is to first create PES packets from the elementary stream data and then to encapsulate these PES packets inside an MPEG transport stream (TS) packets or an MPEG program stream (PS). The TS packets can then be transmitted using broadcasting techniques, such as those used in an ATSC and DVB . In order to provide mono compatibility , the NICAM signal is transmitted on

SECTION 20

#1732797673017

1980-474: 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

2070-474: 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

2160-406: Is common practice to layer a reliable transport protocol such as Transmission Control Protocol on top of the packet service to provide such protection. The Consultative Committee for Space Data Systems ( CCSDS ) packet telemetry standard defines the protocol used for the transmission of spacecraft instrument data over the deep-space channel. Under this standard, an image or other data sent from

2250-521: Is provided and no provision for memory expansion exists on the motherboard . The boot program loader and significant parts of the BIOS are stored in a 4 kilobyte EPROM , which is bank-switched . A second EPROM is used as a fixed character generator, providing 96 upper and lower case ASCII characters and 32 graphic symbols; the character generator is not accessible to the CPU. The eighth bit of an ASCII character

2340-463: Is the first commercially successful portable computer , released on April 3, 1981 by Osborne Computer Corporation . It weighs 24.5 lb (11.1 kg), cost US$ 1,795, and runs the CP/M 2.2 operating system. It is powered from a wall socket , as it has no on-board battery, but it is still classed as a portable device since it can be hand-carried when the keyboard is closed. The computer shipped with

2430-480: Is used to select underlined characters. Serial communications are through a memory-mapped Motorola MC6850 Asynchronous Communications Interface Adapter (ACIA); a jumper on the motherboard allows the MC6850 to be set for either 300 and 1200 baud or 600 and 2400 baud communications, but other bit rates are not available. The floppy disk drives are interfaced through a Fujitsu 8877 disk controller integrated circuit,

2520-604: Is where the boot ROM was mapped. Bank 3 has only 4 KB by 1 bit of memory, used solely to hold the "dim" attribute of the video system. The computer runs on the CP/M 2.2 operating system . A complete listing of the ROM BIOS is in the Osborne technical manual. The Osborne 1 came with a bundle of application software with a retail value of more than US$ 1500, including the WordStar word processor , SuperCalc spreadsheet, and

2610-468: The CBASIC and MBASIC programming languages. The exact contents of the bundled software varied depending on the time of purchase; for example, dBASE II was not included with the first systems sold. The Osborne 1 is powered by a wall plug with a switched-mode power supply , and has no internal battery. An aftermarket battery pack offering 1-hour run-time is available, and connects to the system through

2700-507: The Citizens' Advisory Council on National Space Policy "I was able to type ... without disrupting the meeting at all. The Osborne 1 is quiet and efficient and not at all distracting". Pournelle said "You can't beat it for the price, under $ 2,000 bucks with over a thousand dollars' worth of software. An Osborne and an Epson printer will put you in the computing/word-processing business cheaper than anything I can think of", and later described

2790-576: The Epson HX-20 . The Osborne 1 was described as "a cross between a World War II field radio and a shrunken instrument panel of a DC-3 ", and Felstenstein admitted that carrying two of them to a trade show "nearly pulled my arms out of their sockets". The computer nonetheless amazed observers; InfoWorld reported that "By far the most frequently asked question at" the West Coast Computer Faire "was, 'What do you think of

XMODEM - Misplaced Pages Continue

2880-570: The IBM PC , which is significantly more powerful and expandable. Following the release of the IBM-compatible Compaq Portable in 1983, the market for CP/M computers shrank and Osborne was unable to compete. The 64 KB main memory is made of four rows of eight type 4116 dynamic RAM chips, each with 16,384 bits . Memory is shared, with 60 KB available for software and 4 KB reserved for video memory . No parity

2970-475: The IBM PC compatible family of computers. The block size was chosen to match the common cluster size of the MS-DOS FAT file system on contemporary hard drives , making buffering data for writing simpler. Over reliable (error-free) connections, it is possible to eliminate latency by "pre-acknowledging" the packets, a technique known more generally as " protocol spoofing ". This is normally accomplished in

3060-450: The Osborne 1 "represented an advancement of the price/performance ratio for microcomputers". Adam Osborne agreed but emphasized the price, stating that its performance was "merely adequate": "It is not the fastest microcomputer , it doesn't have huge amounts of disk storage space, and it is not especially expandable." Beyond the price, advertisements emphasized the computer's portability and bundled software. The company sold 11,000 units in

3150-525: The Osborne 1A/1B (blue case) can be slid open for ventilation. Osborne and other companies produced many Osborne 1 accessories: Aftermarket vendors offered several other upgrades to the basic model, including third-party double density disk drives, external hard disks , and a battery-backed RAM disk that fits in a disk storage compartment. Osborne Computer Corporation offered a "Screen-Pac" column upgrade that could be switched between original 52 column, 80 column and 104 column modes. Osborne 1 systems with

3240-565: The Screen-Pac upgrade have an RCA jack installed on the front panel to allow users to connect an external composite video monitor . This modification was developed in Australia by Geoff Cohen and Stuart Ritchie, and taken to the US by Stuart who turned up unannounced and sat outside Adam Osborne's office for two days. Osborne bought the mod and both of them worked with the company to implement

3330-454: 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 systems like Telebit models which have 19 kB speed in one direction and 75 bits/s in the return channel. One of the first third-party mailers for the FidoNet system was SEAdog , written by the same author as

3420-435: The business". In 1981, the daily Israeli newspaper Maariv , provided several Osborne 1 to its reporters. The computers were equipped with acoustic couplers . This configuration allowed a reporter to submit an article digitally directly from the field to the newsroom. Maariv used a localized version of Osborne 1 that supported Hebrew. Freelance journalist David Kline praised the Osborne 1's durability, reporting in 1982 that

3510-428: 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

3600-455: The computer as "the VW of the microcomputer field: It's cheap, reliable, handles standard programs well". A separate review in the magazine stated "If you need a solid, well-supported, well-documented business system at a reasonable price, you should give [the Osborne 1] a great deal of consideration". The reviewer calculated that after subtracting $ 1,530 for the retail price of the bundled software

3690-442: The duration of one session and data is typically transmitted as a continuous bit stream . In the seven-layer OSI model of computer networking , packet strictly refers to a protocol data unit at layer 3, the network layer . A data unit at layer 2, the data link layer , is a frame . In layer 4, the transport layer , the data units are segments and datagrams . Thus, in the example of TCP/IP communication over Ethernet ,

XMODEM - Misplaced Pages Continue

3780-434: The early bulletin board system (BBS) market, largely because it was simple to implement. It was also fairly inefficient, and as modem speeds increased, this problem led to the development of a number of modified versions of XMODEM to improve performance or address other problems with the protocol. Christensen believed his original XMODEM to be "the single most modified program in computing history". Chuck Forsberg collected

3870-474: The elements of a packet and for formatting the user data. For example, in Point-to-Point Protocol , the packet is formatted in 8-bit bytes, and special characters are used to delimit elements. Other protocols, like Ethernet, establish the start of the header and data elements by their location relative to the start of the packet. Some protocols format the information at a bit level instead of

3960-419: The end-of-file marker inside its own disk format. The standard suggested any character could be used for padding, but there was no way for it to be changed within the protocol itself – if an implementation changed the padding character, only clients using the same implementation would correctly interpret the new padding character. Files were transferred one packet at a time. When received, the packet's checksum

4050-609: The file and issuing a local command to receive was unknown, XMODEM allowed up to 90 seconds for the receiver to begin issuing requests for data packets. Although XMODEM was robust enough for a journalist in 1982 to transmit stories from Pakistan to the United States with an Osborne 1 and acoustic coupler over poor-quality telephone lines, the protocol had several flaws. XMODEM was written for CP/M machines, and bears several marks of that operating system . Notably, files on CP/M were always multiples of 128 bytes, and their end

4140-427: The file size as a 4-byte value, and the name of the program sending the file. A normal XMODEM implementation would simply discard the packet, the assumption being that the packet number had been corrupted. But this led to a potential time delay if the packet were discarded, as the sender could not tell whether the receiver had responded with a <NAK> because it did not understand the zero packet or because there

4230-421: The file they wanted, and then use a command to put that system into the "ready to send" mode. They would then trigger the transfer from their end using a command in their terminal emulator. If the user wanted to transfer another file, they would have to repeat this process again. For automated transfers between two sites, a number of add-ons to the XMODEM protocol were implemented over time. These generally assumed

4320-466: The first eight months of sales, and sales at their peak reached 10,000 units per month. The Osborne 1's principal deficiencies are a tiny 5-inch (13 cm) display screen, use of single-sided, single-density floppy disk drives that store 90 kB per disk, and considerable unit weight. Adam Osborne decided to use single-sided disk drives out of concern about double-sided drives suffering head damage from rough handling . A single-density disk controller

4410-400: The fixed delay grew in proportion to time needed to send the packet. For instance, at 2400 bit/s the packets took only 0.55 seconds to send, so if the <ACK> / <NAK> still took 0.2 seconds to make it back to the user's machine, the efficiency has fallen to 71%. At 9600 bit/s it is just under 40% – more time is spent waiting for the reply than is needed to send

4500-402: The header was expected. ACK s and NAK s were extended to three-byte "packets", starting with the ACK or NAK , then the packet number, then the complement of the packet number, in the same fashion as the original XMODEM packet header. The window size was normally set to six packets. SEAlink was not expected to operate over X.25 or similar links, and thus did not perform escaping. This

4590-481: The latter is also known as the payload . Control information provides data for delivering the payload (e.g., source and destination network addresses , error detection codes, or sequencing information). Typically, control information is found in packet headers and trailers . In packet switching , the bandwidth of the transmission medium is shared between multiple communication sessions, in contrast to circuit switching , in which circuits are preallocated for

SECTION 50

#1732797673017

4680-399: The link hardware, notably Telebit modems. The modems, when the option was turned on, would notice the XMODEM header and immediately sent an ACK . This would cause the sending XMODEM program to immediately send the next packet, making the transfer continuous, like an infinite-sized window. The modems also suppress the ACK being sent by the XMODEM software at the far end, thereby freeing up

4770-534: The low-speed return channel. The system can also be implemented in the protocol itself, and variations of XMODEM offered this feature. In these cases, the receiver would send the ACK as soon as the packet started, in the same fashion as the Telebit modems. Since this feature is only an alteration of the receiver-side behavior, it does not require any changes in the protocol on the sender's side. YMODEM formalized this system. This concept should be contrasted with

4860-478: The mod. As a nod toward where it came from, it was called the "Koala Project". Geoff developed other upgrades for Osborne's and was regarded as the Australian expert on the computers. Since, like most CP/M systems, the display of the Osborne does not support bit-mapped graphics , games are typically character based games, like Hamurabi or text adventures (the 1982 game Deadline , for example, packaged in

4950-406: The most popular microcomputer communications program in existence". MODEM7 sent the filename as normal text, which meant it could be corrupted by the same problems that XMODEM was attempting to avoid. This led to the introduction of TeLink by Tom Jennings , author of the original FidoNet mailers. TeLink avoided MODEM7's problems by standardizing a new "zero packet" containing information about

5040-457: The new Osborne computer?'" BYTE Magazine wrote: "(1) it will cost $ 1795, and (2) it's portable!" The word processing, spreadsheet, and other bundled software alone was worth $ 1,500; as InfoWorld stated in an April 1981 front-page article on the new computer after listing the included software, "In case you think the price printed above was a mistake, we'll repeat it: $ 1795". West Coast Computer Faire attendees stated, InfoWorld said, that

5130-406: The next packet should have a one-higher number. If it instead received the same block number this was not considered serious, it was implied that the <ACK> had not been received by the sender, which had then re-sent the packet. Any other packet number signalled that packets had been lost. Transfers were receiver-driven; the transmitter would not send any data until an initial <NAK>

5220-490: The one used in SEAlink, which changes the behavior on both sides of the link. In SEAlink, the receiver stops sending the ACK entirely, and the sender changes its behavior to not expect them. Packet (information technology) In telecommunications and computer networking , a network packet is a formatted unit of data carried by a packet-switched network . A packet consists of control information and user data;

5310-454: The original file. This included the file's name, size, and timestamp , which were placed in a regular 128 byte XMODEM block. Whereas a normal XMODEM transfer would start with the sender sending "block 1" with a <SOH> header, the TeLink header packet was labeled "block 0" and began with a <SYN> . The packet contained the file creation date and time, filename up to 16 characters,

5400-433: The other end, backing off features as required. XMODEM-1K was originally one of the many improvements to XMODEM introduced by Chuck Forsberg in his YMODEM protocol. Forsberg suggested that the various improvements were optional, expecting software authors to implement as many of them as possible. Instead, they generally implemented the bare minimum, leading to a profusion of semi-compatible implementations, and eventually,

5490-463: 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 SYN SOH , reducing the chance that

SECTION 60

#1732797673017

5580-406: The packet. A number of new versions of XMODEM were introduced in order to address these problems. Like earlier extensions, these versions tended to be backward-compatible with the original XMODEM, and like those extensions, this led to further fracturing of the XMODEM landscape in the user's terminal emulator. In the end, dozens of versions of XMODEM emerged. WXmodem , short for "Windowed Xmodem",

5670-666: The plastic cases. The circuit board was ready in January 1981 and these were built shortly thereafter. They were used in the first ads ("the guy on the left doesn't stand a chance") in which the veins on the hand of the guy on the right bulge as he struggles with the 30-pound weight of his transformer-powered luggable. These were the units we took to the West Coast Computer Faire and the National Computer Conference in early 1981. The computer

5760-416: The power and data lines. The FDD 100-5 was trouble-prone as Osborne's quality control was lacking, and many of the controller boards have soldering defects. In addition, the drive cable is not keyed and can be easily installed upside-down, which shorts out components in the computer. There are also problems with the drive head going past track 0 and getting stuck in place. The combo power/data cable also has

5850-452: The price of the computer was "only $ 265 ... in a way you are getting a software package with a computer thrown in for (almost) free". He praised the quality of the documentation, and agreed with Pournelle that the screen's size did not cause difficulty. James Fallows agreed that the screen, although "the size of a postcard ... is much easier to read than that would suggest", and described the computer as "the best bargain on computer power in

5940-400: The receiver sending a single NAK character to the sender, which then starts sending a single SOH to indicate the start of the data, and then packets of data. MODEM7 changed this behavior only slightly, by sending the filename, in 8.3 filename format, before the <SOH> . Each character was sent individually and had to be echoed by the receiver as a form of error correction. For

6030-429: The receiver's <ACK> to make it back to the sender and the next packet to start hitting the receiver (0.1 seconds in both directions), the overall time for one packet would be 4.6 seconds, just over 92% channel efficiency. The time for the <ACK> / <NAK> process was a fixed function of the underlying communications network, not of the performance of the modems. As modem speeds increased,

6120-474: The screen was too small; many agreed "that the Osborne 1 represented an advancement of the price/performance ratio for microcomputers", the magazine said. Jerry Pournelle wrote in BYTE that the small size of the screen surprised him by not being a problem, and stated that after using it at Caltech when Voyager 1 arrived at Saturn , "a dozen science writers were ready to go buy an Osborne 1". He reported that at

6210-483: The sender would continue sending file after file, with the receiver attempting to trigger the next file by sending a NAK as normal at the start of a transfer. When the NAK s timed out, it could be assumed that either there were no more files, or the link was broken anyway. MODEM7 , also known as MODEM7 batch or Batch XMODEM , was the first known extension of the XMODEM protocol. A normal XMODEM file transfer starts with

6300-504: The splitting out of the name "YMODEM" into "XMODEM-1K" and a variety of YMODEMs. Thus XMODEM-1K actually post-dates YMODEM, but remained fairly common anyway. NMODEM is a file transfer protocol developed by L. B. Neal, who released it in 1990. NMODEM is essentially a version of XMODEM-CRC using larger 2048 byte blocks, as opposed to XMODEM's 128 byte blocks. NMODEM was implemented as a separate program, written in Turbo Pascal 5.0 for

6390-481: The then-popular .arc data compression format. SEAdog included a wide variety of improvements, including SEAlink , an improved transfer protocol based on the same sliding window concept as WXmodem. It differed from WXmodem mostly in details. One difference is that SEAlink supported the "zero packet" introduced by TeLink, which is needed in order to operate as a drop-in replacement for TeLink in FidoNet systems where

6480-407: The throughput at 9600 bit/s is 81%, given the same assumptions as above. XMODEM-1K was an expanded version of XMODEM-CRC, which indicated the longer block size in the sender by starting a packet with the <STX> character instead of <SOH> . Like other backward-compatible XMODEM extensions, it was intended that a -1K transfer could be started with any implementation of XMODEM on

6570-474: The top of the address space which is video memory. Bank 2 is called "shadow". The first 4 KB of this address space is the ROM, and 4 KB is reserved for the on-board I/O ports: the disk controller, the keyboard, the parallel port PIA, the serial port ACIA, and a second PIA chip used for the video system. All memory above the first 16 KB is the same memory as Bank 1. This is the mode of the system on power up, because this

6660-411: The transfer. A <NAK> was also sent if the receiver did not receive a valid packet within ten seconds while still expecting data due to the lack of a <EOT> character. A seven-second timeout was also used within a packet, guarding against dropped connections in mid-packet. The block numbers were also examined in a simple way to check for errors. After receiving a packet successfully,

6750-438: The user selected XMODEM-CRC while attempting to talk to any XMODEM, as it was intended, there was a potential 10 second delay before the transfer started. To avoid the delay, the sender and receiver would generally list XMODEM-CRC separately from XMODEM, allowing the user to select "basic" XMODEM if the sender didn't explicitly list it. To the average user, XMODEM-CRC was essentially a "second protocol", and treated as such. This

6840-419: Was a transmission error. As TeLink was normally used only by FidoNet software, which demanded it as part of the FidoNet standards, this did not present a real-world problem as both ends would always support this standard. The basic "block 0" system became a standard in the FidoNet community, and was re-used by a number of future protocols like SEAlink and YMODEM . The checksum used in the original protocol

6930-401: Was a useful general-purpose protocol. However, it remained rare outside the FidoNet world, and was rarely seen in user-facing software. Another way to solve the throughput problem is to increase the packet size. Although the fundamental problem of latency remains, the speed at which it becomes a problem is higher. XMODEM-1K with 1024-byte packets was the most popular such solution. In this case,

7020-477: Was also needed so the zero packet would work properly, as this standard used the SYN character that WXmodem had re-purposed. On top of these changes, it added an "Overdrive" mode for half duplex links. This suppressed ACKs for packets that were successfully transferred, in effect making the window of infinite size. This mode was indicated by a flag in the zero block. SEAlink later added a number of other improvements and

7110-498: Was based largely on the Xerox NoteTaker , a prototype developed at Xerox PARC in 1976 by Alan Kay . It was designed to be portable, with a rugged ABS plastic case and a handle. The Osborne 1 is about the size and weight of a sewing machine and was advertised as the only computer that would fit underneath an airline seat . It is now classified as a "luggable" computer when compared to those later "laptop" designs such as

7200-464: Was calculated by the receiver and compared to the one received from the sender at the end of the packet. If the two matched, the receiver sent an < ACK > message back to the sender, which then sent the next packet in sequence. If there was a problem with the checksum, the receiver instead sent a < NAK > . If a <NAK> was received, the sender would re-send the packet, and continued to try several times, normally ten, before aborting

7290-425: Was designed to be backwardly compatible with XMODEM. To do this, the receiver sent a C (capital C) character instead of a <NAK> to start the transfer. If the sender responded by sending a packet, it was assumed the sender "knew" XMODEM-CRC, and the receiver continued sending C 's. If no packet was forthcoming, the receiver assumed the sender did not know the protocol, and sent an <NAK> to start

7380-470: Was due to the use of a simple checksum for error correction, which is susceptible to missing errors in the data if two bits are reversed, which can happen with a suitably short burst of noise. Additionally, similar damage to the header or checksum could lead to a failed transfer in cases where the data itself was undamaged. Many authors introduced extensions to XMODEM to address these and other problems. Many asked for these extensions to be included as part of

7470-486: Was extremely simple, and errors within the packet could go unnoticed. This led to the introduction of XMODEM-CRC by John Byrns, which used a 16-bit CRC in place of the 8-bit checksum. CRCs encode not only the data in the packet, but its location as well, allowing it to notice the bit-replacement errors that a checksum would miss. Statistically, this made the chance of detecting an error less than 16 bits long 99.9969%, and even higher for longer error bit strings. XMODEM-CRC

7560-403: Was marked within a block with the <EOT> character. These characteristics were transplanted directly into XMODEM. However, other operating systems did not feature either of these peculiarities, and the widespread introduction of MS-DOS in the early 1980s led to XMODEM having to be updated to notice either a <EOT> or <EOF> as the end-of-file marker. For some time it

7650-486: Was not true of FidoNet mailers, however, where CRC was defined as the standard for all TeLink transfers. Since the XMODEM protocol required the sender to stop and wait for an <ACK> or <NAK> message from the receiver, it tended to be quite slow. In the era of 300 bit/s modems, the entire 132-byte packet required 4.4 seconds to send (132 bytes * (8 bits per byte + 1 start bit + 1 stop bit) / 300 bits per second). Assuming it takes 0.2 seconds for

7740-404: Was proposed to avoid this problem, but it is not clear if this was widely implemented. XMODEM was designed for simplicity, without much knowledge of other file transfer protocols – which were fairly rare anyway. Due to its simplicity, there were a number of very basic errors that could cause a transfer to fail, or worse, result in an incorrect file which went unnoticed by the protocol. Most of this

7830-419: Was sent by the receiver. This was a logical outcome of the way the user interacted with the sending machine, which would be remotely located. The user would navigate to the requested file on the sending machine, and then ask that machine to transfer it. Once this command was issued, the user would then execute a command in their local software to start receiving. Since the delay between asking the remote system for

7920-475: Was suggested that sending a <CAN> character instead of an <ACK> or <NAK> should be supported in order to easily abort the transfer from the receiving end. Likewise, a <CAN> received in place of the <SOH> indicated the sender wished to cancel the transfer. However, this character could be easily "created" via simple noise-related errors of what was meant to be an <ACK> or <NAK> . A double- <CAN>

8010-550: Was used to keep costs down. In September 1981, Osborne Computer Company had its first $ 1 million sales month. Sales were hurt by the company's premature announcement of superior successor machines such as the Osborne Executive , which replaced the Osborne 1's 52 column screen with an 80 column screen. This phenomenon was later called the Osborne effect . From 1982 to 1985, the company published The Portable Companion ,

8100-501: Was widely imitated as several other computer companies began offering low-priced portable computers with bundled software. The Osborne's popularity was surpassed by the similar Kaypro II ; which has a larger, 9 inches (23 cm) CRT that can display 80 characters on 24 lines, and double density floppies that can store twice as much data. Osborne Computer Corporation was unable to effectively respond to Kaypro until after 8-bit , CP/M-based computers were obsolete. In 1981, IBM released

#16983