$if 0
    ķ                        PowerBASIC v3.50
 Ĵ          DASoft          ķ
   Ķ    Copyright 1998     DATE: 1998-01-31 ķ
    FILE NAME   README  .TXT           by            
                               Don Schullian, Jr.                      
   ͼ                                          
  A license is hereby granted to the holder to use this source code in   
  any program, commercial or otherwise,  without receiving the express   
  permission of the copyright holder and without paying any royalties,   
  as long as this code is not distributed in any compilable format.      
   IE: source code files, PowerBASIC Unit files, and printed listings    
 ͼ 
   ͼ
$endif

Welcome! Glad to see you as there are a few "rules" in programming that I
use and would like to pass on to you that will help understand what is going
on inside this/these libraries.

1) Variable Declarations ( Arrays )
   I use the "old" method as it is a whole lot less typing and all of the
   variables in all of the routines are always signed!
   Further: all variables start with a capital letter
              unless:
                PUBLIC variables all start with a small "p"  pMyVariable%
                SHARED variables all start with a small "s"  sMyVariable%
                TYPE variables all start with a small   "t"  tMyVariable
                UNION variables all start with a small  "u"  uMyVariable

            All variables used in routines are listed in LOCAL, STATIC
            and/or SHARED statements within the routine or unit so you
            know what is being used, when and how.

   NOTE: at this time there is only 2 PUBLIC variables:
           pPI#       which is the value of Pi and it is used by the math
                      routines and some of the NBVx libraries
           pSoundOFF% a TRUE/FALSE value for Sounds and PlayTune

2) All SUBs start with a capital letter     ThisSub ()
   All FUNCTIONs start with a small "f"    fThisFunction% ()

3) Many of the .ASM routines use the "ANY" parameter. It is expected that
   you, as the programmer, have enough sense not to be passing an integer
   variable when a string, byte, dword, etc. is obviously expected. Before
   the ANY parameter some of the routines had up to 12 or 14 aliases that
   took up a lot of space and maintenance time. It is just easier to trust
   you to use them correctly. In any case, the "wrong" variable type will
   just produce some weird results and not cause a crash.

4) The governing rule within the code, itself, is understanding! More
   important than speed or size is the capability to go back and fix/modify
   existing code. It makes little sense to save 3 nano seconds and 5 bytes
   when it takes 2 hours of frustration to make a small change or fix a bug.
   To this end most of the code, both ASM and BASIC, is heavily REMarked so
   you should have no problem following it's flow.

5) There are 3 levels of library modules:
   a) stand-alone  these are all named DAS-NB0x.PBL and require no routine(s)
                   in any other library
   b) utilities    these require at least one of the NB0x libraries
   c) high-level   these are the "bigger" more flexible routines found in
                   the NBTx and NBVx libraries and require the NB0x series

   Each library has an accompanying .INC file with all the DECLARE statements
   for the routines/functions found there in. The pop-up help also has all
   the DECLARE statements on the last page of the item being displayed and
   that code can be directly imported into the note pad by pressing "I".

6) There is one, universal, .PBH help file. The main menu allows selection
   of the "main type" of routine (Utility, Text Mode, Graphics Mode) then
                              Indexed Alphabetically
                              Indexed by function
   Of course you can directly access any of the routines directly from your
   code by placing the cursor under the routine name and pressing <CTRL>F1
   just like PowerBASIC's statements. One slight difference is that if you
   search on fArrSumB or fArrSumB?? either will work equally well.

7) Before going much further read FGETKEY.TXT to get tuned in and turned on
   with this system of passing, checking and using incoming key-presses.

X) Since this library started before PowerBASIC v3.2 and is only now coming
   to its final destination it was quickly recompiled to take advantage of
   the new features available in 3.2 that were lacking in earlier versions.
   The most notable is the demise of DEF SEG and the birth of 32bit pointers!
   For years I had several routines that did the work of the pointers but
   they are now incorporated in PB. (Thanks Bob!)

   If you have never used them then you have a treat in store for you and I
   very strongly suggest you learn how to use them as they add AWESOME power
   to your programs and many of the SUBs and FUNCTIONs found in this library.
   Have a look at 32BIT.DMO for a quick introduction, it's E_A_S_Y !  Then
   have a look look at 32BITPTR.DMO to see how to call functions and subs
   with pointers for even more power.
