home *** CD-ROM | disk | FTP | other *** search
/ Mega CD-ROM 1 / megacd_rom_1.zip / megacd_rom_1 / MAGAZINE / PROGJOUR / PJ_9_4.ZIP / PJREADME.94 < prev    next >
Text File  |  1991-06-10  |  10KB  |  225 lines

  1. ******************************************************************
  2. * * * * *   PROGRAMMER'S JOURNAL--Volume 9.4 CODE DISK   * * * * *
  3. ******************************************************************
  4.  
  5. The source code files on this disk are from Programmer's Journal,
  6. Volume 9.4, July/August 1991. These files are identical to those 
  7. published in the magazine, except where noted; OBJ and EXE files
  8. have been added. 
  9.  
  10. The copyrights are held by the programs'authors, as indicated in the 
  11. files. All other rights are reserved by Oakley Publishing Company, 
  12. 1991. No one may commercially distribute these files. Every effort 
  13. has been made to assure that the program files are correct and 
  14. complete. No guarantee, express or implied, is offered as to the 
  15. correctness of the files, or to the fitness of the programs for 
  16. any purpose whatsoever.
  17.  
  18.  
  19. Files from Volume 9.4 are as follows:
  20.                      
  21. Code from "A Coat of Many Colors" by Michael Abrash
  22.  
  23. Pick a pack of purple pixels ... or make them red, white, and blue. 
  24. Graphics guru Michael Abrash shows how to boost your screen's 
  25. color quotient and program some animation using Edsun's plug-in DAC 
  26. replacement, the CEG/DAC.
  27.      
  28.     CEGDAC.ASM     Assembly language routines for Edsun CEG/DAC 
  29.                    animation program designed for C-style calling 
  30.                    conventions.
  31.     CEGDAC.OBJ     An object file.
  32.     CEGDRAW.C      Code that performs 256-color animation on the Edsun
  33.                    DAC, taking advantage of both pixel weighting (selecting 
  34.                    pixel colors as weighted averages of the colors of nearby 
  35.                    pixels) and EDP (the ability to embed information in the 
  36.                    bitmap that reprograms the DAC's palette during the 
  37.                    course of each frame). 
  38.     CEGDRAW.EXE    An executable version. 
  39.     CEGDRAW.OBJ     An object file created with Turbo C++ 1.0.
  40.  
  41. ****************************
  42.  
  43. Code from "Communicating Over NetBIOS" by Brett Glass
  44.  
  45. There's probably a modem pool in your future. Brett gets 
  46. you into the swim of things by mixing communications with NetBIOS 
  47. sessions and Turbo Pascal objects. He also looks briefly at not-so-standard 
  48. network modem interfaces. So step into the LAN of plenty!
  49.  
  50.     COMMCLNT.PAS   A CommServer Client program written in Turbo Pascal.
  51.     COMMCLNT.EXE   An executable version.
  52.     COMMSERV.PAS   The CommServer program written in Turbo Pascal.
  53.     COMMSERV.EXE   An executable version.
  54.     NETBIOS.PAS    An Object-Oriented Turbo Pascal unit to interface 
  55.                    NetBIOS. NCBS are objects. 
  56.     NETTOOLS.PAS   Some NetBIOS tools routines in Turbo Pascal. 
  57.     TESTTERM.PAS   A Turbo Pascal program to test the CommServer and     
  58.                    client programs.
  59.     TESTTERM.EXE   An executable version.
  60.  
  61.                      
  62. *****************************
  63.  
  64. Code from "Spying on NetBIOS" by John Otken
  65.  
  66. Need to network your DOS machine with other computers? John 
  67. develops assembly language routines to interface with NetBIOS and 
  68. a utility for spying on datagrams. You'll also find his simple but 
  69. elegant client and server applications for transferring files. 
  70.  
  71.     ASM.INC        A revised include file with macros.
  72.     CLIENT.ASM     A simple file transfer Client over NetBIOS using
  73.                    datagrams.
  74.     CLIENT.EXE     An executable version of file transfer Client.
  75.     CLIENT.MAK     A makefile to create CLIENT.EXE.
  76.     CLIENT.OBJ     An object file.
  77.     DATAGRAM.ASM   A test program to send a text string as a
  78.                    NetBIOS datagram to a specific target NetBIOS name
  79.                    or as a broadcast datagram.
  80.     DATAGRAM.EXE   An executable version.
  81.     DATAGRAM.MAK   A makefile to create DATAGRAM.EXE.
  82.     DATAGRAM.OBJ   An object file.
  83.     DOS_ERRS.ASM   An MS-DOS interface that sets error string.
  84.     DOS_ERRS.OBJ   An object file.
  85.     MALLOC.ASM     Memory allocation and free routines.
  86.     MALLOC.OBJ     An object file.
  87.     MISC.ASM       Miscellaneous support routines.
  88.     MISC.OBJ       An object file.
  89.     NET_MISC.ASM   Miscellaneous NetBIOS support routines.
  90.     NET_MISC.OBJ   An object module.
  91.     NETBIOS.INC    An include file for the NetBIOS routines.
  92.     PUTBYTES.ASM   A routine to output a single character.
  93.     PUTBYTES.OBJ   An object file.
  94.     PUTCHAR.ASM    A routine to output a single character to stdout.
  95.     PUTCHAR.OJB    An object file.
  96.     PUTS.ASM       A routine to output a string routine to stdout.
  97.     PUTS.OBJ       An object file.
  98.     SERVER.ASM     A simple file transfer Server over NetBIOS using
  99.                    datagrams.
  100.     SERVER.EXE     An executable version.
  101.     SERVER.MAK     A makefile to create SERVER.EXE.
  102.     SERVER.OBJ     An object file.
  103.     SETARG.ASM     Part of the startup support routines for assembly
  104.                    language.
  105.     SETARG.OBJ     An object file.
  106.     SPY.ASM        A program to display network datagrams.
  107.     SPY.EXE        An executable version.
  108.     SPY.MAK        A makefile to create SPY.EXE.
  109.     SPY.OBJ        An object file.
  110.     STARTUP2.ASM   Start up code for assembly language.
  111.     STARTUP2.OBJ   An object file.
  112.     STRERROR.ASM   Error message interface routines.
  113.     STRERROR.OBJ   An object file.
  114.     STRNCPY.ASM    String copy routine.
  115.     STRNCPY.OBJ    An object file.
  116.  
  117.  
  118. ******************************
  119.  
  120. Code from "Window Viewports" by Allen Holub
  121.  
  122. Allen continues to perfect the art of window management in 
  123. this second part of his text-windowing system. He tacks a display 
  124. layer (or "viewport") on to the previous text buffer routines, 
  125. creating a stand-alone windowing system that won't tie you or your 
  126. computer's memory up in knots.
  127.  
  128.     MAKEFILE.BCC   A makefile for Borland C++ 2.0.
  129.     MAKEFILE.TCC   A makefile for Turbo C++ 1.0.
  130.     VIEWPORT.C     A program to test Viewport routines.
  131.     VIEWPORT.EXE   An executable version.
  132.     VIEWPORT.H     Viewport definitions and macros.
  133.     VIEWPORT.LIB   A Viewport library file created with Turbo C++ 1.0.
  134.     V_CLEAR.C      Clear Viewport routines.
  135.     V_CLOSE.C      Close Viewport (remove from screen permanently).
  136.     V_CONSTR.C     Initialize a Viewport.
  137.     V_DEACTI.C     Deactivate a Viewport.
  138.     V_DESTRO.C     Destroy a Viewport.
  139.     V_FILL_S.C     Workhorse function to fill a screen region.
  140.     V_GETC.C       Get a character from Viewport.
  141.     V_GETS.C       Get a string from Viewport.
  142.     V_GOTORC.C     Move cursor within Viewport.
  143.     V_MOVE.C       Move Viewport.
  144.     V_OPEN.C       Display a Viewport.
  145.     V_PUTC.C       Write a character to Viewport.
  146.     V_PUTS.C       Write a string to Viewport.
  147.     V_RESTOR.C     Workhorse function to restore a screen region.
  148.     V_SAVE_S.C     Workhorse function to save a screen region.
  149.     V_SIZE.C       Change the Viewport size.
  150.     V_STARTU.C     Routines to startup and shutdown the video system.
  151.     V_SCROLL.C     Workhorse function to scroll a screen region.
  152.  
  153.  
  154. ********************************
  155.  
  156. Table from "Loop Unrolling: A RISCy Business" By Mark J. Barrenechea
  157.  
  158. Compiler optimizations tend to remain in the realm of the 
  159. mysterious. Mark unravels loop unrolling to reveal its uses and discuss 
  160. its limits. He also compares scalar and vector optimizations on the 
  161. i860 with loop unrolling on the 80486. 
  162.  
  163.     LIVERMOR.LST   A brief one-line description of each of the Livermore
  164.                    Loops used for testing.
  165.        
  166.  
  167. ********************************
  168.  
  169. Code from "Data Structure Imperatives" by Richard Riehle
  170.  
  171. It's embarrassing when you don't know an algorithm from a 
  172. biorhythm, or which data structure you need to get into the swing 
  173. of things while traversing a binary tree. Richard poses challenging 
  174. questions and provides some sample solutions.
  175.  
  176.     BSTREE.C       A simple C program implementing a binary search
  177.                    data structure.
  178.     BSTREE.EXE     An executable version using Borland Turbo C++ 1.0.
  179.     DLRING.ADB     Ada package body for a simple doubly-linked ring
  180.                    data structure.
  181.     DLRING.ADS     Ada package specification for a simple doubly-linked 
  182.                    ring data structure.
  183.  
  184.  
  185. ***********************************
  186.  
  187. Code from "Text Filters in BASIC" by Murray L. Lesser
  188.  
  189. Who says simple can't be beautiful? Once you get to know 
  190. Murray's text filter program, you'll want to write others--and 
  191. you'll know how to go about it.
  192.  
  193.     STRIPIT.BAS    A simple text filter program written in BASIC
  194.                    that deletes extraneous <LF> characters in MASM
  195.                    5.10 listing files.
  196.     STRIPIT.EXE    An executable version.
  197.  
  198. *************************************
  199.  
  200. Code from a letter to PJ by Joan Flugel.
  201.  
  202. Joan ran a simple program on five different 
  203. disassemblers and the results, as you can see,
  204. vary widely--particularly in the treatment of
  205. immediate values.
  206.     
  207.     PJLTRS.LST    The program and the results from disassembling it with
  208.                   Sourcer, DisDoc, MasterKey, MD86, and Snoop
  209.  
  210. ****************************
  211.  
  212.  
  213. If you would like to subscribe to Programmer's Journal, order back
  214. issues, or buy one of our nifty t-shirts, please write to:
  215.  
  216.                       Programmer's Journal
  217.                       P.O. Box 70167
  218.                       Eugene, OR 97401-0110
  219.  
  220.                    or call (800) 234-0386.
  221.  
  222. Subscriptions are $21.95 annually (six issues). We welcome
  223. your comments about the magazine and our code disks. Please use
  224. the above address to let us know what you think. 
  225.