Only another month until CoCoFEST! It sounds like this will be an extra good one...see you there? It will be a great chance for you to play Sluzzle... :-)
Lock 'N Load
When last we left Sluzzle, we were sorely in need of a loader to coordinate loading both the game binary itself and the pictures that are the object of the game. All of that could be added to the Sluzzle binary itself, but the built-in Disk Extended Color BASIC was just itching to help out!
Just like a shell script wrapper around a finicky Unix binary, DECB provides a number of facilities that make it attractive for writing a loader program. While the built-in options for flow control, text processing, and (especially) disk access are not necessarily great performers, they are relatively easy to use. Plus, using them avoids dedicating time to developing such code.
The DECB loader for Sluzzle performs reasonably well and was easy to implement. The BASIC console and disk I/O routines were much easier to use and adapt than writing the assembly language equivalents would have been to do. Dealing with line numbers still sucks, but some minimal planning and allocation of line number ranges to specific parts of the program makes things manageable. The Toolshed utilities also helped by letting me edit the BASIC sources on a modern PC rather than on the CoCo's keyboard.
I added a new feature to Sluzzle -- a help screen! That might be helpful for people new to Sluzzle that aren't sure what controls to use. The help screen is implemented by switching the video mode and the screen address back to the text screen used by BASIC, which will show whatever was left on the screen just before starting Sluzzle. The loader was extended to write the control guide data before executing the Sluzzle binary. Typing '?' while Sluzzle is active will reveal the help screen -- too bad I didn't include that in the video... :-(
One final touch that is barely discernible in the video is the addition of a few music queues. Starting, winning, and losing the game are all punctuated with some appropriate musical notes. These are implemented using the PLAY command, which Color BASIC has in common with GW-BASIC (also from Microsoft). The PLAY command processes a type of music macro language that is also similar to the Ring Tone Text Transfer Language once used on Nokia phones. This is another way in which using the built-in BASIC is a lot more efficient with programmer time than writing that feature from scratch would be.
With Sluzzle complete, I have released a git tree with the Sluzzle source. I have also released some downloadable binaries for those that aren't interested in DIY. I hope you enjoy it as much as I do.
I don't know what will come next here. I may want to branch out to some other machines that use the 6847? Or maybe there will be some new ways to exploit the VDG on the CoCo? It is hard to tell...but as always, stay tuned!