                             Genral Info
                                
   Simpwin9 is a text graphic orentated Turbo c utilitie. The basic system 
used is file allocation with a static 4k buffering system. This system 
achieves a small static ram usage with vertualy unlimited capacity. Litraly 
thousands of windows, menus, and forms can be used and the libary will 
remain a static 4k ram usage. The libaries are small, ranging from less 
than 13k to max 14k for the large libary. All fungtions return 0 on success 
and 1 on failer except cursor hide/show.
   MOU105 and VGAC.COM are included in the package. MOU105 is a true graphic
mouse cursor libary for text graphics in c. It has some quarks (see Quarks)
but seems to work with no failer. VGAC.COM is a public domain font changer
with 8 fonts. I have writen the libary to be a stand alone from these and
can be use without them.
  Simpwin9 libaries were compiled on a 386 clone using Turbo C 2.0.
Coprosseser emulation was used.
  SKDEF.H is the special key bios codes (F, ALT, PageUP/DN, CURSOR) and 
should be included if these are to be used.
  Stut9 is a on line help and tutorial studey code that can be run in
shell from the compiler. All of this documitation can be viewed from it
with full menuing selection.


I will be avalible for tech support at this address:
     
           Bruce R. O'Banion
           424 Vine St.
           Modesto CA. 95351
       
           Phone: 209-529-6240  (24hr answer machine)
     
Or leave me a note on Prodigy: XETF29A
       
Or on the internet xetf29a@prodigy.com

                         DISCLAIMER - AGREEMENT

      Users of Simpwin9 must accept this disclaimer of warranty:
   Simpwin9 is supplied as is.  The author disclaims all
   warranties, expressed or implied, including, without limitation,
   the warranties of merchantability and of fitness for any purpose.
   The author assumes no liability for damages, direct or conse-
   quential, which may result from the use of Simpwin9."
 
      Simpwin9 is a "freeware program" and is provided at no charge
   to the user.  Feel free to share it with your friends, but please 
   do not give it away altered in any way.  
 
      Anyone distributing Simpwin9 for any kind of remuneration must
   first contact Bruce O'Banion for authorization.
 
   Simp_window() is the basic window fungtion. It dose not mask so what is
on screen a the time of call is lost. If you study the simptut code you will
see that I use simp_window() as a base window and with mouse along with a 
screen save. 
   The parameters for this fungtion are the corner coordinates left, top,
right, bottom. The boarder and shadow styles are next. Then come the text
attributes foreground and back ground. Next is the shadow location. After
that come the shadow attributes fore and back. Last the boarder character
if needed and the fill character.
   The window coordinates are from 1 to 80 for left and right and 1 to 25
for top and bottom. Boarder styles are 0 through 5: 0 for no boarder, 1 for
single, 2 for double, 3 and 4 for single/double line, and 5 for any ASCII
character boarder. Shadow style are 0 through 3: 0 for no shadow, 1 for
wide shadow, and 3 for narrow shadow.
   Color attributes for text and shadows are standard text colors 0 to 15.
Colors 8 to 15 in the back ground set the blink bit. The shadow locations
are 1 to 4 (see simpwn12.h for defines). And last the borader and fill
characters are any ASCII code 0 through 255.

   Example:

      simp_window(20,5,60,20,5,2,14,4,1,8,0,170,190);

      This will display a window 40 x 15 with a boarder of character 190 with
      a narrow shadow with yellow text on a red bacground.
   Popup_window() is the basic mask window call. It has the same parameteres
as simp_window() except for the first one and that is the record or file
number. This call will not error if the file number is greater than the
number of windows initialized but after the maxed initialized they must be
called in sequince or the wrong file number will be saved. Once called it
can be called then in any sequince. Popup_window() should be called only
for windows that are not made either by makefile or make_window() since it
will change the parameters saved for that window. The file number can be 
defined as a name (est. QUIT_WIN) using a define statement.
         
Example:

   Popup_window(31,20,10,60,12,1,2,7,0,1,8,0,0,0);

   This will display window 31 that is 40 x 3 with a single boarder, narrow
   shadow and lightgray characters on a black background.
   Uncall_window() restores the screen info save by the last call to call_
window() for a particular file number. It has like call_window() only one
parameter the file number.
             
Example:

   uncall_window(4);

   This will uncall window 4.
    Get_string is a standard string entery. It has backspace with no cursor
or insert. It is masked and formated. It's parameters are:pointer to string,
a mask string, a format string, X and Y coordenets, Mask strip switch, and
default display switch. The mask string is any ASCII character for and
space for a mask, The format string is made up of spaces where masked and
format characters (see edit_string()) for enteries. Both mask and format
must be concestent for proper fungtion. Error detection is in the debug lib
but masked characters and enteries must match. The srip switch is ON for
stripping the mask form entery and 0 for the masks inclution in entery. The
default display switch is ON or 1 to display what is in the enter string and
OFF or 0 for no display and mask display. The x y coordinet are for display
placement in the current window.
         
Example:

   char name[10];
       
   get_string(name,"         ","uAAAAAAAA",3,3,1,1);

   This call will display the containts of name at coordinates 3, 3, mask
all but alph characters and force an uppre case on the first entery. It will
strip the mask and if any character but backspace is hit first clear name.
It will exit on esc with no data change or return.

   Format characters:                     
                                                   
*  any ascii character                   
A  alphanumaric character                
U  upper case alpha only                 
L  lower case alpha only                 
u  forced upper case alpha               
l  forced lower case alpha               
9  digits 0 - 9 only                                      
#  digits 0 - 9 and -
F  digits 0 - 9, -, . only               
e  digits 0 - 9, -, ., e, E only
h  digits 0 - 9, a,b,c,d,e.f,A,B,C,D,E,F,- only
o  digits 0 - 7,- only
T  t, T, f, F only
Y  y, Y, n, N only
   Clear_window() will clear and fill the current window with the fill   
character. This can be any ASCII code character.
   
Example:   
   clear_window(0);
    
   This will fill the current window with null or space characters leaving  
the boarder untouched.

   Hide_cursor turns the IBM cursor off.
   
   Example:

     hide_cursor();
    
     This will hide or turn of the IBM cursor display.

   Hide_cursor turns the IBM cursor off.
   
   Example:

     hide_cursor();
    
     This will hide or turn of the IBM cursor display.

   Write_window() is like printf but has positioning parameters. 
   
Examlpe:

   char name[20] = "bruce";
   
   write_window(3,5,"My name is %s",name);
   
   This will display 'My name is bruce' at 3,5 of the current window.

   Read_text() will display a text file in the current window trunkating 0,
wraparound 1 (both with page up/dn), wait for key 2, and display and exit 3.

Example:

   read_text("mou.doc",1);
    
   This will display the text of mou.doc page by page int the current
window with wraparound.

   Save_screen() will save the current screen to screen save file at the
designated record number.
  
Example:

   save_screen(2);
   
   This saves the current screen to record number 2 in screen.dat.

   Load_screen is the other half of screen save and works the same.
   
Example:   
   
   load_screen(2);
   
   This will load the screen record 2 from screen.dat and display it.

   Init_window() initializes the temp files and mallocs the buffering. It's
parameters are the number of windows, screen saves, and the drive to 
use (a ram disk can be used).
   
Example:

   init_window(20,5,"D");
   
   This will init the utilitie to use 20 windows, 5 screen saves, and
   drive D.

   Uninit_window() will delete the temp files and free any malloced buffers.
   
Example:

   uninit_window();   

   This call frees malloc memory and removes the temp files.
