After wrapping up the last print scroll routine, I immediately dove into improving it. While functional, the original version felt a bit limited. With this update, you’ll find more flexibility in printing displays, though at a slight cost to speed.
Sometimes, you do things out of necessity. I spent an inordinate amount of time working on adding automatic scrolling to a PRINT command. In fact, I haver another version of my print scroll routine I’ll talk about later. But this is about a utility program. A way to print out BASIC code in hex. And this article is about what I did and why.
Finding inspiration again from my programming groups, the idea of an infinitely scrolling screen of text came up. There were a couple of different solutions posted, some quite ingenious. I had done something similar in the past, but this time I used a bit of machine code magic to create a more flexible solution. The result is Print Scroll.
Something I’d been itching to do is write a maze generator. Even though they seem simple enough, for some reason, I struggled to code one. With so many different algorithms out there, the sheer number of choices can be overwhelming. It wasn't until I took a vacation that my mind settled down enough for me to finally tackle the task.
I had forgotten about this Black Hole program until I ran across it while cleaning up some directories. It is a conversion, not an original, program that was shared on one of my BASIC forums. It doesn’t look quite as good as the original, but it was interesting to see what the ZX81 could do with its simplistic graphics.
While on vacation, I spent some relaxing time converting my Kimmie Fish BASIC program into something a bit more interesting. In addition to the normal speed improvements, I wanted to give it an aquarium like feeling with bubbles and depth. No color here, this is all stock ZX81 graphics. Only thing needed is the requisite 16K memory pack.
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.