

	Description file for 'Subs.BAS'
Subs.BAS contains many subs and function that I have wrote, modified, or just
plain ripped off.. Lets begin:

*****************************************************************************
SUB Alphabetize (Array$(), Size)
*****************************************************************************
Written by me.

Discription: Akphabetizes an array using basic sorting methods.

Array$()  :Is a one dimentioned array, that will be Sorted alphabeticly..
Size      :Is the Highest element to Sort in the array. If Size is 0 then
 	   then the sub alphabetizes the whole array..

Speed     : 5
Usefulness: 8
Gerne     : mutliple/text-based
Efficiency: 6
ErrorHandl: Yes
Cooperates: Func POOA
Requires  :

Example:
DIM Word$(10)

FOR n = 1 TO 10
  LINE INPUT "Enter a name:",Word$(n)
NEXT

CALL Alphabetize (Word$(), 0)
FOR n = 1 TO 10
  PRINT Word$(n)
NEXT
....

*****************************************************************************
FUNCTION Array2Str$ (Array$())
*****************************************************************************
[Array too string]
Written by me.

Description: Asigns the array to a single string, seperating elements with
the ascii 1/CHR$(1).. And will not continue if it will overflow the string.

Array$()    : A single dimentioned array, used to seed a string.

Speed     : 7
Usefulness: 2
Gerne     : Text-Based
Efficiency: 3
ErrorHandl: Yes
Cooperates: 
Requires  :

Example:
DIM SHARED a$(10)

FOR n = 1 to 10
  a$(n) = STR$(n)
NEXT

Stuffed$ = Array2Str(a$())
PRINT Stuffed$
....

*****************************************************************************
SUB Boxle (xcord, ycord, Text$, MaxOver, ForeCol, BackCol)
*****************************************************************************
Written by me.

Description: Clips text to fit inside of a box. And makes box longer as it 
clips. And additional spaces in Text$ are not accounted.(Note: some ver. of
Boxle alow you to use underscores (_) to account additianal spaces.)

xcord, ycord: Start corners of the box ( in LOCATE coodinates).
Text$       : Text to be placed and clipped in the box.
MaxOver     : The number of charactors to print per line before clipping.
ForeCol     : Forground Colour of text, and the box's rim.
BackCol     : Background Colour of text, and the box's rim.

Speed     : 8
Usefulness: 8
Gerne     : Multiple/Text-Base
Efficiency: 10 (only w/ underscore capabilities ELSE 9)
ErrorHandl: no
Cooperates: 
Requires  : Sub Strip

Example:

CALL Boxle (5, 5, "Hey does't this work just fine ?", 8, 15, 1)

....

*****************************************************************************
FUNCTION BoxPoint (x1, y1, x2, y2)
*****************************************************************************
Written by me.

Description: Returns as boolian if there is a pixel inside the given 
Box-like coodinates.

x1, y1    : Start Box Coordinates
x2, y2    : End Box Coordinates

Speed     : 8
Usefulness: 6
Gerne     : Screen modes
Efficiency: 8
ErrorHandl: no
Cooperates: 
Requires  : 
	
Example:
 SCREEN 13

 PSET(10, 10)

 IF BoxPoint(3, 3, 12, 12) THEN PRINT "Pixle found!!"

....
*****************************************************************************
SUB Center (a$, row, Col)
*****************************************************************************
Written by me.

Description: Centers a line of text at given positions.

a$       : The text to be centered on the screen.
row      : The row (y in LOCATE) horizontal.
Col	 : The color of the Text.

Speed     : 10
Usefulness: 8
Gerne     : Multiple/Text-Based
Efficiency: 6
ErrorHandl: no
Cooperates: 
Requires  : 

Example:
 CALL Center("See, told ya it works",12,7)

....
*****************************************************************************
SUB CL (linenum)
*****************************************************************************
Unfortuanatly, I wrote this too..

Description: Clears one whole line of code off the screen (Y LOCATE)
	  
LineNum   : The line/Row to clear.

Speed     : 10
Usefulness: 5
Gerne     : Multiple/Text-Based
Efficiency: 7
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
 CLS
 PRINT "Hi!"
 a$ = INPUT$(1) 
 CL 1
....

*****************************************************************************
SUB ClearKeyBuff
*****************************************************************************
[ Clear keyboard buffer ]
Modified by me.

