4 ms·
"At some point, magazines started publishing listings with a checksum added to each line. They offered special tools that would compute the checksum of each lin
by activatedgeek 9y ago
"At some point, magazines started publishing listings with a checksum added to each line. They offered special tools that would compute the checksum of each line you typed, and checked it against the checksum you typed in at the end of the line."
This is just amazing.
- jgrahamc 9y agoFun fact. Part of what's display in the HUD of The Terminator in the original film is the output from just such a program. In The Terminator it's from Key Perfect: https://1.bp.blogspot.com/-fcJIJVaOm7g/VCVjPqBFrSI/AAAAAAACCCI/SVIGhQfusQk/s1600/image50.png https://1.bp.blogspot.com/-fcJIJVaOm7g/VCVjPqBFrSI/AAAAAAACC... That was used for programs in Nibble Magazine: http://www.nibblemagazine.com/nibble_disks.htm http://www.nibblemagazine.com/nibble_disks.htm and I'm currently working on tracking down exactly which program the checksums came from for my YouTube channel "Behind The Screens": https://www.youtube.com/channel/UCzOc0EEdwWAlnwrWV-7sDbg https://www.youtube.com/channel/UCzOc0EEdwWAlnwrWV-7sDbg
- SwellJoe 9y agoThe fun part is you had to type in the checksum tool, too.
- striking 9y agoBut what if you got that wrong?
- JadeNB 9y agoNasal demons.
- mywittyname 9y agoLook at you, you're the checksum tool now.
- bluGill 9y agoyou often did get it wrong. However it didn't matter as when there was a mismatch you checked both the checksum and the line for errors. Generally you found errors in both, fix both go to the next line. Getting all the typos out took almost as long as typing it in in the first place. I don't think I ever successfully typed in a program longer than 1 page, I recall being on page 3 of one program I never finished though.
- philovivero 9y agoIt is so weird being on the spectrum and hearing stories like this. My dad and I often typed in multi-page programs without errors, or perhaps one error in the program. I always thought it was OCD or something, where I would not enter a character unless I'd heard it unambiguously from the person reading the program to me.
- SwellJoe 9y agoHaving it read to you would make it a lot easier to get it right, I would think. My problem was always going back and forth between screen and magazine, and maybe skipping a line or a hex word or whatever. It took me longer than I'd like to admit to even figure out that moving a ruler down the page to help me find my place each time I looked back would reduce errors tremendously. If someone were reading it while another person types, it'd be much easier to not lose your place on the page. I guess pair programming works after all.
- bluGill 9y agoI was mostly working alone. Most of my mistakes where omission. In the line 2560 data 0,0,0,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,0,0,128,42,128,128,9,0,0,0... Missing one 0 is fatal, but the streak is long enough that it is easy to miss one and not notice.
- dbdr 9y agoNot getting the checksum wrong, getting the checksum tool wrong. While typing the source of the checksum tool, you don't have the checksum tool yet. Classic bootstrap problem :)
- flukus 9y agoThis post made me wonder if this could be the origin of the checksum or certain checksum algorithms. A few minutes googling haven't led to any dates, so does anyone know what the history of the checksum is?
- pjc50 9y agoThe Luhn algorithm dates to 1960 and is still in use on credit cards: https://en.wikipedia.org/wiki/Luhn_algorithm https://en.wikipedia.org/wiki/Luhn_algorithm
- mikegerwitz 9y agoI can't say what the history specifically of checksums are off the top of my head, but error correction/detection dates back to at least the 1940s. Hamming(7,4) was created in 1950. Edit: Wikipedia: https://en.wikipedia.org/wiki/Error-correcting_code https://en.wikipedia.org/wiki/Error-correcting_code
- cr0sh 9y agoThis was reality in my childhood. If you didn't have the money for commercial software, you typed in code from magazines. Most magazines also offered the listings on cassette tapes or floppy disks, but it wasn't cheap (for the period). The worst to type in (and the checksum programs were best for this - though strangely, as a kid I never understood their purpose, and never used them!) were machine code loader programs. These were typically graphics utilities, sound generation utilities, or games. Essentially they consisted of a simple "loading loop" (either a FOR-NEXT or a GOTO style loop) in which data values were read and POKE'd into memory. For instance, such a loop would look like this: 10 I=&H0000:READ X:IF X=-1 THEN STOP:POKE I,X:I=I+1:GOTO 10 Now - I took out some of the spacing to make it somewhat readable, in real life, that would have been mashed even more, because you needed as much space as possible. The variable "I" would be the starting memory address of where the ML code would be POKE'd into memory, each value would be read into "X", POKE'd into memory, and "I" would be incremented and it would continue, until "X" was read as a -1 to stop the process. Following this loader would be a super-long series of DATA statements: 20 DATA 20, 1000, 1478, ..., 52, 780, 21, ..., etc ...insert several hundred more DATA statements here... 9999 DATA 40, 71, ..., etc, -1 These were typically decimal values, as using hex values would consume more memory for the additional "&H" prefix (though there were loaders that would use strings to prefix the value, then convert back, etc before POKE-ing the value - the loaders could and did get very sophisticated). Also, again I spaced the values in the DATA statements out for readability - in real life they'd have been mashed together for memory space reasons. So imagine typing page after page after page of these DATA statements in, numbers, commas, checking each line as you went to make sure you typed it in correctly. Then, you get to the end, and what do you do? Well - those who were waaay too impatient would just type RUN:EXEC and hope - which was stupid, as these ML programs would typically either relocate themselves to where BASIC resided, or do other nastiness, and you'd never be able to save the code. So - the smart thing was to save the listing to floppy or tape - then run it. You'd run it, then when it was done POKE-ing the values into memory, you'd execute it (different machines had different methods of doing this - on the Color Computer, which I am most familiar with as it was the machine I had as a kid, you'd RUN the code, then type EXEC - sometimes followed by an address value, depending on where the code starting memory pointer was set). And it would crash the machine, or fail in some other way. Maybe you fat-fingered a double comma, or added an extra zero in the values (several no-op (NOP) codes in row, usually represented by 0 values - were not uncommon). Or maybe you typed a 4 when it should have been a 5 - or any number of equally bad options. So it crashes - now what do you do? Welp, break out that magazine, and start scanning each line in your listing, and compare it with the lines in the magazine, and pray you find the problem. You could easily be there for hours. This kind of thing could stretch into days of work, if the program was especially sophisticated. But what you could get in the end... ...amazing games! ...new BASIC commands! ...new graphic routines! ...better sounds! ...all of these and more at the same time! There really isn't anything comparable to it today; on one hand, that's a good thing. On the other, though, it isn't - these offerings tested your skills, patience, and anger-management. Those who were masters of such gained valuable lessons...