home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / vrac / homonlib.zip / README.TXT < prev    next >
Text File  |  1995-04-13  |  9KB  |  196 lines

  1. *****************************************************************************
  2.                                 HOMONLIB 1.0
  3.                                      by
  4.                               Raymond W. Marron
  5.                            HOMONCULOUS PROGRAMMING
  6.                                   Mesa, AZ
  7. *****************************************************************************
  8.  
  9. INTRODUCTION:
  10.  
  11.      HOMONLIB is a collection of functions and subs for use with QuickBASIC.
  12. It was written and tested using QB 4.5 on an IBM/MS-DOS compatible machine.
  13. Earlier versions of QB may work, but have not been tested.  Using HOMONLIB
  14. with the QBASIC supplied with versions of DOS 5.0 and higher will be
  15. difficult at best, mainly due to it's lack of things such as the $INCLUDE
  16. directive.
  17.  
  18.      HOMONLIB is distributed as freeware and may be passed around or uploaded
  19. to online services with the blessing of the author.  All I ask is that only
  20. the original, unmodified HOMONLIB.ZIP be distributed in its entirety.  If
  21. necessary, the name may be shortened to HOMON.ZIP if an online service has
  22. filename length restrictions.
  23.  
  24.      All files included in HOMONLIB.ZIP are copyright 1995 Raymond W. Marron/
  25. HOMONCULOUS PROGRAMMING.  You may use all or part of HOMONLIB in your
  26. personal or commercial programs with no royalty or fee due to the author.
  27. This is my way of giving back a little something to the freeware/shareware
  28. community that has given me so much in the past.  Feel free to list me in
  29. the credits, though!  ;-)
  30.  
  31.      Disclaimer:  The author makes no claims as to the fitness or suitability
  32. of any part of this product for any particular purpose.  If you fry a hard
  33. drive or something while using HOMONLIB, or it doesn't work like you think
  34. it's supposed to (or at all), it's not my fault.
  35.  
  36. Contacting the author:
  37.  
  38.      If you have questions, problems or suggestions regarding HOMONLIB, feel
  39. free to send me E-mail via CompuServe at 74220,2344.  At this time, I am not
  40. accepting E-mail via the internet because it costs me money.
  41.  
  42.  
  43. ASSUMPTIONS/CONVENTIONS:
  44.  
  45.      I assume you know DOS.  I assume you know how to use the QB editor.  I
  46. assume you know what BC, LINK, and LIB.EXE do.  If you are familiar with
  47. their command line usage, great!  You can alter and recompile/relink the
  48. library to your heart's desire.  If not, you can load the QLB when you start
  49. the editor and compile/link your programs from the RUN menu.
  50.  
  51.      I assume that you have the following directory structure on your hard
  52. drive:
  53.  
  54.           C:\QB45             Contains your binary files, like QB.EXE
  55.           C:\QB45\LIB         Contains your LIBs & QLBs, like QB.LIB
  56.           C:\QB45\INCLUDE     Contains your include files, like QB.BI
  57.  
  58. If these path assumptions are incorrect, just substitute the appropriate
  59. drive or directory where applicable.
  60.  
  61.      I use the words "function", "sub", and "procedure" liberally throughout
  62. this file and the source code comments.  I did not attempt to standardize my
  63. usage of these words.  They are used interchangeably, and basically all mean
  64. the same thing (unless, of course, referring to the return value of a proper 
  65. FUNCTION).
  66.  
  67.      When referring to function (see above) names that are part of HOMONLIB,
  68. they will be followed with an empty pair of parentheses and have the first 
  69. letter of each "word" capitalized:
  70.                             
  71.                             SetCursor()
  72.  
  73. When referring to a QB function or reserved word, it will be typed in all
  74. caps.  Constants defined in an include file will also appear in all caps:
  75.  
  76.                             PRINT    (QB)
  77.                             MAXPARM  (Constant)
  78.  
  79. If you notice any inconsistencies, I am sorry.  This library was developed
  80. over a long period of time and a few comments may have escaped my review.
  81.  
  82.  
  83. PREPARATION FOR USE:
  84.  
  85.      Copy the original ZIP file to a diskette for safekeeping if you haven't
  86. done so already.
  87.  
  88.      I suggest you create a subdirectory to keep all the HOMONLIB files 
  89. separate from your other projects.  I have mine set up as a subdirectory of
  90. the LIB directory:
  91.  
  92.      C:\QB45\LIB\HOMONLIB
  93.      
  94. Copy all the source files (*.BAS) to this new directory.  Copy all the make
  95. files to this directory as well (*.BMK, LMK, LNK).  Copy all the include
  96. files (*.INC) to your INCLUDE directory.  Copy HOMONLIB.LIB & QLB to the LIB
  97. directory.  The BMAKE executable should be copied to the C:\QB45 directory.
  98. The text files should be placed wherever you find it convenient to access
  99. them.  I recommend printing the HOMONREF.TXT and QUICKREF.TXT files.
  100.  
  101.      In the editor, use the Set Paths option under the Options menu to tell
  102. QB about your directory structure & where to find certain kinds of files if
  103. you have not done so already.
  104.  
  105.      You can now load the QuickLibrary when you start the editor and begin
  106. using the new functions right away.  The declarations and instructions for
  107. each individual procedure's use are in the source files themselves.  All
  108. these declarations and comments are reprinted (in alphabetical order) in
  109. HOMONREF.TXT.
  110.  
  111. To load the QuickLibrary at startup:  QB /L HOMONLIB.QLB [YOURPROG.BAS]
  112.  
  113.  
  114. USAGE NOTES:
  115.  
  116.      While browsing through the source code, you will notice that a lot of
  117. the procedures take an integer array called parm() as an argument.  This
  118. array is used to hold your screen color settings and other information.
  119.  
  120.      I suggest you declare it as SHARED or COMMON SHARED in the main module
  121. of the application that is to use HOMONLIB.  To do so, the following lines
  122. (at least) should appear in your program:
  123.  
  124.                ' $INCLUDE: 'PARM.INC'
  125.                DIM SHARED parm(1 TO MAXPARM)
  126.  
  127. By making the array shared, you don't need to explicitly pass it from
  128. procedure to procedure in your program - only to the library functions.
  129.  
  130.      You can either hard-code the various color assignments or allow the user     
  131. to customize them through the use of the ColorSet() function.  You can then
  132. save these settings to some sort of INI or DAT file to be read at startup.
  133.  
  134.      More information about using the parm array can be found in the SUBs and
  135. FUNCTIONs that use it, and in the PARM.INC file itself.
  136.  
  137.  
  138.      HOMONLIB is very granular.  This means that if you only use a few parts
  139. of it, only those parts are placed into your final EXE.  HOMONLIB is also
  140. very inter-dependent.  Many of the functions rely upon each other.  Keep this
  141. in mind if you alter any of the source to suit your needs.  If you change
  142. something drastically enough, other functions that rely on it may fail to
  143. work.
  144.  
  145.      I have also tried to make the library as modular as possible.  When you
  146. pass variables to the procedures, they don't get inadvertantly changed unless
  147. that was the purpose to begin with.  Any functions that change their
  148. arguments are explicitly noted as doing so in the comments.
  149.  
  150.      Whenever a function needs to change a color or alter the screen in some
  151. way, they make every effort to put it back the way it was prior to calling
  152. the function.  The abundance of set/get functions in the library make this
  153. possible.  Keep in mind that all the functions that take parm() as an
  154. argument assume that the color is currently set to parm(FGN), parm(BGN) and
  155. will restore this setting upon exit.  Any exceptions are noted in the
  156. comments.
  157.  
  158.      To rebuild the library if you make changes to it, run BMAKE HOMONLIB at
  159. the DOS prompt in the C:\QB45\LIB\HOMONLIB directory (This assumes your \QB45
  160. directory is listed in your PATH statement).  If you add or remove any
  161. modules from the library, be sure to update the BMK & LMK files.  The "LMK"
  162. extension is just something I made up - it stands for "Library MaKe file".
  163. You will also need to modify these files if your directory structure is
  164. different than the assumed structure noted above.  For more information about
  165. BMAKE, see its accompanying text file.
  166.  
  167. -----------------------------------------------------------------------------
  168.  
  169.      I have spent a lot of years developing the code and programming style
  170. that went into HOMONLIB.  I sincerely hope you find it useful or educational.
  171. I really enjoy programming in BASIC, and am pleased to see that it is gaining
  172. wider recognition as a viable, modern programming language.
  173.  
  174.      Have fun and ENJOY!!!
  175.  
  176.      Raymond W. Marron
  177.      HOMONCULOUS PROGRAMMING
  178.  
  179.  
  180. MANY THANKS/SUGGESTED READING:
  181.  
  182.      I would like to thank Ethan Winer of Crescent Software for making his
  183. book "BASIC Techniques and Utilities" available to the public.  It contains
  184. invaluable information on the inner workings of the BASIC language.  If you
  185. want to learn more about compiler and linker options, this is the book for
  186. you.  You can find this on CompuServe as "WINER.ZIP".
  187.  
  188.      I would also like to thank Fairchild Computer Services for providing the
  189. basis of my Dir$() function.  This is another gem that I found on CompuServe,
  190. and another example of the generous spirit of the programming community.  You
  191. can find this code under the name of "DIR.ZIP" and it comes with some other
  192. very nice programs and examples.
  193.  
  194.  
  195. *** End of README.TXT
  196.