davidmjc / 6502

svg schematic of the 6502 microprocessor

Home Page:https://davidmjc.github.io/6502

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

some misc corrections

BigEd opened this issue · comments

commented

Very nice project! Just a few things I've noticed:

The X and Y registers are named, and the control lines have hover-tips, but the X control lines appear to control the Y registers, and vice-versa

"Aritmetic" should be "Arithmetic"

"Incremeter" should be "Incrementer"

The yellow hexagon for 'bfw' doesn't show its hover-tip because of the text in front of it.

Most bits of S, the stackpointer, are missing.

I can't seem to find the V output of the alu - in visual6502 we have two signals, aluvout and notaluvout
http://www.visual6502.org/JSSim/expert.html?nosim=t&find=1308,938,notaluvout,aluvout&panx=249.6&pany=529.1&zoom=12.0

Fixes:

  1. I believe only the hover-tip was incorrect due to a mislabelling of X and Y in the svg source. This has now been fixed.
  2. Typos fixed
  3. bfw label moved down. Note that you can mouseover any part of the circuit to get the hover-tip: the wires are too thin to do this easily, but the pull-ups are a larger target!
  4. Oops - the missing S bits were caused by a global rename of identifiers just before uploading the new version! They should be back now.
  5. The alu V output is immediately below the alu C output and has a hover tip. I have added a small text label for notaluvout (called !Vout). I believe aluvout is the signal I have labelled avr.
commented

Thanks! Interesting that your routing of alucout and aluvout is a fair bit different from what we see in visual6502 - is that because Balazs captured a different route, or a matter of tidying up, perhaps? See for example
http://visual6502.org/JSSim/expert.html?nosim=t&find=aluvout,alucout&panx=329.4&pany=486.7&zoom=3.9

I'd suggest that "alu carry in/out" isn't the right text for the acr signal which is very much the output. But it might be that your aim in the tooltips is to be a bit more general. (Similarly, perhaps 'Flags in/out' is a label you've used in several places.)

The 6502 is highly space-optimized, as you know - for example there is very little space for lines parallel to the data path (which famously led to the idea to cut the cp2 clock in two to make more room for the alu). This leads to some curious routings, and the alu C and V outputs are good examples: (not)alucout is routed down to bits 3/4, but decimal adjust signals are routed from there back to bit 7. aluvout avoids crowding the data path by cutting through the middle of the control lines and running parallel to the data path on the other side.
Having no such constraints, it seemed more logically clear to me to route these signals parallel to bit 7 and then straight up through the flags I/O. (Balazs doesn't provide a route for alucout, and his route for aluvout is similar to the 6502.)
The text labels are a work in progress: some of them are more specific than others. I certainly agree that it would be good to split the "alu carry in/out" into separate text for the input and output circuits. Similarly, it would be better to have separate text for each of the 12 flags i/o signals!

commented

That's fair! (I happened to have familiarity with the V output and wondered why I couldn't find it.)

I've now added some more hover-tips text.

commented

Could you perhaps add hyperlinks in the README to the 3 svg files? And perhaps add the github.io URL to the project (which puts it in the top section to the right of the project name and description?) - that's a project settings thing, rather than a check-in.

I have now done this I believe.

commented

Excellent - thanks!

I somehow did not commit all changes yesterday, but I've fixed that now, and am closing this issue. Feel free to open a new issue with any further requests or error reports.