Device Driver Development Kit for 16 Bit Drivers v. 20230612 (12/6/2023, David Azarewicz) |
Readme/What's new |
OS/2 Device Driver Development Kit
Written by David Azarwicz
The latest package is available from http://88watts.net/software.html
Package Contents
----------------
Kit Directory
Drv16.lib - A library containing the setup and many functions needed
for a device driver.
Dev16lib.h - The header file for the Drv16.lib library.
ndis.h - A header file for NDIS definitions.
pci_regs.h - A header file with PCI register definitions.
Required Directory
Driver.c - A sample of the minimum required elements for building a
device driver with the Drv16 kit.
BaseDev.c - A sample of the minimum required elements for building a
basedev device driver with the Drv16 kit.
makefile - The makefile for building the sample drivers.
Sample Directory
PciAc5.c - The sample device driver
ioctl.h - The header file for IOCtl communication between the driver
and an application.
test.c - A test application for testing the driver's IOCtl interface.
makefile - The makefile for building the sample driver and test
application.
Copyright and License
---------------------
Copyright (c) 2013-2023 David Azarewicz <david@88watts.net>
All rights reserved.
(c) Copyright IBM Corporation 1990,2000.
All rights reserved.
The Drv16 Kit is a derivative work of the IBM DDK. You must have a IBM
DDK license to use this software.
Drv16 is provided to you solely for the purpose of assisting you in
developing your own OS/2 device drivers. You may use this software
in your device drivers free of charge.
Drv16 is provided AS-IS, WITHOUT ANY WARRANTY OF ANY KIND, EITHER
EXPRESS, IMPLIED OR STATUTORY, not even any implied warranty of
MERCHANTABILITY.
YOUR USE THIS PRODUCT IS CONDITIONED UPON YOUR ACCEPTANCE OF THIS
LICENSE AGREEMENT. INSTALLING AND/OR USING THE PRODUCT INDICATES YOUR
ACCEPTANCE OF THESE TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE
TERMS AND CONDITIONS PROMPTLY DELETE THIS PRODUCT.
This Product consists of: (1) Drv16 Code, (2) Tools and Lib Code.
*1. Grant of License for the Drv16 Code*
You are granted a non-exclusive, non-assignable, non-transferable
right to use the enclosed Drv16 Code for the sole purposes of
designing, developing and testing derivative work(s) which are device
drivers for the OS/2 program (the "OS/2 Device Driver").
In addition, you are granted a non-exclusive, non-assignable,
non-transferable right to reproduce and distribute, in object code form
only, the permitted derivative works described above.
Under this license you may not:
a. use, copy, modify, display or merge copies of the Drv16 Code except
as provided in this agreement;
b. distribute, sublicense, rent, lease, assign or transfer the Drv16
Code, except as provided in this agreement; or
c. disclose, display, disseminate, market or distribute the Drv16 Code
in any media, except for your own internal use by you or your full-time
employees on a need to know basis on your premises.
*2. Grant of License for Tools and Lib Code*
You are granted a non-exclusive, non-assignable, non-transferable
right to use the Tools and Lib Code, in object code form only, and only
for your internal use and for the sole purposes of designing, developing
and testing the OS/2 Device Driver.
Under this license you may not:
a. use or copy the Tools and Lib Code except as provided in this agreement;
b. modify, display, or merge copies of Tools and Lib Code;
c. reverse assemble or reverse compile the Tools and Lib Code;
d. distribute, sublicense, rent, lease, assign or transfer the Tools and
Lib Code;
Requirements
------------
1. The latest MiniDDK (preferred) or an updated DDK. If you get compile
warnings or errors using the DDK, then your DDK is not up-to-date.
The MiniDDK contains no source code, and has been rearranged so that
all header files are in base/h or base32/h, all include files are in
base/inc or base32/inc, and all libraries are in base/lib or base32/lib.
The supplied makefiles assume the layout of the MiniDDK, so some changes
may be required to your DDK, or to the makefiles of your project so that
the appropriate files can be found.
For the Drv16 Kit, check that you have the newest versions of the
following files:
base\h\strategy.h 5,998 bytes
base\h\devhelp.h 33,205 bytes
2. OpenWatcom v1.9 or greater
See http://www.openwatcom.org
The resulting driver built with the Drv16 package will only run on Pentium
class systems and above. 486 processors and below are not supported.
Sample Drivers Included
-----------------------
Sample
The driver in the Sample directory is a real working driver that you
can use as an example for building your own driver.
Required
The driver in the Required directory is the bare minimum you need to
build a working driver using Drv16. There is plenty of documentation
in the comments in Driver.c and BaseDev.c.
Installing the Required Packages
--------------------------------
Note: Example commands are only to indicate logical flow and meaning.
They will need to be modified to apply to your particular system.
1. Unzip the package. If you are reading this, then you probably have
already done that.
2. Copy the contents of the Kit directory to a directory of your choice.
Example: md E:\Drv16Kit
copy Kit\* e:\Drv16Kit
3. Set the DRV16KIT environment variable to point to the Drv16 Kit you just
installed.
Example: set DRV16KIT=e:\Drv16Kit
You can put this statement in your CONFIG.SYS so it is always available.
4. If you are using your own DDK, skip this step.
Install the MiniDDK. Create a directory for the MiniDDK and unzip the
contents of the MiniDDK into that directory.
Example: md E:\MiniDDK
cd e:\MiniDDK
7za x MiniDDK-20131010.7z
3. Set the DDK environment variable to point to the MiniDDK you just
installed, or to your DDK.
Example: set DDK=e:\MiniDDK
You can put this statement in your CONFIG.SYS so it is always available.
4. Make sure you have the WATCOM environment variable pointing to your
OpenWatcom installation.
Example: set WATCOM=e:\Watcom
You can put this statement in your CONFIG.SYS so it is always available.
Building the Sample Drivers
---------------------------
Go to the directory of the driver you want to build and type wmake.
Example: cd Sample
wmake
Example: cd Required
wmake
Documentation
-------------
Documentation for this package is in the header files and the sample
drivers.
Some of the older MultiMac drivers use the DRV16 kit. You can look at
them for examples of more complex drivers.
Drv16 Kit is stable software
----------------------------
This package is not currently in development. However, new features
may still be added from time to time.
If you have a problem or need a feature, please contact me at
david@88watts.net. Be sure to put Drv16Kit in the subject line.
Change History
--------------
v.20230313
Enhanced RM functions.
v.20190310
Added missing defines in pci_regs.h
Changed compiler optimization flags.
v.20150507
Added BaseDev driver sample.
v.20131111
Change toupper, tolower to subroutines
v.20131030
Documentation updates.
v.20131016
Added tracing functionality.
Fixed strtol().
Enhanced debug module to allow internal debug buffer.
v.20131014
Initial release |
Add new comment