Pages

Tuesday, July 2, 2024

Probe Lander ZX81

I transcribed the BASIC code of plander from the ZX Spectrum version to ZX81 using the EightyOne emulator. Then I adjusted the code to account for the limitations of the ZX81. I have to say, it made me see that I could have done the code a little better. I have been watching YouTube videos on writing BASIC code on retro computers and I've heard comments like the limitations of these machines make you a better coder. I think that's a fair assessment.


Starting Screen

Game Screen

This was the first project where I coded on the ZX81. It took me a bit to get used to the keyboard layout of commands, but when I did everything was fine. To be unable to use the colon to put more than one command on a line was a bit of a bummer. I made extensive use of GOSUB command and had more subroutines than in the ZX Spectrum version. I was also a little bummed out with INPUT as it would not have a print option in the command and I had to pair a PRINT command with it which forced me to make a subroutine just for aesthetics.

I hadn't played many games with the ZX81, just Monster Maze. So, when it was time to play plander, I forgot how slow the refresh rate of the screen was. But it was all good as the game was turn-based and the screen rate didn't affect gameplay at all. The anxiety of crashing was still there. And it worked as expected. I'm happy with how it came out.

I provided 2 image files that have the BASIC code in them. You can use them to type in the game if you wish to have the experience or even modify the game as you wish.

The game is available in the following link for free under the ZX81 folder.

https://github.com/echolm/plander

Monday, June 24, 2024

Probe Lander - ZX Spectrum

I have coded the Probe Lander or plander on the Fuse emulator that emulates the ZX Spectrum 48K. I literally developed the code on the emulator and looked up all the special keywords on the keyboard just like when I had my 16k ZX Spectrum when I was 16 years old except for the rubber keys. Do I miss the rubber keys? No particularly. I actually prefer full-size keyboards or even various modern keyboards.

Starting Screen plander

Gameplay plander

 

But plander came together rather quickly. As I said in my previous post, I had been thinking about this project for quite a while. During my short career as a business software developer, I understood that the key to any software project is scope, how big you want the project to be, or how in-depth you want it to be. Many factors affect the scope. And the scope affects how many variables you end up with and how many lines of code you end up with. There are several ways to measure this thing. Suffice to say, I needed to keep the scope small. After all, these are not big systems we are working with here.


I took data from real lunar landers that have flown. I used appropriate mathematical formulas. And where the Mathew was too complicated for me, I approximated the math. Then I reduced the formulas by computing the known and unchanging variables and constants together before coding them. That's why the math may not look familiar. This was a space-saving decision.

ZX Spectrum BASIC allows for mathematical functions. I decided to take advantage of that. I don't know if it saved me any space though.

I used a few subroutines. As a teen, I didn't understand the use of subroutines. I learned that in college while learning PASCAL and C. In the game, I used the subroutines as I needed them to reuse code or to divert code to another section because of the line numbers.

The gameplay is fun and thrilling. The pace is really at your own pace as it's turn-based but it doesn't feel like a turn-based game at all. It feels live. Try it out. It's available for free at:

https://github.com/echolm/plander

I also included text and image files that list the BASIC code for the game so you can type-in the game onto your Sinclair Research ZX Spectrum or your favorite emulator. Enjoy and try not to crash.

Friday, June 21, 2024

Probe Lander - a BASIC language game

 Probe Lander or plander is a project I longed wanted to do. I received my first computer in 1983 for Christmas. It was a ZX Spectrum made by Sinclair Research. I learned BASIC on that machine and learned a lot about games. My friends had various other machines. One of my friends had a lunar lander game. I later found out that the lunar lander game was first created on mainframes and the one I first played was a dim reflection of that first lander game. But later, I met a man who had a pocket computer and he had a lander game on it that only showed numbers. I played it and it was so intriguing in its simplicity and yet complexity of gaming.

I attempted to make my own lander game but to no avail. I failed every time. For years I kept trying on and off. Until it finally dawned on me how to make the game. How I wanted to make it. It would be a turned based game. That's a big departure from the traditional game as that was a live game. My game was also going to be only numbers. So no graphics. So how to keep the users engaged? There was a small story behind it. You are sitting in Mission Control and you are guiding the probe to the moon looking at telemetry. And the timing seems right with the several lunar probes recently sent to the moon irl. 

by EC Holm

I was going to write the game in BASIC, and I did. But the plan was more ambitious. In the retro computer world, BASIC was the one way you could port a program from one computer to another with relative ease. So, I plan to port the game to a total of 6 systems: ZX Spectrum, ZX81, Commodore 64, Vic 20, QB64, and Bywater BASIC. QB64 is native to MS Windows and By Water BASIC is native to Linux. The others are retro computers but of course they have their own emulators available. 

I'm going to supply the game for free as binary files but also I will supply the BASIC code so it can also be a type-in. Now, a type-in game was a game that often came in computer magazines back in the day. They often came with a description and instructions on how to play in the magazine as well along with some art. This was an amusing and encouraging way to help kids learn BASIC and also how to create games.

This project is a long time coming for me personally and it fulfills one of my childhood dreams albeit a small one. But it feels nice to be able to do it. It also feels nice that this idea and concept came together and finally realized. Thanks for reading.


Probe Lander ZX81

I transcribed the BASIC code of plander from the ZX Spectrum version to ZX81 using the EightyOne emulator. Then I adjusted the code to accou...