Auf meinem originalen C64 (6581) hatte das ohne Pause nicht funktioniert.
Was auch immer das Problem gewesen ist: Warteschleifen im Interrupt sind nicht die Lösung (tm).
Offenbar ist es immer noch ein Problem auf echter Hardware. Hier mal ein Auszug aus dem deutschen 1351-Manual:
ZitatAlles anzeigenIm C 64 und C 128 sind die SID-Potentiometer-Anschlüsse an beide
Joystick-Buchsen geführt. Ein Analogschalter 4066 schaltet die
POT-Leitungen zwischen den beiden Buchsen um auf eine der
Tastatur-Matrix-Leitungen. Dadurch beeinflußt der normale
Tastatur-Scan-Interrupt zeitweise die Werte der POT-Register. Daher
müssen im Sinne einer verläßlichen Datenerfassung die POT-Leitungen
mindestens für 1,6 ms anliegen, bevor die Daten im POT-Register
gültig werden.
Der beste Weg dies sicherzustellen ist, die Treiber-Software in die
IRQ-Routine einzuklinken vor der Tastatur-Abfrage. Das sichert mehr
oder weniger, daß die Tastatur-Matrix-Leitungen einen stabilen
Zustand angenommen haben, bevor das POT-Register vom Maus-Treiber
ausgelesen wird.