IEEE 1284 DRIVER TOOLKIT REVISION HISTORY

 

Version 4.06

10/22/00 - Added support for Device ID in ECP mode.

Version 4.05

9/13/00 - In Nibble and Byte Mode removed reliance on nFault remaining high after first time detection (NT version only).

Version 4.04

7/15/00 - Keep ECR mode active in ECR register in Fast Centronix mode until change to reverse or any other mode change. This prevents the FIFO from being cleared in case multiple transfers are performed in the forward direction.

Documentation now includes Windows Millennium.

Version 4.03

5/25/00 - Negotiate to ECP Forward before sending ECP address byte. This change was applied to the W9x version only since the NT version of the driver already did this.

Version 4.01

04/17/00 - Removed unnecessary sleep (i.e. yield) after completion of a EPP write operation.

03/20/00 - Unlocked the buffer in the NT driver after failed negotiation to Device ID mode. This fixed a kernel mode exception (blue screen) in Windows 2000 after exiting ParTest.

Version 4.00

02/25/00 - Fixed the missing wait for Event 21 after Event 20 is issued as the result of a physical interrupt taking place when blocked read mode is active in Compatibility mode.

02/23/00 - Removed the driver paging/reset paging calls from the NT driver since those where causing a system crash on Windows 2000 after an application such as ParTest closed the handle to the driver.

02/20/00 - In the NT/2000 version allocated the interrupt object directly instead of requesting this object from the NT/2000 ParPort driver. This prevents Windows 2000 users from having to manually add the 'EnableConnectInterruptIoctl' registry entry in the Plug&Play section of the registry. This section is hard to find since the parallel port data may be located at various places in the registry based upon the type of machine and parallel port.

02/12/00 - Added support for PAR_FLAG_YIELD_IF_DEV_BUSY operational flag. When this flag is set and the device is still busy after 255 retries, the driver yields (i.e. returns control to the operating system) before trying again. This is applicable to Compatible Mode forward, Fast Centronix Mode, and ECP Mode forward (if programmed I/O is active).

02/03/00 - Exit from ECP Reverse Idle when the FIFO is not empty.

02/02/00 - Fixed negotiation from a non-supported IEEE 1284 mode (i.e. when xFlag indicates that the requested mode is not supported).

Version 3.09

11/4/99 - Use 64K DMA buffer in NT version.

Version 3.07

8/14/99 - Added support for writing channel numbers in Compatibility mode (i.e. made PAR_IOCTL_WRITE_ADDRESS work in Compatibility mode using nAutoFd to signal an address write). Also, removed IRQ comparison check in the Windows NT version to allow the driver to better support Windows 2000.

Version 3.06

5/01/99 - Added support for BECP mode. Fixed problem in ECP mode of the Windows NT version where the driver did not wait until the transmit FIFO was empty before completing the write operation.

Version 3.05

3/20/99 - For the Windows NT version, increased FIFO empty detection delay (see version 3.03) from 2 to 5 microseconds. Fixed memory leak that occurred because the 16 byte FIFO buffer was released at driver unload time instead of driver close time.

Version 3.04

3/6/99 - Added the ability to allow simultaneous CreateFile by multiple applications. Not the CreateFile call will not generate an error code.

Version 3.03

2/14/99 - In ECP PIO mode, delay 2 microseconds after detecting FIFO Empty, and retest the FIFO status. If the FIFO is still empty, proceed to checking nFault, otherwise continue the transfer. In some cases, the peripheral immediately raises the nFault before sending out the last byte. When this happens, occasionally the last byte is missed.

Version 3.02

1/5/99 - Added a do not check for the nFault interrupt when processing the DMA receive interrupt.

Version 3.01

12/19/98 - Send ECP in programmed I/O mode, only yield if complete burstsize has been sent. The driver was yielding the CPU when it detected that the transmit FIFO was full which resulted in multiple 5-10 ms delays in case the peripheral was running only slightly behind.

Version 3.00

12/16/98 - Fixed CPU speed determination routine (NT). The NT driver did not calculate the speed correctly of the high-end CPUs. The routine now uses a 64-bit integer to handle the large number of clockticks without overflow.

12/16/98 - Made UseEvents default registry setting (W95). The W95/W98 driver incorrectly initialized the UseEvents registry setting to 0 instead of 1. This causes DMA-based transfers to be entirely driven out of the interrupt handler instead of using deferred procedure calls. Although more efficient, we learned this highly optimized mode of operation does not work on all machines
.
12/16/1998 - Improved back-to-back interrupt handling. Some hardware responds to messages extremely fast and caused a nFault interrupt almost at the same time that the DMA terminal count interrupt was received by the driver (as a result of completing the transmit to the peripheral). The driver did not count on those double interrupt conditions and caused the nFault interrupt to be occasionally lost.

 

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

 

     

Copyright © 1998-2004  Warp Nine Engineering

Last modified