ADB Prober v1.0

©1995 by C. Franz

What it is:
ADB Prober is a small program that displays all devices connected to the ADB (Apple Desktop Bus) and identifies them. ADB Prober knows over 50 different devices and detects them accordingly.
You also have buttons to re-scan the bus and to re-set it (you need the latter if you love living on the edge and connect another device while the computer is powered on. You do risk your ADB chip each time, but 'no pain - no game' they say).

For techies and experts, ADB Prober also supports continuously polling ('monitoring') and trigger-polling (waiting for signal) of a specific device. ADB Prober lets you examine and analyse the data stream that comes from an ADB device. Did you ever wondered how to read the Thrustmaster WCS settings? Just hit Poll it and watch register 3 closely...

If you received ADB Prober as part of the software accompanying your ADB device
software from Fesh! Co., Berlin, all polling and re-setting capabilities have been

Using ADB Prober:
ADB Prober works its magic in two different ways:
* ADB Diagnostics
* ADB Polling

You would normally use ADB Prober to make sure all your devices are connected properly and that there are no problems on the bus. The ADB Diagnostics part provides this functionality.
If the problems persist you usually identify the problematic device by using the ADB Polling part. Read the 'ADB Trouble Shooting' section of this documenation on how to identify and verify a bad device.

ADB Diagnosics is the part of the program that scans the ADB and reports the devices it finds. To make sure that a device is really connected, ADB Prober does a number of things, among them:
- Queries all the device register
- Sanity checks on the original address (connect a Gravis GamePad, run the Gravis
software and see a sanity failure)
- Checks for device storage and callback procedures

After ADB Prober is sure that there is a device connected, it tries to identify it and display it. For certain devices I have been provided with in-depth information by its manufacturer and ADB Prober is able to do even more extensive tests. For example, ADB Prober is able to not only identify the MacEnjoy but also its ROM version. Other devices (e.g. Silhouette) can only be identified generally because so far I have no Idea how to tell it apart from the usual garden variety of mouses.

ADB Polling is the actual 'Probing' you can perform. This part of the program lets you examine in-depth the various registers of any device connected to the bus even if it seems dead. Note, however, that you require some knowledge about ADB devices in general to make something out of the data the Polling returns.

ADB Diagnostics
This is the default ADB Prober operations mode. When you launch ADB Prober, it will show a window (the 'Diagnostics' window), scan the ADB and identify all devices it finds on the bus. You may Reset and Re-Scan the bus by pressing on the buttons provided for that reason.
Let's look at the Diagnostics window. You see 15 'slots', numbered (in bold) from 1 to 15. The number is called the 'address' of the slot, or 'bus address'. If a device is connected through slot 6 it is said that it has 'a bus address of 6'.
The ADB is a bus that provides space for 16 devices. Device address number Zero is always the Mac an is therefore not shown. Devices 1 to 15 are the ones you can connect to your Mac. Even though there are 15 slots not all have to be filled and the devices don't have to be in any particular order. There may even be gaps between device slots.

When ADB Prober scans the bus it identifes each device and places its description in the apropriate 'slot' (address). For example, the device on address 3 will be placed in the third row. A slot usually reads like this:

07 07 $5F Thrustmaster (FCS, WCS)

The first number is the current, the second the original address of the device (the original address is the address the device suggestet to your Mac when it was powered up). The third number (in hexadecimal, indicated by a leading '$' sign) is the device type. The fourth column holds the textual device description as ADB Prober sees and interprets it (and yes, ADB Prober *is* able to detect if there is a WCS or RCS connected to the Thrustmaster). This is the actual ADB Prober Magic.

If Prober encounters a device it does not recognize it will either name it '?' and supply register info e.g.

05 03 $79 ?R1= R2= R3=7C 79

or try to guess what kind of device it sees. In the latter case, the program will append a question mark '?' to the description, e.g.

02 02 $15 GamePad ?

ADB prober guesses the device by comparing it to similar, known devices and their characteristics. More often than not, it is wrong, so do not be alarmed.

There is one special designation: The 'Phantom Device'. This is not a real device but an indication that something strange is going on on the bus. If you have a Phantom Device, be sure not to T-Poll it (see below). Phantom Devices usually do not cause severe errors during normal operation but are an indication that not everything is as it should. Read the 'ADB Trouble Shooting' section on how to deal with Phantom Devices.

