************************* 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/DOS 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.

If you have obtained this code from UUNET, the headings under the column 
"FILENAME" represent the names of subdirectories.  All files listed under the
"filename" are included in a subdirectory of that name.

Keywords: Dec95 C C+ Garbage Collection DMA goto GPIB STL Iostreams

The code listings for the Dec 1995 issue of C/C++ Users Journal include
source code for Gregory Colvin's smart pointers for C++ garbage
collection, Gregor Owen's workaround for a bug in EMM386, and Bradford
Taylor's classes for GPIB programming with Iostreams.  Also included are
source listings from Bobby Schmidt's column, The Learning C/C++urve, and
a grammar listing from Dan Saks' column, Stepping Up to C++.
*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

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

owen			Gregor Owen	Doing "32-bit" DMA on a PC	27

    emmfix.c	 - listing 1, A workaround for the EMM386 DMA bug

colvin		 - listing 2, Smart Pointers for C++ Garbage Collection	37

    gc.h	 - listing 1, Portable interface to garbage collection
			      classes
    gc_imp.h	 - listing 2, Definition of non-portable classes
    gc.cpp	 - listing 3, Implementation of non-portable classes
    runtime.h	 - listing 4, Header for runtime library
    runtime.cpp	 - listing 5, Runtime patches to track working papers

taylor			Bradford Taylor	An Iostream Class for the GPIB	53

    gpibio.h	 - listing 1, Header file for GPIB stream classes
    gpibio.cpp	 - listing 2, Board-specific I/O classes
    overflow.cpp - listing 3, The overflow() function
    undrflow.cpp - listing 4, The underflow() function
    gpib.cpp	 - listing 5, Demo program for GPIB streams

taylor2			Bradford Taylor	An Iostream Class for the GPIB	53

			Complete source listings

    gpibio.h	 - listing 1, Header file for GPIB stream classes
    gpibio.cpp	 - listing 2, Board-specific I/O classes
    gpib.cpp	 - listing 5, Demo program for GPIB streams
    gpibin.cpp	 - not listed, Input class member functions
    gpibout.cpp	 - not listed, Output class member functions
    gstream.cpp	 - not listed, gstream constructor, gets and puts
    manip.cpp	 - not listed, implements manipulator functions
    decl.h	 - not listed, National Instruments library header file	

schmidt			Bobby Schmidt	The Learning C/C++urve: 	73
					Completing the Foundation

    mundo.cpp	 - listing 1, Source file mundo.cpp
    hither.h	 - listing 2, Source file hither.h
    yon.h	 - listing 3, Source file yon.h
    mundo2.cpp	 - listing 4, mundo.cpp after including headers
    mundo3.cpp	 - listing 5, Final translation unit
    mundo4.cpp	 - listing 6, Final translation unit assuming HERE is 0

saks			Dan Saks	Stepping Up to C++:		87
					Understanding C++ Declarations

    declspec.txt - table 2, A partial, slightly-simplified grammar for a
			    decl-specifier in C++
   

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

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
                              (913) 841-1631
-----------------------------------------------------------------------------

