

           Maintain Names, Addresses, Phone Numbers, Contacts, ...


  names.exe is a quick and easy way to maintain small (240 record) files
  containing names, addresses, phone numbers and other associated information.

  Enter the following on the DOS command line:

       names filename <Enter>

  Select a command (QUERY, etc.) by using the arrows, mouse, tab or spacebar,
  or by entering the first letter of the command ('Q' for Query, etc.).

  Press <Enter> or the left mouse button to execute the selected command.

  Start a new file by initially selecting 'ADD' to add new records. Enter
  record key, press <Enter>, enter other data if required, and press <Esc>.

  You can delete a record if there is less than 3 records left in a file.

  Keys to know:

       <Insert>       Inserts a space.

       <Ctrl-Insert>  Toggles 'character insert/delete mode'.

       <F3>           Cancels an ADD, UPDATE or DELETE operation.

       <Esc>          Completes the operation.

       <F1>           Help key (same as the right mouse button)
                      Use when entering data in the form.

  The mouse or arrow keys can be used interchangably.

  When a partial key is entered during QUERY, a pop-up window allows you
  to browse existing record keys using the arrow keys or mouse, and to
  select one by pressing <Enter> or the left mouse button.

  The names.exe program was developed using C Easy, for Easy C Programming.
  It was written to demonstate a SIMPLE C Easy QUERY program, but also has
  practical value to anyone who needs to maintain personal phone directories,
  contact lists, greeting card lists, etc..

  This program was developed within a few hours - thanks to using C Easy.

  Included is the names.c source code and other related programming objects.
  This program provides a skeleton, or template, for building similar database
  front-end screens. It can easily adapted to database managers such as
  Novell's btrieve - many C Easy btrieve applications have been developed-,
  Faircom's C-tree, Oracle's imbedded SQL, Mark Lang's CRDE engine, etc..

  Would YOU like to write programs the 'C Easy Way', to QUICKLY and EASILY
  produce powerful C applications?  You can, by downloading C Easy from
  CompuServe, America Online or Delphi.

  C Easy shareware is available in the CompuServe IBMPRO C/C++ library,
  the Americ Online Development C Programming library, and the Delphi
  PC Compatible C/C++ library. C Easy requires only DOS, but also runs well
  under windows in full-screen mode.

  You will need to download two files:

       ceasy.zip (containing C Easy program object building utilities).

       Either ceasyb.zip or ceasym.zip (containing C Easy function library).

  The ceasyb.zip library file supports Turbo C/C++ or Borland C/C++.

  The ceasym.zip library file supports Microsoft C600 or C700 C/C++.

  For more information on C Easy, contact R C Call via CompuServe 74473,1304,
  or call (407) 862-4921

  For America Online or Delphi, contact 'ceasy'.

  GET STARTED TODAY!

