Updated Home (markdown)

David Banks 2016-07-15 16:24:27 +01:00
parent 62b4ff401b
commit 3caa91127a

33
Home.md

@ -1,8 +1,37 @@
### Overview
This project is an open-source In-Circuit Emulator for the 6502, 65C02, Z80, 6809 and 6809E 8-bit processors.
This project is an open-source In-Circuit Emulator for the 6502, 65C02, Z80, 6809 and 6809E 8-bit processors, using an off-the-shelf programmable hardware device, called a GODIL, that can be purchased here for just over $50.
It uses an off-the-shelf hardware platform, a GODIL, which can be purchased here:
### What is In Circuit Emulation?
Here's [Wikipedia's definition of in-circuit emulation](https://en.wikipedia.org/wiki/In-circuit_emulation):
_In-circuit emulation (ICE) is the use of a hardware device or in-circuit emulator used to debug the software of an embedded system. It operates by using a processor with the additional ability to support debugging operations, as well as to carry out the main function of the system._
Here's a concrete example of how this might be used in practice...
Imagine you collect old computers as a hobby. You have just procured an old BBC Micro on eBay that was sold as "untested". You plug it in and all you get is a blank screen and the long beep of death. You stare at the circuit board for a while, re-seat a few chips that are socketed, probe around with an Oscilloscope, but nothing obvious leaps out. If something subtle is preventing the host processor from executing code, it's often hard to know where to start. This is where an in-circuit emulator comes into it's own, because it doesn't require the host system to be fully functional to be useful.
You unplug the 6502 processor (which is in a 40 pin DIP socket) and plug in the GODIL loaded with ICE-T65 design. ICE-T65 contains a fully functional 6502 processor, plus a second arduino compatible processor running an interactive debugger application via an independent serial port.
Now you have a set of powerful debugging tools at your disposal:
* You can run memory tests on the host RAM
* You can compute CRCs over the hosts ROM (and compare these with values from known good ROMs)
* You can peek or poke host I/O devices, or host memory, or even the screen
* You can set break points on certain pieces of code being executed, or certain memory locations being accessed
* You can disassemble bits of the host memory, do memory dumps, etc.
* You can reset the 6502 processor and single step through the operating system as it initialize
* You can even inspect the 6502 processor registers while it is stopped
In-circuit emulation is useful not only for fixing dead computers, but also if you are just trying to debug existing code, or develop new code. Most people now develop for old computers using software emulators. Most of the time these are great, but sometimes you hit issues that only show up on the real hardware. Or maybe you have some third-party hardware extension or device that isn't supported by the software emulator. This is where an in-circuit emulator will help.
The key difference between a software emulator and an in-circuit emulator is that the latter actually uses the real system, and just replaces the original processor with an alternative implementation that is usually cycle accurate, and has extensive debugging capabilities.
If this interests you, then please read on....
### What is a GODIL?
This project uses an off-the-shelf hardware platform, a GODIL, which can be purchased here for just over $50:
https://shop.trenz-electronic.de/en/TE0261-00-GODIL40_XC3S250E-DIL-FPGA-module-40-pin-DIL
[[images/godil/godil_1.jpg]]