As mentioned elsewhere, I found a couple of HC166s - it's amazing what you find when you're clearing up for a house move!
From much perusal of the datasheets, both the 165 and 166 both suffer from having a combined load/shift pin, but the difference as far as I can see is that the 165 requires a short pulse within one dot period (i.e. without any coincident edges) to latch new data asynchronously while the 166 latches data on the rising edge of the clock, and so the load signal needs to be active across or synchronous to a clock edge.
For my SVGA, the video address will be active during counts 0 and 1 of a divide by eight with BE disabling the 6502 outputs. BE wakes up for counts 2-7 and phase 0 at count 4.
- Current design: 165; a 163 counter and 138 decoder gives a load signal during the latter half of count 1 (so 75ns for the video memory access)
- Option 2: 166, a 163 counter and 138 decoder to give a load signal either during count 1 or count 2 (not sure which yet but likely 1)
- Option 3: 166, a 163 counter preset to 0b1000 to count up and give a load signal during the TC count
- Option 4: 166, half a 393 counter, and a 138 decoder to give the load signal (as option 2)
Option 1 is already on the board, but it needs redesigning anyway; a couple of other things have had to change in the video timing. Option 2 is easy, just a rewire of the 138 inputs. Option 3 saves the 138, but would need to reset at 0b1110 (which might be easiest with the 138 anyway). Option 4 does away with the 163 and uses half a 393 which is currently unused...
The whole issue is down to the 65c22 on board which I am led to believe wants the 65c02's data bus active prior to phase 2 becoming active, hence just using counts 0 and 1 for video circuitry memory access. It would certainly be simpler to ignore this requirement and simply hope it works; in that case, option 5 exists: use the 393 counter, with bit 3 inverted as phase 0, and a 138 to generate a load pulse on count 4...
Neil (frustrated at the moment)