Fill character
This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. (November 2023) |
This article relies largely or entirely on a single source. (March 2024) |
In computer terminology, a fill character is a character transmitted solely for the purpose of consuming time. It does this by filling a timeslot on a data transmission line which would otherwise be forced to be idle (empty). In this way, fill characters provide a simple way of timing required idle times.
Fill characters are usually used in response to some real-world limitation. For example, mechanical computer printers such as the earliest dot matrix printers may have been able to print 30 characters per second, but when a "carriage return" character was received and the printhead began returning to the left margin, there was a noticeable delay before the printing of the next line could begin. Unlike modern printers, these early printers contained essentially no buffering, nor did they do any handshaking, so there would be no place to store the characters which would be received while the printhead was in the process of returning to the left margin, nor any way to tell the sender to temporarily stop transmitting characters. Instead, one or more fill characters would be transmitted to cover this time.
In its strictest definition, fill characters cause no action to be performed at all; they simply consume time. The ASCII "null" character is commonly used for this purpose. In actual practice with printers, though, one of the time slots that would otherwise contain a fill character was usually used to contain the "line-feed" character that caused the paper to advance by one line. For some printers (such as teleprinters), this was all the "filling" that was needed.
In some situations, the transmission delay that a fill character would provide could also be provided by using a useful but non-printing character. It is for this reason that teleprinters (teletypes) sent their newline sequence as a Carriage-Return character followed by Line-Feed character rather than the other way around. Returning the printing mechanism to the left margin required up to about two character times and the reception of the Line-Feed character covered the additional delay time required. In addition, the teleprinter could act on the Line-Feed while the printing mechanism was still moving leftwards, optimizing the use of the data line.
As described above, printers commonly required fill characters when the carriage was returned to the left margin. With other equipment, fill characters were occasionally required in other circumstances. For example the VT05 video terminal sometimes required fill characters when a "scroll up" operation was performed; the process of shuffling data in the shift register memory of the VT05 was slow.
In a similar fashion, communications protocols often require fill characters at points when processing must be performed.
References
[edit]- van Dam, Andries (1 January 2003). "Justification". Encyclopedia of Computer Science. John Wiley and Sons Ltd. p. 944. ISBN 978-0-470-86412-8. Retrieved 29 November 2023.