[...] Odradzane jest (było) to rozwiązanie z powodu potencjalnej niekompatybilności w przypadku fizycznego podłączenia czegoś do szyny, jakiegoś cudactwa co sieje swoje sygnały. Rzekomo nawet dżojstik Kempston'a miał już wpływać szynę (tu już niech sprzętowcy się wypowiedzą). Czyli wracamy raczej do kwestii kompatybilności sprzętowych. [...]
Pamiętaj o tym, że jeśli Z80 przyjmie przerwanie na linii /INT uaktywnia linie /M1 i /IORQ, a przy wywołaniu portów we/wy linie /IORQ oraz /RD. Aby każdy interfejs poprawnie odczytywał zamiary procesora i był aktywny wtedy, kiedy potrzeba, musi brać pod uwagę stan /IORQ i /RD. Są interfejsy odczulone na wywołanie przerwań i "milczą" jeśli linia /M1 jest w stanie niskim. ALE w wielu oryginalnych ZX Spectrum 16K/48K miał Z80 od Ziloga z uszkodzoną linią M1 (zapewne sir Sinclair tanio kupił te niepełnowartościowe procesory), więc badanie stanu tej linii nic nie pomoże i może zaszkodzić. Ponad to mnogość różnych interfejsów oraz uproszczenia w ich konstrukcjach mogą powodować kolizje na szynie danych. Nawet taki Kempston może być problematyczny, ponieważ można go zbudować z wykorzystaniem tylko linii /IORQ i A5 w dekoderze adresów (na dwóch diodach i jednym rezystorze) z pominięciem /RD. W takim przypadku niezależnie od tego czy procesor przyjął przerwanie, czy ma zamiar odwołać się do urządzeń we/wy, o ile linia adresowa A5 będzie w stanie niskim, Kempston "rzygnie" danymi i stąd potrzeba zarezerwowania 257 bajtów na obsługę przerwań. A gdzie? Tam gdzie jest wolne miejsce w RAM, albo korzystając z obszaru z 0xFF w ROM, wedle uznania programisty.
Interfejsów zgodnych z Kempstonem powstała niezliczona ilość, a nie wiesz, co ktoś wsadził do jego wnętrza. Odwołujemy się do czasów, kiedy w "krajach wiecznego szczęścia, dobrobytu i realnego socjalizmu" kupienie czegokolwiek było wyzwaniem, a układy scalone nie były łatwo dostępne w sklepach dla hobbystów. Stosowano co było dostępne, kosztem niezgodności z przyjętymi standardami skoro działa. Obecnie, nie mamy takich problemów, ale wykopujemy interfejsy z szaf, strychów, zapomnianych skrytek i chcemy, aby one też działały "jak dawniej", stąd wyzwanie dla programistów z zapewnieniem wstecznej kompatybilności.