My Olivetti PC1 needs a mouse so I can play games like Arkanoid or run the GEM desktop environment. Since I don't have the original mouse I resorted to do what many people with Atari and Amiga computers did, connect a modern PS2 or USB mouse via an adapter board.
This adapter board uses the powerful Ultimate Amiga PS/2 Wheel Mouse Controller firmware completely unchanged and has the correct mouse pinout for the PC1.
The PCB is available to buy at Enide! Tindie Shop, either as a bare PCB or as a fully assembled and ready to use unit.
Since the Atari, the Amiga and the PC1 share a similar design of mouse interface, usually named Bus Mouse or Quadrature Mouse, they all expect movement in the X and Y axis to be reported each in two lines with 90º phase offset, like a rotary encoder does. Button action is reported in specific pins, active low. This means that rearranging the pins in the SUB-D9 connector from the original schematic is enough to make it work on the PC1.
This is the original schematic, made by its author, for firmware version 1.5. Please note that the DB-9F pinout is for the Amiga and not the PC1 on this schematic. It's only being displayed here for reference.
From the original schematic I determined the following pin assignements on the PIC:
PIN | Function | Observations |
RB0 | PS2 CLK | |
RB1 | PS2 DATA | |
RB2 | LEFT BUTTON | |
RB3 | RIGHT BUTTON | |
RB4 | MIDDLE BUTTON | not used on the PC1 |
RA0 | YA | |
RA1 | YB | |
RA2 | XB | |
RA3 | XA |
The firmware is very powerful and supports mice with 5 buttons and the wheel but since the PC1 only reads the Left and Right buttons I will ignore the rest of them and use only the ones in the table above.
Below is the schematic I made using Eagle, based on the original for firmware version 1.5, with the rearranged pinout on the SUB-D9F for the PC1.
The PCB is very narrow and has the SUB-D9 soldered directly on the left side of the PCB. On the right side we can solder one USB A socket or one Mini-DIN6 PS/2 socket but not both.
And here is a preview of how it will look like when it's made.
As I stated above, I'm not the author of the firmware for this project.
You could originally get it at http://ps2m.sotchenko.ru/version.html but the link is dead for quite some time.
I did find it to be still available at Aminet but even if this link is not working feel free to download version 1.5 from the local copy here.
If you decide to build it yourself, when programming the PIC 16F628 set the fuses to:
Bit | Setting |
Oscillator | INTRC no clockout |
Watchdog Timer | ON |
Low voltage programming | OFF |
MCLR Enable | OFF |
To use this adapter on the Olivetti PC1 you will need the mouse driver. There are currently two drivers known to work on the PC1:
I use Simone's driver on my PC1 for quite some time without any problems. I found it on the Olivetti Prodest PC1 Facebook page, which I recommend anyone with a PC1 to browse. There's a lot of useful information in there.
Here are two pictures of the adapter running on a breadboard, click to enlarge.
The final boards took several days to arrive but as soon as they arrived I assembled one to test it on the PC1.
Here's how it looks:
Published on Sunday 2017/08/27, last modified on Wednesday 2020/05/13