List of HASP Device Driver Versions Since V1.71 (November 9, 1995)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This list includes new HASP Device Driver features, improvements,
bug fixes, and other relevant information.
It is arranged in descending chronological order.

**************
V4.35 May 2001
**************

New Features
============

HASP4 Time USB support:
This driver version includes support for the new HASP4 Time USB keys. Please 
note, that you need to unplug all USB keys under Windows 2000 in order to unload
the old driver. The new Aladdin USB driver will be loaded after driver installation
automatically if the first key is plugged.

HASP36 support:
Implemented support for HASP36 keys attached to an IBM compatible PC. Please note,
that HASP36 keys attached to NEC machines are not supported.

Popup on key removal:
The usual message box if a USB device is disconnected under Windows 2000 will
not be displayed anymore,


************************
V4.25 (HASP CD Rel 10.0)
************************

New Features
============

HASP keys connected to PCI parallel cards registered to the system will
be found on Windows 95/98/ME systems,
because drivers search all LPT ports.

ReadBlock and WriteBlock services on HASP USB keys are handled 40% faster.

Aladdin USB Support for Windows NT4. Since Microsoft Windows NT4 does not
support USB devices, Aladdin provides you this functionality with an
additional set of drivers using a proprietary USB stack.
The stack is available on a separate CD. Please contact your HASP sales
representative.


Problems Solved
================

Case 3713:
Running DOS RUS tools on Windows 98/ME caused reboot.

Case 5402:
Setting LptNum value to a non existing LPT port caused bluescreen.

Case 3692:
HASP PCCARD was not found after Windows 2000 hibernate.

Case 3709:
Application protected with both API function and envelope (using Data HASP)
caused bluescreen after starting it several times.

Case 5677:
USB HASP4 keys without memory were not recognized by HDD 4.12


***********************
V4.12 (HASP CD Rel 9.0)
***********************

New Features
============

HASP keys connected to PCI parallel cards registered to the system will
be found on Windows NT4 and Windows 2000 systems,
because drivers search all LPT ports.

Installation switch HI_PORTDELAY is not used anymore, drivers include
automatic speed calibration instead.

NEC type parallel port is not supported anymore. Please use HDD V4.06
in case you are using a NEC type parallel port.


Problems Solved
================

Driver problems on SMP computers (eg. dual pentium) fixed.

Case 3701:
HASP4 Time keys returned incorrect values under some conditions.

Case 3676:
Listed available options for all switches in help window of hinstall.exe.

Case 3697:
InstallShield 5 sample now is correctly recompiled using the latest
driver install DLL.


***********************
V4.06  March 25, 2000
***********************

new switches for parallel port configuration:

  - controlport         set control port registers
  - ecpdmaint           disable ECP-DMA-Interrupt

================
Problems Solved
================

HASP not found on Windows 2000.
Printing disturbed on Epson Stylus Pro 9000 after HASP key access

***********************
V4.02 (HASP CD Rel 8.0)
***********************

New Features
============

The new device driver fully supports the new HASP4 family of
HASP keys.

We further enhanced support for ECP printers. Please refer to the
descriptions in the HDD.HLP file for:

  - ecpretry
  - portallocfunctionality
  - portallocretrycount

For more about the HASP Device Driver custom API and HINSTALL,
refer to the HDD.HLP file.

================
Problems Solved
================

Case 3512:
Calling a HASP key while printing from an HP LaserJet 4050TN and
several HP OfficeJet models caused the printer to be reset or
output garbage. This is resolved in version 3.9x of the HASP Device Driver.

*************************************************
V3.81 (HASP CD Rel 7.0) April 1, 1999
*************************************************

New Features
============

In v3.7x of the HASP device driver, a DLL associated with the Hardlock
device driver complicated removal of the drivers.

As a result of this problem, installation and removal of the device
driver have been modified. Changes have been made to both Hinstall
command-line switches and custom API macros. Now only the files
necessary to the HASP device driver are installed and removed by default.

IMPORTANT NOTE
If you are removing HASP device driver v3.7x (which had the DLL that
caused difficulties) or the Hardlock device driver from the command
line or with the API, you may receive the following error
message: "The operation failed.  Some processes accessing the driver
are open." If you do, first kill the processes engaging the old
driver (hinstall -kp) before trying to remove it (hinstall -r).

What follows are details of specific changes in Hinstall and the API:

Hinstall Utility
================
In the Hinstall utility, the command-line switch hinstall -i now
installs only the files required by the HASP device driver, and
hinstall -r removes only these HASP device driver files.  A new
switch, hinstall -alldrv, enables you to install and remove the
files for both the HASP and Hardlock device drivers. The switch -iu,
which was meant to update the driver, is no longer supported.

Another new switch, -criticalmsg, displays only critical messages
(such as the instruction to reboot). You can choose to use this
switch instead of -nomsg, which disables all messages. By default,
the driver displays all messages.


Custom API
----------
Changes have been made to macros in the functions for device driver
installation and removal:

HDDInstallEx()
--------------
HI_INSTALL_FULL is supported for backward compatibility, but now
only installs files required by the HASP device driver. A new macro,
HI_INSTALL_HASP, which installs only the files for the HASP device driver,
has been introduced. Use HI_INSTALL_HASP in conjunction with
HI_INSTALL_HARDLOCK to install both drivers. HI_INSTALL_UPDATE is no
longer supported and returns an error.

HI_KILL_PROCESS is intended for use in conjunction with HI_INSTALL_HARDLOCK
or with HI_INSTALL_HARDLOCK OR (the logical or) HI_INSTALL_HASP, but
not with HI_INSTALL_HASP alone.


