Recently I’ve noticed that I have repeatedly revisited things whenever a new or interesting way of doing them turned up.
When I first got my BBC Micro, back in 1983, one of the first things I wanted to do was recreate old television logos and teletext pages.
Six years later, when I got my A3000, I used !Draw to recreate the old testcards I found in the ancient, forgotten television servicing manuals I discovered in university libraries.
I was so happy with Inkscape and Blender, I thought that this particular journey had come to its end but, instead, it was actually about to come full circle.
I was always unhappy on Twitter. However wonderful the blog posts by John J. Hoare, the colourisations by Clayton Hickman or the programs by OxC0DE were, the overall experience invariably made me feel utterly fed up.
So when some of my friends started on their exodus to Mastodon in October 2022 I thought I really should have a look and see if it was any better. It was absolutely wonderful.
I didn’t have many friends on Mastodon to begin with but what I did find was the BBC Micro Bot. The BBC Micro Bot was originally a Twitter Bot written by Dominic Pajak that allowed you to write BBC BASIC code in Twitter and then see the results in a tweeted reply.
I was aware of BBC Micro Bot on Twitter, and had been incredibly impressed at what could be produced in just one tweet of BBC BASIC. However, I realised that with my limited skills I probably couldn’t fit much into a tweet so I never played with it.
Dominic was excited by Mastodon and also the possibilities opened up by the longer length of a toot as opposed to a tweet and so was busily porting BBC Micro Bot to Mastodon while I was joining the platform. This increased length, along with wanting to contribute some content to Mastodon, encouraged me to revisit my love of creating old television symbols in BBC BASIC.
And as if the BBC Micro Bot wasn’t enough, Dominic and the fantastic Matt Godbolt also written the wonderful Owlet to go with it. Owlet is an online BBC Micro IDE that makes writing BBC BASIC simplicity itself. So with all these wonderful tools at hand with I had to have a go myself. Well, it’d be rude not to.
My first attempt would be the ATV logo. I had created this on my BBC Micro, with an ATV logo I had drawn on graph paper with a pair of compasses and a ruler. Sadly, the results were not very impressive.
This time, I could use my Inkscape drawing of the ATV logo. One thing I had to do was make my Inkscape Document into a digital version of the graph paper I used to use back in the 1980s. In Document Properties set the size of the document to 1280 x 1024, so it matched the dimensions of a BBC Micro screen.
However, the origin was at the top-left, instead of the bottom-left as it was on a BBC Micro. To remedy this I needed to open the Interface tab in the Preferences to un-check “Origin at upper left with y-axis pointing down” option.
To me, it seems a bit illogical that this is a global setting, requiring a restart. It should be a document-specific setting so each document can save its own preference of axis system.
With my drawing set up correctly, I could then proceed to fire up Owlet and try and draw the ATV logo in BBC Basic.
There was just one more thing I needed. BBC Micro Bot uses the wonderful Acorn Graphics Extension ROM. It came as standard in the BBC Master (apart from the sprite handling) and makes working with graphics on the BBC Micro a much more pleasurable experience.
However, I needed to remind myself how to use it. Fortunately, help was at hand. BBC Micro Bot had tooted an article about the GXR from The Micro User here. Not only that but StarDot had the ROM, the manual, the reference card and the utility disc all ready to download.
When I did my original ATV logo, back on my BBC Master in 1986, I used circular segments in order to create the ATV logo. However, I’ve worked with the ATV logo a lot since then and discovered that the eyes are not made from circular segments, but elliptical segments.
The GXR didn’t have elliptical segments, so to draw them I had to use overlapping ellipses with GCOL modes that created a third colour where the overlap was that I could later colour in yellow.
In order to cut out the amount of stuff I had to hide I created a rectangular graphics window in the centre of the screen around the logo using VDU24 so that nothing could be drawn outside of it. This cut down the amount of post-draw recolouring of the logo I had to do dramatically.
One trick I kept from my BBC Micro ATV logo was to define a custom fill of yellow and blue stripes in order to fill in the bottom eye shape of the logo. To make this easier, I managed to find the .ssd image of the Acorn GXR utlities disc on the wonderful StarDot forum.
Something I had to remember to keep doing as I was working was to make regular back-ups of my Owlet code in my text editor Kate. I lost my work several times as saving from Owlet doesn’t work as you’d expect.
Although I was happy with how my ATV logo looked, try as I might I simply couldn’t fit it into the 500 characters of a toot. So, if you want to see it running in Owlet, you will have to click here.
Amongst many others, a lovely feature of Owlet is that it lets you see how your program looks running on a virtual BBC Micro in VirtualBeeb, a magical tool created to celebrate the BBC Micro’s 40th Anniversary. This is enormous fun; you can move around, type on the keyboard and even play Repton!
Another thought I had was that although the ATV logo worked well, it seemed a little incongruous on a BBC Micro. Therefore I went for something a little more BBC for my next effort. A lot more BBC, in fact: the Lambie-Nairn BBC logo from 1991.
Again as my guide I used an SVG vector drawing I did some years ago from a BBC Styleguide and copied it into a BBC Micro sized Inkscape document. I placed a number of guides on the image. The Inkscape toolbar would tell me the co-ordinates of the guides, so I could code the PLOT statements by just gliding my mouse over the image to get the x and y values.
Even though I tried my very best to keep the size of my BBC logo program down, it was still to large to fit into a toot. I felt it should be possible, but it was simply beyond me. If you want to see it in Owlet, click here.
However some expert BBC Micro Bot programmers took my verbose effort and ran with it. The incredible @firstname.lastname@example.org managed to fit it into a single toot and @email@example.com managed to squeeze it down even more in this toot.
The trick that bazzargh used to do this was to use PRINT statements to display the VDU codes (ASCII codes outside of the normal range used for characters) so you could plot complex shapes on screen using PRINT. He explains this process here, and even provides a tool to help you produce the PRINT statements.
In fact, more amazingly, rheolism even managed to make it a version of the logo in Mode 7 (so we have teletext version) and in the two colour hi-res Mode 0 using colour changes to make it appear to have five colours and squeeze the whole lot into a toot.
The only thing that bugs me a little about my BBC logo is it was an anachronism. The BBC Micro should have really have the rounded diamonds logo from 1971.
So for my next effort I wanted to have a go at something a little ambitious, and something that fitted in with the era of BBC Micro. I wanted to try Oliver Elmes‘ BBC 2 logo that appeared before editions of Micro Live.
To achieve this, I used the same technique I had before, preparing an SVG file in Inkscape to the BBC resolution of 1280×1024. However, this time I did a complete redraw of the logo to make it easier to transfer to the BBC Micro. This redraw is shown above. It may look a little odd, but it contained everything I needed to draw the logo in BBC BASIC.
The approach I was going to take for the BBC2 logo was to draw it several times in light orange moving the graphics origin upwards and to the right each time with VDU29, and then drawing the logo a final time with dark orange and white.
I was very lucky that dark orange and light orange were defined by default in MODE1 by the GXR and so I didn’t need to use the pattern editor that comes with the GXR ROM in order to create custom fill patterns. I thought this would cut the length of the program down a bit.
The tricky parts of drawing the “2” were the three large rounded corners. They had to be drawn as outlines and then filled in using the arc drawing and flood fill PLOT codes. The flood fill only recognises real colours rather than shaded colours which made filling the large corners a bit hit and miss.
I was very pleased with the end result. It was very evocative and I thought I’d done Lesley Judd and Fred Harris proud.
This time, rheolism was not able to squash my BBC 2 logo down into a toot, although he had a very good stab at it.
I have thoroughly enjoyed playing with BBC Micro Bot so far, and I have some ideas of things I’d like to handle next. I also want to set up a GitHub repository for my code and SVG files so they are all available in one place for others to play with. Obviously, when I do, I’ll write about it here.
I don’t know if doing these graphics is me going forward or going back, but when you are coming full circle I suppose that, really, it could be both.