# 3.2.1: batari BASIC; the Sidebar¶

I came across Fred Quimby’s batari BASIC while developing the first version of 8bitworkshop, and was intrigued. This is a BASIC compiler that targets the 6502, and has specific support for Atari 2600 features. For example, you might define the playfield like this:

     playfield:
................................
......X.X.XXX.X...X...XXX.......
......X.X.X...X...X...X.X.......
......XXX.XX..X...X...X.X.......
......X.X.X...X...X...X.X.......
......X.X.XXX.XXX.XXX.XXX.......
................................
.....X...X.XXX.XX..X...XX.......
.....X...X.X.X.X.X.X...X.X......
.....X.X.X.X.X.XX..X...X.X......
.....XX.XX.XXX.X.X.XXX.XX.......
................................
end


You could then set the foreground and background colors:

     COLUPF = 22
COLUBK = 2


And animate the playfield, scrolling it downward each frame:

    mainloop
drawscreen
score = score + 1
pfscroll down
goto mainloop


This tool had its 1.0 release in 2007, and most people seem content to use the built-in Windows executables packaged with the distribution. (I had to use the Valgrind memory checker to get it compiling on Linux.) There are lots of bugs; many compile errors just lead to assembly errors. It could use a major overhaul with a new parser and code generator.

But there’s really nothing else like it, and many complete games have been built with this system. Its support libraries make things like bank-switching and kernel-drawing almost transparent to the programmer.

Now it’s integrated in the 8bitworkshop IDE, so give it a shot! There are several presets at the bottom of the list; they run the gamut from “Hello World” to complete games. Click the “?” icon to see the manual.

## The Sidebar and Resizable Panes¶

The IDE now has three resizeable panes, the leftmost of which is a new sidebar. Just drag the leftmost gutter to the right to expose it. It shows the various source files, include files, code listings, and tools like the Disassembler and Memory Browser.

You can also create new include files using the “Add Files to Project” menu items. This adds #include statements to your main file (the file selected in the top bar pulldown.) These will appear in your sidebar too.

For C projects, you can create “linked” files, which add //#link "..." statements to your code. The IDE compiles these and links them to your main file, just like a Makefile would.

## Markdown¶

I found myself wanting a lightweight Markdown editor to use in the browser, so I integrated the Showdown parser. Switch to the Markdown platform to write documents and see a real-time preview. Maybe later, I’ll add stuff like including external images.