I found the 74hc299 shift register was giving me fits, so I removed it for now and wired the data bus temporarily directly to the arduino to work through reading and writing to ram. I started by writing a repeating but easily distinguishable pattern to the ram to make sure it can write to all the ram and read it back. 64kb in 2 chips of 32kb.
I can come back later and add the shift register back.
I then patched the 6502 emulator code to read and write to the RAM. There seems to be some slower performance that I am tracking down. I hope that the shift register performance isnt too slow. I did notice that splitting the address into two bytes by doing bitshift seems slow. And I haven’t started figuring out what to use for rom or sdcard, and memory mapping. It lives! Running EHBasic 2.22 rom.
I have to collect up the links for the EHBasic project and the Arduino 6502 project I based my modifications on. I do plan on cleaning up the code and posting it.
One step closer. I have both the address bus (orange wires) and data bus (green wires) working and reading. I am able to select the memory address and bank (chip select) and the data bus latches and displays the bits stored. I still have to work through the details of using the universal shift register and timing the memory writes with it so it can read and write bytes to the bus. A very photogenic breadboard!
Once I have that working I can patch the 6502 emulator to use the external ram instead of the microcontroller ram. Turns out the method I used to select the ram, is similar to how you would do bank switching on an Apple II. Once I have a method to dynamically map memory, I have to decide where the zero page and registers will reside, if I use microcontroller ram, I can’t spy on those items, but it may prove faster. I haven’t even thought about video display or physical I/O