IEEE 1284 Driver Toolkit Frequently
Asked Questions
This
list should address the most common questions regarding the 1284
Driver Toolkit. If you have further questions, please contact us.
-
Technical
questions should be addressed to TK Support.
-
Click
here if you are interested in obtaining
an evaluation version of our Driver Toolkit.
-
Click
here to see a partial list of companies
who have purchased our 1284 Driver Toolkit.
What Operating Systems do you support?
We
have a version of the Toolkit for Windows 95/98/ME and a version for
Windows NT 3.51/4.0. For Windows 2000, please see next question.
Does your NT driver work with Windows 2000?
The
current Warp Nine IEEE 1284 Toolkit Driver for NT has been tested
with the Microsoft Windows 2000 operating system and to date we've
not experienced problems, nor do we expect any significant problems
in the future. We do not plan on developing an independent Windows
2000 Toolkit and will support Windows 2000 through our standard
NT driver. At this time, we do not have plans to develop a WDM driver
for Windows 2000.
How
are the drivers delivered?
Windows 95/98/ME
The WARP NINE 1284 driver is delivered as a dynamically loadable
Windows 9x VxD, that is, a file with a .VxD extension. A Visual
C++ 6.0 MFC-based WIN32 sample program (and source files to build
it) are provided as well. The sample program illustrates the use
of the API. Finally, an include file is delivered which contains
the constants and data structures that the client application needs
to interface with the driver.
Windows NT/2000
The WARP NINE 1284 driver is delivered as a Windows NT/2000 Kernel-Mode
Device driver, that is, a file with a .SYS extension. A Visual C++
6.0 MFC-based WIN32 sample program (and source files to build it)
are provided as well. The sample program illustrates the use of
the API. Finally, an include file is delivered which contains the
constants and data structures that the client application needs
to interface with the driver. Note that the driver is delivered
for Intel CPU platforms only. The driver is not available for Alpha,
MIPS, or Power PC platforms.
What
documentation is provided?
Since
the WARP NINE 1284 driver contain APIs to allow interaction with
a WIN32 application, documentation on how to operate this API is
required. This design specification contains a detailed write-up
of the API. In addition to the API description, the source code
of sample program is delivered with the software. The sample program
exercises all functionality of the driver API. Therefore, the API
description in the supplied document and the sample code in the
test program serve as the documentation for the API.
What IEEE 1284 protocols do you support?
Our
drivers support all of the 1284 protocols including Compatible,
Nibble, Byte, ECP (with or without DMA and interrupt), EPP, Device
ID and negotiation.
Configuration available:
-
Nibble,
Byte, Device ID, Fast Centronics, Negotiation, ECP and EPP
Does
the Toolkit support 1284.4?
IEEE
1284.4 is a different level of protocol. An implementation of 1284.4
could certainly use our 1284 Toolkit for the datalink layer and
physical protocols. A 1284.4 implementation would do the transport
level protocol. We
could build a .4 implementation and integrate it with our toolkit,
but we have no plans at this point to expand the toolkit to include
.4.
How
is ECP mode implemented?
The
ECP Mode of operation of the WARP NINE 1284 driver, as well as the
Compatibility Mode with the Fast Centronix option enabled, requires
hardware assistance in the form of access to a parallel port implemented
as specified in the "Extended Capabilities Port Protocol and ISA
Interface Standard" by Microsoft Corporation. Both a polled and
interrupt-driven mode of operation is provided. The interrupt-driven
mode of operation provides a DMA-based in addition to the programmed
I/O-based method of data transfer. The interrupt-driven mode of
operation requires that an IRQ has been configured for the port.
The DMA-based method of transfer requires that an IRQ has been configured
for the port as well as a DMA channel.
How is EPP mode implemented?
The
EPP Mode of operation requires hardware assistance in the form of
access to the EPP address port, EPP data port(s), and the ECR register.
The ECR register is a control register defined in the "Extended
Capabilities Port Protocol and ISA Interface Standard" by Microsoft
Corporation. The WARP NINE 1284 driver will switch the interface
in EPP Mode by writing 100 in bits 7:5 of the ECR register. For
EPP normally a polled mode of operation is provided (with a programmed
I/O-based method of data transfer), therefore no IRQ or DMA channel
need to be configured. However, optionally EPP Mode could be configured
to process an interrupt as indication that the peripheral has data
available. If this option is selected, an IRQ needs to be configured.
How is Nibble and Byte mode implemented?
Both
the Byte Mode and Nibble Mode of operation are implemented in software
only. The Byte Mode of operation requires that the parallel port
is capable to receive data using all eight data lines. For both
modes only a polled mode of operation is provided (with a programmed
I/O-based method of data transfer), therefore no IRQ or DMA channel
need to be configured.
I
noticed in the documentation that there is only support for reverse
channel transfers in EPP mode -- does the driver not support reverse
channel transfer in ECP mode? As I understand, IEEE1284 allows the
peripheral device to send a reverse channel request in ECP mode
to allow it to communicate on a channel other than the current forward
channel.
The
IEEE 1284 Standard provides for reverse channel information in ECP
mode, but the host chip manufacturers did not put in any way to
receive this information. Microsoft did not see a reason for this,
so they refused to support it. So, although it is part of the standard
there is no way to actually receive it.
How to I make calls to the driver?
After
opening the driver, the client application can issue API calls to
the driver using the obtained handle and the WIN32 DeviceIoControl
API call. Although the WIN16 API does not support the WIN32 DeviceIoControl
API, a VxD service is provided that emulates the functionality of
this API. In the sample program, a DeviceIoControl function is supplied
that invokes this VxD service.
What are some of the sample IOCTL calls?
PAR_IOCTL_GET_VERSION
PAR_IOCTL_SET_TIMEOUT_INFO
PAR_IOCTL_OPEN_PORT
PAR_IOCTL_CLOSE_PORT
PAR_IOCTL_ACQUIRE_PORT
PAR_IOCTL_RELEASE_PORT
PAR_IOCTL_SET_MODE
PAR_IOCTL_GET_MODE
PAR_IOCTL_CANCEL_SET_MODE
PAR_IOCTL_WRITE_ADDRESS
PAR_IOCTL_WRITE_DATA
PAR_IOCTL_CANCEL_WRITE
PAR_IOCTL_READ_ADDRESS
PAR_IOCTL_READ_DATA
PAR_IOCTL_READ_DEVICE_ID
PAR_IOCTL_CANCEL_READ
PAR_IOCTL_SET_TIMING_INFO
PAR_IOCTL_GET_TIMING_STATS
PAR_IOCTL_GET_TICK_COUNT
PAR_IOCTL_INPUT_PORT
PAR_IOCTL_OUTPUT_PORT
PAR_IOCTL_DETECT_CAPABILITIES
Is
there a breakdown of which PC's (including laptops) and I/O 1284
chips the Toolkit has been tested with?
We
don't have a chart on which platforms we've tested on; there are
too many platforms and way too many variables on each platform for
us to keep track of. We have licensed this code to over 100 customers
and have not had any specific platform problems. We have very simple
requirements to work with:
1- The ECR must be enabled in order to use ECP mode.
2- In Win95/98/ME, the IRQ or IRQ and DMA must be set in the resources
under Device Manager.
The DMA usage is not platform dependent, it's user dependent. You
can have two of the same platforms and you can have these variations:
1- ECP not enabled in BIOS
In this case you cannot do ECP on that system
2- ECP is enabled in BIOS
In this case you can have the following setups:
A) No IRQ or DMA
B) IRQ set but no DMA
C) IRQ and DMA set
These options may yield different results depending upon the peripheral
and the application.
What customer support to I get if I purchase the Toolkit?
You
receive 90 days free support by email or support
discussion board. You will also receive bug fixes and updates
free for 90 days.
What is the upgrade policy?
The
current toolkit driver version along with revision history may be
viewed here.
Up to one year from purchase date, it is $299.00 to upgrade to the
current version of the driver. With the upgrade you receive 30 days
of e-mail and discussion board support.
After
one year from purchase date, it is $750.00 to upgrade to the current
version. With the upgrade you receive 30 days of e-mail and discussion
board support.
What if I need customizations to the driver?
If
you license the source code, you can make those modifications yourself.
Warp Nine can also make those changes for an additional negotiated
fee.
Is source code included with the Toolkit?
The
only source code we ship is the code to our test program. This program
fully uses all of the features of the drivers and can help developers
write their own programs. Licenses to the actual driver code is
available for an additional fee. There are additional restrictions
on source code use.
What license do I get if I purchase the Toolkit?
You
receive an unlimited license to distribute the driver with your
application. You are free to use the Test Program source code to
build your own applications. You cannot resell or sub-license the
actual Toolkit without written permission from Warp Nine.
What if I don't have a peripheral yet to test with?
If
you do not have a peripheral for testing, you should consider our
W1284PIC Development Kit. The W91284PIC
Development board turns your PC into a parallel port peripheral.
The board provides a host port for connecting to a host PC and a
pass-through port for connecting to a downstream printer or other
parallel port peripheral. Using your PC you can model and test your
peripheral application. The simple ISA card provides a convenient
way to get product started. You can view details of the kit here.
Ok, I am sold. How much are the drivers?
Each
Toolkit includes:
1-
Complete documentation
2-
Sample test application
3-
Source code for the sample test application
4-
Driver (VxD, or .sys depending upon OS)
The
price for the toolkit represents a fully paid up license to ship
the driver (#4) with your application and product. It does not allow
you to ship the Toolkit documentation. This is not a corporate wide
license, but good only for a given product line.
The
Toolkit is ordered by specifying the following:
Operating
System:
1-
Win
95/98/ME
2-
Win NT/2000
It includes this functionality:
1-
Base (1284 Negotiation, Device_ID support, compatible, nibble, byte)
plus EPP and ECP support
The
pricing is per Operating System:
1-
Base plus EPP and ECP
Nibble, Byte, Fast Centronics, Device ID, Negotiation,
ECP and EPP -$8000 (eight thousand dollars US)
DISCOUNTS
ARE AVAILABLE FOR IF ORDERING MORE THAN ONE OS AT THE SAME TIME
Source
code is available for the driver(s). The cost for the source code
is 2x the license price and includes the full license.
A
corporate license is available for 2.5x the product license fee.
For the full 1284 driver this would be $20,000 per OS. The Corporate
license for the source code would be an additional $16,000 per OS.
A
corporate license allows you to use the source code or object code
corporate wide and any or all products. We do not have any royalties
or other charges.
What if I'm a small company, university, or have
a limited application and don't need the unlimited license?
If
you have a special application that will ship less than
100 units lifetime, then we have a limited license for $1500. Source
code is not available with this option. This is per operating system.