|
|
Line 1: |
Line 1: |
- | Welcome to the visualchips wiki. Please see also [http://visual6502.org the visual6502.org site] which contains the backstory, [http://visual6502.org/links.html useful links], [http://visual6502.org/faq.html a FAQ], and a link to [http://blog.visual6502.org/ the project blog].
| + | . |
| | | |
- | We're all about reverse-engineering popular chips from the 70's and 80's - initially the 6502 but others too. This wiki is for documenting our findings and recording our sources, and is of course a work in progress.
| + | . |
| | | |
- | The [[JssimUserHelp|online help for our JavaScript simulator]] is also here, to help you get the most from that. (Note that it's only a switch-level simulator - our data also supports more accurate models. For most purposes, there's no difference.)
| + | . |
| | | |
- | = Projects and status =
| + | . |
- | See also the [http://visual6502.org/links.html links] and [http://visual6502.org/donate_hw.html status page] on our [http://visual6502.org main website].
| + | |
| | | |
- | For each chip, we follow these steps (see [http://visual6502.org/downloads.html the PDFs] for details):
| + | . |
- | * get a chip, or more than one, which we can depackage
| + | |
- | * depackage it
| + | |
- | * take many photographs through a microscope of the metal layer
| + | |
- | * stitch into a single large image, correcting for distortions and overlaps
| + | |
- | * capture the polygons - at least for metal, usually also for contact cuts - into a data file
| + | |
- | * usually, deprocess the chip to expose the lower silicon layers
| + | |
- | * photograph, stitch and capture
| + | |
- | * convert the data files into a description we can simulate
| + | |
- | * investigate the behaviour of the chip by simulation
| + | |
- | * investigate the layout and logic design
| + | |
- | * write up our results on this wiki
| + | |
| | | |
- | == MOS 6502 family ==
| + | . |
- | We have photographs of the metal and lower layers, the polygons captured, the circuit extracted and we have published [http://visual6502.org/JSSim a javascript simulator]. There is an [https://github.com/pmonta/FPGA-netlist-tools FPGA project] to implement the simulation in hardware. We have (as yet) unpublished simulators in python and C.
| + | |
| | | |
- | See the [[#6502 additional information|additional information]] further down this page
| + | . |
| | | |
- | == Zilog Z80 ==
| + | spam removed |
- | We have photographs of the metal layer, and have started capturing the polygons. No public information yet.
| + | . |
| | | |
- | == Atari support chips ==
| + | . |
- | * TIA (television interface adaptor) fully extracted and simulated, no data yet published.
| + | |
- | * ANTIC layout is in the process of polygon capture or netlist extraction. Primary data not yet published, but see [http://www.atariage.com/forums/topic/172580-antic-decap-and-reverse-engineering/ these] [http://www.atariage.com/forums/topic/136706-internal-antic-and-gtia-schematics/ threads].
| + | |
| | | |
- | == Motorola 68000 ==
| + | . |
- | We have photographs of the metal layer, and have started capturing the polygons.
| + | |
- | * [[Motorola 68000|68000 project page]] containing die photo and showing areas being captured
| + | |
- | This chip will need further deprocessing and photography for the lower layers.
| + | |
| | | |
- | == Ferranti ULA family ==
| + | . |
- | Ferranti ULAs were used in Acorn's BBC and Electron computers, and Sinclair's ZX81 and Spectrum.
| + | |
| | | |
- | See [http://www.zxdesign.info/book/ Chris Smith's excellent book] for ULA background and lots of detail about the Spectrum ULA
| + | . |
| | | |
- | * Spectrum ULA: photographed, circuit manually captured, original sources not presently public
| + | . |
- | * Electron ULA: photographed and stitched, nothing online yet
| + | |
- | * Tube ULA: we have a 'spare' chip, yet to be decapsulated
| + | |
| | | |
- | = 6502 additional information =
| + | . |
| | | |
- | == Primary Sources ==
| + | . |
- | * [http://visual6502.org/images/6502/index.html Photos of a MOS 6502D]
| + | |
- | * [[Atari's 6507 Schematics]]
| + | |
- | * [[Photos of R6502]]
| + | |
| | | |
- | == Secondary Sources ==
| + | . |
- | * [[Hanson's Block Diagram]]
| + | |
- | * [[Balazs' schematic and documents]]
| + | |
| | | |
- | == Previous Analysis ==
| + | . |
- | * [http://impulzus.sch.bme.hu/6502/letolt.php3 Beregnyei Balazs: 6502 Reverse Engineering] ([http://www.downloads.reactivemicro.com/Public/Electronics/Reverse%20Engineering/ translation])
| + | |
- | * [http://anyplatform.net/media/guides/cpus/65xx%20Processor%20Data.txt Mark Ormston: 65xx Processor Data (version 0.2b)]
| + | |
- | * [http://www.textfiles.com/apple/6502.bugs.txt Ivo van Poorten: 6502 Bugs List]
| + | |
- | * [http://www.llx.com/~nparker/a2/opcodes.html Neil Parker: The 6502/65C02/65C816 Instruction Set Decoded]
| + | |
- | * [http://www.oxyron.de/html/opcodes02.html Graham: 6502/6510/8500/8502 Opcode matrix]
| + | |
- | * [http://members.chello.nl/taf.offenga/illopc31.txt Freddy Offenga: 6502 Undocumented Opcodes]
| + | |
- | * [http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/6502-NMOS.extra.opcodes Adam Vardy: Extra Instructions Of The 65XX Series CPU]
| + | |
| | | |
- | == Our Analysis == | + | . |
- | * collected [[6502Observations|observations]] of 6502 layout and behaviour.
| + | |
- | * [[6507 Decode ROM]] (note that this describes the Atari 6507, not exactly the same as the NMOS 6502 used in the [http://visual6502.org/JSSim visual6502 simulator]
| + | . |
- | * [[6502 all 256 Opcodes|all 256 6502 opcodes]] including illegals and their actions
| + | |
- | * [[6502 Stack Register High Bits|Stack Register]]
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | |
| + | . |
| + | ==== ==== |
| + | |
| + | <small> e644967a59 |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | </small> |
.
.
.
.
.
.
.
spam removed
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.