Type-in program

A type-in program or type-in listing was computer source code printed in a home computer magazine or book. It was meant to be entered via the keyboard by the reader and then saved to cassette tape or floppy disk. The result was a usable game, utility, or application program.
Type-in programs were common in the home computer era from the late 1970s through the early 1990s, when the RAM of 8-bit systems was measured in kilobytes and most computer owners did not have access to networks such as bulletin board systems. 
Magazines such as "Softalk", "Compute!", "ANALOG Computing", and "Ahoy!" dedicated much of each issue to type-in programs. The magazines could contain multiple games or other programs for a fraction of the cost of purchasing commercial software on removable media, but the user had to spend up to several hours typing each one in. Most listings were either in a system-specific BASIC dialect or machine code. Machine code programs were long lists of decimal or hexadecimal numbers, often in the form of codice_1 statements in BASIC. Most magazines had error checking software to make sure a program was typed correctly.
Type-in programs did not carry over to 16-bit computers such as the Amiga and Atari ST in a significant way, as both programs and data (such as graphics) became much larger. It became common to include a -inch floppy disk with each issue of a magazine.
Description.
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 lines of code. Computers of this era automatically booted into a programming environment – even the commands to load and run a prepackaged program were really programming commands executed in direct mode. After typing the program in, the user would be able to run it and also to save it to disk or a cassette for future use. Users were often cautioned to save the program before running it, as errors could result in a crash requiring a reboot, which would render the program irretrievable unless it had been saved. The simple program displayed above is a trivial example—many type-ins were fully functional games or application software, sometimes rivaling commercial packages.
Type-ins were usually written in BASIC or a combination of a BASIC loader and machine code. In the latter case, the opcodes and operands of the machine code 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 code numerically was provided. Programs with a machine code 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 code parts of BASIC programs, which were nothing but line after line of DATA statements. In some cases where the version of ASCII used on the type of computer the program was published for included printable characters for each value from 0–255, the code could have been printed using strings that contained the glyphs that the values mapped to, or a mnemonic such as [SHIFT-R] instructing the user which keys to press. While a BASIC program would often stop with an error at an incorrect statement, the machine code 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, the MIKBUG machine code monitor for the Motorola 6800 of the late 1970s incorporated a checksum into its hexadecimal program listings. Later, some magazines developed checksum programs of their own. 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 generally 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, they had bootstrapped their 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 extended 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. This was particularly troublesome in listings which contained graphical characters representing control codes, used for instance for cursor movements; such characters tended to be less legible than alphanumeric ones in the first place. Additional issues arose after the advent of BASICs that did not require line numbers as the magazine broke logical lines across physical lines due to space constraints, and without the line numbers, the distinction was not always apparent. Compute! even for a time used a handwritten arrow to represent a carriage return in its program listings. Of course, some errors in type-ins were the result of programmer error, and were simply bugs in the program. Magazines often issued "errata" notices to correct 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 typical) to buy the program on disk or tape. 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 of these disks became electronic publications in their own right, outlasting their parent magazine as happened with "Loadstar". Some UK magazines occasionally offered a free flexi disc that played on a turntable connected to the microcomputer's cassette input. Other input methods, such as the Cauzin Softstrip, were tried, without much success.
Not all type-ins were long. "Run" magazine's "Magic" column specialized in one-liner programs for the Commodore 64. These programs were often graphic demos or meant to illustrate a technical quirk of the computer's architecture; the text accompanying the graphics demo programs would avoid explicitly describing the resultant image, enticing the reader to type it in.
History.
Type-in programs preceded 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 as a test program to illustrate a technical topic covered in the magazine rather than an application for general use. Consumer-oriented publications such as "Compute!" and "Family Computing" ran several each issue. The programs were sometimes specific to a given home computer and sometimes compatible with several computers. Entirely platform-specific magazines such as "Compute!'s Gazette" (Commodore) and "Antic" (Atari), since they only had to print one version of each program, were able to print more, longer listings.
Although type in programs were usually copyrighted, like the many games in "BASIC Computer Games", authors often encouraged users to modify them, adding capabilities or otherwise changing them to suit their needs. Many authors used the article accompanying the type-ins to suggest modifications for the reader and programmer to perform. Users would sometimes send their changes back into the magazine for later publication. This could be considered a predecessor to open source software, but today most open source licenses specify that code be available in a machine-readable format.
"Antic" stated in 1985 that its staff "spends a good portion of our time diligently combing the incoming submissions for practical application programs. We receive a lot of disk directory programs, recipe file storers, mini word processors, and other rehashed versions of old ideas". 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!" for several 8-bit computers starting in 1984. "Compute!" also published "SpeedScript", along with some accessory programs, in book form. It retained a following into the next decade as users refined and added capabilities to it.
"Compute!" discontinued type-in programs in May 1988, stating "As computers and software have grown more powerful, we've realized it's not possible to offer top quality type-in programs for "all" machines. And we also realize that "you're" less inclined to type in those programs". 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 programming or technical 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 " floppy disks included with magazines throughout most of the 1990s, eventually followed by CD-ROMs and DVDs.