http://www.falvotech.com/content/kestrel/1p3
Description
Total cost in parts: under $25 as memory serves me correctly. The PCB for it would easily dominate price.
My Kestrel-1 is a ROM-less design; it used 5 74ACT595 shift registers to allow my desktop PC to download "ROM" images into RAM (note that 32K of RAM exists from
$8000-$FFFF. Thankfully, the 65816 lets me re-route direct page to $8000 and stack to $81FF effortlessly on boot-up).
The Kestrel-1 supports 32K of RAM and 16 bytes of I/O, as documented on my website. The only reason it's that small is because I went
super cheap (the goal was to be the cheapest possible 65xx computer one can build -- and it is). Quite literally, the entirety of the computer's address decoder is a sole 74AC00. With additional 7400s or maybe a 74138, you could address more I/O devices. As long as RAM sits at $8000-$FFFF, it won't care.
Maximum clock speed is approximately 5MHz with the parts I've selected. I only tested it up to 4MHz though.
Programming
As documented on my website, the Kestrel-1 is designed to operate from a parallel port. This allows the host PC to download software into the RAM. Note that there
is no ROM in the design. I use 74ACT595 serial in to parallel out shift registers to control the bus of the computer. (Consequently, the computer
cannot, as documented on the web, support DMA, since it would interfere with the IPL circuitry).
Modernizing the design to support USB would be an excellent project, I think. Getting software into the computer via USB will be more complex, but I don't think it'd be substantially so. It'd involve a microcontroller and an FT245M module to interface USB to the microcontroller (unless the microcontroller has native support for USB built-in, like some of the 8051-class devices). The reason I prefer the FT245M is because it comes with USB port already soldered on, with electronics and all that jazz needed. It's costly at $25 a pop, but you get a lot of bang for the buck.
The FT245M looks like an RS-232 device to the host PC. Drivers for it are included with every Linux kernel (you may need to recompile the kernel to get ahold of the kernel module though; but if you're using Linux, you probably already know how to do this). Drivers for Windows are freely downloadable. I believe Mac sees it correctly out of the box.
You'll need to invent a download protocol for use over the USB port. This could be something as simple as X-Modem, but it would be nice if it were more generic, and capable of bidirectional flow of data. This would allow the USB chip to be used for implementing a VNC server, for example, allowing for remote instrumentation and visualization or, if you've the bandwidth, even simple games.
I/O
The sole VIA chip it has is plenty sufficient to implement the serial interface bus that Garth and I designed recently on this forum. This serial interface bus is substantially faster than Commodore's serial bus, even when bit-banging. This is because it's a fully synchronous protocol, always transfers two bits at a time (one to, and one from, the addressed peripheral), and has explicit packet framing via select pins (versus "soft-addressing" via IEEE's approach).
Therefore, it is easy to expand the Kestrel-1 with other peripherals, provided you have a suitable BIOS or OS to interface the bus with.
NOTE -- because I'm spending more of my time designing the Kestrel-2 firmware, I haven't had the opportunity to research the software protocols for this interface. However, it's designed to be operable without this; because the bus is a superset of the SPI bus,
any valid SPI peripheral is usable via the bus interface. Therefore, the protocol you'd use is that of the SPI peripheral you're addressing.
For the purposes of developing the OS for it, I can create a Kestrel-1 emulator if desired, at least for Linux, using my lib65816 package.
Newbie Friendly
I do not believe that the 6502 is any more newbie friendly than the 65816. In fact, in some respects, I think it's more user hostile, because of the need to explicitly handle multi-byte quantities manually. The 65816 at least is able to handle 16-bit quantities natively.
Using the 65816's more advanced features is of course optional while teaching someone how to use the system. In fact, since the Kestrel-1 disregards the bank address byte all-together, it is not possible to profitably use the extended addressing modes, since it is confined to a 64K address space, just like the 6502.