================================================================================
















     ͻ
       
      ۲ 
      ۲ 
      ۲Ŀ 
      ۲ ͻ  
      ۲  C Easy Software, for Easy C Programming   
      ۲ ͼ  
      ۲       Product of RC Computer Systems         
      ۲        Version 1.0 Release 10/01/94          
      ۲                                              
      ۲ Register via CompuServe Shareware 70006,256  
      ۲          Registration ID # 3132              
      ۲                Fee $45.00                    
      ۲ٱ 
      ۲ 
      ۲ 
       
     ͼ


                                                              
                                                              
                                                              
                                                              
                
                                                         
               Registered Users of C Easy receive the   
                   most current version of C Easy          
                        in 3.5 diskette form.           
                                                           
               Support provided by RC Computer Systems     
                     via Compuserve 74473,1304.            
                                                        
                        Phone (407) 862-4921            
                                                           
             












                     ͻ
                      Software License Agreement 
                     ͼ
                     
        Ŀ
         RC Computer Systems and the Author EXPRESSLY DISCLAIM 
         ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING,      
         WITHOUT LIMITATION, WARRANTIES OF MERCHANTABILITY     
         OR FITNESS FOR ANY PARTICULAR PURPOSE.                
                                                               
         C Easy software is furnished "AS IS" without warranty 
         of any kind, express or implied. In no event will     
         RC Computer Systems or the Author be liable for any   
         DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL  
         OR OTHER DAMAGES, including any loss of profits, that 
         may result in connection with using C Easy Software.  
                                                               
         Furthermore, in no event will RC Computer Systems or  
         the Author be liable for damages in excess of the     
         registration fee of $45.00.                           
        

                       ͻ
                        Introduction to C Easy 
                       ͼ
           Ŀ
            C Easy is a powerful yet extremely easy way to  
            apply the C programming language in developing  
            outstanding DOS applications that can also run  
            in full-screen mode under Microsoft Windows.    
            Creating and 'executing' data entry forms has   
            never been easier.                              
                                                            
            Forms and graphics overlays can be built using  
            C Easy utilities called from either the C Easy  
            Menu or the DOS command line. Resulting objects 
            can be called and processed in your C programs. 
                                                            
            C Easy has been tested with Borland C/C++,      
            Turbo C/C++, Microsoft 6.0 C/C++, and Microsoft 
            7.0 C/C++ Compilers. C Easy has its own include 
            and library files, and does NOT require the     
            the include files of those compilers.           
           
                          ͻ
                           C Easy Features 
                          ͼ
          Ŀ
            Uses two button mouse (right button HELP key)  
            Extensive color control.                       
            Browse windows for scrolling and editing.      
            Easy multiple overlapping windows.             
            Pull-down menus and scroll selection bars.     
            Intelligent SELF-EXECUTING DATA ENTRY FORMS.   
            Automatic forms control and field editing.     
            Both PRE and POST USER FIELD EDITING.          
            Context sensitive field pop-up help.           
            DYNAMIC ACCESS to ALL form field attributes.   
            Drawing and painting utilities.                
            Text file editing (even fixed-length records). 
            Easy FRONT END interface to ANY DATABASE.      
            Doesn't require compiler include files.        
            Allows the programmer to maintain control:     
             - Does NOT generate C PROCEDURAL CODE.         
             - DOES generate data entry forms *.h files.    
          
                   ͻ
                    Setting up the ENVIRONMENT 
                   ͼ
        Ŀ
         When you are ready to compile C Easy programs:     
                                                            
           For Microsoft C compilers, download 'ceasym.zip' 
           For Borland C compilers, download 'ceasyb.zip'   
                                                             
        Ĵ
         Create directory C:\CEASY and put all C Easy files 
         in that directory. Then enter the following:       
                                                            
           CD C:\CEASY <Enter>                              
           CEASY <Enter>                                    
                                                            
        Ĵ
         If you always work within the CEASY directory, no  
         changes to your autoexec.bat file are necessary.   
         However, to run C Easy from a different directory, 
         modify your autoexec.bat file as follows:          
                                                             
            Add environment variable:                      
                                                           
               SET CEASY=C:\CEASY                        
                                                          
            Append to your path variable:                
                                                            
               C:\CEASY                                    
                                                            
         If you wish to have a private directory for the    
         files that you create (so that you are not limited 
         to your current working directory), also make the 
         following autoexec.bat modification:              
                                                            
         Add environment variable:                          
                                                            
             SET MYCEASY= your private C Easy directory.    
                                                            
         If you have more than one private directory, you   
         can select one by executing SET MYCEASY=... from   
         the DOS command line before running C Easy.        
                                                            
        Ĵ
                                                             
         NOTE: For Microsoft compilers add:                 
                                                            
               SET LIB=C:\C700\LIB  or                      
               SET LIB=C:\C600\LIB                          
        
















                           ͻ
                            Running C Easy 
                           ͼ
           Ŀ
            From the DOS command line enter:                
                                                            
               CEASY <Enter>                                
                                                            
            From Microsoft Windows Program Manager:         
                                                            
                 Run CEASY <Enter>                          
                                                            
            When using the mouse, C Easy runs as a full-    
            screen application under Microsoft Windows.     
                                                            
            To add C Easy to Windows Applications Group:    
                                                            
                 1. Copy CEASY.ICO and CEASY.PIF to your    
                    Windows directory.                      
                                                            
                 2. Add CEASY.EXE to the Applications Group 
                    and select the ceasy.ico icon.          
                                                            
            To run Microsoft Windows from C Easy:           
                                                            
                 1. Select Other from the C Easy menu.      
                                                            
                 2. Select the MS-DOS command line.         
                                                            
                 3. Enter WIN <Enter>.                      
           













                         ͻ
                          Using the Keyboard 
                         ͼ
     Ŀ
      Key                     Function                            
                                                       
                                                                  
      Insert                  Insert a space at the cursor        
                              position in the line, OR            
                              insert a character when in          
                              INSERT Mode.                        
                                                                  
                              When in PAGE Mode, insert character 
                              in paragraph instead of line.       
                                                                  
      Ctrl Insert             Toggle INSERT Mode On/Off.          
                                                                  
      Ctrl Page Up            Toggle PAGE Mode On/Off.            
                                                                  
      Delete                  Delete character at the cursor      
                              position in the line.               
                                                                  
                              When in PAGE Mode, delete character 
                              in paragraph instead of line.       
                                                                  
      Left Arrow              Move cursor left, or wrap line.     
                                                                  
      Right Arrow             Move cursor right, or wrap line.    
                                                                  
      Backspace               Erase character at the cursor       
                              position in the line, and move the  
                              cursor one position left.           
                                                                  
      Ctrl Delete             Erase from cursor position to the   
                              end of the line.                    
                                                                  
                              When in PAGE Mode, erase from the   
                              cursor to the end of the screen or  
                              end of paragraph.                   
                                                                  
        Note: A Paragraph begins from current backquote and ends  
              when two consecutive backquotes are encountered.    
                                                                  
      Ctrl Down Arrow         Insert a blank line starting at     
                              cursor position.                    
                                                                  
      Ctrl Up Arrow           Delete a blank line starting at     
                              cursor position. The line being     
                              deleted must be blank, to prevent   
                              accidental loss of data.            
                                                                  
      Ctrl End                Move cursor to end of line.         
                                                                  
      Ctrl Right Arrow        Advance cursor to next string.      
                                                                  
      Page Down               Display next screen.                
                                                                  
      Page Up                 Display previous screen.            
                                                                  
      Home                    Display first screen.               
                                                                  
      End                     Display last screen.                
                                                                  
      Ctrl o                  Insert blank, starting at           
                              column 1.                           
                                                                  
      Ctrl Home               Display cursor position.            
                                                                  
      Ctrl Page Down          Toggle WORD-WRAP Mode On/Off.       
                                                                  
      Ctrl Caret (^)          Center text on line.                
                                                                  
      Ctrl t                  Set tab position                    
                                                                  
      Tab                     Advance cursor to next tab position 
                              wrap line if necessary.             
                                                                  
         Note: All tabs are cleared by pressing <Ctrl t> when     
               cursor is in column 1.                             
                                                                  
      Esc                     Terminate input. Normally terminate 
                              current input operation.            
                                                                  
      F1 thru F12             Terminate input and set global      
                              variable FUNC = 1...12.             
                                                                  
      Mouse Buttons when in Text Mode:                            
                                                                  
             Left:           Same as <Enter> key.                 
             Right:          Same as <F1> Help Key.               
                                                                  
      Mouse Motion when in Text Mode:                             
                                                                  
             Down:           Same as Down Arrow.                  
             Up:             Same as Up Arrow.                    
             Right:          Same as Forward Arrow                
             Left:           Same as Back Arrow                   
     












                         ͻ
                          Using the Mouse 
                         ͼ
        Ŀ
         The left mouse button is normally equivalent         
         to <Enter>, and the right mouse button is normally   
         equivalent to <F1> (the HELP function key).          
                                                              
         When you are prompted for a file name at the         
         C Easy menu, pressing the right mouse button pops    
         up a list of files from which to choose by using a   
         scroll selection bar.                                
                                                              
         When drawing lines, erasing or painting the          
         background/foreground colors during Make or Modify   
         a Form, the left mouse button functions as pen down  
         when pressed.                                        
                                                              
         When editing graphics during Make or Modify          
         an Overlay, the left mouse button functions as       
         brush down when pressed, and the right mouse button  
         functions as dip the brush when pressed.             
                                                              
         If a desired color does not appear on the screen     
         (for dipping), color selection (16 colors) can be    
         made by clicking the right mouse button over a black 
         portion of the screen while moving the mouse cursor. 
        

















             QUICK START - MAKE A DATA ENTRY FORM (mfm.exe)

     Ŀ
      You can create and modify a Data Entry Form that can later   
      be called and 'executed' from your C Program.                
                                                                   
      The 'Make a Form' utility provides automatic editing, mouse  
      cursor control, background/foreground colors, help messages, 
      and linkage to user-field-edit functions in your C program.  
                                                                   
      You can run this utility from the DOS command line, or from  
      the C Easy Menu as follows.                                  
                                                                   
      1. Select:                                                   
                                                                   
         Make -> 1 Make or Modify a Form -> 1 Text Mode            
                                                                   
         The right mouse button pops up the 'Edit Option Menu'.    
                                                                   
      2. Select:                                                   
                                                                   
          2 Position Cursor and Enter Text                         
                                                                   
         Use the mouse or arrow keys to position the cursor.       
                                                                   
         Enter field labels and other descriptive text.            
                                                                   
      3. Select:                                                   
                                                                   
         1 Draw Lines or Data Entry Field -> 3 Entry Field         
                                                                   
         Position the cursor and press the left mouse button while 
         the mouse. This (draws) defines the location of your      
         data entry fields (usually to the right or below labels). 
                                                                   
      4. Select:                                                   
                                                                   
         3 Draw Lines or Data Entry Field -> 1 Single Line         
                                                                   
         Position the cursor and press the left mouse button to    
         draw lines (perhaps around fields or descriptive text).   
                                                                   
      5. Select:                                                   
                                                                   
         5 Paint Background Color -> select a color                
                                                                   
         Position the cursor and press the left mouse button to    
         paint the selected color. Do not paint data entry fields. 
                                                                   
      6. Select:                                                   
                                                                   
         D Define Data Entry Fields                                
                                                                   
         Data entry fields are defined sequentially. Select a type 
         for each field. Advance to the next field by either       
         pressing 'n' or selecting 'N Next Field'.                 
         Colors shown (temporarily) identify the selected field    
         type.                                                     
                                                                   
      7. Select:                                                   
                                                                   
         0 Cancel                                                  
                                                                   
         Press <Esc> and then press 'Y' to save your form (*.frm). 
         This also saves your form is screen image form (*.scr).   
                                                                   
      8. Select:                                                   
                                                                   
         1 Test a Form                                             
                                                                   
         This is equivalent to running 'tfm.exe' from the DOS      
         command line.                                             
                                                                   
         Test ('execute') your form, by entering data and moving   
         the cursor, using either the mouse or arrow keys.         
                                                                   
         Press <Esc> to terminate data entry.                      
                                                                   
         Data entry fields are stored as line-delimited strings in 
         a text file (*.dta) having the same name as your form.    
                                                                   
      9. Repeat the above sequence to change colors, add/modify    
         fields, alter cursor control movement, change editing     
         criteria, etc..                                           
     



                  QUICK START - MAKE AN OVERLAY (mgr.exe)

     Ŀ
      You can create and modify a Graphics Overlay that can later  
      be called and processed from your C Program.                 
                                                                   
      The 'Make an Overlay' utility can be run from the DOS        
      command line, or form the C Easy Menu as follow.             
                                                                   
      1. Make -> 2 Make or Modify an Overlay -> 1 No Form          
                                                                   
         This equivalent to running 'mgr.exe'.                     
                                                                   
         Press <F1> to display/remove function key information.    
                                                                   
      2. Press <F10> for Icon Mode.                                
                                                                   
         Position the cursor to where you want an icon to appear.  
         Press various letter keys to display associated icons.    
                                                                   
      3. A paint brush color is selected by clicking right mouse   
         button while moving the cursor over any black area of the 
         screen. A color can also be selected by pressing the right
         mouse button (dipping the brush) when the cursor is over  
         the desired color.                                        
                                                                   
      4. Press <F4> for 24x24 pixel brush size.                    
                                                                   
         Hold down the right mouse button and move mouse to paint. 
                                                                   
         Toggle <F11> to change the brush shape to square or round.
                                                                   
      5. Press <F8> and then press the right mouse button to pop   
         up a list of token (.tok) files.                          
                                                                   
         Select (capture) a token by scrolling the token (.tok)    
         file names. Select one by pressing the left mouse button. 
                                                                   
      6. Position the cursor and press left mouse button to insert 
         the captured token into your overlay. Hold the left mouse 
         down while moving the mouse to repeat insertion.          
                                                                   
      7. Press <F7> to exit 'move token mode'.                     
                                                                   
      8. Press <F9> to cut an image from your overlay.             
                                                                   
         Click the left mouse button the top left corner of image. 
         Then move the mouse to the lower right corner of image    
         and it again. Finally, click the right mouse button and   
         press <F7> to capture the image as a token.               
                                                                   
      9. The captured image can be inserted by moving the mouse    
         cursor and pressing the left mouse button - as in 6 above.
                                                                   
         You can save a captured image as a token by pressing <F8> 
         and entering the name of a new token (*.tok) file.        
                                                                   
     10. Press <F7> to exit the 'move token mode'.                 
                                                                   
     11. Press <Esc> and press 'Y' to save your overlay (*.ovl).   
     

    NOTE: Forms (*.frm) and Overlays (*.ovl) can also be viewed by
          running 'vfm.exe' from the command line.

                   ͻ
                    The C Easy Development Environment 
                   ͼ
        Ŀ
         The C Easy Menu is the focus of the C Easy program        
         development environment. From this menu you can call      
         all of the C Easy utilities for building and testing      
         program objects. Most utilities can also be called from   
         the command line.                                         
                                                                   
         The C Easy Menu, including horizontal menu bar processing,
         vertical scroll bar selection, and pull-down window       
         browsing, was developed using the C Easy function library.
                                                                   
         The logical structure of the C Easy Menu follows:         
                                                                   
                 Make                                              
                                                                  
                         1 Make or Modify a Form                   
                                                                   
                                 1 Text Mode                       
                                                                   
                                 2 Graphics Mode                   
                                                                   
                         2 Make or Modify an Overlay               
                                                                   
                                 1 No Form                         
                                                                   
                                 2 With Form                       
                                                                   
                                 3 Combined                        
                                                                   
                                                                   
                         3 Combine a Form and Overlay              
                                                                   
                                 1 No Background Color             
                                                                   
                                 2 Add Background Color            
                                                                   
                 View                                              
                                                                  
                         1 A Form                                  
                                                                   
                                 1 Text Mode                       
                                                                   
                                 2 Graphics Mode                   
                                                                   
                         2 An Overlay                              
                                                                   
                         3 A Form and Overlay                      
                                                                   
                         4 A Combined Form/Overlay                 
                                                                   
                         5 The Aggregate File                      
                                                                   
                         6 A BMP File                              
                                                                   
                         7 A Form Screen Image                     
                                                                   
                 Aggregate                                         
                                                                  
                         1 Combine with the Aggregate File         
                                                                   
                                 1 A Form                          
                                                                   
                                 2 An Overlay                      
                                                                   
                                 3 A Combined Form/Overlay         
                                                                   
                                 4 A BMP File                      
                                                                   
                         2 Copy the Aggregate File                 
                                                                   
                                 1 To an Overlay                   
                                                                   
                                 2 To a Combined Form/Overlay      
                                                                   
                                 3 To a BMP File                   
                                                                   
                         3 Modify the Aggregate File               
                                                                   
                         4 Clear the Aggregate File                
                                                                   
                         5 Translate Aggregate Colors              
                                                                   
                 Test                                              
                                                                  
                         1 Test a Form                             
                                                                   
                         2 Compile a Program                       
                                                                   
                                 1 Standard Compile                
                                                                   
                                 2 Custom Compile                  
                                                                   
                         3 Run a Program                           
                                                                   
                         4 Call Example Menu                       
                                                                   
                 Edit                                              
                                                                  
                         1 Edit a Program                          
                                                                   
                         2 Edit any Text File                      
                                                                   
                         3 Create a Dimensioned File               
                                                                   
                         4 Create a Record File                    
                                                                   
                         5 Create a New C Program                  
                                                                   
                 Help                                              
                                                                  
                         1 Making Forms                            
                                                                   
                         2 Making Overlays                         
                                                                   
                         3 C Easy Files                            
                                                                   
                         4 The C Easy Keyboard                     
                                                                   
                         5 C Easy Editor Commands                  
                                                                   
                         6 Functions: Alphabetical                 
                                                                   
                         7 Functions: by Category                  
                                                                   
                         8 Functions:  Description                 
                                                                   
                         9 Variables and Constants                 
                                                                   
                 Other                                             
                                                                  
                         1 DOS Command                             
                                                                   
                         2 Change Colors                           
                                                                   
                         3 Edit Palette                            
                                                                   
                         4 Display Palette                         
                                                                   
                         5 Save Palette                            
                                                                   
                         6 Load Palette                            
                                                                   
                         7 Mouse Response                          
                                                                   
                         8 Exit C Easy                             
                                                                   
                                                                   
                   The Make Form Submenu                           
                                              
                                                                   
                 1 Draw Lines or Data Entry Field                  
                                                                   
                         1 Single Line                             
                                                                   
                         2 Double Line                             
                                                                   
                         3 Entry Field                             
                                                                   
                         4 light dots                              
                                                                   
                         5 intermediate dots                       
                                                                   
                         6 heavy dots                              
                                                                   
                         7 solid block                             
                                                                   
                         8 small block                             
                                                                   
                         9 single dot                              
                                                                   
                 2 Position Cursor and Enter Text                  
                                                                   
                 3 Erase Color or Lines                            
                                                                   
                         1 Erase Background Color                  
                                                                   
                         2 Erase Foreground Color                  
                                                                   
                         3 Erase Lines                             
                                                                   
                                                                   
                 4 Make Corner, Edge or Intersect                  
                                                                   
                         1 Single Line                             
                                                                   
                         2 Double Line                             
                                                                   
                 5 Paint Background Color                          
                                                                   
                         1-9: Backgound Color                      
                                                                   
                 6 Paint Foreground Color                          
                                                                   
                         1 Light Color                             
                                                                   
                                 1-8: Light Foreground Color       
                                                                   
                         2  Dark Color                             
                                                                   
                                 1-8: Dark Foreground Color        
                                                                   
                 7 Make a Box                                      
                                                                   
                         1 Single Line                             
                                                                   
                         2 Double Line                             
                                                                   
                 8 Remove the Box                                  
                                                                   
                                                                   
                 9 Control Screen Backgound                        
                                                                   
                         1 Move Backgound with Text                
                                                                   
                         2 Keep Backgound Stationary               
                                                                   
                         3 Change Screen Color                     
                                                                   
                                 1-8: Screen Background Color      
                                                                   
                         4 Reserved Function                       
                                                                   
                 D Define Data Entry Fields                        
                                                                   
                         Right Mouse Button pops up the field      
                         template containing the logical and       
                         visual attributes of the field being      
                         defined.                                  
                                                                   
                         Press <Page Down> to enter a help message 
                                                                   
                         Press <F2> to pop up submenu:             
                                                                   
                                 1 Intialize                       
                                                                   
                                 2 Insert                          
                                                                   
                                 3 Delete                          
                                                                   
                     The Define Data Entry Field Submenu:          
                              
                                                                   
                         1 Text                                    
                                                                   
                         2 Text Upper Case                         
                                                                   
                         3 Num Left Just                           
                                                                   
                         4 Num Right Just                          
                                                                   
                         5 Num Dec Aligned                         
                                                                   
                                 1 Left to Right Entry             
                                                                   
                                 2 Right to Left Entry             
                                                                   
                         6 Num Edit Money                          
                                                                   
                         7 Date MM/DD/YY                           
                                                                   
                         8 Phone Number                            
                                                                   
                         9 Soc Sec Number                          
                                                                   
                         X Password                                
                                                                   
                         N Next Field                              
                                                                   
                         P  Previous Field                         
                                                                   
                                                                   
                       The Make Overlay Submenu                    
                                           
                                                                   
         This submenu is popped up by pressing <F1>. It displays   
         the function keys F2 thru F12 that are used in making     
         and modifying graphic overlays, tokens and images.        
                                                                   
                 F2 Black Color1                                   
                                                                   
                 F3 Pixel  (size)                                  
                                                                   
                 F4 24x24  (size)                                  
                                                                   
                 F5 48x48  (size)                                  
                                                                   
                 F6 SIZE  96x96 (size and multiplier)              
                                                                   
                 F7 Get Token  (from screen)                       
                                                                   
                 F8 Disk  (<F1> pops up *.tok list)                
                                                                   
                 F9 Set W/H  (width & height)                      
                                                                   
                 F10  Font or Icon                                 
                                                                   
                 F11  Square or Round  (paintbrush)                
                                                                   
                 F12  Ignore Black (when reading *.tok)            
                                                                   
             Note 1: Colors (1-15) can be selected by clicking     
                     the right mouse button while moving the       
                     mouse over any black area on the screen,      
                     or by clicking the right mouse button         
                     (dipping the brush) when the mouse cursor     
                     is over the desired color on the screen.      
                                                                   
             Note 2: Perform the following steps to capture a      
                     a screen (image) token:                       
                                                                   
                      1. Press the left mouse button at            
                         the upper left corner of the image.       
                      2. Press it again at the lower right         
                           corner of the image.                    
                                                                   
                        3. Press the left mouse button.            
                                                                   
                        4. Press <F7>.                             
                                                                   
                       The captured image (or a token read         
                       via <F8>) can be pasted anywhere in the     
                       screen by moving to the desired position    
                       and pressing the right mouse button.        
                                                                   
               The captured image can be saved as a token (*.tok)  
               or an image (*.ima) by pressing <F8> and entering   
               entering a file name. If the file name extension is 
               not given, .tok is assumed.                         
                                                                   
        




















                      ͻ
                       Compiling C Easy Programs 
                      ͼ
         Ŀ
          Compiler include files are not required. The only    
          include files needed to compile a C Easy program     
          are ceasy1.h and ceasy2.h and any *.h files that     
          may be generated by 'Make/Modify a Form' (mfm.exe).  
                                                               
          Only ten Borland C Compiler files are required:      
                                                               
                     1. tcc.exe (or bcc.exe)                   
                     2. tlink.exe                              
                     3. dpmiload.exe                           
                     4. dpmi16bi.ovl                           
                     5. dpmimem.dll                            
                     6. dpmires.exe                            
                     7. c0l.obj                                
                     8. emu.lib                                
                     9. mathl.lib                              
                    10. cl.lib                                 
         Ĵ
          The Borland C Easy library is named ceasyb.lib and   
          the Microsoft C Easy library is named ceasym.lib.    
                                                               
          The default C Easy compile.bat file is set up for    
          Turbo C/C++. You should change this file as follows  
          if you are using Borland C/C++, Microsoft C700 or    
          Microsoft C600 Compilers:                            
                                                               
          Four compiler batch files are supplied:              
                                                               
             1. tcompile.bat, for Turbo C/C++.                 
                                                               
             2. bcompile.bat, for Borland C/C++.               
                                                               
             3. 7compile.bat, for Microsoft C700 C/C++.        
                                                               
             4. 6compile.bat, for Microsoft C600 C/C++.        
                                                               
          Copy the appropriate batch file for your default     
          C compiler to 'compile.bat', and the one for your    
          secondary batch file to 'custom.bat'.                
                                                               
         ͳ
          A C Easy program template (stub) is generated by:    
                                                               
            Edit                                               
                                                               
              5 Create a New C Program                         
                                                               
              The default .c program template is generated     
              unless you use the .cpp file name extension.     
                                                               
          The C Easy .c Program Template (stub):               
                                                               
              #include "\ceasy\ceasy1.h"                       
              #include "\ceasy\ceasy2.h"                       
              int main()                                       
               {                                               
                start_program();                               
                                                               
                stop_program();                                
                return(0);                                     
               }                                               
                                                               
          The C Easy .cpp Program Template (stub):             
                                                               
              #include "\ceasy\ceasy1.h"                       
              #include "\ceasy\ceasy2.h"                       
              extern   "C"                                     
              {                                                
                start_program(),                               
                stop_program();                                
              }                                                
                                                               
             int main()                                        
              {                                                
               start_program();                                
                                                               
               stop_program();                                 
               return(0);                                      
              }                                                
                                                               
          If you use your own custom compile.bat:              
                                                               
             Test                                              
                                                               
                2 Compile a Program                            
                                                               
                   2 Custom Compile                            
                                                               
                                                               
          A C Easy program can be edited by:                   
                                                               
             Edit (rxx.exe)                                    
                                                               
                1 Edit a Program                               













                         ͻ                         
                           C Easy Forms                          
                          ͼ                         

         Ŀ 
          A C Easy form (*.frm) can be created and modified   
          by selecting Make or Modify a Form, or by entering  
          mfm at the DOS command line.                        
                                                             
          C Easy forms can be displayed, or executed as      
          'self-executing' data-entry forms. C Easy forms    
          are stored as text files.                          
         









                        ͻ
                         C Easy Overlays 
                        ͼ

         Ŀ
          C Easy overlays (*.ovl and *.fvl) are full-screen 
          graphics displays, created by selecting Make or   
          Modify an Overlay, or by entering mgr at the DOS  
          command line.                                     
                                                            
          Overlays are stored as color planes, not pixels.  
         










                            ͻ
                             BMP Files 
                            ͼ

         Ŀ
          BMP (*.bmp) files are 16 color Microsoft Windows 
          Bit Mapped graphics files with dimensions not    
          exceeding 640 pixel wide and 480 pixel deep.     
          BMP files are stored in reverse pixel row order. 
         












                        ͻ
                         The Aggregate File 
                        ͼ

         Ŀ
          The Aggregate, a full-screen graphics file called 
          imagefile, is stored as pixels (as opposed to     
          color planes). It is used for combining forms,    
          overlays, and other files in order to produce     
          composite files; and also used as an intermediate 
          file when converting *.bmp files to *.ovl files.  
         










                        ͻ
                         Token and Image Files 
                        ͼ

        Ŀ
         C Easy token (*.tok) and image (*.ima) files can be    
         created and modified while building C Easy overlays.   
                                                                
         Token files are stored as pixels, image files as color 
         planes. Token files allow flexible color control.      
         For example, black pixels can be ignored when reading  
         and displaying a token. Image files do not allow       
         color control, but are displayed much faster.          
        








                            ͻ
                            Palette Files 
                           ͼ

        Ŀ
         C Easy palette (*.pal) files contain the RGB color 
         values for the 16 color screen palette.            
         When a C Easy program runs, it loads the screen    
         color palette from current.pal. However, the       
         program can override this selection by loading     
         a specific palette (*.pal) file.                   
                                                            
         Palettte files can be created or modified by:      
                                                            
                 Other                                      
                                                            
                    3 Edit Palette                          
                     4 Display Palette                       
                    5 Save Palette                          
                     6 Load Palette                          
        

                         ͻ
                          The Translate File 
                         ͼ

         Ŀ
          In addition to being able to create and load custom   
          palettes, you can edit a file called translate, which 
          allows you to map the 16 colors (0-15) to different   
          values. This is sometimes useful for converting BMP   
          files produced by Windows.                            
         











                          ͻ
                           The Response File 
                          ͼ

             Ŀ
              This text file sets the mouse sensitivity  
              level from 1 thru 7, where 1 represents    
              maximum mouse responsiveness.              
             













                         ͻ
                          The C Easy Editor 
                         ͼ
       Ŀ
      You can use your own editor to build C Easy programs, 
         or use the C Easy text editor 'rxx.exe'.              
         The C Easy editor enables you not only to create and  
         modify conventional text files, but also to create    
         *.dim (dimensioned), and *.rcd (record structured)    
         text files. These are distinguished by an eight       
         character header:                                     
                                                                
              !T!hhwwW        dimensioned text file.            
                              hh = screen window height,        
                              ww = screen window width.         
                              W = draw a window frame.          
                                                                
              !B!hhwwW        record structured file.           
                              File is stored as fixed length    
                              blocks, and a given record is     
                              at a given displacement (offset). 
        ͵
