Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » PS2 Tastatur hängt unter CAOS 4.5 » Themenansicht

Autor Thread - Seiten: -1-
000
30.05.2010, 17:42 Uhr
ralfwu



Hallo,

ich teste hier gerade CAOS 4.5 beta 3 und bin da halt auch über Spiele gestolpert. Jetzt habe ich bei Digger das folgende Symptom: Beim Spielen mit einer PS2 Tastatur die über Enrico's Interface angeschlossen ist, reagiert das Spiel häufig äußerst schleppend. Mit der Standard Tastatur passiert das nicht. Leider kann ich nicht sagen, ob das unter CAOS 4.4 auch schon so war. Ich tippe ja eigentlich mehr auf ein V24 Problem. Kann jemand sich einen Reim darauf machen?

MfG Ralf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
30.05.2010, 17:55 Uhr
Enrico
Default Group and Edit


Ist mir noch nie aufgefallen. Aber wann komme ich denn schon mal dazu den KC anzumachen, oder gar mit dem zu Spielen.
Ich habe CAOS4.4 und es mal mit DIGGER99 ausprobiert.
Manchmal reagiert das Männecken auf jeden einzelnen Tastendruck, manchmal muss man auch mehrmals auf eine Cursortaste drücken, damit der sich um einen Schritt weiterbewegt.
Unter CAOS selbst ist das dagegen kein Problem.
Ich denke also mal, dass es ein SW Problem ist.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
30.05.2010, 18:05 Uhr
ralfwu



@Enrico
Der Fehler ist genau so wie Du ihn beschreibst. Das Männecken reagiert mal auf jeden Tastendruck und dann wieder nicht. Aber eben nur bei der PS2 Tastatur, die über das M003 angeschlossen ist. Mit der Original Tastatur passiert das nicht!

MfG Ralf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
30.05.2010, 19:20 Uhr
Enrico
Default Group and Edit


Kann ich nichts zu sagen. Die Orginale habe ich nicht mehr. Oder fällt das nur nicht auf, weil man da ja mehr auf die Tasten drücken muss?
Unter CAOS gibs ja kein Problem. Irgendwie fragt doch das Spiel die Tasten ab. Das muss doch über die Speicherzellen passieren, oder per Unterprogramm. Ich kann mir nur vorstellen, dass da irgendwo was verschluckt wird.
--
MFG
Enrico

Dieser Beitrag wurde am 30.05.2010 um 19:22 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
30.05.2010, 20:15 Uhr
danielk

Avatar von danielk

Die PS/2-Tastatur ist über V.24 angeschlossen, richtig? Ich benutze ein selbst geschriebenes Programm, das das gleiche Interface emuliert. An sich funktioniert es, aber mit Digger habe ich es noch nicht probiert.

Wenn ich Zeit finde, probiere ich mal aus ob es da zwischen CAOS 4.4 und CAOS 4.5 beta einen Unterschied gibt. Kann aber ein paar Tage dauern, bis ich dazu komme.

Nachtrag:
Der Effekt könnte übrigens mit der höheren Geschwindigkeit der V.24-Tastatur zusammenhängen. Das V.24-Tastaturinterface sendet beim Loslassen einer Taste den Code 0, woraufhin die Empfangsroutine von CAOS den momentan aktiven Code im Tastaturpuffer löscht. Bei der eingebauten Tastatur funktioniert das anders, hier wird der Code zurückgesetzt wenn der Tastatur-CTC den Zählerstand 0 erreicht und einen Interrupt auslöst.

Digger ist vermutlich die Zeitspanne zu kurz, während derer der Tastencode aktiv ist. Das kann daran liegen, dass Digger noch viele andere Dinge abarbeiten muss und daher die Tastatur nicht so oft abfragen kann wie die CAOS-Menüschleife. Es kann aber auch ein gewollter Effekt sein.

Dieser Beitrag wurde am 30.05.2010 um 20:30 Uhr von danielk editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
30.05.2010, 21:34 Uhr
Enrico
Default Group and Edit



Zitat:
danielk schrieb
Die PS/2-Tastatur ist über V.24 angeschlossen, richtig?

Ja.


