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.

 

 

| Home | Products | Ordering | 1284 Info | Contact Us | Support | Search |
     

Copyright © 1998-2004  Warp Nine Engineering

Last modified