Editor Commands                                       
  ͵
                                                                
          From the Edit Window (while editing text):            
                      
                                                                
            Ctrl A        Mark beginning of text to be cut.     
            Ctrl Z        Mark end of text and cut.             
                                                                
            F1            Help key.                             
                          (Same as mouse right button)          
            F2            Save remainder of file.               
            F3            To editor command line.               
            F4            Save current page.                    
                                                                
          From the Edit Command Line:                           
                                     
                                                                
            /any text     Search for "any text".                
                          (and advance edit line)               
            C#            Cut # lines from text at edit line.   
            Ca#           Cut # lines from text at edit line.   
                          and append to cut.                    
            Cb            Cut number of lines equal to edit     
                          window height.                        
                                                                
            Down Arrow    Move edit line down.                  
            Up Arrow      Move edit line up.                    
                                                                
            Ic            Insert cut into edit window at edit   
                          line.                                 
            Ic#           Insert # lines from cut, starting     
                          from the cut line into the edit       
                          window at the edit line.              
            Ib            Insert number of blank lines equal to 
                          edit window height into edit window.  
                                                                
            Rc!           Replace text lines with cut.          
            Ec            Erase (clear to spaces) cut buffer.   
            Dc!           Delete number of lines equal to cut.  
            Db!           Delete number of lines equal to edit  
                          window height.                        
            Mc            Modify (edit) the cut buffer.         
                          (move the cut line)                   
            Bc            Browse cut buffer while viewing top   
                          portion of the edit window.           
            Vw            View top portion of cut buffer while  
                          in the edit window.                   
            H#            Change height of edit window.         
            \             Repeat last edit command executed.    
            Cls           Clear the screen.                     
            $             Enter a DOS command.                  
            R:file        Read a (second) file into the cut     
                          buffer.                               
            S:file        Save cut in named file.               
            A:file        Append cut to named file.             
            B#            Edit structured file at record #.     
         








                         ͻ
                          Data Entry Forms 
                         ͼ

         Ŀ
          Anyone can create a simple data-entry form using    
          C Easy's Make a Form utility. No programming is     
          required. Even customers and end-users can          
          prototype and test their own data entry forms.      
          And once a form is created, it can be changed with  
          minimal impact on the programs that use it.         
                                                              
          Forms can be created in either text or graphics     
          mode. Graphics forms can be combined with graphic   
          overlays and tokens. The C Easy development         
          environment provides several utilities for          
          combining forms and overlays.                       
                                                              
          Once a data-entry form has been created, it can     
          processed in your program through a sequence of     
          statements such as the following:                   
                                                              
              start_program();                                
                                                              
              read_form ("yourform");                         
          //  display_form();    // optional                  
              restore_text_screen("yourform.scr");            
              define_fields (FPTR);                           
              load_data ("datafile", FPTR);                   
              display_fields (FPTR);                          
              while (NOT ESCAPE_KEY) enter_form (FPTR);       
              store_data ("datafile", FPTR);                  
                                                              
              stop_program(0);                                
                                                              
          The function enter_form (FPTR), along with any      
          field edit routines you may include, performs the   
          entire data entry operation. You needn't be         
          concerned with cursor control, popping up context-  
          sensitive help messages, window refreshing, basic   
          field editing, or other details typically involved  
          in writing data-entry programs.                     
                                                              
          Fields can be pre-edited and post-edited. Visual    
          and logical field attributes, as well as data       
          contents are easily accessible to your program.     
          Attributes can even be changed dynamically, while   
          the user is processing a form and entering data.    
                                                              
          It is easy to add event-driven functions to your    
          data entry programs. Function keys and mouse        
          buttons can be assigned to event-driven functions,  
          enabling immediate program response.                
                                                              
          Your program can check a database, pop up windows   
          browse lookup tables, and perform data validation   
          beyond that which is automatically provided.        
          Your data-entry form becomes an intelligent         
          'self-executing object'.                            
                                                              
          Forms of course are not limited to data entry. They 
          can also be used to display data, or as menus.      
                                                              
         


                            ͻ
                             C Easy Menus 
                            ͼ
         Ŀ
                                                              
          The C Easy Development Environment scheme involves  
          the same C Easy functions that are available to you 
          as a programmer:                                    
                                                              
            The horizontal menu function, select_across().    
                                                              
            The vertical menu function, select_down().        
                                                              
          Properties such as window and select bar colors,    
          window frame type and color, frame shadow, etc.,    
          are controlled through global variables, thereby    
          minimizing the number of function arguments needed. 
                                                              
          C Easy horizontal and vertical menu functions can   
          combined as follows:                                
                                                              
            command = select_across (...);                    
            switch  (*command)                                
             {                                                
              case (item1) :                                  
                             select_down  ( ...submenu1...);  
                             switch (LAST_ITEM)               
                              {                               
                               case (1) : /*...*/             
                               case (m) : /*...*/             
                              };                              
              case (item2) :                                  
                             select_down(...submenu 2...);    
                             switch (LAST_ITEM)               
                              {                               
                               case (1) : /*...*/             
                               case (n) : /*...*/             
                              };                              
             };                                               
                                                              
          Tentative selections are made from the horizontal   
          menu by using the mouse, arrow keys, space bar,     
          tab key, or by entering the firsts character of a   
          selection name. The actual selection is made by     
          a mouse button or the <Enter> key.                  
                                                              
          When the AUTO_COMMAND global is set, vertical menus 
          pulled down automatically as the horizontal menu    
          is traversed. The WRAP_COMMAND global causes the    
          horizontal selection bar to wrap. The BEGIN_SELECT  
          global sets the starting column location for the    
          horizontal menu. The select_across() function       
          returns a pointer to the selected command.          
                                                              
          Tentative selections can be made from a vertical    
          pull-down menu by using the mouse or the up/down    
          arrow keys. An actual selection is made by using    
          a mouse button or the <Enter> key.                  
                                                              
          When the VERTICAL_ONLY global is set, lateral mouse 
          movement is ignored. Otherwise, select_vertical()   
          is terminated, and the ARROW global reflects the    
          final direction of the mouse movement. This feature 
          enables the user to exit immediately from a pulldown
          menu and move to an appropriate position on the     
          horizontal menu.                                    
                                                              
          The select_down() function returns information to   
          the program through the following globals:          
                                                              
           LAST_ITEM      the relative number of the selected 
                          item.                               
                                                              
          LAST_CHAR       the last character pressed, if any. 
                                                              
          LAST_LINE_PTR   memory pointer to the selected item.
         











                           ͻ
                            C Easy Windows 
                           ͼ

     Ŀ
      C Easy includes a versatile set of functions for handling     
      text and graphics windows. A window can be attached to any    
      contiguous memory area.                                       
                                                                    
      The starting position within a window can be set by the       
      WINDOW_OFFSET and BROWSE_OFFSET globals.                      
                                                                    
      Resuming entry at the same point in memory where browsing     
      was terminated, is accomplished by setting global             
      BROWSE_OFFSET to global LAST_OFFSET.                          
                                                                    
      A memory window containing constant data, such                
      as messages and menu items might be initialized:              
                                                                    
              char win1[] [width1]=                                 
                {                                                   
                 " This is line one ",                              
                 " This is line two ",                              
                 " and line three   "                               
                };                                                  
                                                                    
      In the following example, the screen window is saved,         
      its memory area is displayed, and when a key is pressed       
      the screen is restored to its original condition.             
                                                                    
         height1 = sizeof(win1)/width1;                             
         keep_window (1, width1, height1, line, col);               
         see_window (win1, height1, line, col);                     
         getch();                                                   
         restore_window (1, width1, height1, line, col);            
                                                                    
      Screen window attributes are controlled by:                   
                                                                    
              FRAME_TYPE   = DOUBLE_FRAME;                          
              SHADOW_TYPE  = LEFT_SHADOW;                           
              BKGND_FRAME  = BKGND_BLUE;                            
              BGND_FRAME   = FGND_YELLOW;                           
              BKGND_SHADOW = BKGND_BLACK;                           
              FGND_SHADOW  = FGND_GRAY;                             
              BKGND_WINDOW = BKGND_GRAY;                            
              BGND_WINDOW  = FGND_YELLOW                            
                                                                    
      In the following example, a window is used to browse up to    
      100 lines of data.                                            
                                                                    
      The memory area is attached and erased, and then loaded       
      from a text file, if it exists.                               
                                                                    
      The memory area is viewed, scrolled and modified, using the   
      standard C Easy edit keys.                                    
                                                                    
      The new or edited text file is then saved.                    
                                                                    
       if ((ptr=Malloc (100*width)) == NULL)                        
            {                                                       
             display_error ("Cannot Malloc", NULL);                 
             stop_program (-1);                                     
            }                                                       
        erase (ptr, 100*width);                                     
                                                                    
        read_text ("anytextfile", ptr, width, 100);                 
        keep_window (1, width, height, line, col);                  
        browse (ptr, 100*width, width, height, line, col);          
        save_text ("anytextfile", ptr, width, 100);                 
        restore_window (1, width, height, line, col);               
                                                                    
      The following illustrates how windows can be nested.          
                                                                    
      Assume that two memory areas, win2 and win3, contain          
      previously initialized data. win2 contains menu selection     
      items, and win3 contains text. Note: If all win3 text         
      can be displayed at one time in win3, then see_window()       
      could be used instead of browse_view().                       
                                                                    
      Any selection made (by pressing a key or mouse button while   
      scrolling win2 selection items) will pop up win3.             
                                                                    
         browse_select (win2, size2, w2, h2, line2, col2);          
         keep_window (1, w3, h3, line3, col3);                      
         browse_view (win3, size3, w3, h3, line3, col3);            
         restore_window (1, w3, h3, line3, col3);                   
                                                                    
      Previous examples dealt with text windows. In the following   
      example, a previously created graphics overlay is loaded      
      and displayed on the screen. A rectangular (window) portion   
      of the image is cut (upper left corner at row1, col1), and    
      saved in a disk in a file called "image1". Then image1 is     
      loaded and displayed in a different window (upper left        
      corner row2, col2).                                           
                                                                    
         restore_overlay ("overlay");                               
         save_image ("image1", width, height, row1, col1);          
         restore_image ("image1", row2, col2);                      
     











                          ͻ
                           Data Fields 
                          ͼ
  Ŀ
   The C programming language generally deals with character        
   sequences called strings, which are terminated by the            
   null (00) character. Other languages, such as Cobol, deal        
   with data fields rather than strings. A data field is also       
   a sequence of characters, but its length is explicitly           
   specified rather that being determined by a trailing null.       
                                                                    
   C Easy provides functions that allow you to work just as         
   easily with data fields as with strings.                         
                                                                    
   A C Easy form is a good example of where fields are used.        
   An identical image of the form that appears on the screen        
   also exists in memory. Wherever a space appears on the screen    
   it also exists in memory. There are no 'hidden' nulls, tabs,     
   linefeeds, or other format control characters contained in       
   the memory image form. Each character position on the screen     
   is mapped to a corresponding position in memory.                 
                                                                    
   A data field in a form is defined by its line and column         
   cooridinates, and by its explicit length. Global variables       
   AL (line), AC (column) and SIZE (field length) are often         
   used to reference a specific field in a form.                    
                                                                    
   When a data field is processed by the enter_form() function,     
   these global variables are automatically updated. Also, the      
   global variable APTR (a function of AL and AC) points to the     
   leftmost position of the field.                                  
                                                                    
   If a user field edit function is assigned to a field, that       
   the field can be referenced through AL, AC, APTR and SIZE.       
   For example, to redisplay a field in a different color:          
                                                                    
      set_color (BKGND_RED);                                        
      set_color (FGND_YELLOW);                                      
      cursor (AL, AC);                                              
      see (APTR, SIZE);                                             
                                                                    
   Independent fields (not part of Forms), can also be processed.   
   For example:                                                     
                                                                    
      char name[30];                                                
                                                                    
      cursor (10, 12);                                              
      see ("Enter your name: ");                                    
      enter (name, sizeof(name), 10, 29);                           
                                                                    
   A data field in a form can also be referenced through its name.  
   In the following example, the set_field() function uses the      
   field name (in the form pointed to by FPTR), to set AL, AC,      
   APTR and SIZE.                                                   
                                                                    
      set_field ("PAYMENT", FPTR);                                  
      erase (APTR, SIZE);                                           
      enter (APTR, SIZE, AL, AC);                                   
                                                                    
   A data field in a form can also be referenced directly:          
                                                                    
      fldptr = locate_field ("payment", FPTR);                      
      enter_field (FPTR);                                           
  

                        ͻ
                         Make or Modify a Form 
                        ͼ
       Ŀ
        Click the Right Mouse Button to pop up a menu/submenu.   
                                                                 
        Left Mouse Button is used to:                            
                                                                 
           1. Select a menu entry.                               
           2. Toggle line drawing corner, edge, etc.             
           3. Draw a box, with cursor at lower right             
               corner of the box.                                
        Hold Left Mouse Button Down to:                          
          1. Draw lines and data entry fields                    
          2. Paint with selected color                           
          3. Erase lines, data entry field or color              
                                                                 
        <Esc> (optionally saves your form) and exits.            
                                                                 
        <F2> is used when in Data Definitions Mode, to           
        initialize, insert or delete field definition entries.   
         Main Pop-up Menu Selections:                            
                                                                 
           1 DRAW LINES OR DATA ENTRY FIELD                      
               (Hold mouse left button down)                     
               1.1  Draw single, double and special              
                    character lines.                             
               1.2  Draw (identify) data entry fields.           
                                                                 
           2 POSITION CURSOR AND ENTER TEXT                      
                                                                 
               2.1  Position cursor.                             
               2.2  Edit form (line inserts/deletes, etc.).      
               2.3  Enter field labels and other text.           
                                                                 
           3 ERASE COLOR OR LINES                                
               (Hold mouse left button down)                     
                                                                 
               3.1  Erase bakground or foreground color.         
               3.2  Erase lines.                                 
               3.3  Erase data entry fields.                     
                                                                 
           4 MAKE CORNER, EDGE, OR INTERSECT                     
                                                                 
               Toggle mouse left button to select a graphic.     
                                                                 
           5 PAINT BACKGROUND COLOR                              
               (Hold mouse left button down)                     
                                                                 
           6 PAINT FOREGROUND COLOR                              
               (Hold mouse left button down)                     
                                                                 
           7 MAKE A BOX                                          
              Position to the top left corner of the box         
              before selecting. Position to the bottom right     
              corner of the box to be drawn and then press       
              the mouse left button.                             
                                                                 
           8 REMOVE THE BOX                                      
                                                                 
              Remove the box created above (see 7 above).        
                                                                 
           9 CONTROL SCREEN BACKGROUND                           
                                                                 
                9.1  Keep lines and background colors            
                     stationary when text is moved.              
                                                                 
               9.2  Allow lines and colors to move (default      
                    mode) when text is moved.                    
                                                                 
               9.3  Temporarily change background color.         
                                                                 
            D DEFINE DATA ENTRY FIELDS                           
                                                                 
               Data entry fields to be defined must first be     
               drawn (see 1.2 above).                            
                                                                 
               The cursor is positioned to the first field be    
               defined, and the Data Definition Submenu          
               appears.                                          
                                                                 
               Press mouse left button to select a field type.   
                   Field Types:                                  
                                                                 
                      TEXT                                       
                      TEXT UPPERCASE                             
                      NUMERIC LEFT JUSTIFIED                     
                      NUMERIC RIGHT JUSTIFIED                    
                      NUMERIC ALIGNED TO DECIMAL POINT           
                      NUMERIC EDITED IN $ FORMAT                 
                      DATE                                       
                      PHONE NUMBER                               
                      SOCIAL SECURITY NUMBER                     
                      PASSWORD                                   
                                                                 
               A temporary background and foreground color       
               combination identifies each field type. These     
               are not the colors that will appear when the      
               form is processed.                                
               The line, column and size of the field are        
               automatically determined.                         
                                                                 
               Press mouse right button to pop-up the            
               Field Attribute Submenu. This enables you to      
               define the logical and visual attributes of the   
               field. You will be modifying a C structure;       
               be careful to observe structure syntax rules.     
                                                                 
               Enter Field Attributes:                           
                                                                 
                 Field Name.                                     
                                                                 
                 Background and foreground field colors.         
                                                                 
                 Relative cursor movement when specific          
                 keys are pressed during field data entry:       
                                                                 
                     CUP    (-1)                                 
                     CDOWN  (+1)                                 
                     CLEFT  (-1)                                 
                     CRIGHT (+1)                                 
                                                                 
             MUST_ENTER_OFF or MUST_ENTER_ON                     
                                                                 
             MUST_FILL_OFF or MUST_FILL_ON                       
                                                                 
             PROTECT_OFF or PROTECT ON                           
                                                                 
                Inhibits data entry.                             
                                                                 
             ZERO_FILL_OFF or ZERO_FILL_ON                       
                                                                 
             FLOAT_LINE_OFF or FLOAT_LINE_ON                     
                                                                 
                Used for repeating lines, where the fields       
                on a line are defined just once for multiple     
                lines. For multiple invoice lines for example.   
                Global AL overrides the normal line number).     
                                                                 
           PRE_EDIT_OFF or PRE_EDIT_ON                           
                                                                 
               PRE_EDIT_ON sets PRE_EDIT global.                 
                                                                 
            AUTO_HELP_OFF or AUTO_HELP_ON                        
                                                                 
               AUTO_HELP_ON sets the AUTO_HELP global. This      
               means that your field edit routine will process   
               the <F2> HELP key (mouse right button), instead   
               of the field help message being popped up         
               automatically.                                    
                                                                 
            IGNORE_OFF or IGNORE_ON                              
                                                                 
               Ignore entry.                                     
                                                                 
            Name of your user field edit function, if any.       
                                                                 
        Note: Press Page Down to enter a field help message.     
              Return to the Data Definition Menu by pressing the 
              right mouse right button.                          
                                                                 
        Select NEXT FIELD (or press 'n') to define the next data 
        entry field; select PREVIOUS FIELD (or press 'p') to     
        define the previous data entry field.                    
                                                                 
        Select CANCEL to exit the Data Definition Menu.          
                                                                 
        Note: Selecting DEFINE DATA ENTRY FIELDS makes the form  
              a data entry form (opposed to a display-only form).
                                                                 
        A header file (*.h), with the same name as your form, is 
        created when you save your form. The header file is an   
        array of C structures that define data entry field       
        attributes. It must be included, as an #include file, in 
        programs that use the form for data entry.               
                                                                 
        Multiple headers, for different data entry forms, of for 
        overlapping forms on the same screen, can be included in 
        the same program. See forms.c example.                   
                                                                 
        An icon form is created if the name of your form is one  
        or two characters long. If the second letter is 'U',     
        it denotes uppercase. Icon forms are converted to        
        graphic images when you are in Icon mode during Make or  
        Modify an Overlay. When a lower-case key is pressed,     
        corresponding to an icon filename (e.g., a.frm for the   
        letter 'a'), its graphics image is inserted in the       
        overlay. If an uppercase 'a' is pressed, the icon file   
        nameed 'au.frm' is converted and inserted in the overlay.
                                                                 
        Note: When a new icon form is created, an icon template  
        is copied to the new form. The new icon is created by    
        painting the icon with selected foreground colors.       
        In graphics mode, a form is 30 lines instead of 35 lines.
        Forms can be combined with graphic overlays to create    
        new overlays, identified with the extension *.fvl.       
       


                     ͻ
                      Make or Modify an Overlay 
                     ͼ
           Ŀ
            F1    Toggle display of Function Key Menu.   
            F2    Select BLACK color.                    
            F3    Set cursor to 1 pixel.                 
            F4    Set cursor to 24 X 24 pixels.          
            F5    Set cursor to 48 X 24 pixels.          
            F6    Set cursor to 96 X 96 pixels.          
                  change font/icon size (x.5 thru x4).   
            F7    Capture an image, using the current    
                  width and height dimensions.           
            F8    Read or write a *.tok file;            
                  or write an *.ima file.                
            F9    Set image height an width dimentions.  
            F10   Toggle Token or Font mode on/off.      
            F11   Toggle Square or Round cursor on/off.  
            F12   Toggle Ignore Black mode on/off.       
           

           Ŀ
            Select a color by:                           
                                                         
             1. Clicking mouse right button when the     
                 cursor is over the desired color.       
                                                         
             2. Clicking mouse right button while the    
                 cursor is moving over a black screen.   
                 (Rotates the 16 color palette; Colors   
                 can be also be reset to black by <F2>.  
                 Stop clicking when the desired color    
                 appears.                                
                                                         
            Hold down the mouse left button to:          
                                                         
             1. Paint, using the color selected above.   
                The mouse is moved WITHOUT painting when 
                the mouse left button is not held down.  
                                                         
             2. Insert (display) an object that was      
                captured by <F7>, or read as a token     
                by <F8>.                                 
                                                         
            Cursor size, besides using <F3> thru <F6>,   
            can be changed incrementally by:             
                                                         
             <Ctrl Up Arrow>      Increase height.       
             <Ctrl Down Arrow>    Decrease height.       
             <Ctrl Right Arrow>   Increase width.        
             <Ctrl Left Arrow>    Decrease width.        
                                                         
            <F6> performs two functions:                 
                                                         
            1. Sets cursor size = 96x96 pixels.          
                                                         
            2. Multiplies font and icon size:            
               x.5, x1, x2, x4.                          
                                                         
            <F7> capures a screen image, where cursor    
                  points to the lower right corner of    
                  image defined by height and width.     
                                                         
                  If an object has already been captured,
                  <F7> releases that image (to enable    
                  capturing another image).              
                                                         
                  After an image has been captured, it   
                  can be inserted (displayed) by         
                  pressing the mouse left button.        
                                                         
            <F8> Read or save an image. Prompts for file 
                  name of *.tok or *.ima file when       
                  saving a new file. Only *.tok files    
                  can be read.                           
                                                         
                  Assumes .tok filename extension unless 
                  *.ima is specified. Press right mouse  
                  button to display list of *.tok names. 
                                                         
                  Note: Objects saved as *.tok can be    
                        read by read_token(); those      
                        saved as *.ima can be read by    
                        read_image().                    
                                                         
            <F9> Set height and width dimensions. To set 
                  dimensions of an image explicitly:     
                                                         
                  1. Move the cursor to top left corner  
                     of image and press the mouse left   
                     button.                             
                                                         
                  2. Move the cursor to bottom right     
                     corner of the image and mouse right 
                     button again.                       
                                                         
                  3. Press the mouse left button.        
                                                         
                  Note: Press <F7> to capture an image.  
                                                         
                  Height and width dimensions are set    
                  automatically when a token (*.tok) is  
                  read.                                  
                                                         
            <F10> Toggle Token/Font modes. In font mode, 
                  tokens represent themselves and are    
                  displayed selected font size.          
                                                         
                  In token mode, icon forms (??.frm) and 
                  tokens (*.tok) are substituted for     
                  their assigned keys. For example,      
                  pressing 'b' displays either b.tok or  
                  b.frm (icon file name) if either       
                  exists. Pressing shifted 'b' displays  
                  bu.tok or bu.frm.                      
                                                         
            <F12> Toggle Ignore Black mode. When this    
                  mode is set, any black color in a      
                  token is ignored when the token is     
                  displayed. This permits tokens that    
                  contain a black background to overlay  
                  other images on the screen.            
           








                      ͻ
                       C Easy Function Summary 
                      ͼ


   Graphics Token Processing
   

   char *get_token  (width, height, row, column)
   char *read_token (file)
   int  put_token   (token_ptr, row, column)
   int  write_token (token_ptr, file)

       char *file        // graphics token file
       char *token_ptr   // pointer to upper left
                         // corner of memory token
       int  row          // left screen row: 0-479
       int  column       // top screen column:  0-639

 Note: read_token() & get_token() return token_ptr.



 Graphics Image Processing
 

 char  *get_image  (width, height, row, column)
 char  *read_image (file)
 int   put_image   (image_ptr, row, column)
 int   write_image (image_ptr, file)

       char *file
       char *image_ptr    // pointer to upper left
                             corner of image
       int  row           // left screen row: 0-479
       int  column        // top screen column: 0-639

 Note: get_image() returns image_ptr.







 Graphics Image Save and Restore
 

 int save_image    (file, width, height, row, column)
 int restore_image (file, row, column)

     char *file     // graphics image file name
     int  width     // screen image width:  1-640
     int  height    // screen image height: 1-480
     int  row       // top screen row:      0-479
     int  column    // left screen column:  0-679











 Graphics Full-Screen Save and Restore
 

 int save_overlay    (file, ext)
 int restore_overlay (file, ext)

     char *file   // overlay file name
     char *ext    // file extension (".ovl" or ".fvl")














 Get and Put Pixel
 

 int get_pixel (row, column)
 int put_pixel (value, row, column)

     int row      // screen row:    0-479
     int column   // screen column: 0-639
     int value    // BKGND_BLACK thru FGND_WHITE (0-15)













 Text File Processing
 

   int read_text   (file, memory, width, max_lines)
   int write_text  (file, memory, width, max_lines)
   int append_text (file, memory, width, max_lines)

       char *file       // text file name
       char *memory     // file contents read into
                           memory; lines expanded
       int  width       // line width (lines expanded
                           with spaces)
       int  max_lines   // maximum number of lines









 Record Processing
 

 int read_record  (file_ptr, number, memory, record_size)
 int write_record (file_ptr, number, memory, record_size)

     FILE *file_ptr   // FILE pointer from prior xopen() command
     long number      // data record (block) to be read/written.
     char *memory     // record (block) in memory

 Note: File previously opened by xopen().











 Call and Overlay Program
 

 int call_program    (file, arg_ptr)
 int overlay_program (file, arg_ptr)

     char *file     // program file name
     char *arg_ptr  // pointer to string argument














 Start and Stop Program
 

 int start_program ()
 int stop_program  (status)

     int status  // program exit status returned














 Paletette Control
 

 int use_palette   (file)
 int read_palette  (memory, file)
 int write_palette (memory, file)
 int get_palette   (memory)
 int put_palette   (memory)
 int load_palette  ()

     char *memory   // palette contents in memory
     char *file     // palette file name










 Conventional Menu Processing
 

 char *process_menu(TOP,BOTTOM,LEFT,RIGHT,ITEM,COLUMN);

         int TOP      // top line of two column menu
         int BOTTOM   // bottom line
         int LEFT     // left (column) column
         int RIGHT    // right (column) column
         int ITEM     // starting menu entry (0-n)
         int COLUMN   // left (0) or right (1) column











 Horizontal Bar Menu Processing
 

 char *select_across (line, column)

      int line      // menu screen line
      int column    // column (left) of active horizontal command l

 Note: Menu selection begins at intial highlighted command
       determined by BEGIN_SELECT.

 Return: Pointer to selected command.
         LAST_CHAR = first character of selected command.









 Pull Down Menu Processing
 

 int select_down (keep_no, memory, size, width,
                  height, line, col, back, fwd)

     int  keep_no    // save area (1-9) for screen contents
     char *memory    // pull-down menu in memory
     int  size       // size of pull-down menu
     int  width      // pull-down window width
     int  height     // pull-down window height
     int  line, col  // upper left corner of screen menu
     int  back, fwd  // used in conjunction with select_across()

 Return: LAST_PTR    // pointer to selected command line
         LAST_CHAR   // first letter of command pressed.
         LAST_ITEM   // selected command number 1-9





 Data Entry Form Processing
 

 int  vfm                 (file)
 int  read_form           (file)
 int  erase_form          ()
 int  display_form        ()
 char *new_form           ()

      char *file          // form (*.frm) name












 Data Entry Collective Field Processing
 

 int   erase_fields   (FPTR)
 int   define_fields  (FPTR)
 int   display_fields (FPTR)
 int   enter_form     (FPTR)
 int   resume_form    (base_ptr, FPTR)

      form_entry *FPTR     // pointer to Data Entry Table
      form_entry *baseptr  // starting entry in form

 Globals: LAST_FIELD, FUNC, ARROW, ESCAPE_KEY









 Data Entry Individual Field Processing
 

 int   set_field         (fieldname, FPTR)
 int   next_field        ()
 char  *form_field       (fieldname, FPTR)
 TPTR  *locate_field     (fieldname, FPTR)
 int   display_one_field (FPTR)
 int   enter_field       (FPTR)

      char       *field_name  // field name in Data Entry Table
      form_entry *FPTR        // pointer to Data Entry Table
      char       *string      // pointer to string containing value









 Data Entry Field Enter/Shift
 

 int enter_shift (field_name, memory, extent)

     char*         field_name
     char*         memory
     unsigned int  extent














 Data Entry Quick File Interface
 

 int load_data    (file, FPTR)
 int store_data   (file, FPTR)

 int load_fields  (memory, FPTR)
 int store_fields (memory, FPTR)

       char       *file    // datafile
       char       *memory  // record containing compacted fields
       form_entry *FPTR    // pointer to Data Entry Table










 Text Window Processing
 

 int make_window_frame   (width, height, line, column)
 int remove_window_frame (width, height, line, column)
 int enter_window        (memory, width, height, line, column)
 int see_window          (memory, width, height, line, column)
 int clear_window        (width, height, line, column)
 int erase_window        (memory, width, height)

     int  width, height   // screen window dimensions
     int  line, column    // top left corner of window
     char *memory         // pointer to window in memory









 Text Window Memory Browsing
 

 int browse        (memory, size, width, height, line, column)
 int browse_select (memory, size, width, height, line, column)
 int browse_view   (memory, size, width, height, line, column)
 int browse_check  (memory, size, width, height, line, column)

     char *memory        // pointer to browse area in memory
     int  size           // size of browse area
     int  width, height  // width and height of screen window
     int  line, column   // upper left corner of screen window










 Text Window Keep & Restore
 

 int keep_window    (keep_no, width, height, line, columm)
 int restore_window (keep_no, width, height, line, column)

     int width, height  // window dimensions.
     int line, column   // upper left corner.

   Text Full-Screen Save & Restore
   

   int  save_text_screen    (file)
   int  restore_text_screen (file)
   int  restore_text_screen ( *.scr ) // produced by mfm.exe
   char *read_text_screen   ( *.scr )
   int  display_text_screen ( ptr )

        unsigned char *ptr  // returned from read_text_screen()

   Text Cursor Control
   

   int getcursor      (&line,&column)
   int cursor         (line,column)
   int keep_cursor    ()
   int restore_cursor ()
   int hide_cursor    ()
   int show_cursor    ()

       int line     // screen line
       int column   // screen column










   Screen Field Display
   

   int see     (string)
   int see_    (field,size)
   int see_dup (string,size)

       char *string   // string (null terminated)
       char *field    // field (not null terminated)
       int size       // size of field or see_dup()












   Screen  Control
   

   int draw           (special_character)
   int clear_screen   (bkgnd_color, fgnd_color)
   int clear_line     (line)
   int clr_end        ()
   int clear_tabs     ()
   int set_tab_column (tabno, column)
   int beep           ()

       int line, column, tabno
       int bkgnd_color, fgnd_color









   Keyboard Field Entry
   
   int enter               (field, size, line, column)
   int enter_numeric       (field, size, line, column)
   int enter_numeric_right (field, size, line, column)
   int enter_digits        (field, size, line, column)
   int enter_noecho        (field, size, line, column)
   int enter_phone         (field, line, column)
   int enter_socsec        (field, line, column)
   int enter_date          (field, line, column)

       char *field        // pointer to field
       int  size          // field size
       int  line, column  // starting screen position








   Wait for Keyboard Input
   

   int wait_key     (NULL, line, column)
   int wait_FUNC    (line, column)
   int key_waiting  ()
   int wait_display ()

       int line, column













   Mouse Control
   

   int mouse_installed      ()
   int mouse_button_pressed (button)
   int mouse_button_down    (button)
   int mouse_movement       ()
   int get_mouse_position   ()
   int mouse_cursor         (row, column)
   int show_mouse_cursor    ()
   int hide_mouse_cursor    ()

       int button       // 1 or 2
       int row          // screen row: 0-479
       int column       // screen column: 0-639







   Field Move
   

   int move       (field1, field2, size)
   int move_right (field1, field2, size)
   int move_all   (field1, field2, size)

      char *field1  // source field, or pointer to character
      char *field2  // destination field
      int  size     // size of field












   Field Convert
   

   int fill           (character, field, size)
   int erase          (field, size)
   int erase_nulls    (field, size)
   int replace_all    (character, new_char, field, size)
   int to_upper_case  (field, size)
   int shift_right    (field, size)
   int shift_left     (field, size)
   int remove_commas  (field, size)
   int insert_commas  (field, size)

       char new_char   // character replacement
       char *field     // destination field
       int  size       // field size






   Numeric Field Edit
   

   int right_justify   (field, size)
   int justify         (field, size, decpos)
   int zero_fill       (field, size)
   int zero_suppress   (field, size)
   int protect_float   (field, size, float_char)
   int prefix          (field, size, fill_char)
   int move_numeric    (field1, field2, size)
   int load_mask_right (field, size)
   int move_edit_right (field1, field2, size)

       char *field, *field2   // destination field
       char *field1           // source field
       int  size              // field size






   Make String
   

   char *make_string         (field, size)
   int  *make_string_reverse (field, size)

        char *field   // destination field
        int size      // field size














   Field Compare
   

   int compare        (field1, field2, size)
   int compare_dup    (field, character, size)
   int compare_all    (field1, field2, size)
   int compare_string (string1, string2)

       char *field, *field1  // source field
       char *field2          // destination field
       int size              // field size











   Message Display
   

     int display_message (string1, string2)
     int display_error   (string1, string2)
     int prompt          (line, string1)
     int wait_display    ()

         char *string1    // first part of message
         char *string2    // last part of message
         int  line        // screen line number











   Time and Date
   

     int enable_time  (type, line, column)
     int disable_time ()
     int see_date     (line, column)
     int get_day      ()
     int get_month    ()
     int get_year     ()
     char *get_time   ()
     char *get_today  ()

          int type     // 'C' or 'M'
          int line     // screen line number
          int column   // screen column number







   Color Control
   

     int set_color             (COLOR)
     int keep_colors           ()
     int restore_colors        ()
     int keep_window_colors    ()
     int restore_window_colors ()
     int keep_form_colors      ()
     int restore_form_color    ()
     int set_intense           (ON/OFF)
     int set_blink             (ON/OFF)

         int COLOR   // BKGND_BLK to FGND_YELLOW








   Keep and Restore All Attributes
   

    int keep_all    (keepall_no)
    int restore_all (keepall_no)

        int keepall_no  // 0-9















   Set Length
   

   int          token_length (mem)
   unsigned int text_length  (mem_start, mem_end)

      char *mem, *mem_start
      char *memory_end














   File Control
   

   FILE* xopen        (file,mode)

         char *file   // file name
         char *mode   // "r", "w", etc.















   Graphics Mode Control
   

    int set_graphics_mode (mode)

        int mode  ON/OFF
















   Arithmetic Field Processing
   

   int complement           (field,size)
   int add_literal          (literal,field)
   int add                  (field1,field2,size)
   int add_one              (field)
   int subtract_literal     (literal,field)
   int subtract_one         (field)
   int subtract             (field1,field2,size)

       char *field, *field1  source field
       char *field2          destination field
       int  size             field size







                           ͻ
                            C Easy DEFINES 
                           ͼ
           NULL
           ERROR
           CUP
           CDOWN
           LEFT
           CDOWN
           CRIGHT
           CEXIT
           MUST_ENTER_OFF
           MUST_FILL_OFF
           PROTECT_OFF
           ZERO_FILL_OFF
           FLOAT_LINE_OFF
           PRE_EDIT_OFF
           AUTO_HELP_OFF
           IGNORE_OFF
           MUST_ENTER_ON
           MUST_FILL_ON
           PROTECT_ON
           ZERO_FILL_ON
           FLOAT_LINE_ON
           PRE_EDIT_ON
           AUTO_HELP_ON
           IGNORE_ON
           ENTRY_EXIT
           FORM_EXIT
           FORM_CONTINUE
           FIELD_REPEAT
           SINGLE_LINE
           DOUBLE_LINE
           NONE
           LEFT_SHADOW
           RIGHT_SHADOW
           YES
           NO
           ON
           OFF
           ZERO
           SPACE
           LEFT_BUTTON
           RIGHT_BUTTON
           PIXEL_BLACK
           PIXEL_BLUE
           PIXEL_GREEN
           PIXEL_CYAN
           PIXEL_RED
           PIXEL_MAGENTA
           PIXEL_BROWN
           PIXEL_GRAY
           PIXEL_DARK_GRAY
           PIXEL_LIGHT_BLUE
           PIXEL_LIGHT_GREEN
           PIXEL_LIGHT_CYAN
           PIXEL_LIGHT_RED
           PIXEL_LIGHT_MAGENTA
           PIXEL_YELLOW
           PIXEL_WHITE
           FGND_BLACK
           FGND_BLUE
           FGND_GREEN
           FGND_CYAN
           FGND_RED
           FGND_MAGENTA
           FGND_BROWN
           FGND_GRAY
           FGND_DARK_GRAY
           FGND_LIGHT_BLUE
           FGND_LIGHT_GREEN
           FGND_LIGHT_CYAN
           FGND_LIGHT_RED
           FGND_LIGHT_MAGENTA
           FGND_YELLOW
           FGND_WHITE
           BKGND_BLACK
           BKGND_BLUE
           BKGND_GREEN
           BKGND_CYAN
           BKGND_RED
           BKGND_MAGENTA
           BKGND_BROWN
           BKGND_GRAY
           BKGND_WHITE
           PAGE
           FORM_PTR PAGE_1

           EQUAL           (RESULT==0)
           NOT_EQUAL       (RESULT!=0)
           GREATER         (RESULT>0)
           LESS            (RESULT<0)
           MISSING         (RESULT!=0)
           UP              (ARROW=='A')
           DOWN            (ARROW=='B')
           FORWARD         (ARROW=='C')
           BACK            (ARROW=='D')
           PAGE_DOWN       (ARROW=='N')
           PAGE_UP         (ARROW=='P')
           ENTER           (ARROW=='R')
           RETURN          (ARROW=='R')
           TAB             (ARROW=='T')
           FILLED          (ARROW=='F')
           HOME            (ARROW=='H')
           END             (ARROW=='E')
           INSERT_LINE     (ARROW=='i')
           DELETE_LINE     (ARROW=='d')
           AND             &&
           OR              ||
           NOT             !
           HELP_KEY        (FUNC==1)
           F1              (FUNC==1)
           F2              (FUNC==2)
           F3              (FUNC==3)
           F4              (FUNC==4)
           F5              (FUNC==5)
           F6              (FUNC==6)
           F7              (FUNC==7)
           F8              (FUNC==8)
           F9              (FUNC==9)
           F10             (FUNC==10)
           F11             (FUNC==11)
           F12             (FUNC==12)
           EDIT_FUNCTION_NONE
           DBF_EOF
           DBF_BOF
           DBF_DUP
           DBF_NOKEY
           DBF_NONEXT
           MAX_FILES
           FPTR


                        ͻ
                         C Easy Global Variables 
                        ͼ

           unsigned char* APTR
           unsigned char* BPTR

           int  AL
           int  AC
           int  BL
           int  BC
           int  SIZE

           unsigned char   *PAGE_1
           unsigned char   DEFAULT_PAGE
           unsigned char   *mem

           int             TOKEN_WIDTH
           int             TOKEN_HEIGHT
           int             TOKEN_ROW
           int             TOKEN_COLUMN
           int             BEGIN_SELECT
           int             PRE_EDIT
           int             AUTO_HELP
           int             EXIT_FORM_NOW
           int             CHAR_ONLY
           int             AUTO_COMMAND
           int             WRAP_COMMAND
           char            DEFAULT_DAY[2]
           char            DEFAULT_MONTH[3]
           char            DEFAULT_YEAR[2]
           char            ARROW
           int             FUNC
           int             ESCAPE_KEY
           int             RESULT
           char            LAST_LINE_ARRAY[80]
           int             LAST_LINE
           int             LAST_COLUMN
           int             LAST_ITEM
           int             UPPERCASE
           int             DISABLE_INSERT
           int             DISABLE_WRAP
           int             DISABLE_PAGE
           int             DISABLE_DELETE
           int             SL
           int             BKGND_GRAPHIC
           int             FGND_ENTRY
           int             BKGND_ENTRY
           int             FGND_HELP
           int             FGND_CURSOR
           int             FRAME_TYPE
           int             SHADOW_TYPE
           int             BKGND_COLOR
           int             FGND_COLOR
           int             BKGND_WINDOW
           int             FGND_WINDOW
           int             BKGND_FRAME
           int             FGND_FRAME
           int             BKGND_SHADOW
           int             FGND_SHADOW
           int             BKGND_BAR
           int             FGND_BAR
           int             BKGND_COMMAND
           int             FGND_COMMAND
           int             BKGND_FIRST
           int             FGND_FIRST
           int             BKGND_TIME
           int             FGND_TIME
           int             BKGND_DATE
           int             FGND_DATE
           int             BKGND_FORM
           int             MOUSE_COLUMN
           int             TOKEN_WIDTH
           int             TOKEN_HEIGHT
           int             TOKEN_ROW
           int             TOKEN_COLUMN
           int             MOUSE_RATE
           int             HORIZ_DELAY
           int             VERT_DELAY
           int             MAXPIXROWS
           int             MAXPIXCOLS
           unsigned int    var[60]
           int             WINDOW_OFFSET
           int             WINDOW_OFFSET_COLUMN
           unsigned int    BROWSE_OFFSET
           unsigned int    LAST_OFFSET
           unsigned char   *LAST_PTR
           unsigned char   *LAST_LINE_PTR
           unsigned char   LAST_CHAR
           int             MAX_FIELDS
           int             FAST_DISPLAY
           char            *START_FIELD
           char            *DEFAULT_FORM_PTR
           int             GRAPHICS_MODE
           form_entry      *LAST_FIELD_PTR;
           form_entry      *FPTR;
           dbf_fld         *RPTR[MAX_FILES];
           char            *RECORD[MAX_FILES];
           unsigned char far       WINDOW_SAVE_PTR[12]
           struct function_event   event_F[13];
           form_entry              FIELD[];









                          ͻ
                           C Easy Structures 
                          ͼ

   typedef struct
           {
             char *name;
             unsigned char type;
             int           line;
             int           column;
             int           size;
             unsigned char bkgnd_color;
             unsigned char fgnd_color;
             int           up, down, left, right;
             struct
                  {
                   unsigned int must_enter         : 1;
                   unsigned int must_fill          : 1;
                   unsigned int protect            : 1;
                   unsigned int zero_fill          : 1;
                   unsigned int floatline          : 1;
                   unsigned int pre_edit           : 1;
                   unsigned int auto_help          : 1;
                   unsigned int ignore             : 1;
                   unsigned int flag1              : 1;
                   unsigned int flag2              : 1;
                   unsigned int flag3              : 1;
                   unsigned int flag4              : 1;
                   unsigned int flag5              : 1;
                   unsigned int flag6              : 1;
                   unsigned int flag7              : 1;
                   unsigned int flag8              : 1;
                  } edit;
              int          (*edit_function)();
              char         *help;
           } form_entry;


   struct function_event
        {
         int (*function)();
        };

   typedef struct
        {
         int           level;
         unsigned      flags;
         char          fd;
         unsigned      char  hold;
         int           bsize;
         unsigned char *buffer;
         unsigned char *curp;
         unsigned      istemp;
         short         token;
         } FILE;

   struct WORDREGS
     {
       unsigned int    ax, bx, cx, dx, si, di, cflag, flags;
     };

   struct BYTEREGS
     {
       unsigned char   al, ah, bl, bh, cl, ch, dl, dh;
     };
   union   REGS
     {
       struct  WORDREGS x;
       struct  BYTEREGS h;
     };

   C Easy Function Declarations

           FILE                    *xopen();
           char                    *getenv();
           char                    *enter_command();
           char                    *_today();
           char                    *get_time();
           char                    *get_today();
           long                     cvt_atol();
           char                    *string_ptr();
           char                    *page_ptr();
           char                    *normalize_ptr();
           long                    _dtol_();
           unsigned int            _dtoi_();
           unsigned int            len();
           unsigned char           *Malloc();
           unsigned char far       *read_token();
           unsigned char far       *get_token();
           unsigned char far       *read_token();
           unsigned char far       *read_image();
           unsigned char far       *get_image();
           char                    *fld_str();
           char                    *make_string();
           unsigned char           *keep_form();
           unsigned char           *new_form();
           form_entry              *locate_field();

