SUMMARY:
CLIBC_16.LIB - Selected independent near model replacement functions from the standard C (Microsoft C/C++ 7.00) library. Distribution zip file includes sources, Makefile, and limited documentation.

DISTRIBUTION clibc_16.zip CONTENTS:

isspace.asm
strcpy.asm
strlen.asm
skipsp.asm
skiptosp.asm
strcat.asm
strcmp.asm
strchr.asm
strstr.asm
strrchr.asm
stricmp.asm
skipspr.asm
skiptosr.asm
strlwr.asm
strupr.asm
strncpy.asm
strncat.asm
memmove.asm
memset.asm
memcmp.asm
isalnum.asm
isalpha.asm
isascii.asm
iscntrl.asm
iscsym.asm
iscsymf.asm
isdigit.asm
islower.asm
isupper.asm
isxdigit.asm
clibc_16.inc
clibc_16.txt
Makefile

BUILD THE LIBRARY:

UNZIP DISTRIBUTION
Pkzip 2.50 zipped/ compressed the library distribution file. To unzip the library, place the clibc_16.zip file into the desired directory.
pkunzip -d clibc_16.zip
creates and places above listed files into directory clibc_16
change to directory clibc_16

EDIT MAKEFILE
After unzipping the distribution package, edit Makefile as required.
Three configuration options require attention.
DIRINCLUDE
Set to the location to copy the library include (clibc_16.h) file into.
DIRLIB
Set to the location to copy the library (clibc_16.lib) into.
DEBUG=0
Value of 1 builds debug (CodeView) version of library.

RUN NMAKE
Once the files are unziped, and the Makefile edited, run
NMAKE clean

Then run
NMAKE
to build the library

CLIB_16C.LIB BUILD TOOLS
The library is built (and debugged) with the following Microsoft development tools:
NMAKE 1.20
MASM 6.14
MSC/C++ 7.0
LINK 5.31
PWB 2.1.49
CODEVIEW 4.01
LIB 3.20

Note:
MASM 6.14 runs in a Windows9X DOS box.

DOCUMENTATION:
See the Run-Time Library Reference manual for each individual function. Except where noted, clibc_16.lib function parameters and return values are identical.

Some functions in clibc_16 have corresponding Microsoft intrinsic versions. To use the library, disabling automatic intrinsic substitution may be required in some cases.

All functions in clibc_16.lib are near model; Pointers are near, and procedure calls are near. Each function assumes near source pointers are offset from ds, and near destination pointers, if applicable, are offset from ss. Each function, where applicable, preserves the es register, for additional compatibility with assembly routines.

Almost all clibc_16 functions have a corresponding __fastcall functions. If there is no corresponding fastcall function, then the fastcall version probably required more clock cycles then the normal version. All fastcall versions save all registers except the return register ax (and dx for 4 byte return values where applicable).

GENERAL:
Independent means that each function included in clibc_16.lib is completely independent of any other function. Most C library functions are dependent on other library functions, computer hardware, BIOS, and may require initialization. Because each clibc_16.lib function is independent, no initialization is required, and each individual function may be included as required in an application. Programmers developing applications requiring independent functions should appreciate clibc_16.lib. Due to the independent nature of each function, only a subset of the standard C library may be implemented. As demand warrants, and/or as they are completed, and/or as they are donated, functions that may be implemented as independent will be added to clibc_16.lib. Contributions gladly accepted, especially sprintf and sscanf.

See clib_16.lib for far model independent functions.

CONTACT INFORMATION:

email:
bkyoung@cwnet.com

Address:
Byron Young
2351 Woodthrush Way
Pleasanton, CA 94566

COPYRIGHT INFORMATION:
All work herein copyrighted by the author. Commercial use and distribution of this library without the prior written permission of the author is prohibited. Library may only be distributed for personal non commercial use in original zip format by the simtel network.

DISCLAIMER
No warranty, expressed or implied, is given concerning the functionality or operability of the code included in this distribution.

BUGS
A project of this type will never be bug free. Writing simultaneous, almost identical functions, for two different models (near, far), and three calling models (near, far, fastcall) always generates some confusion. Bug reports gladly accepted, and are appreciated.

REVISIONS
Release_02 09/14/2002 ilibc_02.zip
Fastcall functions debugged.
Numerous bug fixes in other functions.

09/04/2002 ilibc_01.zip
Initial Release.