This is an old revision of the document!
Table of Contents
VC-2
- SD-8510 technical document
Welcome to VC-2, otherwise known as “Stellar Dynamics SD-8510 CPU” and the KERNAL ROM V2 that goes along with it.
About
In 2025, Based on my experiences with what became VC-1 and as a project to work with Neo again, I came up with the concept for VC-2. The idea of Web Assembly is that you need javascript access functions to work on the DOM. But, I thought, Javascript is essentially uncompiled web assembly. Something like that. So I set up the canvas from JTTD v3 and I added a simple keydown handler. Everything else was run on the SD-8510.
What is the SD-8510?
The SD-8510 is a CPU. It's not an emulator; the 8510 doesn't exist. It's a fantasy CPU based on classic CPU designs of the 70s and 80s. A sort of “what if” project, what if those classic designs had just one (or two!) more generational updates; You know, how the VIC-20 became the C64 which became the C128 and the Super Nintendo, which became the Amiga, and so on. What would the next processor look like?
Well, I did it! It's a complete, fully functioning CPU! And the kicker is that everything it does is written in SDA assembly language! Yes, it has a KERNAL ROM written in assembly and the javascript assembler loads it into memory every time it runs. It's… well, it's amazing! It is all at once the most difficult, the most satisfying, the most rewarding and the coolest thing I have ever programmed.
It doesn't do much. As of late 2025 the terminal emulator barely works. But it does work, to a point, and that is saying something. It may not look like much but it is the cumulation of almost decade of work. Well, I am a hobbyist so you might not think much of that, but for me, many of my longest-held personal goals as a programmer were fulfilled in VC-2. In many ways, I finally feel like I can rest now. Yet still, there is so much work to be done!
What I learned
I think that VC-3 will be written in web assembly.
I learned that assembly and C are much closer than I thought. I spent most of the time writing the KERNAL and it felt like what I was doing is writing the standard C library. When I realized this, I realized that good assembly language programing is a lot like C; at least, the way I write C, is probably very strongly influenced by my experience with assembly on the 6510 and 80×86 processors.
A javascript wrapper to push an image to a canvas. A keydown handler. And we have almost everything we need. I am so proud of my work on VC-2! But I am also very excited about what comes next! I will probably work on VC-2 for a bit longer, buff out the terminal, and so forth, but then it will be time for VC-3 and I can harly wait. VC-3 will be a dream project, much more-so than VC-2.
