Title: COMPUTE's Automatic Proofreader
System: Commodore 64
Author: Charles Brannon
Publication: COMPUTE's Gazette Issue 4, October, 1983
             COMPUTE's Gazette Issue 8, February, 1984
Page Scans: 3 pages - 48, 50 (from Issue 4), 162 (from Issue 8)
Preserved by: Rick Reynolds (rick@rickandviv.net)
Recommended Emulator: VICE [https://vice-emu.sourceforge.io/]

Loading the Game:
* Mount the disk image (Compute Automatic Proofreader.d64) in your emulator. In VICE, this is done by selecting File → Attach Disk Image
* Load the app by typing LOAD”PROOFREADER”,8
* Once loaded, type RUN to start

Details:
* The Automatic Proofreader is a utility for improving your accuracy when typing in programs from COMPUTE! and COMPUTE!’s Gazette
* It is a small program that resides in memory while you are typing your program. After typing each line, a (up to) 3-digit checksum is displayed in the top left corner of the screen. If it corresponds to the checksum printed in the issue, your line is correct.
* This is the first version (the Automatic Proofreader) was initially published in the October, 1983 issue of COMPUTE!’s Gazette with improvements to the running of the code that were introduced a little later.  The actual code for this version was pulled from the February 1984 issue of COMPUTE!'s Gazette.
* You know you need to use this version if the checksums in the BASIC program listing are in decimal instead of hexadecimal.

Article Text:

The vast majority of letters and telephone calls we receive from readers concern our program listings. Many readers have trouble getting the programs to work. All listings are generated from fully tested, working versions of the programs, yet many readers continue to experience problems. To solve a lot of frustrations on both ends, COMPUTE!'s Gazette introduces "The Automatic Proofreader" - a revolutionary new way of entering programs that alerts you _instantly_ if you've made a typing error.

We all know it's hard to type in a program correctly the first time. Seemingly trivial typing errors can cause dreaded ERROR messages, or even a _system crash_ (the keybaord will not respond to RUN/STOP-RESTORE). Usually the only way to recover from such a crash is to reset the computer by turning it off, then on again - wiping out the memory and all your typing in the process.

Even when you locate and correct the mistyped lines, there always seem to be more errors lurking in the hundred-odd lines of the program. Sometimes you feel like giving up.

Elusive Errors

Some errors are almost impossible to spot, especially for beginniners who know little or nothing about programming.  For instance, can you spot the mistake in this line?

    100 PRINT RIGHT$("00" + MID$(STR$(V),2,3)

Here's how it should read:

    100 PRINT RIGHT$("00" + MID$(STR$(V),2),3)

Did you catch the difference? A right paraenthesis was missing after the number 2. (A left parenthesis must always have a matching right parenthesis. If you add up all the parenthesis in a statement, you should get an even number.)

An Impossible Dream?

The strong point of computers is that they excel at tedious, exacting tasks. So why not let your computer check your typing for you? An impossible dream?

Not with "The Automatic Proofreader." Nestled within your VIC-20 or Commodore 64, the Proofreader automatically checks every line you type in. It displays a number at the top of your screen. This number, called the _checksum_, corresponds to the line you've just typed. It represents every character in the line summed togeter. A matching number in the program listing lets you compare it to the checksum that the Proofreader displays. A glance is all it takes to confirm that you've typed the line right.

The Automatic Proofreader is a small machine language program that resides in a relatively safe area of memory, the cassette buffer. It will remain there until you turn off your machine, or run another program tha t uses the cassette buffer. Loading or saving BASIC programs from tape or disk will not affect it.

Entering The Automatic Proofreader

If you have a VIC, type in Program 1. Program 2 is for Commodore 64 users.  There's only one small catch - The Proofreader can't check _itself_, so be extra careful to type it in correctly in the first place. Since it is a machine language program, be especially diligent. Watch out for typing extra commas, a letter O for a zero, and check every number carefully. Fortunately, the Proofreader is a short program, so you should have no trouble.

When you've typed in The Automatic Proofreader, SAVE it on tape or disk at least twice _before running it for the first time_. If you mistype the Proofreader, it may cause a system crash when you first run it. By SAVEing a copy beforehand, you can re-LOAD it and hunt for your error. Also, you'll want a backup copy of the Proofreader because you'll use it again and again - every time you enter a program from COMPUTE!'s Gazette.

When you RUN the Proofreader, the program will be POKEd safely into memory. Then press RETURN on th eline the cursor is sitting on to activate the Proofreader. If you ever need to reactivate it, just enter the command SYS 828 and press RETURN. [PRESERVER'S NOTE: This is not accurate for the version typed in from Issue 8. The newer version is slightly easier to load and run. Please see the screen capture of that page for more detaial.]

Using The Proofreader

Now, let's see how it works. LIST the Proofreader program, move the cursor up to one of the lines, and press RETURN. If you've entered the Proofreader correctly, a number will appear at the top-left of your screen.

    10 A=1:B=72:PRINT"SCORE=";SC      :rem 199            <-- checksum
                                 \_ don't type this _/

Try making a change in the line, hit RETURN, and notice that the number has changed. All VIC and 64 listings in COMPUTE!'s Gazette now have a number appended to the end of each line, for example ":rem 123".  _Don't enter this statement._ It is just for your information. The "rem" is used to make the number harmless if someone does type it in. It will, however, use up memory if you enter it, and will cause the checksum displayed at th etop of the screen to be different, even if you entered the rest of the line correctly.

Just type in each line (without the printed checksum), and check the number displayed at the top of the screen against the checksum number in the listing. If they match, go one to the next line. If they don't, there's a mistake. You can correct the line immedicately, instead of waiting to find the error when you RUN the program.

The Proofreader is not picky with spaces. It will not notice extra spaces or missing ones. This is for your convenience, since spacing is generally not important. But occasionally proper spacing _is_ important, so be extra careful with spaces, since the Proofreader will catch practically everything else that can go wrong.

There's another thing to watch out for: if you enter the line by using abbreviations for commands, the checksum will not match up. But there is a way to make the Proofreader check it. After entering the line, LIST it. This eliminates the abbreviations. Then move th cursor up to the line and press RETURN. It should now match the checksum. You can check whole groups of lines this way.

When you're done with the Proofreader, disable it by pressing RUN/STOP-RESTORE (hold down the RUN/STOP key and press RESTORE). If you need it again, enter SYS 828. It will then be ready once again to act as your personal typing aid. [PRESERVER'S NOTE: Again check the article page from Issue 8 for specific instructions using the version typed in.]

Checksum programs are not new in computer magazines. But until now, there was nothing like The Automatic Proofreader - it shows you _instantly_, as soon as you've entered the line if you've made a typo. We hope that the proofreader makes your program entry both faster and easier, and that you'll never have to face another frustrating ERROR message.