Zitat:
Nachtrag:
Der Effekt könnte übrigens mit der höheren Geschwindigkeit der V.24-Tastatur zusammenhängen. Das V.24-Tastaturinterface sendet beim Loslassen einer Taste den Code 0, woraufhin die Empfangsroutine von CAOS den momentan aktiven Code im Tastaturpuffer löscht. Bei der eingebauten Tastatur funktioniert das anders, hier wird der Code zurückgesetzt wenn der Tastatur-CTC den Zählerstand 0 erreicht und einen Interrupt auslöst.

Digger ist vermutlich die Zeitspanne zu kurz, während derer der Tastencode aktiv ist. Das kann daran liegen, dass Digger noch viele andere Dinge abarbeiten muss und daher die Tastatur nicht so oft abfragen kann wie die CAOS-Menüschleife. Es kann aber auch ein gewollter Effekt sein.

Das sind nur 1200 Baud.
Alles ASCII, da gibts keinen "Code 0".
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
30.05.2010, 22:07 Uhr
klatsche



Hallo ralfwu.
das ist nicht nur bei Digger so, sondern bei anderen Spielen z.B. Pursuit meienm und das meienr Enkelkinder Lieblingsspiel ebenso, selbst bei Chess gibt es Probleme.
Das hat mit Vers. 4 oder Beta 5 nichts zu tun. Bei anderen Programmen, wie Wordpo6, meinem wichtigsten Programm, ist das Interface goldwert. Auch bei der Umschaltung von CPM und CAOS muss einiges beachtet werden. Es wäre, ich denke für viele User toll, wenn sich einer der Großen der Gemeinde der Problematik nochmals annehmen würde.
Es ist einfach unbequem in Abhängigkeit davon, was man am KC tun möchte, die Tastatur zu wechsen. Aber vielleicht setzt hier wieder mal die Physik die Grenzen.
MfG Klatsche
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
30.05.2010, 23:27 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Das sind nur 1200 Baud.

Und das ist deutlich schneller als die Geschwindigkeit, die mit dem Fernbedienungsschaltkreis der Originaltastatur erreichbar ist.

Zitat:
Alles ASCII, da gibts keinen "Code 0".

ASCII enthält sehr wohl den Code 0 (NUL), aber das ist auch gar nicht der Punkt. Es muss eine 0 bei Release kommen, sonst funktionieren Programme nicht die die Tastatur ohne Quittierung abfragen, wie z.B. CAVE. Ich hatte das Problem sehr konkret mit meinem Programm zur Tastaturemulation, da ich mich an die Dokumentation des PS/2-Interfaces hielt und dies dort nicht erwähnt wird.

Es gibt nur den Hinweis in der Beschreibung von CAOS 4.4, dass die V.24-Empfangsroutine dahingehend verbessert wurde: Ab CAOS 4.4 wird ein 0-Byte in den Empfangspuffer eingetragen, aber nicht als gültiger Tastencode markiert. Mit anderen Worten, der aktuelle Code wird gelöscht.

Vielleicht sendet das PS/2-Tastaturinterface ja tatsächlich keine 0, aber in dem Fall dürfte CAVE dann z.B. nicht funktionieren. Die V.24-Tastatur meines Sitznachbarn beim letzten Club-Treffen hat definitiv die 0 gesendet -- wir hatten das Problem dort untersucht.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
30.05.2010, 23:31 Uhr
danielk

Avatar von danielk


Zitat:
klatsche schrieb
Aber vielleicht setzt hier wieder mal die Physik die Grenzen.

Eher nicht, wenn die Originaltastatur in der gleichen Situation keine Probleme macht. Ich könnte mir vorstellen, dass das Problem in der Controller-Software des Tastaturinterfaces angegangen werden kann. Aber erstmal schauen, woran es genau liegt. Vielleicht ist es ja doch ein Fehler im CAOS.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
30.05.2010, 23:49 Uhr
Enrico
Default Group and Edit


Ich wüsste jetzt nicht, dass da nochmal ein 00h hinterhergeschickt wird. Aber das ist ja nun auch schon über 10 Jahre her.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
31.05.2010, 00:35 Uhr
danielk

Avatar von danielk

Kannst ja mal ausprobieren, ob es mit CAVE.KCC funktioniert. Kann man den Quellcode der Controller-Software des Tastaturinterfaces irgendwo herunterladen? Die erwähnte Änderung in CAOS war übrigens schon in CAOS 4.3, nicht erst in 4.4:

