This was wrapper around the BASIC interpreter that printed out a 2-character checksum of each entered code line.
The magazine printing also had an associated 2-character checksum for each line. Your job: make sure the checksums matched.
As a teenager who only had cassette-based storage (couldn't afford a disk drive) and was addicted to typing in programs from Antic! and ANALOG magazines, this was a lifesaver.
(ANALOG's checksum program wasn't quite as convenient, and, IIRC, required a disk drive?)
I took a look at the listing[1] and looks like it contains unprintable characters, maybe they were ASCII art of some sort?
The checksum algorithm is fairly simple: line 32150 sums the products of all character positions and character codes, and lines 32160-32180 does a modulus to convert them to printable characters. The multiply-by-position bit is clever because it allows the checksum to flag transposed characters. ISBN-10 uses a similar scheme[2].
Atari 8-bits were actually really cool computers, in that they let you do things like redefine character sets entirely (to create custom character sets to effectively create tile-based displays), play with display-list interrupts, etc.
I guess Atari character set has enough overlap with ASCII, so I could get the checksum to match:
sum = 0
"32000 REM TYPO II BY ANDY BARTON".codepoints.each_with_index{|c, i| sum += (i + 1) * c }
print ((sum % 676) / 26 + 65).chr, (sum % 26 + 65).chr, "\n"
https://www.atarimagazines.com/v3n9/TYPOII.html https://www.atarimagazines.com/antic/
This was wrapper around the BASIC interpreter that printed out a 2-character checksum of each entered code line.
The magazine printing also had an associated 2-character checksum for each line. Your job: make sure the checksums matched.
As a teenager who only had cassette-based storage (couldn't afford a disk drive) and was addicted to typing in programs from Antic! and ANALOG magazines, this was a lifesaver.
(ANALOG's checksum program wasn't quite as convenient, and, IIRC, required a disk drive?)