Describtion: Removes any extra key strokes from the keyboard buffer.

Speed     : 7
Usefulness: 9
Gerne     : Multiple
Efficiency: 8
ErrorHandl: N/A
Cooperates: Slow modules (Scroll..)
Requires  : 

Example:
....
 
  PRINT "Press keys during loop.."
  FOR n = 1 to 800
    'Slow down
  NEXT
  ClearKeyBuff
  INPUT "See, no keys carried to input statement:", Ans$
....

*****************************************************************************
SUB ClearScr
*****************************************************************************
[Clear screen]
Written by me.

Description: Clears the hole screen faster than CLS.

Speed     : 10
Usefulness: 5
Gerne     : Screen modes
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
  SCREEN 13
  PRINT"Press a key to clear.."
  a$ = INPUT$(1)
  ClearScr
....

*****************************************************************************
FUNCTION CurrentCol STATIC
*****************************************************************************
[Current color]
Written by me.

Description: Returns the current forground color. May have difficulty if
the background color isn't 0.

Speed     : 10
Usefulness: 8
Gerne     : Multiple/Text-Based
Efficiency: 7
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
 COLOR 1
 PRINT "Current color is "; CurrentCol
 COLOR CurrentCol + 6
....

*****************************************************************************
FUNCTION CurrentDate$
*****************************************************************************
Written by me.

Description: Returns the current date. i.e January 3, 1997

Speed     : 5
Usefulness: 6
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : Sub Strip

Example:
....
 D$ = CurrentDate
 PRINT" The current date is "; D$
....

*****************************************************************************
FUNCTION CurrentDir$ STATIC
*****************************************************************************
[Current directory]
Written by me.

Description: Returns the current dirictory read by DOS.

Speed     : 6
Usefulness: 8
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
 PRINT "Current dirictory is: "; CurrentDir
 SHELL "cd\Windows
 PRINT "Current dirictory is now: "; CurrentDir
....

*****************************************************************************
FUNCTION CurrentTime$
*****************************************************************************
Writtem by me.

Description: Returns the current time in non-julian. i.e 3:11 AM

Speed     : 6
Usefulness: 7
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
  PRINT "Current time is:"; CurrentTime
....

*****************************************************************************
SUB delay (a AS SINGLE) STATIC
*****************************************************************************
Modified by me.

Description: Delays in seconds, for multiplatform speed handling.

a	 : Number of seconds to delay .. i.e .005

Speed     : N/A
Usefulness: 10
Gerne     : Multiple
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
 CLS
 FOR n = 1 to 23
   PRINT "Slowdown!"
   Delay .05
 NEXT
....

*****************************************************************************
FUNCTION Exists (File$)
*****************************************************************************
Written by me.

Description: Returns Boolian for if the File given exists.

File$	 : File to check to see if it exists.

Speed     : 10
Usefulness: 10
Gerne     : Multiple
Efficiency: 9.9
ErrorHandl: Yes
Cooperates: 
Requires  : 

Example:
....
 IF Exists("QB.EXE") THEN PRINT "Wow you got Qbasic 4.5!" ELSE PRINT "Suck.."
....

*****************************************************************************
FUNCTION FirstFile$ (FilePath$)
*****************************************************************************
[First file in written dirictory]
Written by me.

FilePath$  : Includes the path and type of files i.e "c:\QB\*.EXE" *PLUS*
	     Seperate markups after the path.. Include a '|' after the path
	     then any of the following:
	     S : Returns by size. Will return the smallest file.
	     T : Returns by time. Will return the oldest file.
             D : Returns all Directorys. Returns   first dirictory.

Speed     : 8
Usefulness: 5
Gerne     : Multiple
Efficiency: 4
ErrorHandl: no
Cooperates: 
Requires  : Func GetArgFR
	    Func LucInstr

