You’d just get a big error message for the whole program.
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?)
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].
[1] https://www.atarimagazines.com/software/displayfile.php?file...
https://www.atarimania.com/mags/pdf/Antic_Vol_7_No_4.pdf
On p. 31, you can see the intended characters.
I now remember that Atari actually had their own variant of ASCII, called ATASCII:
https://en.wikipedia.org/wiki/ATASCII
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"
(Ruby code, outputs "WB")Do you mean like, "for lines 1-20 the checksum should be 0xDEADBEEF"? This would let you find the error before finishing the program.
Or just at the end, it would checksum the whole thing?
So, after typing that in and probably SYSing (C=64 BASIC command for executing machine code from arbitrary memory location) to some address, it did print out a two-digit (eight-bit) hex checksum after every BASIC line I entered on the C=64 and the program listing in the book had the correct checksums for every line, so spotting errors was more or less instantaneous.
This stuff brings memories.
FOR I=40960 TO 49152:POKE I,PEEK(I):NEXT I
POKE 1,54
From top of my head; loop through the BASIC interpreter area, reading byte by byte with PEEK and POKEing those bytes back to the same addresses. Sounds nonsensical? Not so, because the C=64 does have full 64 kB of RAM, but some of it is overlapped by ROMs. What happens here is that you're reading from ROM but writes always go to RAM, so you're copying the BASIC interpreter from ROM to RAM. After that, the POKE statement turns off the ROM overlap and the interpreter is now run from RAM, so you can edit it live - and obviously cause all sorts of interesting crash situations.It sure did help later with career in IT to have understood this kind of stuff at age of around ten.
The code listings had a comment (rem) at the end of each line with a checksum number, when you used the checksum program it would display a checksum at the top of the screen that would match if you entered the line correctly.
An example page of code with checksums is at https://archive.org/details/1983-10-computegazette/page/146/....
A life changing event for those of us entering code from magazine listings in the early '80s.
There were also books I checked out of the library. These sometimes presented additional difficulties as we didn't have a computer powerful enough to take advantage of everything in the book, or had a completely wrong environment.
I must have been weirdly motivated but in some way I think this was better than the way everything is spoonfed and easy for kids today if they want it? My son is not motivated the same way, it's just too easy to go over to a game or something else that's less challenging. Quite a few of my friends who also became software engineers/computer scientists had a very similar experience in the late 80s and early 90s.
Oh yes they do.
The computer was half a decade old at this point but we were poor so it was pretty great to us.
After he finished hours of typing in a game, he called my friend and I to see the magic of first run. My friend, having never seen the 400 before, pops open the cartridge cover to see what's in there, which is an action that powers off the computer.
And that in the era when you could see not much of your code all at once, and trying to catch the issue with LIST was a pain too
Edit: Could not have been QBasic as it wasn't released until 1991 and I was doing this in 1987-1988. So maybe GW Basic? Whatever came standard on an IBM XT clone from Taiwan.
Edit: Although having just googled it it seems like NFT tattoos might be more of a thing than I was aware, so what do I know.
"The response to the show was unexpectedly overwhelming. Over the course of the approximately 60 episodes, the station received a total of approximately 50,000 letters from listeners. This was unprecedented in the history of broadcasting."
...and of course as a teenager I was eagerly awaiting each show and recorded the programs that were broadcasted at the end :)
So for me, this title was "Yeah, I get it how that would work".
For fun I just asked my 16 year old son "Do you think it was possible in the past to download a computer game from the radio?". He thought is was impossible, and had no clue how that would work when asked further :D. It totally confused him because "you can't play games on a radio".
Those were indeed different times.
A much more mainstream way of sharing software was source code listings - typically BASIC - in magazines like Dr. Dobbs, that you would type in yourself.
I wonder how many of today's youth are also aware of the bulletin board systems (BBS) that existed pre-internet - standalone servers that you would connect to via modem to socialize and/or download files using protocols like Kermit, and X/Y/Zmodem.
Ward Christensen and Randy Suess put the first BBS, CBBS/Chicago, online in February 01978.
As for internets, Louis Pouzin proposed internetworking in 01974, and Cerf and Kahn published "A Proposal for Packet Network Intercommunication" https://ieeexplore.ieee.org/document/1092259 the same year. Within the ARPANET project, the Internet Experiment Note series began in 01977. IEN 1 https://www.rfc-editor.org/ien/ien1.pdf is dated "29 July 1977". But, although it's talking about "the last couple of years" and "the ARPANET internetworking community", it seems to be talking about proposals for networking protocols to implement, not reporting results from actual experiments. IEN 65 https://www.rfc-editor.org/ien/ien65.pdf are the meeting notes from the TCP meeting of August 5, 01977, including an assignment of what would later be called "class A" IP network numbers; for example, network 18[.0.0.0] is assigned to LCS at MIT, an assignment MIT still retains today, and network 10[.0.0.0] is assigned to ARPANET, an assignment it would retain until it was shut down. But that doesn't mean they could actually send packets with those addresses yet. At that point they were still considering things like variable-length addresses (in IEN 66).
Even in IEN 22 in February 01978 https://www.rfc-editor.org/ien/ien22.pdf they are talking about all plans to set up routers in the future tense, while IEN 46 from June 01978 https://www.rfc-editor.org/ien/ien46.txt talks about MIT already having two local networks (apparently participating in the internet experiment) and concerns about "upheaval to (...) gateway [router] code".
IEN 51 from July 01978 reports high levels of packet loss in the SATNET gateways https://www.rfc-editor.org/ien/ien51.txt, suggesting that UCL was somewhat successfully internetworking at that point.
But IEN 53 from August 01978 opens saying, "Vint put the stress on the need for the Internet to be a working system very soon," proposing various milestone dates for 01979, though it also reports that "3 gateways are up between SATNET & ARPANET", and that an internet was up and working at PARC interconnecting 22 to 25 ethernets over PRNET, but presumably not using IP (at the time called IN).
IEN 60 from October 01978 https://www.rfc-editor.org/ien/ien60.pdf section V reports, "Testing of this [new shortest path] routing algorithm [is] in progress[,] and it should be operational in the ARPANET/PRNET gateways and the ARPANET/SATNET gateways by the end of this year."
Later that month, IEN 63 https://www.rfc-editor.org/ien/ien63.pdf reports, "A number of [Internet] feasibility demos have been done. We need to show an operational [Internet] capability. In June 1979, eighty users will be online via PRNET in Ft. Bragg. In April 1979, there will be a PRNET demo at Ft. Sill. In May-June 1979, UCL will be disconnected from the rest of the ARPANET and will depend on the Internet system." It also reports that at BBN the SATNET-ARPANET router and the PRNET-ARPANET router are now operating, and asks, "Is IN [IP] available directly without TCP?" Forgie at Lincoln Lab reports, "Hope to have an internet speech capability up by the end of the year." This is also when today's minimum MTU of 576 octets was established.
In IEN 76 https://www.rfc-editor.org/ien/ien76.pdf in January 01979, "Ginny [Strazisar at BBN] noted that both the SATNET and PRNET gateways will run both IN-4 [IPv4] and old protocols by the end of January." So at this point they did in fact have the internet up and working. BBN reported success running TCP/IP ("TCP-4") on PDP-11 Unix, Noel Chiappa at MIT LCS had four running internet nodes on Multics, and at NDRE in Norway "TCP-4 has been running for about three months".
So I think that, by any reasonable definition, the internet that we're using today was up and running in late 01978, on multiple operating systems and multiple continents. It just wasn't very big yet. The packets they were sending would probably have been interpretable by today's Wireshark, though I'm not sure about that (IEN 54 defined the IP header format that was standardized in RFC 760, but there might be subtle incompatibilities, and I'm less sure about TCP), and even some of today's IP-address space allocations were already established. If you were to bring up a software emulation of the Multics TCP/IP stack on your LAN, you could probably telnet to it.
The other internets like the one at Xerox PARC might have predated the TCP/IP internet we use today, but not by more than a few months—not by enough to predate the BBS. IBM's internal corporate worldwide computer network was a few years earlier; I forget what it was called, but I don't think it was an internet.
My error was that I had thought that there were lots of internetworking experiments in the years leading up to IPv4, given that the concept was published four years earlier. I didn't appreciate the slowness of the development of the necessary software and the resulting degree of preplanning and deliberation. BBN's Unix TCP/IP was written in PDP-11 assembly, and presumably the TCP/IP stacks for Multics and the PDP-10 were also written in assembly, which may be one reason for the slowness.
As for "what most people today think of as the internet", ignorant people have all kinds of stupid misconceptions. They think that cellphones send radio signals to satellites, that Christopher Columbus discovered the United States, that Henry Ford invented the automobile, that many people eat too much salt, that microwave ovens are radioactive, that vaccines cause autism, and that Xbox Live and WhatsApp don't use the internet. But presumably nobody that ignorant is participating in this discussion, so I don't know why you'd bring it up.
Perhaps not, but maybe not even fair to categorize it as ignorance. Many techies will have only grown up in the web era and therefore think that web-pages and smartphone apps are the internet. How many have used an NNTP client, or even know what one was.
Are you a bot? Your response and five-digit dates are distinctly odd ...
I'm not a bot.
It is true that it would be more normal to respond to your comment with personal attacks or poorly thought out non sequiturs rather than reading through meeting notes from the late 01970s to find out what the truth was, then admitting I was wrong.
This abnormality is why people often respond to my HN comments by saying things like https://news.ycombinator.com/item?id=43494574: "This kind of comment is the reason I come to HN. Thank you for taking the time to share your knowledge with us."
I wish more people were abnormal in this way.
Normality is by definition mediocre; excellence is therefore both abnormal and an act of dissent, conscious or unconscious. Dare to be abnormal.
https://www.youtube.com/watch?v=SbD49LoIZ_0&list=PLk5kr7-twZ...
It's not obvious that the frequency range used by computers recording on audiocassette would fit into that used by AM or FM radio transmission and reception equipment.
In other words, it's obvious that it would be possible on equipment specifically designed for it.
But I'm quite surprised that it worked without it (presumably) having been designed for. Or maybe they did pick a frequency ceiling compatible with commercial radio intentionally?
I never did it myself, but did get copies of the (British I think) broadcasts on cassette for the ZX Spectrum. iirc a program would be about five-six minutes of beeps.
Well...
> do people think
Often, no.
Somehow I bought a Hauppauge TV tuner card, it may have been this one:
https://www.ebay.com/itm/325897614012
"Receive data broadcasts with Intercast and Wavetop"
Now, I don't remember anything I specifically downloaded using this. I'm not sure if it was still being used at the time, or if it was even supported in my area. I picked the tuner card up at a surplus store and it was at least a year or two old at that time.
I remember you needed to use a certain application and images or websites or something would appear in a browser while you were watching a TV show.
Edit: Intel Intercast, apparently
https://en.wikipedia.org/wiki/Intercast#:~:text=Intercast%20...
https://www.ami64.com/product-page/kcs-power-cartridge-c64
See also https://sqlservercode.blogspot.com/2016/11/what-was-first-co...
Later on, I also remember downloading Linux kernel tarballs, hot off the press, via FTP using 9600 bps modem (if I recall correctly - slow as crap), which I'd kick off before going to bed and hope for the best in the morning. Sometimes I'd make a script to download a few different files at once.
On the theme of slow computing in general, I remember doing embedded software builds on a PDP 11 (Xenix) that would take an hour or so to complete - so you'd go and practice your juggling or somesuch waiting for it to complete.
Still, the big thrill in mid-late 70's had been the switch from batch punched card deck submissions to a mainframe (an hour later comeback to collect the syntax error, or core dump printout) to being ONLINE (woo hoo!) - sitting in front of a terminal and actually interacting with a computer in real time!
Wikipedia says the Spectrum could do even better.
https://web.archive.org/web/20250127135637/http://horstvoelz...
The most remarkable detail might be the collaboration across the Iron Curtain with West German and Dutch computer enthusiasts.
And this is not entirely an exercise in pedantry and semantics, since traditional radios were not wired, they weren't the "last transmitter" in a long chain, but were rather often _the_ transmitter. The data for download had to be physically moved _to_ the radio station. (I believe wireless extenders for radio exists, and maybe even some wired for larger coverage, but my understanding is radio still remains exceedingly local, and national stations are largely transmitted via the internet first.)
Though a quick aside; it's funny that you refer to wireless as radio, when in radio's infancy, it was most commonly referred to as "wireless" (e.g. "on the wireless").
I remember see the dot a few times, but it was probably very short lived.
It's one of those ideas that makes a whole lot more sense at the broadcast studio where everyone edits on consoles[0] tied to Betacam decks that have exact, to-the-field seek timecodes and stable freeze frame capability. Even a 4-head VCR would utterly ruin it though.
Here's a pretty thorough article on data over radio:
Sometime after they got it, so did their next-door neighbors (not necessarily the same model: they weren't - irony! - on speaking terms), and then sometimes you'd pick up the handset and find yourself eavesdropping on both sides of the neighbor's phone call. Fortunately, the manufacturer had anticipated this: there was a three-position frequency-selection switch on the side. (I can't remember if the base station hopped to whatever you set on the handset, or if you had to set it manually on the base, too.) That worked fine for a while, we used frequency #2, the neighbors used... one of the others, until (I assume - we never heard anyone else's calls) a further-away neighbor or two also got a cordless phone, and the next-door folks had to frequency hop.
They put up with that for a while, and then sadly reverted to corded phones until more-advanced cordless tech became available.
(German) Wikipedia article: https://de.wikipedia.org/wiki/BASICODE
I recorded to tape cassette GDR radio shows on VHF that broadcast code, usually for the GDR "KC 85" 8 bit computer line (U880 processor - Z80 clone).
Funny thing is, you could easily tell from the sounds if the code was assembler or BASIC. The latter was much more orderly and structured.
Problems occurred when someone nearby turned on an electrical device during that transmission, because it was audible and introduced too much of an error and the recording became unusable.
Your Computer certainly had a few of these in the early 1980s.
One example is documented here: https://magazinesfromthepast.fandom.com/wiki/Your_Computer_V... By the way, you have no idea how exciting and space-age that cover looked in 1982.
https://www.discogs.com/release/631562-Papa-Dance-Poni%C5%BC...
It had Atari and Commodore music (as audio) as well as Atari and Commodore software (as data).
Despite the claim on their old page to be the “first use of vinyl for software distribution” they did later acknowledge and reference some prior art in a Slashdot thread: https://slashdot.org/comments.pl?sid=140154&threshold=-1&com...
I wish HN would let you search upvoted comments and submissions, it would revolutionize my life since I can remember previous things I've upvoted, but have no easy way to find any of them. I might sit down one day, and manually export all my liked comments and subscriptions.
Edit: There is a (small) wikipedia category for this: https://en.wikipedia.org/wiki/Category:Vinyl_data
thank you!
See also https://sqlservercode.blogspot.com/2016/11/what-was-first-co...
https://hackaday.com/2024/05/09/the-zx-spectrum-takes-to-the...
I did eventually get a cassette storage device. I wonder would it have worked for Atari too?
[1] We used to use the term "boombox" but I am afraid no one still knows that term, so ghetto blaster it is.
In this case, continuous GPS coordinates are sent on one audio channel while the other channel is voice.
Imagine being six years old and wanting to play Manic Miner, and having to sit there for 6 minutes while your TV did this before you could play the game:
https://youtu.be/kHn_BvTBALI?si=5CrKYa6DlNZTN7In
(Please watch in full without doing anything else or scrolling for the authentic experience)
Your wi-fi access point takes electrical signals coming from something else, like a router, and turns them into radio waves that are captured by the antenna on your phone or computer. This is, then, fed to the Wi-Fi controller on your phone or computer which translates these transmissions back into electrical signals.
Loads of math are involved in getting it right, but that's the gist of it.
(I just got another one of these kits because I had previously built, successfully tested, then threw it out after I had some issues using it as-is, but I want to build it again with the additional electronics experience I have now.)
The robot also had a tape deck, and if you hit record on the tape you could later playback the pre-recorded actions for the robot.
The cassette interface to old 8-bitters is basically a modem, so you can transmit programs anywhere you can achieve a clear enough audio signal: cassettes, CDs, MP3 players, the radio...
The most obscure thing I have ever seen is a device that received firmware updates by strobing the bits as light into a photodiode. You would go to a website on your phone, press upload and hold the phone in front of the thing.
It was always touchy, slow, required an unbroken line of sight, and poorly supported by both the OS and application software, but I did make it work a couple of times. The PDAs of the time used a similar technology to send contact information (business cards) between devices.
In 1986, a friend of my father, who was a computer science teacher, showed me a ZX Spectrum clone built using a Z80 CPU clone, he used at high school to teach kids.
But it wasn't until I was 10 or 11 years old, after the fall of the communist regime my parents afforded to buy me a ZX Spectrum clone, when kids in other countries already used IBM compatible PCs.
I still have fond memories of it, it was the computer where I first tried to program, typing BASIC commands from books.
Ceefax provided various programs for the BBC Micro. Or more generally https://en.wikipedia.org/wiki/Telesoftware