Honestly, I don’t think the Atari 2600 BASIC has ever had a fair review. It’s pretty much reviled as a horrible program, a horrible programming environment and practically useless. But I think that’s selling it short. Yes, it’s bad (and I’ll get to that in a bit), but in using it for the past few days, there are some impressive features on a system where the RAM can’t hold a full Tweet and half the CPU time is spent Racing The Beam. I’ll get the bad out of the way first.
Input comes from the Atari Keypads, dual 12-button keypads. If that weren’t bad enough, I’m using my keyboard as an emulated pair of Atari Keypads, where I have to keep this image open at all times.
Okay, here’s how this works.
An older story – it’s from 2015 – but fascinating nonetheless.
This was an interesting read, however the author seems unaware that dual BCD / binary support wasn’t actually unique to atari: x86 worked the same way. The fact that engineers back then felt the need to implement two different internal numerical representations seems wasteful to me, but they felt it was important and so x86 has continued to supported it until AMD did housecleaning with AMD64.
Also, we simply don’t need special support for negative numbers in compliment notation. Like the atari, the x86 doesn’t have special instructions to add/delete/multiply negative numbers. In assembly you use the same opcode regardless of signed types. These are mathematically redundant in 2’s compliment. It’s kind of neat to plug in numbers and see how it works. x86 does expose some overflow and sign flags, which can be handy for conditional jumps, but the bits stored in a variable don’t change.