Example:
....
 PRINT "The oldest BAS file in this directory is"; FirstFile("*.BAS |D)
....

*****************************************************************************
FUNCTION Fload (F$)
*****************************************************************************
[File load]
Written by me.

Description: This function is a hotkey to open files. It also Checks to see
	     if the file exists first. The return value is the file number.

F$	: The file to open as INPUT

Speed     : 8
Usefulness: 6
Gerne     : Multiple
Efficiency: 10
ErrorHandl: yes
Cooperates: 
Requires  : Func Exists
	    
Example:
....
 n = Fload("Subs.BAS")
 IF n < 0 THEN 'Fload Returns -1 if File doesn't exist
   PRINT "Could not find subs.BAS"
   END
 END IF
 LINE INPUT #n, dat$
 CLOSE #n
 PRINT "First line is:"; Dat$
....

*****************************************************************************
SUB Font (a$, x, y, SizeX, SizeY, Col, Opt, Slant)
*****************************************************************************
Written by me.

Description: Prints big fonted text on the screen using graphics. Texted only
	     in Screen 13, so many errors may uccor.

a$	: The Text to display
x, y    : Graph coodinates.
SizeX   : Letters width.
SizeX   : Letters hight.
Col     : Color of the letters
Opt     : if Opt is 0 then x and y are on 320/220 scale, if Opt is 1 then 
          the text is snapped to the next line.
Slant   : Slants the text to the right *Slant number of times.

Speed     : 8
Usefulness: 8
Gerne     : Screen mode (13)
Efficiency: 4
ErrorHandl: no
Cooperates: 
Requires  : 	    

Example:
....
 SCREEN 13
 CALL Font("Hey!", 2, 2, 3, 3, 3, 1, 2)
....

*****************************************************************************
FUNCTION FreeMem$ (Drive$)
*****************************************************************************
[Free memory]
Writen by me.

Description: Returns the number of bytes left in a drive.

Drive$ 	: The drive to check i.e 'A' 'C' 'A:\' 'C:\'

Speed     : 5
Usefulness: 6
Gerne     : Multiple
Efficiency: 9
ErrorHandl: no
Cooperates: 
Requires  : Func Replace
	    
Example:
....
  PRINT "There are "; INT(VAL(FreeMem("C")) / 1000000)); " megabytes free on C"
....
 
*****************************************************************************
SUB FSpecs (File$, Length&, Buffer$)
*****************************************************************************
[File speculations]
Written by me.

Description: The variables sent in are asigned values that hold information
             about the given file. Returns NULL if the file doesn't exist.

File$	: The file to get the specs from. Value of File$ is not manipulated.
Length& : A LONG variable returning the nmber of bytes in the file.
Buffer$	: The first 8 bytes of the file. If Length& is less than 8 then
	  Buffer$ is assigned to bytes equal to Length&

Speed     : 10
Usefulness: 8
Gerne     : Multiple
Efficiency: 9
ErrorHandl: yes
Cooperates: 
Requires  : Func Exists
	    
Example:
....
 DIM SHARED Bytes AS LONG
 Fspecs "\Doom2\Doom2.WAD", Bytes, Byte$
 PRINT "The length of the Doom 2 WAD in bytes is"; Bytes
 PRINT "The first 8 bytes ofthe WAD file are :"; Byte$
....

*****************************************************************************
FUNCTION GetArgFR$ (arg$, from, To$)
*****************************************************************************
[Get Argument From Right]
Written by me.

Description: Returns a segment of the entered string by reading the string 
 	     until To$ is found. Reading starts from Right to left.

arg$	: The string to search through
From 	: The charactor location in the string to begin the search.
To$	: The stopping charactor.

Speed     : 10
Usefulness: 7
Gerne     : Multiple
Efficiency: 10
ErrorHandl: no
Cooperates: 
Requires  : 
	    
Example:
....
i.e: a$ = GetArgFR("Hello all you gals out there!", 6, "g")
     a$ then equals "t out gals"
....

*****************************************************************************
FUNCTION GetArgFT$ (arg$, from, To$)             
*****************************************************************************
[Get Argument From (left) To (right)]
Written by me.

Discription: Same as GetArgFR only reads from left to right.

(see GetArgFR for variable library)

Speed     : 10
Usefulness: 9
Gerne     : Multiple
Efficiency: 10
ErrorHandl: no
Cooperates: 
Requires  : 
	    
Example:
....
i.e: a$ = GetArgFT("Hello all you gals out there!", 3, "y")
     a$ then equals "llo all "
....

*****************************************************************************
SUB getch
*****************************************************************************
[Get Charactor]
Totally ripped off from C++.

Discription: Waits for a keypress.

Speed     : N/A
Usefulness: 10
Gerne     : Multiple
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
 PRINT "Press a key to end.."
 getch
....


