************************* MASTER CODE ***************************************

The name of the first file in this disk's directory identifies the volume,
issue number and revision of the disk. The format of this filename is:

    !CDmvvii.rrr

where

    ! = the '!' character
    m =   C for C Users Journal, W for Windows Developer's Journal
    vv =  volume
    ii =  issue
    rrr = revision (001 for initial release, 002 for next update, etc.)

The file UPDATE.DOC contains information about any additions or
corrections to material on the disk since the original magazine
publication.

If you have obtained this code from a floppy diskette or from CompuServe, the 
headings under the column "FILENAME" represent the names of .ZIP files.  All 
files listed under the filename are archived in the .ZIP file.

Keywords: Feb97 C C+ Embedded PID Timer Fail-Safe Encryption Template

The code listings for the February 1997 issue of C/C++ Users Journal
include source code for Steve Hartmann's article on PID Control Loops,
Dave Wendel's polled timer class, Dan Wisehart's classes for fail-safe
operation, Carlo Pescio's article on Binary Template Metaprogramming,
and Steve Ball's encryption system for software registration.  Also
included is source code from P.J. Plauger's column, Standard C/C++.

*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       PAGE
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------

hartmann	Steve Hartmann	A Reusable PID Control Class

    pid_cntl.h	 - listing 1, Defines class PidControl
    pid_cntl.cpp - not listed, Includes CalculateGain function shown
					           in listing 2
    pipeset.h	 - not listed, Header file for class PipingSet
    pipeset.cpp	 - not listed, Includes functions shown in listing 3

wendel			J. David Wendel	A Polled Timer Class

    timer.h	 - listing 1, The Timer class
    timer.cpp	 - listing 2, The Timer implementation
    exe.cpp	 - listing 3, An executive that uses the timers

wisehart		Daniel Wisehart	Software for Fail-Safe Applications

    constant.h	 - listing 1, Static constants for fail-safe software
    analogin.h	 - listing 2, The AnalogInput class
    analogot.h	 - listing 3, The AnalogOutput class
    digout.h	 - listing 4, The DigitalOutput class
    digin.h	 - listing 5, The DigitalInput class
    auditor.h	 - listing 6, The Auditor and Watchdog classes
    digoutau.h	 - listing 7, Digital output auditor class

pescio			Carlo Pescio	Binary Constants Using Template
								Metaprogramming

    fibonacc.h	 - listing 1, Fibonacci function
    bin2dec.h	 - listing 2, Binary to decimal conversion
    errcheck.h	 - listing 3, Error checking
    final.h	 - listing 4, Final version with range checking and macros
    gen.cpp	 - listing 5, Sample source and generated code
    bin.h	 - not listed, complete header file for handling binary
			   constants with template metaprograms
    test1.cpp	 - not listed, Test stub for template metaprograms

ball			Steve Ball		An Encryption System for Software
								Registration

    makecode.c	 - listing 1, Functions used to create activation
							  and serialization codes

plauger			P.J. Plauger	Standard C/C++: The Header <list>

    list	 - listing 1, Template class list


*******************************************************************************

If you have questions regarding to the disk, please call or write us.

-----------------------------------------------------------------------------
			   Miller Freeman Inc.
			1601 W. 23rd St. Suite 200
			    Lawrence, KS 66046
	              1-800-444-4881 or 913-841-1631
-----------------------------------------------------------------------------