HDDRemove()
-----------
For HDDRemove(), two new macros have been added:  HI_REMOVE_HASP removes
only the files required by the HASP device driver, while HI_REMOVE_HARDLOCK
removes only the Hardlock device driver files. HI_REMOVE_FULL is supported
for backward compatibility, but now only removes the files necessary to
the HASP device driver. Use HI_REMOVE_HASP in conjunction with HI_REMOVE_HARDLOCK
to remove both drivers.

HI_KILL_PROCESS is intended for use in conjunction with HI_REMOVE_HARDLOCK
or with HI_REMOVE_HARDLOCK OR (the logical or) HI_REMOVE_HASP both,
but not with HI_REMOVE_HASP alone.


***************************************************************
For more about the HASP Device Driver custom API, refer to the
HDD.HLP file.
***************************************************************

================
Problems Solved
================

#2673
When using the Hinstall command-line based utility, if you installed
the HASP Device Driver twice during run time on a Windows NT
operating system, you had to reboot before the driver was recognized.

#2977
When the dynamically loading HASP Device Driver was installed
under Windows 95, applications protected with older versions
of the HASP Envelope, such as that on HASP CD 4, could not run until
reboot.

#2987
The custom API for the installation of the HASP Device Driver did not
support InstallShield 5. It now does. The HASP CD includes a directory
for InstallShield 5 which does not contain a project file. The HASP
InstallShield 5 project file will be provided to vendors upon request.

#3053
Under Windows NT 4.0, Service Pack 3, if you called HASP API service
50, ReadBlock, simultaneously from two independent single-threaded
tasks on a dual processor, the computer issued a blue screen error.

#3441
HDDSetup, you could only access the help file by pressing <F1>.
Now, by clicking the Help button in all screens of the graphical
user interface, you call up the help file.

#3442
A tab was added to the properties dialog box of the Hinstall
command-line based utility. It displays the version number of
the HASP Device Driver you are installing.

#3452
The purpose of the -nomsg switch in Hinstall is to disable all messages.
However, if you reinstalled the HASP Device, you received a message that
installation was successful and that you must reboot, even if you had
used this switch. Now, the -nomsg switch does not display any messages.
Note that by default, the driver displays all messages.

#3459
The HASP device driver installation sample for Microsoft C/C++ did
not compile properly. It produced link warnings. The solution is
to add the version library to the project file. Find the version
library in the library file of the Microsoft C/C++ directory.

#3460
When installing or removing our the device driver under Windows
NT 4, the Hardlock driver killed all open processes of 16-bit
applications, including those responsible for its installation
and removal.

#3480
If you installed the HASP Device Driver v3.74 under Windows NT 4
on a Japanese NEC computer whose C drive was configured as a floppy,
an error message appeared at every boot before login indicating the
drive was not ready or available.

#3507
On Windows 98, if you removed a MemoHASP USB while reading from or
writing to its memory, the computer crashed with a blue screen.


************************************************
V3.74 (HASP CD Rel 6.1) November 8, 1998
************************************************

Problems Solved
----------------

Case #100456:
Protected DOS applications displayed a Windows "illegal operation"
message under Win32s.

Case #100459:
When a machine reboot was required after installation of the
HASP Device Driver using "hinstall - nomsg", a reboot message was
displayed regardless of the -nomsg switch. With v3.74 of the driver a
reboot message will not be displayed when using the -nomsg switch.


************************************************
V3.73  November 1, 1998
************************************************

Problems Solved
---------------

Case #3452:
When activating hinstall.exe with the -nomsg switch the installation
process continued to display error messages.



************************************************
V3.72   October 25, 1998
************************************************
A major new aspect of this current version of the HASP Device 
Driver is an enhanced, flexible GUI-based setup utility with 
which you can install or remove the driver.

This new setup utility overcomes several problems associated 
with the former GUI-based Hinstall utility.

With this upgraded driver, you also still have the option of 
using the command-line Hinstall, a Win32 utility for driver 
installation or removal.  It supports Win32s, Windows 
95/98 and Windows NT.  

Press F1 any time during setup to read the HASP Device Driver 
Installation V3.72 help file.

NOTE: The installation of the NetHASP License Manager for 
Windows NT is no longer integrated with the installation of the 
HASP Device Driver.  A separate utility for installing 
the NetHASP License Manager for Windows NT will be released 
shortly.

NOTE:  If you run Windows NT 4.0 with service pack 4, or Windows 
NT 5.0, you have to upgrade to this current HASP Device Driver
in order to use HASP.  (See Case #3218 below 
for related information.)

Below is a list of new features offered in this HASP Device 
Driver, which were developed in response to user requests.  Also 
detailed are problems in earlier versions of the HASP
Device Driver which this upgrade solves. 

New Features
------------

New GUI-based setup utility There is a new GUI-based setup 
utility with which you can install or remove the driver. 
It comes as a Win16 executable, HDD16.exe, that supports Windows
3.1 and Win32s, and it comes as a Win32 executable, HDD32.exe,
that supports Windows 95/98 and NT.  

