title: Type-in program
text: # 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 DATA 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 covermount 3 1⁄2-inch floppy disk or CD-ROM 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. While some type-in programs were short, simple utility or demonstration programs, 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, e.g. DATA statements in the BASIC language. 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.
  
  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:
  
     In 1971, while education product line manager at Digital Equipment Corp., I put out a call for games to educational institutions throughout North America. I was overwhelmed with the response. I selected the best games and put them together in a book, 101 Basic Computer Games. After putting the book together on my own time, I convinced reluctant managers at DEC to publish it. They were convinced it wouldn't sell. It, plus its sequel, More Basic Computer Games have sold over half a million copies proving that people are intrigued by computer games.
  
  Upon Ahl's departure from DEC in July 1974, he initiated a bimonthly magazine titled Creative Computing while serving as an educational marketing manager at AT&T. The inaugural issue was released in October of that year, and by the fourth year, a team of eight individuals were working on it. The magazine featured computer games and its debut coincided with the introduction of the Altair 8800 - the first widely accessible computer kit - which was announced in January 1975, according to Ahl.
  
  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. Platform-specific magazines such as Compute!'s Gazette (VIC-20 and Commodore 64) and Antic (Atari 8-bit family), 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 covermount disks became common, and type-ins became virtually non-existent.
  
  ## Validation software
  
  To prevent errors when typing in listings, most publications provided short programs to verify that code was entered correctly. These were specific to a magazine or family of magazines, and different validation programs were usually used for BASIC source and binary data.
  
  Compute! and Compute!'s Gazette printed a short listing in each issue for The Automatic Proofreader to check BASIC programs, while ANALOG Computing used D:CHECK (for disk) and C:CHECK (for cassette tape). For binary listings, Compute! offered MLX, which was an interactive program for entering data. ANALOG Computing presented machine code programs as BASIC DATA statements, then prepended a short program to compute checksums. Running the program output a list of values to be checked against those printed in the magazine. Upon successful validation, the program was saved as a binary file and the BASIC code no longer needed. The MIKBUG machine code monitor for the Motorola 6800 of the late 1970s incorporated a checksum into its hexadecimal program listings.
  
  