The FPI (fast processor interface) ASIC in the Apple IIgs generates the /CROMSEL chip-select signal, which is used to select a ROM in the memory expansion slot. Obviously the /CROMSEL signal must be asserted for read accesses to the extended ROM space, but what about write accesses? If the 65816 performs a write to the extended rom space in banks F0-FD (F0-FB for ROM 3 systems), does the FPI assert /CROMSEL?
No, for writes to the extended ROM space, the IIgs ROM 01 FPI memory controller does not assert /CROMSEL. I assume it’s the same for the newer CYA memory controller chip in ROM 03 systems but I have not tested.
Here are the logic analyzer traces. First is a read from F0/0000, in which /CROMSEL is asserted as expected:
Next is a write to the same address, in which /CROMSEL remains unasserted during phi2:
Interestingly, there is a 32ns period after the write to F0/0000 is over in which /CROMSEL becomes active, before going back to deselected before the end of /phi2. This suggests that in the FPI, /CROMSEL is implemented as an asynchronous disjunction of /WE and a registered address.
If the 65816 performs a write to the extended rom space in banks F0-FD (F0-FB for ROM 3 systems), does the FPI assert /CROMSEL?
Yes, it does. CROMSEL is a select signal, and as such only dependant on the address, not any other signal (like direction).
The reason of providing CROMSEL is to make extended ROM selection easy and safe by avoiding the chance that ROM (card) developers only decode for Fx, creating a potential address collision for banks FE and FF.