Hello, Guest the thread was viewed5.1k times and contains 26 replies

last post from GeTE at the

Anschluss einer Serial-Maus am plus/4-User-Port: Umsetzung einer bisher nur theoretisch beschrieben Idee

  • Nach 20 Jahren im Dornröschenschlaf nimmt nun seit ein paar Jahren die Softwareentwicklung und -qualität auf dem plus/4 enorm an Fahrt auf. Mit Pet's Rescue als Jump'n'Run, CarTeD als Autorennspieldemo oder Alpharay als Sidescroll-Shooter erreichen Spiele ein Niveau, dass bisher unmöglich schien. Ich erwarte da in Zukunft noch mehr solcher Überraschungen, doch ein Genre wird sich nie so gut, wie auf Amiga oder C64 spielen lassen und das ist Breakout/Arkanoid. Diese Art Spiel macht natürlich nur mit Proportionalmaus wirklich Spaß. Das gleiche gilt für den Einsatz von GEOS - das als GEOS 3.53 sogar an den plus/4 angepasst und optimiert wurde - aber im Prinzip auch eine Maus benötigt.


    Nun fehlen den 264ern an den Joystickports die Paddle-Leitungen und der TED kann damit eine 1351 auch mit Adapter nicht auslesen. Theoretisch lässt ich eine 1351 zwar an den SID-Karten, die es für den Expansionsport der 264er seit den frphen 1990ern gibt, anschließen, aber genutzt wurde das meines Wissens nach bisher noch nicht und der Kauf einer solchen Karte zzgl. eines SIDs setzt erst mal eine deutliche Hürde.


    Was ich nun bisher nur als Idee gefunden hatte, ist eine Anleitung zum Anschluss einer PC-Serial-Maus (nicht PS/2!) an den User-Port des plus/4:

    http://plus4world.powweb.com/d…ocumentation_DRAFT_V1.pdf


    Da das bisher noch niemand gemacht zu haben scheint, plane ich das jetzt mal zu realisieren und sehe zu etwas Bastelhardware zu bekommen. Ziel ist es aber dann mal eine Maus bauen zu können (nicht von scratch, sondern mit verfügbaren Neuteilen am Markt), die auch optisch gut zu einem 264er passt (aber leider nur an den plus/4 steckbar sein wird, da der das einzige Gerät ist, das tatsächlich mit User-Port auch auf den Markt kam).


    Bisher habe ich noch nicht so viel Hardware griffbereit liegen, baue mir aber gerade - immer wenn sich die Gelegenheit bietet - etwa Bastedrumherum auf und hoffe auf eure Zuarbeit. Ich bin ein Elektrotechnik-Legastheniker: Kann also die Schaltung wie in dem PDF funktionieren? Und wenn ihr meint, dass ginge, wäre natürlich interessant, ob man die Schaltung als schicke, kleine Platine layouten könnte, die in der Maus oder dem User-Port-Steckergehäuse Platz finden würde.



    Ich werde mal nach und nach meine Links durchgehen und alles Weitere, was ich schon recherchiert hatte in diesen Thread werfen, hoffe aber auch auf euren kritischen Blick und vielleicht auch Zuarbeit, damit am Ende eine leicht nachbaubare Lösung für alle Interessenten dabei herauskommt.

  • Die Schaltung im PDF legt die Sendeleitung Tx an den Userport statt Rx: der sollte doch Signale von der Maus empfangen...


    Wichtig wäre die Software, die ins Betriebssystem mit rein gehört. Aber der Rechner muß kompatibel bleiben. Das muß erst geklärt sein, ehe Du mit der Hardware beginnst. Wie sehen die seriellen Daten aus, und wo im Speicher sollen sie liegen (was braucht z.B, GEOS...).


    Also viel theoretische Vorarbeit. Vielleicht der Grund, warum das noch keiner angegangen ist.

    Hans

  • Ich selber verstehe mich als "fiktiv Restaurator" (designen was es gegeben haben könnte, Lücken im tatsächlichen Portfolio Commodores von damals schließen), passionierten Computer-Karosserie-Instantsetzer, engagierten Programmierer ... in BASIC ;) und Elektriker. Letzteres bedeutet, dass ich Joystickkabel anzulöten vermag, aber Platinen, Chips und Hochfrequenztechnik ist für mich allen Böhmische Dörfer.


    Nun finde ich es unfassbar grandios, wie sich Technomagierengagierte Programmierer ein Genre nach dem anderen auf den 264ern vornehmen und das alles, was früher fehlte heute optisch fast auf Amiga-Niveau umsetzen. Nach Jum'n'Run (Pet's Rescue), Horizontalshooter (Alpharay), Autorennen (als CarTeD zwar aufgegeben, die Demo ist aber trotzdem wunderschön und mit schmissiger Musik) kommt jetzt als nächstes ein Prügelspiel. Aber was kommt danach? Ich würde nach meinen Möglichkeiten gerne das Momentum nutzen und die Grundlage für ein völlig neues Niveau an Breakout-Spielen legen.


    Das Momentum würde ich gerne nutzen und beitragen wozu ich in der Lage bin und um auch etwas Sinnvolles an diese Community zurück zu geben: Fertigung einer kleinen Serie als Geschenk an besagte Extrementwickler und dokumentation dieser Umsetzung hier im Thread, damit der Nachbau für alle Interessenten transparent wird. Im Idealfall entwirft jemand, von denen die das können, sogar ein Platinenlayout für eine Platine, die man direkt an den Userportstecker löten kann und die dann von einem der Retro-Hardwareanbieter als Kit verkauft wird.


    In diesem Fall sollte also die Hardware zuerst da sein, damit dadurch ein bischen nudgende Motivation den Entwicklern gegeben wird ^^. Das soll natürlich kein Blödsinn sein und so hoffe ich auf eure/deine Korrekturen zu dem Draft, von dem ich keine Ahnung habe, wie gut dieses ist und ob das so funktionieren kann.


    Ok, wäre natürlich auch schön, wenn noch ein ganz simples Maus-Testprogramm dabei rausfällt, um zu sehen, ob man die Hardware richtig zusammen gelötet hat. Braucht gar nicht mal so gut zu werden, wie das hier auf dem 64er, aber im Idealfall gäbe es dann so etwas ähnliches, um zu Testen ob man diese serielle Maus am Userport oder eine 1351 an einer SID-Card angeschlossen hat.


    TLDR: Konstruktive Kritik und Verbesserungsvorschläge? Immer her damit und hier rein! Aber bitte so, dass es ein Ahnungsloser wie ich, der nur nach Anleitung zusammenprutzelt ohne zu verstehen, was er da macht, das auch nachvollziehen kann. :rolleyes:

  • passionierten Computer-Karosserie-Instantsetzer

    Das spricht wieder mich an. Ich möchte die Schraublöcher in meinem P4-Deckel ersetzen, weil die schon ausgebrochen sind. Also die 3 hinteren. Meine Vorstellung: ich würde mit dem 3D-Drucker so Gnubbels erzeugen, die Metallgewindebuchsen enthalten. Das müßte ich in den P4-Deckel einkleben. Was wäre der beste Klebstoff? (3D-PLA mit Sekundenkleber: kein Effekt; P4-Gehäuse ???)


    Zur Maussache:

    Es gab doch die 1531-Maus von Commodore? Passte die nicht auch an den Plus4, bzw. wie wird die denn angeschlossen?


    Die Userport-Schaltung mit dem MAX ist ja nur eine Pegelanpassung. Guck mal ins Datenblatt des MAX. Ich glaube der hebt die 5V des Userport-Signals auf ca. 30V an (und umgekehrt). Vielleicht benötigt das so eine Maus garnicht.


    Außer dem Userportstecker -und bitte eine Fassung für das IC- würde ich eine Universalplatine für die Schaltung nehmen. Es gibt passende "allgemeine" und es >gab< Universalplatinen speziell für den Userport.

    Der serielle Eingang (Buchse?) ist Bastelkistenkram.


    Wenn ich Dir mit Teilen helfen kann sags einfach.

    Hans

  • passionierten Computer-Karosserie-Instantsetzer

    Das spricht wieder mich an. Ich möchte die Schraublöcher in meinem P4-Deckel ersetzen, weil die schon ausgebrochen sind. Also die 3 hinteren. Meine Vorstellung: ich würde mit dem 3D-Drucker so Gnubbels erzeugen, die Metallgewindebuchsen enthalten. Das müßte ich in den P4-Deckel einkleben. Was wäre der beste Klebstoff? (3D-PLA mit Sekundenkleber: kein Effekt; P4-Gehäuse ???)

    Das ist zwar völlig offtopic, aber trotzdem habe ich mich gerade umgesehen, ob du bei mir nicht Überwachungskameras installiert hast =O. Hintergrund ist nämlich, dass ich mir einen gammeligen plus/4 ersteigert hatte, um etwas den Auseinanderbau zu üben ehe ich mich meinem Originalen aus den 1980ern widme. Der wurde aber wohl sehr im Transport geworfen und da fielen mir Schrauben und die Hülsen entgegen, als ich ihn auspackte. Nach der gründlichen Reinigung sieht die Oberschale aber wieder gut aus und so habe ich die einem anderen plus/4-Besitzer angeboten, auf dessen Modell das Toplabel schon rausgebuhlt ist. Da ich auch mit neuen Etiketten experimentiere gebe ich ihm lieber diese Schale und nehme dann seine.


    Von oben sieht die Oberschale gut aus:



    Aber auf der Unterseite weren genau an der Stelle, wovon du sprachst, die Hülsen abgebrochen. Bei Kuststoff versuche ich es aber nun immer zuerst mit Revell Modellbaukleber (der im blauen Pinselfläschchen). Entweder der trocknet an der Oberfläche und fällt ab, wie altes Tesa, oder er löst den Kunststoff an. Erfreulicherweise hat er den Kunstoff angelöst (daher die helle Farbe) und die Verklebung ist nun absolut stabil:



    Auf der Unterseite fehlten mir die Hülsen und da da auch schon an der Userportöffnung gefeilt worden ist, behalte ich das lieber. Hier konnte ich (links im Bild) die Hülse auch mit erfolgter Anlösung des Kunststoff einkleben, während ich die andere Buchse mit Heißklebekleber aufgebaut habe, damit dort die Platinenschraube wieder greift:



    Jetzt drücke ich dir nur noch die Daumen, dass Revell die Zusammensetzung des Klebers nicht geändert hat, seit ich mein Fläschchen gekauft habe.


    Du kannst natürlich auch Metallbuchsen einsetzen, aber für diesen plus/4, der eher zum mitnahme- und Testmodell werden wird und vielleicht im Paket an Lichtmichel gesendet werden könnte, wenn eines Tages doch die SID-Card aus Ungarn bei mir ist, damit dafür ein Gehäuse gebaut werden kann, reicht mir diese Instandsetzungsqualität aus. Liegt ja alles intern.

    Zur Maussache:

    Es gab doch die 1531-Maus von Commodore? Passte die nicht auch an den Plus4, bzw. wie wird die denn angeschlossen?

    An den Joystickports fehlt den 264ern die Paddle-Eingänge, daher kannst du - unter Verwendung einer Schutzschaltung - dort eine 1351 nur im 1350-Modus, also als Joystickmaus, betreiben und das ist dann witzlos für eine natürliche Steuerung von Breakoutspielen oder Mauszeigern.


    Die anderen Punkte von dir reiche ich mal durch an die - hoffentlich - hier mitlesenden Elektrotechnikkundigen:

    Die Userport-Schaltung mit dem MAX ist ja nur eine Pegelanpassung. Guck mal ins Datenblatt des MAX. Ich glaube der hebt die 5V des Userport-Signals auf ca. 30V an (und umgekehrt). Vielleicht benötigt das so eine Maus garnicht.


    Außer dem Userportstecker -und bitte eine Fassung für das IC- würde ich eine Universalplatine für die Schaltung nehmen. Es gibt passende "allgemeine" und es >gab< Universalplatinen speziell für den Userport.

    Der serielle Eingang (Buchse?) ist Bastelkistenkram.

  • Revell Modellbaukleber (der im blauen Pinselfläschchen)

    Danke! Hab ich für die nächste Bestellung notiert. Wenn der Kleber noch PLA anlöst läßt sich mein P4 bald wieder zuschrauben.


    Maus:

    Seh ich mir die P4-Schaltung so an, wäre evtl. die Nutzung des Serial- Ports besser? Dort eine Maus würde auch am C64 passen.

    Auch der Datasetten- Eingang bietet Potenzial: da gehen Daten direkt in die CPU (P4+6), was dann evtl. nicht so mit laufenden Programmen kollidieren würde.

    Am Userport schließlich gibt es noch den 8551, der ursprünglich für Akustikkoppler etc. gedacht war und die Mausarbeit sicher gut übernehmen könnte. Ich glaube dieses Stiefkind hat sogar einen festen Interrupt.

    Das sollten Software- Spezis erstmal abklären, im Zusammenhang damit, was eine serielle Maus überhaupt liefert. Allerdings müßte man sogar die Signale des 8551 erst mit einem MAX-IC aufbereiten.

    Wie ich oben schon schrieb, muß für den Maus- Treiber erstmal im ROM Platz gefunden werden, um durch dessen max. Größe die beste Hardware- Version auszusuchen. Mit Deinem Vorschlag (PDF) wäre m.Mng. mehr Code nötig als bei den seriellen Zugängen.

    Hans

  • Bei einer seriellen Maus zwingt sich der Verdacht auf, dass man diese auch an den Seriellen Port anschliessen sollte. ;)


    Eine dieser MAX232 Pegelwandler-Platinen bekommt man für keines Geld. 1200 Baud schafft auch der einfache ACIA im Plus/4 und der Rest ist ein Treiber. Die Signal-Beschreibung sollte man in einem alten PC Intern finden können.

  • Ich find den 8551 am interessantesten, weil das doch sozusagen ein unabhängiger zweiter serieller Port ist. Den gibt's allerdings nur am Userport des P4, C16/116 fallen weg.

    Gab es nicht eine Beschreibung der 8551-Funktion im Handbuch?


    Der normale ser.Port würde ja evtl. Floppys usw. betreiben müssen, was eine Maus wohl behindern würde.


    Überhaupt. Eine Maus am Plus4 würde bei GEOS funktionieren. Und wo noch?


    Hans

  • Ich find den 8551 am interessantesten, weil das doch sozusagen ein unabhängiger zweiter serieller Port ist. Den gibt's allerdings nur am Userport des P4, C16/116 fallen weg.

    Gab es nicht eine Beschreibung der 8551-Funktion im Handbuch?

    Es ist im Ergebnis ein 6551A, das Datenblatt dazu gibt es im Netz und es ist kein Problem den ACIA beim C16 nachzurüsten wenn man will.


    Es gibt sogar einen 65C51 der den CTS-Bug des 6551 nicht hat.

  • Überhaupt. Eine Maus am Plus4 würde bei GEOS funktionieren. Und wo noch?

    Na ich hoffe so eine Maus, unaufgefordert an KiCHY geschickt, motiviert ihn den Arkanoid-Port mal richtig fertig zu stellen (bisher nur als Teaser in der Crackers Demo 5 vorhanden).

    Es ist im Ergebnis ein 6551A, das Datenblatt dazu gibt es im Netz und es ist kein Problem den ACIA beim C16 nachzurüsten wenn man will.

    Und das wurde auch schon gemacht und im Compute mit - Sonderheft C16, C116 und plus/4 (Ausgabe 5/88) vorgestellt.


    Leider habe ich den Ordner mit den Heften nicht hier und kann daher kurzfristig keinen Scan erstellen (habe ich mir als Todo aber notiert).

  • Schnelleres RS232 hatten wir vor langer Zeit hier schon mal beharkt: Wie schickt man Daten vom C64 über RS-232 ?


    P4 steht hier noch, ist im Moment nur keine CPU drin. Die damals von mir verwendete Empfangsroutine war aus einem parallelen Protokoll recycelt und eher unbrauchbar. Das müsste wohl etwas eleganter mit dem IRQ des 65C51 programmiert werden.



  • @ cbmhardware post 11

    ähm, sach ma...

    Das Bild mit dem 65C51 hat einen Quarzoszillator drauf, nicht bloß einen Quarz?

    Seh ich das richtig?

    Weil für meinen C116 möchte ich mal einen Userport nachrüsten. Bin aber erst in der Grübelphase.


    Gerrit:

    $FD20

    In meinem ROM-Listing steht nix über $FD20. Aber noch einen Extra Chip einbauen wo der 6551 nur auf was zu tun wartet? Die Frage ist, ob eine serielle Maus mit 19200 Baud auskommt. Und RAM in der Zeropage müßte es auch geben, der bisher nicht genutzt wird. Solder hat für die Funktionen des OS96 schon auf die Datasette verzichtet. Ich denke 3 Bytes würde eine Maus schon brauchen (Ausgabe X,Y+Tasten).

    Hans

  • In meinem ROM-Listing steht nix über $FD20

    Eben.. Es gibt da einen Zugriff auf diesen Bereich im ROM, ansonsten ist er unbenutzt. Also könnte man dort einen 16550 einblenden. Der kann eine höhere Baudrate als der 6551 und hat einen FIFO.


    Die Frage ist, ob eine serielle Maus mit 19200 Baud auskommt.

    Die laufen üblicherweise mit 1200 Baud.


    Und RAM in der Zeropage müßte es auch geben, der bisher nicht genutzt wird

    Freie Bereiche in der Zero-Page stehen im ROM-Listung. Wobei ich eher den Tape-Buffer nehmen würde.

  • Also bleibt als Vorteil des 16550 nur der FiFo, die Baudrate der Maus schafft der ACIA auch. Außerdem sollte ein extra IC auch einen eigenen seriellen Port (PS/2?) bekommen. Datasettenfreaks bräuchten 2 Betriebssysteme wenn die Tape-Bereiche verwendet würden.

    Das für GEOS und evtl. ein paar Spielen. Gefällt mir nicht der Aufwand.


    Wie ging das übrigens mit diesem Lichtstift, kennst Du den noch? Kam in einen Joystik- oder den Datasettenport glaub ich. Man konnte in einem Grafikprogramm damit "malen" (auf dem Monitor!), ich weiß aber nicht mehr ob das Gfx-Programm dafür extra ausgelegt war.

    Das war ja fast auch Maus-Feeling.


    Die PLA im C16/+4 hat noch einen weiteren, unbelegten /CS-Ausgang

    Pin 18? Hab leider kein Datenblatt des 251641-02.


    Hans

  • Pin 18?

    Ja. Im Schaltplan des C16 gekennzeichnet als 'SCS'. Im TED System hardware manual ist dieser Ausgang als 'Speech $FD2X' gekennzeichnet. Im KERNAL gibt es zwei Schreibzugriffe auf $FD20, einmal wird $09 und dann $89 reingeschrieben. Mehr passiert nicht in diesem Bereich. Die 16 Bytes könnte man also für einen weiteren I/O-Chip nutzen wenn den die beiden Zugriffe auf $FD20 beim Reset nicht stören.


    Also bleibt als Vorteil des 16550 nur der FiFo, die Baudrate der Maus schafft der ACIA auch.

    Dafür war er auch nicht gedacht sondern wenn man Datentransfer zu einem PC machen will, z.B. Da wäre der FIFO schon nützlich.



    Wie ging das übrigens mit diesem Lichtstift, kennst Du den noch?

    Keine Ahnung, TED hat dazu keinen Pin, also muss das rein per Software gemacht werden. Das dürfte vom Timing her interessant sein auch wenn man bei TED die aktuelle X und Y-Position auslesen (und schreiben!) kann.

  • also muss das rein per Software gemacht werden

    Dann muß ein "normales" Grafikprogramm das gekonnt haben. Der Stift hatte nur eine Photo-D drin und nutzte den Strahl der Fernsehröhre zur Positionserkennung. Damit ist man auf Röhrentechnik angewiesen.


    Übrigens, mal drüber geschlafen:

    Freie Bereiche in der Zero-Page stehen im ROM-Listung.

    Die sind sicher für Useranwendungen gedacht, d.h. es käme evtl. zu Kollisionen mit irgendwelchen Programmen.

    Wobei ich eher den Tape-Buffer nehmen würde

    Das ist "doch" eine gute Lösung, weil ja beim Datasettenbetrieb kaum eine Maus funktionieren muß.

    Es könnten natürlich schon andere die gleiche Idee gehabt haben...


    Zu $FD20: von dem, was ich von Commodore halte, wird das auch nicht komplett ausadressiert sein, genau wie $FD10. Naja, stören würde es nicht...technisch.


    Also, es gibt einige Möglichkeiten für die Hardware. Ich würde sogar eine PS2-Buchse verbauen wollen. Wenn es klappt die Maus auszulesen und nicht nur in der Zeropage die Koordinaten abzulegen, sondern auch einen Mauszeiger abzubilden. Da ist der nächste Stolperstein. Und dieser Zeiger müßte auch noch abschaltbar sein. Einmal weil er in vielen Programmen stört, zum anderen weil z.B. GEOS einen eigenen Mauszeiger mitbringt? Und "jemand" müßte Programme wie dieses auch noch anpassen wollen/können.


    Ich glaube das sind zu viele Probleme.


    Hans

  • Zu $FD20: von dem, was ich von Commodore halte, wird das auch nicht komplett ausadressiert sein, genau wie $FD10. Naja, stören würde es nicht...technisch.

    Die Leitung selectiert $FD20 - $FD2F, also 16 Bytes, perfekt für I/O-Chips.



    Der Stift hatte nur eine Photo-D drin und nutzte den Strahl der Fernsehröhre zur Positionserkennung. Damit ist man auf Röhrentechnik angewiesen.

    Ja, und der VIC im C64 hat dafür einen extra Pin. Wenn dort ein Impuls ankommt speichert er die aktuellen Koordinaten und löst einen IRQ aus. Die CPU hat dann keine Probleme mit der Feststellung der Position. TED kann das nicht. Dort müsstest du die Leitung an der der Lightpen hängt per Software überwachen und bei einem Impuls die aktuellen Koordinaten abfragen. Damit belegst du die CPU durchgehend.

  • Und das wurde auch schon gemacht und im Compute mit - Sonderheft C16, C116 und plus/4 (Ausgabe 5/88) vorgestellt.


    Leider habe ich den Ordner mit den Heften nicht hier und kann daher kurzfristig keinen Scan erstellen (habe ich mir als Todo aber notiert).

    So, höchste Zeit mal nachzuliefern. Hier nun der Auszug aus dem Compute mit - Sonderheft C16, 116 und plus/4 zum Eigenbau-Userport für den C16 (hatte beim Besuch bei den Eltern noch mit Anderem zu tun, so dass die Zeit nicht zu ordentlichen Scans aber immerhin zu Fotos der Artikel reichte).

  • So, höchste Zeit mal nachzuliefern.

    Vielen Dank. Wenn ich mir die Fotos so ansehe, baue ich doch lieber den Userport aus der Originalschaltung des Plus4 nach. Er soll ja auch nicht an den Exp.-Port gesteckt werden. Ist zwar noch lange hin bis ich den Bau beginne, aber der ACIA soll ein PLCC-Typ werden und ich nehme mir einen SMD-Aufbau vor um möglichst Platz zu sparen. Naaa jaaa...


    Gerrit:

    Ich hab im vorigen Jahrtausend in meinem Plus4 eine Ohrhörerbuchse eingebaut (über dem Datasettenport).

    Da hab ich immer meinen Logikprüfstift reingesteckt (wg.5V). Neulich guck ich rein und sehe einen dritten Anschluß zu einem 6529 gehen ($FD14 oder so). Ich denke die Buchse war mal für den Lichtstift gedacht.

    Dann muß es doch extra Software für ihn gegeben haben.


    Hans