home *** CD-ROM | disk | FTP | other *** search
-
- The ISAM File System
- **********************
- The ISAM File System functions provide an easy way of programming relational
- data base systems using the (I)ndex (S)equential (A)ccess (M)ethod. Included
- is the Amiga link file (library) for use with own programs. The routines are
- written in C and compiled under Lattice 4.0.
-
- This is version 0.9 BETA release of the functions. (I tested it with a small
- program but had no time to do more testing in a complex data base system with
- more files open etc.)
-
- Also, the ISAM.lib is no real library yet. You simply get ALL the ISAM
- functions linked with your program. The functions use the malloc/free
- standard routines, which allocate some bytes for their own use when
- requesting memory, but they are compatible with every C compiler (and other
- systems). If you have problems linking the ISAM.lib to your program (eg a
- function is used your compiler does not have), please tell me. Here's a list
- of all external symbols ISAM.lib uses:
-
- _open, _close, _read, _write, _lseek, _malloc, _free, _stricmp -> the
- standard functions every C compiler should have.
- _access -> a UNIX function which tests file accessibility
- (__base)
- __xcovf
- _CXM22, _CXM33
-
-
- Now, a VERY important note:
-
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- The Author makes no warranty of any kind with respect to the
-
- documentation or the software described therein, its quality,
-
- performance, merchantability, or fitness for a particular
-
- application. The Author shall not be liable for errors contained
-
- herein or for incidental or consequential damages in connection
-
- with the use of this product.
-
-
- -----------------------------------------------------------------------------
-
- This software is PUBLIC DOMAIN. It is freely distributable in public domain
- series, BBSs etc., on condition that the following files are included and
- remain unchanged:
-
- README - this file
- ISAM.doc - the documentation describing each function
- ISAM.h - the Lattice-C 4.0 header file for C programs
- ISAM.lib - the link library containing the functions
- demo.c - a program demonstrating the use of the ISAM functions
- demo.lnk - linkage information for demo.c
- demo - executable demo
- Demo.info - icon for demo
- compile.doc - how to compile the demo
-
- If you use the functions in PUBLIC DOMAIN programs or programs for your own
- personal use, please send me just that much money you think this software is
- worth to develop future versions of it.
-
- Please, put a note in your program (in its title page and documentation) that
- says:
- "This software uses the ISAM File System Functions Vx.x by Kai Ploog"
- or a similar statement!
-
-
- This version is NOT for commercial use. It is only free for use in
- non-commercial programs, like public domain and private ones, and the
- copyright stays with the author, anyway.
-
- For commercial use, please contact me.
-
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- If you find any bugs or have any suggestions to improve this software or
- have questions, please write to me!
- Since this is only a BETA release, I need your help (in form of bug reports)
- to release a (hopefully) bug-free version.
-
-
- My address is:
- Kai Oliver Ploog
- A.d. Huehnerhecke 1
- 6074 Roedermark (near Frankfurt/Main)
- West-Germany
-
- Hope you'll enjoy this software!
-
-
- PS: I have an Amiga 2000B (1Meg), a C= 1084 monitor, two disk drives (no
- HD) and a Star NL-10 printer connected via my old Commodore 64.
- I'd find it very interesting, if everyone who publishes programs in public
- domain series would also mention which system configuration/hardware he/she
- uses.
-
-
- *****************************************************************************
-
- Documentation:
- --------------
-
- ISAM stands for Index Sequential Access Method. That means, every single
- record on the disk is accessed via a key hold in memory. This principle is
- very efficient for complex data bases with many records. The key list in
- memory has to be updated after every change or before exiting your program
- (automatically done with every change or when closing the ISAM file, see
- ISAM.doc). The keys are held in a double-chained list, so the max amount of
- records only depends on your system memory and (hard) disk space. For
- example, if you have a 512K Amiga with 300K free and your key field (eg the
- name in an address file) is 30 characters max, you can have up to 7300
- records (addresses)! If you have a disk drive (880K) connected to your Amiga
- and only have that 300K free, one record can have 123 characters to exactly
- fill the disk with 7300 records. If you have a (very big...) hard disk and
- enough memory space, one ISAM File can have up to 4,294,967,295 (4 GIGA !)
- bytes/characters (sorry that it isn't more, but it depends on the system...
- but find a hard disk that has 4096 mega bytes!)
-
- Okay, here are some more facts, compared with a famous data base system for
- MS-DOS computers (I cannot give the name here because I want no troubles with
- the law of some countries):
-
- | ISAM File System | d???? III+
- -----------------------------------------------------------------------------
- No. files open at a time | ML | 10
- Max field length | 65,536 | 4,000
- Max fields per record | 65,536 | 128
- Max record length | 65,536 | ? (less than 4,000)
- Max records per file | 4,294,967,295 | 1,000,000,000
- Max file size | 4,294,967,295 (ML) | ? (ML)
-
- ML = machine limit
-
-
-
- The routines are entirely written in portable C source (using standard
- library functoins), but I possibly will release an Amiga'ized version, for
- example as a system library at a later time (when it is supposed to be
- bug-free). This version should be fast, but I didn't test it with many
- records (in the Amiga'ized version it will become even faster). Also, you
- still need the C.LIB routines of your C compiler to use this version.
-
- Look in the ISAM.doc, ISAM.h and demo.c files for more information about how
- to write programs with my routines. (It is very easy, so I don't write more
- documentation than necessary.)
-
-
- I hope you will use the ISAM File System extensively and help to release
- future versions!
-
-
-
- KAI, 4/5/1989
-
-