home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / windows / kpwdemo.zip / KPHELP.HLP < prev    next >
Text File  |  1990-06-28  |  284KB  |  7,287 lines

  1. //Create Objects
  2.  
  3.   Create:
  4.     Button                #mbutton#m
  5.     Check box             #mcheck_box#m  
  6.     Edit objects          #medit_box#m   
  7.                           #medit_line#m  
  8.                           #medit_file#m  
  9.                           #medit_window#m   
  10.     Group box             #mgroup_box#m
  11.     List box              #mlist_box#m   
  12.     Menu                  #mmenu#m  
  13.     Radio box             #mradio_box#m  
  14.     Scroll bar            #mhorz_scroll_bar#m   
  15.                           #mvert_scroll_bar#m   
  16.     Window                #mwindow#m
  17.  
  18.   Ask a questions         #mask#m
  19.                           #mread_response#m
  20.             
  21.   Get a file name         #mfile_menu#m  
  22.                           #msave_as#m
  23.                           #msave_edit_file#m
  24.      
  25. //Manipulate Objects
  26.  
  27.   Disable               #mdisable_window#m 
  28.   Enable                #menable_window#m  
  29.   Enable All            #menable_all_windows#m
  30.   Hide                  #mhide_window#m
  31.   Show                  #mshow_window#m
  32.   Re-size               #mresize_window#m  
  33.   Re-position           #mmove_window#m
  34.   Redraw                #mupdate_window#m  
  35.   Find information      #mwindow_info#m 
  36.   Find parent           #mparent_window#m  
  37.   Close                 #mclose_window#m   
  38.   List of windows       #mwindow_list#m
  39.   Window only:  
  40.     Set to modal        #mmake_modal#m
  41.     Attach an icon      #mattach_icon#m
  42.     Find children       #mchild_windows#m  
  43.   Menu only:   
  44.     Disable an item     #mdisable_menu_item#m
  45.     Enable an item      #menable_menu_item#m 
  46.     Check an item       #mcheck_menu_item#m
  47.     Uncheck an item     #muncheck_menu_item#m
  48.  
  49.   #mFind and set information about screen objects#m
  50.  
  51. //Find and set information about screen objects
  52.  
  53.   Set:
  54.     Text                        #mset_text#m  
  55.     Title                       #mset_title#m 
  56.     Object with focus           #mset_focus#m 
  57.     Display window              #mset_display_window#m
  58.     Active window               #mset_active_window#m 
  59.     Top window                  #mset_top_window#m
  60.     Display position            #mset_display_pos#m
  61.     Cursor position             #mset_cursor_pos#m
  62.     Value:   
  63.       Check box                 #mset_check_box#m  
  64.       Radio button              #mset_radio_button#m
  65.       Edit objects              #mset_text#m  
  66.       Scroll bar                #mset_scroll_bar#m 
  67.   Get: 
  68.     Text                        #mget_text#m  
  69.     Title                       #mget_title#m 
  70.     Object with focus           #mget_focus#m 
  71.     Display window              #mget_display_window#m
  72.     Active window               #mget_active_window#m
  73.     Top window                  #mget_top_window#m 
  74.     Display position            #mget_display_pos#m
  75.     Cursor position             #mget_cursor_pos#m
  76.     Value:   
  77.       Check box                 #mget_check_box#m  
  78.       Radio button              #mget_radio_button#m 
  79.       Edit objects              #mget_text#m  
  80.       Scroll bar                #mget_scroll_bar#m 
  81.     
  82. //Using Text
  83.  
  84.   Display                               #mtext#m
  85.   Clear, display and wait               #msay#m 
  86.   Print                                 #mprint#m
  87.   Set:  
  88.     Cursor position                     #mset_cursor_pos#m  
  89.     Display position                    #mset_display_pos#m 
  90.     Window text                         #mset_text#m 
  91.   Get:  
  92.     Cursor position                     #mget_cursor#m
  93.     Display position                    #mget_display_pos#m 
  94.     Window text                         #mget_text#m 
  95.   Scroll horizontally                   #mhorz_scroll_text#m
  96.   Scroll vertically                     #mvert_scroll_text#m
  97.   Read from the clipboard               #mread_clipboard#m  
  98.   Write to a file                       #mwrite#m
  99.   Write to the clipboard                #mtext_to_clipboard#m 
  100.   Compile text string                   #mcompile_string#m
  101.   Execute compiled string               #mevaluate#m
  102.   Execute text string                   #mperform#m
  103.   Hypertext font, color                 #mhyper_display#m   
  104.   All text hypertext                    #mauto_hyper_on#m   
  105.   Only marked hypertext                 #mauto_hyper_off#m  
  106.  
  107.   #mFonts#m
  108.   #mCommands for Controlling Text Display#m
  109.  
  110. //Fonts
  111.  
  112.   Create                        #mcreate_font#m
  113.   Use a font                    #muse_font#m 
  114.   Delete                        #mdelete_font#m
  115.   List available fonts          #mfont_list#m
  116.   List typefaces                #mtypeface_list#m   
  117.  
  118.   #mCommands for Controlling Text Display#m
  119.  
  120. //Commands for Controlling Text Display
  121.  
  122.   ##n      New line  
  123.   ##p      New page  
  124.   ##e      Erase the screen, new page   
  125.   ##l      New line for each list item (DEFAULT)
  126.   ##s      List items on the same line  
  127.   ##o      No spaces after a list item  
  128.   ##i      Insert a space after each list item (DEFAULT)   
  129.   ##t      Tab five spaces  
  130.   ##m      Define hypertext phrase 
  131.   ##d      Default screen colors 
  132.   ####      Display the character ##
  133.   ##v      Call enclosed topics. Display their values.
  134.   ##c      Call enclosed topics. Do Not Display the Values.
  135.   ##INTEGER        Print  the  ASCII character 
  136.   ##xINTEGER       Move to Column X
  137.   ##yINTEGER       Move to Row Y 
  138.   ##fCOLOR         Change foreground color   
  139.   ##bCOLOR         Change background color   
  140.       
  141. //Graphics
  142.  
  143.   Display                       #mbitmap#m
  144.   To clipboard                  #mbitmap_to_clipboard#m
  145.   Delete                        #mdelete_bitmap#m  
  146.   From file                     #mload_bitmap#m
  147.   From clipboard                #mread_clipboard#m 
  148.   Create                        #mcreate_bitmap#m  
  149.   Icon commands:   
  150.     Load                        #mload_icon#m 
  151.     Display                     #micon#m 
  152.     Delete                      #mdelete_icon#m
  153.     Assign to Window            #mattach_icon#m
  154.  
  155.   To print a bitmap use the command ##g followed by  the 
  156.   handle of the bitmap.  For example:
  157.   
  158.     image is load_bitmap ('PICTURE.BM4').
  159.     print (concat ('##g', ?image)).    
  160.  
  161.   Text can also be printed along with bitmaps.  
  162.  
  163. //Lists
  164.  
  165.   Find: 
  166.     First item                          #mfirst#m
  167.     Last item                           #mlast#m 
  168.     Specific item                       #melement#m   
  169.     All except                          #mrest#m 
  170.     Length of a list                    #mlist_length#m
  171.     Where an item is on a list          #mwhere#m
  172.     If an item is on a list             #mone_of#m 
  173.   Sort: 
  174.     Alphabetic                          #msort#m 
  175.     Numeric                             #mnumeric_sort#m   
  176.   New lists From old: 
  177.     Remove an item                      #mremove#m 
  178.     Replace matching items              #mreplace#m
  179.     Replace specific elements           #mreplace_elements#m
  180.     Items not shared by lists           #mdifferent#m
  181.     Items on all lists                  #mintersect#m  
  182.     Sublist                             #msublist#m
  183.     Combine lists                       #mcombine#m  
  184.     Combine lists, no doubles           #munion#m 
  185.  
  186. //Strings
  187.  
  188.   Find: 
  189.     Length                              #mstring_length#m 
  190.     Location of a substring             #mstring_where#m 
  191.   Concatenate                           #mconcat#m 
  192.   Copy part of a string                 #mstring_copy#m 
  193.   Replace part of a string              #mstring_replace#m   
  194.  
  195. //Conversion between Lists and Strings
  196.  
  197.   ASCII Values to characters            #mnumber_to_char#m
  198.   Characters to ASCII values            #mchar_to_number#m
  199.   String to list of characters          #mlist_of_char#m  
  200.   String to lower case                  #mlower#m  
  201.   String to upper case                  #mupper#m  
  202.   String to list                        #mstring_to_list#m 
  203.   List to string                        #mlist_to_string#m
  204.    
  205. //External Files
  206.  
  207.   Text Files
  208.     Read:
  209.       Paragraph                         #mread#m
  210.       Line                              #mread_line#m  
  211.       Character                         #mread_char#m 
  212.     Write                               #mwrite#m 
  213.     Open                                #mnew_file#m 
  214.     Close one or more                   #mclose#m 
  215.     Close all                           #mclose_all#m
  216.     Set file pointer                    #mset_file_pos#m
  217.     Get file pointer                    #mget_file_pos#m   
  218.   Knowledge Base Files 
  219.     Read:   
  220.       Include in current KB             #mload#m
  221.       Open new                          #mnew_kb#m
  222.     Write                               #msave_topic#m  
  223.   Get input file name                   #mfile_menu#m 
  224.   Get output file name                  #msave_as#m
  225.   Save an edit file                     #msave_edit_file#m
  226.   Get the current directory             #mcurrent_directory#m
  227.   Get a directory list                  #mdir#m   
  228.       
  229. //External Programs
  230.  
  231.   External Program: 
  232.     Chain out of KP             #mchain#m
  233.     Run a program               #mrun#m
  234.     Load a program              #mload_program#m
  235.   Find tasks running            #mtask_list#m
  236.   Find task windows             #mtask_windows#m
  237.   Knowledge Base Files 
  238.     Read:   
  239.       Include in current KB     #mload#m
  240.       Open new                  #mnew_kb#m
  241.     Write                       #msave_topic#m  
  242.   Get input file name           #mfile_menu#m 
  243.   Get output file name          #msave_as#m
  244.   Save an edit file             #msave_edit_file#m
  245.   Get the current directory     #mcurrent_dir#m
  246.   Get a directory list          #mdir#m   
  247.   Data Link Library:  
  248.     Load                        #mload_library#m 
  249.     Free library                #mfree library#m
  250.                                 #muser#m
  251.  
  252. //Using the Clipboard
  253.  
  254.   Read                          #mread_clipboard#m   
  255.   Write text to                 #mtext_to_clipboard#m
  256.   Write a bitmap to             #mbitmap_to_clipboard#m 
  257.       
  258. //Topics
  259.  
  260.   Assign a new value                    #mmake#m 
  261.         alternate format                #mis#m
  262.   Add a value                           #mgets#m
  263.   Assign corresponding values           #mmake_c#m
  264.         alternate format                #mis_c#m 
  265.   Add corresponding values              #mgets_c#m
  266.   Create                                #mcreate_topic#m 
  267.   Create and inherit                    #mnew#m  
  268.   Execute                               #mdo#m   
  269.   Execute local                         #mdo_local#m
  270.   Inherit                               #mim_a#m  
  271.   Exit                                  #mexit#m  
  272.   Remove                                #mremove_topic#m   
  273.   Save to a file                        #msave_topic#m 
  274.   List all topics                       #mmake_topic_list#m 
  275.   Show information                      #mshow_topic#m
  276.   Make unevaluated                      #mreset#m
  277.   Flatten sublists                      #mflatten#m  
  278.   #mFind properties#m
  279.   #mSet properties#m
  280.  
  281. //Find properties
  282.  
  283.   Value of a topic                      #mvalue_of#m
  284.       alternate format                  #m?#m   
  285.   Children of a topic                   #mchildren#m
  286.   How a topic was called                #mcalling_topic#m 
  287.   Full name of the topic                #mfull_name#m   
  288.   If a topic exists                     #mexists#m
  289.   Parent of a topic                     #mparent#m
  290.   Class a topic belongs to              #mclass#m
  291.   Demons assigned                       #mget_demon#m   
  292.   Legal number of values                #mget_number_of_values#m   
  293.   Commands attached                     #mget_procedures#m
  294.   If values can be assigned             #mget_read_only#m
  295.  
  296. //Set properties
  297.  
  298.   Assign a demon                        #mset_demon#m 
  299.   Attach commands                       #mset_procedures#m  
  300.   Define number of values               #mset_number_of_values#m   
  301.   Define Read/Write status              #mset_read_only#m
  302.   
  303.  
  304. //Object-oriented Features
  305.  
  306.   Inherit a topic structure             #mim_a#m  
  307.   Create topic and inherit structure    #mnew#m   
  308.   Perform a topic locally               #mdo_local#m
  309.       
  310. //Program Control
  311.  
  312.   Loops:
  313.     Repeat until condition is met       #mrepeat#m
  314.     Execute while a condition holds     #mwhile#m 
  315.   Execute a topic                       #mdo#m
  316.   Execute a topic locally               #mdo_local#m
  317.   Execute a compiled string             #mevaluate#m
  318.   Execute a text string                 #mperform#m
  319.   Compile a text string                 #mcompile_string#m
  320.   Make a window modal                   #mmodal#m 
  321.   Set: 
  322.     Event handling topic                #mset_event_topic#m   
  323.     Error handling topic                #mset_error_topics#m  
  324.     Demon                               #mset_demon#m
  325.   Get: 
  326.     Event handling topic                #mget_event_topic#m   
  327.     Error handling topic                #mget_error_topic#m   
  328.     Demon                               #mget_demon#m
  329.   Execute function instead of topic     #mprimitive#m
  330.   Halt execution of current topic       #mwait#m  
  331.   End a wait                            #mcontinue#m
  332.   Leave a topic                         #mexit#m  
  333.   End Execution of a KB                 #mstop#m  
  334.   Clear a KB from memory                #mclear#m 
  335.   Exit KnowledgePro                     #mexit_kp#m 
  336.   Exit Windows                          #mexit_windows#m 
  337.      
  338. //Booleans, Rules and Arithmetic
  339.  
  340.   Creating rules                        #mrule#m  
  341.   Forming boolean expressions: 
  342.     Comparing expressions               #mcompare#m 
  343.     ANDing boolean expressions          #mand#m   
  344.     Negating a boolean expression       #mnot#m   
  345.     ORing boolean expressions           #mor#m
  346.   Performing arithmetic:   
  347.     Performing arithmetic expressions   #marith#m 
  348.     Negating a number                   #mneg#m   
  349.  
  350.   Arithmetic operators:
  351.  
  352.     +    Addition
  353.     -    Subtraction or Negation
  354.     /    Division
  355.     *    Multiplication
  356.     ^    Exponential            x = 4 ^ 3.    x is assigned 254.
  357.     MOD  Remainder of Division  x = 22 MOD 4. x is assigned 2.
  358.     DIV  Integer Division       x = 22 DIV 4. x is assigned 5.
  359.     %    Percentage             x = 20 % 10.  x is assigned 2.
  360.  
  361.        
  362. //Dynamic Data Exchange
  363.  
  364.   Responding to DDE requests
  365.  
  366.     Respond to DDE requests             #mdde#m   
  367.     Ignore DDE requests                 #mdde_off#m
  368.  
  369.   Controlling other applications using DDE:   
  370.  
  371.     Open a channel                      #mdde_open#m   
  372.     Request data                        #mdde_request#m
  373.     Write data                          #mdde_write#m  
  374.     Execute commands                    #mdde_execute#m
  375.     Advise of data change               #mdde_advise#m 
  376.     Stop advising of change             #mdde_unadvise#m
  377.     Close channel                       #mdde_close#m 
  378.       
  379. //Error Handling
  380.  
  381.     Display error message               #merror_message#m
  382.     List user error topics              #mget_error_topic#m 
  383.     Set error topics                    #mset_error_topic#m  
  384.  
  385. //Debugging
  386.  
  387.     Execute one step at a time          #msingle_step#m   
  388.     Turn off single stepping            #msingle_step_off#m  
  389.     Trace                               #mtrace#m
  390.     Trace off                           #mtrace_off#m
  391.  
  392. //Send Text to Printer
  393.  
  394.     Print with form feed                #mprint#m   
  395.     Print without form feed             #mwrite#m
  396.  
  397. //System Information
  398.  
  399.     Free memory remaining               #mmemory#m
  400.     Screen resolution                   #msystem_info#m
  401.     Date                                #mdate#m  
  402.     Time                                #mtime#m
  403.     Collect memory                      #mcollect#m 
  404.     Enable memory collection            #mcollect_ok#m
  405.     Disable memory collection           #mcollect_not_ok#m 
  406.       
  407. //Styles for Windows
  408.  
  409.  Display windows
  410.    Type:            Initial State:    Special Elements:                   
  411.      Overlapped        Visible          TitleBar                      
  412.      PopUp             Disabled         VertScroll                    
  413.      Child                              HorzScroll              
  414.                                                                        
  415.   Frame:           Control Menu:     Related Windows:
  416.      ThinFrame         MaximizeBox      ShowChildren                 
  417.      ThickFrame        MinimizeBox      Siblings             
  418.      DialogFrame                                                                 
  419.                                
  420.   Combined Styles:
  421.     OverlappedWindow includes [Overlapped, ThickFrame, ControlMenu,
  422.                  MaximizeBox, MinimizeBox, ShowChildren, TitleBar]
  423.     PopupWindow includes [Popup, ThickFrame, ShowChildren]
  424.     ChildWindow includes [Child, ThinFrame, ShowChildren, Siblings]
  425.     DialogWindow includes [Popup, DialogFrame, ShowChildren]
  426.  
  427.  Edit box styles:
  428.    LeftText      CenterText    RightText   MultiLine   
  429.    AutoVscroll   AutoHscroll   NoHideSel
  430.       
  431. //Alphabetic Listing of Functions
  432.   #mand#m                 #mfont_list#m             #mread_response#m  
  433.   #marith#m               #mfree_library#m          #mremove#m                
  434.   #mask#m                 #mfull_name#m             #mremove_topic#m           
  435.   #mattach_icon#m         #mget_active_window#m     #mrepeat#m                 
  436.   #mauto_hyper_off#m      #mget_check_box#m         #mreplace#m                
  437.   #mauto_hyper_on#m       #mget_cursor_pos#m        #mreplace_elements#m       
  438.   #mbitmap#m              #mget_demon#m             #mreset#m                  
  439.   #mbitmap_to_clipboard#m #mget_display_pos#m       #mresize_window#m          
  440.   #mbutton#m              #mget_display_window#m    #mrest#m                   
  441.   #mcalling_topic#m       #mget_error_topic#m       #mrule#m                   
  442.   #mchain#m               #mget_event_topic#m       #mrun#m                    
  443.   #mchar_to_number#m      #mget_file_pos#m          #msave_as#m                
  444.   #mcheck_box#m           #mget_focus#m             #msave_edit_file#m         
  445.   #mcheck_menu_item#m     #mget_list_box#m          #msave_topic#m             
  446.   #mchild_windows#m       #mget_number_of_values#m  #msay#m                    
  447.   #mchildren#m            #mget_procedures#m        #mset_active_window#m      
  448.   #mclass#m               #mget_radio_button#m      #mset_check_box#m          
  449.   #mclear#m               #mget_read_only#m         #mset_cursor_pos#m         
  450.   #mclose#m               #mget_scroll_bar#m        #mset_demon#m              
  451.   #mclose_all#m           #mget_text#m              #mset_display_pos#m        
  452.   #mclose_window#m        #mget_title#m             #mset_display_window#m     
  453.   #mcollect#m             #mget_top_window#m        #mset_error_topic#m       
  454.   #mcollect_not_ok#m      #mgets#m                  #mset_event_topic#m              
  455.   #mcollect_ok#m          #mgets_c#m                #mset_file_pos#m                
  456.   #mcombine#m             #mgroup_box#m             #mset_focus#m             
  457.   #mcompare#m             #mhide_window#m           #mset_number_of_values#m   
  458.   #mcompile_string#m      #mhide_scroll_bar#m       #mset_procedures#m         
  459.   #mconcat#m              #mhorz_scroll_text#m      #mset_radio_button#m       
  460.   #mcontinue#m            #mhyper_display#m         #mset_read_only#m          
  461.   #mcreate_bitmap#m       #mhyper_region#m          #mset_scroll_bar#m         
  462.   #mcreate_font#m         #micon#m                  #mset_text#m               
  463.   #mcreate_topic#m        #mim_a#m                  #mset_title#m              
  464.   #mcurrent_directory#m   #mintersect#m             #mset_top_window #m        
  465.   #mdate#m                #mlast#m                  #mshow_topic#m             
  466.   #mdde#m                 #mlist_box#m              #mshow_window#m            
  467.   #mdde_advise#m          #mlist_length#m           #msingle_step#m            
  468.   #mdde_close#m           #mlist_of_char#m          #msingle_step_off#m        
  469.   #mdde_execute#m         #mlist_to_string#m        #msort#m                   
  470.   #mdde_off#m             #mload#m                  #mstop#m                   
  471.   #mdde_open#m            #mload_bitmap#m           #mstring_copy#m            
  472.   #mdde_request#m         #mload_icon#m             #mstring_length#m          
  473.   #mdde_unadvise#m        #mload_library#m          #mstring_replace#m         
  474.   #mdde_write#m           #mload_program#m          #mstring_to_list#m         
  475.   #mdelay#m               #mlower#m                 #mstring_where#m           
  476.   #mdelete_bitmap#m       #mmake#m                  #msublist#m                
  477.   #mdelete_font#m         #mmake_c#m                #msystem_info#m            
  478.   #mdelete_icon#m         #mmake_modal#m            #mtask_list#m              
  479.   #mdifferent#m           #mmake_topic_list#m       #mtask_windows#m           
  480.   #mdir#m                 #mmemory#m                #mtext#m                   
  481.   #mdisable_menu_item#m   #mmenu#m                  #mtext_to_clipboard#m      
  482.   #mdisable_window#m      #mmove_window#m           #mtime#m                   
  483.   #mdo#m                  #mneg#m                   #mtrace#m                  
  484.   #mdo_local#m            #mnew#m                   #mtrace_off#m              
  485.   #medit_box#m            #mnew_file#m              #mtypeface_list#m          
  486.   #medit_file#m           #mnew_kb#m                #muncheck_menu_item#m      
  487.   #medit_line#m           #mnot#m                   #munion#m                  
  488.   #medit_window#m         #mnumber_to_char#m        #mupdate_window#m          
  489.   #melement#m             #mnumeric_sort#m          #mupper#m                  
  490.   #menable_all_windows#m  #mone_of#m                #muse_font#m               
  491.   #menable_menu_item#m    #mor#m                    #muser#m                   
  492.   #menable_window#m       #mparent#m                #mvalue_of#m              
  493.   #merror_message#m       #mparent_window#m         #mvert_scroll_bar#m        
  494.   #mevaluate#m            #mperform#m               #mvert_scroll_text#m       
  495.   #mexists#m              #mprimitive#m             #mwait#m                   
  496.   #mexit#m                #mprint#m                 #mwhere#m                  
  497.   #mexit_kp#m             #mradio_button#m          #mwhile#m                  
  498.   #mexit_windows#m        #mread#m                  #mwindow#m                 
  499.   #mfile_menu#m           #mread_char#m             #mwindow_info#m            
  500.   #mfirst#m               #mread_clipboard#m        #mwindow_list#m
  501.   #mflatten#m             #mread_line#m             #mwrite#m
  502.                                                #m?#m
  503.  
  504. //Converting from KnowledgePro (DOS) ver. 1.X
  505.  
  506. The knowledge base CONVERT.SRC is included to help you convert
  507. knowledge bases developed under KnowledgePro (DOS) ver. 1.x
  508. to KnowledgePro (Windows) applications.
  509.  
  510. To use the knowledge base include the line:
  511.               @ CONVERT.SRC
  512. as the first line in your knowledge base. Make sure that 
  513. CONVERT.SRC is in the same directory as your knowledge base
  514. and recompile the knowledge base using KnowledgePro (Windows).
  515. To run the knowledge base select File/Run.
  516.  
  517. CONVERT will translate commands that have changed between
  518. environments and will inactivate DOS commands that do not
  519. exist under windows.  If you want to see the major differences
  520. between the versions you may want to print CONVERT.SRC.
  521.  
  522. Even though many knowledge bases will immediately run after
  523. including CONVERT, you'll probably want to modify them to take
  524. advantage of the many features of the windows environment.
  525.  
  526. Here are a few areas to watch out for:
  527.  
  528.   1] Colors - The colors supported are different between version.
  529.         Since Windows does not use colored windows in the 
  530.         same way as DOS, you're probably better off getting rid
  531.         of all your colors and then adding them as needed.                
  532.  
  533.   2] The DOS version let you refer to the device names
  534.               con: , lst: , aux: , kbd: 
  535.  
  536.         without surrounding them with quotes. If you have
  537.         done this, you must include the quotes before using
  538.         the knowledge base under KnowledgePro (Windows).
  539.  
  540.   3] The WINDOWS version handles hypertext differently than
  541.      the DOS version. For example:
  542.  
  543.           window (,10,5,40,10).
  544.           say ('This is an example of #m#mhypertext#m#m').
  545.           close_window ().
  546.  
  547.           topic hypertext.
  548.             say ('This text overwrites the old text.').
  549.           end.
  550.  
  551.      In the DOS version, the hypertext returns to the original
  552.      screen once the second message is read and waits for input.
  553.      In WINDOWS hypertext returns to the next command line. If
  554.      the hypertext is displayed in a new window this does not 
  555.      create a problem but in the example above, the first message 
  556.      is not automatically redisplayed.  This can easily be 
  557.      remedied by opening a new window. 
  558.  
  559.           topic hypertext.
  560.             window (,10,5,40,10).
  561.             say ('This text overwrites the old text.').
  562.             close_window ().
  563.           end.
  564.  
  565.      This change adds flexibility to hypertext that you will
  566.      come to appreciate as you dive into the system.
  567.              
  568. //Knowledge Bases Included
  569.  
  570.   The knowledge bases shipped with this Pre-production Version
  571.   of KnowledgePro include:
  572.  
  573.     apphelp.src   help system which can be used with your 
  574.                      applications
  575.     chartest.kb   list the event and code generated by 
  576.                      key presses
  577.     color.kb      create custom colors and copy RGB value 
  578.                      to the clipboard
  579.     convert.src   convert from KnowledgePro (DOS) to (Windows)
  580.     ddeshow.kb    an example of interaction with Microsoft Excel
  581.     design.kb     design interface screens
  582.     engine.kb     a hypertext file rea
  583.     font.kb       test different fonts and copy the code 
  584.                      to the clipboard
  585.     fontprn.kb    print a listing of available fonts
  586.     index.kb      index a text file
  587.     insure1.kb    sample of a rule-based system
  588.     insure2.kb    problem from insure1 solved using a 
  589.                      different technique
  590.     intro.kb      an introduction to KnowledgePro
  591.     kphelp.src    the help knowledge base you are using now
  592.     palette.kb    a list of standard colors for windows and text
  593.     sample*.kb    the example described in Chapter 2
  594.     seticon.kb    utility to install icons on Windows 3.0
  595.                      Program Manager
  596.     sigdits.kb    rounding a number 
  597.  
  598. //Help
  599.  
  600.     On-Line Help in KnowledgePro
  601.  
  602.     The line below shows the font used for hypertext
  603.     on your monitor.
  604.  
  605.     #mThis is the font for hypertext on the current monitor.#m
  606.  
  607.     To select hypertext, point and click with the mouse
  608.     or, use TAB and SHIFT TAB to move the cursor among 
  609.     hypertext items and press ENTER to select the item.
  610.  
  611.     To return to the first screen, select TOP.
  612.     To see a list of the KnowledgePro functions select FUNCTIONS.
  613.     To go back to the previous screen, select BACK.
  614.  
  615.     To print the current item, select PRINT.
  616.  
  617.     When the syntax of a KnowledgePro function is displayed, 
  618.     you can select COPY to copy the format of the function 
  619.     to the clipboard.  In your edit window, Edit/Paste will 
  620.     insert the syntax at the current cursor position.
  621.  
  622. //?
  623. #cenable_menu_item (?m1, &Copy). 
  624. Format is '?TOPIC  ({PARAMETER1, PARAMETER2,...}).'.#c
  625. Format      ?TOPIC  ({PARAMETER1, PARAMETER2,...})
  626.     
  627. Alternate   value_of (TOPIC {,PARAMETER1,PARAMETER2,... }) 
  628.     
  629. Action      Find the list of items assigned to a topic.  If TOPIC 
  630.             has already been evaluated, the current value is 
  631.             returned.   The system will search the hierarchy for 
  632.             TOPIC.  If TOPIC is not yet evaluated, the commands 
  633.             associated with it are immediately executed until the 
  634.             maximum number  of legal  values  for  the  topic has  
  635.             been  reached,  or an exit or stop is executed.  
  636.  
  637.             If  the number  of  legal values was not set,  all of  
  638.             the  commands in the  topic are executed.   This  
  639.             command implements a backward  chaining function. The 
  640.             optional PARAMETERS  are parameters which can  be 
  641.             passed to the  topic  if  it  is evaluated at this 
  642.             time.  If TOPIC can't be found, an error message is 
  643.             given.   
  644.     
  645. Parameters  TOPIC is a topic or list  of topics whose values  you  
  646.             want  to  find. If  these values  have not yet been  
  647.             determined  the topics' commands are executed.
  648.     
  649.                {PARAMETER1, PARAMETER2 , ...  } 
  650.  
  651.             are parameters passed to TOPIC when it is executed.
  652.     
  653. Returns     The  value  or  list  of values of the 
  654.             specified  topic  or topics. 
  655.     
  656. Note          ?x(a,b)  
  657.    
  658.             is equivalent to   
  659.     
  660.                do (?x,a,b).  
  661.     
  662.             x is evaluated and then the result of this evaluation 
  663.             is passed a and b and executed.
  664.     
  665.                ?(x(a,b))
  666.     
  667.             is evaluated to    
  668.     
  669.                value_of (do (x,a,b)).  
  670.  
  671.  
  672. //and
  673. #cenable_menu_item (?m1, &Copy).
  674. Format is 'and (BOOLEAN1,BOOLEAN2).'.#c
  675. Format      and (BOOLEAN1,BOOLEAN2)
  676.  
  677. Alternate   BOOLEAN1 and BOOLEAN2 
  678.             BOOLEAN1 & BOOLEAN2
  679.  
  680. Action      The infix and is most commonly used to combine 
  681.             conditional statements in a rule.  The conditions are 
  682.             evaluated and the two boolean values are anded 
  683.             together to produce the resulting value. In the 
  684.             functional form, lists are anded item by item.     
  685.  
  686.             Anything anded with a value of [ ] gives a result of    
  687.             [ ]. The values T, True and Yes are treated as  a  
  688.             boolean value of true,  anything else is treated as 
  689.             false.
  690.  
  691. Parameters  BOOLEAN1, BOOLEAN2 are single boolean values, lists 
  692.             of boolean values or expressions that evaluate to 
  693.             either of these.
  694.  
  695. Returns     A  boolean  value or a list of boolean values  that  
  696.             is  the result of anding together the two lists of 
  697.             booleans. and returns T if both elements are T and F 
  698.             otherwise.  List are anded element by element.  
  699.             Missing elements are treated as [ ].
  700.  
  701. Note        When and is used as an infix operator (between two 
  702.             boolean expressions)  the second expression is not 
  703.             evaluated if the first  expression evaluates to 
  704.             false.  The condition in the above example would be 
  705.             represented internally as:
  706.  
  707.             [and,[eq,?color,red],[delay,[and,[eq,?shape,round],
  708.              [delay, [eq,?skin,smooth]]]]]
  709.  
  710.             delay is used to prevent evaluation until the first 
  711.             boolean expression is evaluated.
  712.  
  713. //arith
  714. #cenable_menu_item (?m1, &Copy).
  715. Format is 'arith (OPERATOR, NUMBER1, NUMBER2) .'.#c
  716. Format      arith (OPERATOR, NUMBER1, NUMBER2) 
  717.  
  718. Alternate   NUMBER1 OPERATOR NUMBER2
  719.  
  720. Action      Perform arithmetic operations on NUMBERS. If NUMBER1 
  721.             and NUMBER2 are both lists, the operation is 
  722.             performed sequentially on pairs of elements. If one 
  723.             item is a list and the other is a single element, the 
  724.             element operates on each item in the list. In infix 
  725.             expressions, operators fall into  three categories, 
  726.             denoted by their order of precedence:
  727.     
  728.         1] - (negation)
  729.         2] *, /, div, ^
  730.         3] +, -, mod, %
  731.  
  732.             Operators  of the same precedence are evaluated from 
  733.             left to right. Expressions within parentheses are 
  734.             evaluated  first. Parentheses should  be used to 
  735.             clearly denote the desired order of arithmetic 
  736.             operators. [ ] and non-numeric items are treated  as 
  737.             zero.  Division by zero results in 1.7E+308,  the 
  738.             maximum numeric value.
  739.  
  740. Parameters  OPERATOR is one of the list of legal operators that 
  741.             describes the type of operation to be performed. 
  742.  
  743.             The legal operators for the alternate form are:
  744.  
  745.         + , - , / , * , div , mod , ^ , % .
  746.  
  747.             The legal operators for the first form are:
  748.  
  749.             =,  - , / , * , div , mod , ^ , % , add ,  sub,  mul,
  750.             int_divide, divide, mod_f, expon, and per_cent. 
  751.  
  752.             div  returns  the  integer  result  of  dividing  two 
  753.             numbers.
  754.  
  755.             mod returns the remainder resulting from dividing two 
  756.             numbers.
  757.  
  758.             ^ returns the result of raising the first number to         
  759.             the power of the second.
  760.  
  761.             % takes the percentage of a number.
  762.  
  763.             NUMBER1, NUMBER2  are the two lists of numbers on 
  764.             which to perform the operations.
  765.  
  766. Returns     The result of the operation performed.
  767.  
  768. //ask
  769. #cenable_menu_item (?m1, &Copy).
  770. Format is 'ask (QUESTION {,TOPIC, LIST}).'.#c
  771. Format      ask (QUESTION {,TOPIC, LIST})
  772.             
  773. Action      Clears the window.  Places a question on the screen 
  774.             and waits for the user to either select an answer 
  775.             from a list box or type an answer into an edit line.
  776.  
  777. Parameters  QUESTION is the question that appears on the screen 
  778.             as a  prompt for the user.  The following control 
  779.             codes can be embedded within the text of QUESTION to 
  780.             control  the display of information on the screen:
  781.  
  782.             ##n    start a new line
  783.             ##p    start a new page
  784.             ##e    erase the contents of the window
  785.             ##l    put each list item on a new line (default)
  786.             ##s    put each list item on the same line
  787.             ##o    no spaces after a list item
  788.             ##i    insert a space after each list item (default)
  789.             ##m    begin or end marked text
  790.             ####    display the character ## 
  791.             ##INTEGER   print the ASCII character of INTEGER
  792.             ##xINTEGER     move to column INTEGER
  793.             ##yINTEGER     move to row  INTEGER  
  794.             ##gHANDLE    display  a bitmap.  HANDLE is the  handle 
  795.                         returned by load_bitmap.
  796.             ##fCOLOR    change  foreground color to COLOR
  797.             ##bCOLOR      change  background color to COLOR
  798.             ##d        return to default colors
  799.             ##cTEXT##c    TEXT is compiled and evaluated
  800.             ##vTEXT##v    TEXT is compiled, evaluated and any value 
  801.                         returned is displayed
  802.  
  803.             TOPIC is the topic or list of topics where the answer 
  804.             given to the prompt  is assigned. If no TOPIC is 
  805.             named,  the  answer is assigned to the current topic.  
  806.             If  the topic does not exist,  it  is created
  807.  
  808.             LIST is a list of possible responses to the prompt 
  809.             which appear in a list box.  The list box allows the 
  810.             user to select multiple answers unless the TOPIC has 
  811.             been previously defined as single valued.  If no LIST  
  812.             is given, an edit line is provided for the user to 
  813.             type in the  response to the question. 
  814.  
  815.             See Section 3.4 for information on using control 
  816.             codes.
  817.  
  818.             The following color names may be placed after the ##f 
  819.             and ##b:
  820.  
  821.             black, blue, green, cyan, red, magenta, yellow, white   
  822.  
  823.             At least one blank space must follow the name of the 
  824.             color. In addition, to using defined color names,  
  825.             colors can also be defined numerically.  This is 
  826.             described in Section 3.2.1.2.
  827.  
  828. Returns     The answer provided by the user.
  829.  
  830. Errors      ask calls:
  831.  
  832.                 text
  833.                 list_box
  834.                 make
  835.                 edit_line
  836.  
  837.             These functions can generate their own error 
  838.             messages.
  839.  
  840.             Attempting to assign to TOPIC more than the legal             
  841.             number of values specified by a set_number_of_values         
  842.             topic.
  843.  
  844.             I_READ_ONLY_TOPIC, I_TOO_MANY_VALUES, 
  845.             I_CANT_CREATE_TEMP_FILE
  846.  
  847. See Also    #mlist_box#m, #mread_response#m
  848.     
  849. //attach_icon
  850. #cenable_menu_item (?m1, &Copy).
  851. Format is 'attach_icon ({HANDLE}, ICON_HANDLE).'.#c
  852. Format      attach_icon ({HANDLE}, ICON_HANDLE)
  853.  
  854. Action      The icon from ICON_HANDLE is assigned to the window. 
  855.             The icon is displayed when the window is minimized.  
  856.             An icon should only be assigned to a window using the 
  857.             Overlapped style.
  858.  
  859. Parameters  HANDLE is the handle of the window is which assigned         
  860.             the icon.  The default is the current display window.
  861.  
  862.             ICON_HANDLE is the handle of an icon previously 
  863.             loaded with load_icon. If ICON_HANDLE is [ ] and an 
  864.             icon was previously assigned to HANDLE, the icon is 
  865.             removed from the window.  If ICON_HANDLE is a list, 
  866.             only the first item is used. 
  867.  
  868. Returns     WINDOW_ICON_HANDLE, The handle of the window's icon.          
  869.             This is not the same as ICON_HANDLE or HANDLE.
  870.  
  871. Errors      I_NOT_ICON, I_INVALID_WINDOW
  872.  
  873. See Also    #mdelete_icon#m, #micon#m, #mload_icon#m
  874.  
  875. //auto_hyper_off
  876. #cenable_menu_item (?m1, &Copy).
  877. Format is 'auto_hyper_off (HANDLE).'.#c
  878. Format      auto_hyper_off (HANDLE)
  879.  
  880. Action      Turns the automatic hypertext feature off. When the 
  881.             automatic hypertext is off, only text strings which 
  882.             have been surrounded with ##m characters and hyper-
  883.             regions can be selected as hypertext.
  884.  
  885. Parameters  HANDLE is a handle or a list of handles of windows     
  886.             where automatic hypertext is not operable.
  887.  
  888. Note        When a window is created it defaults to 
  889.             auto_hyper_off so unless the automatic hypertext 
  890.             feature has been activated using auto_hyper_on, this 
  891.             topic is not necessary.
  892.  
  893. Errors      I_INVALID_WINDOW
  894.  
  895. See Also    #mauto_hyper_on#m
  896.  
  897. //auto_hyper_on
  898. #cenable_menu_item (?m1, &Copy).
  899. Format is 'auto_hyper_on (HANDLE).'.#c
  900. Format      auto_hyper_on (HANDLE)
  901.  
  902. Action      Turns the automatic hypertext feature on. When the 
  903.             automatic hypertext is on, any text strings can be 
  904.             selected as hypertext by either clicking the mouse or 
  905.             by pressing ENTER.  If no text is highlighted, the 
  906.             word under the text cursor or the mouse cursor is 
  907.             selected.  To select a group of words they must first 
  908.             be marked by clicking and dragging the mouse or 
  909.             pressing SHIFT and the CURSOR KEYS.
  910.  
  911. Parameters  HANDLE is a handle or a list of handles of windows 
  912.             that contain automatic hypertext.
  913.  
  914. Note        The default is for the automatic hypertext function 
  915.             to be off.
  916.  
  917. Errors      I_INVALID_WINDOW
  918.  
  919. See Also    #mauto_hyper_off#m
  920.  
  921. //bitmap
  922. #cenable_menu_item (?m1, &Copy).
  923. Format is 'bitmap (BITMAP_HANDLE {, COLUMN, ROW}).'.#c
  924. Format      bitmap (BITMAP_HANDLE {, COLUMN, ROW})
  925.  
  926. Action      Displays the bitmap associated with the handle at the 
  927.             specified screen position. 
  928.  
  929. Parameters  BITMAP_HANDLE is the handle of the bitmap to be 
  930.             displayed.  The BITMAP_HANDLE is assigned by 
  931.             load_bitmap, create_bitmap or read_clipboard.
  932.  
  933.             COLUMN, ROW is the bitmap location.  The default is 
  934.             the current position.  COLUMN and ROW are relative to 
  935.             the upper left corner of the display area of the 
  936.             current display window.
  937.  
  938. Errors      I_NOT_BITMAP
  939.  
  940. See Also    #mbitmap_to_clipboard#m, #mdelete_bitmap#m, 
  941.             #mload_bitmap#m, #mread_clipboard#m, 
  942.             #mcreate_bitmap#m
  943.  
  944. //bitmap_to_clipboard
  945. #cenable_menu_item (?m1, &Copy).
  946. Format is 'bitmap_to_clipboard (BITMAP_HANDLE).'.#c
  947. Format      bitmap_to_clipboard (BITMAP_HANDLE)
  948.  
  949. Action      Makes a copy of the bitmap and places it in the 
  950.             clipboard.   
  951.  
  952. Parameters  BITMAP_HANDLE is the handle to a bitmap.  If this 
  953.             item is a list, only the first element is used.  The 
  954.             bitmap handle is assigned by load_bitmap, 
  955.             create_bitmap or read_clipboard.  
  956.  
  957. Errors      I_NOT_BITMAP, I_CANT_OPEN_BITMAP
  958.  
  959. See Also    #mbitmap#m, #mcreate_bitmap#m, #mdelete_bitmap#m, 
  960.             #mload_bitmap#m, #mread_clipboard#m
  961.  
  962. //button
  963. #cenable_menu_item (?m1, &Copy).
  964. Format is 'button (TEXT, {EVENT_TOPIC, COLUMN, ROW, WIDTH, SELECTED, EVENT_LIST}).'.#c
  965. Format      button (TEXT, {EVENT_TOPIC, COLUMN, ROW, WIDTH, 
  966.                SELECTED, EVENT_LIST})
  967.  
  968. Action      A button is created at COLUMN, ROW in the current 
  969.             display window.  If an EVENT_LIST is specified, 
  970.             EVENT_TOPIC is called whenever the selected events 
  971.             occur while the focus is on the button.
  972.  
  973. Parameters  BUTTON_TEXT is the text to appear on the button.
  974.  
  975.             EVENT_TOPIC is the topic or list of topics to be 
  976.             performed when an event on the EVENT_LIST occurs 
  977.             while the focus is on the button.  EVENT_TOPIC is 
  978.             called as: 
  979.  
  980.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  981.  
  982.             EVENT_INFO depends on the event that occurs.  A 
  983.             description of events is provided in Appendix D.
  984.  
  985.             EVENT_NAME is the name of the event that occurred.  
  986.  
  987.             HANDLE is the handle assigned to the button.  
  988.  
  989.             If EVENT_TOPIC sets its value to true after being 
  990.             called by a lose_focus_event, close_event, 
  991.             char_event, or a sys_char_event, further 
  992.             processing of the event is canceled. Whenever             
  993.             EVENT_TOPIC is called its value is reset before it is 
  994.             executed. If no EVENT_TOPIC is defined, no 
  995.             events are recognized.
  996.  
  997.             COLUMN, ROW is the button location.  The default is 
  998.             the current display position.  COLUMN and ROW are 
  999.             relative to the upper left corner of the display 
  1000.             area of the current display window.
  1001.  
  1002.             WIDTH is the width of the button in system 
  1003.             characters.  The default is the width of 
  1004.             BUTTON_TEXT + 2.
  1005.  
  1006.             SELECTED is a boolean value.  If the value is true, 
  1007.             then the button will appear highlighted.  The default 
  1008.             is false.
  1009.  
  1010.             EVENT_LIST is a list of events that cause the 
  1011.             EVENT_TOPIC to be  called.  The events that can be 
  1012.             processed are:
  1013.  
  1014.             get_focus_event, lose_focus_event, close_event,    
  1015.             char_event,  sys_char_event, select_event
  1016.  
  1017.             These events are described in detail in Appendix D.  
  1018.             If no event is specified, the default event handled 
  1019.             by a button is a select_event.
  1020.  
  1021. Returns     HANDLE, the handle of the button.
  1022.  
  1023. See Also    #mDescription of Events#m
  1024.  
  1025. //calling_topic
  1026. #cenable_menu_item (?m1, &Copy).
  1027. Format is 'calling_topic (COUNT).'.#c
  1028. Format      calling_topic (COUNT)
  1029.  
  1030. Action      This is used to find the full name of the topic that 
  1031.             contains the current command.  It also returns the 
  1032.             parameters that were passed to the calling topics.
  1033.  
  1034. Parameters  COUNT  is an integer (0 <=  COUNT <= 65535) which 
  1035.             indicates the call to return.
  1036.         
  1037.             0   the topic that contains the current command  i.e.                          
  1038.                 the current topic.
  1039.             1   the topic that called the current topic.
  1040.             2   the topic that called the topic that contains the                     
  1041.                 current topic.
  1042.  
  1043.             If count extends beyond !main, [ ] is returned.
  1044.  
  1045. Returns     Returns the full name of the topic containing the 
  1046.             command and its evaluated parameters as a list 
  1047.         
  1048.                [full_name, parameter1, parameter2...]
  1049.  
  1050. Note        If calling_topic topic is included in the then or 
  1051.             else part of the rule, or in a while or repeat 
  1052.             statement, that rule, while or repeat will be 
  1053.             considered the 0 level call.
  1054.  
  1055. Errors      I_INVALID_ELEMENT
  1056.  
  1057. //chain
  1058. #cenable_menu_item (?m1, &Copy).
  1059. Format is 'chain (COMMAND {,SHOW_CODE}).'.#c
  1060. Format      chain (COMMAND {,SHOW_CODE})
  1061.  
  1062. Action      Terminates  the current knowledge base and begins 
  1063.             executing a DOS command or Windows program. In the 
  1064.             runtime version it also terminates KnowledgePro.
  1065.  
  1066. Parameters  COMMAND is  any legal  DOS  command or program or 
  1067.             Windows program batch file  or program  name.  If   
  1068.             this  parameter is  [ ]  or   absent, the knowledge 
  1069.             base  is  exited  and  COMMAND  is executed.  If no 
  1070.             extension is provided, .EXE is assumed.
  1071.  
  1072.             SHOW_CODE is a code indicating how the program should 
  1073.             be displayed.  If this parameter is a list, only the 
  1074.             first element is used.  Possible values are:
  1075.  
  1076.             0    hidden
  1077.             1    normal
  1078.             2    minimized (iconic)
  1079.             3    maximized
  1080.             4    not active window - does not get the focus
  1081.             5    normal - window gets the focus
  1082.             7    minimized, but window does not get focus
  1083.         
  1084.             The default is 1.
  1085.  
  1086. Returns     If successful, it does not return.  Error conditions 
  1087.             are returned as numeric codes.  Error codes are:
  1088.  
  1089.             2    the program was not found
  1090.             16    the program name was invalid
  1091.             17    the command line is longer than 80 characters 
  1092.  
  1093. Errors      I_EXT_STRING_LONG, I_NO_TIMER
  1094.  
  1095. //char_to_number
  1096. #cenable_menu_item (?m1, &Copy).
  1097. Format is 'char_to_number (CHARACTER).'.#c
  1098. Format      char_to_number (CHARACTER)
  1099.  
  1100. Action      This topic is used to convert a character to its 
  1101.             equivalent ASCII value.    
  1102.  
  1103. Parameters  CHARACTER is a character,  string or list of 
  1104.             characters or strings.
  1105.  
  1106. Returns     The integer ASCII value of each of the characters.  
  1107.             If CHARACTER is a string or list, a list of integers 
  1108.             is returned.
  1109.  
  1110. //check_box
  1111. #cenable_menu_item (?m1, &Copy).
  1112. Format is 'check_box (TEXT {,EVENT_TOPIC, COLUMN, ROW, SELECTED, EVENT_LIST}).'.#c
  1113. Format      check_box (TEXT {,EVENT_TOPIC, COLUMN, ROW, SELECTED,                  
  1114.                EVENT_LIST})
  1115.  
  1116. Action      A check box with the name TEXT is created at COLUMN, 
  1117.             ROW in the current display window.
  1118.  
  1119. Parameters  TEXT is the text appearing with the check box.
  1120.  
  1121.             EVENT_TOPIC is the topic to be performed when an 
  1122.             event on the EVENT_LIST occurs while the focus is on 
  1123.             the check box.  
  1124.     
  1125.             EVENT_TOPIC is called as:  
  1126.  
  1127.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  1128.  
  1129.             EVENT_INFO depends on the event that occurs.  A 
  1130.             description of events is provided in Appendix D.
  1131.  
  1132.             EVENT_NAME is the name of the event that occurred.  
  1133.  
  1134.             HANDLE is the handle assigned to the check box. 
  1135.  
  1136.             If EVENT_TOPIC sets its value to true after being 
  1137.             called by a lose_focus_event, close_event, 
  1138.             char_event, or a sys_char_event, further processing 
  1139.             of the event is canceled.   Whenever EVENT_TOPIC is 
  1140.             called its value is reset before it is executed. If 
  1141.             no EVENT_TOPIC is defined, no events are recognized.
  1142.  
  1143.             COLUMN, ROW is the  check box location.  The default 
  1144.             is the current display position. COLUMN and ROW are 
  1145.             relative to the upper left corner of the display area 
  1146.             of the current display window.
  1147.  
  1148.             SELECTED is a boolean value. If the boolean is true, 
  1149.             the check box is checked.  The default is false.
  1150.  
  1151.             EVENT_LIST is a list of events that will cause the 
  1152.             EVENT_TOPIC to be called.  The events that can be 
  1153.             processed are:              
  1154.  
  1155.             get_focus_event, lose_focus_event, close_event                 
  1156.             char_event, sys_char_event, select_event  
  1157.  
  1158.             These events are described in detail in Appendix D.  
  1159.             If no event is specified, the default event handled 
  1160.             by a check box is a select_event.
  1161.  
  1162. Returns     HANDLE, the handle of the check box.
  1163.  
  1164. See Also    #mget_check_box#m, #mset_check_box#m, #mDescription of Events#m
  1165.      
  1166. //check_menu_item
  1167. #cenable_menu_item (?m1, &Copy).
  1168. Format is 'check_menu_item (HANDLE, ITEM).'.#c
  1169. Format      check_menu_item (HANDLE, ITEM)
  1170.  
  1171. Action      A check mark is placed next to the specified item.  
  1172.             Checks are usually used to show menu items that can 
  1173.             be toggled between two states.  uncheck_menu_item is 
  1174.             used to remove the check from an item.  This topic no 
  1175.             effect if the menu item is already checked.
  1176.  
  1177. Parameters  HANDLE the handle of the menu that contains the items 
  1178.             you want to place a check next to.
  1179.         
  1180.             ITEM is the name of a menu item, or list of items.
  1181.  
  1182. See Also    #mdisable_menu_item#m, #menable_menu_item#m, 
  1183.             #mmenu#m, #muncheck_menu_item#m
  1184.  
  1185. //child_windows
  1186. #cenable_menu_item (?m1, &Copy).
  1187. Format is 'child_windows ({HANDLE}).'.#c
  1188. Format      child_windows ({HANDLE})
  1189.  
  1190. Action      Used to find the child windows that belong to a 
  1191.             specified window or list of windows.
  1192.  
  1193. Parameters  HANDLE a window handle or list of window handles.  
  1194.             The default is the active window.
  1195.  
  1196. Returns     A list of the child windows of all the selected 
  1197.             windows.  This includes screen objects inside the 
  1198.             window and windows which contain the style child.
  1199.  
  1200. Errors      I_INVALID_WINDOW
  1201.  
  1202. See Also    #mparent_windows#m, #mwindow_info#m
  1203.  
  1204. //children
  1205. #cenable_menu_item (?m1, &Copy).
  1206. Format is 'children (TOPIC).'.#c
  1207. Format      children (TOPIC)
  1208.  
  1209. Action      Returns the names of the topics which are immediate 
  1210.             children of  the topic specified.  If a list of 
  1211.             TOPICS is given,  a list of children for each of the 
  1212.             topics is returned.   Grandchildren of TOPIC are not 
  1213.             returned.
  1214.  
  1215. Parameters  TOPIC contains the names of the topics whose children 
  1216.             you want to find.
  1217.  
  1218. Returns     A list of the children of TOPIC.
  1219.  
  1220. See Also    #mparent#m, #mmake_topic_list#m, #mshow_topic#m, 
  1221.             #mcalling_topics#m, #mfull_name#m
  1222.  
  1223. //class
  1224. #cenable_menu_item (?m1, &Copy).
  1225. Format is 'class (TOPIC).'.#c
  1226. Format      class (TOPIC)
  1227.  
  1228. Action      Used to find all of the topics from which TOPIC 
  1229.             inherits commands and sub-topics.  When a topic 
  1230.             inherits commands and sub-topics from another topic 
  1231.             it is said to be a member of the class of the first 
  1232.             topic.  This occurs when im_a or new is used as in 
  1233.             the example shown below. 
  1234.  
  1235. Parameters  TOPIC is a topic name or list of topic names of 
  1236.             topics whose class membership you want to find. The 
  1237.             default is the current topic.
  1238.  
  1239. Returns     A list of the classes from which each topic has 
  1240.             inherited commands and sub-topics.  If a topic 
  1241.             inherits from several classes, the classes are 
  1242.             returned as a sub-list.  If a topic is not a member 
  1243.             of any class, [] is returned.
  1244.  
  1245. Error       I_V_TOPIC_NOT_FOUND
  1246.  
  1247. See Also    #mim_a#m, #mnew#m
  1248.  
  1249. //clear
  1250. #cenable_menu_item (?m1, &Copy).
  1251. Format is 'clear ( ).'.#c
  1252. Format      clear ( )
  1253.  
  1254. Action      Terminates the execution of the knowledge base and 
  1255.             removes it  from memory. All windows and files are 
  1256.             closed and all libraries are unloaded.  Open bitmaps, 
  1257.             icons and fonts are deleted.
  1258.  
  1259. Notes       clear ( ) 
  1260.             performs the same action as choosing Clear from the 
  1261.             main menu. In the runtime version, KnowledgePro is 
  1262.             exited.
  1263.  
  1264. See Also    #mexit_kp#m, #mexit_window#m, #mstop#m
  1265.  
  1266. //close
  1267. #cenable_menu_item (?m1, &Copy).
  1268. Format is 'close (FILE).'.#c
  1269. Format      close (FILE)
  1270.  
  1271. Action      File or list of files named are closed. 
  1272.  
  1273. Parameters  FILE is the name of a file or a list of files you  
  1274.             want to close.   Remember that any names containing a 
  1275.             period must be enclosed in single quotes.
  1276.  
  1277. Returns     T or F for each file in FILE, depending on the 
  1278.             success in closing the file.
  1279.  
  1280. Note        Closing a file tells KnowledgePro that you are 
  1281.             finished accessing the file.  Files are closed 
  1282.             automatically when a knowledge base is terminated, 
  1283.             but it is a good idea to explicitly close all files 
  1284.             as soon as you have finished using them.  This 
  1285.             releases memory used  by the file for other purposes.  
  1286.             Also, KnowledgePro does not write directly to disk 
  1287.             files; it writes to a memory buffer.  When the buffer 
  1288.             fills or the file is closed, the contents of the 
  1289.             buffer are written to the disk.  If a system crash 
  1290.             occurs before the file is closed, valuable 
  1291.             information could be lost. 
  1292.  
  1293. Errors      I_CANT_CLOSE, I_FILE_NOT_OPEN 
  1294.  
  1295. //close_all
  1296. #cenable_menu_item (?m1, &Copy).
  1297. Format is 'close_all ( ).'.#c
  1298. Format      close_all ( )
  1299.  
  1300. Action      Closes all open files.  
  1301.  
  1302. Returns     A list of T or F's , depending on the success in 
  1303.             closing the files.
  1304.  
  1305. Note        Closing a file tells KnowledgePro that you are 
  1306.             finished accessing the file.  Files are closed 
  1307.             automatically when a knowledge base is terminated, 
  1308.             but it is a good idea to explicitly close all files 
  1309.             as soon as you are finished using them.  This 
  1310.             releases memory used  by the file for other purposes.  
  1311.             Also, KnowledgePro does not write directly to disk 
  1312.             files; it writes to a memory buffer.  When the buffer 
  1313.             fills or the file is closed, the contents of the 
  1314.             buffer are written to the disk.  If a system crash 
  1315.             occurs before the file is closed, valuable 
  1316.             information could be lost. 
  1317.  
  1318. Errors      I_CANT_CLOSE, I_FILE_NOT_OPEN
  1319.  
  1320. //close_window
  1321. #cenable_menu_item (?m1, &Copy).
  1322. Format is 'close_window ({HANDLE}).'.#c
  1323. Format      close_window ({HANDLE})
  1324.  
  1325. Action      A window or screen object is closed and the memory 
  1326.             allocated to it is released.  Garbage collection is 
  1327.             performed.  If the window is the current display or 
  1328.             active window, the previous display or active window 
  1329.             becomes current.  The window and all screen objects 
  1330.             receive close_events.
  1331.  
  1332. Parameters  HANDLE is the handle or list of handles of the 
  1333.             windows and screen objects to close.  If no handle is 
  1334.             specified, the current display window is closed.
  1335.  
  1336. Errors      I_INVALID_WINDOW 
  1337.  
  1338. See Also    #mhide_window#m, #mdisable_window#m
  1339.  
  1340. //collect
  1341. #cenable_menu_item (?m1, &Copy).
  1342. Format is 'collect ( ) .'.#c
  1343. Format      collect ( ) 
  1344.  
  1345. Action      This topic forces garbage collection.   Garbage 
  1346.             collection is the process of freeing  the  memory  no  
  1347.             longer  needed  by  the knowledge  base. 
  1348.  
  1349. See Also    #mcollect_ok#m, #mcollect_not_ok#m
  1350.  
  1351. //collect_not_ok
  1352. #cenable_menu_item (?m1, &Copy).
  1353. Format is 'collect_not_ok ( ) .'.#c
  1354. Format      collect_not_ok ( ) 
  1355.  
  1356. Action      This  topic  turns  off the ability of the  system  
  1357.             to  do garbage collection.  During time critical 
  1358.             operations,  you  may want to turn off garbage 
  1359.             collection. Be sure to turn garbage collection back 
  1360.             on or unused memory will not be recovered.
  1361.  
  1362. See Also    #mcollect#m, #mcollect_ok#m
  1363.  
  1364. //collect_ok
  1365. #cenable_menu_item (?m1, &Copy).
  1366. Format is 'collect_ok ( ) .'.#c
  1367. Format      collect_ok ( ) 
  1368.  
  1369. Action      This  topic  allows garbage collection to take  
  1370.             place, but does not force it to occur.  This is the 
  1371.             default setting.   
  1372.  
  1373. See Also    #mcollect#m, #mcollect_not_ok#m
  1374.  
  1375. //combine
  1376. #cenable_menu_item (?m1, &Copy).
  1377. Format is 'combine (LIST1, LIST2 {,LIST3...}).'.#c
  1378. Format      combine (LIST1, LIST2 {,LIST3...})
  1379.  
  1380. Action      This topic is used to append one or more lists to an 
  1381.             initial list.
  1382.  
  1383. Parameters  LIST1, LIST2 {,LIST3...} are lists to be combined 
  1384.             into a new list.
  1385.  
  1386. Returns     The list that is formed by appending the items in 
  1387.             LIST2, LIST3 and so on to the list in LIST1.
  1388.  
  1389. //compare
  1390. #cenable_menu_item (?m1, &Copy).
  1391. Format is 'compare (COMPARISON_OPERATOR, VALUE1, VALUE2).'.#c
  1392. Format      compare (COMPARISON_OPERATOR, VALUE1, VALUE2)
  1393.  
  1394. Alternate   VALUE1 COMPARISON_OPERATOR VALUE2 
  1395.  
  1396. Action      This   topic  is  used  to  perform  numeric   or   
  1397.             string comparisons  between  items.  Lists are 
  1398.             compared element  by element.  The alternate form of 
  1399.             compare is most frequently used in rules.
  1400.  
  1401. Parameters  COMPARISON_OPERATOR must be either one of the legal 
  1402.             COMPARISON_OPERATORS. The legal  comparison_operators 
  1403.             are  
  1404.  
  1405.             =, is , < > , is_not , < , > , <= , =<, >=,  =<  
  1406.  
  1407.             In the first format, the following comparison 
  1408.             operators are also legal eq, ne, lt, gt, ge, le
  1409.  
  1410.             VALUE1, VALUE2 are the values to be compared.
  1411.  
  1412. Returns     T  for a successful comparison, otherwise F.
  1413.  
  1414. Note        The operators eq, ne, lt, gt, le and ge may be used 
  1415.             in the form compare_operator (VALUE1, VALUE2). For 
  1416.             example,
  1417.         
  1418.             x = ne (cat,dog).
  1419.  
  1420.             x is assigned the value T.
  1421.  
  1422.  
  1423. //compile_string
  1424. #cenable_menu_item (?m1, &Copy).
  1425. Format is 'compile_string (TEXT) .'.#c
  1426. Format      compile_string (TEXT) 
  1427.  
  1428. Action      Compiles TEXT and returns a list representing the 
  1429.             internal format of the commands.
  1430.  
  1431. Parameters  TEXT is a string or list of strings to be compiled.
  1432.  
  1433. Returns     The eternal representation of the items compiled.
  1434.  
  1435. Errors      I_CANT_CREATE_TEMP_FILE 
  1436.             Also, compile_string can result in compiler error 
  1437.             messages.
  1438.  
  1439. See Also    #mset_procedures#m, #mevaluate#m
  1440.  
  1441. //concat
  1442. #cenable_menu_item (?m1, &Copy).
  1443. Format is 'concat (TEXT1, TEXT2 {,TEXT3,...}).'.#c
  1444. Format      concat (TEXT1, TEXT2 {,TEXT3,...})
  1445.  
  1446. Action      concat  is used to combine several items into a  
  1447.             single string.   Each   element  of  the  second  
  1448.             list   is concatenated with each element of the first 
  1449.             list to form the new  list.  If more than two 
  1450.             parameters  are used,  the elements  of the third 
  1451.             list are concatenated with the result of 
  1452.             concatenating  the first two lists.  The fourth  list  
  1453.             is concatenated  with  the  result of the  first  
  1454.             three  and so on.
  1455.  
  1456. Parameter   TEXT1, TEXT2 {,TEXT3,...} are the text that is 
  1457.             concatenated. 
  1458.  
  1459. Returns     The new string.
  1460.  
  1461. See Also    concat works on strings.  For a similar function 
  1462.             for lists, see #mcombine#m.
  1463.  
  1464. //continue
  1465. #cenable_menu_item (?m1, &Copy).
  1466. Format is 'continue ({NUMBER}).'.#c
  1467. Format      continue ({NUMBER})
  1468.  
  1469. Action      The continue topic is called to cancel a wait.  wait 
  1470.             is used to stop execution of the topics in a 
  1471.             knowledge base, usually until the user can read a 
  1472.             screen or respond to a request for information.
  1473.  
  1474. Parameters  NUMBER is a value that is passed to the wait topic.  
  1475.             When control returns to the wait , this number is 
  1476.             returned by the wait.  This can be used to provide 
  1477.             information about which topic contained the continue 
  1478.             that ended the wait.
  1479.  
  1480. See Also    #mwait#m
  1481.  
  1482. //create_bitmap
  1483. #cenable_menu_item (?m1, &Copy).
  1484. Format is 'create_bitmap (WIDTH, HEIGHT, PLANES, BITSPERPIXEL, BITS).'.#c
  1485. Format      create_bitmap (WIDTH, HEIGHT, PLANES, BITSPERPIXEL, BITS)
  1486.  
  1487. Action      Creates a bitmap.
  1488.  
  1489. Parameters  WIDTH is the width of the bitmap.
  1490.  
  1491.             HEIGHT is the height.
  1492.  
  1493.             PLANES is the number of planes.
  1494.  
  1495.             BITSPERPIXEL is the number of bits for each on-screen 
  1496.             pixel.
  1497.  
  1498.             BITS is the bitmap data.  This is a list of numbers.  
  1499.             Each element of the list represents a byte in the 
  1500.             bitmap.  Each bit in the byte represents a bit on the 
  1501.             screen.  Monochrome bitmaps are stored in a one-bit, 
  1502.             one-plane format. Each screen line is represented as 
  1503.             a continuous scan.  Each scan is pathed to be a 
  1504.             multiple of 16 bits.  Color bitmaps use a one-bit, 
  1505.             three plane format.  Data is stored in 3 patterns, 
  1506.             one each for red, green and blue.  All red data 
  1507.             first, one scan line at a time, then green and 
  1508.             finally blue.  Each scan line is a multiple of 16 
  1509.             characters.  
  1510.  
  1511.             If WIDTH, HEIGHT, PLANES or BITSPERPIXEL are lists, 
  1512.             only the first element is used.
  1513.  
  1514. Returns     The handle to the bitmap.
  1515.  
  1516. Errors      I_CANT_OPEN_BITMAP
  1517.  
  1518. See Also    #mbitmap#m, #mload_bitmap#m, #mbitmap_to_clipboard#m, 
  1519.             #mread_clipboard#m, #mdelete_bitmap#m
  1520.  
  1521. //create_font
  1522. #cenable_menu_item (?m1, &Copy).
  1523. Format is 'create_font (FONT_DESCRIPTION).'.#c
  1524. Format      create_font (FONT_DESCRIPTION)
  1525.  
  1526. Action      create_font is passed parameters that describe a 
  1527.             logical font.  Windows uses this description to 
  1528.             select the physical font that is the closest to the 
  1529.             specified descriptions.  A handle to the physical 
  1530.             font is returned.
  1531.  
  1532. Parameters  FONT_DESCRIPTION is a list containing the following 
  1533.             elements:
  1534.  
  1535.             HEIGHT is the desired height of the characters in 
  1536.             pixels. This parameter specifies line spacing for the 
  1537.             font.
  1538.     
  1539.             WIDTH is the desired width of the font in pixels. If 
  1540.             width is 0, a font is chosen based on the height.
  1541.  
  1542.             WEIGHT is a number from 0 to 1000. This parameter 
  1543.             specifies the darkness of the characters. Typical 
  1544.             values are:  
  1545.     
  1546.             400 - normal 
  1547.             700 - bold  
  1548.  
  1549.             Under Windows 2.0, any value from 0 to 550 is normal, 
  1550.             a value greater than 550 is bold.
  1551.  
  1552.             ITALIC is a boolean. If ITALIC is true, the 
  1553.             characters are printed in italics. The default is 
  1554.             false.
  1555.  
  1556.             UNDERLINE is a boolean. If UNDERLINE is true, the 
  1557.             characters are underlined. The default is false.
  1558.  
  1559.             STRIKEOUT1 is a boolean. If STRIKEOUT is true, the 
  1560.             characters are printed with a line drawn through 
  1561.             them. The default is false.
  1562.  
  1563.             CHARSET specifies the character set. Currently only 
  1564.             two values are used:  
  1565.         
  1566.             0     ANSI character set 
  1567.             255   OEM (machine dependent) character set.
  1568.  
  1569.             QUALITY describes how closely you want to match the 
  1570.             specified font to the real font. Three values are 
  1571.             accepted:  
  1572.  
  1573.             0 default 
  1574.             1 draft quality 
  1575.             2 proof quality  
  1576.  
  1577.             Proof quality indicates that you don't want the font 
  1578.             increased in size to match the character height or 
  1579.             width that you request. Proof quality fonts are more 
  1580.             attractive, but may be smaller that you request. 
  1581.             Default font allows the quality to be determined by 
  1582.             the device creating the font.
  1583.  
  1584.             PITCH_AND_FAMILY is the sum of two numbers: 
  1585.  
  1586.             the pitch:  
  1587.  
  1588.             0 default pitch - pitch set by device 
  1589.             1 fixed pitch - all characters the same width 
  1590.             2 variable pitch - characters of variable width  
  1591.  
  1592.             and the family:  
  1593.  
  1594.             0  don't care 
  1595.             16 roman - variable pitch with serif 
  1596.             32 swiss - variable pitch without serif 
  1597.             48 modern - fixed pitch 
  1598.             64 script - characters resembling italic handwriting 
  1599.             80 decorative - fancy characters 
  1600.  
  1601.             Fixed pitch indicates that you want all the 
  1602.             characters to be the same width.    
  1603.  
  1604.             FACE_NAME specifies the typeface name. Typefaces 
  1605.             standard with Windows include:   
  1606.  
  1607.             'Tms Rmn', Courier, Helv, Modern, Script, Roman, 
  1608.             Terminal, System
  1609.  
  1610. Returns     FONT_HANDLE, the handle of the font.
  1611.  
  1612. Note        The font must be selected with use_font before it is 
  1613.             used.  When you are finished with a font, you should 
  1614.             release its memory using delete_font.  
  1615.  
  1616.             Appendix E contains a list of common Windows fonts 
  1617.             and the parameters used to create them.  These fonts 
  1618.             make a good starting point for selecting attractive 
  1619.             fonts.  The knowledge bases FONT.KB and FONTPRN.KB 
  1620.             are also useful when working with fonts. FONT.KB 
  1621.             displays and prints fonts with the specified 
  1622.             parameters so you can see how they look.  FONTPRN.KB 
  1623.             lists the fonts available on your system.  
  1624.  
  1625.             If you are creating tables of data, do not use 
  1626.             proportional fonts.  The special font names 
  1627.             OEM_FIXED_FONT, ANSI_FIXED_FONT, ANSI_VAR_FONT, 
  1628.             DEVICE_FAULT_SYSTEM and SYSTEM_FONT should not be 
  1629.             used with create_font.  If they are used, create_font 
  1630.             will create an approximation to the font.
  1631.  
  1632. Errors      I_CANT_CREATE_FONT
  1633.  
  1634. See Also    #mset_font#m, #mdelete_font#m, #mtypeface_list#m, 
  1635.             #mfont_list#m
  1636.  
  1637. //create_topic
  1638. #cenable_menu_item (?m1, &Copy).
  1639. Format is 'create_topic (TOPIC).'.#c
  1640. Format      create_topic (TOPIC)
  1641.  
  1642. Action      Creates a new topic.  If TOPIC is a list, each of the 
  1643.             topics specified by the list are created. If 
  1644.             necessary parent topics are also created. Topics are 
  1645.             normally created  explicitly with a topic statement  
  1646.             or  implicitly the  first time they are referenced.
  1647.  
  1648. Parameters  TOPIC is a topic name or list of topic names.
  1649.  
  1650. //current_directory
  1651. #cenable_menu_item (?m1, &Copy).
  1652. Format is 'current_directory ( ).'.#c
  1653. Format      current_directory ( )
  1654.  
  1655. Action      Finds the full path name of the current directory.
  1656.  
  1657. Returns     The full path name of the current directory.
  1658.  
  1659. //date
  1660. #cenable_menu_item (?m1, &Copy).
  1661. Format is 'date ( ) .'.#c
  1662. Format      date ( ) 
  1663.  
  1664. Action      Reads the date from the system clock.  The format 
  1665.             returned is
  1666.  
  1667.             [ month , day , year ] 
  1668.  
  1669. Returns     A list in the format shown above which contains the 
  1670.             current system date.
  1671.  
  1672. //dde
  1673. #cenable_menu_item (?m1, &Copy).
  1674. Format is 'dde ( ).'.#c
  1675. Format      dde ( )
  1676.  
  1677. Action      Allows KnowledgePro to act as the server in DDE 
  1678.             conversations. A server responds to DDE requests 
  1679.             initiated by other applications.
  1680.  
  1681.             KnowledgePro responds to the task name KPWIN or 
  1682.             KPWINRUN.  The handle of a particular instance of 
  1683.             KPWIN can also be given at the end of the name.
  1684.  
  1685.             KnowledgePro accepts the DDE topics system, KPWIN, or 
  1686.             the current knowledge base name. For the system DDE 
  1687.             topic, KnowledgePro responds to requests for the 
  1688.             items:
  1689.  
  1690.             sysItems is the information that can be requested 
  1691.             from the topic system.  These are sysItems, topics 
  1692.             and formats.
  1693.  
  1694.             topics are system, KPWIN and the names of the 
  1695.             currently running knowledge bases.
  1696.  
  1697.             formats is the list of data formats supported.  These 
  1698.             are text, bitmap and csv (comma separated variable).
  1699.  
  1700.             For the other DDE topics, KnowledgePro accepts 
  1701.             requests to return the value of KnowledgePro topics. 
  1702.  
  1703. Note        dde ( ) is not required for KnowledgePro to act as a 
  1704.             client to another DDE application.  To use 
  1705.             KnowledgePro as a client use dde_open.
  1706.  
  1707.             KnowledgePro is enabled to act as a DDE server by 
  1708.             default.  This can also be changed from the 
  1709.             Options/Remote Requests option on the menu of the 
  1710.             development environment.
  1711.  
  1712. See Also    #mdde_off#m
  1713.  
  1714. //dde_advise
  1715. #cenable_menu_item (?m1, &Copy).
  1716. Format is 'dde_advise (DDE_HANDLE, REQUEST, FORMAT).'.#c
  1717. Format      dde_advise (DDE_HANDLE, REQUEST, FORMAT)
  1718.  
  1719. Action      Request the server task to notify KnowledgePro 
  1720.             whenever REQUEST changes value. If the server can 
  1721.             respond, a dde_ok_event occurs and the DDE_TOPIC 
  1722.             defined in dde_open is called as:
  1723.  
  1724.             DDE_TOPIC (INFORMATION, DDE_OK_EVENT,DDE_HANDLE).
  1725.  
  1726.             INFORMATION contains the name of the request which 
  1727.             was passed as REQUEST in the call to dde_advise.  
  1728.             DDE_HANDLE is the handle passed in dde_advise.
  1729.  
  1730.             If the server cannot respond to the request then a 
  1731.             dde_fail_event occurs and the DDE_TOPIC set by 
  1732.             dde_open is called as
  1733.  
  1734.             DDE_TOPIC (INFORMATION, DDE_FAIL_EVENT, DDE_HANDLE).
  1735.  
  1736.             INFORMATION contains the REQUEST which was named in 
  1737.             the call to dde_advise. REQUEST and DDE_HANDLE are 
  1738.             passed so you can identify which DDE request failed.
  1739.  
  1740. Parameters  DDE_HANDLE is the DDE channel handle returned by 
  1741.             dde_open. This handle uniquely identifies the DDE 
  1742.             conversation.
  1743.  
  1744.             REQUEST is the information requested from the server 
  1745.             task. The format of this parameter depends on the 
  1746.             application connected to the DDE_HANDLE. If this 
  1747.             parameter is a list, only the first item is used.
  1748.  
  1749.             FORMAT is a format code.  The following formats are 
  1750.             supported:  
  1751.             text    which can also be passed as the code 1 
  1752.             bitmap  which can also be passed as the code 2 
  1753.             csv     comma separated variable  
  1754.  
  1755.             The default is text.   If this element is a list only 
  1756.             the first item is used.
  1757.  
  1758. Errors      I_INVALID_DDE_HANDLE,  I_NO_ATOM,  I_DDE_NO_MEM
  1759.  
  1760. See Also    #mdde_open#m, #mdde_request#m, #mdde_unadvise#m
  1761.  
  1762. //dde_close
  1763. #cenable_menu_item (?m1, &Copy).
  1764. Format is 'dde_close (DDE_HANDLE).'.#c
  1765. Format      dde_close (DDE_HANDLE)
  1766.  
  1767. Action      Terminates the conversation specified by DDE_HANDLE. 
  1768.             No more dde events are processed for this 
  1769.             conversation.   This does not affect KnowledgePro's 
  1770.             ability to act as a server for requests from other 
  1771.             applications.
  1772.  
  1773. Parameters  DDE_HANDLE is the DDE channel handle returned by 
  1774.             dde_open. This handle uniquely identifies the DDE 
  1775.             conversation.
  1776.  
  1777. Errors      I_INVALID_DDE_HANDLE
  1778.  
  1779. See Also    #mdde_open#m
  1780.  
  1781. //dde_execute
  1782. #cenable_menu_item (?m1, &Copy).
  1783. Format is 'dde_execute (DDE_HANDLE, COMMANDS).'.#c
  1784. Format      dde_execute (DDE_HANDLE, COMMANDS)
  1785.  
  1786. Action      Request the server task to execute a series of 
  1787.             commands.  If the server can execute the commands a 
  1788.             dde_ok_event occurs and the DDE_TOPIC set by dde_open 
  1789.             is called as:
  1790.  
  1791.             DDE_TOPIC (INFORMATION, DDE_OK_EVENT, DDE_HANDLE).
  1792.  
  1793.             In the case of a dde_execute  INFORMATION contains 
  1794.             the empty list, [ ], since no data is returned.  
  1795.  
  1796.             When the server cannot respond to the dde_execute a 
  1797.             dde_fail_event occurs and the DDE_TOPIC set by 
  1798.             dde_open is called as
  1799.  
  1800.             DDE_TOPIC (INFORMATION, DDE_FAIL_EVENT,DDE_HANDLE).
  1801.  
  1802.             INFORMATION contains the empty list, [ ].
  1803.  
  1804. Parameters  DDE_HANDLE is the DDE channel handle returned by 
  1805.             dde_open. This handle uniquely identifies the DDE 
  1806.             conversation.
  1807.  
  1808.             COMMANDS is a list of commands to be executed by the 
  1809.             server task. The format of the list elements depends 
  1810.             on the application connected to  DDE_HANDLE. 
  1811.  
  1812. Errors      I_INVALID_DDE_HANDLE,  I_DDE_NO_MEM
  1813.  
  1814. See Also    #mdde_open#m, #mdde_write#m
  1815.  
  1816. //dde_off
  1817. #cenable_menu_item (?m1, &Copy).
  1818. Format is 'dde_off ( ).'.#c
  1819. Format      dde_off ( )
  1820.  
  1821. Action      Causes KnowledgePro to ignore DDE messages from 
  1822.             client tasks.  DDE can also be enabled and disabled 
  1823.             from Options on the main menu of the development 
  1824.             environment.
  1825.  
  1826.             This command does not affect KnowledgePro's relation 
  1827.             as a client to another application.
  1828.  
  1829. See Also    #mdde#m
  1830.  
  1831. //dde_open
  1832. #cenable_menu_item (?m1, &Copy).
  1833. Format is 'dde_open (DDE_TOPIC, APPLICATION, SUBJECT).'.#c
  1834. Format      dde_open (DDE_TOPIC, APPLICATION, SUBJECT)
  1835.  
  1836. Action      Attempts to Initiate a DDE conversation with the 
  1837.             specified application. The application acts as the 
  1838.             server and KnowledgePro  acts as the client in the 
  1839.             conversation.   
  1840.  
  1841. Parameters  DDE_TOPIC is the topic that handles DDE events. DDE 
  1842.             events are DDE_OK_EVENT, DDE_FAIL_EVENT and 
  1843.             DDE_DATA_EVENT. If this item is a list, only the 
  1844.             first element is used.
  1845.  
  1846.             APPLICATION  is the name of the application which is 
  1847.             to act as the server. Each application which can act 
  1848.             as a server in a DDE conversation has an application 
  1849.             name to which it responds. See the documentation 
  1850.             accompanying the program for the application name. If 
  1851.             this item is a list, only the first element is used.
  1852.  
  1853.             SUBJECT identifies the subject of the DDE 
  1854.             conversation. Microsoft Windows documentation calls 
  1855.             this the topic of the conversation. We use the term 
  1856.             subject to avoid confusion with KnowledgePro topics. 
  1857.             If this item is a list, only the first element is 
  1858.             used.
  1859.  
  1860. Returns     DDE_HANDLE, a DDE channel handle. Since more than one 
  1861.             conversation can be started, the handle is used to 
  1862.             uniquely identify each particular conversation. If 
  1863.             the application does not respond, [ ] is returned and 
  1864.             no conversation is initiated.
  1865.  
  1866. Errors      I_NO_ATOM, I_INVALID_DDE_HANDLE
  1867.  
  1868. Note        dde_open lets KnowledgePro act as a client to other 
  1869.             applications.  This means it can read and write data 
  1870.             and execute commands in other Windows DDE 
  1871.             applications.  
  1872.  
  1873.             A call to dde_open must be made before any of the 
  1874.             following functions can be called:
  1875.         
  1876.             dde_advise        dde_close         dde_execute 
  1877.             dde_write         dde_request       dde_unadvise
  1878.  
  1879.             When a dde channel is no longer needed, you should 
  1880.             always use dde_close to close the channel.  To use 
  1881.             Knowledgepro as a server, you must use
  1882.  
  1883.             dde ( ).
  1884.  
  1885. //dde_request
  1886. #cenable_menu_item (?m1, &Copy).
  1887. Format is 'dde_request (DDE_HANDLE, REQUEST, FORMAT).'.#c
  1888. Format      dde_request (DDE_HANDLE, REQUEST, FORMAT)
  1889.  
  1890. Action      Request the server task to provide KnowledgePro with 
  1891.             the data described by REQUEST.   If the server can 
  1892.             respond to the request, a dde_data_event occurs and 
  1893.             the DDE_TOPIC defined in dde_open is called as 
  1894.  
  1895.             DDE_TOPIC (INFORMATION, DDE_DATA_EVENT, DDE_HANDLE).
  1896.  
  1897.             INFORMATION is a list that contains [DATA, REQUEST, 
  1898.             FORMAT].
  1899.  
  1900.             If the request can't be filled,  a dde_fail_event 
  1901.             occurs and the DDE_TOPIC set by dde_open is called 
  1902.             as:
  1903.  
  1904.             DDE_TOPIC (INFORMATION, DDE_FAIL_EVENT, DDE_HANDLE).
  1905.  
  1906.             INFORMATION contains the name of the item requested 
  1907.             which was passed as  REQUEST in dde_request.
  1908.  
  1909. Parameters  DDE_HANDLE is the DDE channel handle returned by 
  1910.             dde_open. This handle uniquely identifies the DDE 
  1911.             conversation.
  1912.  
  1913.             REQUEST is the information requested from the server 
  1914.             task. The format depends on the application connected 
  1915.             to the DDE_HANDLE. If this parameter is a list, only 
  1916.             the first parameter is used.
  1917.  
  1918.             FORMAT is a format code.  The following formats are 
  1919.             supported: 
  1920.  
  1921.             text    which can also be passed as 1 
  1922.             bitmap  which can also be passed as 2 
  1923.             csv     comma separated variable  
  1924.  
  1925.             The default is text. If this parameter is a list only 
  1926.             the first element is used.
  1927.  
  1928. Errors      I_INVALID_DDE_HANDLE, I_NO_ATOM, I_DDE_INVALID_FORMAT
  1929.  
  1930. See Also    #mdde_open#m, #mdde_advise#m
  1931.  
  1932. //dde_unadvise
  1933. #cenable_menu_item (?m1, &Copy).
  1934. Format is 'dde_unadvise (DDE_HANDLE, REQUEST).'.#c
  1935. Format      dde_unadvise (DDE_HANDLE, REQUEST)
  1936.  
  1937. Action      Tells the server task to stop notifying KnowledgePro 
  1938.             whenever REQUEST changes value.  If the server can 
  1939.             respond to the request, a dde_ok_event occurs and the 
  1940.             DDE_TOPIC defined in dde_init is called as:
  1941.  
  1942.             DDE_TOPIC (INFORMATION, DDE_OK_EVENT, DDE_HANDLE).
  1943.  
  1944.             INFORMATION contains the name of the request which 
  1945.             was passed as REQUEST in the call to dde_unadvise.
  1946.  
  1947.             If the request can't respond to this request,  a 
  1948.             dde_fail_event occurs and the DDE_TOPIC which was 
  1949.             defined in dde_open is called as:
  1950.  
  1951.             DDE_TOPIC (INFORMATION, DDE_FAIL_EVENT, DDE_HANDLE).
  1952.  
  1953.             INFORMATION contains the name of the request which 
  1954.             was passed as REQUEST in the call to dde_unadvise.
  1955.  
  1956. Parameters  DDE_HANDLE is the DDE channel handle returned by 
  1957.             dde_open. This handle uniquely identifies the DDE 
  1958.             conversation.
  1959.  
  1960.             REQUEST is the information requested from the server 
  1961.             task. The format of this parameter depends on the 
  1962.             application connected to the DDE_HANDLE. If this 
  1963.             parameter is a list, only the first parameter is 
  1964.             used. If REQUEST is [ ] or 0, then all advise links 
  1965.             with the server are terminated.
  1966.  
  1967. Errors      I_INVALID_DDE_HANDLE, I_NO_ATOM
  1968.  
  1969. See Also    #mdde_open#m, #mdde_advise#m
  1970.  
  1971. //dde_write
  1972. #cenable_menu_item (?m1, &Copy).
  1973. Format is 'dde_write (DDE_HANDLE, ITEM, DATA, FORMAT).'.#c
  1974. Format      dde_write (DDE_HANDLE, ITEM, DATA, FORMAT)
  1975.  
  1976. Action      This topic sends unsolicited data to the server task.  
  1977.             If the data is successfully written to the server 
  1978.             task a dde_ok_event occurs and the DDE_TOPIC defined 
  1979.             in the call to dde_open is called as:
  1980.  
  1981.             DDE_TOPIC (INFORMATION, DDE_OK_EVENT, DDE_HANDLE).
  1982.  
  1983.             INFORMATION contains the name of the item being 
  1984.             written which is passed as ITEM in the dde_write.  
  1985.  
  1986.             If the data can't be sent to the server task a 
  1987.             dde_fail_event occurs and the DDE_TOPIC set by 
  1988.             dde_open is called as
  1989.  
  1990.             DDE_TOPIC (INFORMATION, DDE_FAIL_EVENT, DDE_HANDLE).
  1991.  
  1992.             INFORMATION again contains the contents of ITEM 
  1993.             passed in the dde_write.
  1994.  
  1995. Parameters  DDE_HANDLE is the DDE channel handle returned by 
  1996.             dde_open. This handle uniquely identifies the DDE 
  1997.             conversation.
  1998.  
  1999.             ITEM is the item in the server task to which the data 
  2000.             is passed.  The format depends on the application 
  2001.             connected to the DDE_HANDLE. If this parameter is a 
  2002.             list, only the first parameter is used.
  2003.  
  2004.             DATA is the data to be sent to the application. The 
  2005.             format of the data depends on the receiving 
  2006.             application. If this parameter is a list, only the 
  2007.             first item is used. Comma separated variable (csv) 
  2008.             data should be passed as a string with embedded 
  2009.             commas.
  2010.  
  2011.             FORMAT is a format code.  The following formats are 
  2012.             supported:  
  2013.  
  2014.             text        which can also be passed as 1 
  2015.             bitmap      which can also be passed as 2 
  2016.             csv         comma separated variable  
  2017.  
  2018.             The default is text.  If this parameter is a list, 
  2019.             only the first element is used. 
  2020.  
  2021. Errors      I_INVALID_DDE_HANDLE, I_NO_ATOM, I_DDE_NO_MEM, 
  2022.             I_DDE_INVALID_FORMAT
  2023.  
  2024. //delay
  2025. #cenable_menu_item (?m1, &Copy).
  2026. Format is 'delay (TOPIC) .'.#c
  2027. Format      delay (TOPIC) 
  2028.  
  2029. Action      Used internally to prevent the evaluation of 
  2030.             parameters in rules, while and repeat until 
  2031.             conditions have been evaluated.
  2032.  
  2033. Parameters  TOPIC is a KnowledgePro topic.
  2034.  
  2035. Returns     Returns the parameter passed to delay.
  2036.  
  2037. Note        This topic is only used internally.  You may 
  2038.             encounter it on a list of topics displayed in a debug 
  2039.             or during a trace.  delay is useful if you are 
  2040.             working directly with topics in their internal 
  2041.             representation in perform or set_procedures.
  2042.  
  2043. //delete_bitmap
  2044. #cenable_menu_item (?m1, &Copy).
  2045. Format is 'delete_bitmap (BITMAP_HANDLE).'.#c
  2046. Format      delete_bitmap (BITMAP_HANDLE)
  2047.  
  2048. Action      Removes the bitmap from memory and makes its handle 
  2049.             invalid.
  2050.  
  2051. Parameters  BITMAP_HANDLE is a handle or list of bitmap handles.
  2052.  
  2053. Note        Be careful that the bitmap handle is not still being 
  2054.             used for display. Close any windows or clear the 
  2055.             window displaying the bitmap before deleting it.  
  2056.             KnowledgePro uses the bitmap handle for re-painting 
  2057.             the window.
  2058.  
  2059. Errors      I_NOT_BITMAP
  2060.  
  2061. See Also    #mload_bitmap#m, #mcreate_bitmap#m, 
  2062.             #mread_clipboard#m, #mbitmap_to_clipboard#m
  2063.  
  2064. //delete_font
  2065. #cenable_menu_item (?m1, &Copy).
  2066. Format is 'delete_font (FONT_HANDLE).'.#c
  2067. Format      delete_font (FONT_HANDLE)
  2068.  
  2069. Action      Removes the specified font or list of fonts and frees 
  2070.             any memory associated with it.
  2071.  
  2072. Parameters  FONT_HANDLE is the handle of a font or list of 
  2073.             handles.
  2074.  
  2075. Note        Do not delete any font which is still being displayed 
  2076.             in a window. KnowledgePro uses the font handle when 
  2077.             repainting windows. Close or clear any window using 
  2078.             the font before deleting the font.
  2079.  
  2080. Errors      I_INVALID_FONT, I_CANT_DELETE_FONT
  2081.  
  2082. See Also    #mcreate_font#m, #mset_font#m
  2083.  
  2084. //delete_icon
  2085. #cenable_menu_item (?m1, &Copy).
  2086. Format is 'delete_icon (ICON_HANDLE).'.#c
  2087. Format      delete_icon (ICON_HANDLE)
  2088.  
  2089. Action      Removes the icon from memory and makes its handle 
  2090.             invalid.  You should delete all icons not in use to 
  2091.             clear the memory.
  2092.  
  2093. Parameters  ICON_HANDLE is a handle or list of icon handles
  2094.  
  2095. Errors      I_NOT_ICON
  2096.  
  2097. See Also    #mload_icon#m, #micon#m, #mattach_icon#m
  2098.  
  2099. //different
  2100. #cenable_menu_item (?m1, &Copy).
  2101. Format is 'different (LIST1, LIST2).'.#c
  2102. Format      different (LIST1, LIST2)
  2103.  
  2104. Action      This topic returns those items that are on the list  
  2105.             LIST1  that are not also on  LIST2. LIST1 and LIST2 
  2106.             are interchangeable; their order is not important.
  2107.  
  2108. Parameters  LIST1, LIST2 Each element of  LIST1 is checked  for 
  2109.             membership in LIST2. If the item is also in LIST2, it 
  2110.             is not included in the new list.
  2111.  
  2112. Returns     The  list  of items that is formed by each element of 
  2113.             LIST1 that  is not an element of LIST2.  The 
  2114.             resulting list will contain no duplicate elements.
  2115.  
  2116. //dir
  2117. #cenable_menu_item (?m1, &Copy).
  2118. Format is 'dir ({DOS_DIRECTORY}).'.#c
  2119. Format      dir ({DOS_DIRECTORY})
  2120.  
  2121. Action      Provides a list of all the files on one or more DOS 
  2122.             directories.
  2123.  
  2124. Parameters  DOS_DIRECTORY is any legal DOS directory name or a 
  2125.             list of directory names.  The name can include file 
  2126.             names that include * or ? as wildcards.
  2127.  
  2128. Returns     A list of all the files that fit the description of 
  2129.             the directory and files to be searched.  If a list of 
  2130.             DOS directories is provided as a parameter, a list of 
  2131.             lists is returned with the names of the files in each 
  2132.             of the named directories.  If no parameter is given, 
  2133.             a list of all the files in the current drive and 
  2134.             directory is returned.
  2135.  
  2136. Error       I_UNKNOWN_FILE_TYPE
  2137.  
  2138. See Also    #mcurrent_dir#m, #mfile_menu#m, #msave_as#m
  2139.  
  2140. //disable_menu_item
  2141. #cenable_menu_item (?m1, &Copy).
  2142. Format is 'disable_menu_item (HANDLE, ITEM).'.#c
  2143. Format      disable_menu_item (HANDLE, ITEM)
  2144.  
  2145. Action      The specified menu item is disabled. Keyboard and 
  2146.             mouse input are ignored for this item.
  2147.  
  2148. Parameters  HANDLE the handle of the menu that contains the item 
  2149.             to be disabled.
  2150.  
  2151.             ITEM the name of a menu item, or list of items. 
  2152.  
  2153. Note        This command has no effect if the menu item is 
  2154.             already disabled.
  2155.  
  2156. Errors      I_NO_MENU,  I_INVALID_WINDOW, I_MENU_NOT_FOUND
  2157.  
  2158. See Also    #mmenu#m, #menable_menu_item#m, #mcheck_menu_item#m, 
  2159.             #muncheck_menu_item#m
  2160.  
  2161. //disable_window
  2162. #cenable_menu_item (?m1, &Copy).
  2163. Format is 'disable_window (HANDLE).'.#c
  2164. Format      disable_window (HANDLE)
  2165.  
  2166. Action      The specified window or a screen object is disabled.  
  2167.             Keyboard and mouse input are ignored.  The window or 
  2168.             screen object cannot be moved or closed, although 
  2169.             messages can be written to it.  If a disabled window 
  2170.             is covered by another window, it can't be brought to 
  2171.             the top or be made the active window.
  2172.  
  2173. Parameters  HANDLE is the handle of a window  or other screen 
  2174.             object.  The default is the current display window.
  2175.  
  2176. Note        This command has no effect if the window or screen 
  2177.             object is already disabled.
  2178.  
  2179. Errors      I_NO_MENU, I_INVALID_WINDOW, I_MENU_NOT_FOUND
  2180.  
  2181. See Also    #menable_window#m, #mhide_window#m, #mshow_window#m, 
  2182.             #mmake_modal#m
  2183.  
  2184. //do
  2185. #cenable_menu_item (?m1, &Copy).
  2186. Format is 'do (TOPIC {,PARAMETER1, PARAMETER2    ...})  .'.#c
  2187. Format      do (TOPIC {,PARAMETER1, PARAMETER2    ...})  
  2188.  
  2189. Alternate   TOPIC ({PARAMETER1, PARAMETER2...}) 
  2190.  
  2191. Action      Performs the commands associated with TOPIC .  A list 
  2192.             of parameters  can optionally be passed to the 
  2193.             topics.  When the topic name evaluates to a list, 
  2194.             each topic on the list is evaluated in order.  
  2195.             PARAMETER1, PARAMETER2, ... are passed to each topic 
  2196.             as parameters.  If TOPIC does not exist, an error 
  2197.             message is displayed.
  2198.  
  2199. Parameters  TOPIC is a topic or list of topic names to be 
  2200.             performed.
  2201.  
  2202.             {PARAMETER1, PARAMETER2 ...} are optional parameters 
  2203.             that are passed to the topic or topics being 
  2204.             performed. 
  2205.  
  2206. Returns     The value of TOPIC. 
  2207.  
  2208. See Also    The discussion of knowledge base structure in Section 
  2209.             5.1 and calling topics 5.3.
  2210.  
  2211. //do_local
  2212. #cenable_menu_item (?m1, &Copy).
  2213. Format is 'do_local (TOPIC{, PARAMETER1, PARAMETER2..}).'.#c
  2214. Format      do_local (TOPIC{, PARAMETER1, PARAMETER2..})
  2215.  
  2216. Action      do_local is similar to the topic do. do_local calls 
  2217.             TOPIC and passes it PARAMETER1, PARAMETER2, etc.  
  2218.             When TOPIC is called, it is performed as if it is 
  2219.             located inside the topic containing do_local.  This 
  2220.             relocates TOPIC in the hierarchy of the knowledge 
  2221.             base and changes the search order of its commands, 
  2222.             sub-topics and parameters.  As TOPIC is executed, 
  2223.             first its sub-topics and parameters are created in 
  2224.             the current topic.  Next, TOPIC's commands are 
  2225.             executed within the current topic.  Finally, the 
  2226.             parameters are removed.  All searches for topic 
  2227.             values begin with the current topic instead of the 
  2228.             location in which TOPIC was defined.
  2229.  
  2230. Parameters  TOPIC a topic name or list of topic names.
  2231.  
  2232.             PARAMETER1... parameters to be passed to each topic.
  2233.  
  2234. Note        This function should be used with caution. Since the 
  2235.             scope of a topic executed with do_local is different 
  2236.             than scope indicated in the source code, debugging 
  2237.             can be difficult.
  2238.  
  2239. Errors      I_V_TOPIC_NOT_FOUND
  2240.  
  2241. See Also    #mim_a#m, #mnew#m
  2242.  
  2243. //edit_box
  2244. #cenable_menu_item (?m1, &Copy).
  2245. Format is 'edit_box ({TEXT, EVENT_TOPIC, COLUMN, ROW, WIDTH, HEIGHT, EDIT_STYLE, EVENT_LIST}).'.#c
  2246. Format      edit_box ({TEXT, EVENT_TOPIC, COLUMN, ROW, WIDTH,               
  2247.                HEIGHT, EDIT_STYLE, EVENT_LIST})
  2248.  
  2249. Action      Opens an edit box in the current display window.  
  2250.             Special edit styles can be used and default text can 
  2251.             be placed in the window.
  2252.  
  2253. Parameters  TEXT is default text that appears in the edit box. 
  2254.  
  2255.             EVENT_TOPIC is the topic or list of topics to be 
  2256.             performed when an event on the EVENT_LIST occurs 
  2257.             while the focus is on the edit box.  EVENT_TOPIC is 
  2258.             called as:  
  2259.  
  2260.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  2261.  
  2262.             EVENT_INFO depends on the event that occurs.  A 
  2263.             description of events is provided in Appendix D.  
  2264.  
  2265.             EVENT_NAME is the name of the event that occurred.  
  2266.  
  2267.             HANDLE is the handle assigned to the edit box.  
  2268.  
  2269.             If EVENT_TOPIC sets its value to true after being 
  2270.             called by a lose_focus_event, close_event, 
  2271.             char_event, or a sys_char_event, further processing 
  2272.             of the event is canceled.   Whenever EVENT_TOPIC is 
  2273.             called its value is reset before it is executed.  If 
  2274.             no EVENT_TOPIC is defined, no events are recognized.
  2275.  
  2276.             COLUMN, ROW is the position of the edit box.  The 
  2277.             default is the current display position.  COLUMN and 
  2278.             ROW are relative to the upper left corner of the 
  2279.             display area of the current display window.
  2280.  
  2281.             WIDTH, HEIGHT is the size of the edit box.  Defaults 
  2282.             are 20 columns wide and 5 rows high.
  2283.  
  2284.             EDIT_STYLE is a list of styles for the edit box.  
  2285.             Styles may be selected from the following:   
  2286.  
  2287.             Child      Visible      ThinFrame       DialogFrame 
  2288.             MultiLine  AutoHscroll  AutoVscroll     NoHideSelect 
  2289.             LeftText   RightText    CenterText 
  2290.  
  2291.             The default depends on the height of the window.  If 
  2292.             the height is less than 2, the default style is  
  2293.  
  2294.             [Child, Visible, ThinFrame, AutoHscroll, LeftText]       
  2295.  
  2296.             If the height is 2 or greater, the style is          
  2297.             [Child, Visible, ThinFrame, AutoHscroll, LeftText,          
  2298.             MultiLine, AutoVscroll, Vscroll, Hscroll].
  2299.  
  2300.             EVENT_LIST is a list of events that will cause the 
  2301.             EVENT_TOPIC to be called.  The events that can be 
  2302.             processed are: 
  2303.  
  2304.             get_focus_event, lose_focus_event, close_event     
  2305.             char_event, sys_char_event These events are described 
  2306.             in detail in Appendix D. 
  2307.  
  2308.             If no event is specified, the default event is a 
  2309.             lose_focus_event.
  2310.  
  2311. Returns     HANDLE, the handle of the edit box. 
  2312.  
  2313. Note        To get the contents of an edit box use the get_text  
  2314.             topic.  The text in an edit box can be changed using 
  2315.             set_text.
  2316.  
  2317. See Also    #medit_window#m, #medit_file#m, #medit_line#m, 
  2318.             #mget_text#m, #mset_text#m, #mDescription of Events#m
  2319.  
  2320. //edit_file
  2321. #cenable_menu_item (?m1, &Copy).
  2322. Format is 'edit_file (FILE_NAME, {EVENT_TOPIC,  COLUMN, ROW, WIDTH, HEIGHT, WORD_WRAP, EVENT_LIST}).'.#c
  2323. Format      edit_file (FILE_NAME, {EVENT_TOPIC,  COLUMN, ROW,    
  2324.                WIDTH, HEIGHT, WORD_WRAP, EVENT_LIST})
  2325.  
  2326. Action      Opens an edit window that contains a menu containing 
  2327.             the File, Edit and Search options.  Text is read from 
  2328.             FILE_NAME, if it exists, and placed in the window and 
  2329.             the cursor is placed at the beginning of the window.  
  2330.             All edit windows opened with edit_file have default 
  2331.             window style and cannot be children of other windows.
  2332.  
  2333. Parameters  FILE_NAME is the name of a file or list of files. If 
  2334.             this parameter is a list, a window is opened for each 
  2335.             file.
  2336.  
  2337.             EVENT_TOPIC is the topic or list of topics to be 
  2338.             performed when an event on the EVENT_LIST occurs 
  2339.             while the focus is on the edit file.  EVENT_TOPIC is 
  2340.             called as:  
  2341.  
  2342.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  2343.  
  2344.             EVENT_INFO depends on the event that occurs.  A 
  2345.             description of events is provided in Appendix D.  
  2346.  
  2347.             EVENT_NAME is the name of the event that occurred.  
  2348.  
  2349.             HANDLE is the handle assigned to the edit file.  
  2350.  
  2351.             If EVENT_TOPIC sets its value to true after being 
  2352.             called by a  lose_focus_event, close_event, 
  2353.             char_event, or a sys_char_event, further processing 
  2354.             of the event is canceled.   Whenever EVENT_TOPIC is 
  2355.             called its value is reset before it is executed.  If 
  2356.             no EVENT_TOPIC is defined, no events are recognized.
  2357.  
  2358.             COLUMN,ROW is the location of the edit window. COLUMN 
  2359.             and ROW are relative to the upper left corner of the 
  2360.             screen.  The default is the same as for display 
  2361.             windows.
  2362.  
  2363.             WIDTH, HEIGHT is the window size. The default is 65 
  2364.             columns wide and 18 rows high. 
  2365.  
  2366.             WORD_WRAP is a boolean indicating whether word 
  2367.             wrapping should take place at the end of a line.  
  2368.             When WORD_WRAP is true, horizontal scrolling is 
  2369.             disabled and lines are broken at the window's edge.  
  2370.             The default is false.
  2371.  
  2372.             EVENT_LIST is a list of events that will cause the 
  2373.             EVENT_TOPIC to be called.  The events that can be 
  2374.             processed are:
  2375.  
  2376.             get_focus_event, lose_focus_event, close_event, 
  2377.             char_event, sys_char_event, resize_event, move_event,     
  2378.             horz_scroll_event, vert_scroll_event
  2379.  
  2380.             These events are described in detail in Appendix D. 
  2381.             If no event is specified, the default event is a 
  2382.             close_event.
  2383.  
  2384. Returns     HANDLE, the handle of the edit file window.
  2385.  
  2386. Errors      I_INVALID_PARENT
  2387.  
  2388. See Also    #medit#m, #medit_line#m, #medit_box#m, #mfile_menu#m,  
  2389.             #mget_text#m, #mset_text#m, #msave_edit_file#m,  
  2390.             #mDescription of Events#m
  2391.  
  2392. //edit_line
  2393. #cenable_menu_item (?m1, &Copy).
  2394. Format is 'edit_line ({TEXT, EVENT_TOPIC, COLUMN, ROW, WIDTH, EVENT_LIST}).'.#c
  2395. Format      edit_line ({TEXT, EVENT_TOPIC, COLUMN, ROW, WIDTH,        
  2396.               EVENT_LIST})
  2397.  
  2398. Action      Opens an edit line in the current display window. 
  2399.  
  2400. Parameters  TEXT is the text to appear in the edit line as a 
  2401.             default . If TEXT is a list, only the first element 
  2402.             is used.
  2403.  
  2404.             EVENT_TOPIC is the topic or list of topics to be 
  2405.             performed when an event on the EVENT_LSIT occurs 
  2406.             while the focus is on the edit line.  EVENT_TOPIC is 
  2407.             called as:  
  2408.  
  2409.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  2410.  
  2411.             EVENT_INFO depends on the event that occurs.  A 
  2412.             description of events is provided in Appendix D.  
  2413.  
  2414.             EVENT_NAME is the name of the event that occurred.  
  2415.  
  2416.             HANDLE is the handle assigned to the edit line.  
  2417.  
  2418.             If EVENT_TOPIC sets its value to true after being 
  2419.             called by a  lose_focus_event, close_event, 
  2420.             char_event, or a sys_char_event, further processing 
  2421.             of the event is canceled.   Whenever EVENT_TOPIC is 
  2422.             called its value is reset before it is executed.  If 
  2423.             no EVENT_TOPIC is defined, no events are recognized.
  2424.  
  2425.             COLUMN, ROW is the location of the edit line.  The 
  2426.             default is the current  display position.  COLUMN and 
  2427.             ROW are relative to the display area of the current 
  2428.             display window.  
  2429.  
  2430.             WIDTH is the width of the edit line.  The default is 
  2431.             20 characters.
  2432.  
  2433.             EVENT_LIST is a list of events that will cause the 
  2434.             EVENT_TOPIC to be called.  The events that can be 
  2435.             processed are:
  2436.  
  2437.             get_focus_event, lose_focus_event, close_event     
  2438.             char_event, sys_char_event These events are described 
  2439.             in detail in Appendix D. If no event is specified, 
  2440.             the default event is a lose_focus_event.  
  2441.  
  2442. Returns     HANDLE, the handle of the edit line.
  2443.  
  2444. Note        To obtain the value of an edit line use get_text.  
  2445.             set_text can be used to set the text in an edit line.
  2446.  
  2447. See Also    #medit_box#m, #medit_file#m, #medit_window#m, 
  2448.             #mget_text#m, #mset_text#m, #mread_response#m, 
  2449.             #mDescription of Events#m
  2450.  
  2451. //edit_window
  2452. #cenable_menu_item (?m1, &Copy).
  2453. Format is 'edit_window ({TEXT, EVENT_TOPIC, COLUMN, ROW, WIDTH, HEIGHT, TITLE, STYLE, PARENT, WORD_WRAP, EVENT_LIST}).'.#c
  2454. Format      edit_window ({TEXT, EVENT_TOPIC, COLUMN, ROW, WIDTH,    
  2455.               HEIGHT, TITLE, STYLE, PARENT, WORD_WRAP, EVENT_LIST})
  2456.  
  2457. Action      Opens a window of any style for editing text.  TEXT 
  2458.             is placed in the window and the cursor is placed at 
  2459.             the beginning of the text.  
  2460.  
  2461. Parameters  TEXT is the text to be edited.  If this item is 
  2462.             missing or [ ], an empty edit window is displayed.
  2463.  
  2464.             EVENT_TOPIC is the topic or list of topics to be 
  2465.             performed when an event on the EVENT_LIST occurs 
  2466.             while the focus is on the edit window.  EVENT_TOPIC 
  2467.             is called as:  
  2468.  
  2469.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  2470.  
  2471.             EVENT_INFO depends on the event that occurs.  A 
  2472.             description of events is provided in Appendix D.
  2473.  
  2474.             EVENT_NAME is the name of the event that occurred.  
  2475.  
  2476.             HANDLE is the handle assigned to the edit window.
  2477.  
  2478.             If EVENT_TOPIC sets its value to true after being 
  2479.             called by a  lose_focus_event, close_event, 
  2480.             char_event, or a sys_char_event, further processing 
  2481.             of the event is canceled.   Whenever EVENT_TOPIC is 
  2482.             called its value is reset before it is executed.  If 
  2483.             no EVENT_TOPIC is defined, no events are recognized.
  2484.  
  2485.             COLUMN, ROW is the position of the edit window.  If 
  2486.             the window has the Child style,  position 1,1 is at 
  2487.             the upper left corner of the parent window.  A Popup 
  2488.             or Overlapped window places position 1,1 at the upper 
  2489.             left hand corner of the screen.  If no column and row 
  2490.             information is specified, successive edit windows are 
  2491.             overlapped on the screen.  
  2492.  
  2493.             WIDTH, HEIGHT is the size of the edit window.  
  2494.             Defaults are 65 columns wide and 18 rows high. 
  2495.  
  2496.             TITLE is the title on the edit window.
  2497.  
  2498.             STYLE is the style of the edit window.  The window 
  2499.             STYLE is a list of values chosen from the following 
  2500.             list:
  2501.  
  2502.             Type of window      Popup             
  2503.                                 Child     
  2504.                                 Overlapped    
  2505.  
  2506.             Initial state       Visible         
  2507.                                 Maximized                 
  2508.                                 Disabled
  2509.  
  2510.             Frame               ThinFrame         
  2511.                                 ThickFrame                 
  2512.                                 DialogFrame
  2513.  
  2514.             Treatment of        ShowChildren 
  2515.               related windows   Siblings
  2516.  
  2517.             Special elements    TitleBar                 
  2518.                                 VertScroll                 
  2519.                                 HorzScroll                 
  2520.                                 ControlMenu                 
  2521.                                 MaximizeBox                 
  2522.                                 MinimizeBox
  2523.  
  2524.             Combined styles
  2525.  
  2526.             OverlappedWindow contains the styles:
  2527.                  [PopUp, ThickFrame, ControlMenu, MaximizeBox, 
  2528.                   MinimizeBox, ShowChildren]
  2529.  
  2530.             PopUpWindow contains the styles:
  2531.                  [PopUp, ThickFrame, ShowChildren]
  2532.      
  2533.             ChildWindow contains the styles:
  2534.                  [Child, ThinFrame, ShowChildren, Siblings]
  2535.  
  2536.             DialogWindow contains the styles:
  2537.                  [Popup, DialogFrame, ShowChildren] 
  2538.  
  2539.             The default STYLE for an edit window is   
  2540.                  [Popup, Visible, ThickFrame, TitleBar, ControlMenu, 
  2541.                   HorzScroll, VertScroll].
  2542.  
  2543.             PARENT is the handle of the window's parent.  An 
  2544.             Overlapped window cannot have a PARENT.  A Child 
  2545.             style must be assigned a parent. The default is none.
  2546.  
  2547.             WORD_WRAP is a boolean value indicating whether word 
  2548.             wrapping should take place at the end of a line.  
  2549.             When WORD_WRAP is true, horizontal scrolling is 
  2550.             disabled and lines are broken at the window's edge.  
  2551.             The default is false.
  2552.  
  2553.             EVENT_LIST is a list of events that will cause the 
  2554.             EVENT_TOPIC to be called.  The events that can be 
  2555.             processed are:
  2556.  
  2557.             get_focus_event, lose_focus_event, close_event,     
  2558.             char_event, sys_char_event,  move_event,          
  2559.             resize_event, horz_scroll_event, vert_scroll_event  
  2560.             These events are described in detail in Appendix D. 
  2561.             If no event is specified, the default event is a 
  2562.             close_event.
  2563.  
  2564. Note        To get the contents of an edit window use get_text 
  2565.             with the handle of the edit window.  set_text sets 
  2566.             the text in a edit window.
  2567.  
  2568. Errors      I_INVALID_PARENT
  2569.  
  2570. See Also    #medit_file#m, #medit_box#m, #medit_line#m, 
  2571.             #mget_text#m, #mset_text#m, #mDescription of Events#m
  2572.  
  2573. //element
  2574. #cenable_menu_item (?m1, &Copy).
  2575. Format is 'element (LIST, POSITION).'.#c
  2576. Format      element (LIST, POSITION)
  2577.  
  2578. Action      Returns the item at the specified location of a list.
  2579.  
  2580. Parameters  LIST is the list of items to search.          
  2581.  
  2582.             POSITION is an integer or list of integers telling 
  2583.             which item in LIST you want to select.
  2584.  
  2585. Returns     The element at the specified position in  LIST.  If 
  2586.             POSITION  is a list, a list of the selected items is 
  2587.             returned. If the integer selected is greater than the 
  2588.             length of the list or 0, [ ] is returned.
  2589.  
  2590. Note        The first element in a list is number 1.
  2591.  
  2592. Errors      I_INVALID_ELEMENT
  2593.  
  2594. See Also    #mfirst#m, #mlast#m, #mrest#m, #mwhere#m
  2595.  
  2596. //enable_all_windows
  2597. #cenable_menu_item (?m1, &Copy).
  2598. Format is 'enable_all_windows ( ).'.#c
  2599. Format      enable_all_windows ( )
  2600.  
  2601. Action      Enables all disabled windows and screen objects.
  2602.  
  2603. See Also    #menable_window#m
  2604.  
  2605. //enable_menu_item
  2606. #cenable_menu_item (?m1, &Copy).
  2607. Format is 'enable_menu_item (HANDLE, ITEM).'.#c
  2608. Format      enable_menu_item (HANDLE, ITEM)
  2609.  
  2610. Action      The specified menu item is enabled. The user may 
  2611.             select the item with the keyboard or the mouse.  
  2612.             There is no effect if the menu item is already 
  2613.             enabled.
  2614.  
  2615. Parameters  HANDLE the handle of a menu containing the item to be 
  2616.             enabled.
  2617.  
  2618.             ITEM the name of a menu item, or list of menu items.
  2619.  
  2620. Errors      I_NO_MENU,  I_INVALID_WINDOW, I_MENU_NOT_FOUND
  2621.  
  2622. //enable_window
  2623. #cenable_menu_item (?m1, &Copy).
  2624. Format is 'enable_window ({HANDLE}).'.#c
  2625. Format      enable_window ({HANDLE})
  2626.  
  2627. Action      The specified window is enabled. Keyboard and mouse 
  2628.             input  is processed for this window.  There is  no 
  2629.             effect if the window is already enabled.  This topic 
  2630.             can be used to enable windows and screen objects 
  2631.             disabled with disable_window.
  2632.  
  2633. Parameters  HANDLE the handle of a window  or other screen 
  2634.             object.  The default is the current display window.
  2635.  
  2636. Errors      I_INVALID_WINDOW
  2637.  
  2638. //error_message
  2639. #cenable_menu_item (?m1, &Copy).
  2640. Format is 'error_message (ERROR_NAME TOPIC, PARAMETERS).'.#c
  2641. Format      error_message (ERROR_NAME TOPIC, PARAMETERS)
  2642.  
  2643. Action      Calls the internal error handling routine that 
  2644.             creates a message box. Displays the topic name, 
  2645.             parameters and the message associated with 
  2646.             ERROR_NAME. If no message can be found for 
  2647.             ERROR_NAME, the default message:
  2648.  
  2649.             "Error code: ?error_name"
  2650.  
  2651.             is displayed.
  2652.  
  2653. Parameters  ERROR_NAME is the name of the error.  Appendix A 
  2654.             lists all of the error names with their messages.
  2655.  
  2656.             TOPIC is the name of the topic which caused the 
  2657.             error.
  2658.  
  2659.             PARAMETERS is a list containing the values of the 
  2660.             topic's parameters
  2661.  
  2662. Note        The default error message is displayed in a message 
  2663.             box with Ok and Cancel buttons.  Pressing Cancel 
  2664.             terminates execution of the knowledge base.
  2665.  
  2666. See Also    #mget_error_topic#m, #mset_error_topic#m
  2667.  
  2668. //evaluate
  2669. #cenable_menu_item (?m1, &Copy).
  2670. Format is 'evaluate (COMMAND_LIST).'.#c
  2671. Format      evaluate (COMMAND_LIST)
  2672.  
  2673. Action      This executes a list containing a KnowledgePro 
  2674.             command represented in internal format. 
  2675.  
  2676. Parameters  COMMAND_LIST a list of which specifies commands to be 
  2677.             executed.  Each command is represented in its 
  2678.             internal format.  This has the form:  
  2679.             [function, parameter1, parameter2, ...]  
  2680.             Using Debug, this list is displayed as:   
  2681.  
  2682.             function (parameter1,parameter2,...)
  2683.  
  2684. Returns     A list containing the result of executing the command 
  2685.             in COMMAND_LIST.
  2686.  
  2687. Note        compile_string can be used to turn a statement that 
  2688.             uses the usual syntax into its internal 
  2689.             representation.  evaluate is not supported by the 
  2690.             runtime version of KnowledgePro.
  2691.  
  2692. Errors      evaluate  has no error messages but attempting to 
  2693.             evaluate a topic which contains an error results in 
  2694.             an error message from that topic.
  2695.  
  2696. See Also    #mcompile_string#m, #mprocedure#m
  2697.  
  2698. //exists
  2699. #cenable_menu_item (?m1, &Copy).
  2700. Format is 'exists (TOPIC).'.#c
  2701. Format      exists (TOPIC)
  2702.  
  2703. Action      Checks to see if a specified topic exists in the 
  2704.             knowledge base.  See Chapter 5.1.3 for a description 
  2705.             of the way the hierarchy of topics is searched.
  2706.  
  2707. Parameters  TOPIC is the name of the topic or list of topics to  
  2708.             be checked.
  2709.  
  2710. Returns     T  for  each  topic contained  in  the knowledge 
  2711.             base, otherwise returns F.
  2712.  
  2713. //exit
  2714. #cenable_menu_item (?m1, &Copy).
  2715. Format is 'exit ( ).'.#c
  2716. Format      exit ( )
  2717.  
  2718. Action      Stops  executing commands associated with the current  
  2719.             topic and returns control to the topic which invoked 
  2720.             it.
  2721.  
  2722. Note        Executing exit ( ) from !main terminates the 
  2723.             knowledge base.
  2724.  
  2725. //exit_kp
  2726. #cenable_menu_item (?m1, &Copy).
  2727. Format is 'exit_kp ().'.#c
  2728. Format      exit_kp ()
  2729.  
  2730. Action      Exits from KnowledgePro.  KnowledgePro and all 
  2731.             knowledge bases are cleared from memory.  This 
  2732.             command is the same as choosing Exit from the main 
  2733.             menu.
  2734.  
  2735. See Also    #mexit#m, #mstop#m, #mexit_windows#m
  2736.  
  2737. //exit_windows
  2738. #cenable_menu_item (?m1, &Copy).
  2739. Format is 'exit_windows ().'.#c
  2740. Format      exit_windows ()
  2741.  
  2742. Action      Terminates KnowledgePro and the current Windows 
  2743.             session.  This command has the same effect as 
  2744.             choosing Exit from the MS-DOS Executive menu.
  2745.  
  2746. Error       F_FILE_NOT_FOUND
  2747.  
  2748. Note        The F_FILE_NOT_FOUND error occurs if the MS-DOS 
  2749.             Executive cannot be found.
  2750.  
  2751. See Also    #mexit#m, #mstop#m, #mexit_kp#m
  2752.  
  2753. //file_menu
  2754. #cenable_menu_item (?m1, &Copy).
  2755. Format is 'file_menu ( {FILE, DIRECTORY, TEXT} ).'.#c
  2756. Format      file_menu ( {FILE, DIRECTORY, TEXT} )
  2757.  
  2758. Action      Opens a dialog box with an edit line that contains 
  2759.             FILE,  the default file name, the name of the default 
  2760.             directory, a list box of files and a list box of 
  2761.             possible directories.  The contents of the file list 
  2762.             box depends on the value of FILE.  If FILE contains a 
  2763.             *, all files in the selected directory that match the 
  2764.             description are displayed in the list box.  A file 
  2765.             name can also be directly typed into the edit line.  
  2766.             The selected directory can be changed by choosing a 
  2767.             directory from the list box of directories.
  2768.  
  2769. Parameters  FILE names a default file name.  This file appears in 
  2770.             the edit line.  If FILE contains a *, a list of all 
  2771.             matching files in the selected directory are 
  2772.             displayed in a list box.
  2773.  
  2774.             DIRECTORY the name of the directory to search for the 
  2775.             specified FILE.
  2776.  
  2777.             TEXT is the message written on the top line of the 
  2778.             dialog window.
  2779.  
  2780. Returns     The file name selected.
  2781.  
  2782. See Also    #msave_as#m
  2783.  
  2784. //first
  2785. #cenable_menu_item (?m1, &Copy).
  2786. Format is 'first (LIST).'.#c
  2787. Format      first (LIST)
  2788.  
  2789. Action      Returns  the first element from a list. 
  2790.  
  2791. Parameters  LIST is a list of items.
  2792.  
  2793. Returns     The first item on the specified list.   If the list 
  2794.             is  empty,  the empty list, [ ], is returned.
  2795.  
  2796. See Also    #melement#m, #mlast#m, #mrest#m
  2797.  
  2798. //flatten
  2799. #cenable_menu_item (?m1, &Copy).
  2800. Format is 'flatten (LIST).'.#c
  2801. Format      flatten (LIST)
  2802.  
  2803. Action      Creates a new list by flattening all the sublists on 
  2804.             LIST.  LIST itself is not changed.
  2805.  
  2806. Parameters  LIST is the name of the list to be flattened.
  2807.  
  2808. Returns     The flattened list.
  2809.  
  2810. //font_list
  2811. #cenable_menu_item (?m1, &Copy).
  2812. Format is 'font_list (DEVICE).'.#c
  2813. Format      font_list (DEVICE)
  2814.  
  2815. Parameters  DEVICE  [ ] for the display or prn for the printer.
  2816.  
  2817. Returns     A list of available font descriptions. Each font 
  2818.             description is a list with the format:
  2819.  
  2820.             [WIDTH, HEIGHT, WEIGHT, ITALIC, UNDERLINE, STRIKEOUT, 
  2821.             CHARSET, QUALITY, PITCH_AND_FAMILY,  TYPEFACE_NAME].
  2822.  
  2823.             These are described in detail under create_font.
  2824.  
  2825. Errors      I_PRINT_NO_DC
  2826.  
  2827. See Also    #mcreate_font#m, #mtypeface_list#m, #muse_font#m
  2828.  
  2829. //free_library
  2830. #cenable_menu_item (?m1, &Copy).
  2831. Format is 'free_library (DLL_HANDLE).'.#c
  2832. Format      free_library (DLL_HANDLE)
  2833.  
  2834. Action      Decreases the reference count of the DLL by one. When 
  2835.             the reference count is zero, the memory occupied by 
  2836.             the DLL is freed.
  2837.  
  2838. Parameters  DLL_HANDLE is a handle or list of handles of 
  2839.             previously loaded dynamic link libraries (DLL).
  2840.  
  2841. Note        All DLLs previously loaded by load_library are freed 
  2842.             automatically before a knowledge base is executed.
  2843.  
  2844. Errors      I_INVALID_LIBRARY
  2845.  
  2846. See Also    #mload_library#m, #muser#m
  2847.  
  2848. //full_name
  2849. #cenable_menu_item (?m1, &Copy).
  2850. Format is 'full_name (TOPIC).'.#c
  2851. Format      full_name (TOPIC)
  2852.  
  2853. Action      full_name is used to find all of the ancestors of a 
  2854.             topic.   The full name of a topic contains all of the 
  2855.             topic's ancestors separated by colons.  The full name 
  2856.             specifies the location of the topic in the hierarchy 
  2857.             of the knowledge base. 
  2858.  
  2859. Parameters  TOPIC is the name of a topic or a list of topic 
  2860.             names. If topic is [ ], the full name of the current 
  2861.             topic is returned.
  2862.  
  2863. Returns     The full name of the topic. The full name of a topic 
  2864.             consists of all of the topic's ancestors separated by 
  2865.             colons.  If the topic can not be found, TOPIC is 
  2866.             returned.
  2867.  
  2868. See Also    #mcalling_topic#m
  2869.  
  2870. //get_active_window
  2871. #cenable_menu_item (?m1, &Copy).
  2872. Format is 'get_active_window ().'.#c
  2873. Format      get_active_window ()
  2874.  
  2875. Action      Finds the handle of the currently active window.  The 
  2876.             active window is the one that receives user input.
  2877.  
  2878. Returns     The handle of the active window.
  2879.  
  2880. See Also    #mget_display_window#m, #mget_top_window#m, 
  2881.             #mset_active_window#m,  #mget_top_window#m
  2882.  
  2883. //get_check_box
  2884. #cenable_menu_item (?m1, &Copy).
  2885. Format is 'get_check_box (CHECK_BOX_HANDLE).'.#c
  2886. Format      get_check_box (CHECK_BOX_HANDLE)
  2887.  
  2888. Action      Finds the state of the check box.
  2889.  
  2890. Parameters  CHECK_BOX_HANDLE the handle of a check box or a list 
  2891.             of check boxes.
  2892.  
  2893. Returns     Returns T if a check box is checked, F if it is not.
  2894.  
  2895. Errors      I_INVALID_WINDOW
  2896.  
  2897. See Also    #mset_check_box#m
  2898.  
  2899. //get_cursor_pos
  2900. #cenable_menu_item (?m1, &Copy).
  2901. Format is 'get_cursor_pos ().'.#c
  2902. Format      get_cursor_pos ()
  2903.  
  2904. Action      Finds the location of the text cursor in the 
  2905.             currently active window.
  2906.  
  2907. Returns     A list containing the column and row position of the 
  2908.             cursor in the currently active window.  COLUMN and 
  2909.             ROW are measured from the upper left corner of the 
  2910.             window.
  2911.  
  2912. See Also    #mset_cursor_pos#m, #mset_display_pos#m, 
  2913.             #mget_display_pos#m
  2914.  
  2915. //get_demon
  2916. #cenable_menu_item (?m1, &Copy).
  2917. Format is 'get_demon (TOPIC).'.#c
  2918. Format      get_demon (TOPIC)
  2919.  
  2920. Action      Returns the list of demons that is assigned to the 
  2921.             specified topic.
  2922.  
  2923. Parameters  TOPIC is a topic name or list of topic names.  The 
  2924.             default is the current topic.
  2925.  
  2926. Errors      I_TOPIC_NOT_FOUND
  2927.  
  2928. See Also    #mset_demon#m
  2929.  
  2930. //get_display_pos
  2931. #cenable_menu_item (?m1, &Copy).
  2932. Format is 'get_display_pos ( ) .'.#c
  2933. Format      get_display_pos ( ) 
  2934.  
  2935. Action      Finds the position where the next screen output will 
  2936.             occur.  The upper left corner of the window is 
  2937.             position [1,1].
  2938.  
  2939. Returns     A list containing the column and row position where 
  2940.             the next text or screen object is displayed in the 
  2941.             current display window.
  2942.  
  2943. Errors      I_INVALID_WINDOW
  2944.  
  2945. See Also    #mset_display_pos#m, #mget_cursor_pos#m
  2946.  
  2947. //get_display_window
  2948. #cenable_menu_item (?m1, &Copy).
  2949. Format is 'get_display_window ( ).'.#c
  2950. Format      get_display_window ( )
  2951.  
  2952. Action      Finds which window is the current display window.  
  2953.             The display window is the window where text is 
  2954.             displayed and new screen objects are created.
  2955.  
  2956. Returns     The handle of the current display window. 
  2957.  
  2958. See Also    #mset_display_window#m, #mget_active_window#m, 
  2959.             #mset_active_window#m, #mset_top_window#m, 
  2960.             #mget_top_window#m
  2961.  
  2962. //get_error_topic
  2963. #cenable_menu_item (?m1, &Copy).
  2964. Format is 'get_error_topic ( ).'.#c
  2965. Format      get_error_topic ( )
  2966.  
  2967. Action      Finds the list of error handling topics assigned.
  2968.  
  2969. Returns     A list of names of the user defined error handling 
  2970.             topics assigned by set_error_topic. If no error topic 
  2971.             has been assigned, [ ] is returned to indicate that 
  2972.             the default error handler is in effect.
  2973.  
  2974. See Also    #merror_handler#m, #merror_message#m, 
  2975.             #mset_error_topic#m
  2976.  
  2977. //get_event_topic
  2978. #cenable_menu_item (?m1, &Copy).
  2979. Format is 'get_event_topic ().'.#c
  2980. Format      get_event_topic ()
  2981.  
  2982. Action      Finds the name of the global event handling topic.  
  2983.             This topic is defined by set_event_topic.
  2984.  
  2985. Returns     The name of the global event handling topic.  If no 
  2986.             global event topic is set, [ ] is returned.
  2987.  
  2988. See Also    #mset_event_topic#m
  2989.  
  2990. //get_file_pos
  2991. #cenable_menu_item (?m1, &Copy).
  2992. Format is 'get_file_pos (FILE).'.#c
  2993. Format      get_file_pos (FILE)
  2994.  
  2995. Action      Finds the position of a file's pointer.
  2996.  
  2997. Parameters  FILE is the name of the file or list of files.
  2998.  
  2999. Returns     The position of the file pointer, in bytes from the 
  3000.             beginning of the file.  If the file pointer is at the 
  3001.             beginning of the file, 0 is returned.
  3002.  
  3003. Errors      I_CANT_OPEN
  3004.  
  3005. See Also    #mset_file_pos#m, #mread#m, #mread_char#m, 
  3006.             #mread_line#m, #mwrite#m, #mclose#m, #mnew_file#m
  3007.  
  3008. //get_focus
  3009. #cenable_menu_item (?m1, &Copy).
  3010. Format is 'get_focus ( ).'.#c
  3011. Format      get_focus ( )
  3012.  
  3013. Action      Returns the handle of the window or screen object 
  3014.             that currently has the focus.
  3015.  
  3016. Returns     The handle of the window or screen object with the 
  3017.             focus.
  3018.  
  3019. See Also    #mset_focus#m, #mget_display_window#m, 
  3020.             #mset_active_window#m, #mget_top_window#m,  
  3021.             #mget_top_window#m
  3022.  
  3023. //get_list_box
  3024. #cenable_menu_item (?m1, &Copy).
  3025. Format is 'get_list_box (LIST_BOX_HANDLE).'.#c
  3026. Format      get_list_box (LIST_BOX_HANDLE)
  3027.  
  3028. Action      Retrieves the selected items from the specified list 
  3029.             box
  3030.  
  3031. Parameters  LIST_BOX_HANDLE is the handle of a list box or list 
  3032.             of handles
  3033.  
  3034. Returns     A list of the currently selected items from the list 
  3035.             box
  3036.  
  3037. Errors      I_INVALID_WINDOW occurs if LIST_BOX_HANDLE is not a 
  3038.             valid window or a list box.
  3039.  
  3040. See Also    #mlist_box#m, #mget_text#m, #mset_text#m
  3041.  
  3042. //get_number_of_values
  3043. #cenable_menu_item (?m1, &Copy).
  3044. Format is 'get_number_of_values (TOPIC).'.#c
  3045. Format      get_number_of_values (TOPIC)
  3046.  
  3047. Action      Returns the maximum number of values that a topic  
  3048.             can  be assigned.  This number is assigned using 
  3049.             set_number_of_values.  When a list of TOPICS  is 
  3050.             given, a list of values is returned.
  3051.  
  3052. Parameters  TOPIC is the topic  or list of  topics  whose  
  3053.             maximum number of legal values you want to find.
  3054.  
  3055. Returns     A list containing the maximum number of legal values 
  3056.             allowed for  each  topic named.   If a topic is not  
  3057.             found,  [ ]  is returned.
  3058.  
  3059. Error       I_TOPIC_NOT_FOUND
  3060.  
  3061. See Also    #mset_number_of_values#m
  3062.  
  3063. //get_procedures
  3064. #cenable_menu_item (?m1, &Copy).
  3065. Format is 'get_procedures (TOPIC).'.#c
  3066. Format      get_procedures (TOPIC)
  3067.  
  3068. Action      Returns the list of commands associated with TOPIC .
  3069.  
  3070. Parameters  TOPIC is the topic or list of topics whose commands 
  3071.             you want to find.  If TOPIC is [ ] the current topic 
  3072.             is used.  If TOPIC cannot be found, [ ] is returned.
  3073.  
  3074. Returns     A list of the commands associated with each topic 
  3075.             named. The commands are in compiled form. 
  3076.             KnowledgePro commands are represented internally as a 
  3077.             list in the form:
  3078.  
  3079.             [topic, parameter1, parameter2...].
  3080.  
  3081.             This list is displayed as 
  3082.  
  3083.             topic (parameter1, parameter2,...) 
  3084.  
  3085.             when it is displayed in a debugging window.
  3086.  
  3087.             Multiple commands are represented as a list of lists:
  3088.             [[topic1, parameter1, parameter2...],  
  3089.             [topic2, parameter1, parameter2...],...].
  3090.  
  3091.             These  lists  may be manipulated using any of  the  
  3092.             standard list topics.
  3093.  
  3094. Note        get_procedures is not supported in the runtime 
  3095.             version of KnowledgePro.
  3096.  
  3097. See Also    #mcompile_string#m, #mevaluate#m, #mperform#m, 
  3098.             #mset_procedures#m
  3099.  
  3100. //get_radio_button
  3101. #cenable_menu_item (?m1, &Copy).
  3102. Format is 'get_radio_button (HANDLE).'.#c
  3103. Format      get_radio_button (HANDLE)
  3104.  
  3105. Action      Retrieves the state of a radio button or a list of 
  3106.             radio buttons.
  3107.  
  3108. Parameters  HANDLE is the handle of a radio button or a list of 
  3109.             radio buttons.
  3110.  
  3111. Returns     Returns T if a radio button is selected, F if it is 
  3112.             not.  If a list of radio buttons is passed, a list of 
  3113.             T and F values corresponding to the radio button list 
  3114.             is returned.
  3115.  
  3116. Errors      I_INVALID_WINDOW
  3117.  
  3118. See Also    #mget_text#m, #mradio_button#m, #mset_radio_button#m, 
  3119.             #mset_text#m
  3120.  
  3121. //get_read_only
  3122. #cenable_menu_item (?m1, &Copy).
  3123. Format is 'get_read_only (TOPIC).'.#c
  3124. Format      get_read_only (TOPIC)
  3125.  
  3126. Action      Finds whether the value of a topic or list of topics 
  3127.             can be changed.  By default, all topics can have new 
  3128.             values assigned.  Topics may be defined as read only 
  3129.             to prevent values from being overwritten.  This is 
  3130.             done using set_read_only.
  3131.  
  3132. Parameters  TOPIC is a topic or list of topics.
  3133.  
  3134. Returns     T if the topic has been made read only using 
  3135.             set_read_only.  If the values of the topic can be 
  3136.             changed, F  is returned.  If a list is passed in 
  3137.             TOPIC, a list is returned with a T or F for each item 
  3138.             in TOPIC.
  3139.  
  3140. Error       I_V_TOPIC_NOT_FOUND
  3141.  
  3142. See Also    #mset_read_only#m
  3143.  
  3144. //get_scroll_bar
  3145. #cenable_menu_item (?m1, &Copy).
  3146. Format is 'get_scroll_bar (HANDLE).'.#c
  3147. Format      get_scroll_bar (HANDLE)
  3148.  
  3149. Action      Returns the value of a scroll bar.
  3150.  
  3151. Parameters  HANDLE is the handle of a scroll bar or list of 
  3152.             handles.
  3153.  
  3154. Returns     The current position of the scroll bar slider.  
  3155.  
  3156. Errors      I_INVALID_WINDOW
  3157.  
  3158. See Also    #mhorz_scroll_bar#m, #mset_scroll_bar#m, 
  3159.             #mvert_scroll_bar#m
  3160.  
  3161. //get_text
  3162. #cenable_menu_item (?m1, &Copy).
  3163. Format is 'get_text (HANDLE).'.#c
  3164. Format      get_text (HANDLE)
  3165.  
  3166. Action      Retrieves the text associated with the window or 
  3167.             screen object whose handle is passed.
  3168.  
  3169. Parameters  HANDLE is the handle of a window  or screen object or 
  3170.             a list of handles. The default is the handle of the 
  3171.             active window.
  3172.  
  3173. Returns     The text associated with the window. The text 
  3174.             returned depends on the type of the window:
  3175.             
  3176.             Window Type         Returned
  3177.             Button              The button text 
  3178.             Edit Object         The text appearing in the window.  
  3179.                                 Text is returned with each line 
  3180.                                 as one item of a list. 
  3181.             List box            A list of all items contained in 
  3182.                                 the list box. 
  3183.             Scroll bar          [ ] 
  3184.             Display Window      The text appearing in the window. 
  3185.                                 Text is returned with each line 
  3186.                                 as one item of a list.
  3187.  
  3188. Note        In display windows, the maximum line length is 1024 
  3189.             characters. Lines longer than 1024 characters are 
  3190.             split into several lines and trailing spaces are 
  3191.             deleted.
  3192.  
  3193. Errors      I_INVALID_WINDOW
  3194.  
  3195. See Also    #mset_text#m
  3196.  
  3197. //get_title
  3198. #cenable_menu_item (?m1, &Copy).
  3199. Format is 'get_title ({HANDLE}).'.#c
  3200. Format      get_title ({HANDLE})
  3201.  
  3202. Action      Gets the title of either edit or display windows that 
  3203.             have a style which includes a title bar.  
  3204.  
  3205. Parameters  HANDLE is the handle of a window or a list of 
  3206.             handles.  The default is the currently active window.
  3207.  
  3208. Returns     The title associated with the window. If the window 
  3209.             does not have a title, [ ] is returned.
  3210.  
  3211. Errors      I_INVALID_WINDOW
  3212.  
  3213. See Also    #mget_text#m, #mset_title#m
  3214.  
  3215. //get_top_window
  3216. #cenable_menu_item (?m1, &Copy).
  3217. Format is 'get_top_window ( ).'.#c
  3218. Format      get_top_window ( )
  3219.  
  3220. Action      get_top_window is used to find which window has the 
  3221.             focus or contains the screen object that has the 
  3222.             focus.  If the window is a popup or an overlapped 
  3223.             window it is also the active window.
  3224.  
  3225. Returns     The handle of the top window.
  3226.  
  3227. See Also    #mget_active_window#m,  #mget_focus#m,  
  3228.             #mset_top_window#m, #mDescription of Events#m
  3229.  
  3230. //gets
  3231. #cenable_menu_item (?m1, &Copy).
  3232. Format is 'gets (TOPIC, VALUES) .'.#c
  3233. Format      gets (TOPIC, VALUES) 
  3234.  
  3235. Alternate   TOPIC  gets VALUES
  3236.  
  3237. Action      Appends the specified items to the value of the topic 
  3238.             or list of topics specified.
  3239.  
  3240. Parameters  TOPIC is a topic name or list of topic names.   If 
  3241.             TOPIC  is not found it is created.
  3242.  
  3243.             VALUES contains the list of VALUES that  are appended 
  3244.             to the current value of the specified topics.
  3245.  
  3246. Errors      I_READ_ONLY_TOPICS, I_TOO_MANY_VALUES
  3247.  
  3248. //gets_c
  3249. #cenable_menu_item (?m1, &Copy).
  3250. Format is 'gets_c (TOPIC, VALUES).'.#c
  3251. Format      gets_c (TOPIC, VALUES)
  3252.  
  3253. Alternate   TOPIC gets_c VALUES
  3254.  
  3255. Action      Appends each element of VALUES to the value of the 
  3256.             corresponding topic from TOPIC. The list TOPIC is 
  3257.             flattened before the assignment takes place. Elements 
  3258.             from VALUES which do not have a corresponding topic 
  3259.             in the list TOPIC are ignored. Topics which do not 
  3260.             have a corresponding element on VALUES are assigned [].
  3261.  
  3262. Parameters  TOPIC is a topic name or list of topic names.  If a 
  3263.             TOPIC is not found it is created.
  3264.  
  3265.             VALUES is the list of items that  are appended to the 
  3266.             current values of the corresponding topics.
  3267.  
  3268. Errors      I_READ_ONLY_TOPICS, I_TOO_MANY_VALUES
  3269.  
  3270. //group_box
  3271. #cenable_menu_item (?m1, &Copy).
  3272. Format is 'group_box (TEXT, COLUMN, ROW, WIDTH, HEIGHT).'.#c
  3273. Format      group_box (TEXT, COLUMN, ROW, WIDTH, HEIGHT)
  3274.  
  3275. Action      Draws a captioned box which may be used to group 
  3276.             buttons.
  3277.  
  3278. Parameters  TEXT is the caption of the group box.
  3279.  
  3280.             COLUMN, ROW is the position of the upper left corner 
  3281.             of the box. The default is the current position.  The 
  3282.             position is relative to the upper left corner of the 
  3283.             display area of the current display window.
  3284.  
  3285.             WIDTH, HEIGHT is the width and height of the box. The 
  3286.             default width is the length of TEXT + 2. The default 
  3287.             height is 4.
  3288.  
  3289. Returns     The handle of the group box.
  3290.  
  3291. Note        The group box should only be used in dialog boxes.  A 
  3292.             bug in Windows Version 2.1, sometimes causes the 
  3293.             group box to be painted incorrectly in overlapped 
  3294.             windows.  Microsoft is aware of this problem and, 
  3295.             hopefully, will correct it in a future version.
  3296.  
  3297. //hide_window
  3298. #cenable_menu_item (?m1, &Copy).
  3299. Format is 'hide_window ({HANDLE}).'.#c
  3300. Format      hide_window ({HANDLE})
  3301.  
  3302. Action      Makes a window or a screen object invisible. Events 
  3303.             are still processed.   No activity is visible until 
  3304.             the window is made visible using a show_window.  When 
  3305.             a window is hidden all its children and everything 
  3306.             displayed inside it are also hidden.  If the 
  3307.             currently active window is hidden, the last window to 
  3308.             be active becomes the currently active window.  When 
  3309.             a window is hidden, it receives a lose_focus_event.  
  3310.             If a screen object in the window had the focus, it 
  3311.             also receives a lose_focus_event.
  3312.  
  3313. Parameters  HANDLE is a handle or list of handles.  The default 
  3314.             is the current display window.
  3315.  
  3316. Returns     [ ]
  3317.  
  3318. Note        If the window is already hidden, the command has no 
  3319.             effect.
  3320.  
  3321. Error       I_INVALID_WINDOW
  3322.  
  3323. See Also    #mshow_window#m, #mdisable_window#m
  3324.  
  3325. //horz_scroll_bar
  3326. #cenable_menu_item (?m1, &Copy).
  3327. Format is 'horz_scroll_bar ({EVENT_ TOPIC, COLUMN, ROW, WIDTH, HEIGHT, MINIMUM, MAXIMUM, EVENT_LIST}).'.#c
  3328. Format      horz_scroll_bar ({EVENT_ TOPIC, COLUMN, ROW, WIDTH, 
  3329.                HEIGHT, MINIMUM, MAXIMUM, EVENT_LIST})
  3330.  
  3331. Action      Creates a  horizontal scroll bar in the current 
  3332.             display window.  The scroll bar slider may be moved 
  3333.             with the mouse or with the cursor keys.
  3334.  
  3335. Parameters  EVENT_TOPIC is the topic or list of topics performed 
  3336.             when an event on the EVENT_LIST occurs while the 
  3337.             focus is on the scroll bar.  EVENT_TOPIC is called 
  3338.             as:  
  3339.  
  3340.             EVENT_TOPIC(EVENT_INFO,EVENT_NAME,HANDLE).
  3341.  
  3342.             EVENT_INFO depends on the event that occurs.  A 
  3343.             description of events is given in Appendix D.
  3344.  
  3345.             EVENT_NAME is the name of the event that occurred.  
  3346.  
  3347.             HANDLE is the handle assigned to the scroll bar.    
  3348.             If EVENT_TOPIC sets its value to true after being 
  3349.             called by a lose_focus_event, close_event, 
  3350.             char_event, or a sys_char_event, further processing 
  3351.             of the event is canceled before it is executed.   
  3352.             Whenever EVENT_TOPIC is called its value is reset.  
  3353.             If no EVENT_TOPIC is defined, no events are 
  3354.             recognized.
  3355.  
  3356.             COLUMN, ROW is the position of the scroll bar. The 
  3357.             default is the current display location. COLUMN and 
  3358.             ROW are relative to the display area of the current 
  3359.             display window.
  3360.  
  3361.             WIDTH, HEIGHT is the width and height of the scroll 
  3362.             bar.  The default is 20, 1.
  3363.  
  3364.             MINIMUM, MAXIMUM is the minimum and maximum slider 
  3365.             values. The default is 0, 100. MINIMUM and MAXIMUM 
  3366.             can take on values between -32768 and 32767.  If 
  3367.             these parameters are lists, only the first element is 
  3368.             used.
  3369.  
  3370.             EVENT_LIST is a list of events that cause the 
  3371.             EVENT_TOPIC to be called.  The events that can be 
  3372.             processed are: 
  3373.  
  3374.             get_focus_event, lose_focus_event, close_event     
  3375.             char_event, sys_char_event, scroll_event These events 
  3376.             are described in detail in Appendix D. If no event is 
  3377.             specified, the default event is a scroll_event.
  3378.  
  3379. Returns     HANDLE, the handle of the scroll bar.
  3380.  
  3381. Note        To get the value of a scroll bar use get_scroll_bar.  
  3382.             To set the position of a scroll bar use 
  3383.             set_scroll_pos.
  3384.  
  3385. See Also    #mget_scroll_bar#m, #mset_scroll_bar#m, 
  3386.             #mvert_scroll_bar#m, #mDescription of Events#m
  3387.  
  3388. //horz_scroll_text
  3389. #cenable_menu_item (?m1, &Copy).
  3390. Format is 'horz_scroll_text (HANDLE,COLUMNS).'.#c
  3391. Format      horz_scroll_text (HANDLE,COLUMNS)
  3392.  
  3393. Action      Scrolls the window the appropriate number of columns. 
  3394.             The window does not scroll beyond the maximum length 
  3395.             of the text currently displayed in the window.
  3396.  
  3397. Parameters  HANDLE is the handle of a window, or list of handles. 
  3398.  
  3399.             COLUMNS is the number of columns to scroll, negative 
  3400.             to scroll the window left, positive to scroll right. 
  3401.             If this parameter is a list, only the first element 
  3402.             is used.
  3403.  
  3404. Returns     The co-ordinates of the text that appears in the 
  3405.             upper left corner of the window.
  3406.  
  3407. Errors      I_INVALID_WINDOW
  3408.  
  3409. See Also    #mvert_scroll_text#m
  3410.  
  3411. //hyper_display
  3412. #cenable_menu_item (?m1, &Copy).
  3413. Format is 'hyper_display (TEXTCOLOR, BACKCOLOR, FONT).'.#c
  3414. Format      hyper_display (TEXTCOLOR, BACKCOLOR, FONT)
  3415.  
  3416. Action      Sets the default color and font for hypertext 
  3417.             displayed with ##m.
  3418.  
  3419. Parameters  TEXTCOLOR is the color used to display hypertext. If 
  3420.             this parameter is a list, only the first element is 
  3421.             used. If it is [ ], it is ignored. TEXTCOLOR is one 
  3422.             of these colors:  black, blue, green, red, magenta, 
  3423.             cyan, yellow, white
  3424.  
  3425.             BACKCOLOR is the background color used to display 
  3426.             hypertext. If this parameter is a list, only the 
  3427.             first element is used. If it is [ ], it is ignored.  
  3428.             BACKCOLOR is one of these colors:  black, blue, 
  3429.             green, red, magenta, cyan, yellow, white
  3430.  
  3431.             FONT is a handle of a font created with CREATE_FONT, 
  3432.             or one of the following strings:  
  3433.  
  3434.             OEM_FIXED_FONT - a fixed width font using the OEM     
  3435.             character set. 
  3436.  
  3437.             ANSI_FIXED_FONT - a fixed width font using the ANSI     
  3438.             character set. 
  3439.  
  3440.             ANSI_VAR_FONT - a variable width font using the  ANSI     
  3441.             character set. 
  3442.  
  3443.             DEVICE_DEFAULT_FONT - the most appropriate font for 
  3444.             the specified device. 
  3445.  
  3446.             SYSTEM_FONT - the system font.  If this parameter is 
  3447.             a list, only the first element is used. If it is [ ], 
  3448.             it is ignored.
  3449.  
  3450. Note        The default color of a specific hypertext phrase can 
  3451.             be changed by using ##f or ##b color commands 
  3452.             immediately following the ##m.  This  overrides the 
  3453.             usual display.  ##f and ##b are described in text.  The 
  3454.             font cannot be reset on a case by case basis.
  3455.  
  3456. Errors      I_INVALID_FONT
  3457.  
  3458. See Also    #mcreate_font#m, #mtext#m
  3459.  
  3460. //hyper_region
  3461. #cenable_menu_item (?m1, &Copy).
  3462. Format is 'hyper_region (TOPIC, COLUMN, ROW, WIDTH, HEIGHT).'.#c
  3463. Format      hyper_region (TOPIC, COLUMN, ROW, WIDTH, HEIGHT)
  3464.  
  3465. Action      Creates a rectangular "hot-spot" in the current 
  3466.             display window at the specified co-ordinates.  The 
  3467.             hot spot is selected by the user by a click of the 
  3468.             mouse or by pressing ENTER while the cursor is in the 
  3469.             defined region.  When selected, TOPIC is called.  
  3470.             This can be used with bitmaps to create hyper-
  3471.             graphics.
  3472.  
  3473. Parameters  TOPIC is a topic or list of topics which are called 
  3474.             when the region is selected either by pressing the 
  3475.             ENTER  key while the caret is in the region or by 
  3476.             clicking the mouse in the region.  If the defined 
  3477.             topic is not found, then the topic MARK is called and 
  3478.             is passed TOPIC.  If super_mark is defined, it is 
  3479.             called instead of TOPIC.
  3480.  
  3481.             COLUMN, ROW is the co-ordinates of the upper left 
  3482.             corner of the region. If either of these parameters 
  3483.             are a list, only the first element is used.
  3484.  
  3485.             WIDTH, HEIGHT is the width and height of the region.  
  3486.             The default is the current position.  COLUMN and ROW 
  3487.             are relative to the upper left corner of the display 
  3488.             area of the current display window.
  3489.  
  3490. See Also    #mbitmap#m, #mload_bitmap#m, #mread_clipboard#m
  3491.  
  3492. //icon
  3493. #cenable_menu_item (?m1, &Copy).
  3494. Format is 'icon (ICON_HANDLE, COLUMN, ROW).'.#c
  3495. Format      icon (ICON_HANDLE, COLUMN, ROW)
  3496.  
  3497. Action      Displays the icon associated with the handle at the 
  3498.             current screen position. 
  3499.  
  3500. Parameters  ICON_HANDLE is a handle or list of handles.  The icon 
  3501.             handle is returned from load_icon.
  3502.  
  3503.             COLUMN, ROW is the position of the upper left corner 
  3504.             of the icon. COLUMN and ROW are relative to the upper 
  3505.             left corner of the display area of the current 
  3506.             display window. 
  3507.  
  3508. Errors      I_NOT_ICON
  3509.  
  3510. Note        Get the ICON_HANDLE from  load_icon.
  3511.  
  3512. See Also    #mdelete_icon#m, #micon#m, #mload_icon#m, 
  3513.             #mattach_icon#m, #mset_focus#m
  3514.  
  3515. //im_a
  3516. #cenable_menu_item (?m1, &Copy).
  3517. Format is 'im_a (TOPIC, PARAMETERS).'.#c
  3518. Format      im_a (TOPIC, PARAMETERS)
  3519.  
  3520. Action      im_a copies the sub-topic structure of  TOPIC into 
  3521.             the current topic. If a sub-topic of the 
  3522.             current_topic has the same name as a sub-topic of 
  3523.             TOPIC, that sub-topic is not copied.  All other sub-
  3524.             topics with their values and properties are copied, 
  3525.             PARAMETERS are passed and the commands are executed.
  3526.  
  3527.             After the commands have finished executing, control 
  3528.             returns to the command after the im_a.  The 
  3529.             effect of im_a is that TOPIC is performed as if 
  3530.             it resides in the current topic so any local topics 
  3531.             created by TOPIC are local to the current topic.
  3532.  
  3533.             In the terms of object-oriented programming, im_a 
  3534.             makes the current topic a  sub-class of TOPIC.
  3535.  
  3536. Parameters  TOPIC a topic name or list of topic names.
  3537.  
  3538.             PARAMETERS a list of parameters to be passed to 
  3539.             TOPIC.
  3540.  
  3541. Returns     [ ]
  3542.  
  3543. Errors      I_V_TOPIC_NOT_FOUND
  3544.  
  3545. See Also    #mdo_local#m, #mnew#m
  3546.  
  3547. //intersect
  3548. #cenable_menu_item (?m1, &Copy).
  3549. Format is 'intersect (LIST1, LIST2 {, LIST3 ...}).'.#c
  3550. Format      intersect (LIST1, LIST2 {, LIST3 ...})
  3551.  
  3552. Action      Creates a list which contains the common items in 
  3553.             several lists. The resulting list contains no 
  3554.             duplicates.
  3555.  
  3556. Parameters  LIST1, LIST2, {LIST3 ... }  are the lists of items to 
  3557.             be checked for common members.
  3558.  
  3559. Returns     All  of  the items that appear on each of the  lists  
  3560.             of items.
  3561.  
  3562. See Also    #mdifferent#m, #msublist#m
  3563.  
  3564. //is
  3565. #cenable_menu_item (?m1, &Copy).
  3566. Format is 'TOPIC is VALUES.'.#c
  3567. Format      TOPIC is VALUES
  3568.  
  3569. Alternate   make (TOPIC, VALUES)
  3570.  
  3571. Action      Sets the value of the topic or topics to the VALUES 
  3572.             named. The old value of the topic is lost.
  3573.  
  3574. Parameters  TOPIC is an expression that evaluates to a topic or  
  3575.             a list of topics.  If a topic name is not found it is 
  3576.             created. 
  3577.  
  3578.             VALUES contains the list of VALUES assigned as the 
  3579.             current value of the specified topics.
  3580.  
  3581. Errors      I_READ_ONLY_TOPIC, I_TOO_MANY_VALUES
  3582.  
  3583. See Also    #mgets#m, #mgets_c#m, #mis_c#m
  3584.  
  3585. //is_c
  3586. #cenable_menu_item (?m1, &Copy).
  3587. Format is 'TOPIC is_c VALUES.'.#c
  3588. Format      TOPIC is_c VALUES
  3589.  
  3590. Alternate   make_c (TOPIC, VALUES)
  3591.  
  3592. Action      Assigns each element of VALUES to the corresponding 
  3593.             topic from TOPIC. The list TOPIC is flattened to an 
  3594.             unnested list of names before assignment takes place. 
  3595.             Elements from VALUES which do not have a 
  3596.             corresponding topic in the list TOPIC are ignored. 
  3597.             Topics which do not have a corresponding element in 
  3598.             VALUES are assigned [ ].
  3599.  
  3600. Parameters  TOPIC is an expression that evaluates to a topic  or  
  3601.             a list of topics.  If a topic name is not found it is 
  3602.             created.
  3603.  
  3604.             ITEMS contains the list of items assigned as the 
  3605.             current value of the corresponding topics.
  3606.  
  3607. Errors      I_READ_ONLY_TOPIC, I_TOO_MANY_VALUES
  3608.  
  3609. See Also    #mgets#m, #mgets_c#m, #mis#m
  3610.  
  3611.  
  3612. //last
  3613. #cenable_menu_item (?m1, &Copy).
  3614. Format is 'last (LIST).'.#c
  3615. Format      last (LIST)
  3616.  
  3617. Action      Retrieves the last item from a list.  The last 
  3618.             element of an empty list is [ ].
  3619.  
  3620. Parameters  LIST is the list of items.
  3621.  
  3622. Returns     The last item on the specified list.
  3623.  
  3624. See Also    #melement#m, #mfirst#m, #mrest#m
  3625.  
  3626. //list_box
  3627. #cenable_menu_item (?m1, &Copy).
  3628. Format is 'list_box (LIST, {EVENT_TOPIC, COLUMN, ROW, WIDTH, HEIGHT, MULTISELECT, SORTED, EVENT_LIST}).'.#c
  3629. Format      list_box (LIST, {EVENT_TOPIC, COLUMN, ROW, WIDTH, 
  3630.                HEIGHT, MULTISELECT, SORTED, EVENT_LIST})
  3631.  
  3632. Action      A list box is created at COLUMN, ROW in the current 
  3633.             display window.  If an EVENT_LIST is specified, 
  3634.             EVENT_TOPIC is called whenever the selected events 
  3635.             occur while the focus is on the list box.
  3636.  
  3637. Parameters  LIST is the list of items to appear in the list box
  3638.  
  3639.             EVENT_TOPIC is the topic or list of topics  performed 
  3640.             when an event on the EVENT_LIST occurs while the 
  3641.             focus is on the list box.  EVENT_TOPIC is called as:  
  3642.  
  3643.              EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE)
  3644.  
  3645.             EVENT_INFO  depends  on  the event  that  occurs.   A 
  3646.             description  of events is shown provided in  Appendix 
  3647.             D.
  3648.  
  3649.             EVENT_NAME is the name of the event that occurred.  
  3650.  
  3651.             HANDLE is the handle assigned to the list box.  
  3652.  
  3653.             If EVENT_TOPIC sets its value to true after being 
  3654.             called by a lose_focus_event, close_event, 
  3655.             char_event, or a sys_char_event, the event is 
  3656.             canceled before it is executed.   Whenever 
  3657.             EVENT_TOPIC is called its value is reset.  If no 
  3658.             EVENT_TOPIC is defined, no events are recognized.
  3659.  
  3660.             COLUMN, ROW is the list box location.  The default 
  3661.             position is the current position. COLUMN and ROW are 
  3662.             relative to the upper left corner of the display area 
  3663.             of the current display window. 
  3664.  
  3665.             WIDTH, HEIGHT is the size of the list box.  The 
  3666.             default makes the list box wide enough to fit the 
  3667.             longest list item and high enough to fit the number 
  3668.             of list items up to a maximum of 7 items.  Scroll 
  3669.             bars let you scroll through items not visible on the 
  3670.             list. 
  3671.  
  3672.             MULTISELECT is a boolean value that defines whether 
  3673.             one or several items can be selected from the list 
  3674.             box.  The default is false which makes a single 
  3675.             selection list box.
  3676.  
  3677.             SORTED is a boolean that specifies whether the items 
  3678.             in the list box are sorted alphabetically.  The 
  3679.             default is false.  
  3680.  
  3681.             EVENT_LIST is a list of events that causes the 
  3682.             EVENT_TOPIC to be called.  The events that can be 
  3683.             processed are:
  3684.  
  3685.             get_focus_event, lose_focus_event, close_event     
  3686.             char_event, sys_char_event, list_select_event     
  3687.             double_click_event These events are described in 
  3688.             detail in Appendix D. If no event is specified, the 
  3689.             default event is a double_click_event.
  3690.  
  3691. Returns     HANDLE, the handle of the list box.
  3692.  
  3693. Note        To get the value of the items selected in a list box 
  3694.             use get_list_box.  To get a list of all the items in 
  3695.             the list box use get_text.  To change the items in a 
  3696.             list box use set_text.
  3697.  
  3698. See Also    #mask#m, #mget_list_box#m, #mget_text#m, 
  3699.             #mset_text#m, #mDescription of Events#m
  3700.  
  3701. //list_length
  3702. #cenable_menu_item (?m1, &Copy).
  3703. Format is 'list_length (LIST) .'.#c
  3704. Format      list_length (LIST) 
  3705.  
  3706. Action      Determines the number of items on  a list.
  3707.  
  3708. Parameters  LIST is the list whose length you are trying to 
  3709.             determine.
  3710.  
  3711. Returns     An integer that specifies the number of items on the 
  3712.             list.
  3713.  
  3714. //list_of_char
  3715. #cenable_menu_item (?m1, &Copy).
  3716. Format is 'list_of_char (TEXT) .'.#c
  3717. Format      list_of_char (TEXT) 
  3718.  
  3719. Action      Create a list of characters from a string of text.
  3720.  
  3721. Parameters  TEXT is the string to be turned into a list.
  3722.  
  3723. Returns     A  list  made up of each individual character in  the  
  3724.             words contained in TEXT.  If TEXT is empty, [ ] is  
  3725.             returned. If TEXT is a list, a list of the characters 
  3726.             of each element is returned.
  3727.  
  3728. See Also    #mstring_to_list#m
  3729.  
  3730. //list_to_string
  3731. #cenable_menu_item (?m1, &Copy).
  3732. Format is 'list_to_string (LIST {,DELIMITER, LEFT_BRACKET, RIGHT_BRACKET, QUOTE}).'.#c
  3733. Format      list_to_string (LIST {,DELIMITER, LEFT_BRACKET, 
  3734.                RIGHT_BRACKET, QUOTE})
  3735.  
  3736. Action      A string is created that contains  each of the list 
  3737.             items separated by the character selected by 
  3738.             DELIMITER The characters specified in LEFT_BRACKET 
  3739.             are attached to the front of the string and those in 
  3740.             RIGHT_BRACKET are added to the end of a string.  List 
  3741.             items with embedded spaces can be automatically 
  3742.             enclosed with a quote character if desired.  LIST 
  3743.             itself is not changed.
  3744.  
  3745. Parameters  LIST is the item or list of items to be converted to 
  3746.             a string.
  3747.  
  3748.             DELIMITER is a string or list of strings which are 
  3749.             used to separate what was the individual list items.  
  3750.             The default is the empty string.
  3751.  
  3752.             LEFT_BRACKET is a string or list of strings which are 
  3753.             placed in front of each list and sublist.  The 
  3754.             default is the empty string.
  3755.  
  3756.             RIGHT_BRACKET is a string or list of strings which 
  3757.             are placed after each list and sublist. The default 
  3758.             is the empty string.
  3759.  
  3760.             QUOTE string or list of strings which are placed 
  3761.             around each list item. The default is the empty 
  3762.             string.
  3763.  
  3764. Returns     The string that is created from the specified list.
  3765.  
  3766. See Also    #mstring_to_list#m, #mlist_of_char#m
  3767.  
  3768. //load
  3769. #cenable_menu_item (?m1, &Copy).
  3770. Format is 'load (KB_FILE{,TOPIC}).'.#c
  3771. Format      load (KB_FILE{,TOPIC})
  3772.  
  3773. Action      Reads  a  knowledge base or list  of  knowledge  
  3774.             bases.  The topics  in  the new knowledge base become 
  3775.             the  children  of TOPIC and the commands are attached 
  3776.             to the end of TOPIC's commands.  If the second 
  3777.             parameter is not specified, the knowledge base is 
  3778.             loaded into the topic containing the load and the new 
  3779.             topics can become sub-topics of the current topic and 
  3780.             the commands are attached to the end of the current 
  3781.             topic's commands.
  3782.  
  3783. Parameters  KB_FILE   the name of a file or a list of files  that 
  3784.             contains the knowledge base to be loaded.  The file 
  3785.             name may be  any  legitimate DOS file name and may 
  3786.             contain drive  and path  information.  If a path is 
  3787.             not supplied,  the  default directory is used.  If  
  3788.             an  extension  is  not  supplied, KnowledgePro   
  3789.             first  searches for  a compiled  knowledge base,  
  3790.             KB_FILE. CKB. If that knowledge base cannot be found, 
  3791.             KB_FILE.KB  is compiled and loaded .  If  both  files 
  3792.             exist,  the  file  with the most recent time and date  
  3793.             stamp are used.  
  3794.  
  3795.             TOPIC is an optional parameter that allows you to 
  3796.             load the new knowledge base into a specified topic.   
  3797.             If this parameter is missing,  the knowledge base is 
  3798.             loaded into the current  topic.    If TOPIC does not 
  3799.             exist,  it is created and the knowledge base 
  3800.             contained in KB_FILE is loaded into it.
  3801.  
  3802. Returns     T if the knowledge base was loaded properly otherwise 
  3803.             F.
  3804.  
  3805. Errors      F_NO_NAME, I_CANT_OPEN, I_CANT_READ
  3806.             Loading a source knowledge base may result in 
  3807.             compiler errors. Source knowledge bases cannot be 
  3808.             loaded by the runtime version of KnowledgePro.
  3809.  
  3810. See Also    #mnew_kb#m, #msave_topic#m
  3811.  
  3812. //load_bitmap
  3813. #cenable_menu_item (?m1, &Copy).
  3814. Format is 'load_bitmap (FILE).'.#c
  3815. Format      load_bitmap (FILE)
  3816.  
  3817. Parameters  FILE is a file or list of files containing a bitmap
  3818.  
  3819. Action      Reads a file containing a bitmap and creates a bitmap 
  3820.             in memory.
  3821.  
  3822. Returns     BITMAP_HANDLE, the bitmap handle or list of bitmap 
  3823.             handles if FILE is a list.
  3824.  
  3825. Note        When a bitmap is no longer needed, be sure to delete 
  3826.             it to recover its memory.  Don't delete any bitmap 
  3827.             that is in a currently displayed window.  
  3828.             KnowledgePro requires the bitmap handle to repaint a 
  3829.             window containing a bitmap.
  3830.  
  3831. Errors      I_NOT_BITMAP, I_CANT_OPEN_BITMAP, F_FILE_NOT_FOUND, 
  3832.             I_BITMAP_NO_MEM, I_CANT_READ
  3833.  
  3834. See Also    #mbitmap#m, #mbitmap_to_clipboard#m, 
  3835.             #mcreate_bitmap#m, #mdelete_bitmap#m, 
  3836.             #mread_clipboard#m    
  3837.         
  3838. //load_icon
  3839. #cenable_menu_item (?m1, &Copy).
  3840. Format is 'load_icon (FILE_NAME).'.#c
  3841. Format      load_icon (FILE_NAME)
  3842.  
  3843. Action      The icon in FILE_NAME is loaded into memory.
  3844.  
  3845. Parameters  FILE_NAME the name of a file containing a valid icon 
  3846.             or list of files. The file name may also be one of 
  3847.             the following special icons:
  3848.  
  3849.             ASTERISK_ICON an asterisk, used in informative 
  3850.             messages
  3851.  
  3852.             EXCLAMATION_ICON an exclamation point, used in 
  3853.             warning messages
  3854.  
  3855.             HAND_ICON a hand shaped icon, used in serious warning     
  3856.             messages
  3857.  
  3858.             QUESTION_ICON a question mark, used in prompts.               
  3859.  
  3860. Returns     ICON_HANDLE, the icon handle.
  3861.  
  3862. Note        Icon files can be created with programs such as 
  3863.             ICONEDIT, and  ZSoft's Paintbrush for Windows.  Be 
  3864.             sure to delete the icon after the window containing 
  3865.             it has been closed.  This frees memory.  
  3866.  
  3867. Errors      F_FILE_NOT_FOUND, I_NOT_ICON, I_CANT_READ, 
  3868.             I_CANT_OPEN
  3869.  
  3870. See Also    #mdelete_icon#m, #micon#m, #mattach_icon#m
  3871.  
  3872. //load_library
  3873. #cenable_menu_item (?m1, &Copy).
  3874. Format is 'load_library (FILE_NAME).'.#c
  3875. Format      load_library (FILE_NAME)
  3876.  
  3877. Action      Loads the DLL into memory. If the DLL is already in 
  3878.             memory, its use count is incremented.
  3879.  
  3880. Parameters  FILE_NAME is a name or list of names of dynamic link 
  3881.             library  (DLL) files.
  3882.  
  3883. Returns     DLL_HANDLE, the handle of the library.
  3884.  
  3885. Note        A DLL must be loaded before any of its functions can 
  3886.             be called with the user command.
  3887.  
  3888. Errors      I_CANT_OPEN, I_INVALID_LIBRARY
  3889.  
  3890. See Also    #mfree_library#m, #muser#m
  3891.  
  3892. //load_program
  3893. #cenable_menu_item (?m1, &Copy).
  3894. Format is 'load_program (PROGRAM{,SHOW_CODE}).'.#c
  3895. Format      load_program (PROGRAM{,SHOW_CODE})
  3896.  
  3897. Action      Loads the program into memory and continues execution 
  3898.             of the knowledge base. The loaded program is not 
  3899.             executed until there are no more topics to be called 
  3900.             or a wait is called.  Under Windows 286, a program 
  3901.             can only run if its window is visible and not 
  3902.             minimized.
  3903.  
  3904. Parameters  PROGRAM is the name of a program and its command line 
  3905.             parameters or list of programs and command lines. If 
  3906.             the program name does not contain a path, run  
  3907.             automatically searches the DOS PATH if the program is 
  3908.             not in the current directory. If the program name 
  3909.             does not contain an extension, .EXE is assumed.
  3910.  
  3911.             SHOW_CODE  describes how the window that contains the 
  3912.             application appears and whether it becomes the 
  3913.             currently active window.  The codes are:  
  3914.  
  3915.             Display        Active Window          Code 
  3916.             Normal        Yes            1
  3917.             Normal        No            4 
  3918.             Minimized        Yes            2 
  3919.             Minimized        No            7 
  3920.             Maximized        Yes            3 
  3921.             Hidden        No            0  
  3922.  
  3923.             The default loads the application as an icon that is 
  3924.             not the active window (Code 7).
  3925.  
  3926. Returns     The task handle of the program loaded or an error 
  3927.             code. Error codes are always less than 32.  The error 
  3928.             codes are:  
  3929.  
  3930.             2    Program not found. 
  3931.             16   The program name was invalid. 
  3932.             17   The command line is greater than 80 characters.
  3933.  
  3934. Note        It is best to run a .PIF file for DOS applications. 
  3935.             This gives you control over memory, program switches 
  3936.             etc. The error code returned is the code returned by 
  3937.             the Windows program loader. It is usually 0, so there 
  3938.             is no reliable way to tell if the program has 
  3939.             actually executed. Windows does not return program 
  3940.             exit codes to KnowledgePro. Under Windows/286, the 
  3941.             screen may turn black when executing a DOS 
  3942.             application. Under Windows/386, it is possible to 
  3943.             execute a DOS program as an icon by setting the .PIF 
  3944.             file to run in background.
  3945.  
  3946.             When a program is loaded, it is assigned a task 
  3947.             handle which is returned by load_program.  Once you 
  3948.             have the task handle you can use it to get the window 
  3949.             handle of the task.  For example:
  3950.  
  3951.             task is load_program ('NOTEPAD.EXE'). 
  3952.             ProgramWindow is task_windows (?task).
  3953.  
  3954.             Using this handle, you have full control of how and 
  3955.             where any application is displayed on the screen.
  3956.  
  3957. Errors      I_EXT_STRING_LONG, I_NO_TIMERS
  3958.  
  3959. See Also    #mrun#m, #mtask_list#m, #mtask_windows#m
  3960.  
  3961. //lower
  3962. #cenable_menu_item (?m1, &Copy).
  3963. Format is 'lower (TEXT).'.#c
  3964. Format      lower (TEXT)
  3965.  
  3966. Action      Create a string of text by converting a string or a 
  3967.             list of strings to lower case.  TEXT itself is not 
  3968.             changed.
  3969.  
  3970. Parameters  TEXT is a text string or list of strings.
  3971.  
  3972. Returns     The strings with characters in the range A to Z 
  3973.             converted to the range a to z.
  3974.  
  3975. See Also    #mupper#m
  3976.  
  3977. //make
  3978. #cenable_menu_item (?m1, &Copy).
  3979. Format is 'make (TOPIC, VALUES).'.#c
  3980. Format      make (TOPIC, VALUES)
  3981.  
  3982. Alternate   TOPIC = VALUES TOPIC is VALUES
  3983.  
  3984. Action      Sets the value of the topic or topics to the VALUES 
  3985.             named. The old value of the topic is lost.
  3986.  
  3987. Parameters  TOPIC is an expression that evaluates to a topic or  
  3988.             a list of topics.  If a topic name is not found it is 
  3989.             created. 
  3990.  
  3991.             VALUES contains the list of VALUES assigned as the 
  3992.             current value of the specified topics.
  3993.  
  3994. Errors      I_READ_ONLY_TOPIC, I_TOO_MANY_VALUES
  3995.  
  3996. See Also    #mgets#m, #mgets_c#m, #mmake_c#m
  3997.  
  3998. //make_c
  3999. #cenable_menu_item (?m1, &Copy).
  4000. Format is 'make_c (TOPIC, VALUES).'.#c
  4001. Format      make_c (TOPIC, VALUES)
  4002.  
  4003. Alternate   TOPIC is_c VALUES
  4004.  
  4005. Action      Assigns each element of VALUES to the corresponding 
  4006.             topic from TOPIC. The list TOPIC is flattened to an 
  4007.             unnested list of names before assignment takes place. 
  4008.             Elements from VALUES which do not have a 
  4009.             corresponding topic in the list TOPIC are ignored. 
  4010.             Topics which do not have a corresponding element in 
  4011.             VALUES are assigned [ ].
  4012.  
  4013. Parameters  TOPIC is an expression that evaluates to a topic  or  
  4014.             a list of topics.  If a topic name is not found it is 
  4015.             created.
  4016.  
  4017.             ITEMS contains the list of items assigned as the 
  4018.             current value of the corresponding topics.
  4019.  
  4020. Errors      I_READ_ONLY_TOPIC, I_TOO_MANY_VALUES
  4021.  
  4022. See Also    #mgets#m, #mgets_c#m, #mmake#m
  4023.  
  4024. //make_modal
  4025. #cenable_menu_item (?m1, &Copy).
  4026. Format is 'make_modal (HANDLE).'.#c
  4027. Format      make_modal (HANDLE)
  4028.  
  4029. Action      Causes the window identified by HANDLE to become the 
  4030.             only window that accepts input. All other windows are 
  4031.             disabled and do not accept mouse or keyboard input.  
  4032.             Modal windows are frequently used for error messages 
  4033.             or whenever you want to force the user to respond to 
  4034.             the window before taking any other action.
  4035.  
  4036. Parameters  HANDLE is the handle of a display or edit window. If 
  4037.             this parameter is a list, only the first element is 
  4038.             used.
  4039.  
  4040. Errors      I_INVALID_WINDOW
  4041.  
  4042. Note        In Microsoft Windows, the usual convention is to use 
  4043.             a dialog frame on a modal window.
  4044.  
  4045. See Also    #mdisable_window#m, #menable_window#m
  4046.  
  4047. //make_topic_list
  4048. #cenable_menu_item (?m1, &Copy).
  4049. Format is 'make_topic_list ( ).'.#c
  4050. Format      make_topic_list ( )
  4051.  
  4052. Action      Opens a window and displays the topics in a vertical 
  4053.             list, using indentation to show the topic hierarchy.  
  4054.             When a topic is selected with the mouse or keyboard,  
  4055.             the topic show_topic is automatically called and is 
  4056.             passed the name of the selected topic as a parameter.  
  4057.             This shows an expanded view of the topics' commands, 
  4058.             children, values and properties.
  4059.  
  4060. See Also    #mshow_topic#m
  4061.  
  4062. //memory
  4063. #cenable_menu_item (?m1, &Copy).
  4064. Format is 'memory ( ).'.#c
  4065. Format      memory ( )
  4066.  
  4067. Action      Finds the amount of free memory.
  4068.  
  4069. Returns     The number of free bytes. This is the total remaining 
  4070.             memory available to the knowledge base.  It is not 
  4071.             necessarily contiguous.
  4072.  
  4073. Note        memory ( ) returns the total amount of memory 
  4074.             available on its internal list of free memory plus 
  4075.             the size of the largest segment that Windows can make 
  4076.             available to it.  The total amount of free memory may 
  4077.             be greater due to fragmentation of Windows' memory 
  4078.             and "garbage" in KnowledgePro's internal memory.
  4079.  
  4080. See Also    #mcollect#m, #mcollect_ok#m, #mcollect_not_ok#m
  4081.  
  4082. //menu
  4083. #cenable_menu_item (?m1, &Copy).
  4084. Format is 'menu (MENU_LIST, EVENT_TOPIC).'.#c
  4085. Format      menu (MENU_LIST, EVENT_TOPIC)
  4086.  
  4087. Action      Creates a menu in the current window with the items 
  4088.             in MENU_LIST as the options on the menu.  When an 
  4089.             option is selected from the menu,  EVENT_TOPIC is 
  4090.             called as
  4091.  
  4092.             EVENT_TOPIC (OPTION, HANDLE).
  4093.  
  4094.             where HANDLE is the handle of the window containing 
  4095.             the menu  and OPTION is the item selected from the 
  4096.             menu.  No event name is passed since the only event 
  4097.             that is recognized is a select_event.
  4098.  
  4099. Parameters  MENU_LIST is a list of options for the menu. If the 
  4100.             list contains sublists, the first item appears on the 
  4101.             menu bar and the rest of the sublist become options 
  4102.             on a submenu. If MENU_LIST is [ ], the menu is 
  4103.             removed from the window.
  4104.  
  4105.             EVENT_TOPIC the topic or list of topics invoked when 
  4106.             an item is selected from the menu.  Unlike the other 
  4107.             screen objects, a menu only recognizes a select_event 
  4108.             which occurs when a menu item is selected.
  4109.  
  4110. Returns     The handle of the menu.
  4111.  
  4112. Note        An & in a menu option means that the character 
  4113.             following is underlined.  A value of [ ] used as a 
  4114.             sub-menu item draws a line across the sub-menu. 
  4115.             
  4116. Error       I_INVALID_WINDOW
  4117.  
  4118. See Also    #mcheck_menu_item#m, #mdisable_menu_item#m, 
  4119.             #menable_menu_item#m, #muncheck_menu_item#m
  4120.  
  4121. //move_window
  4122. #cenable_menu_item (?m1, &Copy).
  4123. Format is 'move_window ({HANDLE}, COLUMN, ROW).'.#c
  4124. Format      move_window ({HANDLE}, COLUMN, ROW)
  4125.  
  4126. Action      Displays the window at the new position.  When a 
  4127.             window is moved it moved it receives a move_event.
  4128.  
  4129. Parameters  HANDLE is the handle of a window or a list of 
  4130.             handles.  The default is the current display window.
  4131.  
  4132.             COLUMN, ROW is the new co-ordinates of the upper left 
  4133.             corner of the window. For child windows and screen 
  4134.             objects, this is relative to the upper left corner of 
  4135.             the parent window's display area.  For popup and 
  4136.             overlapped windows,  COLUMN and ROW are relative to 
  4137.             the upper left corner of the screen.
  4138.  
  4139. Errors      I_INVALID_WINDOW
  4140.  
  4141. See Also    #mresize_window#m, #mshow_window#m
  4142.  
  4143. //neg
  4144. #cenable_menu_item (?m1, &Copy).
  4145. Format is 'neg (NUMBER) .'.#c
  4146. Format      neg (NUMBER) 
  4147.  
  4148. Alternate   -NUMBER 
  4149.  
  4150. Action      Form  the  negative of a number.  The negation 
  4151.             operation  is represented internally as neg (NUMBER).
  4152.  
  4153. Parameters  NUMBER is a number.
  4154.  
  4155. Returns     The negative value of the specified number.  It 
  4156.             returns 0 if number  is non-numeric.  If number is a 
  4157.             list,  it returns  a list containing the negative of 
  4158.             each number.
  4159.  
  4160. //new
  4161. #cenable_menu_item (?m1, &Copy).
  4162. Format is 'new (NEW_TOPIC, CLASS_TOPIC, PARAMETERS).'.#c
  4163. Format      new (NEW_TOPIC, CLASS_TOPIC, PARAMETERS)
  4164.  
  4165. Action      new creates a new topic with the name NEW_TOPIC, 
  4166.             copies  all the sub-topics of CLASS_TOPIC into 
  4167.             NEW_TOPIC and then executes all of the commands 
  4168.             attached to CLASS_TOPIC as if they exist in 
  4169.             NEW_TOPIC.   This is done by calling
  4170.  
  4171.             im_a (CLASS_TOPIC, PARAMETERS) 
  4172.  
  4173.             with  NEW_TOPIC as the current topic.   NEW_TOPIC is 
  4174.             a sub-class of CLASS_TOPIC.
  4175.  
  4176. Parameters  NEW_TOPIC is the name of a topic or list of topics to 
  4177.             be created.
  4178.  
  4179.             CLASS_TOPIC is the name of an existing topic. It may 
  4180.             also be a list of topic names.
  4181.  
  4182.             PARAMETERS is a list of values to be passed to im_a 
  4183.             along with CLASS_TOPIC.  These values are used in 
  4184.             initializing NEW_TOPIC.
  4185.  
  4186. Errors      new calls im_a which can generate its own  
  4187.             I_V_TOPIC_NOT_FOUND error
  4188.  
  4189. See Also    #mim_a#m, #mdo_local#m, #mclass#m
  4190.  
  4191. //new_file
  4192. #cenable_menu_item (?m1, &Copy).
  4193. Format is 'new_file (FILE).'.#c
  4194. Format      new_file (FILE)
  4195.  
  4196. Action      If the file or list of files named does not exist, it 
  4197.             is created and opened.  If the file does exist, the 
  4198.             file pointer is positioned at the beginning of the 
  4199.             file and all existing data is lost.
  4200.  
  4201. Parameters  FILE is the name of a file or a list of files to be 
  4202.             opened. Remember that any name which contains  a 
  4203.             period must be enclosed in single quotes.
  4204.  
  4205. Errors      I_CANT_OPEN
  4206.  
  4207. See Also    #mclose#m, #mclose_all#m
  4208.  
  4209. //new_kb
  4210. #cenable_menu_item (?m1, &Copy).
  4211. Format is 'new_kb (KB_FILE) .'.#c
  4212. Format      new_kb (KB_FILE) 
  4213.  
  4214. Action      This  topic runs a new knowledge base.  This topic is 
  4215.             different from load   in  that  the  new  knowledge  
  4216.             base  completely overwrites the current application.
  4217.  
  4218. Parameters  KB_FILE must be the name of a file that contains 
  4219.             either a knowledge base or a compiled knowledge base.  
  4220.             If no suffix is used, the suffix .CKB is added.  If 
  4221.             you are running the development version and no .CKB 
  4222.             file is found, the system looks for a .KB file which 
  4223.             is compiled and run.  If both a .CKB and a .KB file 
  4224.             is found, the one with the latest time and date stamp 
  4225.             is used.
  4226.  
  4227. Returns     Normally doesn't return.  Returns [ ]  if KB_FILE 
  4228.             can't be found.
  4229.  
  4230. Errors      F_NO_NAME, I_CANT_OPEN
  4231.  
  4232. See Also    #mload#m
  4233.  
  4234. //not
  4235. #cenable_menu_item (?m1, &Copy).
  4236. Format is 'not (BOOLEAN).'.#c
  4237. Format      not (BOOLEAN)
  4238.  
  4239. Action      Perform  a  not  operation  on each element  of  a  
  4240.             list  of booleans .   
  4241.  
  4242. Parameters  BOOLEAN is a single boolean value or a list of 
  4243.             boolean values.  For boolean values, TRUE, T or Yes 
  4244.             is treated as true, anything else is treated as 
  4245.             false.
  4246.  
  4247. Returns     The boolean list with each element changed to its 
  4248.             logical complement.
  4249.  
  4250. //number_to_char
  4251. #cenable_menu_item (?m1, &Copy).
  4252. Format is 'number_to_char (INTEGER).'.#c
  4253. Format      number_to_char (INTEGER)
  4254.  
  4255. Action      Converts a number to its equivalent ASCII character 
  4256.             value.
  4257.  
  4258. Parameters  INTEGER is a number or list of numbers.
  4259.  
  4260. Returns     The ASCII character value of INTEGER MOD 256.  If 
  4261.             INTEGER is a list, a list of characters is returned.
  4262.  
  4263. See Also    #mchar_to_number#m
  4264.  
  4265. //numeric_sort
  4266. #cenable_menu_item (?m1, &Copy).
  4267. Format is 'numeric_sort (LIST, ORDER).'.#c
  4268. Format      numeric_sort (LIST, ORDER)
  4269.  
  4270. Action      Create a sorted list by comparing the numerical 
  4271.             values of the elements of LIST.  Non-numerical values 
  4272.             are treated as 0.  LIST itself is not changed.
  4273.  
  4274. Parameters  LIST is a list of elements to be sorted. LIST is 
  4275.             flattened before sorting.
  4276.  
  4277.             ORDER is a string, that specifies the order in which 
  4278.             the list is sorted.  To sort in ascending order ORDER 
  4279.             should be either ASCENDING or UP.  For descending 
  4280.             order, DESCENDING or DOWN.   The default is 
  4281.             ASCENDING.
  4282.  
  4283. Returns     The sorted list. The value of ORDER determines 
  4284.             whether the list is ascending or descending.
  4285.  
  4286. Note        The longest list that can be sorted contains 16384 
  4287.             elements.
  4288.  
  4289. Errors      I_LIST_TOO_LONG
  4290.  
  4291. See Also    #msort#m
  4292.  
  4293. //one_of
  4294. #cenable_menu_item (?m1, &Copy).
  4295. Format is 'one_of (LIST, VALUES).'.#c
  4296. Format      one_of (LIST, VALUES)
  4297.  
  4298. Action      This topic is used to check if each element of  
  4299.             VALUES is an element of LIST.
  4300.  
  4301. Parameters  LIST is the list to be checked.
  4302.  
  4303.             VALUES are the VALUES to be searched for in LIST.
  4304.  
  4305. Returns     T if each element of VALUES is contained in LIST, 
  4306.             otherwise F is returned.
  4307.  
  4308. //or
  4309. #cenable_menu_item (?m1, &Copy).
  4310. Format is 'or (BOOLEAN1, BOOLEAN2).'.#c
  4311. Format      or (BOOLEAN1, BOOLEAN2)
  4312.  
  4313. Alternate   BOOLEAN1  or BOOLEAN2  
  4314.  
  4315. Action      This is most commonly used to combine conditional 
  4316.             statements within a rule. The two boolean values are 
  4317.             ored to produce the resulting value.  Lists are ored 
  4318.             item by item.   Any element ored with a value of [ ] 
  4319.             yields the value  of that item.  The values T,  True 
  4320.             and Yes  are treated as a boolean value of true, 
  4321.             anything else is treated as false.
  4322.  
  4323. Parameters  BOOLEAN1, BOOLEAN2 are single boolean values, lists 
  4324.             of  boolean values or expressions that evaluate to 
  4325.             either of these.
  4326.  
  4327. Returns     A  boolean  value or a list of boolean values  that  
  4328.             is  the result  of oring the two lists of booleans.  
  4329.             or returns  T  if  either or both elements are  T  
  4330.             and  F otherwise.
  4331.  
  4332. Note        When or is used as an infix operator (between two 
  4333.             boolean  expressions)  the second expression is not 
  4334.             evaluated if  the first  expression evaluates to 
  4335.             true.  The condition in  the above example would be 
  4336.             represented internally as:
  4337.  
  4338.             [or [eq,?type_of_stock, common], [delay 
  4339.             [eq,?bond_selected,municipal]]].
  4340.  
  4341.             delay  is  used  to prevent  evaluation  until  the  
  4342.             first boolean expression is evaluated.
  4343.  
  4344. //parent
  4345. #cenable_menu_item (?m1, &Copy).
  4346. Format is 'parent (TOPIC).'.#c
  4347. Format      parent (TOPIC)
  4348.  
  4349. Action      Returns  the name of the TOPIC 's parent.  If a list  
  4350.             of topics  is  specified,  a list containing the 
  4351.             parents of each topic is returned. 
  4352.  
  4353. Parameters  TOPIC is the name of one or more topics whose  
  4354.             parents you  want  to find.  If TOPIC  is absent,  
  4355.             the default is the current topic.
  4356.  
  4357. Returns     The parent of the specified topic or a list of 
  4358.             parents. If a TOPIC  does not  exist,  [ ]  is 
  4359.             returned. The parent of !main is [ ].
  4360.  
  4361. See Also    #mcalling_topic#m, #mchild#m, #mfull_name#m, 
  4362.             #mmake_topic_list#m   
  4363.  
  4364. //parent_window
  4365. #cenable_menu_item (?m1, &Copy).
  4366. Format is 'parent_window (HANDLE).'.#c
  4367. Format      parent_window (HANDLE)
  4368.  
  4369. Action      Finds the parent of a window or screen object.
  4370.  
  4371. Parameters  HANDLE is a handle or list of handles. The default is 
  4372.             the currently active window.
  4373.  
  4374. Returns     The handle of the parent of the window whose handle 
  4375.             is passed. If HANDLE is a list, a list of parent 
  4376.             handles is returned. If the window has no parent, [ ] 
  4377.             is returned.
  4378.  
  4379. Errors      I_INVALID_WINDOW
  4380.  
  4381. See Also    #mchild_window#m, #mwindow_info#m
  4382.  
  4383. //perform
  4384. #cenable_menu_item (?m1, &Copy).
  4385. Format is 'perform (LIST).'.#c
  4386. Format      perform (LIST)
  4387.  
  4388. Action      This  topic  can  be used  to  directly  execute  
  4389.             topics expressed as strings of text.  The strings are 
  4390.             compiled  and then executed.
  4391.  
  4392. Parameters  LIST is a  list of strings which are legal 
  4393.             KnowledgePro commands to be performed.  Note that any 
  4394.             single quotes appearing within the topics must be 
  4395.             written as two single quotes within the text string.  
  4396.             For example, the topic 
  4397.  
  4398.         say ('Hello there').
  4399.  
  4400.             is written as a text string:
  4401.  
  4402.                 'say (''Hello there'').'
  4403.  
  4404. Returns     A list made up of the results returned by each of the 
  4405.             command lines performed.  If a line cannot be 
  4406.             correctly performed, an error message is displayed.  
  4407.  
  4408. Note        perform is not supported in the runtime version of 
  4409.             KnowledgePro.
  4410.  
  4411. Error       I_CANT_CREATE_TEMP_FILE
  4412.             Invalid commands may generate compiler errors.
  4413.  
  4414. See Also    #mcompile#m, #mevaluate#m, #mget_procedures#m, 
  4415.             #mset_procedures#m
  4416.  
  4417. //primitive
  4418. #cenable_menu_item (?m1, &Copy).
  4419. Format is 'primitive (FUNCTION).'.#c
  4420. Format      primitive (FUNCTION)
  4421.  
  4422. Alternate   ~FUNCTION
  4423.  
  4424. Action      Calls the internal system topic, even if a topic of 
  4425.             the same name is defined.
  4426.  
  4427. Parameters  FUNCTION is the name of a KnowledgePro functions.
  4428.  
  4429. Returns     The result of evaluating the named function.
  4430.  
  4431. Errors      I_TOPIC_NOT_FOUND
  4432.  
  4433. //print
  4434. #cenable_menu_item (?m1, &Copy).
  4435. Format is 'print (TEXT).'.#c
  4436. Format      print (TEXT)
  4437.  
  4438. Action      Prints text to the printer using the print spooler if 
  4439.             it is installed.  Output is sent to the system's list 
  4440.             device.  This is typically the line printer.  A 
  4441.             dialog box is displayed to allow the user to cancel 
  4442.             the output.  A form feed is generated after each 
  4443.             print.
  4444.  
  4445. Parameters  TEXT is the lists of items to write to the printer.  
  4446.             The text may include embedded control codes.  The 
  4447.             following codes are available:  
  4448.  
  4449.             ##n    start a new line 
  4450.             ##p    start a new page
  4451.             ##l put each list item on a new line (default) 
  4452.             ##s    put each list item on the same line 
  4453.             ##o    no spaces after a list item 
  4454.             ##i    insert a space after each list item (default) 
  4455.             ##t    tab five spaces 
  4456.             #### print the character ##  
  4457.             ##xINTEGER  begin printing at column INTEGER
  4458.             ##yINTEGER  begin printing at row INTEGER 
  4459.             ##gHANDLE   display a bitmap. HANDLE is the handle          
  4460.                         returned by load_bitmap 
  4461.             ##INTEGER     print the  ASCII character of INTEGER 
  4462.             ##cTEXT##c    TEXT is compiled and evaluated 
  4463.             ##vTEXT##v    TEXT is compiled, evaluated and any value         
  4464.                         returned is displayed  
  4465.  
  4466. Errors      I_PRINT_NO_DC, I_PRINT_GEN_ERROR, I_PRINT_ABORT, 
  4467.             I_PRINT_USER_ABORT, I_PRINT_OUT_OF_DISK, 
  4468.             I_PRINT_OUT_OF_MEMORY, I_NOT_BITMAP
  4469.  
  4470. See Also    #mwrite#m
  4471.  
  4472. //radio_button
  4473. #cenable_menu_item (?m1, &Copy).
  4474. Format is 'radio_button (RADIO_LIST, {EVENT_TOPIC, EVENT_LIST}) .'.#c
  4475. Format      radio_button (RADIO_LIST, {EVENT_TOPIC, EVENT_LIST}) 
  4476.  
  4477. Action      A  set of radio buttons are created  in the current 
  4478.             display window.
  4479.  
  4480. Parameters  RADIO_LIST a list of radio button descriptions. Each 
  4481.             description is a list [RADIO_TEXT, COLUMN, ROW, 
  4482.             SELECTED ] where
  4483.  
  4484.             RADIO_TEXT is the text appearing with the radio 
  4485.             button.
  4486.  
  4487.             COLUMN, ROW is the radio button location. The default 
  4488.             is the current position.  COLUMN and ROW are relative 
  4489.             to the upper left corner of the display area of the 
  4490.             current display window.
  4491.  
  4492.             SELECTED is a boolean value.  If true, the radio 
  4493.             button is checked.   The default is false.
  4494.  
  4495.             EVENT_TOPIC is the topic or list of topics performed 
  4496.             when an event on the EVENT_LIST occurs while the 
  4497.             focus is on a radio button.  EVENT_TOPIC is called 
  4498.             as:  
  4499.  
  4500.             EVENT_TOPIC(EVENT_INFO,EVENT_NAME,HANDLE).
  4501.  
  4502.             EVENT_INFO depends on the event that occurs.  A 
  4503.             description of events is provided in Appendix D.
  4504.  
  4505.             EVENT_NAME is the name of the event that occurred.  
  4506.  
  4507.             HANDLE is the handle assigned to the radio button.    
  4508.             If EVENT_TOPIC sets its value to true after being 
  4509.             called by a lose_focus_event, close_event, 
  4510.             char_event, or a sys_char_event, further processing 
  4511.             of the event is canceled before it is executed.   
  4512.             Whenever EVENT_TOPIC is called its value is reset.  
  4513.             If no EVENT_TOPIC is defined, no events are 
  4514.             recognized.
  4515.  
  4516.             EVENT_LIST is a list of events that will cause the 
  4517.             EVENT_TOPIC to be called.  The events that can be 
  4518.             processed are:
  4519.  
  4520.             get_focus_event, lose_focus_event, close_event     
  4521.             char_event, sys_char_event, select_event These events 
  4522.             are described in detail in Appendix D. If no event is 
  4523.             specified, the default event is a select_event.
  4524.  
  4525. Note        To get the values of the group of radio buttons 
  4526.             created by radio_button, use get_radio_button.  To 
  4527.             get the text of one of the buttons use get_text.  To 
  4528.             change the text use set_text.
  4529.  
  4530. See Also    #mget_radio_button#m, #mget_text#m, 
  4531.             #mset_radio_button#m, #mset_text#m,  #mDescription of Events#m
  4532.         
  4533. //read
  4534. #cenable_menu_item (?m1, &Copy).
  4535. Format is 'read (FILE {,START_TEXT, END_TEXT, SEARCH, REPLACE}).'.#c
  4536. Format      read (FILE {,START_TEXT, END_TEXT, SEARCH, REPLACE})
  4537.  
  4538. Action      Reads  an entire text file, a specified portion of a  
  4539.             file or a part of a file that contains a specified 
  4540.             search string.  The search string can also be 
  4541.             replaced. The text read is returned as a list of 
  4542.             lines.  After text is read, the file pointer is 
  4543.             located immediately following the text returned.
  4544.  
  4545. Parameters  FILE is the name of the file or list of files to be 
  4546.             read. 
  4547.  
  4548.             START_TEXT is a a string.  The file is searched  
  4549.             until START_TEXT is found in the file.  The text in 
  4550.             the file which follows START_TEXT up to END_TEXT is 
  4551.             the selected text.  The default starting location is 
  4552.             at the current file location.
  4553.  
  4554.             END_TEXT is a string.  The text starting at 
  4555.             START_TEXT appearing up to but not including END_TEXT 
  4556.             is the selected text.   The default is the end of the 
  4557.             file.  
  4558.  
  4559.             SEARCH is a string that is searched for in the 
  4560.             selected text START_TEXT and END_TEXT.  If the search 
  4561.             string is found in the text, all text between 
  4562.             START_TEXT and END_TEXT is returned.  If the search 
  4563.             string does not appear in the delimited text, no text 
  4564.             is returned by the read.  If SEARCH is  [ ],  all the 
  4565.             text between START_TEXT and END_TEXT is returned.  
  4566.             The default is [ ].
  4567.  
  4568.             REPLACE is a string which replaces each occurrence of 
  4569.             SEARCH in the text returned.
  4570.  
  4571. Returns     A  list  containing the text read from  the file.  If  
  4572.             the file cannot be found, or the file pointer is at 
  4573.             the end of the file,  an end of file character (ASCII 
  4574.             26) is returned.
  4575.  
  4576. Note        When a file is first opened to be read, the file 
  4577.             pointer is at the beginning of the file.  When a 
  4578.             portion of a file is read, the file pointer is moved 
  4579.             to the first character following the text returned by 
  4580.             read.  If you want the next read to start at the 
  4581.             beginning of the file, you must call the topic close 
  4582.             before the next read is called or reset the file 
  4583.             pointer using set_file_pos.
  4584.  
  4585.             The character ##n can be used in a read topic to 
  4586.             signify an end of line. For example:
  4587.  
  4588.             read (TEST,,##n##n)
  4589.  
  4590.             reads a file TEST from the current file pointer to 
  4591.             the first blank line.
  4592.  
  4593. Errors      I_CANT_OPEN
  4594.  
  4595. See Also    #mclose#m, #mclose_all#m, #mfile_menu#m, 
  4596.             #mnew_file#m, #mread_char#m, #mread_line#m
  4597.             
  4598. //read_char
  4599. #cenable_menu_item (?m1, &Copy).
  4600. Format is 'read_char (FILE {,COUNT}) .'.#c
  4601. Format      read_char (FILE {,COUNT}) 
  4602.  
  4603. Action      Reads COUNT characters from a file.
  4604.  
  4605. Parameters  FILE is the name of the file or list of files to be 
  4606.             read.
  4607.  
  4608.             COUNT is the number of characters to read.  It must 
  4609.             be in the range 1 to 65535.  The default is 1.  If 
  4610.             this parameter is a list, the first element is used.  
  4611.  
  4612. Returns     The next COUNT characters from the file are returned.   
  4613.             If the  file does not exist or you are attempting to 
  4614.             read beyond the last character of the file,  an end 
  4615.             of file character (ASCII 26) is returned. The first 
  4616.             command using read_char reads the first characters 
  4617.             from the file.  The subsequent use of read_char reads 
  4618.             sequential characters and advances the file pointer.  
  4619.             To reset  the file pointer to the beginning of the 
  4620.             file,  close the file and then re-read it or use 
  4621.             set_file_pos to reset the file pointer.
  4622.  
  4623. Errors      I_CANT_OPEN I_INVALID_COUNT
  4624.  
  4625. See Also    #mclose#m, #mclose_all#m, #mfile_menu#m, 
  4626.             #mnew_file#m, #mread#m, #mread_line#m
  4627.  
  4628. //read_clipboard
  4629. #cenable_menu_item (?m1, &Copy).
  4630. Format is 'read_clipboard ( ).'.#c
  4631. Format      read_clipboard ( )
  4632.  
  4633. Action      Reads data from the clipboard. Data may be pasted 
  4634.             from another application or may be placed there with 
  4635.             the text_to_clipboard topic.
  4636.  
  4637. Returns     A list whose first element is the data read from the 
  4638.             clipboard and second element is a flag which 
  4639.             describes the format of the data returned.  If a flag 
  4640.             of 0 is returned, the data is a text string.  If the 
  4641.             flag is 1, the data is a handle to a bitmap.  If the 
  4642.             clipboard is empty, [ ] is returned.
  4643.  
  4644.             Text is stored as a single string that must be less 
  4645.             than 64K. The text may contain carriage return line 
  4646.             feed  pairs to delimit lines.
  4647.  
  4648. Errors      I_BAD_CLPBD_DATA 
  4649.             the data in the clipboard could not be read.
  4650.  
  4651.             I_CANT_OPEN_BITMAP 
  4652.             unable to copy the bitmap data
  4653.  
  4654. See Also    #mbitmap_to_clipboard#m, #mtext_to_clipboard#m
  4655.  
  4656. //read_line
  4657. #cenable_menu_item (?m1, &Copy).
  4658. Format is 'read_line (FILE {,COUNT}).'.#c
  4659. Format      read_line (FILE {,COUNT})
  4660.  
  4661. Action      Reads the next COUNT lines from a file.
  4662.  
  4663. Parameters  FILE is the name of the file or list of files to be 
  4664.             read.
  4665.  
  4666.             COUNT is the number of lines to read.
  4667.  
  4668. Returns     The next COUNT lines from the file are returned as a 
  4669.             list of lines. If the file does not exist or you are 
  4670.             attempting to read beyond the last character of  the 
  4671.             file,  an end of file character (ASCII 26), is 
  4672.             returned. The first  command using read_line  reads 
  4673.             the first lines from  the file.  Subsequent commands 
  4674.             using  read_line   read  sequential lines  and  
  4675.             advance  the file pointer.  To  reset  the  file 
  4676.             pointer  to  the beginning of the file,  close the 
  4677.             file  and then re-read it or use set_file_pos to 
  4678.             reset the file pointer.  A line is a string of 
  4679.             characters followed by a carriage return linefeed 
  4680.             pair.  The carriage return, linefeed are not 
  4681.             returned.
  4682.  
  4683. Errors      I_CANT_OPEN I_INVALID_COUNT
  4684.  
  4685. See Also    #mclose#m, #mclose_all#m, #mfile_menu#m, 
  4686.             #mnew_file#m, #mread#m, #mread_char#m
  4687.  
  4688. //read_response
  4689. #cenable_menu_item (?m1, &Copy).
  4690. Format is 'read_response ({QUESTION, TOPIC, DEFAULT_TEXT }).'.#c
  4691. Format      read_response ({QUESTION, TOPIC, DEFAULT_TEXT })
  4692.  
  4693. Action      Places  a question and an edit line on the screen and 
  4694.             waits for the  user  to type  in  an answer.  This is 
  4695.             similar to   ask except that the screen is not 
  4696.             cleared and a list box is not provided. The edit line 
  4697.             is  placed immediately following the question, and an  
  4698.             optional default answer may be supplied.  The user's 
  4699.             response remains on the screen.
  4700.  
  4701. Parameters  QUESTION is the question that appears on the screen 
  4702.             as a prompt for the user.
  4703.  
  4704.             TOPIC is the topic or list of topics where the answer 
  4705.             is saved. If no TOPIC  is named, the answer is 
  4706.             assigned to the current  topic.
  4707.  
  4708.             DEFAULT_TEXT is a default answer.   If the  user  
  4709.             presses ENTER, the default is selected.  This  answer 
  4710.             may be edited using the keyboard editing keys.   The 
  4711.             following control codes can be embedded within the 
  4712.             text of QUESTION to control  the display of 
  4713.             information on the screen :  
  4714.  
  4715.             ##n    start a new line 
  4716.             ##p    start a new page 
  4717.             ##e    erase the contents of the window 
  4718.             ##l    put each list item on a new line (default) 
  4719.             ##s    put each list item on the same line 
  4720.             ##o    no spaces after a list item 
  4721.             ##i    insert a space after each list item (default) 
  4722.             ##t    tab five spaces 
  4723.             ##m    begin or end marked text 
  4724.             ##w    wait for user input  
  4725.             ####    display the character ##  
  4726.             ##INTEGER  print the  ASCII character 
  4727.             ##xINTEGER move to column INTEGER 
  4728.             ##yINTEGER move to row INTEGER 
  4729.             ##gHANDLE  display a bitmap. HANDLE is the handle 
  4730.                       returned. 
  4731.             ##fCOLOR   change  foreground color to COLOR 
  4732.             ##bCOLOR   change  background color to COLOR 
  4733.             ##d        return to default colors 
  4734.             ##cTEXT##c  TEXT is compiled and evaluated 
  4735.             ##vTEXT##v  TEXT is compiled, evaluated and any value         
  4736.                       returned is displayed
  4737.  
  4738.             See Section 3.5 for information on using control 
  4739.             codes.   
  4740.  
  4741.             The following colors may be placed after the ##f and 
  4742.             ##b:   
  4743.             black,   blue,   green,   cyan,   red,  magenta,   
  4744.             yellow, white    At least one blank space must follow 
  4745.             the name of the color.  
  4746.  
  4747. Returns     The user's response.
  4748.  
  4749. See Also    #mask#m, #medit_line#m
  4750.  
  4751. //remove
  4752. #cenable_menu_item (?m1, &Copy).
  4753. Format is 'remove (LIST, VALUES) .'.#c
  4754. Format      remove (LIST, VALUES) 
  4755.  
  4756. Action      This topic is used to create a new list which is made 
  4757.             of LIST with VALUES removed.  LIST itself is not 
  4758.             changed.
  4759.  
  4760. Parameters  LIST is the list from which the items are removed.
  4761.  
  4762.             VALUES are the VALUES which are removed.  Each 
  4763.             element of  VALUES is removed from LIST.
  4764.  
  4765. Returns     A list formed by the remaining items of LIST is  
  4766.             returned. Elements  of  VALUES  which cannot be found  
  4767.             on LIST  are  ignored.
  4768.  
  4769. Note        Each element of VALUES is removed from LIST. In order  
  4770.             to remove  a  sublist,  the  element  being removed  
  4771.             must  be  a sublist. For example, to remove the 
  4772.             sublist [b,c ] from the list   [a , [ b , c ] , d ] : 
  4773.  
  4774.             z = remove([a,[b,c],d],[[b,c]]).
  4775.  
  4776.             In  this case, the value of  z  is [a , d ] . In  the 
  4777.             expression
  4778.  
  4779.             y = remove ([a,[b,c],d],[b,c]).
  4780.  
  4781.             y is given the value [a,[b,c],d] .  KnowledgePro  
  4782.             attempts to first remove b from the first  list  and 
  4783.             does not find a match.  Similarly,  it is unable to 
  4784.             find a match for c.  To remove every occurrence of an 
  4785.             item use replace and replace the item with the empty 
  4786.             list, [].
  4787.  
  4788. See Also    #mremove_elements#m, #mreplace#m, 
  4789.             #mreplace_elements#m
  4790.  
  4791. //remove_topic
  4792. #cenable_menu_item (?m1, &Copy).
  4793. Format is 'remove_topic (TOPIC) .'.#c
  4794. Format      remove_topic (TOPIC) 
  4795.  
  4796. Action      Erases the specified topic or topics from  the 
  4797.             knowledge base.  The  memory used by the released 
  4798.             topics is made available for use by the knowledge 
  4799.             base.
  4800.  
  4801. Parameters  TOPIC names the topic or topics you want  to  remove 
  4802.             from  memory.  All  children  of  TOPIC   are also 
  4803.             removed. If TOPIC  cannot be found, the topic is 
  4804.             ignored.
  4805.  
  4806. Note        You should not remove any of the topics that begin 
  4807.             with !.  These topics are created by KnowledgePro as 
  4808.             the knowledge base runs.
  4809.  
  4810. Errors      I_REMOVE_CURRENT_TOPIC I_REMOVE_MAIN_TOPIC
  4811.  
  4812. //repeat
  4813. #cenable_menu_item (?m1, &Copy).
  4814. Format is 'repeat (COMMANDS, CONDITION).'.#c
  4815. Format      repeat (COMMANDS, CONDITION)
  4816.  
  4817. Alternate   repeat COMMANDS until CONDITION 
  4818.  
  4819. Action      repeat executes a set of commands and then tests a 
  4820.             condition.  If the value of the condition is false, 
  4821.             the commands are performed again.  This sequence is 
  4822.             repeated until the condition becomes true.  Since the 
  4823.             entire sequence of commands is executed before the 
  4824.             condition is tested, the commands are always 
  4825.             performed at least once.
  4826.  
  4827. Parameters  COMMANDS is a legal KnowledgePro command or list of 
  4828.             commands to be performed as long as the boolean 
  4829.             expression remains true. 
  4830.  
  4831.             CONDITION is a boolean expression or a list of 
  4832.             expressions that evaluate to a boolean value.  If the 
  4833.             boolean expression results in a list of values, all 
  4834.             values on the list must be true for the expression to 
  4835.             be true.
  4836.  
  4837. Note        When the alternate form is used, the evaluation of 
  4838.             CONDITION is delayed until the action is performed 
  4839.             once. CONDITION is evaluated after COMMANDS each time 
  4840.             COMMANDS is performed.
  4841.  
  4842. See Also    #mwhile#m
  4843.  
  4844. //replace
  4845. #cenable_menu_item (?m1, &Copy).
  4846. Format is 'replace (LIST, OLD_ITEMS, NEW_ITEMS {, NUMBER }) .'.#c
  4847. Format      replace (LIST, OLD_ITEMS, NEW_ITEMS {, NUMBER }) 
  4848.  
  4849. Action      Forms a new list by replacing items on a list with 
  4850.             new items.  The original LIST is not changed.
  4851.  
  4852. Parameters  LIST is a list.
  4853.  
  4854.             OLD_ITEMS contains the items to be replaced.  LIST is 
  4855.             searched for the first sublist corresponding to 
  4856.             OLD_ITEMS.  The sublist is replaced by NEW_ITEMS.  If 
  4857.             OLD_ITEMS is [ ], then NEW_ITEMS is appended to the 
  4858.             list.
  4859.  
  4860.             NEW_ITEMS is the replacement list.  If NEW_ITEMS  is  
  4861.             [ ],  OLD_ITEMS  are deleted from the list.
  4862.  
  4863.             NUMBER is the number of times the replacement is to 
  4864.             be performed.  NUMBER must be in the range 1 to 
  4865.             32767.
  4866.  
  4867. Returns     The original list with OLD_ITEMS  replaced by 
  4868.             NEW_ITEMS.
  4869.  
  4870.             If COUNT is [ ]  or not present, the replacement  is 
  4871.             performed once.  If  COUNT is less than 1, an error 
  4872.             message is displayed and the original list is 
  4873.             returned.
  4874.  
  4875. Errors      Specifying a count less than 1 or greater than 32767.
  4876.             I_INVALID_ELEMENT
  4877.  
  4878. See Also    #mcombine#m, #mremove#m, #mremove_elements#m, 
  4879.             #mreplace_elements#m
  4880.  
  4881. //replace_elements
  4882. #cenable_menu_item (?m1, &Copy).
  4883. Format is 'replace_elements (LIST, POSITION, NEW_ITEMS).'.#c
  4884. Format      replace_elements (LIST, POSITION, NEW_ITEMS)
  4885.  
  4886. Action      Create a new list by replacing items at a specific 
  4887.             location in a list with a new list item.  If POSITION 
  4888.             is [ ], the NEW_ITEMS are appended to LIST.  If an 
  4889.             item in POSITION  is longer than the length of LIST 
  4890.             the new elements are appended to LIST.  LIST itself 
  4891.             is not changed.
  4892.  
  4893. Parameters  LIST is the list with items to be replaced.
  4894.  
  4895.             POSITION is a list of the locations of the elements 
  4896.             in LIST to be replaced.
  4897.  
  4898.             NEW_ITEMS is the list of VALUES to be placed on the 
  4899.             list.
  4900.  
  4901. Returns     A new list with the elements of the original list 
  4902.             replaced by the new items.
  4903.  
  4904. Error       An integer less than 1 is included on POSITION.
  4905.             I_INVALID_ELEMENT
  4906.  
  4907. See Also    #mcombine#m, #mremove#m, #mremove_elements#m, 
  4908.             #mreplace#m
  4909.  
  4910. //reset
  4911. #cenable_menu_item (?m1, &Copy).
  4912. Format is 'reset (TOPIC).'.#c
  4913. Format      reset (TOPIC)
  4914.  
  4915. Action      Removes  any values that have been  assigned  to  a 
  4916.             topic or a list of topics and marks the topic as 
  4917.             unevaluated.  When a topic has been reset, it does 
  4918.             not have a  value associated  with it.  The values of 
  4919.             all descendants are also reset.
  4920.  
  4921. Parameters  TOPIC is the topics or list of topics to  be reset.
  4922.  
  4923. //resize_window
  4924. #cenable_menu_item (?m1, &Copy).
  4925. Format is 'resize_window ({HANDLE}, WIDTH, HEIGHT).'.#c
  4926. Format      resize_window ({HANDLE}, WIDTH, HEIGHT)
  4927.  
  4928. Action      Displays the window or screen object with a new width 
  4929.             and height.  When a window is resized it receives a 
  4930.             resize_event.
  4931.  
  4932. Parameters  HANDLE is the handle or list of handles of  windows 
  4933.             or screen objects.  The default is the current 
  4934.             display window.
  4935.  
  4936.             WIDTH, HEIGHT is the new width and height of the 
  4937.             window or screen object. 
  4938.  
  4939. Errors      I_INVALID_WINDOW
  4940.  
  4941. See Also    #mmove_window#m, #mshow_window#m
  4942.  
  4943. //rest
  4944. #cenable_menu_item (?m1, &Copy).
  4945. Format is 'rest (LIST).'.#c
  4946. Format      rest (LIST)
  4947.  
  4948. Action      Make a new list by removing the first element from  a 
  4949.             list.  LIST itself is not changed.
  4950.  
  4951. Parameters  LIST is a list.
  4952.  
  4953. Returns     The list formed by removing the first element from 
  4954.             LIST.
  4955.  
  4956. See Also    #melement#m, #mfirst#m, #mlast#m
  4957.  
  4958. //rule
  4959. #cenable_menu_item (?m1, &Copy).
  4960. Format is 'rule (CONDITION, COMMAND1 {, COMMAND2}).'.#c
  4961. Format      rule (CONDITION, COMMAND1 {, COMMAND2})
  4962.  
  4963. Alternate   if CONDITION then COMMAND1 {else COMMAND2}
  4964.  
  4965. Action      Tests the conditional statements. If the result  of 
  4966.             the  test is true, the list of commands in COMMAND1 
  4967.             is performed.  If  the  boolean result is F, the list 
  4968.             of commands in COMMAND2  is performed if it is 
  4969.             present.
  4970.  
  4971. Parameters  CONDITION is a  command that evaluates  to a boolean 
  4972.             value.   If the  boolean  is a list of values, all 
  4973.             values on the list must be true for the expression to 
  4974.             be true.
  4975.  
  4976.             COMMAND1 is one command or several commands connected 
  4977.             by and.  These commands are performed if CONDITION is 
  4978.             evaluated to be true.
  4979.  
  4980.             COMMAND2  is one command or several commands 
  4981.             connected by and.  These commands are performed if 
  4982.             CONDITION is evaluated to be false.
  4983.  
  4984. Returns     The result of evaluating either COMMAND1 or  
  4985.             COMMAND2.
  4986.  
  4987. Note        When   the  alternate  form  is  used,   the  
  4988.             evaluation  of parameters  in COMMAND1 and COMMAND2 
  4989.             is delayed until  after the  boolean  expression  is  
  4990.             evaluated.   The   conditional expressions  are  
  4991.             evaluated using  delayed  evaluation.  The first 
  4992.             boolean condition is evaluated. If it is T, the next 
  4993.             condition  is  evaluated.    COMMAND2 is  performed  
  4994.             if  any conditional expression results in F.
  4995.  
  4996. //run
  4997. #cenable_menu_item (?m1, &Copy).
  4998. Format is 'run  (PROGRAM {,SHOW_CODE}).'.#c
  4999. Format      run  (PROGRAM {,SHOW_CODE})
  5000.  
  5001. Action      Executes the program. The knowledge base does not 
  5002.             continue until the program terminates.
  5003.  
  5004. Parameters  PROGRAM is the name of a program and its command line 
  5005.             parameters or list of programs and command lines. If 
  5006.             the program name does not contain a path, run  
  5007.             automatically searches the DOS PATH if the program is 
  5008.             not in the current directory. If the program name 
  5009.             does not contain an extension, .EXE is assumed.
  5010.  
  5011.             SHOW_CODE describes how the window that contains the 
  5012.             application appears and whether it becomes the 
  5013.             currently active window.  The codes are:  
  5014.  
  5015.             Display         Active Window         Code 
  5016.             Normal             Yes                  1 
  5017.             Normal             No                   4 
  5018.             Minimized          Yes                  2 
  5019.             Minimized          No                   7 
  5020.             Maximized          Yes                  3 
  5021.             Hidden             No                   0  
  5022.  
  5023.             The default value loads the application as a normal 
  5024.             window that is the active window (Code 1).
  5025.  
  5026. Returns     [ ] or an error code. Error codes are always less 
  5027.             than 32. Possible error codes are:
  5028.  
  5029.             2      Program not found. 
  5030.             16     The program name was invalid. 
  5031.             17     The command line is greater than 80 characters. 
  5032.             18     No timers available
  5033.  
  5034. Note        It is best to run the .PIF file for DOS applications. 
  5035.             This gives you control over memory, program switches 
  5036.             etc.
  5037.  
  5038.             The error code returned is the code returned by the 
  5039.             Windows program loader. It is usually 0, so there is 
  5040.             no reliable way to tell if the program has actually 
  5041.             executed. Windows does not return program exit codes 
  5042.             to KnowledgePro.
  5043.  
  5044.             Under Windows/286, the screen may turn black when 
  5045.             executing a DOS application. Under Windows/386, it is 
  5046.             possible to execute a DOS program as an icon by 
  5047.             setting the .PIF file to run in background and using 
  5048.             SHOE_CODE of 2.
  5049.  
  5050. Errors      I_EXT_STRING_LONG, I_NO_TIMERS
  5051.  
  5052. See Also    #mload_program#m
  5053.  
  5054. //save_as
  5055. #cenable_menu_item (?m1, &Copy).
  5056. Format is 'save_as (FILE {,TEXT}).'.#c
  5057. Format      save_as (FILE, {TEXT})
  5058.  
  5059. Action      A dialog window is opened and the user has the 
  5060.             opportunity to specify a file name, change the name 
  5061.             of the file or cancel the operation. If the user 
  5062.             selects ENTER when the focus is on the edit box or 
  5063.             presses OK, the specified file name is selected. If 
  5064.             the file exists, the user is asked if the file should 
  5065.             be overwritten.  If the user selects no, the dialog 
  5066.             window reappears.
  5067.  
  5068. Parameters  FILE is a file name or list of file names. If the 
  5069.             names do not contain a drive and path specifier, the 
  5070.             current directory is used.  If this parameter is a 
  5071.             list, only the first element is used.
  5072.  
  5073.             TEXT is the message written on the top line of the 
  5074.             dialog window.
  5075.  
  5076. Returns     If the user enters and selects a file name, it is 
  5077.             returned, otherwise [ ] is returned.
  5078.  
  5079. See Also    #mfile_menu#m, #msave_edit_file#m
  5080.  
  5081. //save_edit_file
  5082. #cenable_menu_item (?m1, &Copy).
  5083. Format is 'save_edit_file (HANDLE).'.#c
  5084. Format      save_edit_file (HANDLE)
  5085.  
  5086. Action      Saves the text from an edit window to a file. 
  5087.             save_edit_file uses the title of the edit window as 
  5088.             the name of the file which will contain the text. If 
  5089.             the window has no title or its title is "Untitled-
  5090.             xxx", where xxx is an integer, save_as is called to 
  5091.             prompt the user for a file name.
  5092.  
  5093. Parameters  HANDLE is the handle of an edit window.  created 
  5094.             using edit_window or edit_file. 
  5095.  
  5096. Returns     T if the text was saved, otherwise F.
  5097.  
  5098. Errors      I_CANT_OPEN, I_CANT_WRITE, I_CANT_CLOSE, 
  5099.             I_INVALID_WINDOW
  5100.  
  5101. See Also    #mfile_menu#m, #mget_edit#m, #msave_as#m
  5102.  
  5103. //save_topic
  5104. #cenable_menu_item (?m1, &Copy).
  5105. Format is 'save_topic (FILE, TOPIC).'.#c
  5106. Format      save_topic (FILE, TOPIC)
  5107.  
  5108. Action      Saves the specified topic and all of its descendants 
  5109.             in compiled form in FILE. If FILE already exists, it 
  5110.             is overwritten.  The commands, values, and properties 
  5111.             (demons, number of values etc.) of the topics are 
  5112.             saved. When the topic is loaded with a load command, 
  5113.             its values etc. are restored.
  5114.  
  5115. Parameters  FILE is the name of a file to contain the compiled 
  5116.             knowledge base. If FILE is a list, only the first 
  5117.             element is used. The file name may be any legitimate 
  5118.             DOS file name and may contain drive and path 
  5119.             information. If a path is not supplied, the default 
  5120.             directory is used. If an extension is not supplied, 
  5121.             an extension of "CKB" will be appended to the file 
  5122.             name.
  5123.  
  5124.             TOPIC is a topic name or list of topic names. If 
  5125.             topic is  [ ] or missing, the current topic is saved.
  5126.  
  5127. Returns     T if the save was successful, otherwise F is 
  5128.             returned.
  5129.  
  5130. Note        save_topic (MYKB, '!main') 
  5131.             saves the entire knowledge base currently in memory 
  5132.             in the file MYKB.CKB.
  5133.  
  5134. Errors      I_CANT_OPEN, I_TOPIC_NOT_FOUND, I_CANT_WRITE, 
  5135.             F_NO_NAME
  5136.  
  5137. See Also    #mload#m
  5138.  
  5139. //say
  5140. #cenable_menu_item (?m1, &Copy).
  5141. Format is 'say (TEXT).'.#c
  5142. Format      say (TEXT)
  5143.  
  5144. Action      Puts a message on the screen in the currently active 
  5145.             window. Display codes may be embedded in the text.  A 
  5146.             small window with a button labeled CONTINUE is placed 
  5147.             in the lower right corner of the screen.  After the 
  5148.             text and button are displayed the topic wait is 
  5149.             called and the knowledge base is halted until the 
  5150.             user selects the CONTINUE button.
  5151.  
  5152. Parameters  TEXT are the strings or list of strings to be 
  5153.             displayed.  The following control codes can be 
  5154.             embedded within the text  to control  the display of 
  5155.             information on the screen:  
  5156.  
  5157.             ##n    start a new line 
  5158.             ##p    start a new page 
  5159.             ##e    erase the contents of the screen 
  5160.             ##l    put each list item on a new line (default) 
  5161.             ##s    put each list item on the same line 
  5162.             ##o    no spaces after a list item 
  5163.             ##i    insert a space after each list item (default)
  5164.             ##t    tab five spaces 
  5165.             ##m    begin or end marked text 
  5166.             ####    display the character ##  
  5167.             ##INTEGER     print the  ASCII character of INTEGER 
  5168.             ##xINTEGER     move to column INTEGER  
  5169.             ##yINTEGER     move to row INTEGER 
  5170.             ##gHANDLE    display a bitmap.  HANDLE is the handle          
  5171.                         returned by load_bitmap. 
  5172.             ##fCOLOR    change  foreground color to COLOR 
  5173.             ##bCOLOR    change  background color to COLOR 
  5174.             ##d        return to default colors 
  5175.             ##cTEXT##c    TEXT is compiled and evaluated
  5176.             ##vTEXT##v    TEXT is compiled, evaluated and any value 
  5177.                         returned is displayed
  5178.  
  5179.             The following colors may be placed after the ##f and 
  5180.             ##b:  
  5181.             black,   blue,   green,   cyan,   red,  magenta,  
  5182.             yellow, white   
  5183.  
  5184.             At least one blank space must follow the name of the 
  5185.             color.  Colors may also be specified by numbers.
  5186.  
  5187.             When using ##cTEXT##c or ##vTEXT##v, TEXT must 
  5188.             evaluate to legitimate KnowledgePro commands. 
  5189.  
  5190. Errors      say calls text which can generate its own error 
  5191.             messages.
  5192.  
  5193. See Also    #mcontinue#m, #mtext#m, #mwait#m
  5194.  
  5195. //set_active_window
  5196. #cenable_menu_item (?m1, &Copy).
  5197. Format is 'set_active_window (HANDLE).'.#c
  5198. Format      set_active_window (HANDLE)
  5199.  
  5200. Action      Sets the window which receives keyboard input.  The 
  5201.             active window is brought to the top of the other 
  5202.             windows.  If it has a title bar, the title bar is 
  5203.             displayed with the active title bar color.  Only a 
  5204.             popup or overlapped window can be made the active 
  5205.             window.
  5206.  
  5207. Parameters  HANDLE is the handle of the window you want to make 
  5208.             the active window.  
  5209.  
  5210. Note        Setting the active window does not change the current 
  5211.             display window.   The window that becomes the active 
  5212.             window receives a get_focus_event. 
  5213.  
  5214. See Also    #mget_active_window#m, #mset_display_window#m, 
  5215.             #mset_top_window#m
  5216.  
  5217. //set_check_box
  5218. #cenable_menu_item (?m1, &Copy).
  5219. Format is 'set_check_box (HANDLE, BOOLEAN).'.#c
  5220. Format      set_check_box (HANDLE, BOOLEAN)
  5221.  
  5222. Action      Used to check and uncheck selected check boxes
  5223.  
  5224. Parameters  HANDLE is the identifier of the check box. If it is a 
  5225.             list, each check box is set.
  5226.  
  5227.             BOOLEAN is a boolean value that specifies the value 
  5228.             of each check box named by HANDLE.  When the value is 
  5229.             true, the check box is checked.   A false value 
  5230.             unchecks an already checked check box.  If this 
  5231.             parameter is a list, only the first element is used.
  5232.  
  5233. Errors      I_INVALID_WINDOW
  5234.  
  5235. See Also    #mget_check_box#m, #mcheck_box#m
  5236.  
  5237. //set_cursor_pos
  5238. #cenable_menu_item (?m1, &Copy).
  5239. Format is 'set_cursor_pos (COLUMN, ROW)..'.#c
  5240. Format      set_cursor_pos (COLUMN, ROW).
  5241.  
  5242. Action      Moves the cursor in the active window to COLUMN, ROW.
  5243.  
  5244. Parameters  COLUMN, ROW is the new cursor position relative to 
  5245.             the upper left corner of the active window.
  5246.  
  5247. See Also    #mget_cursor_pos#m, #mset_display_pos#m, 
  5248.             #mget_display_pos#m
  5249.  
  5250. //set_demon
  5251. #cenable_menu_item (?m1, &Copy).
  5252. Format is 'set_demon (TOPIC, DEMON_LIST).'.#c
  5253. Format      set_demon (TOPIC, DEMON_LIST)
  5254.  
  5255. Action      set_demon creates a list of demons that is associated 
  5256.             with a topic.  Whenever a system topic is called that 
  5257.             changes the value of TOPIC, such as make, gets, 
  5258.             make_c, gets_c, ask or read_response,  the list of 
  5259.             demon topics is called before the value of TOPIC is 
  5260.             changed.  
  5261.  
  5262. Parameters  TOPIC is the topic or list of topics which is to have 
  5263.             the demon attached. If TOPIC doesn't exist, it is 
  5264.             created.  If TOPIC is [ ] , the current topic is 
  5265.             assigned the demon.  
  5266.  
  5267.             DEMON_LIST is a list of topic names assigned as 
  5268.             demons to TOPIC. Whenever the value of TOPIC is about 
  5269.             to be changed, the demon list of topics is called 
  5270.             before the change is made.   Each demon is called as:  
  5271.             DEMON (full_name (TOPIC), OLD_NAME,  NEW_VALUE).  
  5272.             OLD_VALUE is the current value of TOPIC.  When DEMON 
  5273.             is called because of a make or make_c,  NEW_VALUE is 
  5274.             the value which replaces OLD_VALUE if the make or 
  5275.             make_c is completed.   If get or get_c calls DEMON, 
  5276.             NEW_VALUE is OLD_VALUE with the assigned value 
  5277.             appended to it.  FULL_NAME returns the full name of 
  5278.             the topic attached to the demon.    When DEMON is 
  5279.             assigned a value of true, the new value is not 
  5280.             assigned to the topic.  It is assumed that the demon 
  5281.             has handled all processing of the topic.
  5282.  
  5283. Note        Demon topics should be reachable from the topic which 
  5284.             contains the make, make_c, get or get_c,  ask or 
  5285.             read_response topics which assign values to TOPIC. 
  5286.  
  5287. See Also    #mget_demon#m
  5288.  
  5289. //set_display_pos
  5290. #cenable_menu_item (?m1, &Copy).
  5291. Format is 'set_display_pos (COLUMN,ROW).'.#c
  5292. Format      set_display_pos (COLUMN,ROW)
  5293.  
  5294. Action      Sets the default position where text or a screen 
  5295.             object is displayed in the current display window.  
  5296.             Attempts to move outside of the boundaries of the 
  5297.             current window cause the default to be set to the 
  5298.             nearest edge of the window.
  5299.  
  5300. Parameters  COLUMN, ROW are the co-ordinates where the next 
  5301.             object is displayed on the screen.  This is relative 
  5302.             to the upper left corner of the window.
  5303.  
  5304. See Also    #mget_cursor_pos#m, #mget_display_pos#m, 
  5305.             #mset_cursor_pos#m, #mset_top_window#m
  5306.  
  5307. //set_display_window
  5308. #cenable_menu_item (?m1, &Copy).
  5309. Format is 'set_display_window (HANDLE).'.#c
  5310. Format      set_display_window (HANDLE)
  5311.  
  5312. Action      The specified window is made the current display 
  5313.             window.  This is the window where all text and screen 
  5314.             objects are created.
  5315.  
  5316. Parameters  HANDLE is the handle of the window which is made the 
  5317.             current display window. If HANDLE is a list, only the 
  5318.             first element is used. HANDLE cannot be the handle of 
  5319.             an edit window.
  5320.  
  5321. Notes       Changing the current display window does not affect 
  5322.             which window is the currently active window.  The 
  5323.             display window is where screen objects and text are 
  5324.             created.  The active window is the one that receives 
  5325.             all user input.
  5326.  
  5327. Errors      I_INVALID_WINDOW
  5328.  
  5329. See Also    #mget_display_window#m, #mset_active_window#m, 
  5330.             #mget_active_window#m
  5331.  
  5332. //set_error_topic
  5333. #cenable_menu_item (?m1, &Copy).
  5334. Format is 'set_error_topic (ERROR_HANDLER).'.#c
  5335. Format      set_error_topic (ERROR_HANDLER)
  5336.  
  5337. Action      Sets the topic to be called when an error occurs.  
  5338.  
  5339. Parameters  ERROR_HANDLER is a list of topic names or  [ ]. If 
  5340.             ERROR_HANDLER is [ ], the default error handler will 
  5341.             be called.
  5342.  
  5343. Note        When an error occurs,  ERROR_HANDLER is reset and 
  5344.             called as:
  5345.  
  5346.             ERROR_HANDLER (ERROR_CODE,TOPIC_NAME,PARAMETERS).
  5347.  
  5348.             where:
  5349.  
  5350.             ERROR_CODE is the error code associated with this 
  5351.             error.
  5352.  
  5353.             TOPIC_NAME is the name of the command which caused 
  5354.             the error.
  5355.  
  5356.             PARAMETERS is a list containing the command's 
  5357.             parameters.
  5358.  
  5359.             In most cases, commands in which an error occurs 
  5360.             return [ ]. If ERROR_HANDLER is assigned a value 
  5361.             while processing an error, that value is returned as 
  5362.             the value of the command which caused the error. 
  5363.  
  5364. See Also    #merror_message#m, #mget_error_topic#m
  5365.  
  5366. //set_event_topic
  5367. #cenable_menu_item (?m1, &Copy).
  5368. Format is 'set_event_topic (EVENT_TOPIC, EVENT_LIST).'.#c
  5369. Format      set_event_topic (EVENT_TOPIC, EVENT_LIST)
  5370.  
  5371. Action      Defines an event handling topic for a particular 
  5372.             event or list of events.  When any of the defined 
  5373.             events occurs, this is the first topic performed.
  5374.  
  5375. Parameters  EVENT_TOPIC is the topic or list of topics to be 
  5376.             performed when an event on the EVENT_LIST occurs.  
  5377.             EVENT_TOPIC is called as:  
  5378.  
  5379.             EVENT_TOPIC(EVENT_INFO,EVENT_NAME,HANDLE).
  5380.  
  5381.             EVENT_INFO depends on the event that occurs.  A 
  5382.             description of events is provided in Appendix D.
  5383.  
  5384.             EVENT_NAME is the name of the event that occurred.  
  5385.  
  5386.             HANDLE is the handle assigned to the button.    
  5387.             EVENT_TOPIC should set its value to true if it 
  5388.             processes the event and no further action is 
  5389.             required.  Ignoring the event or assigning any other 
  5390.             value causes KnowledgePro to continue with the 
  5391.             default action.  Whenever EVENT_TOPIC is called as 
  5392.             the result of an event its value is reset.  If 
  5393.             no EVENT_TOPIC is defined, no events are recognized.
  5394.  
  5395.             EVENT_LIST is a list of events.  The events generated 
  5396.             and how they are generated depends on the window or 
  5397.             screen object which has the focus.  Events are 
  5398.             described in Appendix D.
  5399.  
  5400. Note        set_event_topic ().
  5401.             Removes any links between events and topics created 
  5402.             with previous calls to set_event_topic.
  5403.  
  5404.             Before a global event handling topic can be created 
  5405.             there must be at least one visible window created in 
  5406.             the knowledge base.  If you don't want this window to 
  5407.             appear on screen, you can use column and row co-
  5408.             ordinates such as 500,500 and it will not be drawn 
  5409.             on-screen. 
  5410.  
  5411. //set_file_pos
  5412. #cenable_menu_item (?m1, &Copy).
  5413. Format is 'set_file_pos (FILE, NUMBER {, START}).'.#c
  5414. Format      set_file_pos (FILE, NUMBER {, START})
  5415.  
  5416. Action      Moves a file's pointer to a certain location.
  5417.  
  5418. Parameters  FILE is the name of the file or list of files whose 
  5419.             pointer is moved.
  5420.  
  5421.             NUMBER is the number of characters (bytes) to move 
  5422.             the file pointer.  To move the file pointer 
  5423.             backwards, make this number negative.
  5424.  
  5425.             START is a string which evaluates to BEGINNING, 
  5426.             CURRENT, or END.  The pointer is moved NUMBER bytes 
  5427.             from the beginning of the file, the current location 
  5428.             of the file pointer, or the end of the file, 
  5429.             respectively.  The default is BEGINNING.
  5430.  
  5431. Returns     The position of the pointer after being moved.  This 
  5432.             is equal to the number of bytes from the beginning of 
  5433.             the file.  If the file pointer is at the beginning of 
  5434.             the file, the result is 0.
  5435.  
  5436. Note        It is possible to set a file's pointer beyond the end 
  5437.             of the file.  If this is done, and then a read is 
  5438.             attempted, an end of file character (ASCII) is 
  5439.             returned.  If a write is attempted when the file 
  5440.             pointer is beyond the end of the file, the file is 
  5441.             first extended with null characters (ASCII 0) to the 
  5442.             position of the file pointer, and then the write is 
  5443.             performed.
  5444.  
  5445.             It is not possible to set the file pointer before the 
  5446.             beginning of a file.  If such an operation is 
  5447.             attempted, the file pointer is set at the beginning 
  5448.             of the file.
  5449.  
  5450. Errors      I_CANT_OPEN
  5451.  
  5452. See Also    #mget_file_pos#m, #mnew_file#m, #mread#m, 
  5453.             #mread_line#m, #mread_char#m, #mwrite#m, #mclose#m
  5454.  
  5455. //set_focus
  5456. #cenable_menu_item (?m1, &Copy).
  5457. Format is 'set_focus (HANDLE).'.#c
  5458. Format      set_focus (HANDLE)
  5459.  
  5460. Action      Sets the screen object which receives input.  When 
  5461.             the focus is set to an overlapped or popup window, 
  5462.             the window comes to the top and becomes the active 
  5463.             window.  When it is set to a child window, the window 
  5464.             becomes the top window.  The object receiving the 
  5465.             focus receives a get_focus_event.
  5466.  
  5467. Parameters  HANDLE is the handle of the window or object which is 
  5468.             to receive the focus.   If HANDLE is a list, only the 
  5469.             first element is used.
  5470.  
  5471. Returns     The handle of the currently active window.
  5472.  
  5473. Errors      I_INVALID_WINDOW
  5474.  
  5475. See Also    #mget_focus#m, #mset_active_window#m, 
  5476.             #mset_top_window#m
  5477.  
  5478. //set_number_of_values
  5479. #cenable_menu_item (?m1, &Copy).
  5480. Format is 'set_number_of_values (TOPIC, INTEGER) .'.#c
  5481. Format      set_number_of_values (TOPIC, INTEGER) 
  5482.  
  5483. Action      Sets  the number of  different values that  can be 
  5484.             assigned to a topic.  This topic has no effect on  
  5485.             values  already  assigned to a  topic,  but  an  
  5486.             error message  is displayed if a subsequent attempt 
  5487.             is  made to assign more than the legal number of 
  5488.             values.
  5489.  
  5490. Parameters  TOPIC specifies the name of the topic or topics whose 
  5491.             maximum number of values you wish to specify.  If 
  5492.             TOPIC does not exist it is created.  If TOPIC is [ ], 
  5493.             the current topic is set.
  5494.  
  5495.             INTEGER specifies the number of values the topic or 
  5496.             lists of topics can be assigned.
  5497.  
  5498. Errors      I_INVALID_ELEMENT
  5499.  
  5500. See Also    #mget_number_of_values#m, #mvalue_of#m
  5501.  
  5502. //set_procedures
  5503. #cenable_menu_item (?m1, &Copy).
  5504. Format is 'set_procedures (TOPIC, COMMANDS) .'.#c
  5505. Format      set_procedures (TOPIC, COMMANDS) 
  5506.  
  5507. Action      The  commands specified by COMMANDS is attached to 
  5508.             TOPIC.
  5509.  
  5510. Parameters  TOPIC specifies  the name of  the topic or topics 
  5511.             whose topic  list you want to set.  
  5512.  
  5513.             COMMANDS is a list which specifies the commands to be 
  5514.             attached to  TOPIC .  Each element of the list is a 
  5515.             list  in the internal format for  commands. 
  5516.             KnowledgePro commands are represented internally as a 
  5517.             list in the form:
  5518.  
  5519.             [function, parameter1, parameter2...]
  5520.  
  5521.             Using Debug, this list is displayed as: 
  5522.  
  5523.             function (parameter1, parameter2,...) 
  5524.  
  5525.             This  list can be constructed and manipulated using  
  5526.             any  of the standard list topics.
  5527.  
  5528. Note        If you want to assign commands to a topic without 
  5529.             evaluating the command, delay can be used.
  5530.  
  5531.             set_procedures (x,[delay (ask('What is your name?',   
  5532.             name)),delay (say ('Hello there'))]).
  5533.  
  5534.             set_procedures is not supported in the runtime 
  5535.             version of KnowledgePro.
  5536.  
  5537. See Also    #mcompile#m, #mevaluate#m, #mperform#m, 
  5538.             #mget_procedures#m
  5539.  
  5540. //set_radio_button
  5541. #cenable_menu_item (?m1, &Copy).
  5542. Format is 'set_radio_button (HANDLE, BOOLEAN).'.#c
  5543. Format      set_radio_button (HANDLE, BOOLEAN)
  5544.  
  5545. Action      Used to check and uncheck selected radio buttons
  5546.  
  5547. Parameters  HANDLE  is the identifier of the button. If it is a 
  5548.             list of radio buttons not in the same group, each 
  5549.             button is set.
  5550.  
  5551.             BOOLEAN is a boolean value that specifies the value 
  5552.             of each radio button named by HANDLE.  When the value 
  5553.             is T, the radio button is checked.   A F  value 
  5554.             unchecks a checked radio button.
  5555.  
  5556. Errors      I_INVALID_WINDOW
  5557.  
  5558. See Also    #mget_radio_button#m, #mradio_button#m, #mset_text#m
  5559.  
  5560. //set_read_only
  5561. #cenable_menu_item (?m1, &Copy).
  5562. Format is 'set_read_only (TOPIC, {BOOLEAN}).'.#c
  5563. Format      set_read_only (TOPIC, {BOOLEAN})
  5564.  
  5565. Action      Sets TOPIC to be either a read and write topic or 
  5566.             read only.  The value of a read only topic cannot be 
  5567.             changed.  If TOPIC cannot be found, it is created.  
  5568.             Since topics are read and write by default, this is 
  5569.             usually only used to set a topic to read only or to 
  5570.             reset a topic previously set to read only.
  5571.  
  5572. Parameters  TOPIC is the name of the topic or list of topics to 
  5573.             set as read and write.  If  [ ], the current topic is 
  5574.             used.
  5575.  
  5576.             BOOLEAN is T to set the specified topics as read 
  5577.             only.  This means new values cannot be assigned to 
  5578.             TOPIC.  BOOLEAN is F to set TOPIC back to read and 
  5579.             write.  The default value is t.
  5580.  
  5581. Note        Read and write is the default for all topics.
  5582.  
  5583. See Also    #mget_read_only#m
  5584.  
  5585. //set_scroll_bar
  5586. #cenable_menu_item (?m1, &Copy).
  5587. Format is 'set_scroll_bar (HANDLE, POSITION).'.#c
  5588. Format      set_scroll_bar (HANDLE, POSITION)
  5589.  
  5590. Action      Sets the scroll bar slider to POSITION.
  5591.  
  5592. Parameters  HANDLE the handle of a scroll bar or list of handles.
  5593.  
  5594.             POSITION is the new slider position. POSITION must be 
  5595.             in the range set when the scroll bar was created. If 
  5596.             POSITION is below the minimum slider value it is set 
  5597.             to the minimum. If POSITION is beyond the slider 
  5598.             maximum it is set  to the maximum value. POSITION 
  5599.             must be in the range -32768 to 32767.  If this 
  5600.             parameter is a list, only the first element is used.
  5601.  
  5602. Returns     The new position of the slider. 
  5603.  
  5604. Errors      I_INVALID_WINDOW
  5605.  
  5606. See Also    #mget_scroll_bar#m, #mhorz_scroll_bar#m, 
  5607.             #mvert_scroll_bar#m
  5608.  
  5609. //set_text
  5610. #cenable_menu_item (?m1, &Copy).
  5611. Format is 'set_text ({HANDLE}, TEXT).'.#c
  5612. Format      set_text ({HANDLE}, TEXT)
  5613.  
  5614. Action      The action depends on the type of the window:
  5615.  
  5616.             Window Type             Action 
  5617.  
  5618.             button, radio button,    TEXT replaces the text of the  
  5619.             or check box             screen object. If TEXT is a list,
  5620.                                      only the first item is used.
  5621.  
  5622.             edit objects and         TEXT replaces the current text.  
  5623.             display windows          Screen objects in a display window
  5624.                                      are not affected.
  5625.  
  5626.             list box                 TEXT replaces the items in      
  5627.                                      the list box. 
  5628.  
  5629.             scroll bar               No effect.    
  5630.  
  5631. Parameters  HANDLE is the handle of the window or  a list of 
  5632.             handles. If it is a list, each window or screen 
  5633.             object on the list is assigned TEXT.  The default is 
  5634.             the current display window.
  5635.  
  5636.             TEXT is the text to be assigned to the windows or 
  5637.             screen objects.
  5638.  
  5639. Errors      I_INVALID_WINDOW
  5640.  
  5641. See Also    #mget_text#m
  5642.  
  5643. //set_title
  5644. #cenable_menu_item (?m1, &Copy).
  5645. Format is 'set_title ({HANDLE}, TEXT).'.#c
  5646. Format      set_title ({HANDLE}, TEXT)
  5647.  
  5648. Action      TEXT replaces the window title. In a display window 
  5649.             or an edit window.
  5650.  
  5651. Parameters  HANDLE is the handle of the window or a list of 
  5652.             handles. If it is a list, each window on the list is 
  5653.             assigned the new title.  The default handle is the 
  5654.             handle of the current display window.
  5655.  
  5656.             TEXT is the window title. If this parameter is a 
  5657.             list, only the first element is used.
  5658.  
  5659. Errors      I_INVALID_WINDOW
  5660.  
  5661. Set Also    #mget_title#m
  5662.  
  5663. //set_top_window
  5664. #cenable_menu_item (?m1, &Copy).
  5665. Format is 'set_top_window (HANDLE).'.#c
  5666. Format      set_top_window (HANDLE)
  5667.  
  5668. Action      Places the focus in the specified window.  If the 
  5669.             window is a popup or an overlapped window it becomes 
  5670.             the active window.  set_top_window has the same 
  5671.             results as a set_focus.  If the window has a title 
  5672.             bar it is made the active title bar color.  If it has 
  5673.             a dialog frame, the frame is made the active title 
  5674.             bar color.  The window set to the top receives a 
  5675.             get_focus_event.  The window or screen object which 
  5676.             had the focus receives a lose_focus_event.
  5677.  
  5678. Parameters  HANDLE is the handle of the window which is made the 
  5679.             top window.
  5680.  
  5681. Errors      I_INVALID_HANDLE
  5682.  
  5683. See Also    #mget_top_window#m, #mset_active_window#m,  
  5684.             #mset_display_window#m, #mset_focus#m, #mDescription of Events#m
  5685.  
  5686. //show_topic
  5687. #cenable_menu_item (?m1, &Copy).
  5688. Format is 'show_topic (TOPIC).'.#c
  5689. Format      show_topic (TOPIC)
  5690.  
  5691. Action      Opens a dialog window containing information about 
  5692.             the topic. This is the same information displayed 
  5693.             when a topic is selected from the list of topics 
  5694.             displayed by Debug/Topics on the main menu of the 
  5695.             development environment.  The user can change the 
  5696.             characteristics of the topic displayed.
  5697.  
  5698. Parameters  TOPIC is a topic name or list of topic names whose 
  5699.             descriptions are to be displayed.
  5700.  
  5701. Returns     A boolean that indicates whether the topic was 
  5702.             changed.
  5703.  
  5704. Note        This topic is meant for use during debugging only. 
  5705.             The user can change the topic's value, commands etc., 
  5706.             but the knowledge base source files is not be 
  5707.             updated.
  5708.  
  5709.             When make_topic_list is called, it creates a list of 
  5710.             topics in the knowledge base.  If the user clicks on 
  5711.             one of these topics, show_topic is automatically 
  5712.             called to display the details of the selected topic.
  5713.  
  5714. Error       I_CANT_WRITE I_V_TOPIC_NOT_FOUND
  5715.  
  5716. See Also    #mmake_topic_list#m
  5717.  
  5718. //show_window
  5719. #cenable_menu_item (?m1, &Copy).
  5720. Format is 'show_window ({HANDLE, SHOW_CODE}).'.#c
  5721. Format      show_window ({HANDLE, SHOW_CODE})
  5722.  
  5723. Action      Controls the way in which a window appears on the 
  5724.             screen.  Used for showing hidden windows, maximizing 
  5725.             windows, making windows iconic and restoring windows.
  5726.  
  5727.             When a window is moved or resized by a show_window, 
  5728.             it receives a move_event or a resize_event.
  5729.  
  5730. Parameters  HANDLE is a handle or list of handles of windows or 
  5731.             screen objects. The default is the current display 
  5732.             window.
  5733.  
  5734.             SHOW_CODE describes how the window appears and 
  5735.             whether it becomes the active window.  The codes 
  5736.             are:
  5737.             
  5738.             Display         Active Window          Code
  5739.             Normal             Yes                  1 
  5740.             Normal             No                   4 
  5741.             Minimized          Yes                  2 
  5742.             Minimized          No                   7 
  5743.             Maximized          Yes                  3 
  5744.             Hidden             No                   0  
  5745.             Current State      Yes                  5
  5746.             Current State      No                   8
  5747.  
  5748.             The default value is 1.  If this 
  5749.             parameter is a list, only the first element is used.
  5750.  
  5751. Errors      I_INVALID_WINDOW
  5752.  
  5753. See Also    #mdisable_window#m, #menable_window#m, 
  5754.             #mhide_window#m
  5755.  
  5756. //single_step
  5757. #cenable_menu_item (?m1, &Copy).
  5758. Format is 'single_step ( ).'.#c
  5759. Format      single_step ( )
  5760.  
  5761. Action      Causes KnowledgePro to stop and wait for a user 
  5762.             response after each knowledge base step. After each 
  5763.             topic is executed, but before the result is returned 
  5764.             to the calling function, the topic call 
  5765.  
  5766.             wait (continue).
  5767.  
  5768.             is executed.
  5769.  
  5770. Note        This command is usually used during a trace.
  5771.  
  5772.             The command: 
  5773.  
  5774.             text (?name).
  5775.  
  5776.             pauses twice. First when ?name is executed, and again 
  5777.             before the text is displayed.
  5778.  
  5779. See Also    #msingle_step_off#m, #mtrace#m
  5780.  
  5781. //single_step_off
  5782. #cenable_menu_item (?m1, &Copy).
  5783. Format is 'single_step_off ( ).'.#c
  5784. Format      single_step_off ( )
  5785.  
  5786. Action      Turns single step mode off.
  5787.  
  5788. See Also    #msingle_step#m
  5789.  
  5790. //sort
  5791. #cenable_menu_item (?m1, &Copy).
  5792. Format is 'sort (LIST, ORDER).'.#c
  5793. Format      sort (LIST, ORDER)
  5794.  
  5795. Action      Creates an alphabetically sorted list from LIST.  
  5796.             Sublists are flattened for the sort.  LIST itself is 
  5797.             not changed.
  5798.  
  5799. Parameters  LIST is  a list of elements to be sorted. LIST is 
  5800.             flattened before sorting.
  5801.  
  5802.             ORDER is a string that specifies the order in which 
  5803.             the list is sorted.  To sort in ascending order ORDER 
  5804.             should be either ASCENDING or UP.  For descending 
  5805.             order, DESCENDING or DOWN.  The default is ASCENDING. 
  5806.  
  5807. Returns     The sorted list. The value of ORDER determines 
  5808.             whether the list is ascending or descending.
  5809.  
  5810. Note        The longest list that can be sorted contains 16384 
  5811.             elements.
  5812.  
  5813. Errors      I_LIST_TOO_LONG
  5814.  
  5815. See Also    #mnumeric_sort#m
  5816.  
  5817. //stop
  5818. #cenable_menu_item (?m1, &Copy).
  5819. Format is 'stop (MESSAGE).'.#c
  5820. Format      stop (MESSAGE)
  5821.  
  5822. Action      Halts  execution  of the knowledge base.  
  5823.  
  5824. Parameters  MESSAGE is an optional text string which is displayed 
  5825.             before the  system halts.
  5826.  
  5827. Note        In the KnowledgePro runtime system, stop exits 
  5828.             KnowledgePro.
  5829.  
  5830. Errors      When a message is displayed before execution is 
  5831.             halted stop calls the system topic text, which can 
  5832.             generate error messages.
  5833.  
  5834. See Also    #mexit#m
  5835.  
  5836. //string_copy
  5837. #cenable_menu_item (?m1, &Copy).
  5838. Format is 'string_copy (TEXT, START, LENGTH).'.#c
  5839. Format      string_copy (TEXT, START, LENGTH)
  5840.  
  5841. Action      Copies a specified part of a string.
  5842.  
  5843. Parameters  TEXT is string or list of strings from which parts 
  5844.             are to be copied.
  5845.  
  5846.             START is the starting position within the main 
  5847.             string.
  5848.  
  5849.             LENGTH is the total length of the substring to be 
  5850.             copied.
  5851.  
  5852. Returns     The part of the string starting at the position 
  5853.             specified by START and having the total length 
  5854.             specified by LENGTH. If the string is a list then a 
  5855.             list of substrings is returned.  The first character 
  5856.             in the string is position 1.  If  START  is a list, a 
  5857.             list of substrings is returned with the starting 
  5858.             points at each of the locations on the list of START.  
  5859.             If LENGTH  is a list,  a list of substrings is  
  5860.             returned with the length of each item on the list of 
  5861.             LENGTH.  
  5862.  
  5863.             If any of the parameters are [ ], START < 1, LENGTH < 
  5864.             1 or START > the length of  TEXT  then [ ] is 
  5865.             returned.
  5866.  
  5867.             If LENGTH >  the length of TEXT then  all  of  the  
  5868.             characters up to the end of TEXT are returned.
  5869.  
  5870. Error       I_INVALID_ELEMENT
  5871.  
  5872. See Also    #mstring_replace#m
  5873.  
  5874. //string_length
  5875. #cenable_menu_item (?m1, &Copy).
  5876. Format is 'string_length (TEXT).'.#c
  5877. Format      string_length (TEXT)
  5878.  
  5879. Action      Finds the number of characters contained in a string.
  5880.  
  5881. Parameters  TEXT is a string or a list of strings.
  5882.  
  5883. Returns     The length of the string item.   If TEXT  is a list, 
  5884.             a list containing the lengths of each of the strings 
  5885.             is returned.
  5886.  
  5887. //string_replace
  5888. #cenable_menu_item (?m1, &Copy).
  5889. Format is 'string_replace (TEXT_STRING, OLD_TEXT, NEW_TEXT {,COUNT, CASE_SENSITIVE}).'.#c
  5890. Format      string_replace (TEXT_STRING, OLD_TEXT, NEW_TEXT 
  5891.                {,COUNT, CASE_SENSITIVE})
  5892.  
  5893. Action      Makes a new string by replacing part of one string 
  5894.             with another string.  The original TEXT_STRING is not 
  5895.             changed.
  5896.  
  5897. Parameters  TEXT_STRING is the string in which the substring to 
  5898.             be replaced occurs.
  5899.  
  5900.             OLD_TEXT is the substring in  TEXT_STRING which is to 
  5901.             be replaced.
  5902.  
  5903.             NEW_TEXT is the string which is to replace OLD_TEXT  
  5904.             in TEXT_STRING.
  5905.  
  5906.             COUNT is a count of the number of times the 
  5907.             replacement is to be performed.   COUNT must be in 
  5908.             the range 1 to 32767.  If COUNT is a list, only the 
  5909.             first element is used.
  5910.  
  5911.             CASE_SENSITIVE is a boolean value indicating whether 
  5912.             or not the search for the string to be replaced is 
  5913.             case sensitive. The default is F.  This parameter 
  5914.             does not affect NEW_TEXT.
  5915.  
  5916. Returns     For each string in TEXT_STRING a list of 
  5917.             strings is returned with COUNT occurrence of OLD_TEXT 
  5918.             replaced by NEW_TEXT.  
  5919.             If the new string, NEW_TEXT  is [ ], then OLD_TEXT is 
  5920.             deleted from TEXT_STRING COUNT times. 
  5921.  
  5922.             If COUNT is [ ] or not present, the replacement is 
  5923.             performed once.  If COUNT  is less than 1 or greater 
  5924.             than 32767, an error message is displayed and the 
  5925.             original string is returned.
  5926.  
  5927. Errors      I_INVALID_COUNT, I_INVALID_ELEMENT
  5928.  
  5929. See Also    #mstring_copy#m
  5930.  
  5931. //string_to_list
  5932. #cenable_menu_item (?m1, &Copy).
  5933. Format is 'string_to_list (TEXT{,DELIMITER}).'.#c
  5934. Format      string_to_list (TEXT{,DELIMITER})
  5935.  
  5936. Action      Makes a new list out of a string by turning the 
  5937.             individual  words  in  the string into elements of a 
  5938.             list.  By default, words are any sequence  of 
  5939.             characters delimited by spaces.  However, the 
  5940.             DELIMITER parameter lets you define different or 
  5941.             additional characters as delimiters.
  5942.  
  5943. Parameters  TEXT a string or list of strings.
  5944.  
  5945.             DELIMITER is an optional list of characters that can 
  5946.             be used to specify different or additional 
  5947.             deliminating characters.
  5948.  
  5949. Returns     A  list  whose  elements are the individual words  
  5950.             from  the parameter  TEXT.
  5951.  
  5952. //string_where
  5953. #cenable_menu_item (?m1, &Copy).
  5954. Format is 'string_where (TEXT, FIND{,COUNT, CASE_SENSITIVE}).'.#c
  5955. Format      string_where (TEXT, FIND{,COUNT, CASE_SENSITIVE})
  5956.  
  5957. Action      Find a substring in a string.
  5958.  
  5959. Parameters  TEXT is the main string.
  5960.  
  5961.             FIND is the search string.
  5962.  
  5963.             COUNT specifies the number of searches to do.  If you 
  5964.             want to search for all occurrences of an item, enter 
  5965.             a large number such as 32000 for COUNT.
  5966.  
  5967.             CASE_SENSITIVE is a boolean value.  If T, the search 
  5968.             for FIND in text is case sensitive.  The default if 
  5969.             F.
  5970.  
  5971. Returns     The position  of  the  substring in the  main  
  5972.             string.   If either string is [ ],  a value of 0 is 
  5973.             returned.  If the substring is a list, a list of 
  5974.             positions is returned for each string.  If COUNT is 
  5975.             used a list of the locations is returned.  If COUNT 
  5976.             is present, it must be in the range 1 to 32767.  If 
  5977.             COUNT is not present, it is assumed to be 1.
  5978.  
  5979. Errors      I_INVALID_ELEMENT
  5980.  
  5981. //sublist
  5982. #cenable_menu_item (?m1, &Copy).
  5983. Format is 'sublist (LIST, START, LENGTH).'.#c
  5984. Format      sublist (LIST, START, LENGTH)
  5985.  
  5986. Action      Retrieves the sublist starting at a specified 
  5987.             location in a list.
  5988.  
  5989. Parameters  LIST is the list that contains the sublist.
  5990.  
  5991.             START is a list of starting points for the sublist or 
  5992.             set of sublists.
  5993.  
  5994.             LENGTH is a length or a list of lengths of the 
  5995.             sublists returned.
  5996.  
  5997. Returns     A sublist starting at START and containing LENGTH 
  5998.             elements.  If an element of START is greater than the 
  5999.             length of LIST, [ ] is returned.  If the specified 
  6000.             list  extends beyond the length of LIST, the sublist 
  6001.             to the end of LIST is returned.
  6002.  
  6003. Errors      I_INVALID_ELEMENT, I_INVALID_LENGTH 
  6004.  
  6005. See Also    #mdifferent#m, #mintersect#m, #mreplace#m, 
  6006.             #mreplace_elements#m
  6007.  
  6008. //system_info
  6009. #cenable_menu_item (?m1, &Copy).
  6010. Format is 'system_info ( ).'.#c
  6011. Format      system_info ( )
  6012.  
  6013. Action      Provides information about the system in use.
  6014.  
  6015. Returns     A list describing the system being used.  The list 
  6016.             contains:
  6017.             
  6018.             Element            Contents
  6019.  
  6020.             1           the total number of columns on the display
  6021.             2           the total number of rows on display     
  6022.             3           the average width in pixels of the 
  6023.                         default system character set     
  6024.             4           the height in pixels of the default 
  6025.                         system character set     
  6026.             5           the KnowledgePro version number     
  6027.             6           the revision date of KnowledgePro     
  6028.             7           the KnowledgePro system type either 
  6029.                         DEVELOPMENT or RUNTIME      
  6030.             8           the environment for KnowledgePro 
  6031.                         (Windows). This is always WINDOWS     
  6032.             9           the Microsoft Windows version number     
  6033.             10          the current knowledge base name     
  6034.             11          the task handle of KnowledgePro     
  6035.             12          the number of pure colors which can be 
  6036.                         displayed on the monitor in use
  6037.  
  6038. See Also    #mmonitor_type#m, #mwindow_info#m
  6039.  
  6040. //task_list
  6041. #cenable_menu_item (?m1, &Copy).
  6042. Format is 'task_list ( ).'.#c
  6043. Format      task_list ( )
  6044.  
  6045. Action      This is used to get the task handles of all the tasks 
  6046.             that are currently running.  When a new task is 
  6047.             loaded it is assigned a task handle which is placed 
  6048.             on the task list.  The task handle can be used with 
  6049.             task_windows to find the handle of the window that 
  6050.             contains an application.
  6051.  
  6052. Returns     A list of the handles of all the currently active 
  6053.             tasks.
  6054.  
  6055. See Also    #mtask_window#m
  6056.  
  6057. //task_windows
  6058. #cenable_menu_item (?m1, &Copy).
  6059. Format is 'task_windows (TASK_HANDLE).'.#c
  6060. Format      task_windows (TASK_HANDLE)
  6061.  
  6062. Action      This is used to find the handles of the windows in a 
  6063.             task.
  6064.  
  6065. Parameters  TASK_HANDLE a task handle or list of task handles. 
  6066.             The task handle is a number that uniquely identifies 
  6067.             the task.  If this parameter is [ ], the current task 
  6068.             (KnowledgePro) is used.  The task handle of each 
  6069.             application currently loaded is kept on a task list.  
  6070.             The contents of the task list can be found using 
  6071.             task_list.
  6072.  
  6073. Returns     A list of the windows of all the tasks. Child windows 
  6074.             are not listed.
  6075.  
  6076. Errors      I_INVALID_HANDLE
  6077.  
  6078. See Also    #mtask_list#m
  6079.  
  6080. //text
  6081. #cenable_menu_item (?m1, &Copy).
  6082. Format is 'text (TEXT).'.#c
  6083. Format      text (TEXT)
  6084.  
  6085. Action      Display TEXT in the active window.  TEXT is displayed 
  6086.             at the current position. 
  6087.  
  6088. Parameters  TEXT a list of text items to be displayed.
  6089.  
  6090. Note        text writes to the current display window.  Hypertext 
  6091.             in the window can be selected by pointing and 
  6092.             clicking the mouse or by moving the cursor to the 
  6093.             hypertext and pressing ENTER.  In text created while 
  6094.             the auto_hyper_on feature has been selected, text can 
  6095.             be selected as hypertext by dragging the mouse over 
  6096.             it and then clicking the mouse or pressing ENTER.  
  6097.             The selected text is displayed in reverse video. If 
  6098.             auto_hyper is on and no text is selected, the click 
  6099.             selects the word pointed at and ENTER selects the 
  6100.             word under the cursor.  
  6101.  
  6102.             When hypertext is selected
  6103.             1]    super_mark is called as: 
  6104.  
  6105.             super_mark (TEXT, HANDLE, COLUMN, ROW).
  6106.  
  6107.             2]    if super_mark doesn't exist, a topic with the 
  6108.             same name as the selected text is called as 
  6109.  
  6110.             SELECTED_TEXT (TEXT, HANDLE, COLUMN, ROW).
  6111.  
  6112.             3]    if the topic with the same name as text doesn't 
  6113.             exist, mark is called as 
  6114.  
  6115.             mark (TEXT, HANDLE, COLUMN, ROW).
  6116.  
  6117.             4]    if this fails, an I_HYPERTEXT_ERROR error is 
  6118.             generated.
  6119.  
  6120.             The following control codes can be embedded within 
  6121.             the text of TEXT to control  the display of 
  6122.             information on the screen :  
  6123.             ##n         start a new line 
  6124.             ##p         start a new page 
  6125.             ##e         erase the contents of the window 
  6126.             ##l         put each list item on a new line 
  6127.                         (default) 
  6128.             ##s         put each list item on the same line 
  6129.             ##o         no spaces after a list item 
  6130.             ##i         insert a space after each list item 
  6131.                         (default)
  6132.             ##t         tab five spaces 
  6133.             ##m         begin or end marked text 
  6134.             ####         display the character ##  
  6135.             ##INTEGER   print  the  ASCII  character of INTEGER 
  6136.             ##xINTEGER  move to column INTEGER
  6137.             ##yINTEGER  move to row INTEGER
  6138.             ##gHANDLE   display a bitmap.  HANDLE is the              
  6139.                         handle returned by load_bitmap. 
  6140.             ##fCOLOR    change foreground color to COLOR 
  6141.             ##bCOLOR    change background color to COLOR 
  6142.             ##d         return to default colors 
  6143.             ##cTEXT##c  TEXT is compiled and evaluated 
  6144.             ##vTEXT##v  TEXT is compiled, evaluated and any value             
  6145.                         returned is displayed  
  6146.  
  6147.             The following colors may be placed after the ##f and 
  6148.             ##b:   
  6149.  
  6150.             black, blue, green, cyan, red, magenta, yellow, white    
  6151.  
  6152.             At least one blank space must follow the name of the 
  6153.             color.
  6154.  
  6155.             When using ##cTEXT##c or ##vTEXT##v, TEXT must 
  6156.             evaluate to legitimate KnowledgePro commands. The 
  6157.             text is compiled, evaluated and the result is 
  6158.             displayed.
  6159.  
  6160. Error       I_INVALID_WINDOW I_CANT_CREATE_TEMP_FILE 
  6161.             I_MISSING_HASHC
  6162.  
  6163. See Also    #mauto_hyper_off#m, #mauto_hyper_on#m, 
  6164.             #mdisplay_pos#m, #mdisplay_pos#m, #msay#m,  
  6165.             #muse_font#m
  6166.  
  6167. //text_to_clipboard
  6168. #cenable_menu_item (?m1, &Copy).
  6169. Format is 'text_to_clipboard (TEXT).'.#c
  6170. Format      text_to_clipboard (TEXT)
  6171.  
  6172. Action      Stores ASCII text  in the clipboard.  If text is a 
  6173.             list, the list is flattened and each element of the 
  6174.             list is stored as a line of text. 
  6175.  
  6176. Parameters  TEXT text to be stored in the clipboard.  
  6177.  
  6178. See Also    #mbitmap_to_clipboard#m, #mread_clipboard#m
  6179.  
  6180. //time
  6181. #cenable_menu_item (?m1, &Copy).
  6182. Format is 'time ( ).'.#c
  6183. Format      time ( )
  6184.  
  6185. Action      Reads the time from the system clock.   The format 
  6186.             used is  [ hours, min, sec, hundredths ].  Hundredths 
  6187.             is in 1/100ths of a second.
  6188.  
  6189. Returns     A list in the format above which contains the current 
  6190.             system time.
  6191.  
  6192. See Also    #mdate#m
  6193.  
  6194. //trace
  6195. #cenable_menu_item (?m1, &Copy).
  6196. Format is 'trace ({FILE}).'.#c
  6197. Format      trace ({FILE})
  6198.  
  6199. Action      When  trace  is turned on,  each step of the 
  6200.             execution of  a knowledge  base  is displayed either 
  6201.             on the screen or  to  a specified file.
  6202.  
  6203. Parameters  FILE is the name specified  if you  want  to save the 
  6204.             trace to a  file.   If no file name  is  specified,  
  6205.             the results of the trace are sent to a window which 
  6206.             is opened on the screen.  To send a trace to the 
  6207.             printer, use PRN as a file name.
  6208.  
  6209. Error       I_CANT_OPEN
  6210.  
  6211. See Also    #msingle_step#m, #mtrace_off#m
  6212.  
  6213. //trace_off
  6214. #cenable_menu_item (?m1, &Copy).
  6215. Format is 'trace_off ( ) .'.#c
  6216. Format      trace_off ( ) 
  6217.  
  6218. Action      Stops tracing the execution of a knowledge base.
  6219.  
  6220. See Also    #mtrace#m
  6221.  
  6222. //typeface_list
  6223. #cenable_menu_item (?m1, &Copy).
  6224. Format is 'typeface_list (DEVICE).'.#c
  6225. Format      typeface_list (DEVICE)
  6226.  
  6227. Action      Used to find the name of the typefaces available for 
  6228.             a device.
  6229.  
  6230. Parameters  DEVICE either [ ], for the display or PRN for 
  6231.             the printer.
  6232.  
  6233. Returns     A list of type face names available for the device.  
  6234.             Any of these typefaces can be used in create_font.
  6235.  
  6236. Errors      I_PRINT_NO_DC
  6237.  
  6238. See Also    #mcreate_font#m, #mfont_list#m, #muse_font#m
  6239.  
  6240. //uncheck_menu_item
  6241. #cenable_menu_item (?m1, &Copy).
  6242. Format is 'uncheck_menu_item (HANDLE, ITEM).'.#c
  6243. Format      uncheck_menu_item (HANDLE, ITEM)
  6244.  
  6245. Action      The check mark next to the specified menu item is 
  6246.             removed.
  6247.  
  6248. Parameters  HANDLE is the handle of the menu that contains the 
  6249.             ITEM to be unchecked.  
  6250.  
  6251.             ITEM is the name of a menu item, or list of items.
  6252. Note        This command has no effect if the menu item is not 
  6253.             checked.
  6254.  
  6255. Errors      I_NO_MENU,  I_INVALID_WINDOW, I_MENU_NOT_FOUND
  6256.  
  6257. See Also    #mcheck_menu_item#m, #mdisable_menu_item#m, 
  6258.             #menable_menu_item#m, #mmenu#m
  6259.  
  6260. //union
  6261. #cenable_menu_item (?m1, &Copy).
  6262. Format is 'union (LIST1{,LIST2, LIST3...}) .'.#c
  6263. Format      union (LIST1{,LIST2, LIST3...}) 
  6264.  
  6265. Action      This  function  produces a list of items that  
  6266.             contains  the union of two or more lists of items.  
  6267.             This is different from combine in that duplicate 
  6268.             items are not kept on  the  list produced.
  6269.  
  6270. Parameters  LIST1 {, LIST2, LIST3 ...} are the lists to be 
  6271.             united.
  6272.  
  6273. Returns     A list of all of the items that appear on the 
  6274.             specified lists.  The resulting list contains no 
  6275.             duplicates.
  6276.  
  6277. Note        union can be used to remove duplicate items from a 
  6278.             list. For example,
  6279.  
  6280.             x is union ([a,a,b,c,c,d]).
  6281.  
  6282.             x  is assigned the value [a,b,c,d ] .
  6283.  
  6284. See Also    #mcombine#m
  6285.  
  6286. //update_window
  6287. #cenable_menu_item (?m1, &Copy).
  6288. Format is 'update_window ({HANDLE}).'.#c
  6289. Format      update_window ({HANDLE})
  6290.  
  6291. Action      Updates the window or screen object by repainting it. 
  6292.             Windows are not normally painted until KnowledgePro 
  6293.             enters a wait loop or reaches the end of the 
  6294.             knowledge base. This means that messages written to 
  6295.             windows do not appear immediately. update_window can 
  6296.             be used to force KnowledgePro to paint a window or 
  6297.             screen object immediately.
  6298.  
  6299. Parameters  HANDLE is the handle or list of handles of a window 
  6300.             or  screen object.  The default is the current 
  6301.             display window.
  6302.  
  6303. Error       I_INVALID_WINDOW
  6304.  
  6305. See Also    #mshow_window#m, #mset_active_window#m, 
  6306.             #mset_top_window#m
  6307.  
  6308. //upper
  6309. #cenable_menu_item (?m1, &Copy).
  6310. Format is 'upper (TEXT).'.#c
  6311. Format      upper (TEXT)
  6312.  
  6313. Action      Converts the string or a list of strings to upper 
  6314.             case.
  6315.  
  6316. Parameters  TEXT is a text string or list of strings.
  6317.  
  6318. Returns     A new string or list of strings with characters in 
  6319.             the range "a" to "z" converted to the range "A" to 
  6320.             "Z".
  6321.  
  6322. See Also    #mlower#m
  6323.  
  6324. //use_font
  6325. #cenable_menu_item (?m1, &Copy).
  6326. Format is 'use_font (FONT_HANDLE {, DEVICE}).'.#c
  6327. Format      use_font (FONT_HANDLE {, DEVICE})
  6328.  
  6329. Action      All further text output is written with the specified 
  6330.             font.
  6331.  
  6332. Parameters  FONT_HANDLE the handle of a font created with 
  6333.             create_font or one of the following standard fonts: 
  6334.  
  6335.             OEM_FIXED_FONT
  6336.               specifies a fixed width font using the OEM character set.
  6337.  
  6338.             ANSI_FIXED_FONT
  6339.               specifies a fixed width font using the ANSI character set.
  6340.  
  6341.             ANSI_VAR_FONT
  6342.               specifies a variable width font using the ANSI character set.
  6343.  
  6344.             DEVICE_DEFAULT_FONT
  6345.               the most appropriate font for the specified device
  6346.  
  6347.             SYSTEM_FONT
  6348.               specifies the system font.  This is the default.
  6349.  
  6350.             DEVICE
  6351.               selects the device which will use the font.  
  6352.               Use [ ] for the display or PRN for the printer. 
  6353.               Fonts can only be printed using print.
  6354.  
  6355. Returns     The font handle.
  6356.  
  6357. Errors      I_INVALID_FONT
  6358.  
  6359. //user
  6360. #cenable_menu_item (?m1, &Copy).
  6361. Format is 'user (DLL_HANDLE, FUNCTION, PARAMETERS).'.#c
  6362. Format      user (DLL_HANDLE, FUNCTION, PARAMETERS)
  6363.  
  6364. Action      Calls a function in the dynamic link library (DLL), 
  6365.             passing it PARAMETERS.
  6366.  
  6367. Parameters  DLL_HANDLE is the handle of a DLL, previously loaded 
  6368.             by load_library.  If this parameter is a list, only 
  6369.             the first element is used.
  6370.  
  6371.             FUNCTION is the name or ordinal value of an exported 
  6372.             function from the DLL  If this parameter is a list, 
  6373.             each function is called and passed parameters.
  6374.  
  6375.             PARAMETERS are optional values which may be passed to 
  6376.             the external function.
  6377.  
  6378. Returns     The value returned from FUNCTION.
  6379.  
  6380. Note        Due to a problem in Microsoft Windows 2.1, Microsoft 
  6381.             recommends exporting functions from a DLL by ordinal 
  6382.             value rather than by name. Windows does not always 
  6383.             properly maintain the names of exported functions. 
  6384.             KnowledgePro reports this error as 
  6385.  
  6386.             I_INT_MEMORY_ERR. 
  6387.  
  6388. Errors      I_INVALID_FUNCTION, I_INVALID_LIBRARY
  6389.             USER will also returns errors from functions.
  6390.  
  6391. See Also    #mload_library#m
  6392.  
  6393. //value_of
  6394. #cenable_menu_item (?m1, &Copy).
  6395. Format is 'value_of (TOPIC {,PARAMETER1, PARAMETER2 ,...}).'.#c
  6396. Format      value_of (TOPIC {,PARAMETER1, PARAMETER2 ,...})
  6397.  
  6398. Alternate   ?TOPIC  ({PARAMETER1, PARAMETER2,...})
  6399.  
  6400. Action      Find the list of items assigned to a topic.  If TOPIC 
  6401.             has already been evaluated, the current value is 
  6402.             returned.  The system searches the hierarchy for 
  6403.             TOPIC.  If TOPIC is not yet evaluated, the commands 
  6404.             associated with it are immediately executed until the 
  6405.             maximum number  of legal  values  for  the  topic has  
  6406.             been  reached,  or an exit,  stop, exit_kp or 
  6407.             exit_windows is executed.  
  6408.  
  6409.             If  the number  of  legal values was not set,  all of  
  6410.             the  commands in the  topic  are executed.   This  
  6411.             command implements  a backward  chaining function. 
  6412.             The optional PARAMETERS  are parameters which can  be 
  6413.             passed to the  topic  if  it  is evaluated at this 
  6414.             time.  If TOPIC can't be found, an error message is 
  6415.             given.
  6416.  
  6417. Parameters  TOPIC is a topic or list  of topics whose values  you  
  6418.             want  to  find.   If  these  values  have not yet 
  6419.             been  determined  the topics' commands are executed. 
  6420.  
  6421.             {PARAMETER1, PARAMETER2 , ...  } are parameters 
  6422.             passed to  TOPIC when it is executed.
  6423.  
  6424. Returns     The  value  or  list  of values of the  specified  
  6425.             topic  or topics.
  6426.  
  6427. Note        ?x(a,b) 
  6428.  
  6429.             is equivalent to 
  6430.  
  6431.             do (?x,a,b).  
  6432.  
  6433.             x is evaluated and then the result of this evaluation 
  6434.             is passed the parameter a and b and is executed. 
  6435.  
  6436.             ?(x(a,b)) 
  6437.  
  6438.             is evaluated to 
  6439.  
  6440.             value_of (do (x,a,b)).
  6441.  
  6442. Error       I_V_TOPIC_NOT_FOUND
  6443.  
  6444. //vert_scroll_bar
  6445. #cenable_menu_item (?m1, &Copy).
  6446. Format is 'vert_scroll_bar ({EVENT_TOPIC, COLUMN, ROW, WIDTH, HEIGHT, MINIMUM, MAXIMUM, EVENT_LIST}).'.#c
  6447. Format      vert_scroll_bar ({EVENT_TOPIC, COLUMN, ROW, WIDTH, 
  6448.                HEIGHT, MINIMUM, MAXIMUM, EVENT_LIST})
  6449.  
  6450. Action      Creates a  vertical scroll bar at COLUMN, ROW 
  6451.             position in the current display window.   The scroll 
  6452.             bar slider is moved with the mouse or with the cursor 
  6453.             keys.
  6454.  
  6455. Parameters  EVENT_TOPIC is the topic or list of topics performed 
  6456.             when an event on the EVENT_LIST occurs while the 
  6457.             focus is on the scroll bar. EVENT_TOPIC is called as:  
  6458.  
  6459.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  6460.  
  6461.             EVENT_INFO depends on the event that occurs.  A 
  6462.             description of events is given in Appendix D.
  6463.  
  6464.             EVENT_NAME is the name of the event that occurred.  
  6465.  
  6466.             HANDLE is the handle assigned to the scroll bar.    
  6467.             If EVENT_TOPIC sets its value to true after being 
  6468.             called by a lose_focus_event, close_event, 
  6469.             char_event, or a sys_char_event, further processing 
  6470.             of the event is canceled before it is executed.   
  6471.             Whenever EVENT_TOPIC is called its value is reset.  
  6472.             If no EVENT_TOPIC is defined, no events are 
  6473.             recognized.
  6474.  
  6475.             COLUMN, ROW is the position of the scroll bar. The 
  6476.             default is the current display location.  COLUMN and 
  6477.             ROW are relative to the display area of the current 
  6478.             display window.
  6479.  
  6480.             WIDTH, HEIGHT is width and height of the scroll bar. 
  6481.             The default is 1, 20. 
  6482.  
  6483.             MINIMUM, MAXIMUM is the minimum and maximum slider 
  6484.             values. The default is 0, 100. MINIMUM and MAXIMUM 
  6485.             can take on values between -32768 and 32767. If 
  6486.             either of these parameters is a list, only the first 
  6487.             element is used.
  6488.  
  6489.             EVENT_TOPIC is a list of events that causes the 
  6490.             EVENT_TOPIC to be called.  The  events that can be 
  6491.             processed are: 
  6492.  
  6493.             get_focus_event, lose_focus_event, close_event     
  6494.             char_event, sys_char_event, scroll_event These events 
  6495.             are described in detail in Appendix D. If no event is 
  6496.             specified, the default event is a scroll_event.
  6497.  
  6498. Returns     HANDLE, the handle of the scroll bar.
  6499.  
  6500. Note        To get the value of a scroll bar use get_scroll_bar.  
  6501.             To set the position of a scroll bar use 
  6502.             set_scroll_pos.
  6503.  
  6504. See Also    #mget_scroll_bar#m, #mset_scroll_bar#m, 
  6505.             #mhorz_scroll_bar#m, #mDescription of Events#m
  6506.  
  6507. //vert_scroll_text
  6508. #cenable_menu_item (?m1, &Copy).
  6509. Format is 'vert_scroll_text (HANDLE, LINES).'.#c
  6510. Format      vert_scroll_text (HANDLE, LINES)
  6511.  
  6512. Action      Scrolls the window the appropriate number of lines. 
  6513.             The window is not scroll beyond the last line 
  6514.             currently displayed in the window.
  6515.  
  6516. Parameters  HANDLE is the handle of a window, or list of handles. 
  6517.  
  6518.             LINES is the number of lines to scroll, negative to 
  6519.             scroll the window up, positive to scroll down.
  6520.  
  6521. Returns     The co-ordinates of the upper left hand corner of the 
  6522.             window.
  6523.  
  6524. Errors      I_INVALID_WINDOW
  6525.  
  6526. //wait
  6527. #cenable_menu_item (?m1, &Copy).
  6528. Format is 'wait ({TEXT, TIME}).'.#c
  6529. Format      wait ({TEXT, TIME})
  6530.  
  6531. Action      wait prevents the next topic in the knowledge base 
  6532.             from being called.  Events are processed during the 
  6533.             wait.  When wait is passed an optional TEXT 
  6534.             parameter, a small windows with a button labeled with 
  6535.             TEXT is placed at the bottom right of the screen.  
  6536.             When the button in the window is selected the wait is 
  6537.             canceled.  When wait is passed an optional parameter 
  6538.             TIME, the knowledge base pauses for TIME seconds, and 
  6539.             then automatically continues.  If neither parameter 
  6540.             is passed to wait, then the continue command must be 
  6541.             called to cancel wait and resume normal processing of 
  6542.             the knowledge base topics. 
  6543.  
  6544. Parameters  TEXT causes a small window with a button labeled TEXT 
  6545.             to be placed at the bottom right of the screen.  If 
  6546.             this item is a list, only the first element is used. 
  6547.             If it is [ ], no window appears.
  6548.  
  6549.             TIME is the time in seconds to wait.  The time 
  6550.             waited is in increments of a tenth of a second, and 
  6551.             the shortest time waited is one tenth of a second.  
  6552.             After TIME seconds, the wait is canceled.  All events 
  6553.             which occurred but were not processed before the wait 
  6554.             are processed during the wait, even if TIME elapses 
  6555.             while processing those events.
  6556.  
  6557. Returns     This function does not return until TIME expires or 
  6558.             the topic continue is called from the knowledge base 
  6559.             as a result of a user action.  If canceled by 
  6560.             continue, wait returns a number passed to it by 
  6561.             continue.  This number can let you keep track of 
  6562.             which continue canceled the wait.
  6563.  
  6564. Note        When multiple wait calls are being processed, only 
  6565.             the most recently executed wait is active.  You must 
  6566.             close the wait windows in order.  Attempts to close 
  6567.             any but the most recent wait window are ignored.
  6568.  
  6569. See Also    #mcontinue#m
  6570.  
  6571. //where
  6572. #cenable_menu_item (?m1, &Copy).
  6573. Format is 'where (LIST, VALUES{, COUNT}).'.#c
  6574. Format      where (LIST, VALUES{, COUNT})
  6575.  
  6576. Action      Finds the  position of an element or list of elements 
  6577.             in a list.
  6578.  
  6579. Parameters  LIST is the list to be searched for  the occurrence 
  6580.             of the items specified by VALUES.
  6581.  
  6582.             VALUES is the list of items to search for in LIST.
  6583.  
  6584.             COUNT specifies the number of searches to do .  If 
  6585.             you want to search for all occurrences of an item, 
  6586.             enter a large number such as 32000 for COUNT.
  6587.  
  6588. Returns     The  position in LIST of VALUES.   When  VALUES is  
  6589.             not found on LIST , a 0 is returned.  The first 
  6590.             element in a list is at position 1.  If INTEGER is 
  6591.             used, a list of the locations is returned. When 
  6592.             INTEGER is present, it must be in the range 1 to 
  6593.             32767.  If INTEGER is not present, it is assumed to 
  6594.             be one.
  6595.  
  6596. Errors      I_INVALID_COUNT,  I_INVALID_ELEMENT
  6597.  
  6598. //while
  6599. #cenable_menu_item (?m1, &Copy).
  6600. Format is 'while (CONDITION, COMMANDS).'.#c
  6601. Format      while (CONDITION, COMMANDS)
  6602.  
  6603. Alternate   while CONDITION then COMMANDS 
  6604.  
  6605. Action      This topic tests CONDITION.  If the value of 
  6606.             CONDITION is true, a COMMANDS is performed.   
  6607.             CONDITION is tested again and if CONDITION is still 
  6608.             true, the commands are repeated.  This sequence is 
  6609.             repeated until CONDITION becomes false.
  6610.  
  6611. Parameters  CONDITION is an expression that evaluates to a 
  6612.             boolean value.  If the expression results in a list 
  6613.             of values, all values on the list must be true for 
  6614.             the expression to be true.
  6615.  
  6616.             COMMANDS is a command or list of commands to be 
  6617.             performed as long as the boolean expression remains 
  6618.             true.
  6619.  
  6620. See Also    #mrepeat#m
  6621.  
  6622. //window
  6623. #cenable_menu_item (?m1, &Copy).
  6624. Format is 'window ({EVENT_TOPIC, COLUMN, ROW, WIDTH, HEIGHT, TITLE, STYLE, PARENT, TEXTCOLOR, BACKGROUNDCOLOR, EVENT_LIST}).'.#c
  6625. Format      window ({EVENT_TOPIC, COLUMN, ROW, WIDTH, HEIGHT, 
  6626.                TITLE, STYLE, PARENT, TEXTCOLOR, 
  6627.                BACKGROUNDCOLOR, EVENT_LIST})
  6628.  
  6629. Action      Creates a window with the specified parameters. The 
  6630.             new window becomes the current display window.  If a 
  6631.             Visible style is included, it is also the active 
  6632.             window.
  6633.  
  6634. Parameters  EVENT_TOPIC is the topic or list of topics performed 
  6635.             when an event on the EVENT_LIST occurs while the 
  6636.             focus is on the window.  EVENT_TOPIC is called as:  
  6637.  
  6638.             EVENT_TOPIC (EVENT_INFO,EVENT_NAME,HANDLE).
  6639.  
  6640.             EVENT_INFO depends on the event that occurs.  A 
  6641.             description of events is given in Appendix D.
  6642.  
  6643.             EVENT_NAME is the name of the event that occurred.  
  6644.  
  6645.             HANDLE is the handle assigned to the WINDOW.  If 
  6646.             EVENT_TOPIC sets its value to true after being called 
  6647.             by a lose_focus_event, close_event, char_event, or a 
  6648.             sys_char_event, further processing of the event is 
  6649.             canceled before it is executed.   Whenever 
  6650.             EVENT_TOPIC is called its value is reset.  If 
  6651.             no EVENT_TOPIC is defined, no events are recognized.
  6652.  
  6653.             COLUMN, ROW is the position of upper left corner of 
  6654.             the window frame in system character co-ordinates. If 
  6655.             the window has a Child style, COLUMN and ROW are 
  6656.             relative to the upper left corner of the parent.  If 
  6657.             the window has an Overlapped or PopUp style or is the 
  6658.             default style, COLUMN and ROW are relative to the 
  6659.             upper left corner of the screen.  Decimal values can 
  6660.             be used.
  6661.  
  6662.  
  6663.             WIDTH, HEIGHT is the width and  height of the window 
  6664.             in system character co-ordinates. Decimal values can 
  6665.             be used.
  6666.  
  6667.             TITLE is the window title.  It can contain up to 80 
  6668.             characters. If this parameter is a list, only the 
  6669.             first element is used.
  6670.  
  6671.             STYLE is a list of styles for the window.  Styles can 
  6672.             be selected from the following list:
  6673.  
  6674.                 Type                 Overlapped 
  6675.                                      PopUp 
  6676.                                      Child
  6677.  
  6678.                 Initial state        Visible     
  6679.                                      Disabled             
  6680.                                      Maximized
  6681.  
  6682.                 Special elements     TitleBar 
  6683.                                      VertScroll 
  6684.                                      HorzScroll 
  6685.                                      ControlMenu 
  6686.                                      MaximizeBox 
  6687.                                      MinimizeBox
  6688.  
  6689.                 Frame                ThinFrame 
  6690.                                      ThickFrame 
  6691.                                      DialogFrame
  6692.  
  6693.                 Treatment of
  6694.                   related windows    ShowChildren 
  6695.                                      Siblings
  6696.  
  6697.                 Combined styles
  6698.                    OverlappedWindow contains the styles:         
  6699.                    [Overlapped, ThickFrame, ControlMenu, MaximizeBox, 
  6700.                    MinimizeBox, ShowChildren, TitleBar]      
  6701.  
  6702.                 PopupWindow contains the styles:         
  6703.                    [Popup, ThickFrame, ShowChildren]    
  6704.  
  6705.                 ChildWindow contains the styles:         
  6706.                    [Child, ThinFrame, ShowChildren, Siblings]     
  6707.  
  6708.                 DialogWindow contains the styles:         
  6709.                    [Popup, DialogFrame, ShowChildren] 
  6710.  
  6711.         The default style for a display window is   
  6712.  
  6713.                    [Popup, Visible, Siblings, ShowChildren,  TitleBar,
  6714.                    VertScroll, HorzScroll, ControlMenu]
  6715.  
  6716.         Combining inappropriate styles may cause unexpected          
  6717.                 results.
  6718.  
  6719.             PARENT is the  handle of the window's parent.  An 
  6720.             Overlapped window cannot have a parent.  A Child 
  6721.             style must be assigned a parent.  The window has no 
  6722.             parent as a default.  If this parameter is a list, 
  6723.             only the first element is used.
  6724.  
  6725.             TEXTCOLOR is the RGB value of the color of the text 
  6726.             or one of the predefined colors listed below.  If 
  6727.             this parameter is a list, only the first element is 
  6728.             used. 
  6729.  
  6730.          black, blue, green, red, magenta, cyan, yellow, white
  6731.  
  6732.             BACKCOLOR is the RGB value of the color of the window 
  6733.             background or one of the predefined colors listed 
  6734.             below.
  6735.  
  6736.             Solid colors
  6737.                 black, blue, green, red, magenta, cyan, yellow, 
  6738.                 white, darkblue, brown, darkpurple, purple, pink, 
  6739.                 bluegreen, brightgreen, lightgreen, lightblue, 
  6740.                 lightyellow
  6741.  
  6742.             Composite colors
  6743.                 blue2, green2, orange, magenta2, bluegreen2, 
  6744.                 mossgreen, gray, purple2, pink2
  6745.  
  6746.             EVENT_LIST is a list of events that cause the 
  6747.             EVENT_TOPIC to be called.  The events that can be 
  6748.             processed are:   
  6749.  
  6750.             get_focus_event, lose_focus_event, close_event,     
  6751.             char_event, sys_char_event, move_event,     
  6752.             resize_event, horz_scroll_event, vert_scroll_event 
  6753.  
  6754.             These events are described in detail in Appendix D. 
  6755.             If no event is specified, the EVENT_TOPIC is not 
  6756.             called.
  6757.  
  6758. Returns     The window handle.
  6759.  
  6760. See Also    #mclose_window#m, #mshow_window#m, #mmake_modal#m, 
  6761.             #mmove_windows#m, #mattach_icon#m, #mDescription of Events#m
  6762.  
  6763. //window_info
  6764. #cenable_menu_item (?m1, &Copy).
  6765. Format is 'window_info (HANDLE).'.#c
  6766. Format      window_info (HANDLE)
  6767.  
  6768. Parameters  HANDLE is the handle or list of handles.  If no 
  6769.             HANDLE is given, the active window is used.
  6770.  
  6771. Action      Provides information about the specified window.
  6772.  
  6773. Returns     A list containing:
  6774.  
  6775.             Element    Contents
  6776.             1           column of the upper left corner of 
  6777.                         the window 
  6778.             2           row of the upper left corner of the window 
  6779.             3           width of the window  
  6780.             4           height of the window 
  6781.             5           the window class.  The class defines how a 
  6782.                         window looks and behaves.  KnowledgePro classes 
  6783.                         are  'KP Display', 'KP Edit', Button, Listbox, 
  6784.                         Scrollbar and Edit.  Other applications may have 
  6785.                         their own unique classes.  
  6786.             6           a number representing the window style 
  6787.             7           the handle of the window's parent. [] if the 
  6788.                         window has no parent 
  6789.             8           the window's title or if the window is a control, 
  6790.                         the text of the window 
  6791.             9           the handle of the window
  6792.  
  6793.             The column, row, width and height are all measured in 
  6794.             system characters.
  6795.  
  6796. Errors      I_INVALID_WINDOW
  6797.  
  6798. //window_list
  6799. #cenable_menu_item (?m1, &Copy).
  6800. Format is 'window_list ( ).'.#c
  6801. Format      window_list ( )
  6802.  
  6803. Action      Finds a list of the display windows that have been 
  6804.             opened in a knowledge base.
  6805.  
  6806. Returns     The  list  of handles of the  display windows that 
  6807.             have  been  opened  in  the application. Window 
  6808.             handles are returned in the order in which they were  
  6809.             opened.  
  6810.  
  6811. //write
  6812. #cenable_menu_item (?m1, &Copy).
  6813. Format is 'write (FILE, TEXT).'.#c
  6814. Format      write (FILE, TEXT)
  6815.  
  6816. Action      Writes text to a file.  If you write to a file that 
  6817.             has  not yet  been opened,  it is automatically 
  6818.             opened  and  the lines are appended to the end of the 
  6819.             file.  If the file does not exist it is created. If 
  6820.             you want to write over an existing file,  you must 
  6821.             use the  new_file  topic to re-initialize the file. 
  6822.  
  6823.             write can also be used to send text to these devices:
  6824.             PRN or LST:        printer 
  6825.             CON or CON:        screen 
  6826.             AUX or AUX:        communications PORT1, COM1    
  6827.  
  6828. Parameters  FILE is the name of the file or list of files.
  6829.  
  6830.             TEXT is the text to write to  the file.  The  text  
  6831.             may include embedded  control  codes.  The following 
  6832.             codes are available:  
  6833.             ##n    start a new line 
  6834.             ##p    start a new page 
  6835.             ##l    put each list item on a new line (default) 
  6836.             ##s    put each list item on the same line 
  6837.             ##o    no spaces after a list item 
  6838.             ##i    insert a space after each list item (default) 
  6839.             ##t    tab five spaces 
  6840.             ####    display the character ##  
  6841.             ##INTEGER     print the  ASCII character of INTEGER 
  6842.             ##cTEXT##c    TEXT is compiled and evaluated 
  6843.             ##vTEXT##v    TEXT is compiled, evaluated and any value         
  6844.             returned is displayed  
  6845.  
  6846.             When writing to the screen, these codes can also be 
  6847.             included:
  6848.  
  6849.             ##e        erase the contents of the window 
  6850.             ##m        begin or end marked text 
  6851.             ##xINTEGER    move to column INTEGER 
  6852.             ##yINTEGER    move to row INTEGER 
  6853.             ##fCOLOR    change foreground color to COLOR 
  6854.             ##cCOLOR    change background color to COLOR  
  6855.  
  6856.             For screen or printer:  
  6857.             ##gHANDLE    display a bitmap.  HANDLE is the handle          
  6858.                         returned by load_bitmap.
  6859.  
  6860. Returns     True if the write is successfully completed. False if 
  6861.             the write can not be carried out.
  6862.  
  6863. Error       I_CANT_OPEN, I_CANT_CREATE_TEMP_FILE, I_CANT_WRITE, 
  6864.             I_MISSING_HASHC, I_CANT_CLOSE
  6865.  
  6866.             If the file doesn't exist, write calls the system 
  6867.             topic new_file which can produce its own error 
  6868.             messages.
  6869.  
  6870. Note        Text sent to the printer with write can't display 
  6871.             fonts or use ##x and ##y.  Use print for this 
  6872.             functionality.
  6873.  
  6874. See Also    #mtext#m, #mprint#m
  6875.  
  6876. //Description of Events
  6877.  
  6878.  
  6879.  Events recognized by all windows and screen objects
  6880.     #mchar_event#m                     
  6881.     #mclose_event#m                    
  6882.     #mget_focus_event#m
  6883.     #mlose_focus_event#m
  6884.     #msys_char_event#m   
  6885.  
  6886.  Events recognized by display and edit windows
  6887.     #mmove_event#m       
  6888.     #mresize_event#m     
  6889.     #mhorz_scroll_event#m              
  6890.     #mvert_scroll_event#m
  6891.  
  6892.  Events recognized by screen objects     
  6893.     #mdouble_click_event#m             
  6894.     #mlist_select_event#m              
  6895.     #mselect_event#m     
  6896.     #mscroll_event#m     
  6897.             
  6898. //get_focus_event
  6899.   
  6900.   get_focus_event
  6901.  
  6902.   Recognized by:  All windows and screen objects.
  6903.  
  6904.   Description:    A get_focus_event occurs when a window or 
  6905.                   screen object becomes the focus of user input.  
  6906.                   When a screen object gets the focus a dotted 
  6907.                   rectangular cursor appears in it.  When a 
  6908.                   window gets the focus, the text cursor appears 
  6909.                   inside it.  
  6910.  
  6911.   Mouse:          Click the mouse directly on the screen object 
  6912.                   or window.  If you click on a screen object, 
  6913.                   the object, not the window containing it, gets 
  6914.                   the focus.  To place the focus in the window, 
  6915.                   click on any area which does not contain a 
  6916.                   screen object. In some screen objects a mouse 
  6917.                   click also cause the following events to occur: 
  6918.  
  6919.                   button, check box,        select_event
  6920.                   radio button 
  6921.                   list box                  list_select_event 
  6922.                   scroll bar                scroll_event  
  6923.  
  6924.                   Any mouse action which closes a window causes 
  6925.                   the last window that had the focus to receive a 
  6926.                   get_focus_event and be made the active window.  
  6927.  
  6928.   Keyboard:       Press TAB or SHIFT TAB to move the focus within 
  6929.                   a window.  In a newly created window the cursor 
  6930.                   is in the upper left corner of the window.  
  6931.                   When TAB is pressed the focus moves through 
  6932.                   hypertext and then through the screen objects 
  6933.                   in the order they were created and then back to 
  6934.                   the window.  SHIFT TAB moves in the reverse 
  6935.                   order.  The cursor keys move the focus through 
  6936.                   a group of radio buttons. 
  6937.  
  6938.                   When F6 is pressed, the focus moves to the next 
  6939.                   display window in the application.  Screen 
  6940.                   objects do not receive a get_focus_event when 
  6941.                   F6 is pressed.  Any keyboard action that closes 
  6942.                   a window causes the last window to have the 
  6943.                   focus to receive a get_focus_event. 
  6944.  
  6945.                   CTRL F6 moves between the application and the 
  6946.                   development environment. 
  6947.  
  6948.                   If a different Windows application is selected 
  6949.                   the screen object or window that has the focus 
  6950.                   receives a lose_focus_event.  If you press ALT 
  6951.                   TAB from the other application, the window or 
  6952.                   screen object that lost the focus receives a 
  6953.                   get_focus_event when you return to the 
  6954.                   knowledge base.
  6955.  
  6956.   Knowledge Base: set_focus moves the focus to the the specified 
  6957.                   screen object.  This object receives a 
  6958.                   get_focus_event. A window receives a 
  6959.                   get_focus_event whenever it becomes the active 
  6960.                   window.  A window becomes the active window 
  6961.                   when:
  6962.  
  6963.                   it is made the active window with 
  6964.                   set_active_windows
  6965.  
  6966.                   it is shown using show_window with a display 
  6967.                   code of 1, 2, 3 or 5.
  6968.  
  6969.                   the currently active window is closed and the   
  6970.                   window was the last window that was active.
  6971.  
  6972.                   When a child window is made the top window with                       
  6973.                   set_top_window it receives a get_focus_event.
  6974.  
  6975.   Info Passed:    The empty list, [ ].
  6976.  
  6977. //lose_focus_event
  6978.  
  6979.   lose_focus_event
  6980.  
  6981.   Recognized by:  All windows and screen objects
  6982.   
  6983.   Description:    A  lose_focus_event occurs when a window or 
  6984.                   object is about to lose the focus.  
  6985.  
  6986.                   This occurs when the focus is moved to another 
  6987.                   window or screen object in the knowledge base 
  6988.                   to the development environment or to another 
  6989.                   Windows application.  The last window or screen 
  6990.                   object to have the focus is the one which 
  6991.                   receives the lose_focus.   Whenever a window is 
  6992.                   closed, any object in it that had the focus 
  6993.                   loses the focus as well as the window itself.  
  6994.                   A lose_focus_event can be canceled by setting 
  6995.                   the value of the event handling topic to true.  
  6996.                   This causes the focus to be re-set to the 
  6997.                   object.
  6998.  
  6999.   Mouse:          Click the mouse on any other screen object.  
  7000.                   Use the mouse to close the window or the window 
  7001.                   containing a screen object with the focus.
  7002.  
  7003.   Keyboard:       Press TAB or SHIFT TAB.   In an edit line, 
  7004.                   press ENTER.  In a group of radio buttons press 
  7005.                   any cursor key. Press F6 to move the focus to a 
  7006.                   new window. 
  7007.  
  7008.                   Press CTRL F6 to move the focus to the 
  7009.                   development environment.  Press ALT TAB to move 
  7010.                   to another Windows application.  Use the 
  7011.                   keyboard to close the window with the focus or 
  7012.                   the window containing the screen object which 
  7013.                   has the focus.
  7014.  
  7015.   Knowledge Base: set_focus to a different screen object.  
  7016.                   close_window to close the object or the window 
  7017.                   containing the screen object with the focus.  
  7018.                   Make a new window the active window using 
  7019.                   set_active_window or show_window with a display 
  7020.                   code of 1, 2, 3, or 5.  Make a child window the 
  7021.                   top window using set_top_window.
  7022.  
  7023.   Info Passed:    The empty list, [ ].
  7024.  
  7025. //close_event
  7026.  
  7027.   close_event
  7028.  
  7029.   Recognized by:  All window and screen objects
  7030.  
  7031.   Description:    A close_event occurs when a window or screen 
  7032.                   object is removed from the screen. When a 
  7033.                   window is closed, all child windows and screen 
  7034.                   objects are also closed.  A close_event can be 
  7035.                   canceled by setting the value of the event 
  7036.                   handling topic to true.
  7037.   Mouse:          Close a window using the control menu.
  7038.  
  7039.   Keyboard:       Close the window using the control menu.
  7040.  
  7041.   Knowledge Base: close_window
  7042.  
  7043.   Info Passed:    The empty list, [ ].
  7044.  
  7045. //char_event
  7046.  
  7047.   char_event
  7048.  
  7049.   Recognized by:  All window and screen objects
  7050.  
  7051.   Description:    A char_event occurs whenever a key which 
  7052.                   generates an ASCII code is passed.  The screen 
  7053.                   object or window which has the focus receives 
  7054.                   the event. A char_event can be canceled by 
  7055.                   setting the value of the event handling topic 
  7056.                   to true.
  7057.   Keyboard:       Press a key or combination of keys that return 
  7058.                   an ASCII value.
  7059.  
  7060.   Info Passed:    The ASCII value of the key or keys pressed.
  7061.  
  7062. //sys_char_event
  7063.  
  7064.   sys_char_event
  7065.  
  7066.   Recognized by:  All window and screen objects
  7067.  
  7068.   Description:    The window or screen object with the focus 
  7069.                   receives a sys_char_event whenever certain 
  7070.                   combinations of ALT, FUNCTION KEY, CURSOR KEYS, 
  7071.                   CTRL and SHIFT are passed.  A sys_char_event 
  7072.                   can be canceled by setting the value of the 
  7073.                   event handling topic to true.
  7074.  
  7075.   Keyboard:       CURSOR KEY, FUNCTION KEY, ALT, SHIFT, CTRL and 
  7076.                   combinations of these keys    
  7077.  
  7078.   Info Passed:    A string containing the names of each key 
  7079.                   pressed followed by a space.  Key names are 
  7080.                   shown in Appendix C.
  7081. //move_event
  7082.  
  7083.   move_event
  7084.  
  7085.   Recognized by:  Windows and edit windows created with 
  7086.                   edit_window and edit_file.
  7087.  
  7088.   Description:    A move_event occurs when a window or an edit 
  7089.                   window with the focus is  moved.  Windows can 
  7090.                   be moved by the user or under knowledge base 
  7091.                   control.  
  7092.  
  7093.   Mouse:          Move the window.  If the window did not have 
  7094.                   the focus, it also receives a get_focus_event 
  7095.                   and the last object or window to have the focus 
  7096.                   receives a lose_focus_event.
  7097.  
  7098.   Keyboard:       Move a window or edit window using the Control 
  7099.                   Menu.
  7100.  
  7101.   Knowledge Base: move_window, show_window with a display code 
  7102.                   which changes the location of the window. 
  7103.  
  7104.   Info Passed:    a list containing the new column and row.
  7105.  
  7106. //resize_event
  7107.  
  7108.   resize_event
  7109.  
  7110.   Recognized by:  Windows and edit windows created with 
  7111.                   edit_window and edit_file.
  7112.  
  7113.   Description:    A resize_event occurs when a window or an edit 
  7114.                   window with the focus is  resized.  This can be 
  7115.                   done by the user or under knowledge base 
  7116.                   control. 
  7117.  
  7118.   Mouse:          Move the window.  If the window did not have 
  7119.                   the focus, it also receives a get_focus_event 
  7120.                   and the last object or window to have the focus 
  7121.                   receives a lose_focus_event.
  7122.  
  7123.   Keyboard:       Resize a window or edit window using the 
  7124.                   Control Menu.
  7125.  
  7126.   Knowledge Base: resize_window, show_window with a display code 
  7127.                   which changes the size of the window.
  7128.  
  7129.   Info Passed:    A list containing the new width, the new height 
  7130.                   and a code describing the state of the window.  
  7131.                   The possible codes are:    
  7132.  
  7133.                   0     resized    
  7134.                   1     iconic    
  7135.                   2     maximized    
  7136.                   3     another window maximized    
  7137.                   4     another window restored from an icon 
  7138.  
  7139.                   Codes 3 and 4 occur when the size of the window 
  7140.                   is changed as the result of another window 
  7141.                   being maximized or restored.
  7142.  
  7143. //horz_scroll_event
  7144.  
  7145.   horz_scroll_event
  7146.  
  7147.   Recognized by:  Windows and edit windows created with 
  7148.                   edit_window and edit_file.
  7149.  
  7150.   Description:    A horz_scroll_event occurs when the window or 
  7151.                   edit window with the focus is scrolled using 
  7152.                   window scroll bars or under knowledge base 
  7153.                   control.  If a window which does not have the 
  7154.                   focus is moved using the mouse, it also 
  7155.                   receives a get_focus_event and the last object 
  7156.                   or window to have the focus receives a 
  7157.                   lose_focus_event.
  7158.  
  7159.   Mouse:          Click on the horizontal scroll bar. If the 
  7160.                   window did not have the focus, it also receives 
  7161.                   a get_focus_event and the last object or window 
  7162.                   to have the focus receives a lose_focus_event.
  7163.  
  7164.   Keyboard:       RIGHT ARROW, LEFT ARROW, END, HOME, typing text 
  7165.                   that extends beyond the right edge of the 
  7166.                   screen object
  7167.  
  7168.   Knowledge Base: horz_scroll_text
  7169.  
  7170.   Info Passed:    The number of characters scrolled.  This number 
  7171.                   is negative when the text scrolls to the left. 
  7172.  
  7173. //vert_scroll_event
  7174.  
  7175.   vert_scroll_event
  7176.  
  7177.   Recognized by:  Windows and edit windows created with 
  7178.                   edit_window and edit_file.
  7179.  
  7180.   Description:    A vert_scroll_event occurs when the window or 
  7181.                   edit window with the focus is scrolled using 
  7182.                   window scroll bars or under knowledge base 
  7183.                   control.
  7184.  
  7185.   Mouse:          Click on the vertical scroll bar.   If a window 
  7186.                   which does not have the focus is moved using 
  7187.                   the mouse, it also receives a get_focus_event 
  7188.                   and the last object or window to have the focus 
  7189.                   receives a lose_focus_event.
  7190.  
  7191.   Keyboard:       UP ARROW, DOWN ARROW, PGUP, PGDN, CTRL PGUP, 
  7192.                   CTRL PGDN, typing text that extends below the 
  7193.                   bottom edge of the screen object
  7194.  
  7195.   Knowledge Base: vert_scroll_text
  7196.  
  7197.   Info Passed:    The number of lines scrolled.   This number is 
  7198.                   negative when the text scrolls up.
  7199.  
  7200. //select_event
  7201.  
  7202.   select_event
  7203.  
  7204.   Recognized by:  button, check box, radio button
  7205.  
  7206.   Description:    A select_event occurs when a button, check box 
  7207.                   or radio button is selected by the user.
  7208.  
  7209.   Mouse:          Click on the object.  This causes both a 
  7210.                   select_event and a get_focus_event to occur.
  7211.  
  7212.   Keyboard:       TAB or SHIFT TAB is used to move the focus to 
  7213.                   the object. ENTER or SPACE BAR are used to 
  7214.                   select a button or a check box.    When TAB or 
  7215.                   SHIFT TAB moves to a group of radio buttons, it 
  7216.                   goes to the currently selected radio button or, 
  7217.                   if none is selected, the first of the group.  
  7218.                   Once the focus is on one of a group of radio 
  7219.                   buttons, the cursor keys move through the radio 
  7220.                   buttons creating both a get_focus_event and a 
  7221.                   select_event at each move.
  7222.  
  7223.   Info Passed:    The text of the object selected
  7224.  
  7225. //list_select_event
  7226.  
  7227.   list_select_event
  7228.  
  7229.   Recognized by:  list box
  7230.  
  7231.   Description:    When the focus is on a list box and an item in 
  7232.                   the list box is highlighted, a 
  7233.                   list_select_event occurs.  List boxes can be 
  7234.                   defined to allow one or many items to be 
  7235.                   highlighted.
  7236.  
  7237.   Mouse:          Click the mouse on an item in the list box.  To 
  7238.                   highlight several items, hold down the shift 
  7239.                   key while clicking the mouse.  If the list box 
  7240.                   did not have the focus, a get_focus_event also 
  7241.                   occurs.
  7242.  
  7243.   Keyboard:       Press the CURSOR KEYS to move the highlight 
  7244.                   through the list box.  To highlight several 
  7245.                   items, hold down the CTRL key and press the 
  7246.                   CURSOR KEYS to move a dotted cursor through the 
  7247.                   items.  Press SPACE to highlight the item.
  7248.  
  7249.   Info Passed:    A list of the selected items.
  7250.  
  7251. //double_click_event
  7252.  
  7253.   double_click_event
  7254.  
  7255.   Recognized by:  list box
  7256.  
  7257.   Description:    A double_click_event occurs when the 
  7258.                   highlighted items in the list box with the 
  7259.                   focus are selected.
  7260.  
  7261.   Mouse:          Double click to select a single item.  Hold 
  7262.                   down the SPACE BAR and double click to select 
  7263.                   multiple items.  If the list box did not have 
  7264.                   the focus, a get_focus_event also occurs.
  7265.  
  7266.   Keyboard:       Press ENTER
  7267.  
  7268.   Info Passed:    The items selected
  7269.  
  7270. //scroll_event
  7271.  
  7272.   scroll_event
  7273.  
  7274.   Recognized by:  scroll bars
  7275.  
  7276.   Description:    A scroll event occurs when the slider on a 
  7277.                   vertical or horizontal scroll bar is moved.
  7278.  
  7279.   Mouse:          Click on scroll bar.  If the scroll bar did not 
  7280.                   have the focus, a get_focus_event also occurs.
  7281.  
  7282.   Keyboard:       CURSOR KEY
  7283.  
  7284.   Info Passed:    The location of the slider.
  7285.  
  7286. //
  7287.