Contents | < Browse | Browse >

===========================================================================
              Using Different Input Controllers on the Amiga
  Calum Tsang                                               tsangc@io.org
===========================================================================

Are you sick of using your stock Amiga "wedgy" mouse?  Or is your current
mouse dying a slow and painful death with broken rollers and buttons?
Perhaps it's time to look for a new mouse for your system.  But wait, who
makes Amiga mice anymore?

You could go and seek out some high priced Amiga specific mouse, which may
be imported from who knows where, which isn't ergonomic or particularily
high resolution.  You might also consider hacking up an old PC bus mouse
from 1987.  But why not use a serial mouse made for the IBM PC?  Yes, it's
very possible to hook one up.  There are a few tradeoffs, as it'll connect
to the serial port, and not the internal mouse port, and it won't be
particularily compatible with games, but if you're using mostly Workbench
run applications, a PC mouse might be your best option!

PC mice come in a variety of different sizes and shapes.  At the low end,
you can find the horribly light yet ridiculously cheap OEM mice.  Made by
companies like Dexxa (which happens to be a subsidiary of Logitech), these
mice cost less than $10, but are reasonably durable.  At the high end, you
can get the Microsoft Mouse 2.0, an ergonomically contoured J shape.  Or
perhaps a Logitech Mouseman with it's three buttons.  The higher priced
models are usually better designed in form and function.  There are also
trackballs and other oddities, like the absolutely adorable Logitech Kidz
Mouse, which looks like a mouse.  You'll probably want something you're
comfortable with, that fits your hand size.  I know people with small hands
which can't stand large mice, and large handed people who say the already
large Microsoft Mouse is too small!  Many stores offer all the mice out on
shelves to be examined, so take advantage of this and experiment.

When you're buying the mouse, you'll want to know how it interfaces.
Almost all modern PC mice connect to a computer via a serial port.  This is
usually in the form of a DB9 pin connector.  To use your Amiga's serial
port, which is a DB25, you'll need an adapter, but most mice packages will
actually come with one.  Some mice use a special MiniDIN plug, or PS/2
style mouse port.  These are still serial, but just have a different
connector.  You could cut the end off and resolder a DB25, but it's easier
to get a PS/2 mouse adapter for DB25.  Or perhaps a PS/2 to DB9, then the
DB9 to DB25.  :)

Another major concern is the protocol of the interface.  Again, the PC
industry is relatively standard and a PC mouse will most likely be Logitech
Mouseman or Microsoft protocol.  (oddly, some Logitech mice use Microsoft
protocols) The Logitech protocols need an external serial board on the
Amiga.  Why?  The Logitech uses 7N1 encoding, which the Amiga serial port
does not support in hardware, while the system software drives do allow
for.  As a result, the Logitech mice need a board like the excellent GVP
ioExtender or the MultiFace.  This will probably limit most people to using
Microsoft protocol mice.  Don't worry, most of them are anyways.

A quick note about where to buy: I personally like buying hardware from
large retailers like ComputerCity, Future Shop, and Costco.  These places,
while having probably the worst sales people, also have the lowest prices.
As you're an Amiga user, you probably don't care anyways, as they most
likely won't know about Amiga systems.  These stores also have good return
policies, and aren't as stingy in this regard.  This may come in handy if
the mouse doesn't work properly, such as a protocol or interface problem.

Once you've purchased the mouse, plug it in!  Using your adapters, plug
into the DB25 Serial port on your Amiga.  You'll then need to set up a
serial mouse driver.  Two excellent drivers exist on Aminet, LogiMouse
1.053 by Simon Richardson, and SerMouse 2.21 by K.P.  vanBeem.  LogiMouse
is for Logitech mice, and SerMouse is for Microsoft mice.   SerMouse also
supports 5BYTE encoding for MouseSystems mice, which are an older and less
popular variant. 

SerMouse's configuration is done all through the Workbench Information menu
for it's icon.  For a Microsoft compatible mouse, set it for 3BYTES
encoding, and let it use it's default serial port configuration.  
serial.device, unit 0, is the Amiga's internal serial port.  If you have an
IO board, use your corresponding device driver name and the unit number the
mouse resides on.  Doubleclick the icon, and you should be able to move the
pointer around with your new mouse!  If not, don't touch the PC mouse and
use your Amiga mouse to doubleclick the icon again, disabling the driver. 
Then modify the tooltypes to get the settings right.  You'll want to add
the Tooltype DONOTWAIT into SerMouse's icon so it'll run without messages.
Once you're satisfied, drag the SerMouse icon into the WBStartup drawer and
it'll load the device driver everytime you boot. 

LogiMouse is a bit more complicated, but gives you quite a few more
options.  It also has versions optimized for different processors.  First,
place the appropriate LogiMouse program into your C: or similar "bin" like
directory.  LogiMouse is called from the user-startup sequence in your S:
directory.  Use a text editor to put in a line saying:

   c:logimouse -d whatever.device -u 0

whatever.device should be your serial board, as LogiMouse can't work with
the incompatible Amiga internal port.  The -u option LogiMouse what unit to
use. 

This barebones configuration should activate the serial mouse.  You can
test it by rebooting, or just trying out the command on the Shell.  If you
got a Logitech two button, you're done.  But, if you bought a three button
Logitech, like the Mouseman, you'll want to use the middle button for
another function.  LogiMouse shines in allowing you to redefine the center
button as the SHIFT key for instance.  While holding down the middle
button, you can now select multiple icons with left button without reaching
for your keyboard.  When I use my Logitech Mouseman, I use:

   c:logimouse -d gvpser.device -u 0 -mLSHIFT

Of course, you'll want your serial board driver in place of my
gvpser.device, and correpsonding unit number.  LogiMouse also allows for
many other functions for buttons, and even button swapping!  With the left
handed version of the Mouseman, you could even make a completely
symmetrical reverse of a normal mouse. 

Both drivers work very well, and are in general compatible with programs
run from Workbench.  There are many more functions in both, but they
pertain to more arcane configuration details or customization.  The
documentation for each explains them.  You'll notice a bit of jerkiness in
paint software, like a jagged response, but that's due to the limitations
of serial mice, not the driver.  Programs that have custom startup, like
games, will obviously not work.  That's acceptable if you're like me: you
use your Amiga for mostly productivity applications.  Also, if your machine
crashes and you get a Software Error or Alert, the serial mouse won't let
you click it away.  That's not so much a problem with Kickstart 3.1, which
cancels the Alert after a few seconds.  One way is to keep the old Amiga
mouse plugged in, to tap the button for reboots, and perhaps to play a game
or two. 

Both authors have made their drivers freeware, but Simon Richardson asks
for an email if you liked his LogiMouse.  Their drivers certainly make my
life easier!  Thanks guys!

(I use a Microsoft Mouse 2.0 on the Amiga 4000/040 at work, and a Logitech
KidzMouse on my A3000/25 at home, along with a CBM "pregnant" two button
left to the side of the desk)