Posts

BASIC Wrangler v0.04.0

I've finished the next version of BASIC Wrangler. It now has support for converting from numbered BASIC listings without needing an external program. It should be able to handle most programs, but there's probably still going to be a few glitches if it encounters keywords that it doesn't know about. I'm going to add keywords for more BASIC dialects before the next release. You can grab a zip file of it here.

The next phase of BASIC Wrangler development

It's been awhile, but I'm finally ready to resume development of BASIC Wrangler. The next major version should finally be able to convert from a numbered BASIC listing to a labeled listing. I'm using this as an opportunity to start converting it to use tokenization to process the listings. I thought about using PLY , but I really don't need its parsing capabilities, and so I've decided to use this lexer. After I decided to use that, I realized that I would need lists of BASIC keywords, and so I had to type up a bunch of files of keywords, so I could then process those into regex definitions to feed into the lexer. The current plan is to write the tokenizer to run in three passes: pass 1 to populate a list of all the lines in the listing for a sanity check, pass 2 to find all the jump targets, and pass 3 to replace the jump targets with labels and to reformat the listing.

BASIC Wrangler v0.03.0

Version 0.03.0 has been released. It now uses QBasic-style labels, and I currently have no plans to change that. All in all, everything should work better, and so it's actually worth trying out, even though I consider it to still be an alpha release. Note that you now need to type "renum" before the basic type regardless of what the readme says (see? still alpha quality). I put some work into the DATA statement reformatter, and so that should hopefully work properly with anything you toss at it, but there may still be some bugs. The pip requirements have changed, so be sure to check the README.md for those. Any feedback would be welcome at this point. My next goal is to add a denumbering routine to finally make it independent of non-Python dependencies. Hopefully, this will be into beta testing by the end of the year.

BASIC Wrangler v0.02.0

Image
OK, I've released version 0.02.0 of BASIC Wrangler. It's actually somewhat usable now. It also has a GUI, as you can see. It might be worth playing around with, but I'm probably going to end up rewriting half of it before I'm done, and so the formatting of input files will almost certainly change, which will require re-conversion of the files.

BASIC Wrangler v 0.01.0

I've finished up the initial release of BASIC Wrangler. You can find it here. It's very much super-alpha quality, and it probably only works with the Battle System Test, but it's a start.

Tool Writing, Part 1

When I started this blog, I said it not only be about BASIC, but also about other tools that I would write. Well, I've started writing one of those tools. It's a pre-processor called BASIC Wrangler.

Porting Programs to Sinclair BASIC

Image
The ZX81 and ZX Spectrum were both ridiculously popular computers back in the 1980s. Especially in Europe. However, the variant of BASIC they used was... quirky, to say the least. It's extremely difficult and time consuming to port programs to Sinclair BASIC. In this post, I'll describe how to do it. Also, this video is mostly about this process, so it might be worth watching.