************************* 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: Jul97 C C+ Serial Win32 merge sort array plot testing Win16

The code listings for the July 1997 issue of C/C++ Users Journal include
source code for Eric Woodruff's serial communication classes for Win32,
Paul Carlson's automated test library for Win16, Gualtiero Chiaia's OWL
library for scientific plotting, Ali Rahimi's templatized
multidimensional array class, and Thomas Nelson's polyphase merge sort
implementation.  Also included is source code from Dan Saks' column, C++
Theory and Practice, Pete Becker's column, Questions and Answers, and
Letters to the Editor.

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

The following files are included in the disk:

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

woodruff                Eric Woodruff       Serial Communications
                                            Under Win32

    SerialPort.h   - listing 1, CSerialPort header file
    Terminal.cpp - listing 2, A dumb-terminal program that uses
                              CSerialPort
    equivtab.txt - table 1, 16-bit Communication Functions and their 
                            Win32 Equivalents
    confgtab.txt - table 2, CSerialPort Configuration Functions
    tmouttab.txt - table 3, Behaviour of Read Timeout Value Combinations

    Additional code not listed in the magazine:

    ComSettings.cpp
    ComSettings.h
    GUITerm.clw
    GUITerm.cpp
    GUITerm.h
    GUITerm.mak
    GUITerm.mdp
    GUITerm.rc
    GUITermDoc.ico
    Toolbar.bmp
    Resource.h
    StdAfx.cpp
    StdAfx.h
    XModem.cpp
    SerialPort.cpp
    GUITermDoc.cpp
    GUITermDoc.h
    GUITermView.cpp
    GUITermView.h
    MainFrm.cpp
    MainFrm.h
    ProgDlg.cpp
    ProgDlg.h
    ReadMe.txt
    GUITerm.ico
    GUITerm.rc2
    TermPoll.cpp

carlson                 Paul Carlson        An Automated Testing Tool
                                            for Win16

    tracker.h    - listing 1, Header file for automated test library
    tracker.c    - listing 2, Test library implementation
    sample.c     - listing 3, A sample application of the test library

    Additional files not listed in the magazine:

    tracker.prj
    sample.def
    sample.dsk
    sample.exe
    sample.obj
    sample.prj
    sample.rc
    sample.res
    sample.rws
    tracker.def
    tracker.dsk
    tracker.lib
    tracker.map
    tracker.obj
    sample.~rc

nelson                  Thomas Nelson   Polyphase Merge Sorting

    ffstream.h   - listing 1, A file-based stream interface
    mfile.h      - listing 2, Interfaces for class MergeFile and PreSort
    mfile.c      - listing 3, MergeFile and PreSort implementations
    insort.h     - listing 4, The InternalSort class
    sortdefs.h   - listing 5, Typedefs for sorting routines
    mlist.h      - listing 6, Interface for class MergeList
    mlist.c      - listing 7, Class MergeList constructor and destructor
    psort.h      - listing 8, Interface for class PolySort
    psort.c      - listing 9, Polysort implementation
    examp.c      - listing 10, Testing the sort algorithm
    
    Additional files not listed in the magazine:

    examp.mak
    ffstream.c
    fib.c
    fib.mak
    psort_t.h
    rint.c
    rint.mak
    rtext.c
    rtext.mak
    sortlog.c
    sortlog.h
    timer.h
    wsort.c
    wsort.mak

rahimi                  Ali Rahimi      A Multidimensional Array Class

    mdat2.h      - listing 1, Defines template array class
    examp.cpp    - listing 2, Using the array template

chiaia                  Gualtiero       Scientific Plotting with OWL
                        Chiaia

    splot.h      - listing 1, Class SpettroPlot containing graphical
                              routines

    Additional files not listed in the magazine:

    xindex.c
    cubicspl.cpp
    cwp.h
    dialoghi.cpp
    extra.h
    intcub.cpp
    intlin.cpp
    listasp.cpp
    main.h
    printer.cpp - includes contents of Listing 3 in magazine
    spettro.h
    spettro.rc
    splot.cpp   - includes contents of Listing 2 in magazine
    spmat.cpp
    convolut.cpp
    prism.ico
    prisma.def
    prisma.exe
    prisma.hlp
    prisma.ide
    prisma.ini
    readme.txt
    spetcl.cpp  - includes contents of Listing 4 in magazine
    spetfile.cpp
    spetmain.cpp
    spettro.cpp

saks                    Dan Saks        C++ Theory and Practice:
                                        The Syntax of new- and
                                        delete-expressions, Part 2

    newexpr.cpp  - listing 1, Translates C++ new-expressions into
                              English
    scanner.h    - not listed, Scan (a subset of) C++ tokens
    scanner.cpp  - not listed, Implementation of scanner
    decl.cpp     - not listed, translate C++ tokens into English

becker                  Pete Becker     Questions and Answers:
                                        Hiding Passwords in C

    getpass.c    - listing 1, Password input with backspace handling

letters                 We Have Mail

    timer.c      - listing 1, Ed Remmel's timer implementation

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

