Type-in program


A type-in program or type-in listing is a listing of source code printed in a computer magazine or book, meant to be entered on the computer's keyboard by the reader and then saved to cassette tape or floppy disk.
Type-in programs were common in the early home computer era from the late 1970s through to the 1980s 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. A computer magazine could contain multiple games or other programs for a fraction of the cost of commercial software, but the user had to spend up to several hours typing each one in. Magazines such as Softalk, Compute!, ANALOG Computing, and Ahoy! dedicated much of each issue to type-in programs.
Almost all listings were 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 DATA statements in BASIC, accompanied by more readable assembly language source code which did not need to be entered. 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. 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 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 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. 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" and "MLX" 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 ; 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 e.g. 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 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 vinyl record player 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 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 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 and Antic, 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.