Zitat:
CAOS 4.3:
verbesserte Interruptroutine für externe V.24-Tastatur:
* Code 0 wird in (IX+13) eingetragen, aber in (IX+8) nicht aktiviert.
* Autorepeat wird in (IX+10) angezeigt

Im Artikel Tastatur K7672 am KC - DIE Lösung? von Kai-Uwe Irrgang wird die Geschichte mit der 0 erwähnt, aber dort steht es etwas anders: Die 0 sei nur zwingend für CAOS-Versionen vor 4.3. Vielleicht hatte es mit CAOS 4.2 sonst überhaupt nicht funktioniert; ich muss das mal ausprobieren. Aber auch mit CAOS 4.3 und später braucht man zumindest für CAVE die 0.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
31.05.2010, 10:42 Uhr
danielk

Avatar von danielk

So, ich habe gerade mal kurz DIGGER mit einer älteren Variante meiner Tastaturemulation ausprobiert. Das Verhalten ist das gleiche wie bei CAVE -- einmal gedrückte Tasten werden bis zum nächsten Tastendruck nicht wieder gelöscht. Daraus schließe ich, dass auch das PS/2-Tastaturinterface eine 0 bei Release sendet.

Die Beobachtung deckt sich mit meiner Vermutung, dass die 0 für DIGGER zu schnell kommt. Ich werde das vielleicht heute Abend mal konkret austesten, wenn ich Zeit finde.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
31.05.2010, 14:33 Uhr
ralfwu



@danielk
Nur noch mal zum Verständnis. Bei dem PS/2 Tastaturinterface liegt also der letzte Tastencode immer an, wird dann mit einer 0 gelöscht und anschliesend neu beschrieben, wieder bis zur nächsten 0. Der Impuls dieser 0 ist aber für die Tastaturabfrage im Spiel zu kurz und wird dadurch mal erkannt und mal nicht. Das Ganze klingt so absolut logisch. Nur da müßte ja auf jeden Fall was zu machen sein. Ist ja dann ein reines Softwareproblem! Nur leider bin ich kein Programmierer, nur Bastler und Anwender!
MfG Ralf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
31.05.2010, 16:35 Uhr
Enrico
Default Group and Edit


Die Tastatur schcikt den Code solange die Taste gedrückt wird.
Ich sagte ja ich weis das nicht mehr so genau, weils schon 1997 war.
--
MFG
Enrico

Dieser Beitrag wurde am 31.05.2010 um 16:36 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
31.05.2010, 18:32 Uhr
Enrico
Default Group and Edit


Ich habe noch so eine umgebaute K7672 im Keller wieder gefunden.
Funktioniert noch schlechter. Dort rennt das Männchen nach einmaligem Tastendruck ständig durch. Fehlt wohl das besagte 00h.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
31.05.2010, 19:48 Uhr
Enrico
Default Group and Edit


So, hab das nun endlich gefunden. Sieht richtig übel aus, wenn man da nach so langer Zeit mal wieder drüber schaut.
Erstlingswerk in allerbestem Spaghetti-Code:


Quellcode:
KBD_READ:
        SETB    KB_CLK                
        MOV     R0,#08
        PUSH    DPH
        PUSH    DPL
        MOV     DPTR,#0
KBR0:
                JB      RI,SIO_EMPFANGIN
                JB      KOUT,RESET_TASTE
        INC     DPTR
        MOV     A,DPH
        CLR     C
                SUBB    A,#15H                  ;Timeout bis 1500H
        JZ      TIMEOUT
        JB      KB_DATA,KBR0
        JB      KB_CLK,KBR0
KBR1:
        JNB     KB_CLK,KBR1            
KBR2:
        JB      KB_CLK,KBR2
        MOV     C,KB_DATA               ;8 Datenbits bernehmen
        RRC     A
KBR3:
        JNB     KB_CLK,KBR3
        DJNZ    R0,KBR2
KBR4:          
        JB      KB_CLK,KBR4
KBR5:          
        JNB     KB_CLK,KBR5
KBR6:          
        JB      KB_CLK,KBR6
KBR7:          
        JNB     KB_CLK,KBR7
        CLR     KB_CLK
        POP     DPL
        POP     DPH
        RET

