This weekly debrief is for paying supporters of my work. Please only read if you’ve paid. Thanks!
→ Click here if you've paid ←
I’m still making the most of the summer, going on adventures and travelling to hang out with friends. This week I’ve been stealing time away to study physics for uni, and to start work on an assembler style guide for Bedrock.
Digging into Bedrock
Writing up my plans in the debrief last week gave me good motivation to dig back into Bedrock. I’d been getting a bit overwhelmed with all of my plans, but listing them out in full on a page made everything seem a lot more achievable.
The plan going ahead is to start with a style guide for Bedrock assembler, then a few core libraries for things like string/array/image manipulation, then to finish the specification (designing the tone and sampler devices), and finally to dig into the rest of the documentation (manuals, tutorials).
A style guide
A style guide will be useful for people first learning Bedrock assembler. There are so many different ways to format assembler code, since it doesn’t have as much structure as higher-level languages, but some ways will be more readable than others as your programs extend and grow in the future. Instead of having to figure this out yourself, it’s handy to have a good style already written up in a guide, letting you focus on learning the language instead. If lots of people use this style, it’ll also make it easier for people to read each other’s code.
I’m keen to write the guide first so that I can make sure that all of my code going forwards uses this style consistently. It’ll be nice and brief, so it’s a good first piece of work to tackle, and it doesn’t depend on any future work. I’ve already written a lot of assembler code, so I’ll just be formalising the style that I already use.
Common macros
As a sort of companion project to the style guide, I also want to release a small library file with macros that I use in all of my projects. The macros baked into the assembler are designed to be as minimal as possible so that the assembler is easy to implement in really constrained environments, but it can be difficult to understand the wider intentions of code that uses just these macros.
In my own code, I almost never use plain JMP, JMS, JMPr macros; instead, I use GOTO, CALL, and RETURN, as well as TAIL and FALL to make it clear that a jump is intended to be a tail call or that a function is intended to fall through to the one below. It’d be useful to package these up for other people to use, bringing another layer of uniformity and structure for people who want that, but without inconveniencing those who don’t. It’s tricky to find a balance between being too opinionated and being too loose.
Toaster
I’m also digging back into toaster, my website generator program, there’s a big backlog of work that I intend to complete before I make a big version 2 release. I don’t think that anyone other than myself and my partner actually use toaster, but hey, I might as well mention it.
Come to mention it, I don’t really know if many people use my other projects either. If you’re using or thinking about any of my projects, feel free to flick me an email any time, I’m always keen to help out or hear how people plan to use them.
Thanks
Thanks for supporting everything that I do, and have a great week!