From 3caa91127ae16baa27db1bee0e68e8579c4b9544 Mon Sep 17 00:00:00 2001 From: David Banks Date: Fri, 15 Jul 2016 16:24:27 +0100 Subject: [PATCH] Updated Home (markdown) --- Home.md | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/Home.md b/Home.md index 8ca8bb5..f2912a4 100644 --- a/Home.md +++ b/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]]