Wk 2 – Update 2

Black Squigglies

My ambitions for the day were modest.

I wanted to get anything to work.

I had a thrift-store cassette player of questionable reliability, a 45-year-old Timex Sinclair 1000 of equally questionable reliability, and a brand-new mono audio cable that I hoped would somehow bring them together.

The cable had arrived, so I was cautiously optimistic.

First, I wanted to prove the cassette player worked and that the Timex could still load a program from an audio signal.

That was a pretty big assumption, considering I hadn’t gotten anything to work yet.

If, and that was an enormous IF, I could get the phone talking to the Timex, I had a plan. Thwe already had a little test application with the basic cassette-player interface. I could build on that foundation, add the features needed for a functioning website, and maybe even spend some time thinking about the user experience.

But first, I needed the damn computer to do something.

Bauhaus on the television

There I was, sitting on the floor of my me cave, surrounded by cables, a thrifted cassette player, and a ancient computer that I was increasingly convinced existed solely to torment me.

I connected my janky Jensen to the Timex Sinclair 1000, typed LOAD "", hit Enter, and pressed Play.

Squiggly lines appeared on the television. After a split second, these were different! Much darker, bolder squiggly lines. Like a Bauhaus album cover.

That seemed promising.

The tape reached the end and stopped with a loud thud as the play button popped back up.

The squiggly lines disappeared. The screen went completely white.

Nothing.

Was it loading? Had it crashed? Was I supposed to do something?

That moment felt like forever.

Then, like magic, the screen started slowly painting a picture.

IT WORKED!

Whatever this program was, it had loaded from a cassette tape onto a computer designed when Ronald Reagan was president.

And now I could finally experience what had presumably been a cutting-edge piece of entertainment in 1982.

It was awful.

I have absolutely no idea what that game was about. Ten minutes of pressing keys and feeling like I was failing an IQ test. Perhaps there was some brilliant gameplay lurking beneath the surface, but I wasn’t going to find it, and I clearly wasn’t going to read the manual. Is there even a manual?!

Enough of that. Unplug the power. Plug back in. Hard reset.

Okay. Now for the real test.

Apparently my iPhone is the janky one

I disconnected the mono cable from the cassette player and plugged it into the USB-C audio adapter on my iPhone.

Opened our bare-bones Load Goblin test page. Selected “Hello World.”

Back to the Timex. LOAD "". Enter.

Press Play on the phone.

Pray.

Squiggly lines! But these were the first kind. Less gothic rock, more garden-variety squiggly.

And then… nothing.

Wait. What’s happening on my phone?

An earphone symbol kept appearing. The volume was going up and down on its own. Playback kept stopping.

What the hell?

I had a janky Jensen cassette player that worked perfectly, and now my iPhone 16 Max was the janky piece of equipment?

I’m going to puke. IYKYK.

Reload. Retry.

Same flashing headphone nonsense.

Off to the internet on my janky iPhone in the basement. Legit Google searches, screw Gemini. I tried every possible combination of search terms involving mono cables, USB-C dongles, headphones, and iPhones.

Eventually, a clue. Like on page 3.

Apparently, plugging a mono cable directly into certain USB-C audio adapters can cause problems with how the adapter detects headphones and microphones, or thinks there is a short and goes into fault protection mode.

Wait. What?

How on earth aren’t audio jack’s backward-compatible technology. It’s a headphone jack! How complicated could this possibly be?

The proposed solution was to put a stereo extension cable between the mono cable and the dongle.

The mono cable connects to the stereo extension, the stereo extension connects to the USB-C dongle, the dongle connects to the knee bone…

Something like that.

Surely this was ridiculous.

But I had the cable from my son’s brief tenur as an streaming gamer.

Back to the browser. Queue up Hello World. Back to the Timex. LOAD "". Enter.

Press Play.

Pray much harder this time.

BLACK SQUIGGLY LINES!

A second or two later, there it was.

Hello World

Two words. White screen. Black letters.

O. M. G.

It worked.

I had just sent a computer program from a website on my iPhone, through a bizarre collection of audio cables, into a Timex Sinclair 1000.

And the machine understood it.

Of course, I immediately wanted more.

The worst game I’ve ever played

Unplug the computer. Plug it back in.

Select Super Breakout, the little game thwe had vibe-coded while building the test application.

Press Play.

Black squigglies. And behold!

Our title screen.

PRESS ANY KEY TO START – it beckoned me.

Instructions appeared. I contorted myself into the appropriate position to operate the Timex’s famously terrible membrane keyboard. Pressed 0 to launch the ball.

Nothing.

Absolutely nothing.

Well, crap.

Now what?

I took a picture of the television, uploaded it to ChatGPT, and asked what was wrong.

Apparently that C/7090 on the bottom left of the screen is the line number that had an error.

Thit found an issue with the keyboard-handling code. Apparently, even artificial intelligence can get confused by the peculiarities of a great grandpa of a computer.

Thwe fixed it. Generated another version. Loaded it again.

This time the ball moved!

And then it went straight through the paddle. Lives = 2.

Fantastic.

Another diagnosis. Another problem.

This time fix the trails the paddle was leaving when I (slowly) moved left.. Another audio file. Another round of black squigglies.

But something interesting was happening. I wasn’t just trying to get a program to load anymore. I was actually playtesting a game that I had created.

Move the paddle. Watch the ball. Find a bug. Take a picture. Tell ChatGPT what happened. Generate a fix. Reload. Repeat.

We were discovering problems with paddle collisions, disappearing graphics, bricks that didn’t behave, and new features I added that needed testing.

