Autoflow. Autoflow was an application program from Applied Data Research (ADR) for mainframe computers that reads assembly language programs and produces a flowchart of that code. It is historically notable as one of the first software applications to be offered for sale independent of the system it ran on, as well as the first to receive a software patent in the United States, and to be licensed to customers rather than sold.

Autoflow was introduced in 1964 for the RCA 501. Originally intending to have RCA purchase it and give it to their customers, RCA thought its $25,000 price was too high and declined to buy it. ADR then approached 501 owners directly, becoming what is generally accepted to be the first commercial software vendor. The RCA market was small, so ADR ported it to the IBM 1401 and began sales into that much larger market in 1965.

These early versions required the user to indicate the symbol for each chart entry using a numeric code entered as a comment in the code. This was fine for new programs being written, but users had no interest in modifying their existing programs to use it. ADR modified Autoflow to decode the type directly from the instruction codes, allowing it to produce a flowchart by reading the original unmodified program. This version was also ported to the hugely successful System/360, where it saw its most use.

IBM introduced their own program, Flowcharter, but it was a much simpler system where the entire chart had to be specified by hand. Despite the clear advantages of Autoflow, customers felt that IBM would add Autoflow-like features to their program, and give it away for free like other programs in the IBM collection. To stop this from happening, ADR filed for a patent on the concept, which was issued in 1968. By 1970 the company had several thousand customers and by the end of the decade it was one of the top five software companies in the world.

History
Applied Data Research (ADR) was formed in 1959 in Princeton, New Jersey, by seven programmers from Sperry Rand. Their initial concept was to sell programming consulting services. In 1964, RCA approached the company with the idea of a flowcharting application for the RCA 501 computer. Flowcharts were widely used during the design phase of the programming effort at that time, but, as is the case today, the end product rarely followed the original design. By producing a flowchart from the existing code, customers could document their actual programs. When ADR wrote up such a proposal with a $25,000 price tag, RCA expressed little interest, as was the case for some other computer vendors they approached.

The company had free nighttime use of a 501, so Martin Goetz decided to assign Mike Guzik to write an initial version, which was completed in 4 to 6 months. Once again, RCA declined to take it up. At the time, computer companies generally gave away software they had developed, making their machines more attractive, a policy that continues today as pre-installed software. After spending an estimated 5 to $10,000 on development , Goetz decided they would market it directly to RCA's customer base of about one hundred 501 users at $2,495. They had two sales.

Goetz then decided to sell into the much larger market for the IBM 1401, which numbered in the thousands. The program was modified so it read IBM's Autocoder programs rather than 501 assembly language in a 10-month effort. Although there was significant interest, there was little uptake. The main problem was that Autoflow required one to mark up the original program with comments containing numeric codes that indicated the type of instruction, processing, branching, etc. The 1401 market already had a large amount of software written for it and prospective customers showed the most interest in using Autoflow to document these programs, but little interest doing any modification of those programs to make that possible. Once again the program was modified to allow it to decide the type based directly on the Autocoder instructions.

By this point, IBM had introduced their own flowcharting program, Flowcharter. In contrast to Autoflow, this program required the user to describe the entire flowchart using a separate input file, it did not read existing code, and was therefore much more labor-intensive to use. But IBM also had a policy of giving away software they had developed, and prospective customers widely believed IBM would add Autoflow-like features at some point and there was no point in licensing Autoflow. At this point Goetz decided to head off this possibility before it happened, and in 1965 he filed for a patent on the concept of reading existing code to produce a flowchart. The patent was issued in 1968, the first software patent issued in the United States.

Goetz was also concerned that customers would simply copy the program and give it to other prospective customers, among the first explicit mentions of the concept now known as software piracy. He consulted with Mort Jacobs, the attorney who prepared the patent filing, and they decided to attack the issue by offering the program under a licensing arrangement, not selling it outright. The agreement signed by customers was thus written in the language of an equipment lease agreement, thereby leaving ADR as the legal owner throughout, and explicitly stating that unauthorized duplication would break the agreement. While this did not make it any harder to make a copy, it gave ADR legal recourse if this happened.

The major success of the System/360 led ADR to port to this system, as well as supporting three languages, 360 assembly, Fortran and COBOL. By 1970, they had over 2000 users. By the early 1970s, the company had opened 30 sales and support offices in the US and Europe. Despite this, they still found significant numbers of prospective customers that used the IBM program because it was free. In 1967, ADR filed a complaint with the US Justice Department (DOJ), and after many meetings, the DOJ opened an investigation and found many other companies who faced the same problem of attempting to compete with free products. In April 1969, ADR sued IBM for monopolizing the market, and in June, IBM announced they were dropping bundled software entirely, starting 1 January 1970. ADR's suit continued and was eventually settled with a $1.4 million payment from IBM.

Example output
ADR's advertising for Autoflow used this example:

                      |
                      |
                      |
                      *  07
                    *   *
                  *COMPARE*
           LOW  *    3 TO   *  EQ
       -------*    ACTIVITY    *--
       |        *    CODE   *
       |          *       *
       |            *   *
       |              *
       |          HIGH|
       |              |
       |              |
       |              |
       |              *  08
       |            *   *
       |          *       *
       |   YES  *     IS    * 
       |------*    ACTIVITY    *
       |        *   CODE 6  *
       |          *       *
       |            *   *
       |              *
       |            NO|
       |              |
       |              |
       |              |        09
       |    ---------------------
       |    |  CHANGE ACTIVITY  |
       |    |     CODE TO 8     |
       |    ---------------------
       V              |
       ---------(*)---|
            T16       |        10
            ---------------------
            | MOVE ACTIVITY CODE|
            |       TO O/P      |
            ---------------------
                      |
                      |
                      |

The lines represent the program flow from state to state. At the top are two diamond-shaped comparisons, which are numbered as step 7 and 8. The first comparison has three possible branches, to the left if the value of "activity code" is less than three (LOW), equal to 3 (EQ, on another page not shown here) or greater than 3 (HIGH). If the code was greater than 3 it then performs a second test to see if it is equal to 6. If not, it changes the code to 8 in step 9, if it was less than 3 or equal to 6 it skips that instruction.

Notes

References

Citations

Bibliography
 
 
 
 
 
 

Mainframe computer software
Reporting software