I have an idea to save a cycle in reading from a cartridge-based expansion (as in many mappers). While I can read from some magic location, I'd like to read from a zero-page location.
During reset, I'd write #$FF to a location (let's say $80, but it's arbitrary as long as it is unused elsewhere). An open collector buffer sits between my peripheral and the data bus, and my device responds to the same address $80. This way, when $80 is read by the CPU, the peripheral can pull data bits low, or leave them at the #$FF that the RAM is already outputting.
This is a bus conflict, but as I do not expect it to sink very much current from the NMOS SRAM chip, it should not damage anything.
As the 2A03 and RAM are NMOS devices, as well as the RAM in the NES, which pull lines low but do not drive them high, would it be safe to do something like that?
During reset, I'd write #$FF to a location (let's say $80, but it's arbitrary as long as it is unused elsewhere). An open collector buffer sits between my peripheral and the data bus, and my device responds to the same address $80. This way, when $80 is read by the CPU, the peripheral can pull data bits low, or leave them at the #$FF that the RAM is already outputting.
This is a bus conflict, but as I do not expect it to sink very much current from the NMOS SRAM chip, it should not damage anything.
As the 2A03 and RAM are NMOS devices, as well as the RAM in the NES, which pull lines low but do not drive them high, would it be safe to do something like that?