home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / C / DLIBS.ZIP / READ.ME < prev    next >
Encoding:
Text File  |  1987-10-12  |  5.4 KB  |  89 lines

  1.  
  2. dLibs v1.0                            10/12/87
  3.  
  4.     dLibs is a public domain set of standard library routines for use
  5.     with Alcyon C v4.14 on the Atari ST.  It was written in 1987 by Dale
  6.     Schumacher.  The intent of these routines is to provide a rich set of
  7.     library routines for C programmers, with all source code publically
  8.     available.  It is meant to be both useful and educational.  As far as I
  9.     know, this is the most complete set of library routines that are in the
  10.     public domain.  An attempt has been made to adhere to clear standards
  11.     in the design of dLibs.  I used the specifications for the library
  12.     routines of Microsoft C v4.0 (for IBM-PC) as a basis for most of dLibs.
  13.     In cases where functions where not available in Microsoft C, and in
  14.     cases where Microsoft seemed to deviate from what I percieved as
  15.     accepted practice, I referred to various Unix libraries.  I'd like to
  16.     see these routines distributed as widely as possible as I feel they
  17.     will be a benefit to many people.  The only restriction I'd like to
  18.     place on the use of dLibs is this.  If you modify the sources code,
  19.     please don't redistribute it under the name "dLibs".  I encourage
  20.     people to look at, play with, modify and improve the source code as
  21.     much as they want, and would gladly accept suggestions (preferrably
  22.     with source code) for changes/additions to dLibs.  I simply want to
  23.     avoid the problem of digressive versions of dLibs.  This will not be
  24.     the only dLibs release.  I plan to expand these routines in many ways
  25.     and hope to continue providing good useful source code for the public
  26.     domain programming community.
  27.  
  28.     dLibs is, as I've said, quite a complete set of routines.  There
  29.     are, however some notable ommisions.  There is not currently any
  30.     support for floating point operations.  I've received some source code
  31.     that may help this situation, and plan to release a floating point math
  32.     library to go with dLibs, but not in this version.  Also, there is no
  33.     direct support for VDI/AES calls.  Again, a very likely future addition
  34.     (anyone wishing to contribute useful routines is encouraged to contact
  35.     me, since I don't use VDI/AES calls).  Currently under development is a
  36.     set of fork()/exec()/wait() routines that will work much like their
  37.     Unix counterparts.  Most likely, a future version of dLibs will contain
  38.     code to detect that an application is running under the RTX multi-
  39.     tasking kernel developed by Beckemeyer Development.  This will allow
  40.     programs to run normally under TOS, but also take advantage of RTX if
  41.     it is available.  dLibs will not currently work directly with Mark
  42.     Johnson's public domain C compiler, but a port is in progress.
  43.  
  44.     The documentation for dLibs is a bit sketchy at this point, but it
  45.     should allow you to begin using the routines immediately, especially if
  46.     you are already familiar with what various functions do in Microsoft or
  47.     Unix.  If there is any question about the function of dLibs in any
  48.     particular situation, you can always refer to the source code for the
  49.     "definitive" explaination.  You might even find some features that you
  50.     didn't know about.  You shouldn't have very much trouble porting source
  51.     code written with the Alcyon/DRI libraries, since most of the functions
  52.     work the same (except that many dLibs routines work correctly, where
  53.     the equivalent Alcyon/DRI routine failed).  I've found that most of the
  54.     effort involves removing direct GEMDOS/BIOS/XBIOS calls and replacing
  55.     them with standard functions, which are more portable anyhow.  I advise
  56.     reading the dLibs function documentation at least once straight through
  57.     to familiarize yourself with many functions that weren't available in
  58.     the older libraries.
  59.  
  60.     And now a word about dynamic memory.  With the new GEMSTART written
  61.     by Allan Pratt of Atari (very well done), you had to specify how much
  62.     memory you wanted to reserve for stack/heap.  All dynamic memory was
  63.     allocated from this block, so you had to know in advance how much
  64.     memory you'd need at most.  This sometimes made execution of
  65.     sub-programs (or concurrent processes) difficult, since they could only
  66.     use the memory remaining after you reserved your stack/heap space. 
  67.     dLibs allocates heap space from TOS as it needs it (though carefully
  68.     avoids breaking the memory management system).  Dynamic memory is
  69.     allocated from those heaps and the heaps are returned to TOS if they
  70.     become entirely free.  You still need to reserve space for your program
  71.     stack (4K is default), but dynamic memory management is handled
  72.     internally.
  73.  
  74.     I'd like to thank several people for their contributions in the
  75.     form of source code, ideas and beta-testing.  Thank you John Stanley,
  76.     David (orc) Parsons, Jwahar Bammi, Eric Gisin, David Beckemeyer, Todd
  77.     Burkey and David Robb.  I hope you find dLibs to be a useful package,
  78.     and I hope to hear from you if you have any suggestions or bug fixes.
  79.     I'm sure I haven't shaken ALL of the bugs out yet, though beta-testers
  80.     have been quite pleased with how well everything works.
  81.  
  82.         Dale Schumacher
  83.         399 Beacon Ave.
  84.         St. Paul, MN 55104
  85.  
  86.     UUCP: ..ihnp4!meccts!stag!syntel!dal
  87.     arpaNET:  dal@syntel.UUCP  -or-  syntel!dal@stag.UUCP
  88.     Citadel BBS:  Syntel (612)646-3988  300/1200/2400 baud
  89.