Here is an example of a type-in:
10 PRINT "HELLO, WORLD!"
To use this type-in, a reader would take a printed copy of the program listing, such as from a magazine or book, sit down at a computer, and manually enter the two lines of code. After typing the program in, he would be able to run it and also to save it to disk or cassette for future use. For the simple program displayed above, this does not present many savings. However, many type-ins were fully functional games or software packages, sometimes rivaling commercial software.
Type-ins were usually written in BASIC or a combination of BASIC and machine language. In the latter case, the opcodes and operands of the machine language part were often simply given as DATA statements within the BASIC program, and were loaded using a POKE loop, since few users had access to an assembler). In some cases, a special program for entering machine language numerically was provided. Programs with a machine language component sometimes included assembly language listings for users who had assemblers and who were interested in the internal workings of the program.
The downside of type-ins was labor. The work required to enter a medium-sized type-in was on the order of hours. If the resulting program turned out not to be to the user's taste, it was quite possible that the user spent more time keying in the program than using it. Additionally, type-ins were error-prone, both for users and for the magazines. This was especially true of the machine language parts of BASIC programs, which were nothing but line after line of DATA statements (or in some cases where the computer's version of the ASCII code had a printable character for each value from 0-255, the code could have been printed using strings that contained the glyphs that the values mapped to); while a BASIC program would often stop with an error at an incorrect statement, the machine language parts of a program could fail in untraceable ways. This made the correct entry of programs difficult.
To counter the difficulty of keying a type-in, some magazines developed checksum programs. There were many different styles of checksum program, usually depending on the type of program being entered and on the complexity of the checksummer. Checksummers were proprietary and were often printed in every issue of the magazine. The most basic distinction was whether the checksummer was run only once, when the program had been completely keyed in, or whether it was used interactively. The former type either read the typed-in computer code off a disk, or read it directly from memory (this type of checksummer was usually manually appended to the end of a BASIC program). The checksum program would print a checksum for each line of code. The magazine would print the correct checksums adjacent to the listing, and the user would compare the two to catch errors. More advanced checksum programs were used interactively. They would take a line of code as it was entered and immediately produce a checksum which could be compared to the printed listing. Users, however, had to enter the checksum programs themselves correctly.
For example, COMPUTE! and COMPUTE!'s Gazette printed the BASIC listings for "The Automatic Proofreader" (to verify lines of BASIC) and "MLX" (for binary data) in each issue that carried type-in programs in these formats. Once the user had typed in "The Automatic Proofreader" correctly, he had bootstrapped his way to verifying "MLX" and other programs.
Beyond the manual labor of type-ins, it was not uncommon for certain magazines to print poor quality listings, presenting the reader with nearly illegible characters (especially in the case where machine-code data was printed using ASCII glyphs instead of DATA statements); this typically happened when transferring the list output from the era's ubiquitous 7–8-pin dot-matrix printers directly to the printing presses—sometimes even without prettyprinting (a particularly bad negligence in regard to listings which contained graphical characters representing control codes, used for e.g. cursor movements; such characters tended to be less legible than alphanumeric ones in the first place). In other cases, the original program listing was already full of bugs by the time it had been type-set into the magazine, much to the frustration of readers. Magazines often issued "errata" notices for bad listings in subsequent issues.
Other solutions existed for the tedium of typing in seemingly-endless lines of code. Freelance authors wrote most magazine type-in programs and, in the accompanying article, often provided readers a mailing address to send a small sum (US$3 was the standard) to buy the program on disk or tape. This was an added source of income to the author. By the mid-1980s, recognising this demand from readers, many US-published magazines offered all of each issue's type-ins on an optional disk, often with a bonus program or two. Some UK magazines occasionally offered a free Evatone that played on a vinyl record player connected to the microcomputer's cassette input. Other input methods, such as the Cauzin Softstrip were tried, without much success.
Type-in programs preceded the dawn of the home computer era. As David H. Ahl wrote in 1983:
Most early computer magazines published type-in programs. The professional and business-oriented journals such as BYTE and Popular Computing printed them less frequently, often a test program to illustrate a technical topic covered in the magazine rather than an application for general use. Consumer-oriented publications, especially platform-specific magazines such as COMPUTE!'s Gazette (Commodore) and ANTIC (Atari), ran several each issue. Whether in book or magazine form, the programs were sometimes specific to a given home computer and sometimes compatible with several computers. Although such programs were usually copyrighted, authors often encouraged users to modify them, adding capabilities or otherwise changing them to suit their needs. Users would sometimes send their changes back into the magazine for later publication (in an early form of open source software)
While most type-ins were simple games or utilities and likely only to hold a user's interest for a short time, some were very ambitious, rivaling commercial software. Perhaps the most famous example is the type-in word processor SpeedScript, published by COMPUTE!'s Gazette and COMPUTE! Magazine for several 8-bit computers starting in 1984. It retained a following into the next decade as users refined and added capabilities to it.
As the cost of cassette tapes and floppy disks declined, and as the sophistication of commercial programs and the technical capabilities of the computers they ran on steadily increased, the importance of the type-in declined. In Europe, magazine cover tapes/disks became common, and type-ins became virtually non-existent. In North America, type-ins remained popular for 8-bit computers well into the 1990s, although type-ins for 16/32-bit computers quickly faded. Some magazines continued to print short code snippets for instruction purposes from time to time, but these 10–20-line segments would not be considered type-in programs in the proper sense.
Although type-in programs have disappeared today, the tradition of distributing software with magazines lived on, especially in Europe, with 3½" floppy disks included with magazines throughout most of the 1990s, eventually followed by CD-ROMs and DVDs.