*****************************************************************************
FUNCTION Getche$ 
*****************************************************************************
[Get Charactor Extraction]
Totally ripped off from C++

Discription: Waits for a keypress and returns the key pressed.

Speed     : N/A
Usefulness: 10
Gerne     : Multiple
Efficiency: 10
ErrorHandl: N/A
Cooperates: 
Requires  : 

Example:
....
  PRINT "Press escape to end."
  DO
    Pressed$ = Getche
    PRINT "You pressed:"; Pressed$
  LOOP UNTIL Pressed$ = CHR$(27)
....

*****************************************************************************
FUNCTION GetStrBtw$ (Text$, First$, Last$) STATIC
*****************************************************************************
[Get Charactor String Between..]
Written by me.

Description: Returns a segment of the string passed through GetStrBtw between
             The first uccurring parameters.

Text$	: The string to search.
First$	: The first charactor to start the search.
Last$	: The ending charactor to stop the search.

Speed     : 10
Usefulness: 8
Gerne     : Multiple
Efficiency: 9
ErrorHandl: some
Cooperates: 
Requires  : 

Example:
....
i.e: a$ = GetStrBtw("The values are (100 20) and (1 19)", "(", ")")
     a$ then equals "100 20"
     Note: GetStrBtw returns only the first uccurring parameters.
....

*****************************************************************************
FUNCTION LastFile$ (FilePath$) STATIC
*****************************************************************************
Written by me.

Description: Same as Func FirstFile only reads the last file.

(See FirstFile for Variable Libs & stats.)
(Note: Reverse markups, and is slower.)

