For December, I decided to embrace the Christmas spirit. Inspired by group posts, I created a Christmas tree and snow scene. It needed a little flair, so I added an animated message to the scene. Very retro program for my ZX81.
Pitfall! without the peril, with this accurate ZX81 simulator.--> While contemplating what ZX81 program to write about this month, I completely forgot that I had created a Pitfall! Simulator. It began as a fun project to occupy my time during winter break. My initial goal was to recreate David Crane's LSFR (Linear Feedback Shift Register) in Z80. However, after learning more about its functionality, I took the project much further than I had originally intended.
A recently posted meme reminded me of the silly things we did on computers. In the early eighties, most computers came with BASIC as their default OS. A common starting point was a s simple “hello world” program. But almost as often, someone wrote something a bit more personal. This is my tribute program to the “I was here” concept of those days.
I saw the Commodore 64 maze generator for years, but ignored it on my ZX81 for different reasons. For one, the characters needed didn’t exist on the ZX81 keyboard. The other was the lack of automatic scroll. Undeterred this month, I created my own version in Sinclair BASIC. I’m quite happy with the results, even if not quite the same.
Out on a run back in November of last year, I had this idea to create a 3-color screen mode of the ZX81. The idea was to use the checkered, or gray, graphic characters to add a third color. After reading about the C64 color modes, I called it chunky graphics as an homage to its wide pixel format. The pixel’s are chunky due to the 2x1 ratio and not being square. Let’s dig into the details.
After finishing the basic version of the cat animation, I wanted to improve the frame speed. This meant converting from BASIC to machine code. My first thought was to do the conversion with MCODER II. I dropped that idea, deciding to focus on a custom z80 Assembly version. Ergo, cat written in assembly or Fast Cat is, well, a faster version and a bit more.
The holiday's provided me a nice break to enjoy writing code. During that time, I revisited my digital rain program. For ZX81 Rain, I cleaned up the colors and added a little randomness to where the drops start. Nothing super exciting, but the overall effect is much nicer and looked good in both black/white and color on the ZX81.
Reading some old programming books from the eighties, I saw that the ZX81 had an ABS command that made me think I could improve my FizzBuzz program. It was late and my mind mixed that command with a modulus one, which the ZX81 doesn’t have. In any case, it offered me an excuse to fix the latency introduced by printing numbers.
I had this idea the other day. One of the problems I’ve had with the ZX81 is printing numbers, which is pretty slow. Due to this, many of my games avoided printing them. delaying showing score until after play has ended. My idea was to try to find a way to speed that up. Not only did I find a way, I decided to implement it in an older game of mine: E.T.
A recent post in a Facebook BASIC group of a cat animation. A couple of other members converted it to their BASIC code of choice. Mine being the ZX81, I promptly worked on a version for it. I created a mostly full screen version, which tends to show how slow the ZX81 really was. In any case, it was quite a fun little exercise.
I’ve been on a retro computing binge lately and was recently watching one on programming on what it was like to program in the 80’s. Having lived and programmed during that time, I know full well what that was like. But the narrator was showing off an Apple ][+, a computer I didn’t own. Although I programmed on an Apple ][ in high school, my memory of it is vague at best. But what was really interesting was what he was programming: a snake game. Being something I’d never tried myself, I thought now would be as good time as any.
Fun with Mandelbrot sets. I never thought I’d say that, but here I am doing just that on the ZX81. I ran across some fun discussions on them. They are often used as benchmarks, but I just wanted to create some interesting pictures. This is my version using Sinclair BASIC that creates a few interesting ones.
I ran across a ZX81 forum post showing a fast way to print a circle in BASIC. It was based on an article for the Atari back in 1983. I was surprised how fast the routine was and wondered how it would in assembly. Long story short, I built a screen saver for the ZX81. Sure, the ZX81 really didn’t need one, but the circles are fun to watch.
I had this idea on Sunday that led to today’s program—more about that in a minute. One of those sit down and do it programs, I banged this out pretty quick yesterday. Not wasting time, I decided today I’d share it. Road is a very simple program that I never intended to make. But here it is, so lets talk about it more.