TIMEOUT:
        CLR     A
        ACALL   SIO_SEND

D.h., wenn von der Tastatur 1500 Schleifendurchläufe lang nichts kommt,
wird 00h gesendet.
Wie lang das jetzt auch immer ist.
Ausprobieren kann ich da z.Z. leider nichts.

Eigentlich sollte das ja kein Problem sein, da die SIO einen 3 Bytes Empfangspuffer hat.
--
MFG
Enrico

Dieser Beitrag wurde am 31.05.2010 um 19:50 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
31.05.2010, 20:18 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Eigentlich sollte das ja kein Problem sein, da die SIO einen 3 Bytes Empfangspuffer hat.

Nein, das hat damit nichts zu tun. Die SIO ist schnell genug. Es gibt aber in den IX-Arbeitszellen von CAOS nur ein einziges Byte, in dem der aktuelle Tastencode drinsteht. Dieses Byte wird von Digger periodisch abgefragt. Wenn nun ein Tastencode kurz nach Beginn einer Periode reinkommt, und vor Ende der Periode durch die folgende 0 schon wieder gelöscht wird, dann sieht Digger nichts davon.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
31.05.2010, 20:37 Uhr
danielk

Avatar von danielk


Zitat:
ralfwu schrieb
Nur noch mal zum Verständnis. Bei dem PS/2 Tastaturinterface liegt also der letzte Tastencode immer an, wird dann mit einer 0 gelöscht und anschliesend neu beschrieben, wieder bis zur nächsten 0.

Nein, nicht ganz. Ich gebe mal wieder, wie es funktionieren sollte (ob das PS/2-Interface das alles korrekt macht, kann ich nicht sagen):

1. eine Taste wird heruntergedrückt
2. der ASCII-Code für die Taste wird zum KC gesendet
3. Pause bis zum Beginn des Auto-Repeat
4. ASCII-Code der Taste wird erneut gesendet
5. kurze Pause (Repeat-Intervall) und dann Sprung zurück zu 4., solange die Taste gedrückt bleibt
6. Taste wird losgelassen: Tastaturinterface sendet NUL zum KC

Wenn die Taste während Punkt 3 wieder losgelassen wird, dann entfallen die Schritte 4 und 5 und es wird sofort Code 0 gesendet. Und bei den meisten Spielen ist der Auto-Repeat irrelevant, da die Tastatur dort meist ohne Quittierung abgefragt wird. Der Tastencode liegt also bis zur Löschung durch die abschließende 0 in der IX-Arbeitszelle.

Zitat:
Der Impuls dieser 0 ist aber für die Tastaturabfrage im Spiel zu kurz und wird dadurch mal erkannt und mal nicht.

Genauer gesagt, die Zeitspanne zwischen dem Eintreffen des Tastencodes und dem Eintreffen der abschließenden 0.

Zitat:
Nur da müßte ja auf jeden Fall was zu machen sein. Ist ja dann ein reines Softwareproblem!

Das sehe ich auch so. Allerdings ist das ganze bis jetzt erst mal nur ein Schuss ins Blaue von mir. Es könnte immer noch etwas völlig anderes die Ursache sein. Ich halte es aber für wahrscheinlich, dass das das Problem ist.

Dieser Beitrag wurde am 31.05.2010 um 20:47 Uhr von danielk editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
31.05.2010, 20:40 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
D.h., wenn von der Tastatur 1500 Schleifendurchläufe lang nichts kommt,
wird 00h gesendet.
Wie lang das jetzt auch immer ist.
Ausprobieren kann ich da z.Z. leider nichts.

Ist das der ganze Quellcode? Und ist das Erreichen des Timeouts die einzige Situation, in der die 0 gesendet wird? Ich würde erwarten, dass der Timeout nur ein Notbehelf ist, falls von der PC-Tastatur kein Release-Code kommt.

Könntest Du vielleicht den gesamten Code irgendwo veröffentlichen? Und was war das nochmal genau für ein Controller? Ich hatte bisher noch nie was mit Atmel gemacht, da muss ich mich erst mal in die Assembler-Syntax einfitzeln.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
31.05.2010, 21:29 Uhr
Enrico
Default Group and Edit


