

Programmer's Journal   volume 7.1   January/February 1989

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
README.71         4391  Crunched     2300   48%   12-15-88  00:58:26  7FE6
SPMTPL             598  Crunched      406   33%   10-18-88  05:25:06  D64B
SPMTPL.C          2830  Crunched     1731   39%   10-24-88  08:23:00  8F5D
SPMTPL.DEF         260  Crunched      226   14%   06-21-88  07:36:24  972C
SPMTPL.EXE        4656  Crunched     2910   38%   10-24-88  08:23:40  C9C8
SPMTPL.H          1011  Crunched      726   29%   07-22-88  10:49:06  C225
SPMTPL.RC          320  Crunched      261   19%   06-21-88  07:47:40  D17C
SPMTPLNT.C        2252  Crunched     1369   40%   10-18-88  05:52:24  424E
TCUNIT.PAS        5990  Crunched     2930   52%   12-15-88  00:47:50  F1D8
TCUNIT.TPU        5216  Crunched     3230   39%   12-15-88  00:51:54  A926
VGA71-L1.ASM      8300  Crunched     4484   46%   10-16-88  05:52:26  A921
VGA71-L2.ASM      6967  Crunched     3834   45%   10-16-88  05:52:26  3CE7
WINDGLOB.PAS       720  Crunched      479   34%   12-15-88  00:48:08  E96E
WINDGLOB.TPU       672  Crunched      324   52%   12-15-88  00:51:54  A80D
WINDINST.EXE      8944  Crunched     7357   18%   12-15-88  00:51:56  0A0A
WINDINST.PAS      1644  Crunched      951   43%   09-10-88  20:59:00  343E
WINDTEST.EXE      4896  Crunched     4394   11%   12-15-88  00:51:22  FA5D
WINDTEST.PAS      1929  Crunched     1149   41%   09-10-88  20:58:56  26E0
WINH19.C         13420  Crunched     6353   53%   10-23-88  19:16:30  17EA
WINH19FN.C       14589  Crunched     7408   50%   10-23-88  23:13:02  DC25
----            ------             ------  -----
0020             89605              52822   42%

     "Higher 256-color Resolution on the VGA"--when is 320x200 really 320x400, 
     and those less obvious high resolution VGA color modes
     by Michael Abrash
     
       VGA71-L1.ASM    Program to demonstrate pixel drawing in 320x400 
                       256-color mode on the VGA. Draws 8 lines to form an 
                       octogon, a pixel at a time. Draws 8 octogons in all, 
                       one on top of the other, each in a different color set.  
                       Although it's not used, a pixel read function is also 
                       provided
       VGA71-L2.ASM    Program to demonstrate the two pages available in 
                       320x400 256-color modes on a VGA. Draws diagonal color 
                       bars in all 256 colors in page 0, then does the same in 
                       page 1 (but with bars tilted the other way), and finally 
                       draws vertical color bars in page 0
       

     "Demagnetizing Static Variables"--Modifying typed constants (alias static
     Variables) stored in Turbo 4.0 and 5.0 compiled EXE code files is hairy
     business, but it can be done.
     by Tom Swan
     
       TCUNIT.PAS      Program for editing typed constants in EXE files  
                       for Turbo Pascal 4.0 or 5.0
       TCUNIT.TPU      A TPU compiled with Turbo Pascal 5.0

       WINDGLOB.PAS    Typed constants for WINDTEST and WINDINST
       WINDGLOB.TPU    and a Turbo Pascal 5.0 TPU

       WINDTEST.PAS    A sample test program in Turbo Pascal 4.0/5.0
       WINDTEST.EXE    and the generated TP 5.0 executable file

       WINDINST.PAS    Windtest installer in Turbo Pascal 4.0/5.0
       WINDINST.EXE    and a TP 5.0 executable


     "Terminal Emulation under Windows"
     by William S. Hall
     
       WINH19.C        Program entry module extracts from a Windows H19
                       terminal emulator in Microsoft C
       WINH19FN.C      Emulator function support module extracts from a
                       Windows H19 terminal emulator in Microsoft C

Also, since William Hall's article "An OS/2 Presentation Manager Application
Template", PJ 6.5, Microsoft has altered the API enough to break
the original code.  In particular, WinCreateStdWindow has
changed. Bill has included a new version which should compile and
run correctly under the current PM SDK, version 4.99.  

       SPMTPL          A make file for SPMTPL
       SPMTPL.DEF      The Presentation Manager .DEF file 
       SPMTPL.H        The header file with constant definitions for the 
                       strings in the resource file as well as globals
                       terminal emulator in Microsoft C
       SPMTPL.RC       The resource file
       SPMTPL.C        The main C source code to SPMTBL
       SPMTBLNT.C      The code needed only during for startup
       SPMTPL.EXE      An executable version of the SPM Presentation
                       Manager template

       


