Drass wrote:
daniMolina wrote:
I need memory in the upper range of the address space for the reset/interrupt vectors.
Seems like a shame to complicate things just for the vectors. What’s your Arduino doing while the 6502 is running? Can it sniff the bus and supply the vectors as necessary?
I totally agree. Don't have any IO pins free though to do that. The startup sequence is as follows
1.- Arduino releases BE and waits for a "RAM Image" from the host PC. Meanwhile, 6502 happily crashes while reading an "empty" memory
2.- Host PC starts to send the RAM Image to the Arduino. BE is asserted and, by using a couple of 74595 shift registers, RAM is accesed and writen to.
3.- When RAM is complete. Arduino resets the SBC, releases BE, and then releases Reset.
After that, the Arduino just sits there waiting for another programming cycle, if requested. It only generates a 50hz square wave to feed the TOD signal in the 6526.
@Mike, of course you may, all help is appreciated, even though any new idea sparks a new tree of posibilities, with the risk of making me go crazy
I'm pretty sure I've seen that image before, most likely in this same forum. I like it's simplicity, and I can't think of many ways to get a faster propagation delay to RAM.
I've managed to combine some ideas from you both into this:
Attachment:
MemDecoder_v2.png [ 16.51 KiB | Viewed 1948 times ]
MEMCE propagation delay goes down to a mere 8.5 ns max(6.5 typ, 3 min!)
Peripherals enable gets the same 22~ ns as before.
By using a RAM chip with to enable inputs, I can let the address decoder handle one, the arduino the other, so I save 3 gates needed to mux both signals. Same number of ICs though, but routing is going to be much much nicer.
I've found 128k, 12ns RAM ICs on mouser that should be a good choice.
Once I double check this new version. I'll update the initial posts.
Thanks!
Edit: Corrected the order of pins 14/13 on IC2B, as correctly pointed by Mike in the next post.