Hardware > Hardware (Classic 16-/32-Bit)
Atari Falcon mit merkwürdigem Tastaturproblem (Ghost-Touch)
kcr:
Hallo Allerseits.
Habe neuerdings an meinem Falcon ein merkwürdiges Phänomen entdeckt, was doch ganz schön stört...
Und zwar scheint er sporadisch (aber gefühlt immer öfter) vor allem nach Mausbewegung im TOS (und auch bereits in XBoot) selbstständig Tasten zu drücken.
Bewege ich die Maus ist es so, als würde ich eine Taste gedrückt halten - es kommt der Tastenklick wie aus dem Maschinengewehr. Nicht immer aber immer wieder.
Es scheint vornehmlich die ESC-Taste zu sein, aber nicht nur. Öffne ich ein Laufwerk geht's los und er aktualisiert mir ständig den Inhalt... also so, als ob die ESC-Taste gedrückt wird. Manchmal hört es nach tatsächlichem Drücken auf die Tastatur auf, manchmal nicht, geht aber meist gleich wieder los.
An der Tastatur liegt es nicht, habe ich schon gegen getestet und auch nicht an der Maus. Keine Ahnung was das sein kann, hatte ich bisher noch nie... Kann mich auch nicht entsinnen, wann es angefangen hat, bzw. was ich geändert haben könnte. Habe vor kurzem die Vulture RAM-Erweiterung von Lotharek eingebaut, aber das wird es wohl nicht sein.
Jemand eine Idee? Werde hier noch verrückt. :o
Dank im Voraus.
PS: Habe mal kurz die Maus abgemacht, und mit Tastatur bedient. Da scheint alles ok. war aber auch kein langer Test.
PPS: Es scheint sogar nur nach Mausbewegung zu sein - irgendwie interpretiert der Falcon (sporadisch) Mausbewegungen als Tastenklick.
czietz:
Hier ist, was passiert: Wie Du sicherlich weißt, werden Tastendrücke und Mausbewegungen vom Tastaturcontroller über dieselbe Schnittstelle zum ACIA auf dem Mainboard übertragen. Bei Mausbewegung kommt zuerst ein spezielles Byte, das bedeutet: es folgende Mausdaten -- es folgen dann zwei Bytes mit x- und y-Bewegung. Ein Problem entsteht, wenn das erste Byte verloren geht. Dann weiß TOS nicht, dass es sich um Mausdaten handelt und interpretiert die x- und y-Bewegung stattdessen als Tastendrücke. Z.B. hat [Esc] den Code 1, sodass eine kleine Mausbewegung (nur um ein x- oder y-Increment) als Drücken von [Esc] interpretiert würde.
Wie kann nun ein Byte bei der Übertragung verloren gehen? Der ACIA hat keinen FIFO für empfangene Daten. Kommt ein Byte an, muss es abgeholt werden, bevor das nächste Byte ankommt. Sonst ist das erste Byte unwiederbringlich verloren. Deshalb kümmert sich in TOS ein Interrupthandler mit hoher Priorität darum, dass Bytes aus dem ACIA abgerufen werden. Wenn Du aber ein Programm (auch Hintergrundprogramm aus dem AUTO-Ordner oder ACC) benutzt, dass für zu lange Zeit Interrupts sperrt und Du in dieser Zeit die Maus bewegst, dann kommt es zum partiellen Datenverlust und damit zum von Dir beschriebenen Phänomen einer scheinbar hängenden Taste.
Zur Fehlersuche: Da Du schreibst, dass das Problem auch schon in XBOOT auftritt: Startest Du irgendwas noch vor XBOOT?
Andernfalls kommen für den Datenverlust auch noch schlechte Verbindungen oder sich langsam verabschiedende Tastaturcontroller, ACIA oder MFP (kümmert sich um den Interrupt) in Betracht.
kcr:
Ok, habe noch weiteres festgestellt: das Phänomen passiert, wenn ich bei Festplattenzugriffen die Maus bewege. Also z.B. wenn ich den Fileselektor Freedom2 starte, er die CPXe lädt und ich dabei die Maus bewege. Bewege ich die Maus nicht, ist alles ganz normal. Da konnte ich auch sehen, dass es die Tasten ESC, 1,2 und 3 sind, da es ja ein Fileselektor ist und die Eingabe sichtbar wird.
Also Tastatur kann es nicht sein, die habe ich gegen getestet.
czietz:
--- Zitat von: kcr am Fr 28.08.2020, 22:01:14 ---Ok, habe noch weiteres festgestellt: das Phänomen passiert, wenn ich bei Festplattenzugriffen die Maus bewege.
--- Ende Zitat ---
Dann liegt die Vermutung nahe, dass der Festplattentreiber zu lange die Behandlung der ACIA-Interrupts verhindert. Keine Ahnung, warum? Vielleicht braucht die Platte ungewöhnlich lange, um auf bestimmte Dinge zu reagieren?
--- Zitat von: kcr am Fr 28.08.2020, 22:01:14 ---Da konnte ich auch sehen, dass es die Tasten ESC, 1,2 und 3 sind, da es ja ein Fileselektor ist und die Eingabe sichtbar wird.
--- Ende Zitat ---
Das passt zu meiner Theorie. 1, 2 und 3 haben nämlich die Scancodes 0x02, 0x03, 0x04. D.h. eine Mausbewegung nicht um einen Schritt sondern um 2, 3, 4 führt statt zu [Esc] eben zu den weiteren Tasten.
kcr:
@czietz Vielen Dank für deine Antwort. Ja, das hört sich alles sehr vernünftig an, was du da schreibst, auch wenn ich da nicht so die Ahnung von hab ;) Aber das Prinzip habe ich verstanden :D
Ich denke nicht, dass es ein Softwarefehler ist. Habe gerade nochmal getestet: der Fehler tritt sofort nach dem Laden von HDDriver auf. Es sei denn, es liegt am HDDriver... werde da mal die Einstellungen checken.
Kann es ansonsten eventuell sein, dass vielleicht einer der Pins am Tastaturanschluss eine kalte Lötstelle hat oder so oder ist das Blödsinn?
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln