As 2020 wound down, I had a couple of different ideas for new ZX81 programs. Most of them were graphic programs of various sorts. Themes ranged from dumpster fire pictures, an advent calendar, a virus action game, to a solo RPG. Although they were all great ideas, I didnt think Id get any complete enough to publish. In the end, I decided to enter in one of my old graphic programs of the Ocean Pacific logo.
Is the ZX81 that slow?
Running the program, I it will bore you quickly watching it draw the O and top of the P. Although the ZX81 had great math routines, it does everything with floating point. This tended to make them slow. The various
TAN and their arc versions being the worst offenders. As such, drawing circles is like watching paint dry.
Fortunately, drawing lines is way faster. The rest of the program almost screams once the circles are draw. I had to fill in a few spots using normal
PLOT commands. The text is a
OP, ZX81 Screenshot by Steven Reid, 2020
The original program would print to an attached printer using the
COPY command. I still have my printouts floating around somewhere, having laminated a couple. Funny thing is, I don't remember owning any OP clothes. Since I didnt expect most folks would want to print the logo, I replaced that routine. I added a delay, using some more math, and a screen wipe effect. You can bypass the delay by pressing any key.
No arguments here.
Code wise, youll find OP works pretty much like my other drawing programs (Bolt or TS). There are two drawing routines. Starting at 1000, the function that prints a line can be found. Starting at 2000 is a simple circle routine. There is no complex math here. The program is a bunch of
LET statements defining arguments, and a
GOSUB to the proper function. Oh how simple things were back then. If only the ZX81 supported real functions.
Like my last program, I wrote the program out in a text file first. I then copied it into JSZeddy to compile. I ran into a bit of an issue where the lines with X1 or Y1 needed to be entered again. They displayed correctly, but the ZX81 was giving me an out of memory error when trying to run them. It was an easy fix, but something Ill have to watch.
There isnt much else to change.
Outside of the kerning issues I noted above, I could have designed the letters better. The logo itself is decent and doesnt need improving. I do like how the waves came out. The code might be brute forced, but it works. I could have created an array or something, but it would have meant a lot of typing for no real value.
As the title noted, there isnt anything Id do different. And that is the best way to end the year. It is nice to close with a decent ZX81 program from my youth that works well, looks good, and wasnt too hard to enter.
For 2021, I plan to work on some newer ideas. I have a few larger programs still to enter and share from childhood. Now, I need to make sure I find the time to get them all done.