Atari Checksum Errors
I have had my Atari computer for a year now, but I still have a few unanswered questions you might be able to help me with. Sometimes when I load a program off my cassette, I get something called a "serial bus data frame checksum error." What does this mean, and how can I remedy it?
Also, when I get an error in the middle of the loading process, is there any way I can retrieve the portion that did load correctly? And is there a way to verify Atari SAVEs?
The "serial bus data frame checksum error" and its cousin, "serial data frame overrun," are just Atari's way of telling you that the computer encountered a tape error. The tape drive is very sensitive to errors in timing—if a tape is stretched in the middle, it will throw off the bit timing. You can also get this error if you didn't allow enough leader when you positioned the tape for CLOAD.
An incomplete program can be a major problem. Due to the way Atari programs are stored, BASIC must know how to find the exact end of a program. A partial program is often cut off in the middle of a line, and when BASIC scans to find the end of the program, it locks up, not finding it. So to prevent this problem, a faulty LOAD causes the partial program to be NEWed. If you store programs with LIST "C:", you can then ENTER "C:" to retrieve it. If there is an error, you will still be left with a partial program. You can continue with ENTER "C:", and you may pick up more and more of the listing.
ENTER can also be used to verify a LISTed program. If you ENTER a program that you have just LISTed, the program in memory will not be lost. If it ENTERs without an error, you've verified that the data is stored correctly. Otherwise, you'll still be left with the program in memory, so you can try again. LIST and ENTER, though, are slower and use more tape space than CSAVE and CLOAD.