home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / progjour / 1991 / index / pj_9idx
Text File  |  1992-02-07  |  43KB  |  1,019 lines

  1.  
  2. Programmer's Journal  volume 9.1   January/February 1991
  3.  
  4.  
  5. PJREADME.91             5580  12-04-90
  6. VGACYCLE.ASM            7189  11-12-90
  7. VGACYCLE.EXE             679  11-12-90
  8. FONTDEMO.MAK             481  10-01-90
  9. LOCAL.H                 1365  10-01-90
  10. FONTDEMO.C              4128  10-01-90
  11. SPEEDO1.C              14182  10-01-90
  12. MONOSCRN.DEF             537  10-27-90
  13. MONOSCRN.SYM             212  10-27-90
  14. MONOSCRN.DLL            1307  10-27-90
  15. MONOSCRN.LIB            1536  10-27-90
  16. MONOSCRN.MAK             569  10-27-90
  17. MONOSCRN.ASM           10253  10-27-90
  18. BUFSET.C                 953  10-31-90
  19. B_CONSTR.C               674  10-31-90
  20. B_DESTRU.C               259  10-31-90
  21. B_DELETE.C               457  10-31-90
  22. TEXTTEST.C              4208  10-31-90
  23. TEXTBUF.H               5979  10-31-90
  24. TEXTTEST.OBJ            3800  10-31-90
  25. BUFSET.OBJ               787  10-31-90
  26. B_CONSTR.OBJ             902  10-31-90
  27. B_DESTRU.OBJ             669  10-31-90
  28. B_DELETE.OBJ             670  10-31-90
  29. B_NEW.OBJ                783  10-31-90
  30. TEXTTEST.OUT            1789  10-31-90
  31. TEXTTEST.EXE           15987  10-31-90
  32. MENUTEST.PRG            2673  11-25-90
  33. MENUKEY.PRG             2899  06-04-90
  34. HOTKEY.PRG              1956  11-25-90
  35. RECURSE.C                907  12-04-90
  36. BLOCK.ASM              15907  11-01-90
  37. MISC.ASM                7428  11-01-90
  38. SWAP.ASM                4838  11-01-90
  39. DIALOG.ASM               867  11-01-90
  40. FILE.ASM                4946  11-01-90
  41. STREAM.ASM              9728  11-01-90
  42. MALLOC.ASM              1456  11-01-90
  43. EMS.ASM                 6944  11-01-90
  44. TEST_BLK.ASM            1774  11-01-90
  45. RAND.ASM                 807  10-31-90
  46. STARTUP2.ASM            3122  11-01-90
  47. DOS_ERRS.ASM            1262  04-29-90
  48. TERM.ASM                2125  10-31-90
  49. STRERROR.ASM             680  10-13-90
  50. PERROR.ASM               972  05-01-90
  51. TEST_BLK.MAK             773  11-01-90
  52. TEST_BLK.LNK             169  11-01-90
  53. ASM.INC                 1965  11-01-90
  54. B_NEW.C                  321  10-31-90
  55. ORDER.AWK               2689  12-05-90
  56.  
  57.                      
  58.     Code from "VGA color cycling" by Michael Abrash
  59.     Installment 22, in which Michael explores the complexities 
  60.     of VGA color cycling
  61.      
  62.     VGACYCLE.ASM   Listing 1 fills a band across the screen with
  63.                    vertical bars in all 256 attributes, then cycles 
  64.                    a portion of the palette until a key is pressed
  65.     VGACYCLE.EXE   An executable version
  66.  
  67.  
  68.     Code from "Digital typography" by Ron Fosner
  69.     Typography and font generation for use on graphics screens 
  70.     and laser printers
  71.  
  72.     FONTDEMO.MAK   A make file for the FONTDEMO program
  73.     LOCAL.H        Include file for compiler and environment info
  74.     FONTDEMO.C     The demonstration program 
  75.     SPEEDO1.C      Supporting routines for Bitstream's Speedo library
  76.  
  77.                      
  78.     Code from "Windowing for two" by Chris Schwartz
  79.     A useful Windows 3.0 DLL to access a second monitor just like CodeView
  80.  
  81.     MONOSCRN.MAK   A make file to create the MONOSCRN Dynamic Link
  82.                    Library (DLL)
  83.     MONOSCRN.ASM   The assembly language source file
  84.     MONOSCRN.DEF   The definition file for the linker
  85.     MONOSCRN.DLL   The executable Windows 3.0 DLL file
  86.     MONOSCRN.LIB   A library file containing the MONOSCRN functions
  87.     MONOSCRN.SYM   The symbol file
  88.  
  89.                      
  90.     Code from "Text buffers in windows" by Allen Holub
  91.     Allen offers the start of a character-based windowing system in Turbo C/C++
  92.  
  93.     TEXTBUF.H      The include file with #defines, structures, 
  94.                    macros, and prototypes
  95.     BUFSET.C       Buffer set and move routines
  96.     B_CONSTR.C     Routine to initialize a textbuf -- b_construct()
  97.     B_DELETE.C     Routine to free a textbuf allocated by a 
  98.                    previous b_malloc()
  99.     B_DESTRU.C     Routine to free a textbuf -- b_destruct()
  100.     B_NEW.C        Routine to allocate and initialize a textbuf
  101.     TEXTTEST.C     A test program to exercise the textbuf functions
  102.     TEXTTEST.OUT   Output from the test program
  103.     BUFSET.OBJ     Object files created with Turbo C 2.0 (small model)
  104.     B_CONSTR.OBJ   ..
  105.     B_DELETE.OBJ   ..
  106.     B_DESTRU.OBJ   ..
  107.     B_NEW.OBJ      ..
  108.     TEXTTEST.OBJ   ..
  109.     TEXTTEST.EXE   An executable version of the test program
  110.  
  111.  
  112.     Code from "What's on the menu" by M. Steven Baker
  113.     A simple Lotus-style interface for your next database project
  114.  
  115.     MENUKEY.PRG    The Lotus-Style menubar procedure
  116.     MENUTEST.PRG   A sample code fragment to illustrate MENUKEY
  117.     HOTKEY.PRG     A code fragment that adds a hot-key feature to MENUKEY
  118.        
  119.  
  120.     Code from "Optimania" by Mark Barrenchea
  121.     Mark explores code inlining and tail-recursion compiler optimizations
  122.  
  123.     RECURSE.C      A sample C function to illustrate inlining and tail
  124.                    recursion
  125.  
  126.  
  127.     Code from "Real-mode virtual memory" by John Otken
  128.     A real-mode virtual memory system for storage and fast file I/O
  129.  
  130.     ASM.INC        A revised include file with macros
  131.     BLOCK.ASM      Block storage manager routines
  132.     DIALOG.ASM     Dialog box routines
  133.     DOS_ERRS.ASM   MS-DOS interface that sets error string
  134.     EMS.ASM        Expanded memory interface routines
  135.     FILE.ASM       File I/O routines for block storage
  136.     MALLOC.ASM     Memory allocation and free routines
  137.     MISC.ASM       Miscellaneous support routines
  138.     PERROR.ASM     Routine to print error messages
  139.     RAND.ASM       Random number generator routines  
  140.     STARTUP2.ASM   Start up code for assembly language
  141.     STREAM.ASM     Stream I/O routines
  142.     STRERROR.ASM   Error message interface routines
  143.     SWAP.ASM       Swap file manager routines
  144.     TERM.ASM       Termination routines
  145.     TEST_BLK.ASM   Program to test the virtual memory routines
  146.     TEST_BLK.LNK   An indirect link file
  147.     TEST_BLK.MAK   Make file to create TEST_BLK program
  148.  
  149.  
  150.     Code from "Order your order here" by William A. Huber 
  151.     in the Letters column.  A program to resequence numbered local
  152.     labels in assembly- language programs written in AWK.
  153.  
  154.     ORDER.AWK      AWK implementation 
  155.  
  156.  
  157.  
  158.  
  159. Programmer's Journal  volume 9.2    March/April 1991
  160.  
  161.  
  162. PJREADME.92            10196  02-09-91
  163. BLOCK.ASM              15907  11-01-90
  164. VTREE.LZH               5939  02-11-91
  165. FILE.ASM                4946  11-01-90
  166. ZORTECH.LZH            40037  02-11-91
  167. MALLOC.ASM              1456  11-01-90
  168. EMS.ASM                 6944  11-01-90
  169. TERM.ASM                2125  10-31-90
  170. ASM.INC                 1965  11-01-90
  171. XMSDUMP.PAS             7581  10-31-90
  172. VLABEL.ASM              4990  09-17-90
  173. VLABEL.OBJ               432  05-14-90
  174. DRIVER.EXE             21230  08-19-90
  175. DRIVER.BAS               739  09-03-90
  176. MSCTEST.C                931  02-11-91
  177. TORTURE.ASM             3072  02-11-91
  178. MSCTEST.ADA             2583  02-11-91
  179. MONOICON.C              4231  01-09-91
  180. MONOICON.DEF             196  01-08-91
  181. MONOICON.EXE           11946  01-09-91
  182. MONOICON.MAK             264  01-08-91
  183. GMHOOK.C                1299  01-09-91
  184. GMHOOK.DEF               270  01-08-91
  185. GMHOOK.DLL              5101  01-09-91
  186. GMHOOK.H                 379  01-08-91
  187. GMHOOK.LIB              1536  01-09-91
  188. GMHOOK.MAK               543  01-08-91
  189. MONOSCRN.ASM           15241  01-09-91
  190. MONOSCRN.DEF             592  01-08-91
  191. MONOSCRN.DLL            1967  01-09-91
  192. MONOSCRN.H               208  01-08-91
  193. MONOSCRN.LIB            1536  01-09-91
  194. MONOSCRN.MAK             573  11-11-90
  195. F90EXAMP.FOR            6272  02-11-91
  196. OTKENLET.ASM             768  02-11-91
  197. JPI.LZH                37856  02-11-91
  198. BORLAND.LZH             4452  02-11-91
  199. WATCOM.LZH             37822  02-11-91
  200. METAWARE.LZH           36412  02-11-91
  201. MICROSFT.LZH            9348  02-11-91
  202. LHARC.EXE              31256  05-31-89
  203.  
  204.                      
  205.     Code from "Windows 3 Input Hooks" by Chris Schwartz
  206.     Using hook filter functions in Windows 3.0 to enhance your next
  207.     application
  208.  
  209.     MONOICON.MAK   A make file to create the MONOICON test program
  210.     MONOICON.C     The C source file
  211.     MONOICON.DEF   The definition file for the linker
  212.     MONOICON.EXE   The executable Windows 3.0 file
  213.  
  214.     GMHOOK.MAK     A make file to create the GMHOOK Dynamic Link
  215.                    Library (DLL)
  216.     GMHOOK.C       The assembly language source file
  217.     GMHOOK.DEF     The definition file for the linker
  218.     GMHOOK.DLL     The executable Windows 3.0 DLL file
  219.     GMHOOK.LIB     A library file containing the GMHOOK functions
  220.     GMHOOK.H       An include file with function prototypes
  221.  
  222.     MONOSCRN.MAK   A make file to create the MONOSCRN Dynamic Link
  223.                    Library (DLL)
  224.     MONOSCRN.ASM   The assembly language source file
  225.     MONOSCRN.DEF   The definition file for the linker
  226.     MONOSCRN.DLL   The executable Windows 3.0 DLL file
  227.     MONOSCRN.LIB   A library file containing the MONOSCRN functions
  228.     MONOSCRN.H     An include file with function prototypes
  229.  
  230.                      
  231.     Code from "C Compilers for Windows" by Paul Yao
  232.     A comparison of C and C++ compilers that support Windows development
  233.      
  234.     JPI.LZH      An archive created with LHARC containing the following
  235.                  files used to test JPI's C compiler
  236.        INITWIN.OBJ  A special OBJ file for initializing Windows
  237.        MIN.C        Our C source file 
  238.        MIN.CUR      Cursor file
  239.        MIN.DEF      Definition file for the linker
  240.        MIN.EXE      The executable Windows program
  241.        MIN.ICO      The icon file
  242.        MIN.LIB      A library file
  243.        MIN.MAK      A MIN make file
  244.        MIN.MAP      The linker map file
  245.        MIN.OBJ      The OBJ file produced by the C compiler
  246.        MIN.RC       The MIN resource file
  247.        MIN.RES      The compiled MIN resource file
  248.        MK.BAT       A batch file to make MIN
  249.        WINDOWS.H    The Windows include file
  250.  
  251.     BORLAND.LZH  An archive created with LHARC containing the following
  252.                  files used to test Borland's Turbo C++ compiler
  253.        MIN.C        Our C source file 
  254.        MIN.CUR      Cursor file
  255.        MIN.DEF      Definition file for the linker
  256.        MIN.EXE      The executable Windows program
  257.        MIN.ICO      The icon file
  258.        MIN.MAK      A MIN make file
  259.        MIN.MAP      The linker map file
  260.        MIN.OBJ      The OBJ file produced by the C compiler
  261.        MIN.RC       The MIN resource file
  262.  
  263.     WATCOM.LZH   An archive created with LHARC containing the following
  264.                  files used to test Watcom's C 8.0 compiler
  265.        MIN.C        Our C source file 
  266.        MIN.CUR      Cursor file
  267.        MIN.DAT      Output from the Watcom object disassembler
  268.        MIN.DEF      Definition file for the linker
  269.        MIN.ERR      Error message file created by the compiler
  270.        MIN.EXE      The executable Windows program
  271.        MIN.ICO      The icon file
  272.        MIN.L        A linker directive file for WATCOM linker, wlink
  273.        MIN.LNK      A linker directive file for WATCOM linker, wlink 
  274.        MIN.MAK      A MIN make file
  275.        MIN.MAP      The linker map file
  276.        MIN.OBJ      The OBJ file produced by the C compiler
  277.        MIN.RC       The MIN resource file
  278.        MIN.RES      The compiled MIN resource file
  279.        MIN.RSP      A response file for the linker
  280.        MK.BAT       A batch file to make MIN
  281.        WINDOWS.H    The modified Windows include file
  282.        Z.MSG        Redirected output and warnings from make process
  283.  
  284.     MICROSFT.LZH An archive created with LHARC containing the following
  285.                  files used to test Microsoft's C compiler
  286.        MIN.C        Our C source file 
  287.        MIN.CUR      Cursor file
  288.        MIN.DEF      Definition file for the linker
  289.        MIN.EXE      The executable Windows program
  290.        MIN.ICO      The icon file
  291.        MIN.MAK      A MIN make file
  292.        MIN.MAP      The linker map file
  293.        MIN.OBJ      The OBJ file produced by the C compiler
  294.        MIN.RC       The MIN resource file
  295.        MIN.RES      The compiled MIN resource file
  296.        MK.BAT       A batch file to make MIN
  297.        WINDOWS.H    The modified Windows include file
  298.        Z.MSG        Redirected output and warnings from make process
  299.  
  300.     METAWARE.LZH An archive created with LHARC containing the following
  301.                  files used to test MetaWare's High C compiler
  302.        METAWIN.ASM  Special assembly language file for MetaWare
  303.        METAWIN.OBJ  And the OBJ file
  304.        MIN.C        Our C source file 
  305.        MIN.CUR      Cursor file
  306.        MIN.DEF      Definition file for the linker
  307.        MIN.EXE      The executable Windows program
  308.        MIN.ICO      The icon file
  309.        MIN.MAK      A MIN make file
  310.        MIN.OBJ      The OBJ file produced by the C compiler
  311.        MIN.RC       The MIN resource file
  312.        MIN.RES      The compiled MIN resource file
  313.        MK.BAT       A batch file to make MIN
  314.        WINDOWS.H    The modified Windows include file
  315.  
  316.      ZORTECH.LZH An archive created with LHARC containing the following
  317.                  files used to test Zortech's C++ compiler
  318.        MIN.C        Our C source file 
  319.        MIN.CUR      Cursor file
  320.        MIN.DEF      Definition file for the linker
  321.        MIN.EXE      The executable Windows program
  322.        MIN.ICO      The icon file
  323.        MIN.MAK      A MIN make file
  324.        MIN.MAP      The linker map file
  325.        MIN.OBJ      The OBJ file produced by the C compiler
  326.        MIN.RC       The MIN resource file
  327.        MIN.RES      The compiled MIN resource file
  328.        MK.BAT       A batch file to make MIN
  329.        WINDOWS.H    The modified Windows include file
  330.  
  331.  
  332.     Code from "Fortran 90 is Coming!" by Thomas M. Lahey
  333.     Tom describes some exciting new features incorporated in 
  334.     the Fortran 90 Standard
  335.  
  336.     F90EXAMP.FOR   Fortran 90 code fragments from the article
  337.  
  338.                      
  339.     Code from "Pragma Interface" By Richard Riehle
  340.     A method for integrating Ada and C with the pragma interface
  341.     
  342.     MSCTEST.ADA    An ADA source file to test the pragma interface
  343.                    to Microsoft C        
  344.     MSCTEST.C      Several C routines to test the ADA program
  345.  
  346.  
  347.     Code from "String Handling" by Murray L. Lesser
  348.     Murray examines how to manipulate BASIC strings using library 
  349.     functions
  350.  
  351.     DRIVER.BAS     A sample driver program to test VLABEL                        
  352.     DRIVER.EXE     An executable program
  353.     VLABEL.ASM     An assembly language routine that shows how to use the
  354.                    new string library functions in Microsoft's Professional
  355.                    BASIC compiler to retrieve the volume label from a disk
  356.     VLABEL.OBJ     An object file
  357.  
  358.  
  359.     Code from "Disassembler Roundup" by Brett Glass
  360.     Brett runs several PC disassembler tools through their paces
  361.  
  362.     TORTURE.ASM    A sample test program designed to be a torture
  363.                    test for the disassemblers
  364.     VTREE.LZH      An archive created with LHARC containing the following
  365.                    files:
  366.        VTREE.COM      A small assembly language utility by Charles Petzhold
  367.                       that displays the tree structure of a disk
  368.        SOURCER.LST    A listing file from the disassembly of VTREE.COM (by
  369.                       Charles Petzhold) generated by Sourcer
  370.        DISNDATA.LST   A listing file from the disassembly of VTREE.COM (by
  371.                       Charles Petzhold)
  372.  
  373.  
  374.     Code from "Exploring XMS" by Kim Kokkonen
  375.     A nifty Turbo Pascal utility that maps XMS high-memory drivers
  376.  
  377.     XMXDUMP.PAS    A pascal program to map XMS memory usage
  378.  
  379.  
  380.     Code from "Using EMS for Fast File I/O" by John Otken
  381.     John integrates EMS for fast file I/O into a real-mode virtual 
  382.     memory system
  383.  
  384.     ASM.INC        A revised include file with macros
  385.     BLOCK.ASM      Block storage manager routines
  386.     EMS.ASM        Expanded memory interface routines
  387.     FILE.ASM       File I/O routines for block storage
  388.     MALLOC.ASM     Memory allocation and free routines
  389.     TERM.ASM       Termination routines
  390.       
  391.  
  392.  
  393.     Code from John Otken's response in the Letters column.  An example
  394.     to illustrate freeing DOS memory from an assembly language program.
  395.  
  396.     OTKENLET.ASM   A short assembly language 
  397.  
  398.  
  399.     The LHARC public domain archive and compression utility 
  400.     by Haruyasu Yoshizaki is included on this disk
  401.     to unarchive the compressed files with a .LZH extension
  402.  
  403.     LHARC.EXE      Version 1.13c of LHARC    
  404.  
  405.  
  406.  
  407.  
  408. Programmer's Journal  volume 9.3    May/June 1991
  409.  
  410.  
  411. PJREADME.93             6075  04-17-91
  412. PANTEST.C               1955  02-28-91
  413. PIXELPAN.ASM            7095  03-23-91
  414. PANTEST.EXE             2775  03-23-91
  415. PANTEST2.EXE            2775  03-23-91
  416. COMMAND.ASM             3661  03-30-90
  417. COMMAND.OBJ              238  03-30-90
  418. DOLIB.BAS               5898  04-16-91
  419. DOLIB.EXE              28744  08-20-90
  420. FINDFILE.BAS            3860  08-17-90
  421. FINDFILE.OBJ            2106  08-17-90
  422. PBBI.BAS                3900  08-20-90
  423. PBBI.EXE               22030  08-20-90
  424. ATOM.ASM                7364  02-22-91
  425. DOS_ERRS.ASM            1262  04-29-90
  426. FATAL.ASM                419  02-20-91
  427. GLOBAL.ASM              4237  02-22-91
  428. MALLOC.ASM              2170  02-20-91
  429. MISC.ASM                7436  02-21-91
  430. PERROR.ASM               972  05-01-90
  431. PUTCHAR.ASM              205  04-27-90
  432. PUTS.ASM                 454  04-26-90
  433. STARTUP2.ASM            3122  11-01-90
  434. STREAM.ASM              9728  11-01-90
  435. STRERROR.ASM             680  10-13-90
  436. STRNCPY.ASM              596  02-21-91
  437. TESTATOM.ASM             866  02-22-91
  438. ASM.INC                 1965  02-21-91
  439. TESTATOM.MAK             813  02-22-91
  440. TESTATOM.EXE            6332  02-22-91
  441. CAMTEST.PAS             3295  04-16-91
  442. CAM.PAS                11002  04-16-91
  443. EXCEPT.EXE             15502  04-17-91
  444. EXCEPT.CPP              6459  04-17-91
  445. TOKEN.C                 1049  04-16-91
  446. VMHEADER.H              1056  04-16-91
  447.  
  448.                      
  449. Code from "Pixel Panning" by Peder Jungck
  450.  
  451. Ever wondered how arcade games simulate motion and generate 
  452. such smooth action images? Wonder no more. Peder explains how similar 
  453. feats are possible on the EGA and VGA using fast panning to window 
  454. onto a "larger than life" screen.
  455.      
  456.     PIXELPAN.ASM   Assembly language routines for pixel panning 
  457.                    designed for C-style calling conventions 
  458.     PANTEST.C      Testing code that displays color blocks and then pans
  459.                    the display
  460.     PANTEST.EXE    An executable version 
  461.     PANTEST2.EXE   An executable version with macro SLOW_EGA set to 1
  462.  
  463. ****************************
  464.  
  465. Code from "Object-Oriented SCSI Programming" by Brett Glass
  466.  
  467. Although other PC hardware interfaces have long been standardized, 
  468. SCSI programming has remained a free-for-all. Brett looks at the latest 
  469. proposed Common Access Method (CAM) standard for SCSI and writes some 
  470. portable code to interface with SCSI devices using Turbo Pascal objects.
  471.  
  472.     CAM.PAS        A Turbo Pascal unit that implements an object-oriented
  473.                    interface to BallardSynergy's CAM SCSI drivers
  474.     CAMTEST.PAS    A simple test program to see what SCSI devices are attached
  475.  
  476.                      
  477. *****************************
  478.  
  479. Code from "Numeric Exception Handling" by Mark J. Barrenechea
  480.  
  481. Floating-point errors have puzzled programmers for too long.  Mark
  482. demystifies the IEEE 754 and 854 floating-point standards and explains
  483. how the Intel 80287/80387 and i860 chips fit into the puzzle.  Learn
  484. some slick techniques for handling numeric exceptions in C++ with ease
  485. and elegance.
  486.  
  487.     EXCEPT.CPP     A simple program illustrating numeric exception 
  488.                    handling in C++
  489.     EXCEPT.EXE     An executable version using Zortech C++ 
  490.  
  491.                      
  492. ******************************
  493.  
  494.  
  495. Code from "Virtual Realities" by Stephen M. Kuhn  
  496.  
  497. Stephen shows you how to select and develop an application-supported
  498. virtual memory system that can take advantage of EMS paging and disk
  499. storage.
  500.  
  501.     VMHEADER.H     Some useful structures for a VM application     
  502.     TOKEN.C        Some sample code illustrating the use of VM calls
  503.  
  504.  
  505. ********************************
  506.  
  507. Code from "Basic Libraries" by Murray L. Lesser
  508.  
  509. Our BASIC ace shows how to manage personal link libraries. Along the
  510. way, he provides two utilities that streamline library management and
  511. explains how to shrink applications by linking stub modules.
  512.  
  513.     COMMAND.ASM    Subroutine to insert "rest of command line" in PSP
  514.                    for Microsoft BASIC Compiler v7.0
  515.     COMMAND.OBJ    An object code module for your library
  516.     DOLIB.BAS      A BASIC program to update private libraries
  517.     DOLIB.EXE      An executable version
  518.     FINDFILE.BAS   Two BASIC functions to find files in a directory
  519.                    and strip out the filename and extension from the
  520.                    full subdirectory and filename string 
  521.     FINDFILE.OBJ   An object code module for your library
  522.     PBBI.BAS       A BASIC program to update the declaration header file
  523.                    for BASIC library maintenance
  524.     PBBI.EXE       An executable version
  525.        
  526.  
  527. ********************************
  528.  
  529. Code from "Hashing Functions" by John Otken
  530.  
  531. John examines string hashing functions for fast table lookup and
  532. explains why a hash table, unlike your car's gas tank, should never be
  533. full.  He also creates equivalent functions in assembly language for
  534. Windows 3 routines that manage handle-based dynamic storage and atoms
  535. (hashed strings).
  536.  
  537.     ASM.INC        A revised include file with macros
  538.     ATOM.ASM       Atom functions
  539.     DOS_ERRS.ASM   MS-DOS interface that sets error string
  540.     FATAL.ASM      Fatal error routine
  541.     GLOBAL.ASM     Global storage routines
  542.     MALLOC.ASM     Memory allocation and free routines
  543.     MISC.ASM       Miscellaneous support routines
  544.     PERROR.ASM     Routine to print error messages
  545.     PUTCHAR.ASM    Output a single character routine
  546.     PUTS.ASM       Output a string routine
  547.     STARTUP2.ASM   Start up code for assembly language
  548.     STREAM.ASM     Stream I/O routines
  549.     STRERROR.ASM   Error message interface routines
  550.     STRNCPY.ASM    String copy routine
  551.     TESTATOM.ASM   Program to test the atom routines
  552.     TESTATOM.EXE   An executable version of the TESTATOM program
  553.     TESTATOM.MAK   A make file to create the TESTATOM program
  554.  
  555. ***********************************
  556.  
  557.  
  558.  
  559. Programmer's Journal  volume 9.4    July/August 1991
  560.  
  561.  
  562. PJREADME.94             9698  06-10-91
  563. CEGDRAW.EXE            26770  05-14-91
  564. CEGDRAW.C              13669  04-15-91
  565. CEGDRAW.OBJ             3420  05-14-91
  566. CEGDAC.ASM             12844  04-15-91
  567. CEGDAC.OBJ               505  05-14-91
  568. CLIENT.ASM              3779  04-19-91
  569. DATAGRAM.ASM            2199  04-19-91
  570. DOS_ERRS.ASM            1262  04-29-90
  571. MALLOC.ASM              2170  02-20-91
  572. MISC.ASM                4050  04-18-91
  573. NET_MISC.ASM            6643  05-17-91
  574. PUTBYTES.ASM            1048  04-17-91
  575. PUTCHAR.ASM              205  04-27-90
  576. PUTS.ASM                 454  04-26-90
  577. SERVER.ASM              4676  04-19-91
  578. SETARG.ASM              2479  04-19-91
  579. SPY.ASM                 3399  04-19-91
  580. STARTUP2.ASM            3122  11-01-90
  581. STRERROR.ASM             680  10-13-90
  582. STRNCPY.ASM              596  02-21-91
  583. ASM.INC                 1965  02-21-91
  584. NETBIOS.INC             1836  04-18-91
  585. CLIENT.MAK               773  04-19-91
  586. DATAGRAM.MAK             784  04-19-91
  587. SERVER.MAK               773  04-19-91
  588. SPY.MAK                  793  04-19-91
  589. TESTTERM.PAS            1244  05-13-91
  590. NETBIOS.PAS             9155  05-12-91
  591. NETTOOLS.PAS            4667  05-13-91
  592. COMMCLNT.PAS            4262  05-13-91
  593. COMMSERV.PAS           12753  05-13-91
  594. STRIPIT.BAS             2771  03-27-91
  595. LIVERMOR.LST            1020  06-03-91
  596. V_CONSTR.C              1040  05-03-91
  597. V_DESTRO.C               482  05-03-91
  598. V_SAVE_S.C               543  05-03-91
  599. V_RESTOR.C               547  05-03-91
  600. V_FILL_S.C               592  05-03-91
  601. V_OPEN.C                2265  05-03-91
  602. V_CLOSE.C                885  05-03-91
  603. V_DEACTI.C              1220  05-03-91
  604. V_SIZE.C                 955  05-03-91
  605. V_MOVE.C                1349  05-03-91
  606. V_GOTORC.C               983  05-03-91
  607. V_PUTC.C                1224  05-03-91
  608. V_PUTS.C                 732  05-03-91
  609. V_GETC.C                 659  05-03-91
  610. V_GETS.C                 718  05-03-91
  611. VIEWPORT.C              3294  05-03-91
  612. VIEWPORT.H              4932  05-03-91
  613. MAKEFILE.BCC            2142  05-03-91
  614. DLRING.ADB              4844  05-09-91
  615. DLRING.ADS              2694  05-09-91
  616. DATAGRAM.OBJ             942  04-19-91
  617. BSTREE.C                2876  06-03-91
  618. BSTREE.EXE              9258  06-03-91
  619. DOS_ERRS.OBJ             667  04-29-90
  620. MALLOC.OBJ               386  02-20-91
  621. MISC.OBJ                 644  04-18-91
  622. NET_MISC.OBJ            1189  05-17-91
  623. PUTCHAR.OBJ              124  04-27-90
  624. PUTS.OBJ                 186  04-26-90
  625. SETARG.OBJ               556  04-19-91
  626. STARTUP2.OBJ             731  11-01-90
  627. STRERROR.OBJ             252  10-13-90
  628. STRNCPY.OBJ              129  02-21-91
  629. DATAGRAM.EXE            2500  04-19-91
  630. CLIENT.OBJ              1377  04-19-91
  631. CLIENT.EXE              3272  05-17-91
  632. SERVER.OBJ              1441  04-19-91
  633. SERVER.EXE              3226  05-17-91
  634. SPY.OBJ                 1289  04-19-91
  635. PUTBYTES.OBJ             307  04-17-91
  636. SPY.EXE                 3684  05-17-91
  637. MAKEFILE.TCC            1857  06-03-91
  638. V_STARTU.C              1594  05-03-91
  639. V_CLEAR.C                579  05-03-91
  640. VIEWPORT.LIB           20992  05-03-91
  641. TESTTERM.EXE            3920  05-13-91
  642. COMMSERV.EXE            9456  05-13-91
  643. COMMCLNT.EXE            5280  05-13-91
  644. STRIPIT.EXE            21874  03-27-91
  645. V_SCROLL.C              2928  05-03-91
  646. VIEWPORT.EXE           13304  05-03-91
  647. PJLTRS.LST              8492  06-07-91
  648.  
  649.                      
  650. Code from "A Coat of Many Colors" by Michael Abrash
  651.  
  652. Pick a pack of purple pixels ... or make them red, white, and blue. 
  653. Graphics guru Michael Abrash shows how to boost your screen's 
  654. color quotient and program some animation using Edsun's plug-in DAC 
  655. replacement, the CEG/DAC.
  656.      
  657.     CEGDAC.ASM     Assembly language routines for Edsun CEG/DAC 
  658.                    animation program designed for C-style calling conventions.
  659.     CEGDAC.OBJ     An object file.
  660.     CEGDRAW.C      Code that performs 256-color animation on the Edsun
  661.                    DAC, taking advantage of both pixel weighting (selecting 
  662.                    pixel colors as weighted averages of the colors of nearby 
  663.                    pixels) and EDP (the ability to embed information in the 
  664.                    bitmap that reprograms the DAC's palette during the 
  665.                    course of each frame). 
  666.     CEGDRAW.EXE    An executable version. 
  667.     CEGDRAW.OBJ    An object file created with Turbo C++ 1.0.
  668.  
  669. ****************************
  670.  
  671. Code from "Communicating Over NetBIOS" by Brett Glass
  672.  
  673. There's probably a modem pool in your future. Brett gets 
  674. you into the swim of things by mixing communications with NetBIOS 
  675. sessions and Turbo Pascal objects. He also looks briefly at not-so-standard 
  676. network modem interfaces. So step into the LAN of plenty!
  677.  
  678.     COMMCLNT.PAS   A CommServer Client program written in Turbo Pascal.
  679.     COMMCLNT.EXE   An executable version.
  680.     COMMSERV.PAS   The CommServer program written in Turbo Pascal.
  681.     COMMSERV.EXE   An executable version.
  682.     NETBIOS.PAS    An Object-Oriented Turbo Pascal unit to interface 
  683.                    NetBIOS. NCBS are objects. 
  684.     NETTOOLS.PAS   Some NetBIOS tools routines in Turbo Pascal. 
  685.     TESTTERM.PAS   A Turbo Pascal program to test the CommServer and     
  686.                    client programs.
  687.     TESTTERM.EXE   An executable version.
  688.  
  689.                      
  690. *****************************
  691.  
  692. Code from "Spying on NetBIOS" by John Otken
  693.  
  694. Need to network your DOS machine with other computers? John 
  695. develops assembly language routines to interface with NetBIOS and 
  696. a utility for spying on datagrams. You'll also find his simple but 
  697. elegant client and server applications for transferring files. 
  698.  
  699.     ASM.INC        A revised include file with macros.
  700.     CLIENT.ASM     A simple file transfer Client over NetBIOS using datagrams.
  701.     CLIENT.EXE     An executable version of file transfer Client.
  702.     CLIENT.MAK     A makefile to create CLIENT.EXE.
  703.     CLIENT.OBJ     An object file.
  704.     DATAGRAM.ASM   A test program to send a text string as a 
  705.                    NetBIOS datagram to a specific target NetBIOS name 
  706.                    or as a broadcast datagram.
  707.     DATAGRAM.EXE   An executable version.
  708.     DATAGRAM.MAK   A makefile to create DATAGRAM.EXE.
  709.     DATAGRAM.OBJ   An object file.
  710.     DOS_ERRS.ASM   An MS-DOS interface that sets error string.
  711.     DOS_ERRS.OBJ   An object file.
  712.     MALLOC.ASM     Memory allocation and free routines.
  713.     MALLOC.OBJ     An object file.
  714.     MISC.ASM       Miscellaneous support routines.
  715.     MISC.OBJ       An object file.
  716.     NET_MISC.ASM   Miscellaneous NetBIOS support routines.
  717.     NET_MISC.OBJ   An object module.
  718.     NETBIOS.INC    An include file for the NetBIOS routines.
  719.     PUTBYTES.ASM   A routine to output a single character.
  720.     PUTBYTES.OBJ   An object file.
  721.     PUTCHAR.ASM    A routine to output a single character to stdout.
  722.     PUTCHAR.OJB    An object file.
  723.     PUTS.ASM       A routine to output a string routine to stdout.
  724.     PUTS.OBJ       An object file.
  725.     SERVER.ASM     A simple file transfer Server over NetBIOS using datagrams.
  726.     SERVER.EXE     An executable version.
  727.     SERVER.MAK     A makefile to create SERVER.EXE.
  728.     SERVER.OBJ     An object file.
  729.     SETARG.ASM     Part of the startup support routines for assembly language.
  730.     SETARG.OBJ     An object file.
  731.     SPY.ASM        A program to display network datagrams.
  732.     SPY.EXE        An executable version.
  733.     SPY.MAK        A makefile to create SPY.EXE.
  734.     SPY.OBJ        An object file.
  735.     STARTUP2.ASM   Start up code for assembly language.
  736.     STARTUP2.OBJ   An object file.
  737.     STRERROR.ASM   Error message interface routines.
  738.     STRERROR.OBJ   An object file.
  739.     STRNCPY.ASM    String copy routine.
  740.     STRNCPY.OBJ    An object file.
  741.  
  742.  
  743. ******************************
  744.  
  745. Code from "Window Viewports" by Allen Holub
  746.  
  747. Allen continues to perfect the art of window management in 
  748. this second part of his text-windowing system. He tacks a display 
  749. layer (or "viewport") on to the previous text buffer routines, 
  750. creating a stand-alone windowing system that won't tie you or your 
  751. computer's memory up in knots.
  752.  
  753.     MAKEFILE.BCC   A makefile for Borland C++ 2.0.
  754.     MAKEFILE.TCC   A makefile for Turbo C++ 1.0.
  755.     VIEWPORT.C     A program to test Viewport routines.
  756.     VIEWPORT.EXE   An executable version.
  757.     VIEWPORT.H     Viewport definitions and macros.
  758.     VIEWPORT.LIB   A Viewport library file created with Turbo C++ 1.0.
  759.     V_CLEAR.C      Clear Viewport routines.
  760.     V_CLOSE.C      Close Viewport (remove from screen permanently).
  761.     V_CONSTR.C     Initialize a Viewport.
  762.     V_DEACTI.C     Deactivate a Viewport.
  763.     V_DESTRO.C     Destroy a Viewport.
  764.     V_FILL_S.C     Workhorse function to fill a screen region.
  765.     V_GETC.C       Get a character from Viewport.
  766.     V_GETS.C       Get a string from Viewport.
  767.     V_GOTORC.C     Move cursor within Viewport.
  768.     V_MOVE.C       Move Viewport.
  769.     V_OPEN.C       Display a Viewport.
  770.     V_PUTC.C       Write a character to Viewport.
  771.     V_PUTS.C       Write a string to Viewport.
  772.     V_RESTOR.C     Workhorse function to restore a screen region.
  773.     V_SAVE_S.C     Workhorse function to save a screen region.
  774.     V_SIZE.C       Change the Viewport size.
  775.     V_STARTU.C     Routines to startup and shutdown the video system.
  776.     V_SCROLL.C     Workhorse function to scroll a screen region.
  777.  
  778.  
  779. ********************************
  780.  
  781. Table from "Loop Unrolling: A RISCy Business" By Mark J. Barrenechea
  782.  
  783. Compiler optimizations tend to remain in the realm of the 
  784. mysterious. Mark unravels loop unrolling to reveal its uses and discuss 
  785. its limits. He also compares scalar and vector optimizations on the 
  786. i860 with loop unrolling on the 80486. 
  787.  
  788.     LIVERMOR.LST   A brief one-line description of each of the Livermore
  789.                    Loops used for testing.
  790.        
  791.  
  792. ********************************
  793.  
  794. Code from "Data Structure Imperatives" by Richard Riehle
  795.  
  796. It's embarrassing when you don't know an algorithm from a 
  797. biorhythm, or which data structure you need to get into the swing 
  798. of things while traversing a binary tree. Richard poses challenging 
  799. questions and provides some sample solutions.
  800.  
  801.     BSTREE.C       A simple C program implementing a binary search
  802.                    data structure.
  803.     BSTREE.EXE     An executable version using Borland Turbo C++ 1.0.
  804.     DLRING.ADB     Ada package body for a simple doubly-linked ring
  805.                    data structure.
  806.     DLRING.ADS     Ada package specification for a simple doubly-linked 
  807.                    ring data structure.
  808.  
  809.  
  810. ***********************************
  811.  
  812. Code from "Text Filters in BASIC" by Murray L. Lesser
  813.  
  814. Who says simple can't be beautiful? Once you get to know 
  815. Murray's text filter program, you'll want to write others--and 
  816. you'll know how to go about it.
  817.  
  818.     STRIPIT.BAS    A simple text filter program written in BASIC that deletes 
  819.                    extraneous <LF> characters in MASM 5.10 listing files.
  820.     STRIPIT.EXE    An executable version.
  821.  
  822. *************************************
  823.  
  824. Code from a letter to PJ by Joan Flugel.
  825.  
  826. Joan ran a simple program on five different 
  827. disassemblers and the results, as you can see,
  828. vary widely--particularly in the treatment of
  829. immediate values.
  830.     
  831.     PJLTRS.LST    The program and the results from disassembling it with
  832.                   Sourcer, DisDoc, MasterKey, MD86, and Snoop
  833.  
  834. ****************************
  835.  
  836.  
  837.  
  838.  
  839. Programmer's Journal  volume 9.6    November/December 1991
  840.  
  841.  
  842. PJREADME.96             6652  10-03-91
  843. BINGO.ASM               3472  07-28-91
  844. BINGO.COM                139  07-28-91
  845. DEBING.ASM              1186  07-28-91
  846. DEBING.COM                71  07-28-91
  847. EDITOR.C               31426  10-03-91
  848. EDITOR.H                3411  10-03-91
  849. GARLIC.ASM              3375  07-28-91
  850. GARLIC.COM               107  07-28-91
  851. GARLICP.COM              107  07-28-91
  852. GENERIC.CPP              351  06-05-91
  853. GENERIC.DEF              212  04-22-91
  854. GENERIC.EXE            17680  06-15-91
  855. GENERIC.MAK              763  06-14-91
  856. GENERIC.PRJ             5022  06-14-91
  857. HERCLINE.ASM           12736  03-07-91
  858. HERCTEST.C              3303  03-06-91
  859. HERCTEST.EXE           64508  03-07-91
  860. HERCTEST.MAK             391  11-17-90
  861. INITAPP.H                334  06-06-91
  862. INITINST.H               316  06-06-91
  863. PEN.H                    496  06-15-91
  864. SCRIBBLE.CPP            1860  10-31-91
  865. SCRIBBLE.EXE           19392  10-31-91
  866. SCRIBBLE.MAK             776  06-14-91
  867. SCRIBBLE.PRJ            5023  06-14-91
  868. VAMPIRE.ASM             1261  07-28-91
  869. VAMPIRE.COM              115  07-28-91
  870. VIDSAVE.ASM            12813  10-01-91
  871. VIDSAVE.COM              689  10-02-91
  872. WINCLASS.CPP           14432  10-31-91
  873. WINCLASS.H              1956  06-15-91
  874. WINCLASS.LIB           16896  06-15-91
  875. WINCLASS.MAK             595  06-01-91
  876. ALIB.DOC               12105  08-23-91
  877. ALIB.ZIP               63855  08-23-91
  878. ALIBTOOL.ZIP           27683  08-23-91
  879.  
  880.                      
  881. Code from "A Tiny Windows Class Library" by John Dimm
  882.  
  883. Simple is beautiful. John shows how to shrink an entire Windows 
  884. program down to just eight lines using C++ and make the switch to 
  885. object-oriented compilers and class libraries at your own pace. 
  886.  
  887.     GENERIC.CPP    C++ source for the basic GENERIC (Windows) program 
  888.                    that produces an empty window
  889.     GENERIC.DEF    A default Windows .DEF file
  890.     GENERIC.EXE    The executable program
  891.     GENERIC.MAK    A make file
  892.     GENERIC.PRJ    A Borland C++ project file for use with the
  893.                    Integrated Development Environment (IDE)
  894.     INITAPP.H      A header for registering InitApplication functions
  895.     INITINST.H     A header for registering InitInstance functions
  896.     PEN.H          An example of a PEN object
  897.     SCRIBBLE.CPP   C++ source for a Windows program to draw with a mouse
  898.     SCRIBBLE.EXE   The executable file
  899.     SCRIBBLE.MAK   A make file
  900.     SCRIBBLE.PRJ   A Borland C++ project file for use with the
  901.                    Integrated Development Environment (IDE)
  902.     WINCLASS.CPP   The class library C++ source file
  903.     WINCLASS.H     A header file for use with the WINCLASS library
  904.     WINCLASS.LIB   A small-model version of the the WINCLASS library
  905.     WINCLASS.MAK   A make file to create a small-model WINCLASS.LIB
  906.  
  907. ****************************
  908.  
  909. Code from "A Window System for Text Editing" by Allen Holub
  910.  
  911. This is it--Allen winds up his layered windowing system. 
  912. The final installment includes all the functions needed by an editing 
  913. engine to implement a window-based editor. For additional elegance, 
  914. the code is written in an object-oriented manner.
  915.  
  916.     EDITOR.H       An include file of workhorse functions required
  917.                    by the editor to manipulate the screen
  918.     EDITOR.C       C source code for the low-level workhorse functions
  919.  
  920.  
  921. *****************************
  922.  
  923. Code from "Libraries Revisited" by John Otken      
  924.  
  925. Nothing's better than a good library, especially if you're 
  926. programming in assembly language. John uses the standard C library 
  927. and other well-known models as templates for his ALIB library, which 
  928. contains about 120 usable functions. 
  929.  
  930.     ALIB.DOC       Documentation on the ALIB library functions that
  931.                    is automatically generated by the ASMHDR program
  932.                    found in ALIBTOOL.ZIP
  933.     ALIB.ZIP       A zipped archive containing the following ALIB 
  934.                    source files along with a built ALIB.LIB library:
  935.  
  936. abort.asm       fatal.asm       isxdigit.asm    putchar.asm     strcmpi.asm
  937. alib.doc        file.asm        malloc.asm      puts.asm        strcpy.asm
  938. alib.lib        get_inpu.asm    movefptr.asm    puts_dgr.asm    strcpy_l.asm
  939. asm.inc         getvecto.asm    ms_dos.asm      rand.asm        stream.asm
  940. atom.asm        global.asm      net_misc.asm    read_ef.asm     strerror.asm
  941. block.asm       in_fsize.asm    netbios.inc     readfile.asm    strlen.asm
  942. close.asm       isalnum.asm     open_in.asm     remove.asm      strlenz.asm
  943. close_cf.asm    iscntrl.asm     open_out.asm    rename.asm      strncpy.asm
  944. dialog.asm      isgraph.asm     perror.asm      rewind.asm      strskp.asm
  945. dos_errs.asm    islower.asm     put_hex.asm     savemost.asm    swap.asm
  946. ems.asm         isprint.asm     put_uns.asm     sel_min.asm     term.asm
  947. er_dskfl.asm    ispunct.asm     putbytes.asm    setarg.asm      tolower.asm
  948. exit.asm        isspace.asm     putch_nl.asm    skip_nl.asm     toupper.asm
  949. f_size.asm      isupper.asm     putch_sp.asm    startup2.asm    writfile.asm
  950.  
  951.     ALIBTOOL.ZIP   A zipped archive containing the following source 
  952.                    and executables for useful tools to maintain ALIB: 
  953.  
  954. asmhdr.c     asmhdr.mak   libgen.exe   order.asm
  955. asmhdr.exe   libgen.c     libgen.mak   order.exe
  956.  
  957.  
  958. ******************************
  959.  
  960. Code from "Save your Video Mode" by Walter Oney
  961.  
  962. Are you tired of having your video mode trashed by applications 
  963. that make rude and hasty exits? Don't get mad--get VIDSAVEd. Screen 
  964. preservation and restoration are just a program away. Walt also shows 
  965. you how to go about wrapping an EXE program with a COM file.
  966.  
  967.     VIDSAVE.ASM    Source code for a useful utility that forms a 
  968.                    wrapper around programs that trash your machine's
  969.                    text video mode
  970.     VIDSAVE.COM    An executable version
  971.  
  972.  
  973. ********************************
  974.  
  975. Code from "The Midnight Vampire" by Murray L. Lesser
  976.  
  977. Just when you thought it was safe to go back to the keyboard, 
  978. you find a day has been sucked from your DOS calendar. Murray has 
  979. a program to foil the vampire--with GARLIC, naturally--and he 
  980. urges readers to regard "the experts" with a healthy grain 
  981. of salt.
  982.  
  983.     BINGO.ASM      An short TSR program used for checking whether DOS is
  984.                    testing for a calendar update while waiting for
  985.                    command-line input
  986.     BINGO.COM      An executable file
  987.     DEBING.ASM     A utility program to remove the BINGO TSR
  988.                    when BINGO has been run in an environment (such as DESQView
  989.                    386) that doesn't periodically emit an INT 1AH, AH=0 
  990.     DEBING.COM     An executable file
  991.     GARLIC.ASM     A tiny TSR that circumvents the midnight vampire
  992.     GARLIC.COM     An executable file
  993.     GARLICP.COM    An executable version that also removes the tie between
  994.                    the DOS clock and the real-time clock
  995.     VAMPIRE.ASM    Assembly language source designed to demonstrate the
  996.                    midnight vampire (see article for test procedure)
  997.     VAMPIRE.COM    An executable file
  998.  
  999.  
  1000. ***********************************
  1001.  
  1002. Code from "Fast Hercules Line Drawing" by Nicholas Wilt
  1003.  
  1004. The venerable Hercules standard isn't losing any ground in 
  1005. the monochrome graphics arena. Going back to basics, Nicholas presents 
  1006. assembly language code for fast line drawing on banded graphics cards 
  1007. such as the Hercules monographics, the AT&T 6300, and the original 
  1008. CGA.
  1009.  
  1010.     HERCLINE.ASM   Assembly language source for our fast line drawing
  1011.                    routine
  1012.     HERCTEST.C     A program to test and compare HERCLINE with the Borland
  1013.                    line-drawing (BGI) library routine
  1014.     HERCTEST.EXE   An executable file
  1015.     HERCTEST.MAK   A make file
  1016.  
  1017.  
  1018. ***********************************
  1019.