Nein, natürlich nicht.
Ja, die Suchfunktionin bringt nix anderes.
Keine Ahnung, warum ich das mal so gemacht hatte, ist ja schon so lange her.
Aber wohin? Fürs Forum ist esetwas lang. Mail?
AT89C2051. Also ein 8051.
Ist ja Atmel
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
31.05.2010, 21:52 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Ja, die Suchfunktion bringt nix anderes.

Wenn dem so ist, dann könnte genau das das Problem sein. Es hängt aber von der Dauer der 1500 Zyklen ab. Wenn das kürzer sein sollte als ein üblicher Tastendruck, dann würde es das beobachtete Phänomen erklären.

Eigentlich müsste sich das am Verhalten von Digger feststellen lassen. Wenn man eine Taste drückt und dann gedrückt hält, läuft die Spielfigur dann sofort weiter oder hält sie nach dem ersten (oder verschluckten) Schritt erst kurz inne?
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
31.05.2010, 23:38 Uhr
Enrico
Default Group and Edit


Ei jei, jei, Du hast Fragen.

Edit:
So, beim drücken macht das Mächen erst einen Schritt, dann eine ganz kurze Pause, und läuft dann durch.
Und das immer genau so.
--
MFG
Enrico

Dieser Beitrag wurde am 31.05.2010 um 23:42 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
31.05.2010, 23:44 Uhr
Enrico
Default Group and Edit


Da fällt mir noch ein, dass diese K7672 unter COAS auch problem arbeitet.
Alternativ hatte ich mal einen PC per Hyperterm angeschlossen.
Experimentell lässt sich raus finden, wenn die Cursurtasten mit CTRL + irngendwas richtig arbeiten.
Auch das klappt unter CAOS richtig, beim Speil läuft das Männchen durch.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
31.05.2010, 23:50 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
So, beim drücken macht das Mächen erst einen Schritt, dann eine ganz kurze Pause, und läuft dann durch. Und das immer genau so.

Na das bestätigt meine Hypothese ja voll und ganz! Vielen Dank fürs Testen.

Zitat:
Da fällt mir noch ein, dass diese K7672 unter COAS auch problem arbeitet.
Alternativ hatte ich mal einen PC per Hyperterm angeschlossen. [...]
Auch das klappt unter CAOS richtig, beim Speil läuft das Männchen durch.

Ja, genau. Das liegt daran, dass normale Anwendungsprogramme die Tastatur mit Quittierung abfragen. Der gelesene Code wird als ungültig markiert, und dann ist auch erst mal Schluss bis der nächste hereinkommt.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
01.06.2010, 01:04 Uhr
kaiOr

Avatar von kaiOr

Wenn man mal nach http://www.iee.et.tu-dresden.de/~kc-club/02/KCN97-04/KCN97-04-05.HTML die Tastaturübertragungsrate runter in Richtung 2Hz verstellt kommt es auch zu Aussetzern mitten während der Autorepeat läuft, also ohne das man den Finger von der Taste nimmt. Damit ist die Zählschleife wohl eindeutig zu kurz.
Dieser Beitrag wurde am 01.06.2010 um 01:05 Uhr von kaiOr editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
01.06.2010, 12:34 Uhr
danielk

Avatar von danielk


Zitat:
kaiOr schrieb
Damit ist die Zählschleife wohl eindeutig zu kurz.

Und die Zählschleife ist anscheinend das einzige Kriterium. Der Release-Code von der PC-Tastatur scheint gar nicht ausgewertet zu werden.

Dieser Beitrag wurde am 01.06.2010 um 12:39 Uhr von danielk editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
01.06.2010, 18:59 Uhr
Enrico
Default Group and Edit


Kann gut sein, dass ich das damals eingebaut hatte, weil das Mänchen bei Spielen durchgerannt sit, aber unter CAOS alles ok war.
Und da ja alles prima funktionierte, ist es dann bei dem "Provisorium" geblieben.
Wie sowas immer so ist.
Davon mal abgesehe muss man das loslassen einer Taste ja nicht auswerten, da die ja Autorepeat machen.
Wenn nichts von der Tastatur kommt, ist die Taste ja losgelassen.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
01.06.2010, 20:14 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Davon mal abgesehe muss man das loslassen einer Taste ja nicht auswerten, da die ja Autorepeat machen.

Man muss nicht, aber es würde das Verhalten unabhängig von einer willkürlich gewählten Zeitkonstante machen.

