This is the sort of thing I've wanted to write for a long time. Yes it looks like this is vibe coded but I'm glad this was made because it's cool to see what can be done, and it's interesting seeing how AI can be used as a compiler essentially given the output is assembly.
I'd be interested if the author would tell us more about what they did here and what went into the design and evolution, rather than the AI README.
Related: The SymbOS operating system and graphical desktop for Amstrad CPC, MSX and some other Z80 machines was coded entirely manually - the first release was in 2006. https://www.symbos.org/
Long-form comments in the code are AI-written too, so I assume the whole thing is vibecoded. I guess my question is why. This is obviously not a piece of software anyone will ever use. If the author didn't do this for themselves - to learn, to show off their skills - then why bring it to life?
In business, there's this saying that "when a metric becomes a target, it ceases to be a good metric". I guess LLMs also make that true for hobby projects that used to make up a good portion of HN. We'd celebrate a project like that not because it's useful, but because it's a triumph of human ingenuity and a celebration of a personal achievement for the author. But now, it isn't, so is it still something we ought to celebrate?
> I guess my question is why. This is obviously not a piece of software anyone will ever use.
My best theory would be it's something that was built as like a novelty/proof of concept, that a current state of the art LLM can do tedious tasks like assembly on a ridiculously old/low resource platform and turn out something that actually looks coherent. I don't personally know a lot of people who enjoy building large things in assembly but LLMs aren't bothered by doing tedious tasks. Due to the tiny size of the thing it can probably very rapidly iterate on "this doesn't work, change a thing, run it again" thousands of times.
> If the author didn't do this for themselves - to learn, to show off their skills - then why bring it to life?
Why not?
What if the person just wanted to see if it could be done and how it would look like, but wasn’t interested in the nitty-gritty bits in between?
There’s so much elitism and “you can’t sit with us” energy here that I feel like I just lost 4 decades of my life just reading this—and not in a good way.
Yeah, there certainly is AI slop. But there’s also very good uses of AI. So how about we stop shaming people for just building things they wanted to build using the tools at their disposal?
> But now, it isn't, so is it still something we ought to celebrate?
Why isn’t it? Don’t “having an idea and acting on it” count anymore? You guys seem so utterly insecure it’s depressing.
Why not? The author wanted it, and had wanted it for about four decades since trying and failing as a child due to the difficulty of the task. If you’re in a certain frame of mind, then “why bring it to life?” can be directed at any kind of cultural work to negate it out of existence.
You're only addressing one half of my argument. The answer to this is obvious: the default state is that things don't get done unless we have a reason. So there is a motivation at play and it's perfectly OK to inquire about it, especially if the author appears to be cagey about how the project came to be. If your answer is "it was the author's childhood dream", fair.
But that brings me to the second half of the argument: I think we upvote this article in large part because of the historical association of a "crazy 8-bit software project" with "something that took perseverance and skill and our community should reward it". That link is severed now.
> But that brings me to the second half of the argument: I think we upvote this article in large part because of the historical association of a "crazy 8-bit software project" with "something that took perseverance and skill and our community should reward it". That link is severed now.
There’s the problem: you are assuming everyone else thinks in elitist terms like you. It still is a crazy 8-bit software project. It still rather impressive and fun to see.
Your “historical reason” reads a lot more like whining than anything else and it does come across as a display of insecurity.
AI is just a freaking tool. The dev used to tool to bring his vision to life. That’s the extent of it. Stop making such a fuss over something that quite literally was just made for fun.
Let people have fun in peace. Let people enjoy things in peace.
> The default state is that things don't get done unless we have a reason.
What about art? People make art and inventions just for the hell of it and to satisfy come itch. Whether or not other people then like it or find it useful is subjective and up to the individual. IMO taking away peoples right to make stuff for no reason and enjoy doing it is to take away our humanity.
I upvoted the article because it brought me some nostalgia and entertained me for a bit while I played with it and knowing how to code a spectrum myself, marvelled at the complexity of the code and the project itself. Maybe people have more reasons to enjoy things than your narrow viewpoint allows for?
If you’re familiar with the way in which documentation artifacts like this fall out of a Claude project, you will recognize that every place where Claude says ‘this changes everything’ or ‘this is the load bearing insight’ most likely resulted from a human looking at what Claude had done, and redirecting it towards a more fruitful line of inquiry. When Claude gets ‘excited’ about a thing like ‘we figured out which clock measurement approach helps us actually optimize performance’ - excited enough to explain it in this level of detail - it usually results from the user pulling Claude out of a rabbit hole where it was going about things the wrong way.
I think all AI projects should die, but if your question is aimed as to "why to publish it on github", then why not? Others could look at the code and learn from it (perhaps); and it is easier to distribute it that way too, in many cases. So I don't fully agree with the assumption that it would be automatically useless. Personally I won't use AI slop projects. It already annoys me to no ends that AI skynet successfully took over ruby development. I don't feel like even giving any feedback, as a few ruby devs such as Hiroshi Shibata, only interact with other beings via AI slop spam via claude; suddenly newly gained "perfect english language skills". It is all so fake now when AI infiltrates projects.
Not all AI-assisted projects are AI-slop. The fact that you think so only tells me that you’re deeply insecure about your knowledge of a subject that you’re interested in.
No, I think it’s cool AF. Is it work that needed to be done? Certainly not. Is it work that could have been done by humans? Yeah maybe with a year or two of free time. AI gives us these admittedly pretty useless capabilities but it’s still fun to do, to get a new advanced tool to make us a kind of hauntological version of something that could have existed. You sound like the fun police and someone who should stick to programming in raw, unadulterated machine code rather than using any kind of assistance.
> You sound like the fun police and someone who should stick to programming in raw, unadulterated machine code rather than using any kind of assistance.
You felt the need to write that so allow me keep the response short: go fuck yourself.
Thinking of and expressing the functionality of the thing might be the labor of love for this person. Their definition of labor doesn't have to be yours.
Not the parent, but it reads a lot like written by AI. It has that typical breathless style that's exhausting just from reading.
Also, looking at the code, the whole project looks vibe coded, no human would write such comments. Everything in a single git commit also looks "suspicious". It's cool that LLMs can write Z80 asm now, but yeah "labour of love"... tsk tsk tsk...
I wonder: was there a time when using a compiler was considered cheating? "Real men" code everything in ASM!
I do recall a whole era when using a GUI was considered cheating and denigrated as a "point and drool" interface (a play on "point and click").
Is using a combine cheating in farming? Is a nail gun or using prefab wall sections cheating in home construction? Is a 3D printer cheating in fabrication? If someone prints something with a 3D printer, do we say "you didn't make that, the printer did!"
I find it weird for people who like technology to be so averse to tools that automate labor since that is literally what all technology is, and a tool to automate intellectual labor is literally what a computer is. A machine is a thing whose purpose is to provide leverage to amplify human effort and more rapidly realize human intent in some domain.
Maybe it comes from a category error. AI is kind of a hand-wavey term, since most people think it means the thing is sentient. It's not. It has zero intent, zero motivation, zero ability to choose anything not already in its training data, and it will go precisely where its context window (and training data) guide it. It's a tool, a machine, and like any other machine it is set in motion by the user and guided by the user. The "choices" it makes are latent in its data or structure, or implied by its prompt. (Yes sometimes they can be surprising, but that's true of all complex machines.)
Actual sentient AI does not exist. It might someday but it does not today. I suspect it requires a very different kind of system with continuous learning, dynamical state, and feedback, and a goal function tied somehow to thermodynamics in the real physical world the way ours is, but that's pure hypothesis on my part. We don't even have rigorous definitions for such things.
For me the red line is obviously AI generated readmes. If the author can't even be arsed to write obviously human facing text by himself I immediately lose all interest too.
The critical difference I think is deterministic vs non-deterministic. A compiler isn’t the correct comparison, it’s reading out your desired specs to a team member who does the actual engineering work.
maybe they have a day job in a jurisdiction where their employer could claim ownership of the code if work was done during hours they paid for. it would be safer to scrub commit times if you’re worried about an aggressive employer.
I had fun playing around in Claude getting it to write 6502 assembler for the BBC Micro. It is fun to imagine what we could have built on those old machines with these new coding agents! But it is kind of hollow isn't it.
Not for me. I do like having an agent at my disposition that accelerates the way into making those little experiments a reality.
A sloppy reality? Maybe. But It's just tinkering, there's no other use case for this outside of saying "So this can be done, huh? Okay time to go to for a walk".
While it's totally respectable to treat your code as your personal zen garden, I like the idea of having a highway where I can make reality anything that comes from my imagination, and also having time for family, friends, work and exercising out of sedentarism.
Thats your life and your opinion which you are fully entitled to, but dont make the mistake of thinking your life and opinion is better than anyone elses. It suits you, thats whats important.
You can say the same for building computers. You didn't actually "built" a computer from the ground up. You just bought the pre-made hardware and plugged it in the places that are made to be easily pluggable.
Everything in tech is about standing in the shoulders of what came before.
Designing a table and letting somebody else build it can be enjoyable, too.
There are plenty of people enjoying designing, for example people who 3D print objects they design, or people designing PCBs or even entire gadgets but outsourcing production.
With LLMs, I guess a factor is how much direction you give the machine. “Build me a graphical desktop” likely isn’t very enjoyable, but I can see co-working with a LLM being enjoyable. Examples
- think of some novel UI interaction, and let the LLM code it
- spending hours to speed up the GUI or to make it use less memory
Knowing your limitations of building, but being good at designing and watching somebody/something else realise your vision is incredibly satisfying.
I see it like 3D printing. Nobody can extrude molten plastic out of their bodies to make things, but the skill of designing the construction well and then watch the machine execute it is certainly a good feeling. I dont really see how this is different to designing some software verbally and prompting an ai to build it for you.
I have coded big projects manually for a long time. Being able to get ai to do it, then step back and marvel at knowing how much work that would have taken manually is very satisfying.
> If you've never done anything for yourself, usually with your own hands, you don't understand the pleasure and satisfaction that comes from doing it.
That’s an absurd thing to say.
Doesn’t matter what “AI” feels or doesn’t feel. AI is a tool. You can derive as much pleasure from having an ideia, planning it, working on it from a higher level, and seeing it come to life as you do when you get down and dirty with it and do it from the low level up.
You are arguing against a very well known phenomenon. Technical people often avoid getting promoted to management precisely because they love doing the thing themselves. Despite the higher potential for impact in a management position, losing the detailed view of a practitioner is a real loss. This phenomenon is less obvious in big tech because there are so many people who really wanted to be managers the whole time, but had to be engineers first or never really cared about the work, but want a promotion for the better pay.
Wow I did so many of those when i was 12 or around that age. Mostly I tried copying the Amiga Workbench on my +2A (the gray one).
Obviously at that age my knowledge of coding and window managers wasn't exactly deep and i mostly only had seen other OS from magazines. I don't think I even knew what 'drag-n-drop' was and was a bit confused at what the Trash bin should do (i loaded code from tapes).
Can anyone suggest a simple high-level graphical desktop (perhaps written in a mix of assembly and C) that comes with good documentation, or even an associated textbook?
I hate the fact there is more discussion on things on HN about whether or not its vibe coded than the actual merits of the project itself. I really dont understand peoples attitude of immediately turning off something once they know ai is involved. These people are going to become pretty conflicted when somebody finally vibe codes some software they really like or have wanted forever.
As far as this project goes, the spectrum was the computer of my youth, and seeing this and getting to mess around with it brings my heart joy and my mind lots of nostalgic thoughts. Thanks for sharing!
It’s Claude’s earnestness that’s so disingenuous in this kind of write up. This voice Claude has where it believes the work is important and deserves to be taken seriously, and where it takes ever part of the process where it has to adjust its approach because of a thing it figured out as a great insight which is incredibly valuable and that people should be made aware of…
I feel like vibecoded projects need Claude to pick up on a sense of ‘this is just me messing around’, and a project like this where there does appear to be genuine digging into the art of performance tuning Z80 assembly needs Claude to understand ‘this is impractical hacking for hacking’s sake not groundbreaking research’
I don’t have a problem with projects which are, essentially ‘Claude and I burned a lot of tokens for giggles to see just how far you can push something’. But the write up needs to reflect that spirit.
That's an excellent way of putting it. It's like an enthusiastic student who points out all the really smart stuff it did so that the teacher will be impressed and give it a gold star...which is basically what its RL environments were.
You can do a lot with custom agent prompts. Just telling Claude ‘this is only a personal project, we’re messing around here’ changes its tone somewhat already. It’s still Business Claude, but more Casual Friday Claude, less Monday Morning Standup Meeting Claude.
I believe most of the 8bit microcontrollers from this era have no good optimizing compilers that get close to what competent practitioners achieve with assembly. I think it has to do with having complex addressing modes making the C stack fairly inefficient.
There is practically no other choice on a Z80. C compilers really don't like the Z80 ISA and create both slow and bloated output, at least compared to manually written asm. And on top, you can do many optimization tricks in assembly that simply are not possible in a high level language (self-modifying code, jumping into the middle of an instruction, etc...).
Forth might work better than C, but tbh, assembly code is more straightforward and easier to read than Forth ;)
For an 8 bit Z80 based hardware project like this, assembly is a valid choice. The reason is performance. You'll lose significant performance with a compiler or interpreter.
I don't understand the negativity. Someone had great time. Why being so negative. Of course no one would have invested time, if not llm's - that wouldn't even exist.
I want to hear about the great time they had. That would be interesting.
Instead I hear about the great time Claude had being prompted to do it.
edit: noticed the person who posted this here is not the same as the author. the author appears to have just randomly made the project public without any kind of announcement. so we don't know their intentions.
I'd be interested if the author would tell us more about what they did here and what went into the design and evolution, rather than the AI README.
Of course for the Commodore 64 the GEOS desktop was already released as a commercial product in 1986. https://en.wikipedia.org/wiki/GEOS_(8-bit_operating_system)
In business, there's this saying that "when a metric becomes a target, it ceases to be a good metric". I guess LLMs also make that true for hobby projects that used to make up a good portion of HN. We'd celebrate a project like that not because it's useful, but because it's a triumph of human ingenuity and a celebration of a personal achievement for the author. But now, it isn't, so is it still something we ought to celebrate?
My best theory would be it's something that was built as like a novelty/proof of concept, that a current state of the art LLM can do tedious tasks like assembly on a ridiculously old/low resource platform and turn out something that actually looks coherent. I don't personally know a lot of people who enjoy building large things in assembly but LLMs aren't bothered by doing tedious tasks. Due to the tiny size of the thing it can probably very rapidly iterate on "this doesn't work, change a thing, run it again" thousands of times.
Why not?
What if the person just wanted to see if it could be done and how it would look like, but wasn’t interested in the nitty-gritty bits in between?
There’s so much elitism and “you can’t sit with us” energy here that I feel like I just lost 4 decades of my life just reading this—and not in a good way.
Yeah, there certainly is AI slop. But there’s also very good uses of AI. So how about we stop shaming people for just building things they wanted to build using the tools at their disposal?
> But now, it isn't, so is it still something we ought to celebrate?
Why isn’t it? Don’t “having an idea and acting on it” count anymore? You guys seem so utterly insecure it’s depressing.
Why not? The author wanted it, and had wanted it for about four decades since trying and failing as a child due to the difficulty of the task. If you’re in a certain frame of mind, then “why bring it to life?” can be directed at any kind of cultural work to negate it out of existence.
You're only addressing one half of my argument. The answer to this is obvious: the default state is that things don't get done unless we have a reason. So there is a motivation at play and it's perfectly OK to inquire about it, especially if the author appears to be cagey about how the project came to be. If your answer is "it was the author's childhood dream", fair.
But that brings me to the second half of the argument: I think we upvote this article in large part because of the historical association of a "crazy 8-bit software project" with "something that took perseverance and skill and our community should reward it". That link is severed now.
There’s the problem: you are assuming everyone else thinks in elitist terms like you. It still is a crazy 8-bit software project. It still rather impressive and fun to see.
Your “historical reason” reads a lot more like whining than anything else and it does come across as a display of insecurity.
AI is just a freaking tool. The dev used to tool to bring his vision to life. That’s the extent of it. Stop making such a fuss over something that quite literally was just made for fun.
Let people have fun in peace. Let people enjoy things in peace.
What about art? People make art and inventions just for the hell of it and to satisfy come itch. Whether or not other people then like it or find it useful is subjective and up to the individual. IMO taking away peoples right to make stuff for no reason and enjoy doing it is to take away our humanity.
I upvoted the article because it brought me some nostalgia and entertained me for a bit while I played with it and knowing how to code a spectrum myself, marvelled at the complexity of the code and the project itself. Maybe people have more reasons to enjoy things than your narrow viewpoint allows for?
Likes. Clicks. Vanity. Being able to list GitHub on a resume.
The usual stuff we get from anything adjacent to A.I.
We went to the moon with slide rules. Now we boil the oceans for "likes."
I think all AI projects should die, but if your question is aimed as to "why to publish it on github", then why not? Others could look at the code and learn from it (perhaps); and it is easier to distribute it that way too, in many cases. So I don't fully agree with the assumption that it would be automatically useless. Personally I won't use AI slop projects. It already annoys me to no ends that AI skynet successfully took over ruby development. I don't feel like even giving any feedback, as a few ruby devs such as Hiroshi Shibata, only interact with other beings via AI slop spam via claude; suddenly newly gained "perfect english language skills". It is all so fake now when AI infiltrates projects.
Right... Except the whole thing being generated by a model derived from everyone's code.
I'm not even sure I'm against licensing it as MIT but maybe stop with the ridiculous claims on top of that?
Have been for a while, it's exhausting.
> The clock you can trust
*Bleh*
That is of course your right.
> You sound like the fun police and someone who should stick to programming in raw, unadulterated machine code rather than using any kind of assistance.
You felt the need to write that so allow me keep the response short: go fuck yourself.
You know Boys from the Black Stuff right?
Was this, then, done to impress others rather than enrich the coders skills and experience?
The futuristic equivalent of pressing the “demo” button on old electronic keyboard and pretending to play
Also, looking at the code, the whole project looks vibe coded, no human would write such comments. Everything in a single git commit also looks "suspicious". It's cool that LLMs can write Z80 asm now, but yeah "labour of love"... tsk tsk tsk...
Which, if you think about it too hard, says something slightly profound and a little disturbing about identity…
I do recall a whole era when using a GUI was considered cheating and denigrated as a "point and drool" interface (a play on "point and click").
Is using a combine cheating in farming? Is a nail gun or using prefab wall sections cheating in home construction? Is a 3D printer cheating in fabrication? If someone prints something with a 3D printer, do we say "you didn't make that, the printer did!"
I find it weird for people who like technology to be so averse to tools that automate labor since that is literally what all technology is, and a tool to automate intellectual labor is literally what a computer is. A machine is a thing whose purpose is to provide leverage to amplify human effort and more rapidly realize human intent in some domain.
Maybe it comes from a category error. AI is kind of a hand-wavey term, since most people think it means the thing is sentient. It's not. It has zero intent, zero motivation, zero ability to choose anything not already in its training data, and it will go precisely where its context window (and training data) guide it. It's a tool, a machine, and like any other machine it is set in motion by the user and guided by the user. The "choices" it makes are latent in its data or structure, or implied by its prompt. (Yes sometimes they can be surprising, but that's true of all complex machines.)
Actual sentient AI does not exist. It might someday but it does not today. I suspect it requires a very different kind of system with continuous learning, dynamical state, and feedback, and a goal function tied somehow to thermodynamics in the real physical world the way ours is, but that's pure hypothesis on my part. We don't even have rigorous definitions for such things.
> One commit per verified piece of work, with the acceptance numbers in the commit message
Project: One single commit: "ZX Desk, first release"
???
While it's totally respectable to treat your code as your personal zen garden, I like the idea of having a highway where I can make reality anything that comes from my imagination, and also having time for family, friends, work and exercising out of sedentarism.
It's the difference between building a table yourself and telling someone else to build a table for you.
If you've never done anything for yourself, usually with your own hands, you don't understand the pleasure and satisfaction that comes from doing it.
And since "AI" isn't human, it can't know that feeling, either.
Everything in tech is about standing in the shoulders of what came before.
There are plenty of people enjoying designing, for example people who 3D print objects they design, or people designing PCBs or even entire gadgets but outsourcing production.
With LLMs, I guess a factor is how much direction you give the machine. “Build me a graphical desktop” likely isn’t very enjoyable, but I can see co-working with a LLM being enjoyable. Examples
- think of some novel UI interaction, and let the LLM code it
- spending hours to speed up the GUI or to make it use less memory
Knowing your limitations of building, but being good at designing and watching somebody/something else realise your vision is incredibly satisfying.
I see it like 3D printing. Nobody can extrude molten plastic out of their bodies to make things, but the skill of designing the construction well and then watch the machine execute it is certainly a good feeling. I dont really see how this is different to designing some software verbally and prompting an ai to build it for you.
That’s an absurd thing to say.
Doesn’t matter what “AI” feels or doesn’t feel. AI is a tool. You can derive as much pleasure from having an ideia, planning it, working on it from a higher level, and seeing it come to life as you do when you get down and dirty with it and do it from the low level up.
Let’s talk like adults here. Please.
https://duckduckgo.com/?q=zx+spectrum&ia=images&iax=images
Obviously at that age my knowledge of coding and window managers wasn't exactly deep and i mostly only had seen other OS from magazines. I don't think I even knew what 'drag-n-drop' was and was a bit confused at what the Trash bin should do (i loaded code from tapes).
Good times i guess :)
and there's a detailed write up
https://aryx.github.io/assets/pdfs/Windows-7.pdf
As far as this project goes, the spectrum was the computer of my youth, and seeing this and getting to mess around with it brings my heart joy and my mind lots of nostalgic thoughts. Thanks for sharing!
I feel like vibecoded projects need Claude to pick up on a sense of ‘this is just me messing around’, and a project like this where there does appear to be genuine digging into the art of performance tuning Z80 assembly needs Claude to understand ‘this is impractical hacking for hacking’s sake not groundbreaking research’
I don’t have a problem with projects which are, essentially ‘Claude and I burned a lot of tokens for giggles to see just how far you can push something’. But the write up needs to reflect that spirit.
Would take three times the token cost to actually get it to fight with itself in the correct voice tone.
Honestly think self hosted models is more valuable here. At least then one can train it with the right system prompt.
SV is SoCal now? I missed the earthquake.
Wow!!!!
Forth might work better than C, but tbh, assembly code is more straightforward and easier to read than Forth ;)
Instead I hear about the great time Claude had being prompted to do it.
edit: noticed the person who posted this here is not the same as the author. the author appears to have just randomly made the project public without any kind of announcement. so we don't know their intentions.