Sorry for late reply guys, I have spent the last two weeks staring at the breadboard, cutting wires with scissors and rearranging ICs. If this exercise has taught me anything, it's that it takes a lot more time doing the actual wiring than planning the concept
![Smile :)](./images/smilies/icon_smile.gif)
It's also obvious that your tips about keeping address decoding simple is very good advice. For now, it is more than sufficient. There will be enough wiring as it is. Indeed, baby steps seems to be the way to go. Turns out that those steps are not so small when put in practice.
So far, I have managed to hook up the 65C02 to a hardwired NOP instruction (got the idea from
http://mysite.du.edu/~jcalvert/tech/6504.htm), to test the 65C02 with the clock source and reset circuit. This turned out to be a good idea, as I learnt the hard way what an open-drain output is, and that I accidentally ordered a watchdog timer rather than a simple reset circuit (no, I didn't read the specs for it that closely). It seems to run OK now - the A15 is connected to a LED and it flickers at
what is estimately 20 Hz (slow enough to be noticable). I used the clock circuit proposed by
http://www.reocities.com/SiliconValley/2072/6502prj1.htm (2 MHz crystal and a hex inverter).
Also, I hooked up a DLP-2232PB-G microcontroller to the breadboard, connecting it to the 28C256 EEPROM via a 12-bit ripple counter (wasn't able to get more than 14 pins working from the MCU, so I had to clock count the lower 12 address bits). I wrote a Visual C++ program that reads a HEX file and programs the EEPROM with it. I have some random bugs in it but it seems to program OK when working.
So I think the next step now is to connect the EEPROM and 65C22 to the 65C02 and write a simple ROM code that flips som pins (flashing some LEDs).
I have created a small blog for my rambling,
http://8bit.johanfransson.se, if anyone would be interested.
I think your advice regarding programmable logic is excellent advice. I want to learn about this before any succeeding projects. I have no experience with wire-wrapping (and little experience with soldering), but this is probably the way to go for more advanced designs, so I will have to learn and practice this as well. Or as you say, a printed PCB, when stuff gets really complex. The breadboard is just too fragile in terms of wiring popping out (or put in the wrong place) for the amount of wires required. But it will have to do for now, until I know what I am doing
If I manage to take this project to a complete working ROM/RAM setup, I am thinking about implementing a bitbanging SPI services routine in the ROM, using the 65C22. It seems straight forward, and frankly, I think I will have had enough of parallel buses for a while when reaching this point
![Smile :)](./images/smilies/icon_smile.gif)
But we will have to see; if the amount of wiring gets out of control, I might switch focus and learn more about PCB and/or wirewrapping to make the board more solid. As I might have mentioned before, part of the goal for me is not the finished product itself, but to learn.
I have no problem staying with low clock speeds for a while. Garth, I have considered and will use your advice regarding switching the wiring for Phi2 and chip selects for RAM. I have a question though: when talking about Phi2, do you usually use the clock-out from the 65C02, or the output from the clock circuit itself? Also, do you have any references to information regarding the corrupt-RAM-data issues?
Thanks again guys.