| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| vc-2 [2025/11/30 16:26] – appledog | vc-2 [2025/12/05 02:54] (current) – appledog |
|---|
| * SD-8510 technical document | * 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. | Welcome to VC-2, otherwise known as "Stellar Dynamics SD-8510 CPU" and the KERNAL ROM V2 that goes along with it. VC-2 is the direct successor of the [[VC-1]] project. |
| |
| == About | == About |
| |
| == What is 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? | What if? What if PCs never went mainstream? What if the processor designs of the 70s and early 80s were updated one more time to make a new system? What if the 386 came just one generation later? Or what if the giants of yesteryear made one final effort to overthrow the enroachment of the 80x86? |
| |
| 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. | What if there was an alternate timeline where instead of abandoning the old ways, we continued on and tried to make them fit in the 90s? You know, give it the old college try! Remember, by 1985 we already had the 386 and the old 8 bit systems future was written on the wall.... But, what if? |
| |
| 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! | In that sense, the SD-8510 is a real CPU--It's not an emulator. The naming is intentional -- no such CPU ever existed but, the C64 ran on a 6510, and the C128 ran on an 8502... What if, there was a super-updated next gen chip that was similar to those, but also, completely different? |
| | |
| | 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 all the javascript assembler does is load the assembly into memory and everything just works on the CPU! |
| | |
| | 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. |
| | |
| | I don't even know where to begin. You have to try this. |
| |
| == What I learned | == 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. The system design was the easy part. The months of grind-coding the assembler and opcodes, testing and debugging the CPU, was the easy part. Most of the time spent on this project was in writing the KERNAL. It felt at times that I was writing the standard C library over again in assembly. When I realized this, I realized that good assembly language programing is a lot like C; at least, the way I write C seems strongly influenced by my experience with assembly. |
| | |
| | A javascript wrapper to push an image to a canvas. A keydown handler. And we had everything we needed. I am so proud of my work on VC-2! But I am also very excited about what comes next. A VC-3 would likely be written in web assembly. The difficult choice there is actually that I don't trust web assembly to be as ubiquitous as JavaScript. It would be faster, though. |
| | |
| | == What is VC-3? |
| | Summarize your goals for the future VC-3 project. |
| |
| 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 80x86 processors. | <blockquote>I heard you like assembly so I wrote a cpu and an operating system in assembly with a totally different ISA and operating system so you can write a CPU and an operating system in assembly.<cite>--Unknown</cite></blockquote> |
| |
| 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. | |