I'm new here. Thought I would stop by and say hi! and tell you all about a project I've been working on. I went looking for a good forum to post this on and found this one. (If there are other Apple II communities where it might be more appropriate to post this, please let me know.)
A few weeks ago, I went looking for an in-circuit emulator/debugger for my trusty old Apple II and stumbled across a project called "ICE-T65"
The hardware is a small FPGA mounted on a 40-pin board that has a similar form-factor to a 6502 processor, and with the right software, can be used as a pin-compatible, plug-in replacement for a 6502. Installation is as simple as popping out the CPU and putting this board in it's place.
The hardware is generic and can be used for many projects. And it costs less than $100.
The magic software that re-creates a 6502 is all open source. David Banks combined a 6502 soft-core (to emulate the 6502) with an Atmel AVR soft-core (to act as a debugger) and wired them up such that the AVR can poke inside the 6502, including breakpoints, watchpoints, register reads, etc.
The debugger is written in C, and the AVR core is the same one used in an Arduindo, so it's easy to program for.
He developed the project for use with an Acorn Atom, but it simulates a real 6502 well enough that I was able to drop it into an Apple //e and have it work out of the box.
Really, really cool to see an Apple II boot up with the cpu removed and replaced with an FPGA. And the hardware backed 6502 debugging is awesome.
I'm a software developer, and I've never done any real hardware development, certainly not working with an FPGA. For me this was an opportunity to learn VHDL and teach myself how to design FPGA code.
My goal then became to add a virtual Disk II interface into the FPGA code. Initially, I was thinking of using an SD card for backing store, but then decided it would be more flexible if I added a network interface and allowed it to boot disk images over the network. (i.e. you can use this to boot a real physical Apple II from a disk image hosted on a web site)
The beginnings of my project are here:
There's been more progress since then. If people are interested, I will follow up with updated information.