About 30 minutes of playtesting and iteration, and an AI that could inspect photographs of my 300lb 36″ Sony Trinitron television.

My assessment of the game was not particularly generous.

This may be the worst game I have ever played.

The only fun was seeing whether I could use sheer willpower to complete a level so I could test the new levels feature.

Then I discovered my favorite bug.

Occasionally, the ball would get wedged between the tops of the remaining bricks and the ceiling, ricocheting around and clearing bricks without my having to do much of anything.

Excellent!

This saves so much time!

Wait, that is a feature, not a bug. I love Breakout on the Atari 2600.

I cleared the level!

…now, can I get to Level 3?!

Crap, maybe it is fun.

Somewhere along the way, I’d stopped thinking about whether the technology worked and started caring about whether I could beat my own terrible game.

Game over.

What? I didn’t even add a high-score feature!

Apparently, I was now losing track of the features in a game I had implemented.

And I was buzzing.

I had vibe-coded a very slow moving, crappy Breakout clone for a Timex Sinclair 1000. I had vibe-coded a website that turned that program into audio the computer could understand. I had delivered it from an iPhone into real, physical hardware.

And it was running.

Not perfectly. Not even close.

But the entire chain worked.

From an idea, to code, to a website, to an iPhone, through a Franken-cable, into a computer manufactured in 1981.

YES!!!

Welcome to the modern internet

With the hardware working and Super Breakout mostly cooperating, it was time to turn our test application into an actual website.

How hard could that be?

Domain names. DNS records. SFTP credentials. MySQL database. Database usernames and passwords. Server configuration. Adding my IP address to an allowlist.

Good grief.

So many tiny, precise tasks. Each one has to be done correctly, and if any one of them is wrong, nothing works.

The computer doesn’t tell you that you’ve almost succeeded. It just refuses to cooperate.

Here I was, using artificial intelligence to create software for computer with 16k memory, debugging it by photographing my television, and making remarkable progress.

Yet getting a modern website deployed required me to painstakingly navigate an obstacle course of configuration screens and credentials.

Perhaps there’s a future LinkedIn post about this.

Dear DreamHost Product Manager,

Who designed this scavenger hunt, and what did I do to make them so angry?

Wait. This isn’t a single-player game.

Something else happened after I got Super Breakout running.

I wanted to show somebody.

Not because it was a particularly good game. It wasn’t. I had just created something that ran on Timex Sinclair 1000, and I was ridiculously proud of it.

Then it occurred to me.

There must be other people out there with these computers. People who still remember writing programs in BASIC, who spent hours squeezing something clever into a few kilobytes of memory.

People who might get the same ridiculous satisfaction from making something work.

And maybe some of them would want to create something new, too.

Why should Load Goblin just be a place where people download my programs?

What if anyone could publish their own?

Someone might make a better Breakout. Someone else might create a clever puzzle game. There could be ten versions of Snake, each an opportunity to show off some elegant programming hack that made it better.

People could share their creations, play each other’s games, offer feedback, and celebrate the particularly clever ones.

I realized I’d been thinking about this all wrong.

Load Goblin wasn’t supposed to be a single-player experience.

This was a multiplayer game. A community of people who love making things.

The cassette player was just how we got in the door.

Unfinished business

I finally went to bed around 1:30 in the morning.

I was buzzing. I could hardly sleep.

In two days, I had accomplished what I’d set out to do. I’d proven the Timex Sinclair 1000 worked, loaded software directly from my iPhone, created a game for it, and built a website that could deliver that game to the computer.

Was the project finished?

Well, the website still sucked. The user experience made almost no sense. I was already assembling a punch list of things to fix tomorrow night when I got back from the gym.

But that didn’t matter. Not tonight.

Something much more important had happened.

Back in tiny Farwell, Michigan, Bruce and I had imagined what we might create with these little computers. But learning the programming language, understanding the operating system, and figuring out how to make something actually work was an enormous undertaking.

I could have spent months learning all of that from scratch today. Maybe longer. And realistically, I probably wouldn’t have.

This Timex Sinclair 1000, all the tapes (including whatever Cube is) would just be sitting in a pile with the rest of my unfinished projects in my basement.

Instead, thwe compressed that entire learning curve into a couple of days. Really hours.

I could focus on what I wanted to make, experiment, test it on real hardware, and keep improving it.

And somehow, thwe made a game that was almost worth playing. Almost.

Forty-five years later, I finally got to check that box.

Look at us now, Bruce!

Now what?

Here’s the problem with accomplishing something you weren’t entirely convinced was possible.

Suddenly, you start expecting a whole lot… more.

I have the rest of the week. Sherry is visiting family, so I have some extra time to work on this. Family first, of course, but an unusually quiet house is a dangerous thing to give someone with a new project and a punch list.

Tomorrow night, I’m going to tackle the user experience.

Make the site flow the way I want it to. Make it look the way I imagined. Turn this collection of working parts into something that makes sense to someone who wasn’t sitting on my man-cave floor watching Bauhaus album covers squiggle on a television.

Then?

I have no idea.

Two days ago, I was hoping an overnighted mono cable would work.

Now I’m imagining a community of people creating and sharing software for computers that haven’t been manufactured in decades.

And I still have the rest of the week.

What could possibly go wrong?

About Rob
Product visionary, problem solver, eCommerce marketer, comparison shopping guy, marketplace maker, evening entrepreneur, friend, husband, and father.

Leave a Reply

Your email address will not be published. Required fields are marked *