za909 wrote: ↑Sun Oct 16, 2022 4:31 am
Right, I was thinking of the original UxROM boards. I basically need the logic to say if (cpu_R/W & (cpu_A15 & cpu_A14 )) | (latch_O0 & latch_O1 & latch_O2 & latch_O3 & latch_O4 & latch_O5 & latch_O6 & latch_O7) if I'm not mistaken?
In the same way that UNROM looks like this:
https://www.nesdev.org/wiki/UxROM#Hardware with one 4-bit register and one chip containing four OR gates, to extend it beyond there you need a total of two chips with four OR gates each for a total of
eight OR gates.
I see, that is the idea, if there is some kind of pull up resistor or any other method that is slow enough pulling /IRQ high for the CPU to see the pending IRQ even after the longest instruction, that could work for me. As long as the circuit itself stops asserting on its own both slow and fast enough I'd be happy with that.
There's no great way to do this in analog. You can use a 555, but its timing won't be particularly stable - certainly not enough if you want it to be in tune with the NES-native sound channels.
You can do stupid tricks with making a timer out of something that can be pre-loaded, for example using two 74'161s with a period of 128+(8 or 9) by setting two 74'161s to reload themselves with (256-128-8) and using the msbit out as the IRQ.
Any kind of automatic ack without detecting the 6502 cooperating (e.g. detecting fetching the IRQ vector or the write to $4011) is committing to a certain amount of fragility, which may work or may be a problem - it depends.