Example:
....
 PRINT "The newest BAS file in this directory is"; LastFile("*.BAS |D)
....

*****************************************************************************
FUNCTION LucInstr (Text$, SearchFor$)
*****************************************************************************
[Last Uccurring string In String...].. sequal FucInstr not yet programmed
Written by me.

Description: Returns the the position of the last charactor in a string.

Text$	  : String to search through.
SearchFor$: The charactor to look for.

Speed     : 10
Usefulness: 7
Gerne     : Multiple
Efficiency: 10
ErrorHandl: yes
Cooperates: 
Requires  : 

Example:
....
i.e: x = LucInstr("Jimmy", "m")
     x then equals 4.
....

*****************************************************************************
SUB Marque (a$, row, del AS SINGLE)
*****************************************************************************
Written by me.

Description: Scrolls text from right to left using controlled methods.

a$	: The text to scroll.
row	: The vertical line to scroll accross (X in LOCATE).
del     : Delay value. Number of seconds to delay between scrolls.

Speed     : 5
Usefulness: 6
Gerne     : Multiple/Text-Based
Efficiency: 6
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
 CALL Marque("This is a short example..", 12, .0001)
....

*****************************************************************************
SUB Melt (FromX, FromY, ToX, ToY, Size, offset) 
*****************************************************************************
Modified by me.

Discription: Shifts a sertain section of the screen down by an offset.

FromX, FromY: Start of box coodinates.
ToX, ToY    : End of box coodinates.
Size	    : The size of the section to shift inside created box.
offset	    : The number of pixels coodinates to shift down the Box(Size)

Speed     : 9
Usefulness: 5
Gerne     : Screen mode
Efficiency: 8
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
 SCREEN 13
 PRINT "Hey now!"
 DO
  CALL Melt(1, 1, 60, 30, 5, 1)
 LOOP WHILE INKEY$ = ""
....

*****************************************************************************
FUNCTION NumInstr (Text$, SearchFor$)
*****************************************************************************
[Number (of string) Inside String]
Written by me.

Description: Returns the number of times a given string appears in another
 	     string.

Text$	  : String to search.
SearchFor$: String to look for inside Text$.

Speed     : 9
Usefulness: 9
Gerne     : Multiple
Efficiency: 10
ErrorHandl: Yes
Cooperates: 
Requires  : 

Example:
....
i.e.: Found = NumInstr("This is a sizzling singer", "is")
      Found then equals 3.
....

*****************************************************************************
SUB Polygon (x, y, rad, Polys, offset, Col) STATIC
*****************************************************************************
Written by me.

Discription: Displayed a controlled polygon.

x, y	: The center graph coordinates of the polygon.
rad	: The Radious/Size of the Polygon.
offset  : The rotate offset of the polygon.
Col	: The color of the polygon.

Speed     : 8
Usefulness: 8
Gerne     : Screen mode
Efficiency: 10
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
 SCREEN 12
 DO
   n = n + 1
   CALL Polygon(200, 200, 60, n, 180, 15)
 LOOP WHILE getche <> ""
....

*****************************************************************************
FUNCTION POOA$ (qx, qy, MaxView, MaxLen, TextCol, Bcol1, Bcol2, Array$())
*****************************************************************************
[Pick Out Of Array]
Written by me.

Discription: A well controlled picklist/menu function that returns what you 
             pick, and nothing if you hit escape. Includes one charactor
	     search values "A" to "Z", Pge Up, Pge Down, End, Home

qx, qy	: The Top left LOCATE coodinates.
MaxView : The amount of elements to display at a time.
MaxLen	: The maximum elements you can view.
TextCol	: The colour of the words.
Bcol1	: The background colour of unselected text.
Bcol2	: The background colour of selected text.
Array$(): The single dimentioned array to view.

Speed     : N/A
Usefulness: 10
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: Some
Cooperates: TextBox
Requires  : 

Example:
....
 DIM SHARED Num$(20)

 FOR n = 1 TO 20
   Num$(n) = STR$(n)
 NEXT 
 a$ = POOA(3, 3, 5, 20, 7, 1, 15, Num$())
 PRINT "You selected:"; a$
....

*****************************************************************************
FUNCTION Qin$ (MaxEntries, Format$)
*****************************************************************************
[Qbasic Input]
Written by me.

Description: A well controlled INPUT function, that can be escaped.

MaxEntries: The maximum charactors that can be entered.
Format$	  : A Markup selection:
       		"1234 d(5...)"
		1 : An operator out of '$'(Alpha only) '#'(Numeric only) 
                    '&'(Alpha-numeric)
		2 : The baground charactor that you input over
		3 : The Curson charactor.
		4 : The Password charactoer. Use \ for no password block.
		5 : Any number of charactors that cannot be entered.
		    Optional..

Speed     : N/A
Usefulness: 10
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: Some
Cooperates: TextBox
Requires  : Func GetStrBtw


Example:
....
  PassWord$ = Qin(8, "& _* D( )"
  PRINT PassWord$
....

*****************************************************************************
SUB Qout (Text$)
*****************************************************************************
[Qbasic Out]
Written by me.

Description: A very well controlled Markup text outputing sub. Output starts
	     at the current  Cursor positions.

Text$	: A mix of normal text and Markups:
  \a ###: "ascii Char"  :   Pokes ascii charactor ### on the screen
  \n    : "Next line"   :   Scrolls to next line, in paragraph format
  \s ###: "Space over"  :   Spaces/tabs over ### spaces
  \t ###: "Tab over"    :   Same as \s
  \'    : "Double Quote":   Easy way to add quotes in text
  \;    : "String stick":   Sticks next PRINT to end of Qout a.k.a. "";
  \...  : "Anything "   :   Prints anything following it, good for '\' i.e.\\
  \u... : "print Using" :   Uses text after 'u' as print using data..
                            next value sent through Qout is print Used..
  \l ###: "Line Locate" :   Moves the locate X cursor to given number..
  \p    : "Pause "      :   Waits for user to press a key
  \$#(.): "String "     :   Strings '.' over # of spaces. If '.' is 2 digits
                            then it prints the ascii value, else it uses '.'
  \m ###: "Margerine"   :   Scroll down when # letters printed. \m0 turns off

Speed     : 9
Usefulness: 10
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: Yes
Cooperates: 
Requires  : Func SpecFT

Example:
....
  Qout "Jim says\a249Howdy \a19 \nHey \nThis is good for \nParagraphs! \n"
  Qout "Don't you think?\c10 \a1\c7"
....

*****************************************************************************
SUB RepInArr (Array$(), Look$, ChangeTo$)
*****************************************************************************
[Replace In Array]
Written by me.

Description: Works like Func Replace, only changes every element of an array.

Array$() : a single dimentioned Array to search and replace values.
Look$	 : String to search for in elements of the array.
ChangeTo$: Changes all Look$ to ChangeTo$ in the array.

Speed     : 7
Usefulness: 4
Gerne     : Multiple
Efficiency: 10
ErrorHandl: Yes
Cooperates: 
Requires  : Func Replace

Example:
....
 DIM SHARED Num$(20)

 FOR n = 1 TO 20
   Num$(n) = STR$(n)
 NEXT 
 CALL RepInArr(Num$(), "1", "Jimmys ")
 FOR n = 1 TO 20
   PRINT Num$(n)
 NEXT 
....

*****************************************************************************
FUNCTION Replace$ (Text$, Look$, Rep$)
*****************************************************************************
Written by me.

Description: Replaces certain strings w/ another string.

Text$	: String to search.
Look$	: String to search for.
Rep$	: String to replace all all Look$ with.

Speed     : 9
Usefulness: 10
Gerne     : Multiple
Efficiency: 10
ErrorHandl: Yes
Cooperates: 
Requires  : 

Example:
....
i.e.:  a$ = Replace("Jim Adam  Bla", " ", "..")
       a$ then equals "Jim..Adam....Bla"
....

*****************************************************************************
FUNCTION SameFile (FirstFile$, SecondFile$) STATIC
*****************************************************************************
Written by me.

Discription: Returns Boolian if two files are the same file.

FirstFile$ : One of the two files to compare.
SecondFile$: The other file to compare.

Speed     : 10 (If bytes same, then Speed may be alot slower) 
Usefulness: 8
Gerne     : Multiple
Efficiency: 10
ErrorHandl: Yes
Cooperates: 
Requires  : Func Exists

Example:
....
 IF SameFile("\Waded\Sike.WAD", "\Waded\Sike.BAK")THEN
   PRINT "WAD == BAK files"
 ELSE
   PRINT "WAD != BAK Files"
 END IF
....

*****************************************************************************
SUB Scroll (FromX, FromY, ToX, ToY, Dir)
*****************************************************************************
Written by me.

Description: Scrolls a boxed in section of text up/down.

FromX,FromY: Beginning Upper-Left LOCATE Coordinates.
ToX,ToY    : Ending Lower-Right LOCATE Coordinates.
Dir	   : Dir = 1 then scrolls Up, Dir = 0 scrolls Down.

Speed     : 1 to 4
Usefulness: 5
Gerne     : Multiple/Text-Based
Efficiency: 4
ErrorHandl: NO
Cooperates: 
Requires  : 

Example:
....
FOR n = 1 TO 23
  PRINT STRING$(80, CHR$(64 + n)
NEXT

CALL Scroll(10, 10, 16, 20, 0)
....


*****************************************************************************
FUNCTION SeedStr$ (Text$, ToAdd$, Many, Opt)
*****************************************************************************
[Seed String]
Written by me.

Description: Returns the Text$ Padded w/ a string in different maners.

Text$	: The string to seed.
ToAdd$	: The string to seed w/.
Many	: The number of ToAdd$ strings to seed w/.
Opt	: The optional operator:
		0 : seeds to either side of String. 
		1 : seeds to left side of String.
		2 : seeds to right side of String.
		3 : seeds inside of String every other charactor.
		i.e 0 : SeedStr("Jim", "*", 3, 0) = "***Jim***"
		i.e 1 : SeedStr("Jim", "*", 3, 1) = "***Jim"
		i.e 2 : SeedStr("Jim", "*", 3, 2) = "Jim***"
		i.e 3 : SeedStr("Jim", "*", 3, 3) = "J*i*m*"

Speed     : 10
Usefulness: 7
Gerne     : Multiple
Efficiency: 10
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
 PRINT SeedStr("This is spaced cool, eh?", " ", 1, 3)
....

*****************************************************************************
FUNCTION SpecFT$ (arg$, from, To$)
*****************************************************************************
[Special From (left) To (Right) ...]
Written by me.

Description: This is exactly like Func GetArgFT, only it stops searching if
	     a non-numeric value is found. Main use of SpecFT is for use
	     of other Subs include w/ Subs.BAS
(See Func GetArgFT for Variable Libs, and stats)

    
Example:
....
i.e: a$ = SpecFT("Data 867a1", 6, "1")
     a$ then equals "867"
....

*****************************************************************************
FUNCTION Squeeze$ (Text$, Sqz$)
*****************************************************************************
ReWritten by me.

Description: Returns the clipped string of more than one of the 
             given charactor.

Text$	: String to search.
Sqz$	: The string to clip if doubled in a row.

Speed     : 10
Usefulness: 7
Gerne     : Multiple
Efficiency: 10
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
i.e.: a$ = Squeeze("Hey      Now      This    Is   good !", " ")
      a$ then equals "Hey Now This Is Good !"
....

*****************************************************************************
SUB StoreFiles (FileType$, Array$())
*****************************************************************************
Written by me.

Description: Using FileType$, StoreFiles saves that type of files into
	     the given array.

FileType$: The type of files and path .. i.e. "a:\*.WAD"
Array$	 : A single dimentioned array to hold the file names.

Speed     : 5 (variuos)
Usefulness: 10
Gerne     : Multiple
Efficiency: 10
ErrorHandl: Yes
Cooperates: Func POOA
Requires  : 

Example:
....
 DIM SHARED Files$(100)
 
 CALL StoreFiles("*.BAS", Files$()) 
 Pick$ = POOA(3, 3, 5, 100, 7, 1, 15, File$())
 PRINT "You picked "; Pick$
....

*****************************************************************************
SUB Strip (com$, stp$, Array$())
*****************************************************************************
Written by me.

Description: Splits up a string into an array geting segments 
             between a given charactor.

com$	: The string to Strip.
Stp$	: The charactor to end an element when reached.
Array$	: The single dimentioned array to store each stripped element into.

Speed     : 9
Usefulness: 10
Gerne     : Multiple
Efficiency: 9
ErrorHandl: No
Cooperates: COMMAND$
Requires  : 

Example:
....
  Syntax: 
  Strip "Jim bob bill joe", " ", A$())
  a$(1) then equals "Jim"
  a$(2) then equals "bob"
  a$(3) then equals "bill"
  a$(4) then equals "joe"
....

*****************************************************************************
SUB TextBox (xcord, ycord, Xover, Yover, ForeCol, BackCol)
*****************************************************************************
Written by me.

Description: Draws a box using ascii charactors.

xcord,ycord: Top left LOCATE start box coordinates.
XOver,YOver: Bottum Right LOCATE end box coordinates.
ForeCol    : Foreground colour of the box rim.
ForeCol    : Background colour of the box and the box rim.

Speed     : 9
Usefulness: 8
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: No
Cooperates: POOA
Requires  : 

Example:
....
 CALL TextBox(5, 6, 10, 12, 15, 1)
....

*****************************************************************************
SUB TextCirc (x, y, rad, Xoffset, Yoffset, Col, inc AS SINGLE, Char$)
*****************************************************************************
[Text Circle]
Written by me.

Description: Draws a circle on the screen using an ascii charactor.
		 Note: It is twice as fast if ascii charactor is POKED on the
		 screen, but you then lose color, and different screen modes.

x, y	 : LOCATE coordinates of center of circle.
rad	 : Radius/Size of circle to be drawn. And is clipped if outside Maxs's.
Xoffset: Value used to skew the size of the circles x value to make it oval.
Yoffset: Value used to skew the size of the circles y value to make it oval.
Col	 : Color of the ascii charactor to be printed.
inc	 : Step incrementer. Use to control resolution of circle.
Char$	 : Charactor to construct the circle with.

Speed     : 9
Usefulness: 8
Gerne     : Multiple/Text-Based
Efficiency: 10
ErrorHandl: Yes
Cooperates: 
Requires  : 

Example:
....
  CALL TextCirc(12, 40, 4, 0, 0, 15, .9, CHR$(219))
....
*****************************************************************************
FUNCTION TextPoint (FromX, FromY, ToX, ToY)
*****************************************************************************
Written by me.

Description: Returns Boolian if there is text inside the box coordinates.

All Variables are LOCATE Box coordinates.

Speed     : 6 (variuos)
Usefulness: 6
Gerne     : Multiple/Text-Based
Efficiency: 7
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
 IF TextBox(1, 1, 23, 80) THEN CLS
....

*****************************************************************************
FUNCTION UsedMem$ (File$) STATIC
*****************************************************************************
[Used Memory]
Written by me.

Description: Returns a string of the number of bytes used up by File$.

File$	: File path and type. . . i.e. "c:\*.EXE"

Speed     : 5 (variuos)
Usefulness: 5
Gerne     : Multiple/Text-Based
Efficiency: 8
ErrorHandl: No
Cooperates: 
Requires  : 

Example:
....
  PRINT "Bytes used by BAS files in this dir:"; UsedMem("*.bas")
....
