!032294 100+ software patents from 1971 What follows is a list of 113 software patents issued in 1971 sorted into 26 different categories. Among other things, it illustrates that despite twenty years of court cases, statutory regulations, and scholarly articles on software patenting, the only thing that matters IS TO HIRE A GOOD SOFTWARE PATENT LAWYER. They always have the advantage over the Patent Office, a situation that has not changed in twenty years. All these discussion on the Internet, and everywhere else, on obviousness and novelty are irrelevant towards having a patent issued, GIVEN A GOOD PATENT LAWYER. Of interest is patent number 3555501, titled "Determining subsurface velocity and distinguishing between primaries and multiples by velocity filtering" issued in January 1971. It is one of the first patents to list modern-like source code (in this case, 50 lines of Fortran) in support of a algorithm applied to a method. At the recent hearings, a few people pointed how how much trouble there would have been if Knuth had tried to patent the algorithms in his three classic books. In fact, many such algorithms were patented in the late 1960's and early 1970's. Look at some of the titles in the ALGORITHMS section. Illustrating the continuity aspect of software patenting, many of the companies active today (IBM, DEC, ATT, Pitney-Bowes, Mobil Oil, TI, GE) in and out of software patenting were awarded many of the following patents. Patenting is a game that must be played in any mature industry. SOFTWARE PATENT TITLES FROM 1971 AUTOMOBILE Vehicle locator system ALGORITHMS Composer system for processing data in parallel columns Compressed index method and means with single control field Indirect indexed searching and sorting Machine processing of algebraic information Memory addressing device using arbitrary directed graph structure Method for arrangement and indexing of digital data storage Method of minimizing the interconnection cost on linked objects Multilevel compressed index generation method and means One key byte per key indexing method and means Process for determining the simple cycles of a finite directed graph Text matching algorithm COMPUTER AIDED DESIGN Electronically generated perspective images System for optimizing material utilization CIRCUIT DESIGN Automated manufacturing system Circuit design by an automated data processing machine Computer-controlled tester for integrated circuit devices Machine process for assigning interconnected components to locations in a planar matrix Method of minimizing the interconnection cost on linked objects CHEMISTRY Automatic control of fluid catalytic cracking units Computer control of chromatographs Digital computer control of polymerization process Programmed digital-computer-controlled system for automatic growth of crystals CHARACTER RECOGNITION Character recognition by linear traverse Character recognition system for reading a document edited with handwritten system Systems and apparatus for character recognition DATABASE Automatic registration system Mechanism for searching for selected records in random access storage devices of a data processing system Remote input management system Storage manager DISTRIBUTED PROCESSING Multiphasic medical screening system ENGINEERING Control and supervision system having data storage Power demand predicting control system FINANCE Accounting system with program by example facilities Automatic ticket/credit card check-in system Counter controller credit verification system Flexible programming apparatus for electronic computers Instinet communication system for effectuating the sale or exchange of fungible properties between subscribers GEOPHYSICAL Determining subsurface velocity and distinguishing between primaries and multiples by velocity filtering Gapped deconvolution reverberation removal Interval velocity determination Method and apparatus for producing space averaged seismic data Oil field production automation and apparatus Optimum stack Wavelet standardization GRAPHICS Electronically generated perspective images Program controlled system for processing spatially distributed information GRAPHICAL USER INTERFACE Automated medical history taking system Data processing with controlled input Display terminal for computer monitored plant variables Electronic statistical calculator and display system Query and reply system with alpha-numeric readout IMAGE PROCESSING Object-positioning system and method MEDICAL Automated medical history taking system Multiphasic medical screening system System and method for identifying and labeling blood packs MULTIPROCESSING Arrangement for effecting vector mode operation in multiprocessing systems Interupt apparatus for a modular data processing system Processor to processor communication in a multiprocessor system Sharing of microprograms between processors NATURAL LANGUAGE ANALYSIS Generalized information processing Interaction information analyzer NUMERICAL ANALYSIS Computer system for producing various Fourier analyses in real time Direct computing statistical system Electronic statistical calculator and display system Fast Fourier transform using hierarchical store Machine-implemented process for insuring the numerical stability of Gaussian elimination Method for representing measured data values by coefficient values NETWORKS/COMMUNICATIONS Communications monitor for data processing system Counter controller credit verification system Data processing apparatus Data processing network and improved terminal facilities Display terminal for computer monitored plant variables Instinet communication system for effectuating the sale or exchange of fungible properties between subscribers Message transmitting system Remote input management system System for informational processing of dispatches Terminal station Transaction computer system having multiple access stations OFFICE AUTOMATION Automatic registration system System for informational processing of dispatches Transaction computer system having multiple access stations OPERATING SYSTEMS Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof Arrangement for automatically selecting units for task executions in data processing systems Data error correction by inversion storage Data processing system having time-shared storage means Data processing system including means for detecting algorithm execution completion Data processing system with circuits for transferring between operating routines, interruption routines and subroutines Debugging of on-line digital computers having an active interrupt Distributed priority of access to a computer unit Execution unit shared by plurality of arrays of virtual processors Hierarchical memory updating system Management control subsystem for multiprogrammed data processing system Method and apparatus for deallocating small memory spaces assigned to a computer program Method and apparatus for establishing a branch communication in a digital computer Method and system for program linkage and communication mechanism for computers Method for execution of jumps in an instruction memory of a computer Method for moving variable data during operation from a first store field to a second store field in the data store of a computer Method including a program for testing selection matrices Method of control for a data processor Method of storing information on and retrieving information from a magnetic drum Microprogrammed data processing system On-line system for measuring the efficiency of replacement algorithms Program and subroutine data storage and retrieval equipment Scheme allowing real time alteration of a data processing system operating strategy Supervisory system for time-shared numerical control system System for computing in the hybrid domain System protection apparatus Time-shared access to computer registers Time-shared numerical control system PROCESS CONTROL Aircraft strike assurance system Apparatus for generating and recording a program and producing a finished part therefrom Automated manufacturing system Automatic control of fluid catalytic cracking units Computer control of chromatographs Control and supervision system having data storage Control of a process variable by means of computer Demand computer system for machine tool control Digital computer control of polymerization process Direct computing statistical system Interpolation and initialization technique for computer control of machine tools Nonlinear optimizing computer for process control Plural machine tool and part handling control system Power demand predicting control system Programmed digital-computer-controlled system for automatic growth of crystals Special-purpose process control computer Supervisory system for time-shared numerical control system Time-shared numerical control system PATTERN RECOGNITION Pattern recognition using an associative store SIMULATION Special-purpose process control computer SIGNAL PROCESSING Fast Fourier transform using hierarchical store WORD PROCESSING Automatic data composing, editing and formatting system Character recognition system for reading a document edited with handwritten system Tabulating and printing operations in a printing device for program controlled electronic computers Greg Aharonian Internet Patent News Service