Automatic search for HASP USB (Cases #3359 and #3273)
You no longer need to specify a search for the HASP USB.  By 
default, the driver accesses the USB ports and then the parallel 
ports.

New API function (Case #3188) 
You can now include in your code an API function call, 
HIGetHDDVersion().  It returns information about which HASP 
Device Driver you are about to install and the one that you 
are replacing. The function is in the HASP Device Driver custom 
installation API.  Press F1 to access instructions in the help 
file about how to call this function.

HASP USB enumeration 
The driver can now distinguish between multiple HASP USB keys
with the same developer code that are attached to USB ports.

For the purpose of HASP USB enumeration, integers from 201 to 
255 are reserved for USB ports.  Each port at which a key is 
attached is assigned one of these 55 numbers, in consecutive 
order. 

The following is an example of how to use HASP USB enumeration:

1. Call the hasp() routine with the IsHasp() service.
The value returned in P2 is the number of HASP keys that are
attached. 

2. Treat the number in P2 as the variable X, where X is the 
number of USB ports to check.
If X is equal to 3, then there are 3 HASP USB keys connected at 
3 USB ports. The port at which the first key is present is 
designated 201, that at which the second is present 202, and 
that at which the third is present 203.

3. Call the hasp() routine with a HASP API service that reads 
memory or retrieves the HASP ID number, passing the first USB 
port number in the LptNum parameter.
You should be checking for unique data that confirms the 
identity of a particular key. 

4. If the memory of the key at that first port indicates it as 
the specific key you want, store its USB port number.  
Otherwise, loop back to step 3 with the next USB port number.  
In all,loop up to X times.

5. Later in your code, you communicate with that particular key 
by using its specific port number.


Checking the driver version number (Case # 3420)
You can now view the driver version number of the haspnt.sys and
haspvdd.dll driver files when you right-click and choose 
"Properties". 

Fits on floppy disk (Case #2952) 
You can now fit any single HASP Device Driver setup utility on 
one floppy disk.  Each utility is compact, comprising less than 
1.4 MB, and although together they cannot fit on a floppy disk,
each separately can.

Restricted search for HASP USB (Case #3360)
You can now limit the search for a HASP to the USB port alone. 
From the Hinstall command line, use the following switch: "-
KeySearch=USB". Likewise, you can limit the search to the 
parallel port with the switch:  "-KeySearch=Parallel". In the 
new GUI-based setup utility, you have the same capabilities of 
limiting the search for a key.

Unified version of 16-bit driver file (Case #100418)
While there used to be two versions (one for IBM and the other 
for NEC computers) of the 16-bit driver file, hasp.386, now 
there is a single, unified version.

Improved HASP USB plug-and-play (Case #100414)
When you removed the HASP Device Driver, you automatically 
removed (if present) the USB device driver file, aksusb.sys, and 
the USB device driver information file, aksusb.inf.  
If, afterwards, you connected the HASP USB, you were requested 
to search for the USB files, which you had in fact already 
removed.  
Now, when you remove the HASP Device Driver, these two USB files 
remain.  If you later insert the HASP USB, Windows finds the 
files by itself.  You do not need to perform any actions to find 
them.

Problems Solved
---------------

The fixes for the following problems are supplied in this 
upgrade of the HASP Device Driver:

Case #3004
On an SMP (Multiple Processor) PC, the HASP Device Driver 
crashed under Windows NT, giving an "illegal instruction" error 
message. 

Case #3218
The hotfix from Microsoft, known as "Pentfix", supplied 
following the release of service pack #3 of Windows NT 4.0, 
interfered with the HASP Device Driver. When you 
performed installation of the driver and rebooted your system, a 
blue screen error appeared. 

Case #100416
In some instances, when you accessed a HASP key during or after 
printing with an ECP printer, you received an error message
informing you that a HASP was not found. 

Cases #3040 and #2798
When you accessed the HASP key while printing with some ECP 
printers, the printer's output became skewed, or the printer 
reset itself.  To overcome the problem, you can now use the 
following switch to request ownership of the port from Windows:
"-contention=yes".

This switch is not the default for two reasons.  First, as it 
involves checking the port each time you try to access to the 
plug, it slows the key's response time.  Secondly, there is a 
small, theoretical possibility that Windows will, in some 
instances, simply not free the port. 

Using the switch leads to a new error, Error -6, when the port 
is not available.  In this case,
you may want to issue a message box, offering users the option
of pressing an "OK" button when printing finishes in order to 
continue the operation.  Alternatively, if the operation is 
not time-critical, you can wait a minute and try again.

If you use this switch, you do not have to reboot your system 
for it to take effect.

Case #100432
If you had upgraded your driver to version 3.71, you had to 
write switches from the command line differently than in prior 
versions.  After writing "hinstall -i" from the command line, 
you had to write, on a fresh command line, "hinstall" followed 
by the other switches you needed.

Case #3392 
Under Windows 95 OSR2.1, when you specified a search for a HASP 
key at a USB port on a computer that lacked such a port, a blue 
screen appeared with an error. 

Case #2853
When rebooting Windows NT to complete installation of the HASP 
Device Driver on an Alpha machine, you received an error message 
reading:  "HASP VDD Error: unable to locate HASP Kernel Device
Driver. You did not reboot the system after the last 
installation."  

Case #3253
In some instances under Windows 3.1, when you issue an API call 
to install the HASP Device Driver, you received the following 
error:  "Memory Allocation Error - Can't write to system.ini".
 
Cases #3334 and #3316
Several compilers (including Visual Basic, Delphi, and 
InstallShield) reported that they did not recognize certain 
functions of the HASP Device Driver custom installation API. 

Case #3319
When you accessed the HASP key and then opened a DOS box in 
Windows 3.X, the operating system crashed, without issuing any 
error message. 

Case #3340
The Win16 setup utility incorrectly identified Windows for 
Workgroups as a 32-bit operating system.

Case #3358
The Win 32 HASP Device Driver sample API for Watcom C (Version 
11.0) did not link successfully if you ran the compiler with the 
stack calling convention.  

Case #3379
When you ran the InstallShield (Version 3.63) sample under 
Windows 95, it displayed a blue screen entitled 'HASP Device 
Driver API Demonstration', with an error message:  
"HIGetInfo() failure - Getting the HASP Device Driver last error
failed."

Case #3386
Under Watcom C (Version 11.0), under Windows 95, the function 
HDDInstall() caused the following error: "The instruction at 
0x0041f3d2 referenced memory at 0xffffffff. The memory could not 
be read."

Case #3415
Specific combinations of multiple switches for the installation 
of the NetHASP License Manager from the Hinstall command line 
were not recognized as valid.  As the installation of the 
NetHASP License Manager for Windows NT is no longer integrated 
with the installation of the HASP Device Driver, this problem is 
no longer an issue.

Problems Avoided with New GUI Setup
-----------------------------------

In this current HASP Device Driver, HDD16 or HDD32 replaces the 
GUI-based Hinstall utility of prior versions.  These new 
utilities overcome the following problems associated with this 
older Hinstall GUI application:

Case #2965 
When you placed the GUI-based Hinstall utility file, 
install.exe, into a directory whose pathname contained a space 
or hyphen in it, you disabled the application.

In addition, on a computer partitioned between the Windows 95 
and Windows NT operating systems, the Hinstall GUI-based utility 
did not work properly on Windows 95.  When launched, a list of 
valid switches appeared, but you had no option of installing the 
driver. 

Case #3239
When you clicked "Remove" to remove the NetHASP License Manager
loader, you were asked if you want to remove the NetHASP License 
Manager and the HASP Device Driver.  The query was incorrect, as 
in fact you could only remove the NetHASP License Manager 
loader.  

Case #3082
Version 3.40 of the GUI-based Hinstall utility did not display 
server switches or accurate information about the server when 
reporting the NetHASP License Manager's status.

Case #3336 
Under Windows NT, when you installed the HASP Device Driver, you 
received the error message:  "The HASP Device Driver you want to 
install is older than the one currently installed." This message 
appeared even when the driver you wanted to install was older 
than the one currently installed.


End Note on the HASP USB
------------------------
Vendors should supply their end users with the USB device driver 
file, aksusb.sys, and the USB device driver information file, 
askusb.inf.  The reason is to avoid a potential problem.  
If an end user inserts the HASP USB into the port without having 
first installed the HASP Device Driver, Windows searches for 
these two particular files.  If the files are not available, 
Windows requests the location at which to find them. (Refer to 
case #100414 above for related information).



************************************************
V3.63   June 8, 1998
************************************************
Cases #1950, #1656, #2734:
In some cases, when the NetHASP License Manager was loaded automatically
via a Windows NT service, it loaded before the TCP/IP protocol.
In these cases, the NetHASP License Manager displayed the error message:
"TCP/IP protocol not found."

Case #3165:
The Epson LP700W printer was reset every time HASP was checked under
Windows 95. An error message was displayed saying that the printer is
not connected.

Case #3185:
When HASP was accessed by Win32 protected-applications during large print
jobs, the printer communication was cut. This occurred with various printer
models, such as HP Laserjet 6L, and HP DeskJet 660c.

Case #2534:
When a Quick Basic program accesses a HASP that was connected to an 
HP Laserjet printer (such as Laserjet 4L or 5L), a "Device conflict"
error message was displayed.

Case #3077:
When accessing HASP while printing with an HP OfficeJet 550, 330 or 590,
the following error message was displayed:
"The HP OfficeJet has failed the communication test. Check the connection to
the HP OfficeJet or try a new cable."

Case #2789:
When accessing HASP repeatedly while printing with an HP DeskJet 660c or 690,
a "Connection lost" message was displayed.


************************************************
V3.61 (HASP CD Rel 6.0) April 15, 1998
************************************************

Win32 HDD Support for HASP USB
-------------------------------

The Win32 HASP Device Driver's major new feature is its support for HASP USB.
This means that applications protected with HASP-3, MemoHASP, or NetHASP 
that are already out in the field can be upgraded to use HASP USB. Upgrading 
is done by installing V3.60 of the HASP Device Driver on an operating 
system that supports USB technology. (Windows 95 OSR 2.1, Windows 98.)

Currently, the HDD supports HASP USB under Windows 95 OSR 2.1 and Windows 98.

HASP USB Installation
---------------------

HASP USB should not be inserted into the USB port until the Hasp Device 
Driver has been successfully installed.

1.  Install the HASP Device Driver by running the installation program, 
hinstall, with 2 switches as follows:

hinstall -i -usb=yes

A window appears with the message that the HASP Device Driver was installed 
successfully.

2.  Click OK.

3.  If you installed the Hasp Device Driver over an existing one, reboot 
the computer now. 

4.  Connect HASP USB to the USB port.

The New Hardware Found window automatically appears, notifying you that 
the system has found the new device (HASP USB). The system then requests the 
path to an information file:

Under Windows 95 the name of the information file is aksusb95.inf.
Under Windows 98 the name of the information file is aksusb.inf. 

5.  Enter the path to the information file:  c:\< Windows>\system, where
<Windows> is the directory in which the Windows operating system is 
installed.

Windows then automatically installs aksusb95.sys under Windows 95 and 
aksusb.sys under Windows 98.

This completes the HASP USB installation. From this point on, any protected 
application which uses the Win32 HASP Device Driver searches first for a 
parallel HASP key, and if one is not found, searches for a HASP USB.


Bug Fixes
=========

Case #2285:
When activating hinstall.exe, a DOS box was displayed with a Windows 
message box in front of it. The DOS box remained displayed until you 
clicked OK on the Windows message box.

Case #2686:
Under Windows NT, when activating  hinstall -is  (to install the NetHASP 
License Manager) the message was displayed: "You need to reboot your 
computer."  With v3.60, after activating  hinstall -is, the NetHASP LM is 
installed, and you are prompted whether you wish to load it. 

Case #2985:
The HiGetInfo() function did not work properly in the Win32 Delphi HDD 
custom installation API. When trying to display the driver information, 
the message "Device driver not installed" was displayed even if the 
driver was installed.

Case #2991:
The speed of HASP access was reduced by about 10 times due to security 
enhancements. The HASP Device Driver fixes this problem and the speed has 
been increased.

Case #2994:
Activating hinstall -iu (to update the HASP Device Driver) returned an error 
if a previous version of the driver was not installed. With V3.60, when a 
previous version of the driver is not installed an appropriate message is 
displayed.

Case #3010:
The HiGetInfo() function did not work properly in the Win32 Visual Basic HDD 
custom installation API. When trying to display the driver information, the 
message "Device driver not installed" was displayed even if the driver was 
installed.
  
Case #3145:
Under Windows 95, activating a Win32 MSC protected application after 
activating a C DOS protected application in a DOS Box, resulted in an exception 
of the Win32 application.

Case #3197:
When activating hinstall -i in conjunction with other switches under Win32s, the
driver was installed, but the other switches did not take effect.

Case #3210:
HASP Win16 API crashed when a NetHASP service was called after a local HASP service 
was called. The fix is within the HASP Device Driver.


************************************************
V3.4 (HASP CD Rel 5.1) January 15, 1998
************************************************

V3.4 of the HASP Device Driver supports PC-CardHASP under Windows NT
(case #1367).
For full installation instructions of PC-CardHASP under Windows NT,
please refer to cardhasp.doc in the CARDHASP directory.


Bug Fixes
=========

Case #2286:
PC-CardHASP could not be configured properly under Windows 95 on
Notebooks with TI-113x controllers.
The fix is supplied within V3.4 of the HASP Device Driver.

Case #2796:
PC-CardHASP could not be configured properly under Windows 95 on
IBM Thinkpad 760 EL.
The fix is supplied within V3.4 of the HASP Device Driver.

Case #2915:
DOS applications protected with the HASP Envelope crashed under
Windows for Workgroups.
The fix is supplied within V3.4 of the HASP Device Driver.


************************************************
V3.3 (HASP CD Rel 5.0) November 20, 1997
************************************************

In addition to enhancements to the security, HASP Device Driver V3.3
introduces the following improvements and upgrades:


Dynamic Load under Windows 95
-----------------------------
V3.3 of the HASP Decide Driver loads dynamically under Windows 95. With this 
new feature plus the HASP Device Driver's  dynamic load under NT, your clients  
can enjoy a quick and easy installation of your protected application. 

Two points should be considered regarding the HASP Device Driver's dynamic 
load under Windows 95:

-- After installing HASP Device Driver V3.3, only HASP (API and Envelopes) 
   versions 6.1 and up load the driver automatically. Previous versions of the
   Win32 API cannot load it dynamically. This means that HASP-protected 
   applications using HASP versions prior to V6.1 will require a system reboot 
   before they can use V3.3 of the HASP Device Driver. This reboot, however,
   is to be performed once, and never again for the respective station.

-- The dynamic load of the HASP Device Driver is performed the first time 
   HASP is accessed after a system reboot. At that instance the currently 
   installed HASP Device Driver is loaded. In the future, when you need to 
   upgrade the HASP Device Driver with a version newer to V3.3, you must do 
   so before any HASP-protected application has been activated. This is to 
   ensure that an older version of the HASP Device Driver is not already
   loaded, thus preventing the dynamic load of the new one.

   If you do upgrade a HASP Device Driver after a HASP-protected application 
   has been activated, you will need to reboot your system in order for the
   new driver version to load dynamically and take effect.


User Friendly Installation Program
----------------------------------
The HASP Device Driver for Windows 95 and Windows NT can now be installed 
via a user-friendly software utility. You can find the hinstall.exe
installation utility in the drivers\install\win32 directory. Note that the
command line hinstall.exe can be found in the drivers\install\win32\cmdline
directory.

To install the HASP Device Driver under Win32s use either the command line 
hinstall.exe, or the Win16 HASP Device Driver setup.exe program which you can 
find in the drivers\install\win16 directory.

Currently, with the new hinstall.exe utility you can only install and remove
the HASP Device Driver via a user friendly GUI, and specify License Manager 
switches for the NetHASP LM loader under Windows NT. The same hinstall.exe 
can, however, be used via the command line to specify other HASP Device Driver 
related switches.


Bi-Directional Communication
----------------------------
Improvements have been made to the automatic recognition of ECP and Bidir 
modes.


HINSTALL Support for Compaq Docking Station
-------------------------------------------
With Compaq Docking stations, the network connection was lost when HASP 
was checked. To support these stations, use the /compaq=yes switch when 
running hinstall.exe (command line version only).


Block Pointer Validation
------------------------
The HASP Device Driver checks the validity of the pointed buffer in read/write 
block services, to prevent writing to an invalid buffer - which causes an 
exception.


Date Format
-----------
The format of the date parameter has been changed to Month, Day, Year (e.g. 
June 14, 1997 instead of 14.6.97).


Additional Display of Information
---------------------------------
When running hinstall /info the value of additional parameters are displayed: 
portmode, LPT, ServerPath, ImagePath, ServerSwitches.


Support for Win32S
------------------
Two improvements have been made to the HASP Device Driver to support 
Win32S:

-- All the HASP Device Driver keys which are normally listed in the system 
   registry are listed under Win32S in the [HASPDD] section of the 
   windows\system.ini file.
-- The /info switch (used with the command line version of hinstall.exe), and the 
   HDDGetInfo() custom installation function are supported under Win32S.


Registry Entries Documentation
------------------------------
The HASP Device Driver registry entries are now documented in the hinstall 
help file.


New HASP Interfaces
-------------------
HASP CD Rel 5.0 introduces new interfaces for customizing HASP Device Driver 
installation via your application. With the Win16 interfaces you can call the 
installation API via your Win16 application, to install the HASP Device Driver 
under Windows 3.x, Windows 95 and Windows NT. The Win32 interfaces let you
call the installation API via your Win32 application, to install the HASP
Device Driver under Win32s, Windows 95, and Windows NT.

-- Win16
   Microsoft C
   InstallShield 3

-- Win32
   Delphi
   InstallShield 3
   Visual Basic
   Generic DLL


Bug Fixes
---------

Case #2589
Custom installation of the HASP Device Driver under Windows NT 4 resulted 
in an error: "Failed to write haspnt.sys to the disk Cannot create a file".
This happened due to incorrect handle of the DriverPath variable in 
HDDInstallEx().

Cases #1981, #2564, #2653, #2642
After calling HASP the serial connection broke.

Case #2567
The /nomsg switch disabled all messages, including the error messages. With 
the fix, only success messages are disabled.

Case #2598
Information was displayed in the registry event viewer even when the 
/portmode=auto switch was used with hinstall. When this switch was used in 
this way, the portmode parameter was deleted from the registry. With the fix, 
the portmode will always be present in the registry, and the event viewer
message will not appear.


************************************************
V3.1  June 15, 1997
************************************************

HASP Device Driver V3.1 introduces the following new features and 
bug fixes:

Setup Utility for Windows 3.x
----------------------------------------
Setup.exe is a Windows Wizard that lets you install the HASP Device 
Driver for Windows (hasp.386). Setup.exe copies the hasp.386 driver 
to the Windows system directory and updates the system.ini file. 
Supply setup.exe to your clients together with all the files in the 
drivers\install\win16 directory.

Note:
Due to an InstallShield bug, setup.exe cannot be activated more than 
once. To re-activate setup.exe you must first restart your system.

Automatic Port Mode Detection
-----------------------------------------
V3.1 of the HASP Device Driver automatically detects, and operates 
according to the mode of the parallel port, i.e. normal, ecp or bidi. 
Automatic detection applies to the Windows NT, Windows 95, 
Win32s, and Windows 3.x HASP Device Drivers.

If automatic detection fails, you can install the HASP Device Driver 
and manually specify the port mode. With hinstall.exe this is 
performed using the -portmode switch (for additional information refer 
to hinstall.hlp). With setup.exe this is performed by selecting Custom 
Installation and specifying the port mode.

The HASP Device Driver automatic detection works according to the 
following algorithm:

Check HASP
If HASP found 
    Return HASP found
else (HASP not found)
       If portmode is specified in the registry*
       Begin
          Change the actual mode of the parallel port to normal
          Check HASP
          Change the actual mode of the parallel port to the original
             mode (as specified in registry)
          Return result (HASP found or not found)
       End
       Else (portmode is not specified in registry*)
              Begin
                Detect the actual mode of the parallel port
                If the actual mode is normal
                  Return HASP not found
                Else (actual mode is not normal)
                  Begin
                    Change the actual mode of the parallel port to normal
                    Check HASP
                    Change the actual mode of the parallel port to the
                       original detected mode
                    Return result (HASP found or not found)
                  End
               End
                  
         
* Under Win 3.x portmode value is saved in the hasp.386 file.   

Notes:

a. When ECP parallel port mode is automatically detected, or 
PortMode=ECP is specified in the driver installation: As a result of the 
mode change to Normal and then back to ECP, data that is stored in 
the port buffer will be lost. Such data loss can occur when HASP is 
accessed while printing.

b. When BiDi parallel port mode is automatically detected, or 
PortMode = BiDi is specified in the driver installation: Randomly the
printer driver might pop up a message window reporting that 
connection with the printer has been lost. This message should be 
ignored by clicking the OK button and continuing.


New -portmode Switch Values
----------------------------------------
The hinstall -portmode switch can receive the following values:
NORMAL
ECP
BIDI (changed from the previous BIDIR value)
AUTO - This is the default value. It instructs the HASP Device Driver 
to detect the mode of the parallel port automatically.


Dynamic Load under Windows NT
-----------------------------
Under Windows NT the HASP Device Driver loads dynamically.
This means that you do not need to restart your system after activating
hinstall.exe.




New Directory Structure
--------------------------------
HASP CD 4.0 contains a new structure of the DRIVERS\INSTALL 
directory:

DRIVERS\INSTALL\WIN16 contains the setup.exe utility which 
installs the HASP Device Driver for Windows 3.x. You must supply  
all the files in the WIN16 directory to your clients.

DRIVERS\INSTALL\WIN32 contains hinstall.exe which installs the 
HASP Device Driver for Windows NT, Windows 95 and Win32s. This 
directory also contains interfaces for custom device driver installation.



Additional HASP Device Driver Features
----------------------------------------------------- 

- The Win32 API that supports the custom installation of the HASP 
Device Driver, enables specifying port mode (compatible with the 
hinstall -portmode switch).

- V3.1 of the HASP Device Driver will delete the HASP Device Driver 
files upon removal.

- The HASP Device Driver installation utility now prompts when the 
currently installed HASP Device Driver is newer than the one being 
installed.


Bug Fixes
-------------

Case #2235:
On OEM Windows NT, and under Windows NT in which the 
DRIVERS directory was missing, the HASP Device Driver failed to 
install.

Case #2322:
The custom installation API function HDDRemove() returned OK 
when no HASP Device Driver was installed.

Case #2324:
In hisuberr.h, the error codes for 
ERROR_SETTING_VALUE_REGISTRY and
ERROR_CREATING_REGISTRY were identical.

Case #2451:
The HASP Device Driver performed an improper 16 bit to 32 bit 
pointer conversion. The fix supports WHINST.EXE v6.0.

Case #2428:
Under Korean Windows 95 the HASP Device Driver did not recognize 
the computer type.





****************************************************************
V3.05 February 28, 1997
****************************************************************

1. Upgraded version of hasput16.dll:

HINSTALL V3.05 incorporates HASPUT16.DLL v6.0 which fully 
corresponds to HASP API for Win32 v6.0.


2. Support for INT 2F:

HASPUT16.DLL v6.0 supports INT 2F by default. This is to provide full 
support for the Netware Client 32.


3. Support for new NHSRVW32.EXE name:

HINSTALL supports the new name of the NetHASP License Manager 
under NT: NHSRVW32.EXE. If the older version of the NetHASP LM - 
NHSRVWNT.EXE already exists in the SYSTEM32 directory, the user 
should rename it NHSRVW32.EXE.


4. Bug fixes:

Case #2165:
Using the HASP Device Driver custom installation DLL for Borland, 
requested a missing Borland DLL.

Case #2169
Under Windows NT, when the HASP Device Driver loaded it displayed an 
error if the PortMode parameter was not specified in the registry. The 
driver continued to work properly. Since the PortMode is not obligatory, the 
error message is changed to a note. 

Cases #1982, #2105, #2128:
When HINSTALL was installed under Windows 95, with certain serial 
devices, the HASP Device Driver returned the following error: "The call 
VXD of dynamic connection is not valid from HASP95 (01)+00000033 to 
the specific VMD, service 7".




****************************************************************
V3.03 January 20, 1997
****************************************************************


1. Support for Bi-Di and ECP port modes:

HINSTALL V3.03 supplies a better solution and compatibility with the 
various parallel port modes such as Bi-Di and ECP. 
A new, undocumented switch can now be used in conjunction with hinstall: 
-portmode

The -portmode switch can receive one of the following values:  bidir, ecp, 
or normal (normal is the default).

For example, if you know the printer you are using works in bi-di mode,  
activate hinstall as follows:

hinstall -i -portmode=bidir

The -portmode switch can be used with hinstall after the HASP Device 
Driver has already been installed, i.e. hinstall -portmode={mode}. Note that 
using the -portmode switch requires reboot of the system.

As a result of using the -portmode switch, the following parameter will be 
added to the registry parameters entry:

PortMode=ECP  | BiDir | Normal

To support the new port modes, V3.03 of the HASP Device Driver will 
perform the HASP check according to the algorithm defined below:


If PortMode is not specified or if PortMode=Normal
    check HASP;
    return result (HASP found or HASP not found);

If the PortMode is BiDir or ECP
    check HASP
    if HASP found return HASP Found
    else (HASP not found)
          change the port to Normal mode;
          check HASP;
          return result (HASP found or HASP not found);
          reconstruct the port to the mode specified in PortMode
          (BiDir or ECP) ***;

*** The HASP Device Driver does not identify the actual setting of the port 
mode, but relies on the user input through the -portmode switch.

Notes:

a.  When the PortMode=ECP, as a result of the mode change to Normal
and then back to ECP, data that is stored in the port buffer will be lost. 
Such data loss can occur when HASP is accessed while printing.

b . When the PortMode=BiDir, at times the printer driver might pop up a 
message window reporting that connection with the printer has been lost. 
This message should be ignored by clicking the OK button and continuing.


2. Solution for HASP memory corruption:

HINSTALL V3.03 contains a fix for the sporadic problem of HASP memory 
corruption. The fix is in the ReadBlock API service. All HASP-protected 
applications that can communicate with the HASP Device Driver will no 
longer suffer from this problem.


3. Bug Fixes:

Case #1945:
The -serverswitches switch for hinstall did not function properly unless you 
inserted a space after the first quote and before the server switch itself.

Case #2001:
On an NEC Notebook, hinstall identified the computer type as IBM.



****************************************************************
V3.01 December 9, 1996
****************************************************************

V3.01 of the HASP Device Driver fixes the following bugs:
   
Case #1909
Hinstall recognizes computer type as NEC when installed on Japanese
IBM with 106 keyboard settings, under Japanese Win32 O/S. 

Case #1920
Under Windows 95 on NEC, after pressing Enter on any HASP
service, the keyboard buffer is filled with additional Enters.  
This causes the application windows to duplicate many times.  
This did not happen with a mouse click instead of an Enter.


****************************************************************
V3.0 November 4, 1996
****************************************************************


1. New Feature - Full Custom Installation API
      - Enhanced API 
      - Dynamic and static linking support
      - Full documentation
For complete information refer to the HINSTALL.HLP file.


2. Comprehensive command-line switches for HINSTALL.EXE.
Following is a brief summary of the new switches:
/autodetect=<Mode>    : Enable/Disable hardware auto detect
/LPT[x]=<Address>     : Specify the parallel port address.
/computertype=<Type>  : Specify whether the computer is an IBM or NEC.
/iu                   : Lets you upgrade the HASP Device Driver
/serverpath=<PathName>: Specify the NetHASP License Manager's
                        full path.
/serverswitches="<SwitchList>":
                        Specify the NetHASP License Manager
                        command line switches.
 /nomsg               : Run HINSTALL in silent mode (no messages
                        displayed).

In  addition HINSTALL accepts multiple switches in the command line.
For complete information refer to the HINSTALL.HLP file.
 

3. New Feature : Under Windows NT the HASP Device Driver automatically
detects the parallel ports which are in the system. This make it very
easy to port applications between IBM and NEC, and Intel PPC, MIPS
and Alpha based machines.


4. Additional useful parameters in the Windows NT database registry:

Location: HKEY_LOCAL_MACHINE\System\CurrentContorlSet\Services\Haspnt
LPT1..LPT3   : Parallel port addresses detected by the HASP Device
               Driver. 
AutoDetect   : Disables/enables the automatic hardware detection made
               by the HASP Device Driver while it is loaded.
ProcessorType: Processor type indicator. 
               Valid values are PPC, ALPHA, MIPS and X86.
ComputerType : Computer type indicator. 
               Valid values are IBM and NEC.

Location: HKEY_LOCAL_MACHINE\System\CurrentContorlSet\Services\HASP Loader
ServerPath    : Full pathname of the NetHASP License Manager.
ServerSwitches: Command line switches for the NetHASP License Manager.


5. Under Windows NT HINSTALL displays a special error message if 
the user does not have administrator privileges.
 

6. Under Win32s the hasp.386 is written to the windows\system directory 
instead of the windows directory.


7. Bug fixes:
   
Case #1705:
Upon Windows NT machine startup, you received the following HASP
Device Driver message: "HASPVDD error: unable to locate Kernel 
Device Driver. You did not reboot after installation.
   
Case #1682:
When there was a HASP Device driver version prior to v2.2 installed,
you first had to remove it, and only then use hinstall v2.2 to
install the upgraded version.

Case #1546:
Under Japanese Windows 95 / Windows NT on an IBM, the computer type
was identified as NEC instead of IBM.

Case #1545:
When the protected application accessed HASP under Windows 95 on NEC,
while printing was in process, you received a HASP Not Found message.

Case #1516:
When the protected application accesses HASP under Windows 95 the
system crashed with the following message: "The call VXD of dynamic
connection is not valid from hasp95 to the specific VMD, service 7."


****************************************************************
V2.2 July 24, 1996
****************************************************************

1. Bug fix for case #1598: Running envelope-protected DOS applications 
with HASP36 on IBM, caused the application to hang.


****************************************************************
V2.1 July 1, 1996
****************************************************************

1. New feature - The HASP Device Driver supports Win16 and DOS 
applications running under Windows 95 and native Windows 3.x.

* Under native Windows 3.x the HASP API will access the HASP Device
Driver (HASP.386) only if it is exist. Otherwise it will access 
the parallel ports directly.
Note: There is no automatic installation utility for HASP.386.
To install do the following:
- edit the system.ini file
- in the [386Enh] write device=<path>\hasp.386

* Under Windows 95 the HASP API can access the parallel port
only via the HASP Device Driver. In this case use HINSTALL.EXE V2.1.
    
2. Automatic LptNum conversion under IBM: 0 <--> 50.
* The HASP Device Driver will always search first for standard
HASP (25-pin). If one is not found, the HASP Device Driver will
then search for a HASP36.
* The HASP Device Driver converts LptNum 60 to 0 and 50.

3. Bug fix for case #1140:
Bug description: Activating HINSTALL.EXE under Windows NT V4.0b 
caused Windows NT to crash.

4. Better support for accessing HASP while printing, and when 
using bi-directional communication with the parallel port. 

The following printers were tested:
         - HP DeskJet 660c 
         - HP 5L
         - NEC Superscript


Below is a list of the HASP software versions that support the 
HASP Device Driver. (Support is available with the specified 
version and up).


HASP Device Driver for Windows NT (HINSTALL.EXE V2.1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOS API               V5.02
DOS Envelope          V5.0
Win16 API             V5.02
Win16 Envelope        V5.0
Win32 API             V1.7
Win32 Envelope        V5.0
 
HASP Device Driver for Windows 95 (HINSTALL.EXE V2.1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOS API               Does not support yet
DOS Envelope          V5.11
Win16 API             V5.1
Win16 Envelope        V5.11
Win32 API             V2.01
Win32 Envelope        V5.0

HASP Device Driver for Win32s (HINSTALL.EXE V2.1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOS API               Does not support yet
DOS Envelope          V5.11
Win16 API             V5.1
Win16 Envelope        V5.11
Win32 API             V2.01
Win32 Envelope        V5.0

HASP Device Driver for Windows (HASP.386 V2.1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOS API               Does not support yet
DOS Envelope          V5.11
Win16 API             V5.1
Win16 Envelope        V5.11



****************************************************************
V2.01 February 23, 1996
****************************************************************

1. HINSTALL.EXE V2.01 - the HASP Device Driver for Win32.
   
* Supports Win32 applications under Windows 95.

* The installation program for Win32 automatically 
  recognizes which system it is running on (Win32s, Windows NT, 
  Windows 95) and installs the appropriate HASP Device Driver.

* The DLL that enables integrating the HASP Device Driver 
  installation directly into an application (hinst.dll) supports 
  Windows 95. Hinst.dll is available for Microsoft C, Borland C,
  and Watcom C.

* The HASP Device Driver automatically recognizes whether it is
  running on IBM or NEC and checks for the appropriate type of
  HASP key. This means an application protected for either IBM or
  NEC will run on both systems.

* The HASP Device Driver can work with systems that include multi-
  processors.

* The HASP Device Driver can return its installation status (run
  HINSTALL /INFO).

* For installation help, run:

  HINSTALL /HELP

  or

  HINSTALL /?

* Bug fix: When the HASP Device Driver was being installed under 
  Windows NT, there was a bug that combined two lines in CONFIG.SYS 
  into one line. 



****************************************************************
V1.71 November 9, 1995
****************************************************************

1. HINSTALL.EXE V1.71 - the HASP Device Driver for Win32.

Bug description: 16-bit Windows API does not run under Windows NT-J 
V3.5 emulation (Japanese version). 

This driver solves the problem and should be used in conjunction with 
Windows API V5.02.

The version includes all relevant sources to compile this driver.

