Hello, Guest the thread was called3.7k times and contains 40 replays

last post from Wiesel at the

PS2-Tastatur am C64

  • Mahlzeit !


    Ich lese hier im Forum seit kurzem mit und habe auch schon
    viele interessante Sachen gefunden, die ich bei meinem in Bälde geplanten Umbau
    meines aus dem Keller geborgenen C64 berücksichtigen möchte.


    Nun aber zu meinem Anliegen:
    Es ist zwar bestimmt der 20. Beitrag zu dem Thema, aber ich
    riskiere hier einfach mal noch so einen zu erstellen.


    In den Beiträgen zum Thema finde ich immer wieder die
    Verwendung von Crosspoint-Schaltern zum Ansteuern.
    Da ich nun in diesem Forum viele Hard- und Softwarefreaks
    erspäht habe, könnet ihr mich vielleicht mal aufklären.


    Im Anhang erst mal die Schaltung wie ich sie mir vorgestellt
    hatte. Euch obliegt jetzt die glorreiche Aufgabe mir zu sagen, ob das so
    funktionieren würde oder ehr nicht ;-)


    Erläuterung zur Schaltung:
    Port A der CIA geht direkt an den AVR und jeweils die
    geraden und ungeraden Bits an 2 NOR-Gatter.
    Laut C64-Wiki wird der Port A als Ausgang geschaltet und
    durch diesen wird eine 0 geschoben.
    Da dies nun gleichmäßig passiert und die 2 NOR-Gatter dran
    sind, wird bei jedem Schiebevorgang der 0 im AVR ein IRQ ausgelöst....
    Bei Bit 0,2,4,6 Int0
    Bei Bit 1,3,5,7 Int1
    Somit müßte sich doch erkennen lassen, an welchem
    Ausgangspin der CIA die 0 gerade anliegt.


    In den IRQ-Routinen des AVR wird geprüft welcher Eingang nun
    konkret auf Masse liegt. Die Eingänge Int0 und Int1 sind eigentlich nur zum
    Hardwaretechnischen detektieren des Signalwechsels.
    Dann wird im IRQ der Ausgangsport entsprechend meiner
    gerückten Taste gesetzt.
    Der AVR muß nur 8 Register verwalten die er dann eben
    nacheinander an seinen Ausgang und den Eingang der CIA schiebt.
    Da die IRQ Routine sich nur auf eine kleine Abfrage der 4 in
    Frage kommenden Eingänge und das schalten des Ausgangsports beschränkt dürfte
    es doch mit meinem Hauptprogramm keine Probleme geben.....


    In der Hauptschleife wird die PC-Tastatur via Polling
    abgefragt und die 8 in frage kommenden Ausgangsregister werden je nach
    Tastendruck geändert.
    Da die PS2 Tastatur ja seeehr langsam mit dem Takt ist,
    sollte ich doch genug Zeit haben und die auftretenden IRQ’s stören nicht.


    So, nun dürft ihr eure Kommentare abgeben ob und wo ich
    einen Denkfehler habe.


    Aber bitte nicht gleich beim ersten Beitrag meinerseits auf
    mich einprügeln !


    Gruß: Marduk

  • Laut C64-Wiki wird der Port A als Ausgang geschaltet und
    durch diesen wird eine 0 geschoben.


    Was machst du bei Software (zB einige Spiele), die Port A als Eingang und B als Ausgang verwenden? Oder die nicht eine 0 durchschieben sondern mit anderen Mustern scannen um die Fehlerkennung von Joystickschaltern als Tasten zu unterdrücken (IIRC macht GEOS das zB so)?

  • Allerdings kann ich ja dann das hier: http://www.neef-online.de/home/c64/keybild.gif



    Als Tastaturtreiber bei langen Anschlußkabel ja auch
    vergessen.


    Korrekt. Es bedarf einer wirklich ausgefeilten Hard/Softwarekombination, wenn man beide Abfrage-Richtungen mit einem PS2-Adapter erschlagen möchte. Ich hatte mal ein solches Konzept durchgeplant, aber leider gibt's ne Menge Möglichkeiten auf C64-Seite, mit denen man einen solchen Adapter doch wieder überlisten kann.


    Zusätzlich gibt es Software, die die Tasten "linke Shift" und "shift lock" getrennt abfragen kann, auch wenn diese physikalisch an den gleichen zwei Leitungen angeschlossen sind. Wenn Du schon das Rad neu erfinden willst (ja, es gibt bereits PS2-Adapter für den C64), dann solltest Du auch solche Sachen mit einbeziehen, sonst wird's mit "Anerkennung aus der Szene" nicht viel.


    Jens

  • Mal ein anderer Ansatz: Warum nicht einfach die CIA Register überwachen? SwinSID schafft das beim SID doch auch sehr gut.

  • Mal ein anderer Ansatz: Warum nicht einfach die CIA Register überwachen? SwinSID schafft das beim SID doch auch sehr gut.


    Das Tolle am C64-Tastaturanschluß ist doch, dass es dort nicht nur die Matrix, sondern auch GND und +5V gibt. Man kann also etwas bauen, was garantiert in jedem C64 mit jeder Board-Version "nur steckbar" funktionieren wird. Wenn Du an die CIA gehst, schließt Du sehr viele 64er aus, bei denen der Chip nicht gesockelt ist. Das Hindernis für den Einbau ist ungleich größer.


    Jens

  • Korrekt. Es bedarf einer wirklich ausgefeilten Hard/Softwarekombination, wenn man beide Abfrage-Richtungen mit einem PS2-Adapter erschlagen möchte. Ich hatte mal ein solches Konzept durchgeplant, aber leider gibt's ne Menge Möglichkeiten auf C64-Seite, mit denen man einen solchen Adapter doch wieder überlisten kann.



    Jens

    Und wie wird deine Hardwarelösung für das Chameleon ? dieses Problem genau in den Griff bekommen ? Hoffe doch das der PC Tastaturadapter auch zu gebrauchen ist...

  • Quote

    Die Emulation sollte schon recht ausgereift sein um damit fertig zu werden.


    bitte glaub doch einfach mal das es leute gibt die definitiv mehr ahnung von dem haben von dem sie reden als du. das ding von jim brain ist ein simpler microcontroller der sehr ähnlich wie das vom OP vorgeschlagene arbeitet. und damit funktionieren "rückwärts" scannende tastaturabfragen NICHT. (gleiches gilt für alle anderen lösungen die rumschwirren, die arbeiten prinzipiell alle gleich).


    Quote

    Und wenn schon das olle Geos mit dem Teil klarkommt ...


    heisst das was? richtig: nix. geos scannt "richtig" rum. das funktioniert natürlich.

  • bitte glaub doch einfach mal das es leute gibt die definitiv mehr ahnung von dem haben von dem sie reden als du. das ding von jim brain ist ein simpler microcontroller der sehr ähnlich wie das vom OP vorgeschlagene arbeitet.


    Nö, der verwendet schon einen 8x12-Analogschalter-Matrix-IC: http://www.jbrain.com/vicug/ga…C_Key_v3_0a_Schematic_001


  • bitte glaub doch einfach mal das es leute gibt die definitiv mehr ahnung von dem haben von dem sie reden als du.


    Lustig, das ausgerechnet sowas von dir kommt.



    das ding von jim brain ist ein simpler microcontroller der sehr ähnlich wie das vom OP vorgeschlagene arbeitet. und damit funktionieren "rückwärts" scannende tastaturabfragen NICHT. (gleiches gilt für alle anderen lösungen die rumschwirren, die arbeiten prinzipiell alle gleich).





    Deine Infos sind veraltet. Bitte: Update !!!

  • leider bin ich zu faul jetzt den link auf die threads zu suchen in denen du mit technischem fachwissen geglänzt hast, aber wenn du dich unbedingt ein wenig blamieren willst sag bescheid =)


    Lass' doch gut sein, das ist nicht gerade konstruktiv. Jim Brain hat offenbar in seiner V3 das gemacht, was schon 1995 durchs Usenet schwirrte.


    Zu der Lösung in Chameleon: Da haben wir den ganzen Prozessorbus und können die CIA-Register (insbesondere die DataDirectionRegisters) überwachen und entsprechend reagieren.


    Die billig-Variante wäre, wenn man an der Tastatur einstellen könnte, welche Richtung im Microcontroller-Code benutzt werden soll. Ne PS2 Tastatur hat ohnehin viel zu viele Tasten für den C64, da kann man auch eine für Config benutzen. Und die Scroll-Lock/Numlock LEDs haben auch keinen richtigen Sinn, die können als Richtungsanzeige benutzt werden - schwupp, schon ist man wieder bei einem einzigen Microcontroller, aber man kann Bruce Lee spielen (oder war das gar nicht das böse game? *kopfkratz*)


    Jens

  • Quote

    Die billig-Variante wäre, wenn man an der Tastatur einstellen könnte, welche Richtung im Microcontroller-Code benutzt werden soll.


    schwierig, es gibt auch scanner die mit verschiedenen mustern abwechselnd in beide richtungen scannen, damit kann man wohl diverse "ghostkey" probleme in den griff kriegen

  • Lass' doch gut sein, das ist nicht gerade konstruktiv. Jim Brain hat offenbar in seiner V3 das gemacht, was schon 1995 durchs Usenet schwirrte.


    Na ja, V3 war der erste Schaltplan den ich da gesehen habe - der MT8812 ist aber auch in den als V1.1 und V2 benannten drin.