Sometimes, a device description it flagged (appeded) with a special symbol. This is simply an indication that ADB Prober is not too sure about the device it identified or found something amiss when it verified it's existance:

'*' means that the devices original address is invalid
'Yen' means that the devices storage area is invalid
'D' means that devices callback procedure is invalid
'?' means that ADB Prober is not sure about it's identification

Whenever there is a flag appended to your device, it is only an indication that there *could* be trouble, but not neccessarily so. For example, the Gravis GamePad is routinely flagged with '*' when the Gravis software is installed (and it is not identified at all when the software is not installed).

Below the 15 diagnostics slots there are four Buttons:
Done: Exits the program.
Re-Scan: Re-Scans and re-identifies all devices on the bus
Reset: Resets the ADB.

There is also a small button labelled 'Poll'. It is normally grayed out. This button provides in-depth information about a particular device. It is not intended for the timid user. You use it to enter Polling.

There are keyboard shortcuts for all the functions:
cmd-q : Quit Appliaction
Enter, CR : Done (Quit)
R, cmd-R : Reset
P, cmd-P : Poll (only if device selected)
T : T-Poll (only if device selected)

To enhance usability, ADB Prober sports a real-time probe into the ADD data stream. Polling means that Prober continuously reads ('polls') a certain device and displays the data it finds. Note that the polling a device is *not* intented for the casual user.
Although it won't fry your mouse or dislocate your joystick, it's primartily designed for techies that need to diagnosy what's happening with a device. Polling provides you with all the data that is received from the device's four registers. If you can't make heads or tails out of the output read Inside Mac: Devices (or Inside Mac Vol. V) and scan the ToolBox Assistant. You'll find an in-depth discussion about the operation of the ADB.

To poll a device, click on it's slot to select it. Note that you may also select an empty slot. This is intentional. The 'Poll' button becomes enabled. Clicking on it will drop you into the polling mode. A new window appears that continuously displays the contents of all the registers of the selected device. To exit polling, move the mouse to upper left corner (of your primary monitor) and click.

You can switch processes while polling is active! Just click outside the polling window. Reaction will be a bit sluggish due to the polling. After the process switch the polling window will still be updated. This is important to monitor devices that need external activation (e.g. AutoDialler).

Future versions of Prober will also be able to capture a register's stream of data to a file for later analysis or enhancements.

While normal polling usually provides more information than you should ever need, there are some cases where it is not good enough. Since normal polling requires some time to redraw the screen and also yields some time for tracking the mouse and (limited) event processing, you will very seldom see any data provided by register 0.
Since this is the most important register when a device is active, ADB Prober provides a special polling routine called 'T-Polling'. T-Polling watches the 0 register of the selected device _very_ closely until it detects data. Then it displays the contents of all four registers and stops polling the device, waiting for you to press the mouse button to exit polling.

You enter T-Polling by holding down the OPTION key while clicking on the Poll button (note that the Buttons name changes from 'Poll' to 'T-P'). Note that while T-Polling watches the selected device it will seemingly freeze you Mac. This is normal. Control returns to your Mac as soon as the device you T-Poll activated.

If you T-Poll a device that is not connected, you will not be able to exit the
T-Polling mode SHORT OF PRESSING RESET!!!! Be sure you know what you are
doing when using T-Polling! Never T-Poll a Phantom Device since it can't
respond. Command-Option-Shift-Escape will NOT work!!!

ADB Trouble Shooting
If you have a problem with the ADB, run ADB prober (make sure that you have saved all open documents. This is not because ADB Prober is known to crash but just a safety measure since you *do* suspect problems and a crash *can* occur, after all).

Looking at the initial diagnostics display, try to make out if one of your devices is missing. Also, look for devices that do not match their designation. Look at the list of all recognized devices ("What Devices ADB Prober Knows"). If your device appears in the list of known devices but is not correctly identified there is a good chance that something bad is going on. Then look for Phantom Devices. If they appear on the bus, there is something unusual going on. Finally, look for devices that have 'Flags' attached to them (*, Yen or D). These are devices that *could* have problems.

