[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

Re: AW: [FWP] japh



On 16 Feb 2001, at 7:16, Pense, Joachim wrote:

> Ian wrote:
> 
> >As a a sometime user of an ASR33 (aka "teletype") there's a very good
> >reason for the CR/LF pair. The CR was sent first, and started the print
> >head moving. Then the LF, which advanced the platen. The CR motion took
> >longer, so needed a "dead" character after it. Unless you wanted to
> >overprint, CR-LF did fine. Otherwise you sent CR-NUL.
> 
> I somehow do not get the point. I understand CR moves the point to the left,
> LF one line down. I see no dead character there...

The problem is the timing: it took *more*than*a*character*time* to move 
the CR back to the left margin.  But less than two [at least on all the 
Teletype corp TTYs] and so the sequence:  xyz<Ret><LF>abc  would always 
have the 'abc' appearing just where it belonged at the left margin.  If 
you did "xyz<LF><RET>abc" the 'a' would be printed someplace in the 
middle of the next line, as the carriage was moving left.  In fact, if 
you did:    "....xyz<FORMFEED><RET>abcd.." you would get the 'a' 'b' 'c' 
printed on a funny diagonal slanting down and to the left across the 
bottom of the page being ejected.

Formfeed, "\f" to us'uns, took a LONG time and at the end of pages you 
had to put a fair bit of padding to ensure that the next char really was 
at the top of the next page and not printed while the paper was still 
advancing.

Also, almost every hardcopy terminals [e.g., DEC, TI "silent 700"s, etc] 
required some sort of delay after a <RETURN> before you could print the 
next char and be sure the carriage was at the left margin.  For *most*, 
one character time was enough, and so <RETURN><LINEFEED> was OK, but for 
example, the TI silent 700 series [printed on thermal paper] required 
several chars and so for that terminal you had to do: 
<RET><Pad><pad>...<PAD><LINEFEED>  [or you could put the padding after 
the linefeed --- anywhere you wanted after the <RET> and before the first 
printing character].  The PAD was generally either NUL [\0] or RUBOUT 
[\0177].

those of us with the misfortune of having to write TTY drivers for beasts 
like this needed to know the particular terminal type [e.g. "DEC 110" or 
some such] and there'd be strange algorithms [generally tuned 
empirically] to "compute" the right amount of padding [e.g., on a silent 
700 it was something like (carriage pos - 20)/15 = number of pad chars 
you needed, and similar kinds of things for <realtabs> and <formfeeds>.

  /Bernie\
-- 
Bernie Cosell                     Fantasy Farm Fibers
mailto:bernie@fantasyfarm.com     Pearisburg, VA
    -->  Too many people, too few sheep  <--          

==== Want to unsubscribe from Fun With Perl?  Well, if you insist...
==== Send email to <fwp-request@technofile.org> with message _body_
====   unsubscribe