Zitat:
Wenn nichts von der Tastatur kommt, ist die Taste ja losgelassen.

Da müsstest Du aber erst mal den Beginn des Auto-Repeat abwarten, und das dürfte in den meisten Fällen deutlich zu lang sein.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
01.06.2010, 21:49 Uhr
Enrico
Default Group and Edit


Hhm, nun ja kann schon sein.
Sollte doch aber egal sein. Länger könnte das Problem ev. beheben.
Ansonsten ist das mit Autorepeat doch egal. Die Tastatur schickt dann eben erst nach der eingefügten 0 wieder einZeichen, welches zu ASCIE gewandelt und auch wieder gesendet wird.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
01.06.2010, 21:57 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Länger könnte das Problem ev. beheben.

Es sollte etwas länger sein als jetzt, da stimme ich zu.

Zitat:
Ansonsten ist das mit Autorepeat doch egal. Die Tastatur schickt dann eben erst nach der eingefügten 0 wieder einZeichen, welches zu ASCIE gewandelt und auch wieder gesendet wird.

Aber dann bleibt die Spielfigur nach der 0 erst mal stehen, bis der Auto-Repeat einsetzt und der Code erneut gesendet wird.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
01.06.2010, 22:01 Uhr
Enrico
Default Group and Edit


Aha, überredet.

Da könnte es helfen die Tastaturrate hoch zusetzen (?)
--
MFG
Enrico

Dieser Beitrag wurde am 01.06.2010 um 22:02 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
01.06.2010, 22:02 Uhr
maleuma



Also ich verwende eine K7673 (von der P8000Compact). Da habe ich den Effekt noch nicht beobachtet.
Die beiden von mir geschriebenen Programme für die K7672 und K7673 erzeugen den Tastencode bei gedrückter Taste und senden eine 0 bei losgelassener Taste. Damit wird der Tastencode in (IX+13) wieder gelöscht. Ab CAOS 4.3 wird bei Empfang des Codes 0 die Aktivierung in (IX+8) nicht ausgeführt. Das ist kein Problem, da der Code 00h im CAOS ohnehin keine Funktion hat. Das senden von 0 ermöglicht aber somit, dass ein Code in (IX+13) auch wieder gelöscht wird.

Autorepeat kann damit von der am V.24 angeschlossenen Tastatur gesteuert werden. Die Tastatur muss dazu nur in geeigneten Abständen immer wieder den gleichen Tastencode senden (ohne eine 0 zwischendurch so lange die Taste gedrückt bleibt). Die Sendeabstände sollten dabei denen der Originaltastatur angepasst sein.
Oder Autorepeat=AUS: Beim Drücken einer Taste den Tastencode senden. Beim Loslassen der Taste: 0 senden. Sonst nichts.

Die Funktionalität der PS/2-Tastatur kann ich nicht testen - habe ich nicht.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
02.06.2010, 00:19 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Da könnte es helfen die Tastaturrate hoch zusetzen (?)

Als vorübergehende Behelfsmaßnahme für Digger könnte das geeignet sein. Die Verzögerung bis zum Beginn des Auto-Repeats müsste man aber auch auf fast 0 setzen, was die Bedienung außerhalb des Spiels deutlich erschwert.

Zitat:
maleuma schrieb
Die beiden von mir geschriebenen Programme für die K7672 und K7673 erzeugen den Tastencode bei gedrückter Taste und senden eine 0 bei losgelassener Taste.

Wunderbar, dann wir wissen wir ja sogar schon, dass es dann funktioniert.

Dieser Beitrag wurde am 02.06.2010 um 00:21 Uhr von danielk editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
02.06.2010, 17:44 Uhr
Enrico
Default Group and Edit


Mal gucken, ob sich da noch was hinbekommen lässt.
Zeit ist z.Z. Mangelware, ein Programmiergerät habe ich auch nicht mehr da, und wo der Emulator von damals hingekommen ist, muss ich erst noch rausfinden.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
02.06.2010, 19:01 Uhr
danielk

Avatar von danielk

Mein Willem müsste das doch können, oder? Brauche ich da einen Adapter? Ich habe PCB4v6.1. Hm, und ein PS/2-Tastaturinterface bräuchte ich natürlich auch.
Dieser Beitrag wurde am 02.06.2010 um 19:04 Uhr von danielk editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
02.06.2010, 19:11 Uhr
Enrico
Default Group and Edit