If there are Phantom Devices or if a device is missing, wrongly identified or flagged, Re-Set the bus. In most cases, this should solve the problem. If you are using a device that uses an external power supply (e.g. the UnMouse), make sure they have their power switched on (it is amazing how many problems can be traced to such a simple cause). When a device comes on-line that was previously down-powered, the bus must be re-set. I assume you are not mad enough to connect a new device to a live Mac (hint, hint!), so it is impossible that a non-externally powered device suddenly comes online.

If the problems persist, turn to the polling mode if you are a pro (or just generally curious) or return the device to your manufacturer. If you poll the device, be sure to have read that part of the documentation (that's why I took the trouble to write it).
The first thing to check when polling a device is whether it's register 3 continuously supplies information. If R3 fails to turn up information, your device is probably broken. If R3 provides information, activate the device (e.g. press some keys, buttons or whatever) and look for changes. If the register information responds well enough, chances are high that the device is OK.

If you are unable to detect any change while playing with the device, we must go to the heart of the matter. All devices *must* send some data through register zero when it is activated. However, ADB Prober is usually too fast when updating the register information in normal polling. Use T-Polling to verify that your device is working. T-Polling waits for register zero to transmit data and then displays all registers (without updating them).
Should a device not respond to activation, it is probably broken. Note that in this case you are not able to exit ADB Prober short of pressing Reset (and thus losing all your open documents - you did save, didn't you?).

There is always the possibility that not your devices are flakey, but that the ADB chip itself took leave. This generally happens when you connect or disconnect a device while the Mac is switched on. Normally, the ADB chip simply goes the way of the Dodo and you won't be able to use any device.
Sometimes, however, the chip is only halfway gone and all kinds of strange results can happen. These include random keypresses, mouse clicks, freezes and other undesirable effects. ADB Prober is *not* able to detect a broken or wouded ADB chip.

As a last resort, you can always email me, but since the initial release of Prober I am flooded with emails. A reply will usually take me 1 to 2 weeks, so it's normally faster to just go ahead and try a few things yourself.

Also, note that I do not work for Apple and I'm not the ADB Guru for this side of the galaxy.

The Devices ADB Prober Knows:
ADB Prober currently recognizes:
* Mouse
Apple Standard
Mouse Systems optical A^3 Mouse
Kensington Turbo Mouse
MicroSpeed Mouse Deluxe Mac

* Trackpad (PB 540c)

* Trackball
emac Silhouette
Mouse Systems Trackball
PowerBook 180
PowerBook 140
PowerBook Duo
CoStar Stingray
Logitech Trackman
CH Products Trackball Pro

* Keyboard
Extended II
Apple Keyboard II (various kinds and then some)
PowerBook 540 (various)
PowerBook 140
PowerBook 145
PowerBook Duo
Apple Adjustable (various)
Cutting Edge Extended
Apple IIgs

* Keypad (from Apple Adjustable Keyboard)

* Joysticks
Gravis MouseStick II
Gravis GamePad +
MacEnjoy v1.0
MacEnjoy v2.x
MacEnjoy Style
MacEnjoy future devices...
MacEnjoy Flight
CH Products Flight Stick
CH Products Jet Stick

* WACOM ArtPad Tablett

* Power Devices
PowerKey Pro

* Dongle
Corean Lock

* Monitors
Apple AudioVision 14" (various)
Apple AudioVision 17"

* Apple AudioVison control ++

* Calcomp DrawingSlate

* Light Source Colortron

* Sophisticated Circuits AutoDialer

* Nisus Language Key

+The Gravis GamePad can only be recognized if you run the GamePad extension. So far I have no idea how to detect it. Maybe someone at Gravis will help me out some time.

++The AudioVision Control is a device that is built into Apple's Adjustable Keyboard and some 17" Monitors. It controls the sound and brightness settings and probably some other things. If ADB Prober finds this device on your ADB and you are sure you have neither connected, be sure to tell me about it.

What an ADB Device Producer should know
Up to version 0.97, ADB Prober identified a device merely by its type and original address. However, many early ADB device producers failed to provide it's own type and made it's devices identify itself as a mouse.
Therefore, there are many conflicting designations. For example, ADB Prober is unable to distinguish between a CoStar Stingray, Logitech Trackman or WACOM Mouse.

Since version 0.97 ADB Probers capabilities to deep-probe have been significantly enhanced. It is now able to distinguish between devices it formerly was unable to. For example, early versions of the MacEnjoy Joystick Adapter identified themselves as a Mouse. Now, ADB Prober can correctly identify such a device. This was only possible because the producers of MacEnjoy (FESH! Inc.) provided me with the relevant information.

If you produce a device that ADB Prober is not able to uniquely identify, please write me about it and tell me how your own software is able to recognize your device. I will make sure that a new version of ADB Prober correctly identifies your device.

What it thinks it knows but actually doesn't:
The following devices are not correctly recognized:
* SuperMac TrackBall (identifies as Keyboard Apple Standard) +
* Some versions of Gravis GamePad (identifies as Keyboard Apple Standard) +
* MicroQue QuePoint (identifies as Mouse)
* Keytronic Trackmate Mac +
* ACIUS 4D Dongle

+ If you have this device, please Poll it and send me the results. Maybe I'm now able to correctly identify them

Also, ADB Prober may find more devices than that are actually connected to your system. ADB Prober tries to identify these 'Phantom Devices'. If this happens to you, please email me and tell me your setup and what Extensions you have running.

What it doesn't know:
I'm looking for the device characteristics of the following devices:
* Trackballs
* Q-Stick
* UnMouse
* DataGlove (the ADB version)
* Any Graphic Tablet or Light Stick not listed
* Any other input device you may come across that's not listed under

What I would like to know
Run ADB Prober. If you encounter an ambiguous designation (for example 'Mouse/Trackball') I would like you to help me resolve it. If you feel up to it, supply me with some more detailed information. First, look at the 'CA' column of the device in question. Write it down. Now, select the device and press the 'Poll' button. You will be rewarded with a window that dumps four resgisters as sequences of 'Hex Bytes'. Write these numbers down as well. Now, activate the device (e.g. move joystick's handle, draw a line with the pen on your tablet or bend a finger in your PowerGlove). Some numbers will change. Again, write down the new numbers along with what you did to activate the device.

Note that some devices (e.g. Mouse, Keyboard) have some constantly changing registers. If that happens, be sure to also write it down.

Finally, write down the model number and producer of your device. Send all this information to for me to process and incorporate it into the program. Oh, and if the information warrants a new version of Prober, you will get the credits for it!

What you should know:
If you run into a device ADB Prober is unable to correctly identify, please send me the results (along with a note listing all your connected devices). Should you encounter any unknown or phantom devices or have the program flag a device with a question mark, please be sure to tell me about it.

I will then need the following details:

1. Name, Manufacturer and possibly version numbers of all devices connected
2. ADB Prober Version number
3. The output of ADB prober (a COMPRESSED screenshot will do nicely, but you may
as well write a list)

Send me a letter to

or (if you don't have Internet access) to:

C. Franz
Universitaetstrasse 93

If you send in this information, I will be able to update the ADB Prober to
correctly recognize all devices. Of course, feel free to mail me just to tell me your view of the world in general and ADB Prober in particular.

What your wallet should know
ADB Prober is free. I hope you like the program. If you do, you may keep it. If you don't, you must erase it within two weeks from your harddisk.

What AOL users should know
ADB Prober works only on Macs with ADB. This means that it does NOT work on the original Mac, the Lisa (Mac XL), the Mac 512 or the Mac Plus, even if so-called 'file-descriptors' from AOL-native archive moderators state differently.

What my lawyer knows:
ADB Prober ('the program') is provided free of charge. I, Christian Franz, retain all rights to this program and it's documentation. You may not charge any amount of money for this program or it's distribution other than the usual downloading fee from BBS. You may not alter either program or its documentation and may not distribute modified versions of program or documentation. If you distribute the program, you must include this documentation.

Use the program at your own risk. I will not assume any liability for any damages received through the use of ADB Prober (or, for that matter, its documentation).

Zürich, July 1995

What I preferred not to have known:

"Sadder still to watch it die than never to have known it". How true.

Original file name: ADB Prober Docs - converted on Wednesday, 8 March 2000, 01:45

This page was created using TextToHTML. TextToHTML is a free software for Macintosh and is (c) 1995,1996 by Kris Coppieters