Task: Learn About Checksum Programs for Checking Type-In Programs
Needed: Web browser, Altirra
Time: 15-30 mins
It was common in the early 1980s to get software by typing in program listings from magazines like Antic or Compute!. This was partly because new Atari home computers didn’t come with software. A new Atari 400 or 800 in 1979 or 1980 only shipped with memo pad. All you had to do was buy a BASIC cartridge and a magazine and you were in business. One of the first games I recall typing in was Gold Rush! from a 1982 issue of Compute!. We had an Atari 400 and 410 that year hooked up to the color TV in the family room. It was tedious to type in these programs and they never worked the first time. The first order of business was to correct the numerous typos, and there were many when using the membrane keyboard of the 400. Gold Rush! was extra frustrating because it still didn’t work once we were sure we had fixed all the typos and the code matched exactly what was in the magazine. Of course, we had to wait two months until the September issue (see page 196) came out to discover that there was a correction to the program listing. There were two RESTORE commands which were wrong. Once we made that fix the game worked! I recall this being a fun little game. I also recall changing the code to up the number of lives. As a side note, the game name conflicted with an already published game so they had to later change the name to Gold Miner. Here is the Gold Rush! game on Atari Mania if you would like to try it out.
The Gold Rush (Miner) game was mostly written in BASIC. However, many games included quite a bit of assembly code in data statements. These were a real chore to type in because they were just a series of numbers and quickly became repetitive and prone to typos. Here is an article by David Plotkin in the August 1982 issue of Antic magazine with some tips on dealing with bugs in type-in programs. An approach that many of the magazines of the time adopted was the use of checksums. A simple checksum approach is to include the sum of the numbers in the data statements at the end of each line. A separate program could then be used to add the numbers together for a data statement line and compare that sum to the listed checksum number. Matching numbers would nearly always indicate that the numbers had been typed in correctly.
Antic magazine introduced a checksum program called Type Your Program Once (TYPO) by Bill Wilkerson in their August 1982 issue. A second version of this program, TYPO II, was introduced in Antic’s January 1985 issue. The main disadvantage of the original 1982 version of TYPO was that it didn’t tell what line your error was on. TYPO II introduced this feature making it a much more useful program for debugging typos.
The other checksum program I will mention is MLX introduced by Compute! in their December 1983 issue. Here is the Wikpedia page for MLX. MLX was nice because it was an editor. You would run MLX and use its editor to enter programs from Compute!. These programs has built-in checksums which were evaluated in real time as you completed typing in each line from the magazine. You would instantaneously know if you you had incorrectly entered a line. In addition, MLX had the nice feature of restricting certain characters which could generate errors. For example, it wouldn’t allow you to enter the letter O in a data statement where the number zero was used. It also automatically checked the use of commas between digits. MLX was used for all machine language listings in subsequent issues of Compute! magazine and their books. You can find the BASIC program listing for MLX in Compute!’s Second Book of Machine Learning.
TYPO, TYPO II, and MLX can all be found on this ATR file I created from a floppy disk I found in my collection (see end of post). This disk had other software such as BASIC Editor and Unicheck on it.
You can run MLX from BASIC by typing LOAD “D:MLX”. The software will prompt you for the starting, ending, and run/init addresses. I used the addresses listed here:
Starting address? 32768
Ending address? 39607
Run/Init address? 32768
After you enter the sixth number the Atari will buzz angrily (kind of annoying) until you type in the correct seventh number representing the checksum value. Obviously, this checksum is not a simple sum.
I couldn’t find the MLX BASIC program online and posted a request for the file to the Atari 8-bit Facebook page. Herb Schaltegger created a new BASIC file from the program listing. While he was doing that, I rummaged through my numerous floppies and found a disk labeled “Type-In Programs”. I was pleased to discover that this disk had MLX on it. Interestingly, this version is slightly different than the one provided by Compute!. This one had some extra text specifying some of the commands. You can find the original version on archive.org. Below is a photo of the original disk from which the ATR listed above was made.