Saturday, April 4, 2026

Well, I'm amazed


These agents are ridiculous. I've been more productive in my personal projects in the last week than I've been in the last 8 years.

In the last three weeks I've:

  • Written the +3 disk checker for the Plus3 I've been putting off for 3 years

  • Started the ZX Spectrum Next roguelike I've been planning since I got my Next

  • Converted a 25k line Pascal/Delphi mod tracker to Rust and got it building on Windows, Mac, Linux, and the web (for the music to my game, of course)

  • Tidied up the parsing on my BDD framework

  • Fixed a couple of bugs in dokker and GoCrest


It's insane.

There are two issues with this though:


    1. I've learned almost nothing about how to actually solve the problems these projects present
    2. I don't fully trust some of it.

And that second one is the bigger problem.

Because everything works. Impressively well. Suspiciously well. The kind of “this shouldn’t be this easy” well.

I can build things faster than ever, but I’m also one layer removed from understanding them. When something breaks, I’m not debugging my thinking -  I’m debugging something I half-generated and half-understand.

It’s like going from writing code to reviewing code… except the author is an overconfident ghost.

I’m not convinced this is bad. In fact, it might be the whole point. Maybe the skill shifts from “how do I build this?” to “how do I steer this?” and “how do I know when it’s wrong?” My tests and specifications aren't always air tight, and agents fill the gaps if they think they can get away with it.

But it does feel like cheating.

And also like the future.

I've been used to being slightly removed from coding as a Tech lead, and it definitely feels good being productive again. I can go into a meeting having set an agent a task, and be reasonably confident the task will be done, documented and tested. 


The solution to the overconfidence? The same as it always was. Good  engineering habits, small, vertical slices, well thought out testing strategies, and good communication. Coding was never the hard part of development, we still have that (for now). 


We are the monks of old, sitting in our isolation, copying text by eye and by hand. In the same way the printing presses destroyed the monk's art, the era of hand crafting software is over too, for better or worse.


But.. just but.. maybe there's room for the storyteller, the one who can weave these tools the best will surge ahead and create new, bold creations with them.


Now.. why does the Sorcerer's Apprentice come to mind?




Tuesday, March 24, 2026

Disk Check for the ZX Spectrum +3

Well, not to jump on the agentic coding bandwagon or anything, I've totally jumped on the agentic coding bandwagon and implemented a Disk Check program in z88dk. Its taken me and copilot a couple of weeks, but I now have a functioning Disk Checker.


Copilot (and sometimes Claude, thanks Claude) helped me write almost all of this. I knew very little machine code, but I did know C. Copilot fixed the main bug I had when I was just running the disk routines, namely the crash I couldn't get my head around when trying to communicate to the controller. It was the biggest stumbling block to me getting it done, and it fixed it in about an afternoon of it fiddling with the ASM.

Hopefully now I can fix those two real +3 drives sitting on my shelf.. erm.

Features
  • Motor + drive status – Combined motor control and ST3 status check
  • Drive probe (Read ID) – Probe media and report controller status bytes; decodes ST1/ST2 on failure
  • Recal + seek track 2 – Track-0 recalibrate then seek verification
  • Interactive step seek – Manually step the head track by track
  • Read ID – Read sector ID from track 0 (requires readable disk)
  • Read track data loop – Continuously reads sector data on selected track (J/K to change track)
  • Disk RPM checker – Rotational-speed estimate from repeated ID reads; requires readable sector IDs
  • Run all – Execute all core tests in sequence and display a report card
  • Show report card – Display last run results (PASS / FAIL / NOT RUN per test)
  • Clear stored results – Reset all stored test results
  • Direct-key menu UI – Navigation and hotkeys respond directly; confirmation prompts use ENTER
Main menu

This was an exercise in how these agents work, their limits, my limits, the highlighs and the pitfalls. I let them pretty much have free reign, and had a lot of refactoring to do myself. It taught me a lot about how to work with them, and what I want from them and what I don't. 

But above all, it was really fun bringing the old and new worlds together like this!