Programmer's Journal   volume 7.2   March/April 1989

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
ANIMATE.ASM      14534  Crunched     6946   53%   12-12-88  09:37:54  7DD0
ANIMATE.EXE       2169  Crunched      636   71%   02-26-89  21:39:18  BFC2
CDLL.C             548  Crunched      368   33%   02-26-89  21:25:28  210D
CDLL.DEF            88  Crunched       87    2%   02-26-89  21:27:24  1F1C
CINIT.ASM          587  Crunched      337   43%   02-26-89  21:27:04  47FC
DEVCHAIN.ASM      3562  Crunched     1893   47%   02-26-89  21:08:12  CDBE
DEVCHAIN.COM       790  Crunched      479   40%   02-26-89  21:08:30  B976
EXAMPLE.ASM       2132  Crunched      883   59%   02-26-89  21:21:02  1CD8
FORMAT.PAS        5703  Crunched     2637   54%   02-28-89  12:33:36  4571
MASMDLL.ASM       1220  Crunched      609   51%   02-26-89  21:22:12  6D0D
MASMDLL.DEF         79   Stored        79    0%   02-26-89  21:23:26  53B6
MEMMOVE.ASM       4035  Crunched     2298   44%   01-31-89  23:38:36  568A
MEMMOVE.OBJ        382  Crunched      364    5%   02-26-89  21:34:12  F193
PJINDEX.66        8992  Crunched     3927   57%   02-26-89  23:59:00  B3D4
PMDEV1.ARC       23114   Stored     23114    0%   03-09-89  14:29:04  D8A7
PMDEV2.ARC       19467   Stored     19467    0%   03-09-89  14:30:08  7403
PWCOMM1.ARC       4919   Stored      4919    0%   03-09-89  14:42:54  6343
PWCOMM2.ARC       5216   Stored      5216    0%   03-09-89  14:43:26  0C22
README.BBS         569  Crunched      357   38%   03-09-89  14:40:18  05C4
README7.2         7396  Crunched     3488   53%   02-27-89  10:24:42  1D02
SEMAPHOR.HXX      2950  Crunched     1743   41%   12-21-88  21:25:20  E2DA
SHARE.CXX         2024  Crunched     1214   41%   12-22-88  11:20:50  168A
TASK.HXX          1125  Crunched      757   33%   12-21-88  21:23:16  B42D
WINDEV1.ARC      19300   Stored     19300    0%   03-09-89  14:41:30  2EEC
WINDEV2.ARC      25482   Stored     25482    0%   03-09-89  14:42:06  45E8
----            ------             ------  -----
0025            156383             126600   20%

                    Code from Michael Abrash's "EGA and VGA Animation."
                    Using the EGA/VGA bit-plane architecture and color
                    palette for animation.
     ANIMATE.ASM    Assembler source program to demonstrate bit-plane animation
     ANIMATE.EXE    Executable file for a VGA

                    Example code based on Ray Michels' "Undocumented DOS
                    Internals." This sample code listing displays the
                    DOS device driver chain (similar to the DDI C utility in
                    PJ 6.6) using undocumented DOS calls to locate the device
                    chain start. Note that this code was not included with
                    the article.
     DEVCHAIN.ASM   Assembler source module (C small model)
     DEVCHAIN.COM   Executable COM file

                    Code from Steven Baker's "386 Now" column. Taking 
                    advantage of fast 80386 block moves under DOS.
     MEMMOVE.ASM    Assembler source module (C small model)
     MEMMOVE.OBJ    Linkable object model for Microsoft and TurboC
                    (small model)

                    Code from Ray Duncan's "OS/2 Dynamic Link Libraries,"
                    adapted from "Advanced OS/2 Programming" from
                    Microsoft Press, 1989.
     EXAMPLE.ASM    Example code fragment showing runtime dynamic linking
     MASMDLL.ASM    Source code for an assembly language dynlink library
     MASMDLL.DEF    The module definition file for the skeleton MASMDLL.DLL
     MASMDLL.DEF    The module definition file for the skeleton MASMDLL.DLL
     CDLL.C         A skeleton dynlink library written in C
     CINIT.ASM      The assembler module containing the initialization entry
                    for CDLL.DLL
     CDLL.DEF       The module definition file for the skeleton CDLL.DLL

                    Code from Vaughn Vernon's "OS/2 Multitasking with Class."
                    Some classes for OS/2 threads and semaphores.
     TASK.HXX       C++ header file implementing the Task class
     SEMAPHOR.HXX   C++ header file defining the OS/2 Semaphore class
     SHARE.CXX      C++ sample file to test Task and Semaphore classes

                    Code from William Hall's "A Simple Debugging Utility
                    for Presentation Manager and Windows." A PM/Windows
                    expert shows how to write to a debugging window.
                    Only excerpts of this code were published in PJ 7.2.
     PWCOMMON\TTYCLS:   Subdirectory
       ASCII.H
       TTYCLS.C		The TTY window code shared under both PM and windows
       TTYCLS.H     	The TTY window header file
     PWCOMMON\WPMAUX:	Subdirectory
       AUXPRT.H
       WPMAUX.DOC	Documentation on both WINAUX and PMAUX
     PMDEV\PMAUX:       Subdirectory
       PMAUX		Make file for WINAUX
       PMAUX.C		The PMAUX main module
       PMAUX.DEF	Definitions for PMAUX
       PMAUX.EXE	OS/2 PMAUX executable file
       PMAUX.H		The include file for PMAUX
       PMAUX.MAP	The Link map file
       PMAUX.OBJ	The main module object file
       PMAUX.RC		The resource file for PM debugging window
       PMAUX.RES	Output from the resource compiler
       PMAUXFN.C	PM auxiliary functions for debugging window
       PMAUXFN.OBJ	and the resultant object file
       PMAUXNT.C	PM initialization functions
       PMAUXNT.OBJ	and the resulting object file
       TTYCLS.OBJ	PM TTY code object module
     WINDEV\WINAUX:     Subdirectory
       TTYCLS.OBJ	Windows TTY code object module
       WINAUX		Make file for WINAUX
       WINAUX.C		The WINAUX main module
       WINAUX.DEF	Definitions for WINAUX
       WINAUX.EXE	Windows WINAUX executable file
       WINAUX.H		The include file for WINAUX
       WINAUX.MAP	The Link map file
       WINAUX.OBJ	The main module object file
       WINAUX.RC	The Windows resource file for debugging window
       WINAUX.RES	Output from the resource compiler
       WINAUX.SYM	A symbol file for Symdeb
       WINAUXFN.C	Windows auxiliary functions for debugging window
       WINAUXFN.OBJ	and the resulting object file
       WINAUXNT.C	Windows initialization functions
       WINAUXNT.OBJ	and the resulting object file

                    Also included is updated code from William Hall based
                    on his article "An OS/2 Presentation Manager Template"
                    from PJ volume 6.5. Microsoft altered the API enough
                    to break the original code. This new version should
                    compile and run correctly under the current PM SDK.
                    A comparable template for Windows is also included.
     PMDEV\SPMTPL:	Subdirectory
       SPMTPL		The PM Sample Template Make file
       SPMTPL.C		The main module
       SPMTPL.DEF	Definitions for SPMTPL
       SPMTPL.EXE	The OS/2 PM executable file
       SPMTPL.H		A header file for the sample template
       SPMTPL.MAP	A Link map file
       SPMTPL.OBJ	The main module object file
       SPMTPL.RC	The PM resource file
       SPMTPL.RES	Output from the resource compiler
       SPMTPLNT.C	Initialization functions
       SPMTPLNT.OBJ	and the resulting object files
     WINDEV\SMLTPL:	Subdirectory
       SMLTPL		The Windows sample template Make file
       SMLTPL.C		The main module
       SMLTPL.DEF	Definitions for SMLTPL
       SMLTPL.EXE	The Windows executable file
       SMLTPL.H		Sample Template header file
       SMLTPL.MAP	The Link map file
       SMLTPL.OBJ	The main module object file
       SMLTPL.RC	The Window resource file for the sample template
       SMLTPL.RES	Output of the resource compiler
       SMLTPL.SYM	A symbol file for use with Symdeb
       SMLTPLNT.C	Initialization functions
       SMLTPLNT.OBJ	and the resulting object file

                    Code fragments from John Newlin's "Disk Formatting."
                    System programming to deal with various floppy disk
                    formats and formatting.
     FORMAT.PAS     Turbo Pascal code fragments from the article

     PJINDEX.66     Index to Programmer's Journal Volume 6, 1988.
     		    An ascii text file of articles in PJ Volume 6
     		    in 128-column-width format.




