Hacker News new | past | comments | ask | show | jobs | submit login

From: (http://wiretap.area.com/Gopher/Library/Techdoc/Lore/rumor.ne...):

  From:  hinojosa@hp-sdd.hp.com (Daniel Hinojosa)
  Subject:  Printer chain problems
  Date:  6 Feb 89
  
  A friend of mine told a story of one of these printers he and
  another friend destroyed in a most interesting manner.  These
  printers had, it would seem, a sort of chain that held all of
  the characters.  I guess they held about three complete sets of
  the alphabet plus special characters.
  
  These chaps read the chain and created a file in their system
  that had all of the characters of one pass in it.  They gave the
  command to print the file.  Upon doing so the printer starts to
  spin the chain, then SMACK!  Trying to print all of those
  characters at once while the chain was moving, didn't quite
  work.  The fellow said they found the print characters in
  various parts of their office for years thereafter.
  
  
  From:  johnl@ima.ima.isc.com (John R. Levine)
  Subject:  Printing a line
  Date:  8 Feb 89
  
  ...The letters on the print chain are all scrambled up.  Each
  time the chain moves, some fraction of the letters on the chain
  will be in front of the place where those particular letters are
  supposed to print, so the printer fires just those hammers.
  Then the chain moves, some more hammers fire, etc.
  
  The particular hack that Mr.  Hinojosa and I described
  reprogrammed the printer so it would think that every letter on
  the line was correctly placed and so fire all the hammers at
  once.  That makes quite a lot of noise (normally, only 10 or so
  of the 120 or 132 hammers go off at once) and moreover turned
  out to use more power than the printer was prepared to supply
  thus blowing the fuse and causing other problems.
  
  
  From:  darin@nova.laic.uucp (Darin Johnson)
  Subject:  Problematic printouts
  Date:  9 Feb 89
  
  Actually, the print chains are not in alphabetical order.  They
  are magically ordered by some arcane formula.  Some of the
  printers are designed so that the hammer will strike the
  character just as the correct character is at the correct place
  in the line (the chain rotates at very fast speeds).  Often,
  many characters will get printed at the same time, and no more
  than 2 rotations of the chain are ever needed to print a line
  (which is why they are fast).  Presumably, the right set of
  characters on a line will cause all the hammers (132) to strike
  at the same time (while the chain is rotating).
  
  I had related a story like this to a friend in college and
  (unknown to me) had decided to try it.  He spent a night
  carefully going over the chain and determining the proper
  sequence to send.  The next evening, he decided to print his
  file, and had me watch (only one line was printed).  The job
  printed and we ran downstairs.  The printer was still rocking
  slightly.  Opening up the cover, the chain was still intact, but
  had come completely off the drive that held it.  We tore out the
  offending sheet of paper with the incriminating line (smudged
  and garbled) and complained to the operator on duty that the
  printer was broken again.  I don't think my friend ever tried it
  again.



Those (apocryphal?) stories are exactly the wrong way to think about how the IBM 1401's line printer works. The line printer has a chain with all the characters that whips around very fast, but it is cleverly designed so you only fire one hammer at a time - it's not even possible to fire multiple hammers at once. The chain spacing is slightly off from the print position spacing (think a vernier scale), so there's only one chain position and print position lined up at any instant. A tiny movement of the chain shifts the alignment to a different character / print position, and so forth, so the potential print position shifts through the line much, much faster than the actual chain movement. Thus, every 11.1 microseconds, a single chain position lines up with a single print position; the 1401 fetches the corresponding character from memory and if it matches the chain's character the hammer fires.

If the chain spacing matched the print column spacing (what the stories describe), you'd fire a bunch of hammers at once, wait while the chain moves one position, fire a bunch more hammers, and so forth. This is much less efficient, since most of the time you're not doing anything. The 1401's approach also makes the circuitry simpler, since it only needs to check one character against one hammer at a time, rather than checking 132 characters at once.

The 1401's printer is actually even more tricky: the chain spacing and hammer spacing are almost in a 3:2 ratio, so each minuscule movement of the chain moves the alignment by 3 print positions and 2 chain positions. So you're never printing two chain positions consecutively. By the time the chain has moved enough for the alignment point to wrap around three times, the chain has moved one character's width and is ready to start again with the next character. 48 of these cycles gives each character one chance to be printed in each column, completing printing of one line. This all takes just 80 milliseconds.

The line printing mechanism is difficult to understand, so I made an animation to show what's happening: http://ibm-1401.info/KenShirriff-1403Animation.html


That's a fantastic animation. It would have been incredibly useful back in the day.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: