A constructive look at the Atari 2600 BASIC cartridge (2015)
boston.conman.org
boston.conman.org
It makes for a cool party trick, but not something to charge unsuspecting children money. I got more value out of the 2600 version of PacMan (https://en.wikipedia.org/wiki/Pac-Man_(Atari_2600) ).
It was more machine language than BASIC:
http://www.ozyr.com/o2/o2comput.html
"Your Odyssey2 can make over 100,000 electronic decisions every second - and there are computers around that are more than ten times faster than that!"
Long story short, this is literally the only console cart I've ever returned (on the 2600 or any later system) due to being dissatisfied with its contents. It was an remarkable achievement on the system, but for a kid who just wanted to be able to do some nontrivial BASIC programming, it was nothing but disappointment.
>Pac-Man must eat the wafers
I.. never knew those were wafers. I always assumed they were pills.
craftyguy begins deep introspection
On the plus side, when that finally clicked, a lot of the mystery of how a computer worked finally made sense and I could now understand the abstractions on top of abstractions that allow me to just instantiate a sprite instead of having to manage hardware directly.
I never did create that game.
https://www.youtube.com/watch?v=WogMZn87hkk
Yes, miraculous is precisely the right word. 128 bytes of memory. BYTES! Or as the article's author so beautifully frames it : "the RAM can't hold a full Tweet". And that's just the RAM; CPU is similarly limited. "half the CPU time is spent Racing The Beam" meaning "half the time is spent tracing video ram to module the Cathode Ray Tube electron beam to generate the video output."
Just incredible that anything useful was possible. The more I learn about the 2600s architecture, the more impressed I am with the quality of the games that existed.
- The I/O chip has a register or two used to store the direction of a bit in the port. If you don't care whether the port is reading or writing, you can use the direction register as a byte of RAM.
- The stack pointer is essentially useless most of the time. You get another 8-bit register to play with, and it even does auto increment/decrement for you, if you're careful about side effects.
A cow-orker of mine at Atari (we were in the Atari 800 games group) decided to learn how to program the 2600. I think his motivation was partly the massive bonuses and royalties that 2600 programmers were getting for shipping their cartridges (our division did not do royalties, and it barely did bonuses). Over four months I watched him mentally deteriorate, and he finally gave up. [Six months later the company folded, more or less, and we both wound up working for Jack Tramiel].
Yeah, the fact that anyone could make a fun game on the 2600 was kind of a miracle.
I'm laughing at the extra 2 bytes of memory you just gave us! ;)
IMO, the NES dev community had a better time with the 6502 -- but they definitely had far more memory to play with by then and they had (more) expensive cart mappers with RAM.
Eventually the 2600 and its team ran out of gas. I remember being called into some game brainstorming meetings, and the 2600 programmers were just utterly burned out by the platform. Someone would raise an idea and it'd get shot down by the experienced platform wizards. Not the way you want to run a brainstorming session, but everyone thought that the platform was done.
In comparison, Atari 400/800 development was a doddle. You had oodles of RAM, tons of ROM (the cartridge I wrote was the first 16K ROM that Atari shipped, and I don't recall there being a huge flap about it), and the tools were pretty decent (for writing assembly language, anyway). Getting something on the screen was maybe half an hour of work, and you didn't have to count cycles or crunch code until you wanted to do optimization. The downside was that we weren't paid as much, and towards the end management started to fix that, too.
How old where you? As a child I had the Atari 2600 before owning a computer and just "typing" and executing a few lines of code was an exciting experience. Sadly that was my fantasy because I never had that cartridge but remember reviewing the BASIC picture in the Atari catalog again and again.
10print"this uses up all the ram. literally. this is all u get."
20goto10
without getting carpal thumb from the horrid color-based data entry method.About 13 years, I was reminiscing about Adventure, searched around a bit, and found Warren Robinett's email address. I wrote a fan email, and ... got a nice thank you email back! I was ecstatic! I later moved down to the Raleigh area, and, last I understood, he was working around the Chapel Hill area, so our paths may one day yet cross :)
A = (B < 5)
Will put the result of comparison into variable A.
And, yes that is a cool construct. Makes the most of the limited environment.
(There the big problem wasn't so much the keyboard as it was the 16K memory expansion falling off the back of the machine while you were typing. Just writing that makes me SO thankful modern hardware is as good as it is...)
No kidding. We live in an amazing time hardware wise.