Saturday, 12 October 2019

RetroChallenge 2019/10: Extended Color Basic Akalabeth a Possibility


Akalabeth being played on real MCX Hardware

I was perhaps a little hasty in predicting that a Extended Color Basic version of Akalabeth might not be possible.  With a little coaxing and some suggestions from L. Curtis Boyle, I looked into some "slimming" techniques that could be used on the code.  By replacing some heavily used double character variables for single character variables, and renumbering the program using an increment of 1 for lines numbers, I was able to get the code down to about 25K.  Here are some of the main switches in variable names:

MM==>M
X1==>P
Y1==>O
DI==>D
GO==>G1 (this is just because Extended Color Basic doesn't like the word "GO" being used)

It also turned out to be fairly easy finding and inserting the places where Extended Color requires spaces before Basic keywords.  These didn't turn out to be needed in too many places, so the code only grew a little after doing this.  I was able to move the text of the source onto a Coco .DSK image and load it up.  However, it produced an OM error when it hit the array variable declarations.  I might need to find a few more K.

One possibility will be to remove the "Adventurer Shop" section and then chain the programs together and then load any shared variables needed between them.  However, the Shop component already doubles as the Items report, so this tactic might not be possible, or save as much memory as I expect.  I'll have to do some careful testing to get a better sense of how much more memory I need for variables.  But at least things are looking a little more positive than my last post.


No comments:

Post a Comment