Der Willem kanns, so er funktioniert, mit Adapter.
Hab noch ne Platine da.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
02.06.2010, 21:28 Uhr
ralfwu



Dank Eures unermüdlichen Einsatzes wird es ja nun schon eine baldige Lösung für das Problem geben. Damit habe ich dann aber ein Neues! Ich kann den Chip nicht programmieren! Da wird sich aber bestimmt eine Lösung finden. Was mich bei der Geschichte aber immer noch wundert, warum ist das Problem nicht schon viel früher aufgetaucht? Das PS/2 Interface von Enrico scheint docht recht verbreitet?

MFG
Ralf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
037
02.06.2010, 23:25 Uhr
Enrico
Default Group and Edit


Ich kann den Controller z.Z. auch nicht mehr programmieren.
Für was neues muss ich erstmal wieder Geld zusammen haben. Das kann noch etwas dauern.

Warum, weis ich auch nicht so richtig. Das Interface ist ja nicht mehr wirklich neu. 97 rum hatte ich damit mal angefangen.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
038
02.06.2010, 23:48 Uhr
kaiOr

Avatar von kaiOr


Zitat:
danielk schrieb

Zitat:
Enrico schrieb
Da könnte es helfen die Tastaturrate hoch zusetzen (?)

Als vorübergehende Behelfsmaßnahme für Digger könnte das geeignet sein. Die Verzögerung bis zum Beginn des Auto-Repeats müsste man aber auch auf fast 0 setzen, was die Bedienung außerhalb des Spiels deutlich erschwert.

Wenn ich das richtig sehe werden die Settings an die PS/2 Tastatur durchgereicht, welche mit dem vom Interface gesetzten Default-Wert bereits an der Grenze des machbaren arbeitet.

In 4 Tagen könnte ich auch einen Patchversuch wagen, weil dann bin ich 300km näher an Tastatur-Interface und Eprommer.

Apropo: Die D005 (nix V.24) macht bei DIGGER auch Aussetzer, allerdings nicht so auffällig viele. Probleme mit den Tastenkontakten kann ich ausschließen, denn unter CAOS läuft's wie geschmiert.

MfG

Dieser Beitrag wurde am 02.06.2010 um 23:52 Uhr von kaiOr editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
039
02.06.2010, 23:55 Uhr
Enrico
Default Group and Edit



Zitat:
kaiOr schrieb
Wenn ich das richtig sehe werden die Settings an die PS/2 Tastatur durchgereicht, welche mit dem vom Interface gesetzten Default-Wert bereits an der Grenze des machbaren arbeitet.

Keine Ahnung, was Du jetzt meinst.


Zitat:
Apropo: Die D005 (nix V.24) macht bei DIGGER auch Aussetzer, allerdings nicht so auffällig viele. Probleme mit den Tastenkontakten kann ich ausschließen, denn unter CAOS läuft's wie geschmiert.

MfG

Das beruhigt dann doch wieder ein wenig.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
040
03.06.2010, 00:15 Uhr
danielk

Avatar von danielk


Zitat:
Enrico schrieb
Keine Ahnung, was Du jetzt meinst.

Ich verstehe es auch nicht ganz. Ich vermute mal, kaiOr meint dass das voreingestellte Repeat-Intervall bereits an der Grenze dessen liegt, was die PC-Tastatur so als Parameter erlaubt.

Zitat:
Das beruhigt dann doch wieder ein wenig.

