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