Plus/4 - RS232 mouse project
Created on Thursday, 31. May 2012.
Let me start at the very beginning: I am not a HW guy, and from SW development side the best I can say "need improvement". Although I have a degree from the later, I hardly program anything valuable since 15 years
My best PRG was made in 1996, it was the worlds' very first fully mouse driven PC fractal generator with GUI in SVGA, "Fractal World". Palette animation, MOD background music, save/load, help, etc were in place.
Made in Turbo Pascal and nowadays causes 100% Blue Death on XP and above at Exit :-)
I had to write the mouse driver for SVGA (did not exits at that time, or I was not aware, no internet :-) ) and there were some assembly code for fast drawing, palette animation.
It was a backgound: I was always loved mouses and tried to use them as much as possible.
Mouse on Commodore Plus/4: a 20 years old demand
For Plus/4 there were some joke/fake PRGs from the beginning, showed mouse icon at startup (90s).
Since GEOS appeared on Commodore Plus/4, I also started to be interested, why no mouse exists on this machine.
It is popping up from time to time on Plus4world forum too, till today I am not aware of any real solution.
As turned out, no POTX and POTY input exists on the JOY ports (cost down bproject, I think), so there is no register to be read by Plussy, even if the mouse pins are properly connected...
There were some trials in the past, and Harsfalvi Levente's article on the RS232 mouse -->Commodore64 connection made me realize how complicated it could be. He used a microcontroller to connect it to the existing(!) POTX and POTY on C64 and simulate 1351 mouse. In Plussy even the pins and registers do not exist!
A pretty good and very detailed article from Levente!
The PS/2 and USB mouse (due to data speed) was highlighted as not possible to be implemented in 8bit environment. One thing: Plus/4 ACIA (6551) to handle user port signals is at least 5x faster than the C64 version can be used without tricks, although it is hardly used by any application.
There are two very good approaches to make mouse possible on Plussy:
1) SID card from NST (old version:Solder), then connect a C= 1351 mouse to SID, read the original SID registers. It stated even Amagi mouse is supported
Unfortunately both SID card and the 1351 mouse are pretty expensive and rare stuff.
Let me say, it may stop at ~70-80 Euro
STILL there is no driver for Plussy, not even for GEOS.
2) BGSSZ article opened a new possibility: connect a RS232 to Plussy via ACIA
http://www.amiga.hu/amigos/plus4/plus4/plus4.htm section: Fejlesztések
There were no HW diagram or layout. I was left with the pictures and a lot of helpful hints by the developer. Parts were lost...
BUT there is already a resident driver and a BASIC program to demonstrate it's work.
So I decided to make mine RS232 mouse converter (I need a good project name...), but there are a lot of troubles with those ancient tech: hard to get or very expensive.
-No User Port connector available nowadays... Finally I got few from USA, price like gold.
-Then the connection: which pins to be connected?
downloaded some Max232 circuit diagrams
-Bought a weller, soldering mat (I did not have any previously :-) )
-Started to check RS232 mouse. FEw availabel, none of them is stylish enough, all rubbish beige color
for Plussy best is Microsoft Home RS232 mouse, nice bluish style: hard to get and expensive
So I got a standard Microsoft and one brand new (!) A4Tech one
- connector for the circuitry pins
- solder max232 lines to the proper DB9 pins
- I need proper nice plastic housing for protection
- Maybe some capacitors to support inverted TTL signals of Commodore (grrr...)
- somehow transfer BGSSZ programs (driver and demo) to real Commodore DD floppy.
I have Plussy, C64, 1541, 1541/II, 1571, but no connection cable to PC.
There are a lot of good tools and HW for that, but I do not have any of them :-(
- Test it on real HW
- Improve resident driver to be more at "hidden" memory area, and to be faster, smaller
- Hack Multibotticelli, Botticelli to support mouse (some other applications are in question), next to joy and keyboard. Probably I need some support on that from some experts (hackers)...
- Write a GEOS driver
Probably I need some support on that, changing/hacking C64 GEOS 1351 driver is an option...
- Start and finish my Plus/4 graphical adventure "The Hobbit 2012", supporting mouse natively.
I have the concept art, some nice ideas, lot of pictures, but nothing that really runs yet.
After raw code done,I want to make it as a super project for the competent guys to implement ALL the latest development in Plussy, like:
auto fastloader on 1541/1551, compressed pictures on floppy with decoder, dinamic split screen, HFLI startup screen with native SID music OR via TED digi (autoselect) , and certainly mouse support.
The best would be to make such a driver / hacking approach to support BOTH RS232 mouse and the 1351/Amiga mouse via SID card. after this device driver is ready, THEN hack the programs to do not develop parallel, self-compatible solutions.
When all these are ready, then the Plus/4 RS232 Mouse project is ready.
The card will cost ~20 Euro, and can be used paralelly to SID card, as it is using User Port and not Extension port. Unfortunately C16 and C116 cannot use it, as they have no user port.
Without supporting PRG it is just an interesting HW without aim.
With GEOS and other native drivers this may help Plussy get some more respect, and GEOS+1551 is a rather capable GUI (unfortunately RAM card cannot be used by GEOS in Plussy)
Let me know your opiniion