Hand Held Products Scanner 4X00 Series User Manual

IMAGETEAM 4X00 Series  
For Adaptus Imaging Technology Imagers:  
IT4000, IT4100, and IT4300  
Hardware Interface Layer Specification  
User’s Guide  
 
     
Laser Eye Safety Statement for IT4300 Series Engines  
The IT4300 is intended for use in CDRH/IEC Class 2 devices.  
/$6(5ꢀ/,*+7ꢀꢀ'2ꢀ127ꢀ67$5(ꢀ,172ꢀ%($0  
&/$66ꢀꢂꢀ/$6(5ꢀ352'8&7  
ꢃꢁꢄꢀP:ꢀ0$;ꢀ287387ꢀꢆꢇꢈꢀWRꢀꢆꢆꢄQ0  
(1ꢆꢄꢉꢂꢈꢊꢃꢅꢀꢃꢋꢋꢇꢀꢌꢀ$ꢃꢃꢀꢌꢀ$ꢂ  
&RPSOLHVꢀZLWKꢀꢂꢃꢀ&)5ꢀꢃꢄꢇꢄꢁꢃꢄꢀDQGꢀꢃꢄꢇꢄꢁꢃꢃ  
H[FHSWꢀIRUꢀGHYLDWLRQVꢀSXUVXDQWꢀWRꢀ/DVHU  
1RWLFHꢀ1RꢁꢀꢈꢄꢍꢀGDWHGꢀ-XO\ꢀꢂꢆꢍꢀꢂꢄꢄꢃꢁ  
Note: It is the OEM manufacturer’s responsibility to comply with applicable regulation(s) in regard to standards for specific  
equipment combinations.  
Caution: Use of controls or adjustment or performance of procedures other than those specified herein may result in  
hazardous radiation exposure.  
 
 
Table of Contents  
i
 
Introduction and Overview  
This document is an overview of the structure of the IT4X00 Series OEM imaging software provided by Hand Held Products.  
Detailed information that describes the Hand Held Products OEM Application Programming Interface (IMAGETEAM 4X00 SDK  
User’s Guide) is provided as a part of that imaging software.  
Design Overview  
The Hand Held Products OEM imaging software supports a number of different Hand Held Products imaging engines while  
exposing the user to a common programming interface for all imagers supported. This approach provides Hand Held Products  
with a simple way of adding support for new imaging hardware, while allowing user software to remain largely unchanged. In  
support of this design approach, the software components implemented in the Hand Held Products OEM imaging software have  
been organized in the following layered format:  
User Layer  
OEM API Layer  
Image Acquisition Layer  
Hardware Interface Layer  
Of the four layers, Hand Held Products supplies the OEM API and Image Acquisition layers.  
User Layer  
The User Layer can be the application that is written by a developer or end user that accesses the imaging system by using the  
OEM API functions. The User Layer can alternatively be an abstraction layer provided by an OEM that allows the OEM to  
customize the level of API functionality exposed to their end user. Either option has access to all the applicable OEM API  
functions that access and control the imaging subsystem  
OEM API Layer  
The OEM API Software is supplied by Hand Held Products and is the primary interface to the imaging system. All members of  
the OEM Image Engine Family are supplied with a Software Developers Kit to facilitate command and control of the image  
®
engines. For Windows CE applications, the OEM API Software functionality is provided in the form of a Windows Dynamic  
Link Library. For non-Windows CE applications, the form of the OEM API Software is to be determined. Full explanation of the  
OEM API is provided in the IMAGETEAM 4X00 SDK User’s Guide.  
Image Acquisition Layer  
The Image Acquisition Software layer is the software supplied by Hand Held Products that is responsible for imager auto  
detection, initialization, state management, exposure control, and image acquisition. During application execution, this software  
maintains the state and control of the imager, processes requests for images, and executes configuration and control requests.  
For Windows CE applications, this layer is implemented in a stream device driver and is used by the OEM API layer. For non-  
Windows CE applications, the form of this layer and its interface to the OEM API layer is to be determined.  
Hardware Interface Layer  
The Hardware Interface Software is the hardware-specific software provided by the system developer and used by the Image  
Acquisition Software to access the physical imaging hardware and run hardware-specific tasks on the system. This software is  
called upon by Image Acquisition Software to handle physical control of the hardware, such as communication with the imager,  
timing functionality, low level interrupt service routine control, DMA initialization and control, system specific memory control, and  
illumination functionality. For Windows CE applications, it is expected that this layer will be provided in the form of a Windows  
Dynamic Link Library that will be loaded by the Imaging device driver. For non-Windows CE applications, the form of this layer  
and its interface to the Image Acquisition Software is to be determined.  
1
 
           
Alphabetic Function List  
The following is a list of functions that the ImagerHardware DLL must export to support the imaging device driver. The functions  
described below are specific to the IC Media imager and the ICMedia product specification and should be reviewed for coherency  
with this document.  
AimIsOnICMedia  
This function returns the state of the aimer.  
BOOL AimIsOnICMedia(  
void  
)
Returns  
Zero if OFF, non-zero if ON.  
AimOffICMedia  
This function turns off the aimer.  
BOOL TurnAimerOffICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success  
AimOnICMedia  
This function turns on the aimer.  
BOOL TurnAimerOnICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
AllocatePhysicalScanSpaceICMedia  
This function reserves the physical memory for a single image. It does not matter to the driver how physical memory is handled  
on the specific platform. When the "pseudo-handle" is passed to various functions, a specific block of physical memory is  
referenced.  
DWORD AllocatePhysicalScanSpaceICMedia(  
void  
)
Returns  
DWORD - a "pseudo-handle" to physical memory on success. This "pseudo-handle" will be used to communicate a  
specific physical buffer when other memory functions are called. This function returns zero on failure.  
2
 
         
BindPhysicalMemoryToVirtualMemoryICMedia  
This function binds the physical memory of an image, specified by "hPhysical," to a virtual memory location specified by  
"pVirtual."  
Note: It is possible that multiple calls to this function may be made with the same physical pseudo-handle, but a different virtual  
address, i.e., binding multiple virtual addresses to the same physical space at the same time. This is normal.  
DWORD BindPhysicalMemoryToVirtualMemoryICMedia(  
DWORD hPhysical,  
void *pVirtual  
)
Passed Arguments  
Description  
DWORD hPhysical  
A "pseudo-handle" to a reserved physical memory slot. This was the "pseudo-handle"  
returned by AllocatePhysicalScanSpaceICMedia when the space was allocated.  
void *pVirtual  
A pointer to a virtual address to be bound to the physical memory referenced by  
hPhysical.  
Returns  
Zero on failure, non-zero on success.  
CaptureInitiatedICMedia  
In order to stay synchronized with the incoming images, the scan driver needs to know when each request to acquire a new image  
has been successfully completed. A request for a new capture that is made before the front edge of the Vsync signal (an optional  
function) should be carried out on the front edge of the next Vsync signal. CaptureInitiatedICMedia is called after the front edge  
of Vsync to determine if that has happened.  
DWORD CaptureInitiatedICMedia(  
void  
)
Returns  
Zero indicates that on the last front edge of Vsync a new capture request was not carried out. This will occur either  
because the requet was never made, or because the request was made but was unsuccessful.  
Non-zero indicates that a new capture request was carried out on the last front edge of Vsync.  
DeinitializeImageLineDataProcessingICMedia  
This function is used to destroy, or undo any software or hardware configurations that are associated with the calling of the image  
data line processing.  
DWORD DeinitializeImageLineDataProcessingICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
DeinitializeVsyncProcessingICMedia  
This function disables the system from responding to the Vsync pulse from the imager. This involves undoing the setup  
DWORD DeinitializeVsyncProcessingICMedia(  
void  
)
3
 
       
Returns  
Zero on failure, non-zero on success.  
DisableImageLineDataProcessingICMedia  
This function disables the calling of the ImageLineDataCallback function registered with  
DWORD DisableImageLineDataInterruptICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
DisableVsyncInterruptICMedia  
This function disables the calling of the Vsync call-back function, registered with RegisterVsyncNotificationICMedia (see page  
DWORD DisableVsyncInterruptICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
EnableImageLineDataProcessingICMedia  
This function enables the calling of the call-back function, registered via RegisterImageLineDataNotificationICMedia (see page  
page 10). It should be noted that the callback should only be called when image data is currently being captured from the image  
engine.  
DWORD EnableImageLineDataInterruptICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
EnableVsyncInterruptICMedia  
This function enables the calling of the Vsync call-back function, registered with RegisterVsyncNotificationICMedia (see page  
DWORD EnableVsyncInterruptICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
4
 
       
FreePhysicalScanSpaceICMedia  
This function frees the physical memory for a single image.  
DWORD FreePhysicalScanSpaceICMedia(  
DWORD hImage  
)
Passed Arguments  
Description  
DWORD hImage  
A "pseudo-handle" to a reserved physical memory slot. This was the value returned by  
AllocatePhysicalScanSpaceICMedia when the space was allocated.  
Returns  
DWORD - This function returns non-zero on success, zero on failure.  
GetFrequencyPerFrameOfLineDataCallbackICMedia  
This function returns the number of calls made to the image line data callback function during each frame. When using an  
operating system such as Windows CE, it may be difficult to tell consistently how many callbacks may be made per frame. In  
that case, make a low estimate. Therefore, if on a given system the callback may be called from 28-33 times, a safe number  
would be 27.  
DWORD GetFrequencyPerFrameOfLineDataCallbackICMedia(  
void  
)
Returns  
A number 'N' that completes this statement, "the line processing occurs at least 'N' times per frame."  
GetHardwareDllRevisionICMedia  
This function returns a revision number of the hardware DLL. The functions included with any given revision of the hardware  
DLL are determined by this number. This guarantees that if the Image Acquisition Layer driver software is updated, but a  
hardware DLL has not been updated, the software will be backward compatible. This document represents what should be  
included in revision 1 of the hardware DLL.  
Note: This function can be used as a general hardware layer initialization function since it is only called by the scan driver one  
time, and it does not have the limitations of a base DLL initialization (for example, it can’t call Win32 API functions).  
DWORD GetHardwareDllRevisionICMedia(  
void  
)
Returns  
Revision number of the hardware DLL.  
5
 
     
GetImagerPropertiesICMedia  
This function requests the properties of the imager currently interfacing to the hardware layer.  
BOOL GetImagerPropertiesICMedia(  
const DWORD * pBuffIn,  
DWORD * pBuffOut,  
DWORD dwLen  
)
Passed Arguments  
Description  
pBuffIn  
Pointer to a buffer of DWORDs that are TAGs to the properties the scan driver is  
requesting.  
pBuffOut  
dwLen  
Pointer to output buffer that has corresponding values and order to TAGs in pBuffin.  
Length of both pBuffin and pBuffOut.  
Tags:  
typedef enum {  
IP_SIZE,  
IP_ENGINE_ID,  
IP_NUM_ROWS,  
IP_NUM_COLS,  
IP_BITS_PER_PIXEL,  
IP_ROTATION,  
IP_AIMER_X_OFFSET,  
IP_AIMER_Y_OFFSET,  
IP_YDEPTH  
} HHPScanDriverImagerProperties_t;  
Returns  
TRUE if successful, FALSE otherwise.  
GetNumberOfValidRowsICMedia  
This function is called in the middle of image captures to find out how many image rows of data have been transferred completely  
in the incoming image at a given time.  
DWORD GetNumberOfValidRowsICMedia()  
Returns  
DWORD - The number of valid image rows of data.  
6
 
   
GetRegisterSettingsForHHPExposureControlICMedia  
This function is used for the hardware DLL to give the driver access to the register settings needed for its hardware platform.  
The structure below represents the array data type the GetRegisterSettingsForHHPExposureControlICMedia function returns to  
the driver via the ppRegisterEntries pointer:  
typedef struct {  
unsigned char nRegister;  
unsigned char nValue;  
} ICMediaRegisterEntry_t;  
DWORDGetRegisterSettingsForHHPExposureControlICMedia(  
ICMediaRegisterEntry_t **ppRegisterEntries  
)
Passed Arguments  
ICMediaRegisterEntry_t **ppRegisterEntries  
A pointer to a location where a pointer to the register settings can be set. The  
Description  
ICMediaRegisterEntry_t is defined above. The table itself is an array of these  
structures having a register location, and the value it is to be set to in each entry.  
Returns  
DWORD - The number of entries in the table returned to the driver.  
GetScanHeightICMedia  
This function returns the number of rows in the image.  
DWORD GetScanHeight(  
void  
)
Returns  
Number of rows or zero on failure.  
GetScanWidthICMedia  
This function returns the number of columns in the image.  
DWORD GetScanWidth(  
void  
)
Returns  
Number of columns or zero on failure.  
IllumIsOnICMedia  
This function returns the state of the illumination LEDs.  
BOOL IllumIsOnICMedia(  
void  
)
Returns  
Zero if OFF, non-zero if ON.  
7
 
       
IllumOffICMedia  
This function turns off the illumination LEDs.  
BOOL TurnLEDsOffICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
IllumOnICMedia  
This function turns on the illumination LEDs.  
BOOL TurnLEDsOnICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
ImagerIsPoweredICMedia  
This function indicates whether or not the image engine is currently in powerdown mode.  
BOOL ImagerIsPoweredICMedia(  
void  
)
Returns  
Zero if the engine is currently in powerdown mode, non-zero if it is not.  
ImagerPowerDownICMedia  
This function puts the image engine into powerdown mode via a power enable signal.  
BOOL ImagerPowerDownICMedia(  
void  
)
Returns  
Zero if successful, non-zero otherwise.  
ImagerPowerOffAndSuspendICMedia  
This function controls a physical switch to cycle power off the imager. This is typically implemented for Win CE suspend/resume.  
DWORD ImagerPowerOffAndSuspendICMedia(  
DWORD  
)
Passed Arguments  
Description  
0
1
Normal case. Win 32 API functions are still allowed.  
Suspend/Resume. (For example, in Win CE this implies that it is not safe to call Win32  
or user layer functions.)  
8
 
         
Returns  
TRUE if successful, FALSE otherwise.  
ImagerPowerOnAndResumeICMedia  
This function controls a physical switch to cycle power on the imager. This is typically implemented for Win CE suspend/resume.  
DWORD ImagerPowerOnAndSuspendICMedia(  
DWORD  
)
Passed Arguments  
Description  
0
1
Normal case. Win 32 API functions are still allowed.  
Suspend/Resume. (For example, in Win CE this implies that it is not safe to call Win32  
or user layer functions.)  
2
Resume, but don't power on. To be powered on during next image I/0 event.  
Returns  
TRUE if successful, FALSE otherwise.  
ImagerPowerUpICMedia  
This function takes the image engine out of powerdown mode via a power enable signal.  
BOOL ImagerPowerUpICMedia(  
void  
)
Returns  
Zero if successful, non-zero otherwise.  
InDownTimeICMedia  
This function tells whether you are in the appropriate area of the frame to successfully write registers to have them take effect  
for the next image. "Down Time" represents the time between frames. For the IC Media 105A imager, this is the time when the  
Vsync state represents that no valid pixel data is available.  
BOOL InDownTimeICMedia(  
int  
)
Returns  
Zero if successful, non-zero if currently in the "down time" of the frame.  
9
 
     
InitCaptureICMedia  
This function indicates that a transfer will begin on the next Vsync pulse, and the image data will go into the physical memory  
location referenced by "hPhysical." This function can be called at any time during a frame, and the driver relies on the hardware  
DLL and associated functionality to synchronize to the next Vsync to begin a frame. The Vsync is the border. Anything that  
comes in before the front edge of a Vsync will initiate a transfer on the next Vsync. Anything that comes in after that edge of  
Vsync will wait for the next Vsync.  
Note: The scan driver then assumes that because the Vsync IST runs after this front edge of Vsync, that any calls to  
InitCaptureICMedia that are made during the Vsync IST will wait until the front edge of the next Vsync to be initiated  
DWORD InitCaptureICMedia(  
DWORD hPhysical  
)
Passed Arguments  
Description  
DWORD hPhysical  
A "pseudo-handle" to a reserved physical memory slot. This is the "pseudo-handle"  
returned by AllocatePhysicalScanSpaceICMedia when the space was allocated.  
Returns  
Zero on failure.  
1 - capture request was initiated, but it happened just after the front edge of Vsync (i.e., in down time), and therefore will  
only take effect on the next front edge of Vsync.  
2 - capture request will take effect on next front edge of Vsync.  
InitializeImageLineDataProcessingICMedia  
This function is used to set up any necessary hardware and or software associated with generating the callback to the data line  
processing functionality in the scan driver. This should not enable the calling of this callback. It should only initialize it. To enable  
DWORD InitializeImageLineDataProcessingICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
InitializeVsyncProcessingICMedia  
This function configures the hardware and software of the system to respond to the front edge of the Vsync, and put in place the  
mechanisms that perform the call of the callback upon the receipt of that edge. The callback functionality is only initialized int his  
function, not enabled. (see EnableVsyncProcessingICMedia and DisableVsyncProcessingICMedia).  
DWORD InitializeVsyncProcessingICMedia(  
void  
)
Returns  
Zero on failure, non-zero on success.  
10  
 
     
ReadIIC_ICMedia  
2
This function uses the i c interface protocol to read data from 'ucSubaddress' register location and places it at the location  
specified by 'pucBuffer'.  
unsigned int ReadIIC_ICMedia(  
unsigned char ucSubaddress,  
unsigned char *pucBuffer  
)
Passed Arguments  
Description  
unsigned char ucSubaddress  
unsigned char *pucBuffer  
The register location where the data will be read from.  
A pointer to the location where the data from the imager will be stored.  
Returns  
Non-zero if data is successfully read. Zero if there was an error.  
RegisterImageLineDataNotificationICMedia  
This function is called during initialization of the imager to register a function to be called at various points during the image  
acquisition process. This function will most likely be called as the result of a hardware generated line interrupt, an IST generated  
from that interrupt, or at different times throughout an image capture based on an internal software scheduler.  
DWORD RegisterImageLineDataNotificationICMedia(  
void (*fImgDataNotif)(void)  
)
Passed Arguments  
Description  
void (*fImgDataNotif)(void)  
Function pointer to a function that receives no arguments, and returns nothing.  
Returns  
Zero on failure, non-zero on success.  
RegisterVsyncNotificationICMedia  
This function is called during initialization of the imager to register a function to be called after the Vsync interrupt. This function  
could be called as part of an ISR handler or, as in WinCE applications, this registered function will most likely be called from an  
IST.  
DWORD RegisterVsyncNotificationICMedia(  
void (*fVsyncNotif)(void)  
)
Passed Arguments  
Description  
void (*fVsyncNotif)(void)  
Function pointer to a function that receives no arguments, and returns nothing.  
Returns  
Zero on failure, non-zero on success.  
RequestSynchronizedPowerDownICMedia  
This function requests that the imager be put in power down mode upon receiving the next front edge of Vsync. The IC Media  
imager freezes when it goes into power down mode, and the goal is to have the imager in the “between frames” state (i.e., in  
down time) when this request is made. The difference between this function and the SynchronizedPowerDownICMedia function  
is that this function does not wait until the next Vsync to check to see if the imager has successfully been put into power down  
mode. The area of the scan driver that uses this function performs that check separately.  
void RequestSynchronizedPowerDownICMedia(  
void  
)
11  
 
       
Returns  
None.  
ResetTransferHardwareICMedia  
This function stops a transfer that is either ready to run, or currently running. It also resets the system making it ready for the  
next call to InitCaptureICMedia.  
void ResetTransferHardwareICMedia(  
void  
)
Returns  
None.  
SynchronizedPowerDownICMedia  
This function puts the imager in power down mode upon receiving the next front edge of Vsync. The IC Media imager freezes  
when it goes into power down mode, so one of the checks after the power down is to make sure the Vsync is in the "between  
frames" state (in down time), since that’s where the IC Media camera should be frozen.  
BOOL SynchronizedPowerDownICMedia()  
Returns  
Non-zero if successfully powered down in the down time.  
UnBindPhysicalMemoryFromVirtualMemoryICMedia  
This function unbinds the physical memory of an image, specified by "hPhysical," from the virtual memory location specified by  
"pVirtual." This does not, however, free any memory. The "pVirtual" pointer should still be a valid pointer pointing to RESERVED  
but not COMMITTED memory, and the physical memory should still be available for future bindings.  
DWORD UnBindPhysicalMemoryFromVirtualMemoryICMedia(  
DWORD hPhysical,  
void *pVirtual  
)
Passed Arguments  
Description  
DWORD hPhysical  
A "pseudo-handle" to a reserved physical memory slot. This was the "pseudo-handle"  
returned by AllocatePhysicalScanSpaceICMedia when the space was allocated.  
void *pVirtual  
A pointer to a virtual address.  
Returns  
DWORD - This function returns non-zero on success, zero on failure.  
WaitForVsyncICMedia  
This function waits until the imager sees the front edge of the Vsync, then it returns. Since many systems involve threads going  
to sleep waiting for this event to occur, a safety check on the way out of this function is to see if the Vsync reflects the camera  
being "between frames" (down time).  
BOOL WaitForVsyncICMedia()  
Returns  
Non-zero on successful synchronization to the Vsync before returning.  
12  
 
       
WaitMillisecondsICMedia  
This function waits the number of milliseconds indicated before returning.  
void WaitMillisecondsICMedia(  
DWORD nTime  
)
Passed Arguments  
Description  
NTime  
The number of milliseconds to delay.  
Returns  
None.  
WriteIIC_ICMedia  
2
This function uses the i c interface protocol to write the 'ucBuffer' data to the imager at the 'ucSubaddress' location.  
DWORD WriteIIC_ICMedia(  
unsigned char ucSubaddress,  
const unsigned char *pucBuffer  
)
Passed Arguments  
Description  
unsigned char ucSubaddress  
unsigned char *pucBuffer  
The 8 bit address where data will start being written to.  
A pointer to the byte of data that will be written to the "subaddress."  
Returns  
Non-zero if data is successfully transferred. Zero on error.  
13  
 
   
Programming Notes  
1. It is essential that callbacks for Vsync processing and Image Line Data processing not run at the same time, for example,  
with 2 separate threads. It is essential that checks are made in the Hardware Interface DLL to ensure that a call to one  
callback is complete before a second call to that callback, or a call to the other callback is made. To avoid this, use ISRs  
that do not allow nesting. Or, if using ISTs in the Windows CE model, use the same thread to process both callbacks.  
2. It is assumed that an image transfer is initiated on the front edge of Vsync. InitCaptureICMedia (see page 10) can be  
called at any time during the frame, and the hardware DLL must synchronize it with the hardware. Returning a 1 or 2 from  
InitCaptureICMedia is not mandatory. If a specific hardware system allows for initiation of an image transfer after the front  
edge of Vsync, a 2 may be returned when InitCaptureICMedia is called because it takes effect for the next frame. But it is  
imperative that calls made to InitCaptureICMedia from the Vsync callback only take effect on the next Vsync front edge.  
3. If running an Operating System on the target platform, such as Windows CE, processing of the Vsync and Image Data Line  
callbacks must be high priority to ensure proper timing.  
4. There are times when the Vsync callback function will have to wait for longer than a single frame time for an event,  
resulting in a second Vsync front edge being seen. If, upon returning from the Vsync callback function, another Vsync front  
edge has passed, do not call the callback again. Wait for the next one.  
14  
 
Customer Support  
Technical Assistance  
If you need assistance using the IT4X00 Series OEM imaging software, please call your Distributor or the nearest Hand Held  
Products technical support office:  
North America/Canada:  
Telephone:  
Fax number:  
E-mail:  
(800) 782-4263, option 4 (8 a.m. to 6 p.m. EST)  
(315) 685-4960  
Europe, Middle East, and Africa:  
Telephone-  
European Ofc: Int+31 (0) 40 79 99 393  
U.K. Ofc:  
E-mail:  
Int+44 1925 240055  
Asia Pacific:  
Telephone:  
E-mail:  
Int+852-3188-3485 or 2511-3050  
America Latina:  
Teléfono:  
E-mail:  
(704) 998-3998, opción 8  
Online Technical Assistance  
You can also access technical assistance online at www.handheld.com.  
15  
 
     
 
Hand Held Products, Inc.  
700 Visions Drive  
P.O. Box 208  
Skaneateles Falls, NY 13153-0208  
4X00HWIntfc-UG Rev B  
(6/05)  
 

Hasbro Motorized Toy Car 69220 69129 User Manual
Havis Shields Automobile Accessories C 3610 CV User Manual
Heat Glo LifeStyle Indoor Fireplace SLR B COSMO User Manual
Hotpoint Freezer RZA51 User Manual
Hotpoint Washer AQ9D 692 U User Manual
HP Hewlett Packard All in One Printer 1215 User Manual
HP Hewlett Packard Digital Camera E427 User Manual
HP Hewlett Packard Sprinkler 652A User Manual
Hunter Fan Air Cleaner 30841 User Manual
Husqvarna Lawn Mower Accessory YTH2014 Twin User Manual