Programmer's Journal   volume 7.3a   May/June 1989

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
BTRIEVE.C         9895  Crunched     4583   54%   04-20-89  13:45:26  D3A2
CUT.C             7063  Crunched     3705   48%   04-19-89  22:28:28  DECE
CUT.EXE          35000  Crunched    13322   62%   04-19-89  22:29:10  E369
DELIM.C           6413  Crunched     3222   50%   04-19-89  22:27:08  D2B3
DELIM.EXE        17774  Crunched    12691   29%   04-19-89  22:28:02  0343
DISPLAY.CLS       2942  Crunched     1426   52%   02-21-89  17:18:02  A3BB
DISPLAY.CPP       4765  Crunched     2496   48%   02-22-89  09:51:10  C20B
DOTS.CPP          1100  Crunched      727   34%   02-22-89  09:56:22  286F
DOTS.EXE          8558  Crunched     5910   31%   02-22-89  09:58:52  27BE
ESQL.C             927  Crunched      419   55%   04-19-89  21:55:20  3421
ESQL.COB          3967  Crunched     1603   60%   04-20-89  12:13:54  DA96
ESQL.PAS           934  Crunched      434   54%   04-19-89  21:56:48  0CB4
EVGALINE.ASM     13388  Crunched     5271   61%   02-05-89  10:25:32  643B
EVGALINE.C        6662  Crunched     3065   54%   02-05-89  10:25:32  8314
FASTDEMO.EXE     11256  Crunched     7664   32%   04-19-89  22:11:02  0D9F
GETOPT.C          1479  Crunched      898   40%   04-02-89  22:56:28  F6CD
GETOPT3.1         2904  Crunched     1760   40%   04-02-89  22:57:46  3CEE
GETOPT3.C         2542  Crunched     1592   38%   04-02-89  22:57:46  36F6
GETOPTD.OBJ       1411  Crunched     1159   18%   10-15-88  21:53:30  74CE
KEYBOARD.CLS      1937  Crunched     1041   47%   02-21-89  18:10:44  0A13
KEYBOARD.CPP       505  Crunched      386   24%   02-20-89  13:04:42  1653
LINEDEMO.C        2590  Crunched     1323   49%   02-04-89  22:20:32  1861
MOUSE.CLS          964  Crunched      667   31%   02-22-89  09:44:12  C6E2
MOUSE.CPP         2218  Crunched     1184   47%   02-20-89  11:39:18  6F8E
NEURAL.BAS        2304  Crunched     1171   50%   04-20-89  03:36:26  3F9B
PJINDEX.66        8992  Crunched     3927   57%   02-26-89  23:59:00  B3D4
POINT.CLS          816  Crunched      539   34%   02-22-89  09:02:32  D226
README7.3         9229  Crunched     4265   54%   04-20-89  03:41:48  5FE1
RECT.CLS           909  Crunched      587   36%   02-22-89  09:03:02  7258
SLOWDEMO.EXE     12411  Crunched     8420   33%   04-19-89  22:07:20  C276
----            ------             ------  -----
0030            181855              95457   48%


                    Code fragments from Tom Waite and Hal Hardenbergh's
                    "Neural Nets."  A history of neural nets, breakthroughs, 
                    learning, and training.  Note that we haven't received
                    the complete inplementation of the back-propagation 
                    algorithm in BASIC from Hal yet, so we'll include it
                    on the 7.4 code disk.
     NEURAL.BAS     Sample BASIC code fragments showing recall and training
                    a neural network using back-propagation.

                    Code from Michael Abrash's "Fast Line Drawing for the
                    EGA and VGA".  Bresenham's algorithm implemented for 
                    the EGA/VGA in both C and assembly language.
     LINEDEMO.C     C source program to demonstrate line drawing
     EVGALINE.C     Turbo C source module for line drawing using
                    Bresenham's algorithm for the EGA and VGA
     SLOWDEMO.EXE   Executable file based on Turbo C line drawing module
     EVGALINE.ASM   Assembly language source module for line drawing using
                    Bresenham's algorithm for the EGA and VGA
     FASTDEMO.EXE   Executable file based on assembly language line drawing 
                    module

                    Code fragments from Richard Riehle's "Embedded SQL for
                    a Relational Database."  Programming with SQL embedded
                    in COBOL, Pascal, and C.  
     ESQL.COB       Sample COBOL code fragments showing embedded SQL syntax
     ESQL.PAS       Sample Pascal code fragments showing embedded SQL syntax
     ESQL.C         Sample C code fragments showing embedded SQL syntax

                    Code from Amrit Khalsa and Pete Maclean's 
                    "Btrieve for C Programmers."  A clean C interface
                    to the Btrieve file manager.
     BTRIEVE.C      C source code to the Btrieve interface described
                    in this article

                    Code from Steven Baker's "Converting Database Files
                    Using Filters."  Quick and dirty file translation for
                    your database needs.
     CUT.C          C source code to a Unix like filter for DOS that
                    cuts fields or columns from a text file
     GETOPTD.OBJ    A small model object file of getopt from Turbo C
                    that supports the default dos switch character,
                    normally '/', and the Unix '-' character for options.
     CUT.EXE        An executable file based on the C source code
     DELIM.C        C source code to a filter that converts files with
                    some user-selected delimiter character to a comma
                    delimited file suitable for importing into dBASEIII 
                    and similar database managers.
     DELIM.EXE      An executable file based on the source code
     GETOPT3.C      For those without Turbo C, the C source code to the 
                    AT&T version of getopt released to the public domain.
     GETOPT3.1      A description of the getopt function in NROFF format
                    from USENET comp/sources/misc group
     GETOPT.C       A derived version of getopt.c from the 
                    GNU project's diff utility ported to DOS ported 
                    by Kent Williams.

                    Code from William Hall's "A Substitute for the Missing
                    TYPE command in Windows."  Font selection, file open
                    dialog boxes, accelerator keys, and multitasking in 
                    Windows.
                    Only excerpts of this code were published in PJ 7.2.
     WINDEV\WINVUE:     Subdirectory
       CSET.TXT     A sample file to display containing non-ASCII characters
       LONGSTR.H    A header file for functions lstrcpy() and lstrlen()
       TTYCLS.OBJ   Windows TTY code object module
       WINVUE       Make file for WINVUE
       WINVUE.C     The WINVUE main module
       WINVUE.DEF   Definitions for WINVUE
       WINVUE.EXE   A Windows WINVUE executable file
       WINVUE.H     The include file for WINVUE
       WINVUE.MAP   The Link map file
       WINVUE.OBJ   The main module object file
       WINVUE.RC    The resource file for WINVUE
       WINVUE.RES   Output from teh resource compiler
       WINVUE.SYM   A symbol file for Symdeb
       WINVUEFN.C   Windows auxiliary functions for WINVUE
       WINVUEFN.OBJ and the resulting object file
       WINVUEMS.C   WINVUE file open routines
       WINVUEMS.OBJ and the resulting object file 
       WINVUENT.C   Windows initialization functions
       WINVUENT.OBJ and the resulting object file


                    Also included is updated code from William Hall based
                    on his article "A Simple Debugging Utility for
                    Presentation Manager and Windows" from PJ volume 7.2. 
                    Microsoft/IBM changed the default font from a fixed font
                    to a proportional font and also altered the API again.  
                    This new version should compile and run correctly 
                    under the current PM SDK and the IBM OS/2 Version 1.1 
                    retail release.  Comparable changes for WINAUX (under
                    Windows is included.
     PWCOMMON\TTYCLS:   Subdirectory
       ASCII.H
       TTYCLS.C		The TTY window code shared under both PM and windows
       TTYCLS.H     	The TTY window header file
     PMDEV\PMAUX:       Subdirectory
       PMAUX		Make file for WINAUX
       PMAUX.C		The PMAUX main module
       PMAUX.DEF	Definitions for PMAUX
       PMAUX.EXE	OS/2 PMAUX executable file
       PMAUX.H		The include file for PMAUX
       PMAUX.MAP	The Link map file
       PMAUX.OBJ	The main module object file
       PMAUX.RC		The resource file for PM debugging window
       PMAUX.RES	Output from the resource compiler
       PMAUXFN.C	PM auxiliary functions for debugging window
       PMAUXFN.OBJ	and the resultant object file
       PMAUXNT.C	PM initialization functions
       PMAUXNT.OBJ	and the resulting object file
       TTYCLS.OBJ	PM TTY code object module
     WINDEV\WINAUX:     Subdirectory
       TTYCLS.OBJ	Windows TTY code object module
       WINAUX		Make file for WINAUX
       WINAUX.C		The WINAUX main module
       WINAUX.DEF	Definitions for WINAUX
       WINAUX.EXE	Windows WINAUX executable file
       WINAUX.H		The include file for WINAUX
       WINAUX.MAP	The Link map file
       WINAUX.OBJ	The main module object file
       WINAUX.RC	The Windows resource file for debugging window
       WINAUX.RES	Output from the resource compiler
       WINAUX.SYM	A symbol file for Symdeb
       WINAUXFN.C	Windows auxiliary functions for debugging window
       WINAUXFN.OBJ	and the resulting object file
       WINAUXNT.C	Windows initialization functions
       WINAUXNT.OBJ	and the resulting object file

                    Code from Vaughn Vernon's "User Interface Tools for
                    DOS."  DOS classes for the display, keyboard, and
                    mouse.
     POINT.CLS      C++ class definition file for the Point class
     RECT.CLS       C++ class definition file for the Rectangle class
     DISPLAY.CLS    C++ class definition file for the Display class
     DISPLAY.CPP    C++ header file implementing the Display class
     MOUSE.CLS      C++ class definition file for the Mouse class
     MOUSE.CPP      C++ header file implementing the Mouse class
     KEYBOARD.CLS   C++ class definition file for the Keyboard class
     KEYBOARD.CPP   C++ header file implementing the Keyboard class
     DOTS.CPP       C++ sample file to demonstrate using Point, Rectangle, 
                    Display and Mouse classes.  
     DOTS.EXE       An executable file based on the source code

     PJINDEX.66     Index to Programmer's Journal Volume 6, 1988.
     		    An ascii text file of articles in PJ Volume 6
     		    in 128-column-width format.

Programmer's Journal   volume 7.3b   May/June 1989

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
PMDEV.ARC        25948   Stored     25948    0%   05-16-89  11:55:30  FA84
PWCOMMON.ARC      5609   Stored      5609    0%   05-16-89  11:58:52  5AC6
README7.3         9229  Crunched     4265   54%   04-20-89  03:41:48  5FE1
WINDEV.ARC       73417   Stored     73417    0%   05-16-89  12:17:54  E6C4
----            ------             ------  -----
0004            114203             109239    5%


                    Code fragments from Tom Waite and Hal Hardenbergh's
                    "Neural Nets."  A history of neural nets, breakthroughs, 
                    learning, and training.  Note that we haven't received
                    the complete inplementation of the back-propagation 
                    algorithm in BASIC from Hal yet, so we'll include it
                    on the 7.4 code disk.
     NEURAL.BAS     Sample BASIC code fragments showing recall and training
                    a neural network using back-propagation.

                    Code from Michael Abrash's "Fast Line Drawing for the
                    EGA and VGA".  Bresenham's algorithm implemented for 
                    the EGA/VGA in both C and assembly language.
     LINEDEMO.C     C source program to demonstrate line drawing
     EVGALINE.C     Turbo C source module for line drawing using
                    Bresenham's algorithm for the EGA and VGA
     SLOWDEMO.EXE   Executable file based on Turbo C line drawing module
     EVGALINE.ASM   Assembly language source module for line drawing using
                    Bresenham's algorithm for the EGA and VGA
     FASTDEMO.EXE   Executable file based on assembly language line drawing 
                    module

                    Code fragments from Richard Riehle's "Embedded SQL for
                    a Relational Database."  Programming with SQL embedded
                    in COBOL, Pascal, and C.  
     ESQL.COB       Sample COBOL code fragments showing embedded SQL syntax
     ESQL.PAS       Sample Pascal code fragments showing embedded SQL syntax
     ESQL.C         Sample C code fragments showing embedded SQL syntax

                    Code from Amrit Khalsa and Pete Maclean's 
                    "Btrieve for C Programmers."  A clean C interface
                    to the Btrieve file manager.
     BTRIEVE.C      C source code to the Btrieve interface described
                    in this article

                    Code from Steven Baker's "Converting Database Files
                    Using Filters."  Quick and dirty file translation for
                    your database needs.
     CUT.C          C source code to a Unix like filter for DOS that
                    cuts fields or columns from a text file
     GETOPTD.OBJ    A small model object file of getopt from Turbo C
                    that supports the default dos switch character,
                    normally '/', and the Unix '-' character for options.
     CUT.EXE        An executable file based on the C source code
     DELIM.C        C source code to a filter that converts files with
                    some user-selected delimiter character to a comma
                    delimited file suitable for importing into dBASEIII 
                    and similar database managers.
     DELIM.EXE      An executable file based on the source code
     GETOPT3.C      For those without Turbo C, the C source code to the 
                    AT&T version of getopt released to the public domain.
     GETOPT3.1      A description of the getopt function in NROFF format
                    from USENET comp/sources/misc group
     GETOPT.C       A derived version of getopt.c from the 
                    GNU project's diff utility ported to DOS ported 
                    by Kent Williams.

                    Code from William Hall's "A Substitute for the Missing
                    TYPE command in Windows."  Font selection, file open
                    dialog boxes, accelerator keys, and multitasking in 
                    Windows.
                    Only excerpts of this code were published in PJ 7.2.
     WINDEV\WINVUE:     Subdirectory
       CSET.TXT     A sample file to display containing non-ASCII characters
       LONGSTR.H    A header file for functions lstrcpy() and lstrlen()
       TTYCLS.OBJ   Windows TTY code object module
       WINVUE       Make file for WINVUE
       WINVUE.C     The WINVUE main module
       WINVUE.DEF   Definitions for WINVUE
       WINVUE.EXE   A Windows WINVUE executable file
       WINVUE.H     The include file for WINVUE
       WINVUE.MAP   The Link map file
       WINVUE.OBJ   The main module object file
       WINVUE.RC    The resource file for WINVUE
       WINVUE.RES   Output from teh resource compiler
       WINVUE.SYM   A symbol file for Symdeb
       WINVUEFN.C   Windows auxiliary functions for WINVUE
       WINVUEFN.OBJ and the resulting object file
       WINVUEMS.C   WINVUE file open routines
       WINVUEMS.OBJ and the resulting object file 
       WINVUENT.C   Windows initialization functions
       WINVUENT.OBJ and the resulting object file


                    Also included is updated code from William Hall based
                    on his article "A Simple Debugging Utility for
                    Presentation Manager and Windows" from PJ volume 7.2. 
                    Microsoft/IBM changed the default font from a fixed font
                    to a proportional font and also altered the API again.  
                    This new version should compile and run correctly 
                    under the current PM SDK and the IBM OS/2 Version 1.1 
                    retail release.  Comparable changes for WINAUX (under
                    Windows is included.
     PWCOMMON\TTYCLS:   Subdirectory
       ASCII.H
       TTYCLS.C		The TTY window code shared under both PM and windows
       TTYCLS.H     	The TTY window header file
     PMDEV\PMAUX:       Subdirectory
       PMAUX		Make file for WINAUX
       PMAUX.C		The PMAUX main module
       PMAUX.DEF	Definitions for PMAUX
       PMAUX.EXE	OS/2 PMAUX executable file
       PMAUX.H		The include file for PMAUX
       PMAUX.MAP	The Link map file
       PMAUX.OBJ	The main module object file
       PMAUX.RC		The resource file for PM debugging window
       PMAUX.RES	Output from the resource compiler
       PMAUXFN.C	PM auxiliary functions for debugging window
       PMAUXFN.OBJ	and the resultant object file
       PMAUXNT.C	PM initialization functions
       PMAUXNT.OBJ	and the resulting object file
       TTYCLS.OBJ	PM TTY code object module
     WINDEV\WINAUX:     Subdirectory
       TTYCLS.OBJ	Windows TTY code object module
       WINAUX		Make file for WINAUX
       WINAUX.C		The WINAUX main module
       WINAUX.DEF	Definitions for WINAUX
       WINAUX.EXE	Windows WINAUX executable file
       WINAUX.H		The include file for WINAUX
       WINAUX.MAP	The Link map file
       WINAUX.OBJ	The main module object file
       WINAUX.RC	The Windows resource file for debugging window
       WINAUX.RES	Output from the resource compiler
       WINAUX.SYM	A symbol file for Symdeb
       WINAUXFN.C	Windows auxiliary functions for debugging window
       WINAUXFN.OBJ	and the resulting object file
       WINAUXNT.C	Windows initialization functions
       WINAUXNT.OBJ	and the resulting object file

                    Code from Vaughn Vernon's "User Interface Tools for
                    DOS."  DOS classes for the display, keyboard, and
                    mouse.
     POINT.CLS      C++ class definition file for the Point class
     RECT.CLS       C++ class definition file for the Rectangle class
     DISPLAY.CLS    C++ class definition file for the Display class
     DISPLAY.CPP    C++ header file implementing the Display class
     MOUSE.CLS      C++ class definition file for the Mouse class
     MOUSE.CPP      C++ header file implementing the Mouse class
     KEYBOARD.CLS   C++ class definition file for the Keyboard class
     KEYBOARD.CPP   C++ header file implementing the Keyboard class
     DOTS.CPP       C++ sample file to demonstrate using Point, Rectangle, 
                    Display and Mouse classes.  
     DOTS.EXE       An executable file based on the source code

     PJINDEX.66     Index to Programmer's Journal Volume 6, 1988.
     		    An ascii text file of articles in PJ Volume 6
     		    in 128-column-width format.


Programmer's Journal   volume 7.5   September/October 1989

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
ASMHDR.C          3536  Crunched     1918   46%   06-27-89  08:19:14  66FC
ASMHDR.EXE       13788  Crunched    10485   24%   08-24-89  01:10:56  1097
COOP.C            2657  Crunched     1074   60%   07-03-89  08:40:34  1220
COOP.H            2255  Crunched      743   68%   07-03-89  08:40:34  9CF4
EVGALINE.C        5398  Crunched     2225   59%   08-03-89  14:54:30  3DB0
GRAPHWLD.PAS      7259  Crunched     3131   57%   06-08-89  15:10:08  F46B
GRWDEMO.PAS       6195  Crunched     3335   47%   06-08-89  15:10:08  2E08
JOE.CXX             12   Stored        12    0%   05-05-89  09:44:12  B174
JOE.H               13   Stored        13    0%   05-05-89  09:44:42  18AF
JOE.HXX             12   Stored        12    0%   05-05-89  09:44:32  70D1
LIBGEN.C          2278  Crunched     1173   49%   06-27-89  08:18:18  FE3D
LIBGEN.EXE       10265  Crunched     8093   22%   08-24-89  00:58:08  9B7C
MAKE.C            9501  Crunched     4674   51%   05-05-89  09:53:22  7599
MAKE.DOC          4066  Crunched     1541   63%   08-18-89  14:06:14  AD46
MAKE.EXE         16813  Crunched    13560   20%   05-05-89  09:54:22  C094
MAKE.MAK           305  Crunched      194   37%   06-12-89  23:34:34  F129
MAKEFILE           168  Crunched      121   28%   05-05-89  09:43:44  F5C8
MK.BAT             280  Crunched      198   30%   08-18-89  14:07:16  7E13
MS_DOS.ASM         203  Crunched      156   24%   06-27-89  12:50:06  BCFF
OOP.CLS           3998  Crunched     1167   71%   07-03-89  08:40:36  99C2
OUTCHR.ASM         247  Crunched      179   28%   06-27-89  12:19:18  8BC0
PJINDEX.66        8992  Crunched     3927   57%   02-26-89  23:59:00  B3D4
PUBCLASS.H        1263  Crunched      697   45%   06-12-89  22:53:08  962C
README7.5         6819  Crunched     3392   51%   08-28-89  10:24:56  BF69
SEND.C            1430  Crunched      747   48%   07-19-89  12:57:02  1B8B
SUE.CPP             12   Stored        12    0%   05-05-89  09:44:54  F0D1
SUE.HPP             12   Stored        12    0%   05-05-89  09:45:06  3174
TEST.C            1889  Crunched      843   56%   07-03-89  08:40:36  2CB4
TEST.EXE         11049  Crunched     7657   31%   06-15-89  01:00:38  3CA3
TEST2.C            766  Crunched      474   39%   07-03-89  08:40:36  0B58
TEST2.EXE        14461  Crunched     9600   34%   06-12-89  23:36:48  6074
TEST360.C         6699  Crunched     3020   55%   06-11-89  10:09:40  D683
TEST360.EXE      12404  Crunched     8435   32%   08-24-89  00:52:50  C561
TIMER.PAS         2928  Crunched     1158   61%   08-03-89  14:49:50  32F1
VGA360.ASM        6404  Crunched     3296   49%   06-11-89  10:06:54  48D7
----            ------             ------  -----
0035            164377              97274   41%


                    Code from the John Navas letter illustrating high-
                    performance C code to draw lines fast on EGA and 
                    VGA cards.
     EVGALINE.C     C code for EVGA line drawing.

                    Code from the Thomas Leathley letter illustrating 
     TIMER.PAS      a high-resolution timer in Turbo Pascal.

                    Code from Michael Abrash's "Still-Higher 256-Color
                    VGA Resolutions."  Michael shows how to crank
                    standard VGAs up to 360x480 256-color resolution.
                    A high-resolution timer for testing your graphics code.
     VGA360.ASM     Assembly language source code module callable from C
                    for high-resolution 360x480 modes.  Subroutines include
                    setting the 360x480 mode, drawing a dot in 
                    360x480 256-color mode, and reading the color of a dot
                    in this mode.
     TEST360.C      Sample C program to illustrate VGA line drawing in the
                    360x480 256-color mode.
     TEST360.EXE    An executable version of this sample 360x480 line-
                    drawing program.

                    The UNIX-like MAKE utility code mentioned in Vaughn 
                    Vernon's "The Forest for the Trees."  Creating class 
                    libraries in C++ that cooperate and coexist. 
     MAKE.DOC       Documentation on Vaughn Vernon's MAKE program that 
                    creates batch files for execution.
     MAKE.C         C source code to this simple MAKE program.
     MAKE.EXE       An executable of this MAKE program.
     JOE.CXX        Sample files used to test the MAKE program.
     JOE.H            \          \
     JOE.HXX           \          \
     SUE.CPP            \          \
     SUE.HPP             \          \
     MAKEFILE       The sample makefile.
     MK.BAT         The output batch file created.

                    Code from Steve Sando's "From C to Objects."
                    Bridging the gap between traditional and object-
                    oriented programming in C with a little class.
     COOP.C         C functions to handle two-way linked lists.
     COOP.H         Structure definitions for simulated objects.
     MAKE.MAK       A make file for building object modules and
                    test programs.
     OOP.CLS        Methods for two-way linked lists.
     PUBCLASS.H     Methods for handling objects.
     SEND.C         A sample send function used for passing messages.
     TEST.C         A sample program to test the two-way linked-list
                    functions using straight C.
     TEST.EXE       An executable version of this test program.
     TEST2.C        A sample program the same as TEST.C to test the 
                    two-way linked list functions, except using objects.
     TEST2.EXE      An executable version of this test program.

                    Code from John Otken's "A Library System for Assembly."
                    Our assembly language coding wizard describes how to
                    use libraries effectively and gives a detailed look 
                    at 80x86 register usage.
     ASMHDR.C       A Turbo C program to process assembly language headers 
                    for documentation and library generation.
     AMSHDR.EXE     An executable version of this program.
     LIBGEN.C       A C program to generate miscellaneous control
                    files for building assembly language libraries.
     LIBGEN.EXE     An executable version of this program. 
     MS_DOS.ASM     Example assembly language source module for calling
                    MS-DOS.
     OUTCHR.ASM     Example assembly language source module for sending
                    a character to stdout (normally the screen).

                    Code from Gene Fowler's "The World in Your Hands."
                    Adding world scaling to Turbo Pascal's BGI graphics 
                    primitives.
     GRAPHWLD.PAS   A Turbo Pascal unit that extends Graph.tpu
                    to handle world coordinates by providing 
                    parallel drawing procedures that translate
                    world to viewpoint coordinates
                    for documentation and library generation.
     GRWDEMO.PAS    A stripped down 3-D object rotator and translator 
                    written in Turbo Pascal that illustrates the GraphWld 
                    procedures.

     PJINDEX.66     Index to Programmer's Journal Volume 6, 1988.
     		    An ASCII text file of articles in PJ Volume 6
        	    in 128-column-width format.



Programmer's Journal   volume 7.6   November/December 1989

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
ALTMON.PAS       16112  Crunched     7110   56%   06-07-89  15:27:00  C07A
ALTMON.TPU       12672  Crunched     6461   50%   06-07-89  16:02:32  3525
ALTTEST.EXE      14896  Crunched    10474   30%   06-07-89  16:02:34  7B1B
ALTTEST.PAS       7376  Crunched     3381   55%   06-07-89  16:02:30  DE63
ASMCOM.BAT          85  Crunched       62   28%   07-06-89  12:18:28  F045
MSDOS.ASM         1006  Crunched      613   40%   08-30-89  01:55:30  76D2
PANNING.ASM      12944  Crunched     5930   55%   08-13-89  16:57:44  8263
PEEPER.ASM        3450  Crunched     1853   47%   07-31-89  10:08:04  1B31
RANDOM.ASM        1243  Crunched      829   34%   08-31-89  18:45:22  E216
README7.6         6709  Crunched     3338   51%   10-23-89  09:38:22  D672
SEARCHST.ASM      2956  Crunched     1501   50%   10-17-89  01:51:34  CC27
SPLITSCN.ASM     10577  Crunched     4854   55%   08-13-89  16:50:08  C1B2
TOMCOM.ASM        5161  Crunched     2780   47%   07-31-89  10:08:04  7D3A
TOMPEEK            167  Crunched      111   34%   07-05-89  15:20:36  7F0D
TOMPEEK.C         1180  Crunched      804   32%   07-31-89  10:08:02  A3DD
UITEM.PAS          994  Crunched      581   42%   08-18-89  15:21:16  7AD9
UKEYS.PAS          878  Crunched      539   39%   08-18-89  15:21:10  054A
ULIST.PAS         3674  Crunched     1679   55%   08-18-89  15:21:24  240C
USTRITEM.PAS      1791  Crunched      982   46%   08-18-89  15:21:36  36ED
WINDEV.ARC       87315   Stored     87315    0%   10-27-89  12:18:00  8AED
WINSTACK.C         821  Crunched      567   31%   04-25-88  14:56:32  5F4B
WINSTACK.H         244  Crunched      204   17%   04-25-88  14:13:54  B9CC
WINSTACK.OBJ       528  Crunched      477   10%   08-23-89  10:01:28  1007
WINTEST.C          992  Crunched      613   39%   08-23-89  10:00:58  6A24
WINTEST.EXE      17421  Crunched    12940   26%   08-23-89  10:02:14  21EF
WINTEST.OBJ        924  Crunched      742   20%   08-23-89  10:01:48  996E
----            ------             ------  -----
0026            212116             156740   27%

                    Code from Michael Abrash's "VGA and EGA Split Screens."
                    Using the nifty but surprisingly tricky split-screen
                    features of the EGA and VGA.
     SPLITSCN.ASM   Assembler source program to demonstrate EGA/VGA split
                    screen.
     PANNING.ASM    Assembler source program to demonstrate the interaction
                    of the split screen and horizontal pel panning on EGA/VGA.

                    Code from Vaughn Vernon's "Human Interfaces with Curses."
                    Text-based user interfaces under DOS and UNIX with the
                    Curses C library for device independence.
     WINSTACK.C     C code to manage a stack of Curses windows.
     WINSTACK.H     Header file to support winPush and winPOP.
     WINSTACK.OBJ   Object module.
     WINTEST.C      C code to test the Curses window stacking.
     WINTEST.EXE    The executable test program.
     WINTEST.OBJ    The object module file used for linking.

                    Code from Guy Cole's "Cooking with Stereo Video."    
                    Using two video displays in your next Turbo Pascal
                    application.
     ALTMON.PAS     A Turbo Pascal unit that provides support for
                    allowing the utilization of two video monitors.
     ALTMON.TPU     The Turbo Pascal TPU created by compiling.
     ALTTEST.PAS    A Turbo Pascal program to test the Altmon module.
     ALTTEST.EXE    The executable test file.

                    Code from John Otken's "Efficient 80x86 Memory Models    
                    and Static Variables."  Using static and automatic 
                    variables, equates, and macros for efficient assembly 
                    language programming.
     RANDOM.ASM     Assembly language code that illustrates using memory
                    models--this program calculates some random numbers.
     MSDOS.ASM      Assembly language routines to be used in a library.

                    Code from Tom Swan's "Using OOP to Create a Powerful 
                    File Viewer."  Tom illustrates the value of 
                    object-oriented programming in Turbo Pascal 5.5 by 
                    creating a powerful file utility.
     UITEM.PAS      Code to initialize and destroy an item object's memory.
     UKEYS.PAS      Some keyboard input support routines.
     ULIST.PAS      Tom's list-manager module.
     USTRITEM.PAS   Code to initialize and destroy string items.

                    Code from Thomas Roden's "Four Gigabytes in Real Mode."
                    A slick trick to access large memory spaces on the 
                    80386 from DOS.
     ASMCOM.BAT     A batch file to assemble and link TOMCOM.
     PEEPER.ASM     Assembly language subroutines to move memory from
                    a 4-gigabyte linear address into a buffer in the
                    current data segment.
     TOMCOM.ASM     A program to relax segment limit on GS in real-address
                    mode.
     TOMPEEK        A make file for the memory peeker that illustrates this
                    technique.
     TOMPEEK.C      A high-memory peek utility.

                    Code from Ethan Winer's "QuickBASIC's Fast String-   
                    Searching Algorith."  QuickBASIC contains a fast 
                    string-searching algorithm that may be useful to 
                    other language programmers as well.
     SEARCHST.ASM   QuickBASIC's implementation of a fast string-searching
                    routine for use with other languages.

                    Code from William Hall's "A Simple Terminal Program for
                    Windows."  Our Windows/PM expert illustrates using the
                    communications interface along with font selection,     
                    and dialog boxes under Microsoft Windows.
                    Only excerpts of this code were published in PJ 7.6.

     \WINDEV        Sub-Directory for WINDOWS code.
       ASCII.H
       CSET.TXT
       COMM.DRV
       LONGSTR.H
       TTYCLS.C		The TTY window code shared under both PM and windows.
       TTYCLS.H     	The TTY window header file.
       AUXPRT.C
       AUXPRT.H
       WPMAUX.DOC	Documentation on both WINAUX and PMAUX.

       WNTERM	 	Make file for WINTERM.
       WNTERM.C		The WNTERM main module.
       WNTERM.DEF	Definitions for WNTERM.
       WNTERM.DOC	Documentation on WNTERM.
       WNTERM.EXE	WNTERM executable file.
       WNTERM.H		The include file for WNTERM.
       WNTERM.RC
       WNTINT.C		WNTERM interrupt functions.
       WNTMSC.C		WNTERM miscellaneous functions.

       WINAUX			Make file for WINAUX.
       WINAUX.C			The WINAUX main module.
       WINAUX.DEF		Definitions for WINAUX.
       WINAUX.EXE		WINAUX executable file.
       WINAUX.H			The include file for WINAUX.
       WINAUX.RC
       WINAUXFN.C
       WINAUXNT.C

       WINVUE			Make file for WINVUE.
       WINVUE.C			The WINVUE main module.
       WINVUE.DEF		Definitions for WINVUE.
       WINVUE.EXE		WINVUE executable file.
       WINVUE.H			The include file for WINVUE.
       WINVUE.RC
       WINVUEFN.C
       WINVUEMS.C
       WINVUENT.C
