IEEE 1284 DRIVER TOOLKIT REVISION HISTORY
10/22/00 - Added support for Device ID in ECP mode.
9/13/00 - In Nibble and Byte Mode removed reliance on nFault remaining high after first time detection (NT version only).
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.
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.
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.
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).
11/4/99 - Use 64K DMA buffer in NT version.
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.
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.
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.
3/6/99 - Added the ability to allow simultaneous CreateFile by multiple applications. Not the CreateFile call will not generate an error code.
- 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.
1/5/99 - Added a do not check for the nFault interrupt when processing the DMA receive interrupt.
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.
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.
- 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
© 1998-2004 Warp Nine Engineering