Modifications Or Corrections To Previous Articles
VIC Canyon Runner
Many readers have reported that parts of line 830 in Program 2 (p. 62) of this game from the October issue were blurred. The line reads:
830 DATA156, 30, 31, 158, 169, 128, 141, 19, 145, 169, 0, 133, 1, 133, 2, 169, 127, 141, 34, 145, 162,119 : rem 141
One step in the process for creating programs that run automatically was not made immediately clear in this article from the September issue (p. 130). After typing the POKEs and saving your original program with a new filename, you must reset the computer by turning it off and back on before loading and running "Autoboot."
Programs created by Autoboot may not run when loaded immediately after the computer is turned on or immediately after a cold start reset. The solution is to load anything— even the disk directory—before loading the autorun program. Once any other file has been loaded, the autorun programs will behave as expected.
Our mail indicates that many readers have problems typing DATA statements. Some letters insist that programs containing DATA statements never work properly. Typing mistakes in DATA lines often result in cryptic error messages or in mysterious program crashes, which often baffle the beginning programmer.
If any program stops with a SYNTAX ERROR, ILLEGAL QUANTITY, or OUT OF DATA message (ERROR 3, ERROR 6, or ERROR 8 on an Atari), check the line where the program was reported to have stopped. If that line contains a READ statement, the error is probably not in the line for which the error was reported. Instead, it's almost certain that you've typed something incorrectly in one or more of the DATA statements.
Errors in DATA can be hard to find. A common mistake is typing a period for a comma. These two characters appear side by side on the keyboard, and they can be difficult to distinguish on the screen. This mistake would, for example, cause the two DATA items 165, 15 to be interpreted as one item, 165.15. Other frequent problems are transposing digits in DATA items (for example, typing 236 as 263) and adding extra commas at the ends of lines.
Other messages may signal a flaw in the program, but any of the error situations mentioned above point toward a typing mistake. Check carefully before you blame the program.
Proofreader And MLX Caveat
Many readers may be unaware that BASIC programs entered with the aid of "The Automatic Proofreader" or machine language programs entered with "MLX" can still contain typing errors. While these two utilities greatly reduce the chances of making a typing mistake, there are errors that are not detected.
The Commodore and Atari Proofreader programs check only that the correct characters are present, not whether they are in the correct order. The following line has a Commodore Proofreader checksum of 117:
100 POKE 214, 12 : A = 19.7 : PRINT A
If you scramble the line and type:
100 PKOE 241, 21 : A = 17.9 : PNIRT A
the Proofreader still reports a checksum of 117. This is an extreme case; more subtle mistakes are more difficult to detect. One reader insisted that COMPUTE! had made an error, since his program didn't work even though the Proofreader showed his typing to be correct. However, the listing he sent along showed that in one line he typed GOTO 535 where he should have had GOTO 355. That mistake was invisible to the Proofreader—all the right characters were present—but it made the program crash without warning. The Proofreader can also cause you to overlook typing errors in DATA statements. The numbers 169 and 196 look the same to the Proofreader, but in the DATA for a machine language program such a difference will cause a prompt crash.
MLX, on the other hand, can detect the transposition of individual digits within a single number—if you type 196 where you mean 169, MLX will report the mistake—but it cannot detect transposition of entire numbers. For example, given the following line from an MLX-format listing:
49188 : 160, 000, 185, 071, 201, 201, 086
MLX will not notice the mistake if you instead type:
49188 : 160, 185, 000, 201, 071, 201, 086