For those interested in the 6502, Ben Eater is starting a new YouTube series in which he builds a computer around a 6502 chip.
An up-scaled replica of the 6502 with a lot of LEDs to visualize the state of the processor while it works:
Love it. Would be willing to purchase one of these to use as a teaching tool.
The author of this also created the excellent Sokol cross-platform graphics/sound library, which is being used here.
Thank you for posting this. sokol_gfx.h looks really handy!
Can someone explain what we're looking at?
The MOS 6502  was an 8-bit CPU that powered many systems from the 70’s and 80’s, including the Atari game consoles, Commodore 64, Nintendo Entertainment System, and early Apple computers. It could also be considered the ancestor of the ARM architecture.
Looking at this project’s GitHub , it appears this is a rewrite of Visual 6502 that compiles into WebAssembly, resulting in vastly improved performance compared to the original JS implementation.
TBH, the main factor for the smoother performance is that rendering the chip visualization is handled very differently than the original visual6502.org. Instead of using 2D canvas, the "remix" uses WebGL and offline-precomputed static vertex buffers.
The actual simulation is most likely also faster than the original JS implementation, but I haven't measured that. This is done by https://github.com/mist64/perfect6502, which is a rewrite of the original JS simulation code to C. but there's only at most one CPU half-cycle running per 60Hz frame, so the actual CPU performance for the simulation is hard to compare with visual6502.org which I think is running "unthrottled".
Here's a nice talk video covering the story from the origins of the 6502 to the Visual 6502 (but not the wasm Remix): https://www.youtube.com/watch?v=fWqBmmPQP40 .
To add a bit of anecdotal context to how significant the performance boost is, I didn't even have to look at the source code to know that this runs far, far faster than the original.
Sure! It's a 6502 CPU . The visualization is showing the signals traveling through the components, as laid out in the die, which looks like this . It looks like it's using the CMOS interpretation which is a layer below typical logic gates. The simulator is running a simple loop and you can step through and see all the registers, ALU, and whatnot running.
"Here is the video recording of [this person's] presentation “Reverse Engineering the MOS 6502 CPU” given at 27C3, on the low cost CPU that arguably launched the home computer revolution."
Really great performance, buttery-smooth. Excellent job!
Looking at the 6502, I've got to wonder if today's most powerful Place 'n Route tools could make any significant improvement to it.
Edit: Western Design Center manufactures a pin-compatible DIP-packaged 6502. https://www.mouser.com/ProductDetail/Western-Design-Center-W... I couldn't find any pictures or info about what's inside though.
I wish they'd release the monster6502 as a kit or at least release the brd files so others can make/improve on it.
With 4,769 surface-mount components and somewhere on the order of 16,000 solder joints, it's well outside the realm of what you can assemble at home.
Some of us have reflow ovens, stencils, and past. It's not that hard with SMD. Through hole is where it gets time cosuming.
IDK, it's meticulous work I'll give it that, but more impressive computers have been built component by component. Just take your time, test each piece as you go, and don't develop an ego and you'll be fine.
I love this.
Doubtful - the 6502 had something like one poly and one metal routing layer. It was hand routed by a human; balancing the use of poly, metal and diffusion is pretty tricky and requires bending a few rules that would otherwise constrain an autorouter in order to get everything to fit.
> It was hand routed by a human
And let's be clear, it was hand routed in both senses of the word. The layout engineers cut the mask by hand, crawling around on the table sized photomask.
Terminator 1 has it.
I'm not sure if why you're being voted down. I still remember sitting in the theater realizing that was 6502 assembler scrolling across the screen.
Off topic: can already assembled 6502 kits (i.e. single board computers) be bought anywhere, just like this one for z80 https://shop.mcjohn.it/en/diy-kit/22-33-kit-z80-mbc2.html#/1... ?
Bring your own chip(s) https://icomp.de/shop-icomp/en/produkt-details/product/c64-r... or get and old one. It’s 6510, which is the same thing.
Question: what is the code for/from?
If you're referring to the code that's loaded into memory location $00 and run when the simulator starts up: it doesn't look like it's anything particularly interesting, just a simple loop to exercise the simulator:
LDA #$00 ; A=0 loop: JSR sub ; call subroutine JMP loop ; infinite loop sub: INX ; increment X register DEY ; decrement Y register INC $0F ; increment memory location $0F SEC ; set carry flag ADC #$02 ; A += 3 (add 2, with carry) RTS ; return from subroutine
Yeah, it didn't look like it was doing anything useful so I was curious if it was a reference to something…
I very much doubt it's a reference to anything. It doesn't appear to have a useful purpose besides demonstrating/exercising a few of the important components of the processor: it performs operations using the registers, the stack (JSR/RTS), memory (INC), and the ALU (ADC).
A quick search through GitHub shows that this code is unchanged since the initial commit of the original Visual6502: https://github.com/trebonian/visual6502/blob/4d8da5b680216dc...
I just took the original testing code from http://visual6502.org/JSSim/index.html, also to confirm whether the simulation and visualization works.
I don't think it has any significance except testing a few things like memory read/write access, whether the stack works etc...
if all I want to to is build a Super Mario clone is the knowledge of the 6502 assembly language still necessary ?
It'd be helpful, but not strictly necessary.
Here's an extremely well commented disassembly of Super Mario Bros.
No, you can just make it in your language of choice. If you'd like to emulate it then you'll probably need to learn it.
Nice, is it about ~6 times faster?
It's about ~6 times cheaper.