So, it's been more than a year, and
finally over the past week I finished putting together a system with an '816, RAM, ROM, a UART, and enough free address space that I should be able to add a VIA if I also bring in a '138 to do the address decoding. It's all still on a solderless breadboard, and it's almost entirely untested, but it's there. I haven't done a continuity test over the various parts of the system, nor have I powered it up since putting in most of the wires, but even getting this far is a bit of an accomplishment for me at this point.
Aside from the discrete bits for the reset circuit, and the 1.8 MHz crystal (used for both the UART clock and for the main CPU clock), the breadboard holds:
- A WDC 65816.
- Two 74HC132 quad schmitt-trigger NANDs.
- A 74HC245 to keep the bank address from colliding the data bus.
- A 74HC573 to latch the low five bank address bits (it also latches the upper three bits, but those aren't currently used).
- A 32kx8 RAM of some sort.
- An SST39SF040 512kx8 FlashROM in a ZIF socket.
- A 16550A UART.
In the image, the left column has the crystal, one of the '132s, the CPU, and the '573. The middle column has the other '132, the RAM, the '245, and the ROM. The right column has the UART. You can see the battery holder (the 5v inverter board is on the bottom side) and a usb-serial adaptor over the unused fourth column on the breadboard.
Attachment:
basic-65816-system.png [ 3.36 MiB | Viewed 812 times ]
There is ample board space and address space to add a VIA, though doing the address decoding reasonably looks to require a '138. Adding a '138 would also allow mounting a
second ROM for in-system programming purposes or just having more storage capacity, and would still leave quite a bit of address space open (and conveniently-decoded).
My next steps are to work out an initial test program and to improve my (arduino-based) FlashROM programming setup to the point of being actually usable rather than a proof-of-concept for getting data onto a ROM. Eventually I want to do a more-permanent (wire-wrap) version, but there doesn't seem to be much point until I have something running on a breadboard.