Thanks for the feedback.
I could do that, and, if one was building the externally clocked version, that would leave enough flipflops for a second QEI interface in the same chip. Also, while I'm using TTL with far too many pins
I could also switch to 74HC154 4 to 16 line decoders. That would get the chip count down to 2.5 per QEI. and then all you need to do is add some up/down counters, tristate buffers and address decoding and you've got an old-skool (crappy) bus mouse interface.
However I was sticking to 'vanilla' 14 pin 74xx series logic + the LTspice
74HCT library (+
symbols) I'm using doesn't have 74xx154 or 74xx574,
and I certainly cant be ars3d to build it for real when I could just drop in a small PIC or AVR .
It does require debouncing, otherwise in the real world, it increases the risk that it will occasionally loose counts due to metastability causing an invalid transition to be be decoded. Your proposed 4MHz external clocked version would do well to use the spare flipflops in the 74xx574 to implement a multi-flop synchroniser for A and B, and assuming you haven't splurged on some Schmitt input buffers, the first stage of it could do with a feedback resistor from Q to D to add hysterisis.
Also you may have noticed the text 'Self Clocking
Option' and the dotted line round the 74HCT86 clock pulse generator gilded turd. Hopefully its obvious that its an either/or option - use the self-clocking furball of RC delays without a proper monostable or Schmitt trigger input in sight OR
(my preference) delete that section and provide an external clock.
Sorry I was lazy and didn't separate out the daggy bit and hook it up with net labels.
Unfortunately LTspice doesn't have a 'cut here' scissors symbol!