Hello, Guest the thread was viewed13k times and contains 93 replies

last post from cbmhardware at the

CBM PS/2 Tatatur Interface

  • leider habe ich keinen cbm rechner mehr.


    was mich noch stört ist die unterschiedliche verdrahtung
    für die zusätzlich gedrückten tasten. wie shift usw.


    ich habe auch keinen c64 um zu untersuchen
    wie es mit dem tasten scannen bei ihm funktioniert.


    wiso scannt er aus beiden richtungen? wer hatt das untersucht?
    wer hatt schon erfahrung?. bitte melden.


    die joysticks liegen an beiden ports und werden direkt über gnd geschaltet.


    vor 30 jahren hatte ich keinen der eine extra tastatur
    an den c64 anschliessen wollte. alle wollten es nur für die cbm-rechner.

  • > ich würde für eine CBM lösung (pet, 2xxx, 3xxx, 4xxx, 5xx, 6xx, 7xx und 8xxx)
    > keinen crosspoint switch (CD22M3493 - SGS M3494 - MT8816) einsetzen.


    Braucht es auch nicht beim CBM. Aber für den C64 ist und bleibt es die beste Lösung zur Zeit.



    > normale ICs (4066 + 4051 + 4067 oder besser 2x4051) kosten zusammen nur ca. 1,50€.
    > und die sind immer lieferbar, auch in X jahren.


    Mag sein aber Kosten entstehen nicht nur durch Chip Preise. Umständliche Verdrahtung und aufwendigere Platine sind auch ein Argument.


    Am CBM reicht wahrscheinlich ein 20MHz Atmega und sonst geht es ganz einfach mit einem CPLD + Controller.


    Das Matrix IC hat halt den Vorteil, dass diese Lösung sowohl für C64 als auch für jeden anderen Computer mit Matrix Tastatur geht. Und die Chips sind ja entgegen aller gerüchte bisher immer beschaffbar gewesen ... ;)

  • wieso gibts dann keinen ordentlichen adapter der eine 128 tastatur mit nummernblock etc auf den c64 umsetzt?
    sowas wäre genial für mein aktuelles projekt :D


    Geht denn die Tastatur des 128er nicht in einem C64? Hat denn der C128 einen geänderten C64 Kernel? Ich dachte das wäre kompatibel.

  • Geht denn die Tastatur des 128er nicht in einem C64?


    Wenn man sich was bastelt um die unterschiedlichen Stecker anzupassen geht die C128-Tastatur grundsätzlich am C64.


    Quote

    Hat denn der C128 einen geänderten C64 Kernel? Ich dachte das wäre kompatibel.


    Der C128 verwendet im C64-Modus den gleichen Revision 3-Kernal wie ein C64, die zusätzlichen Tasten auf der Tastatur werden dann einfach nicht abgefragt. Das dafür notwendige Register ist auch im C64-Modus erreichbar.

  • Diddl... der 128er hat die vollständige 64er-Tastatur, und noch ein paar Extra-Tasten; IIRC ist es eine 8x12-Matrix über zusätzliche Portleitungen im VIC! Das C64-Kernal kennt die natürlich nciht, also sind sie im C64-Modus funktionslos. Das kann man aber mit einem kleinen Zusatzprogramm nachrüsten- gabs mal in der 64er oder in einem 128er-Sonderheft. Übrigens ist die erweiterte 128er-Tastatur noch ein Grund, warum das Matrix-IC nicht ideal ist...


    helmut, Jim Brain hatte mal angefangen, ein Interface nur mit uC zu entwickeln. Kannst du im Archiv der cbm-hackers Mailingliste nachlesen. Warum manche Spiele die Tastatur 'verkehrt rum' abfragen? Weil sie es können... und vielleicht, weil der eine Port für die Joystickabfrage schon auf Eingang steht. Frag mich nicht, iss halt so.

  • ja die 128er tastatur geht ansich am c64, aber eben die zusätzlichen tasten werden nicht genutzt


    das ist ja eben mein problem :D


    hatte sonst vor, zb die nummerblock tasten an den leitungen zu kappen und mit den normalen nummerntasten zu verbinden, sodaß es egal ist ob ich die 1 oben in der reihe drücke oder die 1 am nummernblock.
    mit anderen tasten (wo shift verwendet wird, zb cursor) geht das aber leider.
    eine lösung über einen adapter wäre absolut genial.
    nummerblock ist schon was feines :D

  • Mag sein aber Kosten entstehen nicht nur durch Chip Preise. Umständliche Verdrahtung und aufwendigere Platine sind auch ein Argument.


    ja, aber das sind nur einmalige kosten, bei der herstellung.
    die man einfach kalkulieren kann.


    möchte ich ein problem lösen, würde ich eine vorhandene schaltung nachbauen.
    solange ich die bauteile einfach und günstig bekomme.
    der zeitaufwand für die verdrahtung steht nicht im verhältnis
    zu einer neuen entwicklung. da löte ich eine stunde länger und es ist gelöst.

  • Am CBM reicht wahrscheinlich ein 20MHz Atmega und sonst geht es ganz einfach mit einem CPLD + Controller.

    mit dem avr alleine glaube ich auch, das es gehen würde.
    aber dieser programmieraufwand. wer soll es machen?
    wann ist es fertig? welche unerwarteten timing probleme entstehen?
    welch ein programmier aufwand um es an andere
    tastaturen und (spiel) programme anzupassen.


    geht es wirklich GANZ EINFACH mit cpld + controler?
    da habe ich keine erfahrung.
    welche kosten? entwichlungsaufwand? was wird benötigt? wie programmieren?


    ich würde eine einfache günstige lösung immer vorziehen.
    wo ich weis das man es in kurzer zeit lösen, herstellen
    und günstig anbieten kann.


    oder wie hier: das es jeder nachbauen und einfach anpassen kann.


    meine lösung, könnte fast jeder mit bascom programmieren.
    wenigstens an andere tastaturen anpassen.
    ohne große programmierkentnisse und timingprobleme zu lösen.

  • meine lösung, könnte fast jeder mit bascom programmieren.


    Bascom hätte wirklich den Vorteil, dass es sehr viele anpassen können. Als Hilfe für den Atmega könnte man auch einfach ein Eprom verwenden, es ist eh schon angesprochen worden in diesem Faden.



    Eprom Lösung:


    Ein 4K Baustein hat 12 Adress Leitungen.


    4 Leitungen gehen beim PET/CBM zum BCD Decoder. Die müssten auf 4 Adressleitungen (A0 bis A3). Es bleiben daher 8 Adressleitungen für den Atmega über. Damit könnte man 256 Tasten simulieren oder eben 128 + eine Extrataste oder eben 64 und zwei Extratasten.


    Bei größeren Eproms wären noch ganz andere Kombinationen denkbar: zb. dann zwei beliebige Tasten ...


    Die 8 Datenausgänge des Eprom gehen zum Tastaturstecker.





    for(;;) hat noch eine dual ported Lösung vorgeschlagen. Auch nicht schlecht:


    Dual ported RAM:


    Adressleitungen gehen auf die Ausgänge des PET. Datenbus geht auf die Eingänge des PET.


    Nun muss der AVR nur noch bei Tastatur Änderungen (key down, key up) entsprechende Werte ins RAM schreiben ...

  • helmut, Jim Brain hatte mal angefangen, ein Interface nur mit uC zu entwickeln. Kannst du im Archiv der cbm-hackers Mailingliste nachlesen. Warum manche Spiele die Tastatur 'verkehrt rum' abfragen? Weil sie es können... und vielleicht, weil der eine Port für die Joystickabfrage schon auf Eingang steht. Frag mich nicht, iss halt so.

    hallo mc71,
    danke.
    leider nichts gefunden. welche cbm-hackers mailingliste? bitte mir einen link senden.


    wegen der joystickabfrage, klar würde ich auch so programmieren.
    dann funktionieren ein paar tasten nicht mehr.
    weil das joystick diese blockiert. es legt die port-pins direkt auf masse. dadurch ist scannen nicht möglich.
    (besser ist es bei dem plus4 und c16. da wird keine masse benutz. joystick wird auch gescannt.)


    suche einen schaltplan von der c64 und c128 tastatur-matrix.


    letzte nacht hatte ich eine idee für eine einfache lösung für die cbm rechner. ohne teueren crosspoint switch.
    nur mit einem avr, 4067 und octal buffer oder flip-flop.
    ohne der extra verdrahtung für shift usw.
    trotzdem der möglichkeit mehrere (beliebige) tasten gleichzeitig zu drücken.


    nun lässt mich das mit dem c64 nicht los.


    grübel, grübel ist doch ohne rechner übel. mein kopf.

  • Eprom Lösung:


    hallo diddl,


    deine eprom lösung, habe ich nicht ganz verstanden.
    auf jeden fall der nachteil das man 4 leitungen (BCD Decoder), auf dem cbm board, anlöten muss.
    und wieder wegen den kosten und der umständlichen programmierung eines eproms.
    ich will ein lösung die jeder nachbauen kann, mit einfachen bauteilen die man überal bekommt
    und ohne einem speziellem programmer.


    ich habe bereits am anfang geschrieben,
    das ich bereits 1978 oder 1979 eine externe tastatur an den PET angeschlossen habe.
    (ausgestellt auf der orgatechnik in köln mit umlauten auf dem monitor,
    drucker-interface, speichererweiterung, adress + text + fakturier programm usw.)
    die war auch mit proms aufgebaut. (eproms zu teuer)


    (mein erstes 1k eprom ca. 800 DM stück!
    programmiert auf einem programmer (firma, freund) der 6000 DM kostete und mir dieses auch noch zerstörte.
    daraufhin baute ich mir einen programmer für den pet selbst, den später vero = vobis nachbaute.)

  • ich will ein lösung die jeder nachbauen kann, mit einfachen bauteilen die man überal bekommt
    und ohne einem speziellem programmer.


    Ohne speziellem Programmer geht es nie, den Atmega muss man ja schliesslich immer programmieren. Außerdem zähle ich Eprom nicht zu den "speziellen" Programmer, fast jeder 8-Bit Fan hat nen Eprom Programmer.



    Im Zug habe ich nochmals nachgedacht. Für mich gibt es nur zwei Lösungen:

    • Die logische Lösung wäre Matrix IC + Atmega
    • Die billige Lösung ein Attiny (als "Matrix IC") + ein Atmega


    Lösung zwei scheint mir sehr verlockend. Ein Attiny 2313 kriegt man um 75 Cent. Der kann den Matrix IC sehr gut ersetzen wenn NUR das tut. Der Atmega kann sich um USB oder PS2 Keyboard kümmern und auch noch um Joysticks, Maus etc.

  • muss man doch wohl eine komplizierte (timing) software lösung für den avr programmieren.
    da würde ich um keine großen timing probleme zu bekommen zwei avr nehmen.
    einen für das scannen und betätigen der cbm matrix und den anderen für die ps/2 und IR schnittstelle.
    diese lösung muss natürlich an jeden rechner sehr kompliziert angepasst werden.


    hallo diddl,


    das mit ZWEI avr zu lösen, habe ich unter #37 auch erwähnt.
    ist aber nicht so einfach unter bascom zu programmieren.
    und seit letzte nacht für alle cbm (2xxx bis 8xxx) gelöst.
    (hoffentlich habe ich nichts übersehen)


    es ging doch hier um eine cbm lösung?
    jackdaniels wollte es für einen cbm 8032 oder 8296 (beitrag #1)
    die lösung von blogspot.com mit einen crosspoint switch (matrix ic) fand ich nicht so günstig.
    wollte eine universelle preiswerte lösung für jedermann.

  • nun würde ich es gerne auch für den c64, c128, c16, plus4 usw. lösen.


    oder hatt es schon einer geschafft?
    und ich verschwende nur meine zeit.


    gibt es keine lösungen im internet?
    hatt es keiner in den letzten jahren gelöst?


    ich habe probleme mit den joysticks, da diese, die ports, jederzeit gegen masse schalten.
    und das die programmierer die tastatur selbst in beiden richtungen
    abfragen können unabhängig vom c64 kernal.

  • das mit ZWEI avr zu lösen, habe ich unter #37 auch erwähnt.
    ist aber nicht so einfach unter bascom zu programmieren.
    und seit letzte nacht für alle cbm (2xxx bis 8xxx) gelöst.
    (hoffentlich habe ich nichts übersehen)


    Bascom ist dann was für den Atmega teil.


    Der Attiny der die Matrix realisiert, der kann immer gleich sein. Bei jedem CBM und beim PET. Immer derselbe Code, ganz simpel in C gecoded.