Also mir ist es mit meiner D005 noch nicht aufgefallen, aber ich spiele auch nicht so häufig Digger. Es wäre denkbar, dass die Reaktionszeit von Digger womöglich sogar länger ist als der CTC-Timeout der Tastatur (Vorteiler 256, Zeitkonstante 143, wer will mag's ausrechnen).
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
041
03.06.2010, 00:21 Uhr
kaiOr

Avatar von kaiOr


Zitat:
Enrico schrieb
Keine Ahnung, was Du jetzt meinst.

Die auf der KC-Club-Seite beschriebenen Einstelloptionen vom Interface entsprechen doch sehr genau denen im PS/2-Tastaturprotokoll verankerten Möglichkeiten eines jeden Tastatur-ICs. Ist freilich nur Spekulation, aber wenn die Tastatur selbst variable Wiederholrate, Autorepeat etc. liefert, hast du davon sicher Gebrauch gemacht und das Rad im Atmel nicht nochmal neu erfunden.

Jedenfalls ist das Default von 30Hz und 150ms Repeatverzögerung wohl bereits das schnellstmögliche.

Dieser Beitrag wurde am 03.06.2010 um 00:57 Uhr von kaiOr editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
042
03.06.2010, 01:05 Uhr
danielk

Avatar von danielk


Zitat:
kaiOr schrieb
Jedenfalls ist das Default von 30Hz und 150ms Repeatverzögerung wohl bereits das schnellstmögliche.

Das ist ja krass schnell für die Standardeinstellung. Ich finde, die Voreinstellungen sollten der der eingebauten Tastatur entsprechen. Für den Joystick haben wir das in CAOS 4.5 auch so gehandhabt.

Dieser Beitrag wurde am 03.06.2010 um 01:06 Uhr von danielk editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
043
03.06.2010, 01:08 Uhr
Enrico
Default Group and Edit


Ach so, das meinst Du.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
044
04.06.2010, 20:05 Uhr
Enrico
Default Group and Edit


Ich hab doch tatsächlich den EPROM-Emulator und den 2051-Emulator wieder gefunden. Es funktioniert auch noch alles. Das Time-out habe ich mal aufs Maximum hochgesetzt, damit macht das Mänchen bei einem Tastendruck genau 8 Schritte.
Damit lässt sich dann etwas experimentieren.
--
MFG
Enrico

Dieser Beitrag wurde am 04.06.2010 um 20:05 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
045
04.06.2010, 23:07 Uhr
Enrico
Default Group and Edit


Die Werte habe ich nun etwas verändert, damit geht es schon mal ein Stück weit besser. Das Männchen läuft nun flüssig durch. Was aber noch stört ist die kurze Pause nach den 1. Schritt. Da setzt das Autorepeat ein.
Um das auch noch wegzubekommen, bleibt also nur übrig auch das Loslassen der Tasten auszuwerten.

Weis jetzt noch nicht, ob ich das auch noch auf die Schnelle hinbekomme.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
046
06.06.2010, 23:48 Uhr
Enrico
Default Group and Edit


Dieses WE hatte ich im Prinzip keine Zeit da so richtig was dran zu machen.
Durch Abfrage des Tasten-loslassens wird es zwar auch etwas besser, aber auch nicht so richtig stabil.
Wie unter 045 geschrieben scheint es mit Ändern des Verzögerungswertes besser zu klappen.
Das wird wohl so schnell nichts.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
047
07.06.2010, 00:27 Uhr
ambrosius



Mir fällt gerade ein, das ich auch nach Erwerb des Tastaturinterfaces am Anfang Schwierigkeiten mit (normalen) Eingaben hatte und die Normaltastatur teilweise besser funktionierte. Wie sich herausstellte, war ein PIN des verbauten Controllers (ich kann jetzt nicht mehr auf Anhieb sagen welches) nicht beschaltet, wurde im Controller aber programmmäßig abgefragt. Da es 'in der Luft hing', hatte es nach einer Weile den Zustand gewechselt und hatte dann negative Auswirkungen auf das zum KC gesendete Signal/Byte. Eine Beschaltung mit einem Widerstand nach Masse hat das Problem behoben.

mfg
Holger

PS: ich öffne bei Bedarf einmal das Gehäuse und schaue nach, welches Pin das war
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
048
07.06.2010, 23:04 Uhr
Gast: virgo660824



Hallo Holger,

also wenn es nicht zu viele Umstände macht, wäre das öffnen des Gehäuses und nachschauen nicht schlecht.
Bei mir treten genau die gleichen Probleme auf und daher habe ich das Interface erst einmal wieder weggelegt und benutze die Originaltastatur.

Danke und viele Grüße,
René
Seitenanfang Seitenende
(Gast) Zitatantwort || Editieren || Löschen
049
07.06.2010, 23:41 Uhr
Enrico
Default Group and Edit


Wie das zu beschalten ist steht aber im PLan bzw Doku auf der KC-HP.
Das hat aber nichts mit dem Problem hier zu tun.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek