PC-Maus am Mac (der Originaltext)


Der englische Originaltext

Serial Mouse Driver
©1992, 1993 Charles Rentmeesters

CDware.  If you use this software, you've probably saved a bundle on 
getting a IBM type serial mouse, so spend a few bucks more and send 
me a CD.  Either Musical CD's or CDROM's.  Send me something unique, 
send me something original.  If you're in a foreign country send me 
a CD in your native language. Of course, if you don't have the time 
to send me a CD, a donation of about $10 is just as accepted.

Send to:

	Charles Rentmeesters
	410 N Carroll St
	Madison, WI 53703-1804
	USA

I'd love to hear your suggestions.  Email address:

	rentmees@cae.wisc.edu

What is it?
This cdev/init allows you to connect a IBM type serial mouse to your 
Macintosh, and use that instead of the standard Macintosh mouse.  It 
works with Microsoft and Mouse Systems compatible mice.  (just about 
the only two types of serial mice that are out there).  You can even 
use IBM type serial trackballs with it! Connect the mouse up to one 
of the serial ports of your Macintosh, and drop thiscdev/init into 
your System folder.  Use the control panel or System 7 to set-up the 
mouse driver.  This allows you to set up which port the mouse is 
connected to, and what type of mouse it is.  It also allows you to 
modify the event the mouse sends for each of the mouse buttons.  
Software written using the Symantic Think C compiler, and tested on
a Macintosh IIci running system 7.1.

Connecting up the Serial Mouse:
To connect the serial mouse up to your Macintosh, you will need a 
serial cable. Some serial mice can just use a standard modem serial 
cable that you can buy from many computer stores.  If that doesn't
work, you can make your own serial cable for the mouse. A common symptom 
of  not working with the standard serial modem cable is that the mouse 
buttons will work, but the mouse will not move.  This happens when the 
mouse in question requires that there be power on RTS and DTR line, which 
the standard serial mouse cable does not provide.

This is the standard pinouts for a serial mouse cable:
(looking at the cable, with male connectors on both ends)


                 Macintosh                Description	RS232


                                                    db9      db25
       8 minidin       Name              Name       Pin      Pin
       			    	
          1	      Handshake Out	  RTS	     7	      4
          1	      Handshake Out	  DTR	     4	      20
          2	      Handshake In	  CTS	     8	      5
          3	      Transmit Data	   TD	     3	      2
          4	      Ground	          GND	     5	      7
          5	      Receive Data -	   RD	     2	      3
          8	      Receive Data +	  GND	     5	      7


Helpful hints:
When installing the mouse driver, be sure you have a back-up way to 
move the mouse in case you don't get it to work right away.  Either 
keep your old ADB mouse connected, or have Easy Access installed in 
your system.  Also, terminal programs which are set-up for the same 
port as the Serial Mouse Driver is set up for may crash.  When making 
the serial cable, it's easy to buy a Macintosh serial cable, and cut 
it in half and then solder the db9 connector to the cut end.  That way 
you don't have to do any soldering to a 8pin mini-din.

Serial Mouse Protocol (for Mouse Systems Mice):
Events are sent in 5 byte packets at 1200 baud.  The first byte is a 
sync byte, in the format 10000LMR, anding any byte with $F8 and then 
comparing to $80 will tell you if it's the sync byte.  The bits L, M, 
and R and the status of the mouse buttons.  1 = button up, 0 = button 
down.  The second byte in the packet is the horizontal change in pixels.
The third byte is a vertical change. The fourth and fifth bytes are 
horizontal and vertical change bytes respectively.

Serial Mouse Protocol (for Microsoft Mice):
Events are sent in 3 byte packets at 1200 baud.  The first byte is a 
sync byte, in the format 11LRYYXX, anding any byte with $C0 and then 
comparing to $C0 will tell you if it's the sync byte.  The bits L, and 
R and the status of the mouse buttons.  0 = button up, 1 = button down.
YY is the most significant two bits of the vertical movement.  XX is the 
most significant two bits of the horizontal movement.  The second byte 
in the packet has the format 10XXXXXX.  These are the lower 6 bits of 
the horizontal movement.  This must be combined with the two bits
in the sync byte to get the value for the horizontal movement.  The 
third byte is of the format 10YYYYYY.  This is the lower 6 bits of the 
vertical movement.  This must be combined with the sync byte like the 
horizontal movement to get the value for the vertical movement.

Changes in version 1.0.1:

- Bug fixed that caused crash in systems earlier than system 7.
  (And system 7 too, but you really had to do work to get it to do it!)
- Improved Documentation.
- Version display added to lower right corner of control panel.
- Double-click mouse event added to types of events.
- Color Icons added.
- Now type of mouse option is updated immediately instead of waiting 
  for the user to reboot each time after changing. (Note: you still 
  have to reboot each time to change the port that it uses.)

Future ideas for the mouse driver:
I'm thinking about making a hardware solution to the problem as well,
so that you can hook the serial mouse up to a converter connected to 
the ADB port.  Another idea is to make an ADB converter for IBM AT 
compatible keyboards.

Comment:
Early 93 I made a IBM AT keyboard to Mac Keyboardconverter.  It works
for ADB Macs as well as the Mac Plus.

Other software by me:
"Chuck's Printer Driver"  -- Allows you to connect an Epson compatible 
9-pin or 24-pin printer up to your Mac.

Disclaimer:
I take no responsibility for anything you my do to damage or destroy your 
Mac. This software is used at your own risk.  Microsoft, Mouse Systems, 
Epson, Macintosh, Think C, and any other trademarks are copyright of their respective owners.


Back


Last Modified 1/1/96