Jeśli się nie mylę to wpis:
Kempston = IOREQ # RD # A5; /*Decode by A5 only*/
w pliku JED wsadu GALa wynika że joystick jest aktywowany tylko stanem niskim na tych trzech pinach (powyżej).
W GAL-u wszystko się niby zgadza.
Żadnym specem od Timexów nie jestem, a moje przemyślenia są takie:
1/ Dekodowanie Kempstona tylko po adresie A5, to żadna nowość i tak samo jest zrobione dla wewnętrznego interfejsu joysticka w TC2048. Należy pamiętać, że wewnętrzny Kempston w TC2048 jest na stałe i nie można go odłączyć bez modyfikacji komputera.
2/ Sianie Dandanatora po portach I/O przy TC2068 może powodować konflikty z portami zajętymi przez SCLD, a jest ich kilka (od 0xF4 do 0xFF). Możliwe, że SCLD dekoduje też metodą uproszczoną tylko po liniach A0, A1 i A3, z pominięciem pozostałych.
3/ Wsad do GALa w Dandanatorze będzie trudno zmienić, ze względu na brak wolnych we/wy w tym układzie. Można zewnętrznie dołożyć dekodowanie adresu Kempstona po A5, A6 i A7. Mod w załączeniu, ale nie sądzę aby pomógł, skoro Kempston w TC2048 i tak będzie się odzywał siejąc po szynie danych. Dla TC2068 należałoby sprawdzić.
4/ W klonie Timmy w dekoderze Kempstona uwzględniłem A5, A6 i A7, ale tak samo jak w TC2048 jest on na stałe. Aby go wyłączyć należy wyjąć układ U5 (74LS540). Jeśli jego wyłączenie nie pozwala na poprawną pracę Multiply, to moim zdaniem są jakieś jazdy z 4-bitową transmisją na porcie 0x1F.
P.S.
Jak przygotowałiście program w Arduino, pod jaką konfigurację ZXa, bo z tego co widzę domyślnie jest ZX128K (linia nr 36 w Multiply_Arduino.ino) :
https://github.com/mad3001/Multiply/blob/main/Src/Multiply_Arduino/Multiply_Arduino.ino