dbcurtis 5 years ago

Those of us that were around in the days of mainframes and line printers remember that actually you sent 133 columns of characters to the printer, column 0 being the "carriage control" character. The most popular being blank, to advance one line, '1', to do a page eject a.k.a. top-of-form, and '+', overprint.

The story that I heard is that the '+' character's over-strike behavior was a side-effect of logic minimization in the printer controller of the 1403, and became very popular after someone discovered it.

IBM then issued an FCO (Field Change Order) that customer engineers installed in all 1403 printers that were on maintenance contracts, which was all of them, because you could not survive without a maintenance contract. The FCO "corrected the logic bug" that allowed overprinting. However, the newly announced 1403A printer supported overprinting as a feature.

The FCO included a toggle switch that allowed the customer engineer to do an instant field upgrade to the 1403A. Assuming, of course, that you paid for the field upgrade and increased rental and maintenance fees of the 1403A.

(I heard this story from an office mate who had been around in those days. He was a systems programmer that got the job by the then-standard path. As an undergrad, he figured out how to hack the OS to get free computer time. When they caught him, they offered him a job as an assistant systems programmer on the condition that he not share the secret.)

  • kens 5 years ago

    It was a bit different with the IBM 1403 printer on the IBM 1401 computer. You added a suffix to the write line instruction to suppress the line feed. This optional "space suppression" feature cost $63.

    As far as I can tell, using a '+' in the first column to overprint was a Fortran thing, known as Fortran Carriage Control.

    One entertaining feature of the 1403 was that form feeds were controlled by a 12-column paper tape. By punching holes in the tape, you could quickly form feed to 12 different positions on your page. (This was useful for pre-printed forms.) The only problem was if you did a form feed and there wasn't a hole in that column in the paper tape, the printer would feed at high speed through the entire box of paper without stopping. (The 1403 used a hydraulic motor for high-speed form feeds. If you see hydraulic fluid under the printer at the Computer History Museum, that's why.)

    • chiph 5 years ago

      How did the 1403 start & stop the paper advance? Once the paper gets moving, there's a lot of inertia there. Was there an air bladder in the hydraulic line to absorb fluid-hammer from the rapid pressure changes?

      One of the printers I worked on in the USAF had electromagnetic clutches - one would engage to hold the paper in place while the other would open to disengage the drive belt. To move the paper, the "hold" clutch would disengage and the "drive" clutch would engage for just long enough to move it the required distance. And then the clutch action would reverse (hold clutch engage, drive clutch release) to stop the paper's motion.

      After a while, the clutch material would wear out and you would get the infinite form-feed.

      Edit: For the curious, this was taken at the school at Sheppard AFB in 1983: https://imgur.com/a/J74K6wM

      • kens 5 years ago

        The 1403 has electrically-controlled valves to send fluid from the constantly-running pumps to the hydraulic motor to do a space (line feed) or skip (form feed). There's a back pressure bypass valve that relieves the pressure when the printer advance stops.

        The 1403 Field Engineering manual goes into great detail on the hydraulic system, starting at page 56. The momentum when stopping is described on page 62. Link: http://ibm-1401.info/0KenShirriff/IBM_Field_Engineering_Manu...

  • lucas_membrane 5 years ago

    IDK. The wikipedia article on the 1403 does not mention any 1403A, just 1403N and 1 through 7. I doubt the overprinting was an accident, 'PUT SKIP (0);' worked for all the versions of PL/1 I used from 1970 through around 1990. Didn't even IBM use it for drawing maps and graphs on the 1403? I remember that the standard was to fill a region with O's to get a lightly shaded region, next darker was O overstruck with X, then O overstruck with V and A, and darkest of all, X + O + V + A all on the same print position.

    The great story I heard about these printers but never verified is that there were 132 separate hammers, one for each print position 1-132. Thus, as the print chain spun around, each hammer fired when the correct character was in position for that hammer, and if you printed a line that matched the sequence of the characters on the chain, all the hammers would bang simultaneously, breaking the chain. Whether or not the sequence of the characters on the chain was a secret, IDK.

    • kens 5 years ago

      I've heard the breaking chain story many times, but I suspect it's mostly an urban legend. At least on the 1403, the hammers can't all fire at once. The chain and hammers have different spacings so only one hammer is lined up at a time, 11.1μs apart; the worst you could do is fire every third hammer in rapid sequence. For reference, a standard chain sequence is 1234567890#@/STUVWXYZ‡,%JKLMNOPQR-$*ABCDEFGHI+.¤

      The 1403's print chain is pretty complicated to understand, so I built an animation: http://righto.com/ibm1401/printchain.html

      • abraae 5 years ago

        I used to work at IBM as a CSR (maybe we were CEs back then?) fixing 1403s and other mainframe boxes.

        Man it would have been so useful to have your fantastic animation back then. I came on the scene too late to ever get any formal training on 1403, so I ended up learning most of it the hard way. I don't think I ever fully understood the hammer mechanics as you have explained it.

        An animation is truely worth 1000 words.

  • emmelaich 5 years ago

    Amazingly enough, there is still an echo of using that first char for control in the latest MacOS!

       man asa
    
    In developertools at least. `asa` used to be the first command and manual page, alphabetically.
    • kps 5 years ago

      IIRC ‘asa’ originates with System V.

  • logfromblammo 5 years ago

    The more things change, the more they stay the same. They installed a "pay us more money" switch. In hardware. The lingering scent of the unmitigated gall is still overpowering even years later.

    • freqshow 5 years ago

      It wasn't unique to them. In the early 80's I worked at an OEM minicomputer company that now would be called a startup. (I don't recall the term existing then.) We built systems from DEC 8-bit processors and Control Data disk drives. The drives were 40MB, 80MB, and (I think; it's been a while) 150MB. We sold an entry-level system with a 20MB drive. It was a 40MB drive with a hardware switch to disable addressing half the platters. When the customers would pony up the proportionately significant fee for a "upgrade", the hardware guy would go in, make a show of disassembling and polishing things, and when no one was looking, flip the switch to enable addressing the entire drive.

      • mark-r 5 years ago

        I heard of a Control Data mainframe that could be "upgraded" by cutting a single wire.

