One thing to bear in mind, if anyone feels like trying out this old stuff, is that modems relied on the latency being absolutely fixed; as was guaranteed in the POTS network - and of course an analogue connection. Modern VoIP calling does not guarantee this at all, and even if you have a landline it will almost certainly have been converted to run on VoIP by now. There were compatibility fixes (such as V.150.1) but given the limited usage it would not be surprising if they have bitrotted at this point.
This is brilliant and elegant. It's quite satisfying to have ways to have older computers communicate with the rest of the world. Thanks, Cameron, for preserving and extending this work from and history of John Iannetta.
The BASIC interpreter parses numerical values from text each time a token gets executed. It converts that into a float and, in the case of POKE, then into an integer. Using the dot without the implicit leading zero, there's no need to convert a "0” (48 in decimal) into a zero and, possibly, a multiplication by 10 of previously parsed digits, in this case the starting zero value.
Maybe, but it is not known that he did for that particular reason.
The sales assistants in department stores on the other hand... different story.
In the 80s stores often had home computers for display and for customers to try them out. Much like they have tablets and phones on display now. Kids being kids used to play pranks with these machines and one way to hang a Commodore 64 was POKE 1,0 (or POKE 1,.). The store employees hated it because they had to come and reset the machines all the time.
For me POKE 1,0 will always be burned into my mind as a dangerous frightening command, hence the " Oh, nooo".
I do not have any information if Edsger Dijstra held similar feelings and whether they contributed to his hate for BASIC.
Sorry. I was joking. Dijkstra’s criticism wasn’t as much for the syntax.
I would, however, prefer “POKE X” as a shorthand for “POKE X, 0”, but this might as well be a bug of the parser rather than an intended feature. Code had to be very compact back then.
>An important warning before we continue: from the telephone company side the line pair carries voltage used to power the phone and ringer, so never plug this cable into a wall jack — doing so could potentially send up to 48 volts to the computer, with likely undesirable and even fiery results. A cable like this should only ever be directly connected to another modem.
I tried this exact thing way back in 1985 or 1986. I wanted to use the C64's sound chip as a modem. I also had a PLL chip to decode received tones.
I was a teenager at the time and I didn't realize the voltage on the phone line was so high, so yeah, I fried my C64 pretty quickly. That was the end of that experiment.
I did eventually make a 300 baud modem using speaker coupling to a telephone handset, but I had to save up to buy a new C64 first.
Hopefully the cassette drive still works. That would be a rare bird - the three I have, even one minimally used one with the film still on the LCD, the tape drive is already dead. It seems to be a mechanical problem, not (just?) caps.
Alas. The cassette drive is borked. Every couple months I think about trying to fix it, but then some other shiny object gets my attention. I've not even tried to figure out what's wrong with it.
One thing to bear in mind, if anyone feels like trying out this old stuff, is that modems relied on the latency being absolutely fixed; as was guaranteed in the POTS network - and of course an analogue connection. Modern VoIP calling does not guarantee this at all, and even if you have a landline it will almost certainly have been converted to run on VoIP by now. There were compatibility fixes (such as V.150.1) but given the limited usage it would not be surprising if they have bitrotted at this point.
If it’s one-way, it’s just a “mo”. The “dem” part will only be on the other side.
This is brilliant and elegant. It's quite satisfying to have ways to have older computers communicate with the rest of the world. Thanks, Cameron, for preserving and extending this work from and history of John Iannetta.
Thanks, John! It was one of my favourite posts he made. It deserved a second life, and usefully, too.
Wow, the "POKE i,." notation does work. Are there any advantages to doing so instead of typing zero for the value?
The BASIC interpreter parses numerical values from text each time a token gets executed. It converts that into a float and, in the case of POKE, then into an integer. Using the dot without the implicit leading zero, there's no need to convert a "0” (48 in decimal) into a zero and, possibly, a multiplication by 10 of previously parsed digits, in this case the starting zero value.
For a moment I saw
POKE 1,.
and thought "Oh, Noooo";-)
This is why Edsger Dijkstra hated BASIC so much…
Maybe, but it is not known that he did for that particular reason. The sales assistants in department stores on the other hand... different story.
In the 80s stores often had home computers for display and for customers to try them out. Much like they have tablets and phones on display now. Kids being kids used to play pranks with these machines and one way to hang a Commodore 64 was POKE 1,0 (or POKE 1,.). The store employees hated it because they had to come and reset the machines all the time.
For me POKE 1,0 will always be burned into my mind as a dangerous frightening command, hence the " Oh, nooo". I do not have any information if Edsger Dijstra held similar feelings and whether they contributed to his hate for BASIC.
Sorry. I was joking. Dijkstra’s criticism wasn’t as much for the syntax.
I would, however, prefer “POKE X” as a shorthand for “POKE X, 0”, but this might as well be a bug of the parser rather than an intended feature. Code had to be very compact back then.
I think it was intentional, and omitted arguments defaulted to zero for any "FOO 1,2,3" style command. Think LOAD, SAVE etc.
Dijkstra did much for computing, but an entire generation of developers inspired by and initially taught by BASIC did a LOT more.
Me included, BTW. BASIC was the first language I learned (second if we count programming a TI-55 calculator as first).
And I’ve come to the conclusion that it’s still the best language for teaching programming to a novice. At least for a little while.
>An important warning before we continue: from the telephone company side the line pair carries voltage used to power the phone and ringer, so never plug this cable into a wall jack — doing so could potentially send up to 48 volts to the computer, with likely undesirable and even fiery results. A cable like this should only ever be directly connected to another modem.
I tried this exact thing way back in 1985 or 1986. I wanted to use the C64's sound chip as a modem. I also had a PLL chip to decode received tones.
I was a teenager at the time and I didn't realize the voltage on the phone line was so high, so yeah, I fried my C64 pretty quickly. That was the end of that experiment.
I did eventually make a 300 baud modem using speaker coupling to a telephone handset, but I had to save up to buy a new C64 first.
Heck. I've been wondering what to do with the WorkSlate in my closet.
Hopefully the cassette drive still works. That would be a rare bird - the three I have, even one minimally used one with the film still on the LCD, the tape drive is already dead. It seems to be a mechanical problem, not (just?) caps.
Alas. The cassette drive is borked. Every couple months I think about trying to fix it, but then some other shiny object gets my attention. I've not even tried to figure out what's wrong with it.