Hallo Besucher, der Thread wurde 5,4k mal aufgerufen und enthält 30 Antworten

letzter Beitrag von -trb- am

"Fremd"-Maus am C64 - Kompatibilität, Umbaumöglichkeiten?

  • Das wäre dann die ungewöhnlichste Lösung. Alle gängigen Lösungen setzen mit dem RS232-Interface am User-Port an. Warum die Welt neu erfinden?

    Der User-Port wird verwendet, weil im ROM des C64 die User-Port-Leitungen für die RS232-EMULATION verwendet werden. Da man wohl kaum die RS232-ROM-Routinen für einen Maustreiber verwendet wird, ist es egal, welche Leitungen der CIAs man nimmt. Außerdem wird man sich nicht den User-Port wegen einer Maus blockieren, wenn es zwei Control Ports dafür gibt, die exakt genau gleich gut verwendbar sind.


    [EDIT]


    Nochmals, der C64 hat keinen UART, es gibt exakt keinen Vorteil, wenn man den User-Port verwendet.


    [/EDIT]

  • Der User-Port wird verwendet, weil im ROM des C64 die User-Port-Leitungen für die RS232-EMULATION verwendet werden.

    Die RS-232-Routinen im ROM hat schon in den Achtzigern niemand mehr benutzt, weil zu langsam. Dennoch ist mir noch nie eine Lösung begegnet, die RS-232-Kommunikation über die Joystick-Ports ermöglicht hätte - obwohl man sich ja dann Zusatzhardware hätte sparen können. Deswegen würde ich jetzt erst mal davon ausgehen, dass das nicht möglich ist.


    Vermutest du oder weißt du, dass das geht? Ich weiß nicht genug über RS-232 um das zu beurteilen, aber wenn's schon mal jemand versucht hätte, bilde ich mir ein ich hätte davon hören müssen.

  • Nicht, dass ich mich besonders damit auskennen würde, aber die Fakten sprechen meiner Meinung nach für sich.


    Der C64 hat keinen UART (ACIA), anders als z. B. der Plus/4. Der C64 hat schlicht keinen (echten) RS232-Port! Alles, was es gibt, sind ein paar Leitungen eines parallelen CIA-Ports am User-Port, die bei Bedarf als langsame Soft-RS232-Emulation -verwendet missbraucht werden können. Das bedeutet, die CPU muss die ganze RS232-Kommunikation per "Bitbanging" machen. Jedes einzelne Bit muss von der CPU gesendet oder von dieser abgeholt werden. Deshalb können die ROM-Routinen des C64 ja auch nur 1200 bit/s. Diese emulieren einen UART in Software.


    Die Vorstellung, man könnte auch nur irgendeinen Vorteil gewinnen, wenn man diese bestimmten "RS232"-Leitungen am User-Port für einen "Maustreiber" verwendet ist schlicht und einfach falsch. An welchen CIA-Pins diese RS232-Emulation erfolgt ist völlig schnurz; daher kann eine RS232-Maus - wenn schon, denn schon - auch gleich am Joystick-Port angeschlossen werden. Ein Hardware-Interface braucht man ja sowieso, schon wegen der Pegelwandlung. (+/- 12 V).


    Wenn man also einen neuen Maustreiber schreiben würde, könnte man welche Leitungen auch immer verwenden, auch z. B. die des Tape-Ports, das wäre alles gleich arbeits- unbd rechenzeitintensiv. Dann wird man sich aber nicht den ganzen User-Port ruinieren, wenn es zwei Control-Ports gibt, die genau so gut dafür herhalten können.


    Wer wollte denn z. B. für den Preis einer "RS232-Maus an der RS232-Schnittstelle" die Modemunterstützung aufgeben? Was wäre das für ein Terminalprogramm, das Mausunterstützung, aber keine Modemunterstützung hat, weil der "RS232-Port" durch die Maus belegt ist? Ja, das Argument mit der unechten RS232-Schnittstelle ist für das Modem das gleiche, aber: Es gibt bereits dutzende (hunderte?) fertige Lösungen von Modems am User-Port, die wird man nicht alle küblisieren wollen wegen einer neuen "RS232-Maus-Lösung", die den User-Port belegt.


    Ja, am User-Port steht ein Interrupt zur Verfügung - den hat man, wenn man will, am Control Port auch (LP). Etwas umständlicher, aber machbar.


    Und schließlich: Eine RS232-Maus ist heutzutage seltener als eine C= 1351. Wozu überhaupt den ganzen Zinnober veranstalten?


    Aber ich lasse es jetzt ^^

    Fakt ist, es gibt derzeit keine Unterstützung für RS232-Mäuse durch Software, damit kann die obige PC-Maus derzeit nicht verwendet werden.


    [EDIT]


    Ein Nachsatz noch: Was wohl noch am sinnvollsten wäre, wäre die Modifikation des obigen " [M]OUSE"-Interfaces - der ATmega hat einen UART eingebaut, die Umstellung von PS2 auf RS232 sollte nicht sehr schwierig sein.


    [/EDIT]

  • Ich habe noch vergessen dazu zu sagen, dass ich gern eine GEOS-kompatible-Maus hätte

    Das ist natürlich ein wichtiger Hinweis. Grundsätzlich ist es nämlich kein Problem, eine Amiga/ST-Maus am C64 abzufragen. Unser Spiel "Space Lords" kann z.B. problemlos mit einer Amiga-Maus (an den beiden Controlports und auch über den 4-Spieler-Adapter) gespielt werden (also mit bis zu 4 Amiga-Mäusen). Problem ist halt, dass die Amiga-Maus (an den Controlports) die Keyboard-Abfrage ein wenig sabotiert (was bei einem Game nicht unbedingt problematisch ist). Aber über den 4-Spieler-Adapter angeschlossen sollte die Amiga-Maus keine Probleme mit dem Keyboard erzeugen. Fehlt halt der GEOS-Treiber für die ungewöhnliche Kombination (für die man nicht basteln müsste). ;)

  • Die einzigen Probleme der Nutzung der beiden Control-Ports zur Datenübertragung wären:

    1. Während beim Userport oder Tapeport eine bidirektionale Kommunikation möglich wäre (welche man bei einer Maus nicht braucht), ist ein Daten-Schreiben in Richtung Maus via Controlport (zur Steuerung der verbauten Unterboden-RGB-LED :bgdev) wohl nicht möglich.
    2. Daten-Input-Interpretieren über $DC00/$DC01 leidet immer unter den Limitierungen des Mixes aus Keyboard-Matrix und eingemischten Control-Ports-Pins. Das heißt, man sollte nie erwarten, dass man bedenkenlos Tastatureingaben und Daten-Input über Control-Ports parallel laufen lassen kann. Die Applikation wird wohl immer davon ausgehen, dass entweder die Maus geschoben, oder etwas eingetippt wird.

    Welche Hardware-Erweiterungen neben den Paddles und der Maus haben die vier POT-Pins an den Controlports clever genutzt? War da was mit Musik-Keyboard mit Pitch-Bend-Regler oder so?

  • Unser Spiel "Space Lords" kann z.B. problemlos mit einer Amiga-Maus (an den beiden Controlports und auch über den 4-Spieler-Adapter) gespielt werden (also mit bis zu 4 Amiga-Mäusen).

    Das sind ja ganz wunderbare Neuigkeiten für mich, da bin ich ja froh, dass ich mir schon 4-Player-Adapter gebastelt habe letztes Jahr! Wird bei Gelegenheit getestet (von mir allein...).


    EDIT: Ich hatte im Dezember einen C64 mit im Büro und da haben wir Spacelords gespielt mit 4 Joysticks und viel Spaß gehabt. Für Maus-Bedienung braucht man halt mal wieder Tischplattenplatz... ;)

  • EDIT: Ich hatte im Dezember einen C64 mit im Büro und da haben wir Spacelords gespielt mit 4 Joysticks und viel Spaß gehabt.

    Freut mich, dass es euch Spaß gemacht hat. :)


    Welche Hardware-Erweiterungen neben den Paddles und der Maus haben die vier POT-Pins an den Controlports clever genutzt?

    Der Jocopod (in Kombination mit PC-Lenkrädern und -Analog-Sticks). Und ansonsten natürlich Multibutton-Gamepads/Joysticks, die Analog-Leitungen für die Abfrage weiterer Buttons "missbrauchen". ;)

  • Während beim Userport oder Tapeport eine bidirektionale Kommunikation möglich wäre (welche man bei einer Maus nicht braucht), ist ein Daten-Schreiben in Richtung Maus via Controlport (zur Steuerung der verbauten Unterboden-RGB-LED :bgdev ) wohl nicht möglich.

    Sicher geht das, die Control-Ports hängen am CIA-Port, genau so wie der User-Port. Da ist elektronisch kein Unterschied. Die Control-Ports sind bidirektional.

    Daten-Input-Interpretieren über $DC00/$DC01 leidet immer unter den Limitierungen des Mixes aus Keyboard-Matrix und eingemischten Control-Ports-Pins. Das heißt, man sollte nie erwarten, dass man bedenkenlos Tastatureingaben und Daten-Input über Control-Ports parallel laufen lassen kann. Die Applikation wird wohl immer davon ausgehen, dass entweder die Maus geschoben, oder etwas eingetippt wird.

    Dieses "Problem" gibt ed bei gleichzeitiger Nutzung von Tastatur und Jpystick auch - und ist keines, wenn man es ordentlich programmiert, wie man in vielen Spielen sehen kann.

  • Hallo zusammen,
    ich muss schon sagen – ich bin richtig neidisch etwas neidisch auf die große Menge an Mäusen, die ihr besitzt. Mein Traum wäre es ja eine Commodore-Maus an meinem aktuellen Windows-PC zu verwenden. Das hätte schon was. Ich habe noch folgende Artikel gefunden, die vielleicht weiterhelfen:
    http://www.amigawiki.org/doku.php?id=de:models:a1350
    https://www.technikhiwi.de/com…funktionelle_Computermaus
    Grüße!

  • Mal -nach einigen ergebnislosen Google-Versuchen dazu- eine Grundsatzfrage:


    Gibt es irgendwo eine Liste sämtlicher für den C64 geeigneten Mäuse, unterteilt vielleicht noch in die Kategorien "Joystick-Maus", also rein digitale Emulation eines Joysticks wie 1350, Geos-kompatibel und "sonstige" für die Speziallösungen, die dann aber nur in wenigen Applikationen oder zusammen mit Modulen wie FCxyz funktionieren etc?


    Habe einige Mäuse inzwischen hier rumliegen, die in Konvoluten mit Commodore-Rechnern enthalten waren, die ich aber eher als frühe PC-Mäuse etc. eingeordnet hätte, aber vielleicht sind da ja doch noch ein paar Treffer dabei...

  • Gibt es irgendwo eine Liste sämtlicher für den C64 geeigneten Mäuse, unterteilt vielleicht noch in die Kategorien "Joystick-Maus", also rein digitale Emulation eines Joysticks wie 1350, Geos-kompatibel und "sonstige" für die Speziallösungen, die dann aber nur in wenigen Applikationen oder zusammen mit Modulen wie FCxyz funktionieren etc?

    Sicher nicht vollständig, aber es gibt eine Übersicht im C64-Wiki. Die ist unterteilt in Joystickmäuse und analoge Mäuse. Bei letzteren wird explizit erwähnt, wenn ein Modell nicht 1351-kompatibel ist.