kamakazi, on Mon Sep 20, 2010 2:24 AM, said:
Batari BASIC is nice for starters, but its ability to harness the 2600 is limited.
Actually, that's not true, except when you're talking about using bB-only code "out of the box," with the "canned" kernels. In batari Basic you can write your own display kernels, either using bB-only code, assembly-only code (either with inline assembly or with an include file), or a mixture of bB code and assembly code. Writing a kernel using bB-only code isn't as bad as you might think-- it's probably easier for a beginner to understand the commands, and you can still get precise timing control for midline graphics changes if you're careful, especially now that you can use the "callmacro" command to "sleep" for a specific number of cycles. But if you use a "for-next" loop for drawing your game screen, the "for-next" logic will eat up a bunch of cycles. And you can't use the X and Y registers directly for "LDX/STX" or "LDY/STY" instructions, or for indexed-addressing, unless you use inline assembly or an include file. (*All* of bB's include files are written in pure assembly.) However, you can use X-indexed addressing ("LDA,X") by using arrays, since the X register is used for the array index. A while back I posted a few examples of kernels written with bB-only code, mainly displays that draw all 128 of the colors onscreen at once, or blend them together via flicker to get either 240 colors (by mixing adjacent luminances of the same hue to get the "inbetween" luminances) or 480 colors (by mixing adjacent luminances *and* adjacent hues).
Anyway, batari Basic is a lot more flexible and capable than some people realize, and the ability to use inline assembly (or write your own include files in assembly) makes it an ideal beginner's platform for getting your feet wet in 2600 programming and then gradually transitioning to pure-assembly coding at your own pace and learning curve.
Michael