Individual Computers logo and link back to main site
Micromys V3 online manual
Click here to go back to the main manual page.
DIP1=off and DIP2=on Set DIP1 to OFF and DIP2 to ON for operation on an Amiga with drivers for the wheel. The mouse will work just like any other Amiga mouse if the drivers are not yet started, so using the mouse in the early startup menu is possible. Wheel movements and pressing on the wheel does not have any effect until the drivers are started.


Developer information
Wheel and middle mouse button data is transferred through the potentiomenter input (PotX). Although this is an analog input, it's two digital units talking to each other, and the protocol nulls any error in transmission. The protocol for transporting the data into the Amiga aims at the least possible CPU usage, and it's making smart use of the Amiga's hardware.

First of all, set the PotX line into potentiometer mode and make sure that the operating system does not change this setting back to "digital input" in the VBlank IRQ. Note that the Amiga requires the software to start each and every measurement. The fact that every measurement is a discrete process is used by Micromys, as two values are transferred to the Amiga for a single set of wheel data: One calibration value and a data value that includes four valid bits of data. The calibration value is required, because values change with different screenmodes.

Read two consecutive values from the PotX register, doing two measurements. It does not matter in what order you actually read the two values, as the calibration value is always the same. The calibration value is always bigger than the data value, so the two are easily distinguished. The following assumes that you have put the calibration value (the larger one) into variable A, and the data value into variable B. Variable C is a working-variable.

C=(B*127/A) - 9

Reduce variable C to an unsigned byte by cutting off any fractions. This really means cutting off fractions, not mathematical rounding! The data word C now contains the middle mouse button in bit 6. In other words: If C is larger or equal to 64, then the middle mouse button (or wheel) is pressed. If the MMB is pressed, subtract 64 from C and continue:

C=2*C/3

This time, do not just cut off fractions, but round mathematically correct. Bits 4,3 and 2 now contain the lower three bits of the scroll-counter, where bit 4 is the LSB:
Bit 7 6 5 4 3 2 1 0
function 0 0 0 SCRL0 SCRL1 SCRL2 0 0

Should bit 0 and 1 of C not be 0, they can be used to identify and correct any measurement errors. In addition to that, the order of the bits allows you to reduce the number of valid bits to two, in case an extremely low HSync frequency introduces more error than the protocol can balance.

Click here to go back to the main manual page.


individual Computers Jens Schönfeld GmbH
Im Zemmer 6 | 52152 Woffelsbach | Impressum

webdesign by [ no hype ] communications 2000