gumby 5 years ago

This is a lovely well-researched article on the origin of a number of otherwise bizarre I/O constants.

E.g. the following: "...why not use 130 instead of 132? Due to the complex alignment between the 1403's chain and the print hammers, a line width divisible by 3 (such as 132) works out better."

etbusch 5 years ago

An interesting read as always from Ken.

I've got a first-generation Apple Dot Matrix Printer that's up next for a restoration. I understand that I can still get drivers for this, but does anyone know what it might be worth? eBay comes up with nothing.

  • bitwize 5 years ago

    Dude, you send your friends greeting cards or invitations run off in Print Shop, that thing will be worth its weight in gold!

    EDIT: Apparently this printer is the predecessor to the ImageWriter.

Animats 5 years ago

Why the IBM 402 had 43 alphanumeric typebars:

    INTERNATIONAL BUSINESS MACHINES CORPORATION
    0000000001111111111222222222233333333334444
    1234567890123456789012345678901234567890123
acqq 5 years ago

Read the notes, it's especially interesting:

> in 1954, Remington Rand introduced the first high-speed drum printer, the "High Speed Off Line Printer System" for the UNIVAC computer. This printer produced 600 lines per minute at 130 characters per line. The printer used 18 kW of power and was cooled by 8 gallons per minute of chilled water.

Wow.

  • chiph 5 years ago

    A friend was a programmer in the 90's for a firm that was getting a new higher-end IBM 3090. He was in the manager's office looking over the layout for the installation, when he asked "Where is the water pump going?"

    Blank look, followed by the "oh shit" look.

  • skookumchuck 5 years ago

    It's a good thing we don't need listings anymore.

hsnewman 5 years ago

I was in college learning Fortran on one of these. Half way through the class they moved us to a mainframe, I was amazed at how much more the compiler reported on the mainframe vs the 1403 (errors and warnings).

miohtama 5 years ago

50 years later we still cannot develop programming text editors with soft line wrap to satisfy everyone.

gumby 5 years ago

> the IBM 705 business computer rented for $43,000 a month (almost $400,000 in current dollars). But the IBM 1401 could be rented for $2500 per month, opening up the market to medium-sized businesses

Amazing that we are basically back in that place again: renting computers or paying for computer time.

  • jacobush 5 years ago

    We are due for a back-lash soon. "On-premise cloud" or something.

    • mark-r 5 years ago

      Doubtful. The cost driver has ceased to be the machine itself and has become all the ancillaries, system admins and internet trunks and data center redundancy and...

mark-r 5 years ago

My first exposure to line printers was through a Control Data mainframe at a University in the mid '70's. There were a few Control Data printers at centralized locations, and user operated Univac printers more scattered. Both used 14 7/8 paper with 132 columns.

dboreham 5 years ago

Interesting. I still set my shell windows to 132 chars wide, but I do that because I used VT100 terminals way back.

  • mark-r 5 years ago

    And why do you think VT100's had that capability?